asma-helpers 0.2.45 → 0.2.47

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,6 +7,10 @@ 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>;
@@ -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;;;4BA0CuC,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;;;4BA8CuC,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();
@@ -34,7 +40,8 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
34
40
  */
35
41
  async function genqlClient(options = {}) {
36
42
  //let req_headers: Record<string, string> = {}
37
- const { anonymous, headers, ...rest } = options;
43
+ var _a;
44
+ const { anonymous, headers, signal, ...rest } = options;
38
45
  if (!serviceUrl()) {
39
46
  console.warn('requred param srv_url is undefined, please check EnvConfig object!');
40
47
  }
@@ -51,11 +58,13 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
51
58
  ...headers,
52
59
  });
53
60
  },
61
+ signal: signal !== null && signal !== void 0 ? signal : (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
54
62
  batch: { batchInterval: 50, maxBatchSize: 100 },
55
63
  ...rest,
56
64
  });
57
65
  }
58
66
  async function genqlClientWs() {
67
+ var _a;
59
68
  if ( /* accessTokenHasExpired() || */!wsClient) {
60
69
  //const req_headers = ((await setReqConfig()).headers ?? {}) as Record<string, string>
61
70
  //setJwtExp(req_headers['Authorization'])
@@ -63,6 +72,7 @@ export function generateGenqlClient({ setReqConfig, createClient, serviceUrl, pa
63
72
  url: `${httpToWs(serviceUrl())}${path}`,
64
73
  cache: 'reload',
65
74
  batch: { batchInterval: 50, maxBatchSize: 100 },
75
+ signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
66
76
  subscription: {
67
77
  reconnect: true,
68
78
  reconnectionAttempts: 5,
@@ -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;QACb,QAAQ,GAAG,IAAI,CAAA;IACnB,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,SAAS,gBAAgB;QACrB,MAAM,GAAG,IAAI,CAAA;QACb,QAAQ,GAAG,IAAI,CAAA;IACnB,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,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,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,CAAA;AAC3E,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;8BA0Mc,YAAY;;;kBAnHlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eAKpB,MAAM;kBAAY,YAAY,EAAE;;yBA5C7C,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAwFR,YAAY;;;;;;;;qBArHvB,EAAE;;;;qBAsFnC,MAAM;yCA9EgB,MAAM,IAAI;;iBAiKjB,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,13 +20,31 @@ 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()}`;
47
+ // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
24
48
  url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url;
25
49
  }
26
50
  else {
@@ -28,6 +52,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
28
52
  }
29
53
  }
30
54
  return axios.get(`${SRV_AUTH()}${url}`, {
55
+ signal: (_a = getAbortController()) === null || _a === void 0 ? void 0 : _a.signal,
31
56
  headers: {
32
57
  ...headers,
33
58
  'asma-origin': window.location.origin,
@@ -43,9 +68,12 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
43
68
  return accessTokenExpDate - 10 <= nowTime;
44
69
  }
45
70
  async function signin(url, headers) {
71
+ if (abortController.signal.aborted) {
72
+ abortController = new AbortController();
73
+ }
46
74
  const { data } = await srvAuthGet(url, headers);
47
75
  setAuthData(data);
48
- logoutsuccesfull = false;
76
+ // logoutsuccesfull = false
49
77
  return data;
50
78
  }
51
79
  async function signoutAuth() {
@@ -58,6 +86,11 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
58
86
  }
59
87
  function setAuthData(data) {
60
88
  jwtToken = data.token;
89
+ if (jwtToken) {
90
+ dispatch('jwt_changed', {}, false);
91
+ parsed_jwt = parseJwt(jwtToken);
92
+ }
93
+ notifyChangedJwt();
61
94
  features = new Set(data.features);
62
95
  parsed_jwt = undefined;
63
96
  }
@@ -86,8 +119,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
86
119
  return res;
87
120
  }
88
121
  async function getNewJwtToken() {
89
- if (logoutsuccesfull)
90
- return;
122
+ //if (logoutsuccesfull) return
91
123
  try {
92
124
  if (!fetchJwtPromise) {
93
125
  fetchJwtPromise = srvAuthGet('/token');
@@ -95,14 +127,18 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
95
127
  const { data } = await fetchJwtPromise;
96
128
  if (!data || data.errors || data.message != 'Success' || !data.token) {
97
129
  logout === null || logout === void 0 ? void 0 : logout();
98
- logoutsuccesfull = true;
130
+ //logoutsuccesfull = true
131
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
132
+ logoutMfes.forEach((l) => l());
99
133
  //signoutAuth()
100
134
  }
101
135
  setAuthData({ token: data.token || '', features: data.features || [] });
102
136
  }
103
137
  catch (error) {
104
- logout === null || logout === void 0 ? void 0 : logout();
105
- logoutsuccesfull = true;
138
+ // logout?.()
139
+ // logoutsuccesfull = true
140
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
141
+ logoutMfes.forEach((l) => l());
106
142
  //signoutAuth()
107
143
  setAuthData({ token: '', features: [] });
108
144
  console.error(error);
@@ -139,9 +175,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
139
175
  setReqConfig,
140
176
  getJwtTokenAsync,
141
177
  getNewJwtToken,
178
+ registerOnJwtChanges: register,
142
179
  getUserId,
180
+ setCallbackToJwtNotifier,
143
181
  getParsedJwt,
182
+ abortController,
144
183
  getJwtToken,
184
+ // cancelRequest,
145
185
  accessTokenHasExpired,
146
186
  };
147
187
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {};
@@ -150,11 +190,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
150
190
  }
151
191
  /**
152
192
  * @deprecated use generateSrvAuthBindings
153
- * @param SRV_AUTH
154
- * @param DEVELOPMENT
155
- * @param ENVIRONMENT_TO_OPERATE
156
- * @param logout
157
- * @returns
193
+ *
158
194
  */
159
195
  export function generateSrvAuthBindingsMicroApp(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout) {
160
196
  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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asma-helpers",
3
- "version": "0.2.45",
3
+ "version": "0.2.47",
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()
@@ -63,7 +72,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
63
72
  async function genqlClient(options: CliOptions = {}): Promise<T> {
64
73
  //let req_headers: Record<string, string> = {}
65
74
 
66
- const { anonymous, headers, ...rest } = options
75
+ const { anonymous, headers, signal, ...rest } = options
67
76
 
68
77
  if (!serviceUrl()) {
69
78
  console.warn('requred param srv_url is undefined, please check EnvConfig object!')
@@ -79,6 +88,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
79
88
  ...(options.anonymous ? {} : (((await setReqConfig()).headers ?? {}) as Record<string, string>)),
80
89
  ...headers,
81
90
  }),
91
+ signal: signal ?? getAbortController()?.signal,
82
92
  batch: { batchInterval: 50, maxBatchSize: 100 },
83
93
  ...rest,
84
94
  })
@@ -94,6 +104,7 @@ export function generateGenqlClient<T extends ReturnType<typeof createClient>>({
94
104
  url: `${httpToWs(serviceUrl())}${path}`,
95
105
  cache: 'reload',
96
106
  batch: { batchInterval: 50, maxBatchSize: 100 },
107
+ signal: getAbortController()?.signal,
97
108
  subscription: {
98
109
  reconnect: true,
99
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,