asma-helpers 0.2.44 → 0.2.46

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/global.d.ts CHANGED
@@ -18,7 +18,11 @@ declare global {
18
18
  auth_bindings?: unknown;
19
19
  isLogged?: () => boolean;
20
20
  logoutUser?: () => void;
21
+ /**
22
+ * @experimental need to be tested
23
+ */
21
24
  logoutMfes?: (() => void)[];
25
+ abortController?: AbortController;
22
26
  };
23
27
  _env_cloud?: Record<'adopus' | 'adcuris', Record<string, string>>;
24
28
  _srvUrls?: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,EAAE,CAAA;AAET,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,EAAE;YACT,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxC,CAAA;QACD,mBAAmB,CAAC,EAAE;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;YAClC,UAAU,EAAE,MAAM,CAAA;SACrB,EAAE,CAAA;QACH,eAAe,CAAC,EAAE;YACd,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,aAAa,CAAC,EAAE,OAAO,CAAA;YACvB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;YACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;YACvB,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;SAC9B,CAAA;QAED,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC;;;;WAIG;QACH,QAAQ,EAAE,OAAO,CAAA;QACjB;;;WAGG;QACH,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,GAAG,CAAA;KACpB;CACJ;AAED,eAAO,MAAM,OAAO,SAA4D,CAAA;AAEhF,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,EAAE,CAAA;AAET,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC9B,WAAW,EAAE;YACT,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxC,CAAA;QACD,mBAAmB,CAAC,EAAE;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;YAClC,UAAU,EAAE,MAAM,CAAA;SACrB,EAAE,CAAA;QACH,eAAe,CAAC,EAAE;YACd,OAAO,CAAC,EAAE,OAAO,CAAA;YACjB,aAAa,CAAC,EAAE,OAAO,CAAA;YACvB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;YACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;YACvB;;eAEG;YACH,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;YAC3B,eAAe,CAAC,EAAE,eAAe,CAAA;SACpC,CAAA;QAED,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC;;;;WAIG;QACH,QAAQ,EAAE,OAAO,CAAA;QACjB;;;WAGG;QACH,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,YAAY,EAAE,GAAG,CAAA;KACpB;CACJ;AAED,eAAO,MAAM,OAAO,SAA4D,CAAA;AAEhF,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
package/lib/global.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA2C5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,OAAO,KAAI,oBAAoB,EAAE,CAAA;AAEhF,OAAO,EAAW,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+C5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,OAAO,KAAI,oBAAoB,EAAE,CAAA;AAEhF,OAAO,EAAW,oBAAoB,EAAE,CAAA"}
@@ -7,10 +7,13 @@ 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
- resetGenqlClient: () => void;
14
17
  genqlClient: (options?: CliOptions) => Promise<T>;
15
18
  genqlClientWs: () => Promise<T>;
16
19
  };
@@ -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;AAIjE,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;;;4BAyCuC,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;;4BA6CuC,UAAU,KAAQ,QAAQ,CAAC,CAAC;;EAgDnE"}
@@ -1,4 +1,5 @@
1
1
  import { httpToWs } from './Config';
2
+ import { getAbortController } from './generateSrvAuthBindings';
2
3
  export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, path = '/v1/graphql', }) {
3
4
  // let jwt_exp = 0
4
5
  let client = null;
@@ -9,6 +10,11 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
9
10
  // //set exp time -20sec for token to be refreshed early
10
11
  // return jwt_exp - 10 <= nowTime
11
12
  //}
13
+ /**
14
+ * This method caches the client and returns it if token or/and access is not expired
15
+ * in case if request is cancelled it returns null
16
+ * @returns genql client for gql requests
17
+ */
12
18
  async function getGenqlClient() {
13
19
  if ( /* accessTokenHasExpired() || */client === null) {
14
20
  client = await genqlClient();
@@ -16,9 +22,9 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
16
22
  }
17
23
  return client;
18
24
  }
19
- function resetGenqlClient() {
20
- client = null;
21
- }
25
+ //function resetGenqlClient() {
26
+ // client = null
27
+ //}
22
28
  // function setJwtExp(token?: string) {
23
29
  // if (!token) return
24
30
  //
@@ -33,7 +39,8 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
33
39
  */
34
40
  async function genqlClient(options = {}) {
35
41
  //let req_headers: Record<string, string> = {}
36
- const { anonymous, headers, ...rest } = options;
42
+ var _a;
43
+ const { anonymous, headers, signal, ...rest } = options;
37
44
  if (!serviceUrl()) {
38
45
  console.warn('requred param srv_url is undefined, please check EnvConfig object!');
39
46
  }
@@ -50,11 +57,13 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
50
57
  ...headers,
51
58
  });
