asma-helpers 0.2.4 → 0.2.5

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
@@ -1,5 +1,4 @@
1
1
  import { type History, createBrowserHistory } from 'history';
2
- import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings';
3
2
  export {};
4
3
  declare global {
5
4
  interface Window {
@@ -16,7 +15,7 @@ declare global {
16
15
  }[];
17
16
  __ASMA__SHELL__?: {
18
17
  history?: History;
19
- auth_bindings?: IGenerateSRVAuthBindings;
18
+ auth_bindings?: unknown;
20
19
  isLogged?: () => boolean;
21
20
  logoutUser?: () => void;
22
21
  };
@@ -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;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AACjF,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,wBAAwB,CAAA;YACxC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;YACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;SAC1B,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;SAC1B,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;AAyC5D,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;AA0C5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,CAAC,eAAe,0CAAE,OAAO,KAAI,oBAAoB,EAAE,CAAA;AAEhF,OAAO,EAAW,oBAAoB,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- declare type ObjectType<T> = T extends string ? string : T extends boolean ? boolean : never;
1
+ type ObjectType<T> = T extends string ? string : T extends boolean ? boolean : never;
2
2
  export declare function config<T>(env_var: string, default_value: T): ObjectType<T>;
3
3
  export declare function configWeb<T>(env_var: string, default_value: T): ObjectType<T>;
4
4
  export declare function httpToWs(url: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/helpers/Config.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEpF,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAiB1E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAQ7E;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAInC"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/helpers/Config.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEpF,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAiB1E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAQ7E;AAcD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAInC"}
@@ -4,9 +4,9 @@ interface IBasicEnv {
4
4
  ENVIRONMENT_TO_OPERATE: string;
5
5
  ADVOCA_ACCESS_URL?: string;
6
6
  }
7
- declare type IEnvironmentUrls = typeof EnvironmentsUrls.local;
8
- declare type IKeyEnvironmentUrls = keyof IEnvironmentUrls;
9
- declare type ISrvKeysTransformToWs<T> = T extends `SRV_${infer K}` ? `SRV_${K}_WS` : never;
7
+ type IEnvironmentUrls = typeof EnvironmentsUrls.local;
8
+ type IKeyEnvironmentUrls = keyof IEnvironmentUrls;
9
+ type ISrvKeysTransformToWs<T> = T extends `SRV_${infer K}` ? `SRV_${K}_WS` : never;
10
10
  export declare function generateEnvConfigsBindings<T extends IBasicEnv, K extends (keyof T | IKeyEnvironmentUrls | ISrvKeysTransformToWs<keyof T | IKeyEnvironmentUrls>) & string, S>(envs_import: Promise<{
11
11
  envs: T;
12
12
  }>, required_envs: K[], static_env: S): {
@@ -1 +1 @@
1
- {"version":3,"file":"generateEnvConfigsBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateEnvConfigsBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,UAAU,SAAS;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,aAAK,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAA;AAErD,aAAK,mBAAmB,GAAG,MAAM,gBAAgB,CAAA;AAEjD,aAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;AAIlF,wBAAgB,0BAA0B,CACtC,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,MAAM,EACzG,CAAC,EACH,WAAW,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;EA4DrE"}
1
+ {"version":3,"file":"generateEnvConfigsBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateEnvConfigsBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,UAAU,SAAS;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAA;AAErD,KAAK,mBAAmB,GAAG,MAAM,gBAAgB,CAAA;AAEjD,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;AAIlF,wBAAgB,0BAA0B,CACtC,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,MAAM,EACzG,CAAC,EACH,WAAW,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;EA4DrE"}
@@ -1,24 +1,27 @@
1
+ import type { feature_names_enum } from 'asma-genql-directory/lib';
1
2
  import { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios';
2
3
  import { EnvironmentEnums } from '..';
3
- export interface IGenerateSRVAuthBindings {
4
+ export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): {
5
+ hasFeature: (featureName: feature_names_enum) => boolean;
6
+ getFeatures: () => Set<feature_names_enum> | undefined;
4
7
  isJwtValid: () => boolean;
5
- signin(url: string, headers?: Record<string, string>): Promise<{
8
+ signin: (url: string, headers?: Record<string, string>) => Promise<{
6
9
  token: string;
10
+ features: feature_names_enum[];
7
11
  }>;
8
- srvAuthGet<R>(url: string, headers?: Record<string, string>): Promise<AxiosResponse<R, any>>;
9
- signoutAuth(): Promise<void>;
10
- setReqConfig<T = unknown>(data?: T, responseType?: ResponseType): Promise<AxiosRequestConfig>;
11
- getJwtTokenAsync(): Promise<string>;
12
- getNewJwtToken(): Promise<string>;
13
- getUserId(): string;
14
- getParsedJwt<R = {
12
+ srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any>>;
13
+ signoutAuth: () => Promise<void>;
14
+ setReqConfig: <T = unknown>(data?: T | undefined, responseType?: ResponseType) => Promise<AxiosRequestConfig>;
15
+ getJwtTokenAsync: () => Promise<string>;
16
+ getNewJwtToken: () => Promise<string>;
17
+ getUserId: () => string;
18
+ getParsedJwt: <R_1 = {
15
19
  user_id: string;
16
20
  exp: number;
17
- }>(): R | undefined;
18
- getJwtToken(): string;
19
- accessTokenHasExpired(): boolean;
20
- }
21
- export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, EnvironmentToOperateFn: () => string, logout?: () => void): IGenerateSRVAuthBindings;
21
+ }>() => R_1 | undefined;
22
+ getJwtToken: () => string;
23
+ accessTokenHasExpired: () => boolean;
24
+ };
22
25
  /**
23
26
  * @deprecated use generateSrvAuthBindings
24
27
  * @param SRV_AUTH
@@ -27,5 +30,5 @@ export declare function generateSrvAuthBindings(SRV_AUTH: () => string, DEVELOPM
27
30
  * @param logout
28
31
  * @returns
29
32
  */
30
- export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): IGenerateSRVAuthBindings;
33
+ export declare function generateSrvAuthBindingsMicroApp(SRV_AUTH: () => string, DEVELOPMENT: () => boolean, ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums, logout?: () => void): {};
31
34
  //# 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,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAC/C,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,MAAM,OAAO,CAAA;IACzB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5F,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC7F,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACnC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACjC,SAAS,IAAI,MAAM,CAAA;IACnB,YAAY,CAAC,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,CAAC,GAAG,SAAS,CAAA;IACnE,WAAW,IAAI,MAAM,CAAA;IACrB,qBAAqB,IAAI,OAAO,CAAA;CACnC;AACD,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,wBAAwB,CA+J1B;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,4BAMtB"}
1
+ {"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAY,MAAM,IAAI,CAAA;AAc/C,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;8BAuJc,kBAAkB;;;kBA/FxB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACpB,MAAM;kBAAY,kBAAkB,EAAE;;yBAtCnD,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;;qEAwER,YAAY,KAAG,QAAQ,kBAAkB,CAAC;;;qBAvBtF,MAAM;;iBA0ES,MAAM;aAAO,MAAM;;;iCAjGtB,OAAO;EAiI5C;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,12 +1,26 @@
1
1
  import axios from 'axios';
2
2
  import { EnvironmentEnums, parseJwt } from '..';
3
+ /* export interface IGenerateSRVAuthBindings extends ReturnType<typeof generateSrvAuthBindings> {} */ /*{
4
+ isJwtValid: () => boolean
5
+ signin(url: string, headers?: Record<string, string>): Promise<{ token: string }>
6
+ srvAuthGet<R>(url: string, headers?: Record<string, string>): Promise<AxiosResponse<R, any>>
7
+ signoutAuth(): Promise<void>
8
+ setReqConfig<T = unknown>(data?: T, responseType?: ResponseType): Promise<AxiosRequestConfig>
9
+ getJwtTokenAsync(): Promise<string>
10
+ getNewJwtToken(): Promise<string>
11
+ getUserId(): string
12
+ getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined
13
+ getJwtToken(): string
14
+ accessTokenHasExpired(): boolean
15
+ } */
3
16
  export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOperateFn, logout) {
4
17
  var _a;
5
18
  if ((_a = window.__ASMA__SHELL__) === null || _a === void 0 ? void 0 : _a.auth_bindings) {
6
19
  return window.__ASMA__SHELL__.auth_bindings;
7
20
  }
8
21
  let jwtToken = '';
9
- let parsed_jwt = undefined;
22
+ let features;
23
+ let parsed_jwt;
10
24
  let fetchJwtPromise = null;
11
25
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
12
26
  const isJwtValid = () => !isJwtInvalid();
@@ -37,19 +51,20 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
37
51
  }
38
52
  async function signin(url, headers) {
39
53
  const { data } = await srvAuthGet(url, headers);
40
- setJwtToken(data.token);
54
+ setAuthData(data);
41
55
  return data;
42
56
  }
43
57
  async function signoutAuth() {
44
- setJwtToken('');
58
+ setAuthData({ token: '' });
45
59
  await srvAuthGet('/signout');
46
60
  }
47
61
  function getUserId() {
48
62
  var _a;
49
63
  return ((_a = getParsedJwt()) === null || _a === void 0 ? void 0 : _a['user_id']) || '-1';
50
64
  }
51
- function setJwtToken(token) {
52
- jwtToken = token;
65
+ function setAuthData(data) {
66
+ jwtToken = data.token;
67
+ features = new Set(data.features);
53
68
  }
54
69
  function getJwtToken() {
55
70
  return jwtToken;
@@ -79,7 +94,6 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
79
94
  return res;
80
95
  }
81
96
  async function getNewJwtToken() {
82
- var _a;
83
97
  try {
84
98
  if (!fetchJwtPromise) {
85
99
  fetchJwtPromise = srvAuthGet('/token');
@@ -91,7 +105,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
91
105
  if (!data.token) {
92
106
  throw new Error('Token is not present in the result');
93
107
  }
94
- setJwtToken((_a = data.token) !== null && _a !== void 0 ? _a : '');
108
+ setAuthData({ token: data.token || '', features: data.features || [] });
95
109
  fetchJwtPromise = null;
96
110
  return jwtToken;
97
111
  }
@@ -109,7 +123,15 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
109
123
  }
110
124
  return parsed_jwt;
111
125
  }
126
+ function getFeatures() {
127
+ return features;
128
+ }
129
+ function hasFeature(featureName) {
130
+ return !!(features === null || features === void 0 ? void 0 : features.has(featureName));
131
+ }
112
132
  const auth_bindings = {
133
+ hasFeature,
134
+ getFeatures,
113
135
  isJwtValid,
114
136
  signin,
115
137
  srvAuthGet,
@@ -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.4",
3
+ "version": "0.2.5",
4
4
  "description": "helpers methods for asma",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib",
@@ -16,11 +16,11 @@
16
16
  "author": "",
17
17
  "license": "MIT",
18
18
  "devDependencies": {
19
- "typescript": "^4.7.4"
19
+ "typescript": "^4.9.3"
20
20
  },
21
21
  "dependencies": {
22
22
  "@genql/runtime": "^2.10.0",
23
- "asma-genql-directory": "^1.0.66",
23
+ "asma-genql-directory": "^1.0.68",
24
24
  "axios": "^0.27.2",
25
25
  "history": "^5.3.0",
26
26
  "idb-keyval": "^6.2.0",
package/src/global.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type History, createBrowserHistory } from 'history'
2
- import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
2
+ //import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
3
+ //import type { IGenerateSRVAuthBindings } from './helpers/generateSrvAuthBindings'
3
4
  export {}
4
5
 
5
6
  declare global {
@@ -17,7 +18,7 @@ declare global {
17
18
  }[]
18
19
  __ASMA__SHELL__?: {
19
20
  history?: History
20
- auth_bindings?: IGenerateSRVAuthBindings
21
+ auth_bindings?: unknown //IGenerateSRVAuthBindings
21
22
  isLogged?: () => boolean
22
23
  logoutUser?: () => void
23
24
  }
@@ -1,6 +1,7 @@
1
+ import type { feature_names_enum } from 'asma-genql-directory/lib'
1
2
  import axios, { AxiosRequestConfig, AxiosResponse, ResponseType } from 'axios'
2
3
  import { EnvironmentEnums, parseJwt } from '..'
3
- export interface IGenerateSRVAuthBindings {
4
+ /* export interface IGenerateSRVAuthBindings extends ReturnType<typeof generateSrvAuthBindings> {} */ /*{
4
5
  isJwtValid: () => boolean
5
6
  signin(url: string, headers?: Record<string, string>): Promise<{ token: string }>
6
7
  srvAuthGet<R>(url: string, headers?: Record<string, string>): Promise<AxiosResponse<R, any>>
@@ -12,21 +13,25 @@ export interface IGenerateSRVAuthBindings {
12
13
  getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined
13
14
  getJwtToken(): string
14
15
  accessTokenHasExpired(): boolean
15
- }
16
+ } */
16
17
  export function generateSrvAuthBindings(
17
18
  SRV_AUTH: () => string,
18
19
  DEVELOPMENT: () => boolean,
19
20
  EnvironmentToOperateFn: () => string,
20
21
  logout?: () => void,
21
- ): IGenerateSRVAuthBindings {
22
+ ) {
22
23
  if (window.__ASMA__SHELL__?.auth_bindings) {
23
- return window.__ASMA__SHELL__.auth_bindings
24
+ return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
24
25
  }
25
26
  let jwtToken = ''
26
- let parsed_jwt: any | undefined = undefined
27
27
 
28
- let fetchJwtPromise: Promise<{ data: { message: string; token?: string; errors: { message: string }[] } }> | null =
29
- null
28
+ let features: Set<feature_names_enum> | undefined
29
+
30
+ let parsed_jwt: any | undefined
31
+
32
+ let fetchJwtPromise: Promise<{
33
+ data: { message: string; token?: string; features?: feature_names_enum[]; errors: { message: string }[] }
34
+ }> | null = null
30
35
 
31
36
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
32
37
 
@@ -70,24 +75,26 @@ export function generateSrvAuthBindings(
70
75
  }
71
76
 
72
77
  async function signin(url: string, headers?: Record<string, string>) {
73
- const { data } = await srvAuthGet<{ token: string }>(url, headers)
78
+ const { data } = await srvAuthGet<{ token: string; features: feature_names_enum[] }>(url, headers)
74
79
 
75
- setJwtToken(data.token)
80
+ setAuthData(data)
76
81
 
77
82
  return data
78
83
  }
79
84
 
80
85
  async function signoutAuth() {
81
- setJwtToken('')
86
+ setAuthData({ token: '' })
82
87
  await srvAuthGet('/signout')
83
88
  }
84
89
  function getUserId(): string {
85
90
  return getParsedJwt()?.['user_id'] || '-1'
86
91
  }
87
92
 
88
- function setJwtToken(token: string) {
89
- jwtToken = token
93
+ function setAuthData(data: { token: string; features?: feature_names_enum[] }) {
94
+ jwtToken = data.token
95
+ features = new Set(data.features)
90
96
  }
97
+
91
98
  function getJwtToken() {
92
99
  return jwtToken
93
100
  }
@@ -136,7 +143,7 @@ export function generateSrvAuthBindings(
136
143
  if (!data.token) {
137
144
  throw new Error('Token is not present in the result')
138
145
  }
139
- setJwtToken(data.token ?? '')
146
+ setAuthData({ token: data.token || '', features: data.features || [] })
140
147
 
141
148
  fetchJwtPromise = null
142
149
 
@@ -159,7 +166,15 @@ export function generateSrvAuthBindings(
159
166
  }
160
167
  return parsed_jwt
161
168
  }
169
+ function getFeatures() {
170
+ return features
171
+ }
172
+ function hasFeature(featureName: feature_names_enum) {
173
+ return !!features?.has(featureName)
174
+ }
162
175
  const auth_bindings = {
176
+ hasFeature,
177
+ getFeatures,
163
178
  isJwtValid,
164
179
  signin,
165
180
  srvAuthGet,