52
59
  },
60
+ signal: signal !== null && signal !== void 0 ? signal : (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
53
61
  batch: { batchInterval: 50, maxBatchSize: 100 },
54
62
  ...rest,
55
63
  });
56
64
  }
57
65
  async function genqlClientWs() {
66
+ var _a;
58
67
  if ( /* accessTokenHasExpired() || */!wsClient) {
59
68
  //const req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
60
69
  //setJwtExp(req_headers['Authorization'])
@@ -62,6 +71,7 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
62
71
  url: `${httpToWs(serviceUrl())}${path}`,
63
72
  cache: 'reload',
64
73
  batch: { batchInterval: 50, maxBatchSize: 100 },
74
+ signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
65
75
  subscription: {
66
76
  reconnect: true,
67
77
  reconnectionAttempts: 5,
@@ -71,6 +81,6 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
71
81
  }
72
82
  return wsClient;
73
83
  }
74
- return { getGenqlClient, resetGenqlClient, genqlClient, genqlClientWs };
84
+ return { getGenqlClient, /* resetGenqlClient, */ genqlClient, genqlClientWs };
75
85
  }
76
86
  //# 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;AAOnC,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,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,SAAS,gBAAgB;QACrB,MAAM,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,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,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA;AAC3E,CAAC"}
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,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAO9D,MAAM,UAAU,mBAAmB,CAA4C,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAI,GAAG,aAAa,GAWvB;IACG,kBAAkB;IAElB,IAAI,MAAM,GAAa,IAAI,CAAA;IAE3B,IAAI,QAAQ,GAAa,IAAI,CAAA;IAE7B,oCAAoC;IACpC,6DAA6D;IAC7D,EAAE;IACF,2DAA2D;IAC3D,oCAAoC;IACpC,GAAG;IACH;;;;OAIG;IACH,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,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAEvD,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,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,MAAA,kBAAkB,EAAE,0CAAE,MAAM;YAC9C,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,MAAM,EAAE,MAAA,kBAAkB,EAAE,0CAAE,MAAM;gBACpC,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,5 +1,6 @@
1
1
  import { type AxiosResponse, type ResponseType } from 'axios';
2
2
  import { EnvironmentEnums } from '..';
3
+ export declare function getAbortController(): AbortController | undefined;
3
4
  export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): {
4
5
  hasFeature: (featureName: FeatureEnums) => boolean;
5
6
  getFeatures: () => Set<FeatureEnums> | undefined;
@@ -15,23 +16,26 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
15
16
  responseType: ResponseType | undefined;
16
17
  headers: Record<string, string>;
17
18
  }>;
18
- getJwtTokenAsync: () => Promise<string | undefined>;
19
- 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
+ };
20
26
  getUserId: () => string;
27
+ setCallbackToJwtNotifier: (callback: () => void) => void;
21
28
  getParsedJwt: <R_1 = {
22
29
  user_id: string;
23
30
  exp: number;
24
31
  }>() => R_1 | undefined;
32
+ abortController: AbortController;
25
33
  getJwtToken: () => string;
26
34
  accessTokenHasExpired: () => boolean;
27
35
  };
28
36
  /**
29
37
  * @deprecated use generateSrvAuthBindings
30
- * @param SRV_AUTH
31
- * @param DEVELOPMENT
32
- * @param ENVIRONMENT_TO_OPERATE
33
- * @param logout
34
- * @returns
38
+ *
35
39
  */
36
40
  export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
37
41
  //# sourceMappingURL=generateSrvAuthBindings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAc,EAAC,KAAM,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAI/C,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;8BAoKc,YAAY;;;kBApGlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACpB,MAAM;kBAAY,YAAY,EAAE;;yBAtC7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEA2ER,YAAY;;;;;;;qBAxBxD,MAAM;;iBAwES,MAAM;aAAO,MAAM;;;iCAjGtB,OAAO;EAuI5C;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;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;8BAyMc,YAAY;;;kBAnHlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eAKpB,MAAM;kBAAY,YAAY,EAAE;;yBA3C7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAuFR,YAAY;;;;;;;;qBApHvB,EAAE;;;;qBAqFnC,MAAM;yCA7EgB,MAAM,IAAI;;iBAgKjB,MAAM;aAAO,MAAM;;;;iCAhHtB,OAAO;EA0J5C;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,12 @@
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
5
+ let abortController = new AbortController();
6
+ export function getAbortController() {
7
+ var _a;
8
+ return (_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.abortController;
9
+ }
4
10
  export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
5
11
  var _a, _b;
6
12
  let logoutMfes = [];
@@ -14,10 +20,27 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
14
20
  let jwtToken = '';
15
21
  let features;
16
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
+ }
17
36
  let fetchJwtPromise = null;
18
37
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
19
38
  const isJwtValid = () => !isJwtInvalid();
39
+ //function cancelRequest() {
40
+ // return logoutsuccesfull
41
+ // }
20
42
  async function srvAuthGet(url, headers) {
43
+ var _a;
21
44
  if (DEVELOPMENT() && EnvironmentToOperateFn()) {
22
45
  if (EnvironmentToOperateFn() in EnvironmentEnums) {
23
46
  url = `${url}&env=${EnvironmentToOperateFn()}`;
@@ -28,6 +51,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
28
51
  }
29
52
  }
30
53
  return axios.get(`${SRV_AUTH()}${url}`, {
54
+ signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
31
55
  headers: {
32
56
  ...headers,
33
57
  'asma-origin': window.location.origin,
@@ -43,9 +67,12 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
43
67
  return accessTokenExpDate - 10 <= nowTime;
44
68
  }
45
69
  async function signin(url, headers) {
70
+ if (abortController.signal.aborted) {
71
+ abortController = new AbortController();
72
+ }
46
73
  const { data } = await srvAuthGet(url, headers);
47
74
  setAuthData(data);
48
- logoutsuccesfull = false;
75
+ // logoutsuccesfull = false
49
76
  return data;
50
77
  }
51
78
  async function signoutAuth() {
@@ -58,6 +85,11 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
58
85
  }
59
86
  function setAuthData(data) {
60
87
  jwtToken = data.token;
88
+ if (jwtToken) {
89
+ dispatch('jwt_changed', {}, false);
90
+ parsed_jwt = parseJwt(jwtToken);
91
+ }
92
+ notifyChangedJwt();
61
93
  features = new Set(data.features);
62
94
  parsed_jwt = undefined;
63
95
  }
@@ -86,8 +118,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
86
118
  return res;
87
119
  }
88
120
  async function getNewJwtToken() {
89
- if (logoutsuccesfull)
90
- return;
121
+ //if (logoutsuccesfull) return
91
122
  try {
92
123
  if (!fetchJwtPromise) {
93
124
  fetchJwtPromise = srvAuthGet('/token');
@@ -95,14 +126,18 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
95
126
  const { data } = await fetchJwtPromise;
96
127
  if (!data || data.errors || data.message != 'Success' || !data.token) {
97
128
  logout === null || logout === void 0 ? void 0 : logout();
98
- logoutsuccesfull = true;
129
+ //logoutsuccesfull = true
130
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
131
+ logoutMfes.forEach((l) => l());
99
132
  //signoutAuth()
100
133
  }
101
134
  setAuthData({ token: data.token || '', features: data.features || [] });
102
135
  }
103
136
  catch (error) {
104
- logout === null || logout === void 0 ? void 0 : logout();
105
- logoutsuccesfull = true;
137
+ // logout?.()
138
+ // logoutsuccesfull = true
139
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
140
+ logoutMfes.forEach((l) => l());
106
141
  //signoutAuth()
107
142
  setAuthData({ token: '', features: [] });
108
143
  console.error(error);
@@ -139,9 +174,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
139
174
  setReqConfig,
140
175
  getJwtTokenAsync,
141
176
  getNewJwtToken,
177
+ registerOnJwtChanges: register,
142
178
  getUserId,
179
+ setCallbackToJwtNotifier,
143
180
  getParsedJwt,
181
+ abortController,
144
182
  getJwtToken,
183
+ // cancelRequest,
145
184
  accessTokenHasExpired,
146
185
  };
147
186
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {};
@@ -150,11 +189,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
150
189
  }
151
190
  /**
152
191
  * @deprecated use generateSrvAuthBindings
153
- * @param SRV_AUTH
154
- * @param DEVELOPMENT
155
- * @param ENVIRONMENT_TO_OPERATE
156
- * @param logout
157
- * @returns
192
+ *
158
193
  */
159
194
  export function generateSrvAuthBindingsMicroApp(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout) {
160
195
  var _a;
@@ -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,gBAAgB,GAAG,KAAK,CAAA;AAE5B,MAAM,UAAU,uBAAuB,CACnC,QAAsB,EACtB,WAA0B,EAC1B,sBAAoC,EACpC,MAAmB;;IAEnB,IAAI,UAAU,GAAmB,EAAE,CAAA;IAEnC,IAAI,MAAM,KAAI,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa,CAAA,EAAE;QACjD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAC1B;IAED,IAAI,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa,EAAE;QACvC,MAAM,CAAC,eAAe,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9C,OAAO,MAAM,CAAC,eAAe,CAAC,aAAqC,CAAA;KACtE;IAED,IAAI,QAAQ,GAAG,EAAE,CAAA;IAEjB,IAAI,QAAuC,CAAA;IAE3C,IAAI,UAA2B,CAAA;IAE/B,IAAI,eAAe,GAEP,IAAI,CAAA;IAEhB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,qBAAqB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAA;IAE7E,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;IAExC,KAAK,UAAU,UAAU,CAAI,GAAW,EAAE,OAAgC;QACtE,IAAI,WAAW,EAAE,IAAI,sBAAsB,EAAE,EAAE;YAC3C,IAAI,sBAAsB,EAAE,IAAI,gBAAgB,EAAE;gBAC9C,GAAG,GAAG,GAAG,GAAG,QAAQ,sBAAsB,EAAE,EAAE,CAAA;gBAE9C,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;aAC9E;iBAAM;gBACH,OAAO,CAAC,IAAI,CACR,0DAA0D,EAC1D,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EAAE,CAC3B,CAAA;aACJ;SACJ;QAED,OAAO,KAAK,CAAC,GAAG,CAA4B,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE;YAC/D,OAAO,EAAE;gBACL,GAAG,OAAO;gBACV,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;aACxC;YACD,eAAe,EAAE,IAAI;SACxB,CAAC,CAAA;IACN,CAAC;IAED,SAAS,qBAAqB;QAC1B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;QAE/B,MAAM,kBAAkB,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,KAAI,CAAC,CAAA;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;QAEvD,qDAAqD;QACrD,OAAO,kBAAkB,GAAG,EAAE,IAAI,OAAO,CAAA;IAC7C,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,GAAW,EAAE,OAAgC;QAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAA8C,GAAG,EAAE,OAAO,CAAC,CAAA;QAE5F,WAAW,CAAC,IAAI,CAAC,CAAA;QAEjB,gBAAgB,GAAG,KAAK,CAAA;QAExB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,UAAU,WAAW;QACtB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1B,MAAM,UAAU,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IACD,SAAS,SAAS;;QACd,OAAO,CAAA,MAAA,YAAY,EAAE,0CAAG,SAAS,CAAC,KAAI,IAAI,CAAA;IAC9C,CAAC;IAED,SAAS,WAAW,CAAC,IAAkD;QACnE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;QACrB,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjC,UAAU,GAAG,SAAS,CAAA;IAC1B,CAAC;IAED,SAAS,WAAW;QAChB,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC3B,IAAI,YAAY,EAAE,EAAE;YAChB,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAA;YAEtC,OAAO,OAAO,CAAA;SACjB;aAAM;YACH,OAAO,QAAQ,CAAA;SAClB;IACL,CAAC;IAED,KAAK,UAAU,YAAY,CAAc,IAAQ,EAAE,YAA2B;QAC1E,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAA;QAEtC,MAAM,GAAG,GAAG;YACR,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,EAA4B;SACxC,CAAA;QAED,IAAI,KAAK,EAAE;YACP,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAA;SACnD;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,UAAU,cAAc;QACzB,IAAG,gBAAgB;YAAE,OAAM;QAC3B,IAAI;YACA,IAAI,CAAC,eAAe,EAAE;gBAClB,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;aACzC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAA;YAEtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBAClE,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAA;gBACV,gBAAgB,GAAG,IAAI,CAAA;gBAEvB,eAAe;aAClB;YAED,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAA;SAC1E;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAA;YACV,gBAAgB,GAAG,IAAI,CAAA;YACvB,eAAe;YAEf,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;YAExC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SACvB;gBAAS;YACN,eAAe,GAAG,IAAI,CAAA;YAEtB,OAAO,QAAQ,CAAA;SAClB;IACL,CAAC;IAED,SAAS,YAAY;QACjB,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,GAAG,QAAQ,CAAI,QAAQ,CAAC,CAAA;SACrC;QACD,OAAO,UAAU,CAAA;IACrB,CAAC;IACD,SAAS,WAAW;QAChB,OAAO,QAAQ,CAAA;IACnB,CAAC;IACD;;;;OAIG;IACH,SAAS,UAAU,CAAC,WAAyB;QACzC,OAAO,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,WAAW,CAAC,CAAA,CAAA;IACvC,CAAC;IAED,MAAM,aAAa,GAAG;QAClB,UAAU;QACV,WAAW;QACX,UAAU;QACV,MAAM;QACN,UAAU;QACV,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,SAAS;QACT,YAAY;QACZ,WAAW;QACX,qBAAqB;KACxB,CAAA;IACD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAA;IAErD,MAAM,CAAC,eAAe,CAAC,aAAa,GAAG,aAAa,CAAA;IAEpD,OAAO,aAAa,CAAA;AACxB,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC3C,QAAsB,EACtB,WAA0B,EAC1B,sBAA8C,EAC9C,MAAmB;;IAEnB,OAAO,CACH,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,aAAa;QACrC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,CAAC,CACjF,CAAA;AACL,CAAC"}
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.44",
3
+ "version": "0.2.46",
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",
package/src/global.ts CHANGED
@@ -21,7 +21,11 @@ declare global {
21
21
  auth_bindings?: unknown //IGenerateSRVAuthBindings
22
22
  isLogged?: () => boolean
23
23
  logoutUser?: () => void
24
+ /**
25
+ * @experimental need to be tested
26
+ */
24
27
  logoutMfes?: (() => void)[]
28
+ abortController?: AbortController
25
29
  }
26
30
 
27
31
  _env_cloud?: Record<'adopus' | 'adcuris', Record<string, string>>
@@ -1,6 +1,7 @@
1
1
  import type { AxiosRequestConfig } from 'axios'
2
2
  import type { ClientOptions, createClient } from '@genql/runtime'
3
3
  import { httpToWs } from './Config'
4
+ import { getAbortController } from './generateSrvAuthBindings'
4
5
  //import { parseJwt } from '../helpers/parseJwt'
5
6
 
6
7
  interface CliOptions extends Omit<ClientOptions, 'url'> {
@@ -17,6 +18,10 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
17
18
  setReqConfig: () => Promise<AxiosRequestConfig<any>>
18
19
  createClient: (options?: ClientOptions | undefined) => T
19
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
+ */
20
25
  path?: string
21
26
  }) {
22
27
  // let jwt_exp = 0
@@ -31,7 +36,11 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
31
36
  // //set exp time -20sec for token to be refreshed early
32
37
  // return jwt_exp - 10 <= nowTime
33
38
  //}
34
-
39
+ /**
40
+ * This method caches the client and returns it if token or/and access is not expired
41
+ * in case if request is cancelled it returns null
42
+ * @returns genql client for gql requests
43
+ */
35
44
  async function getGenqlClient() {
36
45
  if (/* accessTokenHasExpired() || */ client === null) {
37
46
  client = await genqlClient()
@@ -44,6 +53,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
44
53
 
45
54
  function resetGenqlClient() {
46
55
  client = null
56
+ wsClient = null
47
57
  }
48
58
 
49
59
  // function setJwtExp(token?: string) {
@@ -62,7 +72,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
62
72
  async function genqlClient(options: CliOptions = {}): Promise<T> {
63
73
  //let req_headers: Record<string, string> = {}
64
74
 
65
- const { anonymous, headers, ...rest } = options
75
+ const { anonymous, headers, signal, ...rest } = options
66
76
 
67
77
  if (!serviceUrl()) {
68
78
  console.warn('requred param srv_url is undefined, please check EnvConfig object!')
@@ -78,6 +88,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
78
88
  ...(options.anonymous ? {} : (((await setReqConfig()).headers ?? {}) as Record<string, string>)),
79
89
  ...headers,
80
90
  }),
91
+ signal: signal ?? getAbortController()?.signal,
81
92
  batch: { batchInterval: 50, maxBatchSize: 100 },
82
93
  ...rest,
83
94
  })
@@ -93,6 +104,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
93
104
  url: `${httpToWs(serviceUrl())}${path}`,
94
105
  cache: 'reload',
95
106
  batch: { batchInterval: 50, maxBatchSize: 100 },
107
+ signal: getAbortController()?.signal,
96
108
  subscription: {
97
109
  reconnect: true,
98
110
  reconnectionAttempts: 5,
@@ -1,7 +1,14 @@
1
- import axios, {type AxiosResponse, type ResponseType } from 'axios'
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
6
+
7
+ let abortController = new AbortController()
8
+
9
+ export function getAbortController() {
10
+ return window.__ASMA__SHELL__?.abortController
11
+ }
5
12
 
6
13
  export function generateSrvAuthBindings<FeatureEnums = never>(
7
14
  SRV_AUTH: () => string,
@@ -26,6 +33,23 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
26
33
 
27
34
  let parsed_jwt: any | undefined
28
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
+
29
53
  let fetchJwtPromise: Promise<{
30
54
  data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
31
55
  }> | null = null
@@ -34,11 +58,16 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
34
58
 
35
59
  const isJwtValid = () => !isJwtInvalid()
36
60
 
61
+ //function cancelRequest() {
62
+ // return logoutsuccesfull
63
+ // }
64
+
37
65
  async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
38
66
  if (DEVELOPMENT() && EnvironmentToOperateFn()) {
39
67
  if (EnvironmentToOperateFn() in EnvironmentEnums) {
40
68
  url = `${url}&env=${EnvironmentToOperateFn()}`
41
69
 
70
+ // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
42
71
  url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
43
72
  } else {
44
73
  console.warn(
@@ -52,6 +81,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
52
81
  }
53
82
 
54
83
  return axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
84
+ signal: getAbortController()?.signal,
55
85
  headers: {
56
86
  ...headers,
57
87
  'asma-origin': window.location.origin,
@@ -72,11 +102,15 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
72
102
  }
73
103
 
74
104
  async function signin(url: string, headers?: Record<string, string>) {
105
+ if (abortController.signal.aborted) {
106
+ abortController = new AbortController()
107
+ }
108
+
75
109
  const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
76
110
 
77
111
  setAuthData(data)
78
112
 
79
- logoutsuccesfull = false
113
+ // logoutsuccesfull = false
80
114
 
81
115
  return data
82
116
  }
@@ -91,6 +125,13 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
91
125
 
92
126
  function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
93
127
  jwtToken = data.token
128
+
129
+ if (jwtToken) {
130
+ dispatch('jwt_changed', {}, false)
131
+
132
+ parsed_jwt = parseJwt(jwtToken)
133
+ }
134
+ notifyChangedJwt()
94
135
  features = new Set(data.features)
95
136
  parsed_jwt = undefined
96
137
  }
@@ -126,7 +167,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
126
167
  }
127
168
 
128
169
  async function getNewJwtToken() {
129
- if(logoutsuccesfull) return
170
+ //if (logoutsuccesfull) return
130
171
  try {
131
172
  if (!fetchJwtPromise) {
132
173
  fetchJwtPromise = srvAuthGet('/token')
@@ -136,15 +177,19 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
136
177
 
137
178
  if (!data || data.errors || data.message != 'Success' || !data.token) {
138
179
  logout?.()
139
- logoutsuccesfull = true
140
-
180
+ //logoutsuccesfull = true
181
+ abortController?.abort()
182
+ logoutMfes.forEach((l) => l())
141
183
  //signoutAuth()
142
184
  }
143
185
 
144
186
  setAuthData({ token: data.token || '', features: data.features || [] })
145
187
  } catch (error) {
146
- logout?.()
147
- logoutsuccesfull = true
188
+ // logout?.()
189
+ // logoutsuccesfull = true
190
+ abortController?.abort()
191
+ logoutMfes.forEach((l) => l())
192
+
148
193
  //signoutAuth()
149
194
 
150
195
  setAuthData({ token: '', features: [] })
@@ -185,9 +230,13 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
185
230
  setReqConfig,
186
231
  getJwtTokenAsync,
187
232
  getNewJwtToken,
233
+ registerOnJwtChanges: register,
188
234
  getUserId,
235
+ setCallbackToJwtNotifier,
189
236
  getParsedJwt,
237
+ abortController,
190
238
  getJwtToken,
239
+ // cancelRequest,
191
240
  accessTokenHasExpired,
192
241
  }
193
242
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
@@ -198,11 +247,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
198
247
  }
199
248
  /**
200
249
  * @deprecated use generateSrvAuthBindings
201
- * @param SRV_AUTH
202
- * @param DEVELOPMENT
203
- * @param ENVIRONMENT_TO_OPERATE
204
- * @param logout
205
- * @returns
250
+ *
206
251
  */
207
252
  export function generateSrvAuthBindingsMicroApp(
208
253
  SRV_AUTH: () => string,