@c-rex/core 0.0.7 → 0.0.9

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/dist/index.d.mts CHANGED
@@ -9,16 +9,20 @@ interface CallParams {
9
9
  params?: any;
10
10
  }
11
11
  declare class CrexApi {
12
+ private config;
12
13
  private apiClient;
13
14
  private logger;
14
- constructor(baseUrl: string, logger: any);
15
- execute<T>({ url, method, params, body, headers, }: CallParams): Promise<any>;
15
+ constructor(config: ConfigInterface, logger: any);
16
+ private manageToken;
17
+ private getToken;
18
+ execute<T>({ url, method, params, body, headers, }: CallParams): Promise<T>;
16
19
  }
17
20
 
18
21
  declare class CrexSDK {
19
- customerConfig: ConfigInterface;
20
- logger: any;
21
22
  api: CrexApi;
23
+ logger: any;
24
+ userAuthConfig: any;
25
+ customerConfig: ConfigInterface;
22
26
  constructor();
23
27
  static setConfig(config: ConfigInterface): void;
24
28
  }
package/dist/index.d.ts CHANGED
@@ -9,16 +9,20 @@ interface CallParams {
9
9
  params?: any;
10
10
  }
11
11
  declare class CrexApi {
12
+ private config;
12
13
  private apiClient;
13
14
  private logger;
14
- constructor(baseUrl: string, logger: any);
15
- execute<T>({ url, method, params, body, headers, }: CallParams): Promise<any>;
15
+ constructor(config: ConfigInterface, logger: any);
16
+ private manageToken;
17
+ private getToken;
18
+ execute<T>({ url, method, params, body, headers, }: CallParams): Promise<T>;
16
19
  }
17
20
 
18
21
  declare class CrexSDK {
19
- customerConfig: ConfigInterface;
20
- logger: any;
21
22
  api: CrexApi;
23
+ logger: any;
24
+ userAuthConfig: any;
25
+ customerConfig: ConfigInterface;
22
26
  constructor();
23
27
  static setConfig(config: ConfigInterface): void;
24
28
  }
package/dist/index.js CHANGED
@@ -1,26 +1,72 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/requests.ts
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _class;// src/requests.ts
2
2
  var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
3
3
  var _constants = require('@c-rex/constants');
4
+ var _openidclient = require('openid-client');
5
+ var _utils = require('@c-rex/utils');
6
+ var CREX_TOKEN_HEADER_KEY = "crex-token";
7
+ var CREX_TOKEN_EXPIRY_HEADER_KEY = "crex-token-expiry";
4
8
  var CrexApi = class {
5
9
 
6
10
 
7
- constructor(baseUrl, logger) {
11
+
12
+ constructor(config, logger) {
8
13
  this.apiClient = _axios2.default.create({
9
- baseURL: baseUrl,
14
+ baseURL: config.baseUrl,
10
15
  headers: {
11
16
  "content-Type": "application/json"
12
17
  }
13
18
  });
19
+ this.config = config;
14
20
  this.logger = logger;
15
21
  }
22
+ async manageToken() {
23
+ const headersAux = {};
24
+ if (this.config.OIDC.client.enabled) {
25
+ let token = _utils.getFromMemory.call(void 0, CREX_TOKEN_HEADER_KEY);
26
+ let tokenExpiry = _utils.getFromMemory.call(void 0, CREX_TOKEN_EXPIRY_HEADER_KEY);
27
+ const now = Math.floor(Date.now() / 1e3);
28
+ if (!(token && tokenExpiry > now + 60)) {
29
+ const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();
30
+ token = tokenAux;
31
+ _utils.saveInMemory.call(void 0, token, CREX_TOKEN_HEADER_KEY);
32
+ _utils.saveInMemory.call(void 0, tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);
33
+ }
34
+ headersAux["Authorization"] = `Bearer ${token}`;
35
+ }
36
+ return headersAux;
37
+ }
38
+ async getToken() {
39
+ let token = "";
40
+ let tokenExpiry = 0;
41
+ try {
42
+ const now = Math.floor(Date.now() / 1e3);
43
+ const issuer = await _openidclient.Issuer.discover(this.config.OIDC.client.issuer);
44
+ const client = new issuer.Client({
45
+ client_id: this.config.OIDC.client.id,
46
+ client_secret: this.config.OIDC.client.secret
47
+ });
48
+ const tokenSet = await client.grant({ grant_type: "client_credentials" });
49
+ token = tokenSet.access_token, tokenExpiry = now + tokenSet.expires_at;
50
+ } catch (error) {
51
+ console.log("error", `API.getToken error when request ${this.config.OIDC.client.issuer}. Error: ${error}`);
52
+ }
53
+ return {
54
+ token,
55
+ tokenExpiry
56
+ };
57
+ }
16
58
  async execute({
17
59
  url,
18
60
  method,
19
61
  params,
20
62
  body,
21
- headers
63
+ headers = {}
22
64
  }) {
23
65
  let response = void 0;
66
+ headers = {
67
+ ...headers,
68
+ ...await this.manageToken()
69
+ };
24
70
  for (let retry = 0; retry < _constants.API.MAX_RETRY; retry++) {
25
71
  try {
26
72
  response = await this.apiClient.request({
@@ -30,9 +76,15 @@ var CrexApi = class {
30
76
  params,
31
77
  headers
32
78
  });
79
+ break;
33
80
  } catch (error) {
34
- this.logger.log("error", `API.execute error when request ${url}. Error: ${error}`);
35
- throw error;
81
+ console.log(
82
+ "error",
83
+ `API.execute ${retry + 1}\xBA error when request ${url}. Error: ${error}`
84
+ );
85
+ if (retry === _constants.API.MAX_RETRY - 1) {
86
+ throw error;
87
+ }
36
88
  }
37
89
  }
38
90
  if (response) {
@@ -42,76 +94,45 @@ var CrexApi = class {
42
94
  }
43
95
  };
44
96
 
45
- // src/cookies.ts
46
- var GLOBAL_KEY = "__CREX_INITIAL_CONFIG__";
47
- var CONFIG_COOKIE_KEY = "crex_config";
48
- function isBrowser() {
49
- return typeof window !== "undefined" && typeof document !== "undefined";
50
- }
51
- function parseCookies() {
52
- const cookies = {};
53
- if (typeof document === "undefined") {
54
- return cookies;
55
- }
56
- document.cookie.split(";").forEach((cookie) => {
57
- const [key, value] = cookie.split("=");
58
- if (key && value) {
59
- cookies[key.trim()] = decodeURIComponent(value.trim());
60
- }
61
- });
62
- return cookies;
63
- }
64
- function setCookie(name, value, days = 30) {
65
- if (typeof document === "undefined") return;
66
- const expires = new Date(Date.now() + days * 86400 * 1e3).toUTCString();
67
- document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;
68
- }
69
- function setConfig(config) {
70
- if (isBrowser()) {
71
- setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));
72
- } else {
73
- if (typeof global !== "undefined" && !(GLOBAL_KEY in global)) {
74
- global[GLOBAL_KEY] = null;
75
- }
76
- const globalConfig = global[GLOBAL_KEY];
77
- if (globalConfig === null) {
78
- global[GLOBAL_KEY] = config;
79
- }
80
- }
81
- }
82
- function getConfig() {
83
- let returnValue;
84
- if (isBrowser()) {
85
- const cookies = parseCookies();
86
- const configStr = cookies[CONFIG_COOKIE_KEY];
87
- if (configStr) {
88
- try {
89
- return JSON.parse(configStr);
90
- } catch (e) {
91
- return null;
92
- }
93
- }
94
- return null;
95
- } else {
96
- returnValue = global[GLOBAL_KEY];
97
- }
98
- return returnValue;
99
- }
100
-
101
97
  // src/sdk.ts
102
- var CrexSDK = class {
98
+
99
+
100
+ var CrexSDK = (_class = class {
103
101
 
104
102
 
103
+ __init() {this.userAuthConfig = {}}
105
104
 
106
- constructor() {
107
- const config = getConfig();
105
+ constructor() {;_class.prototype.__init.call(this);
106
+ const config = _utils.getFromMemory.call(void 0, _constants.SDK_CONFIG_KEY);
108
107
  this.customerConfig = config;
109
- this.api = new CrexApi(this.customerConfig.baseUrl, null);
108
+ this.api = new CrexApi(this.customerConfig, null);
109
+ const user = this.customerConfig.OIDC.user;
110
+ this.userAuthConfig = {
111
+ providers: [
112
+ {
113
+ id: "crex",
114
+ name: "CREX",
115
+ type: "oauth",
116
+ clientId: user.id,
117
+ wellKnown: user.issuer,
118
+ clientSecret: user.secret,
119
+ authorization: { params: { scope: user.scope } },
120
+ profile(profile) {
121
+ return {
122
+ id: profile.id || "fake Id",
123
+ name: profile.name || "Fake Name",
124
+ email: profile.email || "fake Email",
125
+ image: profile.image || "fake Image"
126
+ };
127
+ }
128
+ }
129
+ ]
130
+ };
110
131
  }
111
132
  static setConfig(config) {
112
- setConfig(config);
133
+ _utils.saveInMemory.call(void 0, config, _constants.SDK_CONFIG_KEY);
113
134
  }
114
- };
135
+ }, _class);
115
136
 
116
137
 
117
138
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/periotto/Desktop/workspace/c-rex.net-web-client-foundation/packages/core/dist/index.js","../src/requests.ts","../src/cookies.ts","../src/sdk.ts"],"names":[],"mappings":"AAAA;ACAA,4EAA4D;AAC5D,6CAAoB;AAeb,IAAM,QAAA,EAAN,MAAc;AAAA,EACT;AAAA,EACA;AAAA,EAED,WAAA,CAAY,OAAA,EAAiB,MAAA,EAAa;AAC7C,IAAA,IAAA,CAAK,UAAA,EAAY,eAAA,CAAM,MAAA,CAAO;AAAA,MAC1B,OAAA,EAAS,OAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACL,cAAA,EAAgB;AAAA,MACpB;AAAA,IACJ,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,OAAA,EAAS,MAAA;AAAA,EAClB;AAAA,EAEA,MAAM,OAAA,CAAW;AAAA,IACb,GAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,EACJ,CAAA,EAA6B;AACzB,IAAA,IAAI,SAAA,EAA8C,KAAA,CAAA;AAElD,IAAA,IAAA,CAAA,IAAS,MAAA,EAAQ,CAAA,EAAG,MAAA,EAAQ,cAAA,CAAI,SAAA,EAAW,KAAA,EAAA,EAAS;AAChD,MAAA,IAAI;AACA,QAAA,SAAA,EAAW,MAAM,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ;AAAA,UACpC,GAAA;AAAA,UACA,MAAA;AAAA,UACA,IAAA,EAAM,IAAA;AAAA,UACN,MAAA;AAAA,UACA;AAAA,QACJ,CAAC,CAAA;AAAA,MACL,EAAA,MAAA,CAAS,KAAA,EAAO;AACZ,QAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,OAAA,EAAS,CAAA,+BAAA,EAAkC,GAAG,CAAA,SAAA,EAAY,KAAK,CAAA,CAAA;AACzE,QAAA;AACV,MAAA;AACJ,IAAA;AAEc,IAAA;AACM,MAAA;AACpB,IAAA;AAEwE,IAAA;AAC5E,EAAA;AACJ;ADjBwF;AACA;AE5CrE;AACO;AAEL;AAC2C,EAAA;AAChE;AAEgD;AACH,EAAA;AAEJ,EAAA;AAC1B,IAAA;AACX,EAAA;AAE6C,EAAA;AACJ,IAAA;AACnB,IAAA;AACuC,MAAA;AACzD,IAAA;AACH,EAAA;AAEM,EAAA;AACX;AAE2D;AAClB,EAAA;AAEkC,EAAA;AACW,EAAA;AACtF;AAEuD;AAElC,EAAA;AACsC,IAAA;AAChD,EAAA;AAC2D,IAAA;AAC5B,MAAA;AAClC,IAAA;AAE+C,IAAA;AAEpB,IAAA;AACO,MAAA;AAClC,IAAA;AACJ,EAAA;AACJ;AAEwD;AAChD,EAAA;AAEa,EAAA;AACgB,IAAA;AACc,IAAA;AAC5B,IAAA;AACP,MAAA;AAC2B,QAAA;AACvB,MAAA;AACG,QAAA;AACX,MAAA;AACJ,IAAA;AACO,IAAA;AAEJ,EAAA;AACqC,IAAA;AAC5C,EAAA;AAEO,EAAA;AACX;AF+BwF;AACA;AGhGnE;AACV,EAAA;AACA,EAAA;AACA,EAAA;AAEc,EAAA;AACQ,IAAA;AAEH,IAAA;AACkC,IAAA;AAC5D,EAAA;AAEiD,EAAA;AAC7B,IAAA;AACpB,EAAA;AACJ;AH+FwF;AACA;AACA;AACA","file":"/Users/periotto/Desktop/workspace/c-rex.net-web-client-foundation/packages/core/dist/index.js","sourcesContent":[null,"import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API } from \"@c-rex/constants\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private apiClient: AxiosInstance;\n private logger: any;\n\n public constructor(baseUrl: string, logger: any) {\n this.apiClient = axios.create({\n baseURL: baseUrl,\n headers: {\n \"content-Type\": \"application/json\",\n },\n });\n this.logger = logger;\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers,\n }: CallParams): Promise<any> {\n let response: APIGenericResponse<T> | undefined = undefined;\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n } catch (error) {\n this.logger.log(\"error\", `API.execute error when request ${url}. Error: ${error}`);\n throw error;\n }\n }\n\n if (response) {\n return response.data\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}\n","const GLOBAL_KEY = '__CREX_INITIAL_CONFIG__';\nconst CONFIG_COOKIE_KEY = 'crex_config';\n\nfunction isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction parseCookies(): Record<string, string> {\n const cookies: Record<string, string> = {};\n\n if (typeof document === 'undefined') {\n return cookies;\n }\n\n document.cookie.split(';').forEach(cookie => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n\n return cookies;\n}\n\nfunction setCookie(name: string, value: string, days = 30) {\n if (typeof document === 'undefined') return;\n\n const expires = new Date(Date.now() + days * 86400 * 1000).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\n\nexport function setConfig(config: Record<string, any>) {\n\n if (isBrowser()) {\n setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));\n } else {\n if (typeof global !== 'undefined' && !(GLOBAL_KEY in global)) {\n (global as any)[GLOBAL_KEY] = null;\n }\n\n const globalConfig = (global as any)[GLOBAL_KEY] as any;\n\n if (globalConfig === null) {\n (global as any)[GLOBAL_KEY] = config;\n }\n }\n}\n\nexport function getConfig(): Record<string, any> | null {\n let returnValue\n\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[CONFIG_COOKIE_KEY];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n\n } else {\n returnValue = (global as any)[GLOBAL_KEY];\n }\n\n return returnValue\n}\n","import { CrexApi } from \"./requests\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getConfig, setConfig } from \"./cookies\";\n\nexport class CrexSDK {\n public customerConfig!: ConfigInterface;\n public logger!: any;\n public api!: CrexApi;\n\n public constructor() {\n const config = getConfig();\n\n this.customerConfig = config as ConfigInterface;\n this.api = new CrexApi(this.customerConfig.baseUrl, null);\n }\n\n public static setConfig(config: ConfigInterface) {\n setConfig(config);\n }\n}"]}
1
+ {"version":3,"sources":["/Users/periotto/Desktop/workspace/c-rex.net-web-client-foundation/packages/core/dist/index.js","../src/requests.ts","../src/sdk.ts"],"names":[],"mappings":"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","file":"/Users/periotto/Desktop/workspace/c-rex.net-web-client-foundation/packages/core/dist/index.js","sourcesContent":[null,"import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getFromMemory, saveInMemory } from \"@c-rex/utils\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private config: ConfigInterface;\n private apiClient: AxiosInstance;\n private logger: any;\n\n public constructor(config: ConfigInterface, logger: any) {\n this.apiClient = axios.create({\n baseURL: config.baseUrl,\n headers: {\n \"content-Type\": \"application/json\",\n },\n });\n\n this.config = config;\n this.logger = logger;\n }\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.config.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.config.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.config.OIDC.client.id,\n client_secret: this.config.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!,\n tokenExpiry = now + tokenSet.expires_at!\n } catch (error) {\n console.log(\"error\", `API.getToken error when request ${this.config.OIDC.client.issuer}. Error: ${error}`);\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","import { SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { CrexApi } from \"./requests\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getFromMemory, saveInMemory } from \"@c-rex/utils\";\n\n\nexport class CrexSDK {\n public api!: CrexApi;\n public logger!: any;\n public userAuthConfig: any = {};\n public customerConfig!: ConfigInterface;\n\n public constructor() {\n const config = getFromMemory(SDK_CONFIG_KEY);\n\n this.customerConfig = config as ConfigInterface;\n this.api = new CrexApi(this.customerConfig, null);\n\n const user = this.customerConfig.OIDC.user;\n this.userAuthConfig = {\n providers: [\n {\n id: \"crex\",\n name: \"CREX\",\n type: \"oauth\",\n clientId: user.id,\n wellKnown: user.issuer,\n clientSecret: user.secret,\n authorization: { params: { scope: user.scope } },\n profile(profile: any) {\n return {\n id: profile.id || \"fake Id\",\n name: profile.name || \"Fake Name\",\n email: profile.email || \"fake Email\",\n image: profile.image || \"fake Image\",\n }\n },\n },\n ]\n }\n }\n\n public static setConfig(config: ConfigInterface) {\n saveInMemory(config, SDK_CONFIG_KEY);\n }\n}"]}
package/dist/index.mjs CHANGED
@@ -1,26 +1,72 @@
1
1
  // src/requests.ts
2
2
  import axios from "axios";
3
3
  import { API } from "@c-rex/constants";
4
+ import { Issuer } from "openid-client";
5
+ import { getFromMemory, saveInMemory } from "@c-rex/utils";
6
+ var CREX_TOKEN_HEADER_KEY = "crex-token";
7
+ var CREX_TOKEN_EXPIRY_HEADER_KEY = "crex-token-expiry";
4
8
  var CrexApi = class {
9
+ config;
5
10
  apiClient;
6
11
  logger;
7
- constructor(baseUrl, logger) {
12
+ constructor(config, logger) {
8
13
  this.apiClient = axios.create({
9
- baseURL: baseUrl,
14
+ baseURL: config.baseUrl,
10
15
  headers: {
11
16
  "content-Type": "application/json"
12
17
  }
13
18
  });
19
+ this.config = config;
14
20
  this.logger = logger;
15
21
  }
22
+ async manageToken() {
23
+ const headersAux = {};
24
+ if (this.config.OIDC.client.enabled) {
25
+ let token = getFromMemory(CREX_TOKEN_HEADER_KEY);
26
+ let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);
27
+ const now = Math.floor(Date.now() / 1e3);
28
+ if (!(token && tokenExpiry > now + 60)) {
29
+ const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();
30
+ token = tokenAux;
31
+ saveInMemory(token, CREX_TOKEN_HEADER_KEY);
32
+ saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);
33
+ }
34
+ headersAux["Authorization"] = `Bearer ${token}`;
35
+ }
36
+ return headersAux;
37
+ }
38
+ async getToken() {
39
+ let token = "";
40
+ let tokenExpiry = 0;
41
+ try {
42
+ const now = Math.floor(Date.now() / 1e3);
43
+ const issuer = await Issuer.discover(this.config.OIDC.client.issuer);
44
+ const client = new issuer.Client({
45
+ client_id: this.config.OIDC.client.id,
46
+ client_secret: this.config.OIDC.client.secret
47
+ });
48
+ const tokenSet = await client.grant({ grant_type: "client_credentials" });
49
+ token = tokenSet.access_token, tokenExpiry = now + tokenSet.expires_at;
50
+ } catch (error) {
51
+ console.log("error", `API.getToken error when request ${this.config.OIDC.client.issuer}. Error: ${error}`);
52
+ }
53
+ return {
54
+ token,
55
+ tokenExpiry
56
+ };
57
+ }
16
58
  async execute({
17
59
  url,
18
60
  method,
19
61
  params,
20
62
  body,
21
- headers
63
+ headers = {}
22
64
  }) {
23
65
  let response = void 0;
66
+ headers = {
67
+ ...headers,
68
+ ...await this.manageToken()
69
+ };
24
70
  for (let retry = 0; retry < API.MAX_RETRY; retry++) {
25
71
  try {
26
72
  response = await this.apiClient.request({
@@ -30,9 +76,15 @@ var CrexApi = class {
30
76
  params,
31
77
  headers
32
78
  });
79
+ break;
33
80
  } catch (error) {
34
- this.logger.log("error", `API.execute error when request ${url}. Error: ${error}`);
35
- throw error;
81
+ console.log(
82
+ "error",
83
+ `API.execute ${retry + 1}\xBA error when request ${url}. Error: ${error}`
84
+ );
85
+ if (retry === API.MAX_RETRY - 1) {
86
+ throw error;
87
+ }
36
88
  }
37
89
  }
38
90
  if (response) {
@@ -42,74 +94,43 @@ var CrexApi = class {
42
94
  }
43
95
  };
44
96
 
45
- // src/cookies.ts
46
- var GLOBAL_KEY = "__CREX_INITIAL_CONFIG__";
47
- var CONFIG_COOKIE_KEY = "crex_config";
48
- function isBrowser() {
49
- return typeof window !== "undefined" && typeof document !== "undefined";
50
- }
51
- function parseCookies() {
52
- const cookies = {};
53
- if (typeof document === "undefined") {
54
- return cookies;
55
- }
56
- document.cookie.split(";").forEach((cookie) => {
57
- const [key, value] = cookie.split("=");
58
- if (key && value) {
59
- cookies[key.trim()] = decodeURIComponent(value.trim());
60
- }
61
- });
62
- return cookies;
63
- }
64
- function setCookie(name, value, days = 30) {
65
- if (typeof document === "undefined") return;
66
- const expires = new Date(Date.now() + days * 86400 * 1e3).toUTCString();
67
- document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;
68
- }
69
- function setConfig(config) {
70
- if (isBrowser()) {
71
- setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));
72
- } else {
73
- if (typeof global !== "undefined" && !(GLOBAL_KEY in global)) {
74
- global[GLOBAL_KEY] = null;
75
- }
76
- const globalConfig = global[GLOBAL_KEY];
77
- if (globalConfig === null) {
78
- global[GLOBAL_KEY] = config;
79
- }
80
- }
81
- }
82
- function getConfig() {
83
- let returnValue;
84
- if (isBrowser()) {
85
- const cookies = parseCookies();
86
- const configStr = cookies[CONFIG_COOKIE_KEY];
87
- if (configStr) {
88
- try {
89
- return JSON.parse(configStr);
90
- } catch {
91
- return null;
92
- }
93
- }
94
- return null;
95
- } else {
96
- returnValue = global[GLOBAL_KEY];
97
- }
98
- return returnValue;
99
- }
100
-
101
97
  // src/sdk.ts
98
+ import { SDK_CONFIG_KEY } from "@c-rex/constants";
99
+ import { getFromMemory as getFromMemory2, saveInMemory as saveInMemory2 } from "@c-rex/utils";
102
100
  var CrexSDK = class {
103
- customerConfig;
104
- logger;
105
101
  api;
102
+ logger;
103
+ userAuthConfig = {};
104
+ customerConfig;
106
105
  constructor() {
107
- const config = getConfig();
106
+ const config = getFromMemory2(SDK_CONFIG_KEY);
108
107
  this.customerConfig = config;
109
- this.api = new CrexApi(this.customerConfig.baseUrl, null);
108
+ this.api = new CrexApi(this.customerConfig, null);
109
+ const user = this.customerConfig.OIDC.user;
110
+ this.userAuthConfig = {
111
+ providers: [
112
+ {
113
+ id: "crex",
114
+ name: "CREX",
115
+ type: "oauth",
116
+ clientId: user.id,
117
+ wellKnown: user.issuer,
118
+ clientSecret: user.secret,
119
+ authorization: { params: { scope: user.scope } },
120
+ profile(profile) {
121
+ return {
122
+ id: profile.id || "fake Id",
123
+ name: profile.name || "Fake Name",
124
+ email: profile.email || "fake Email",
125
+ image: profile.image || "fake Image"
126
+ };
127
+ }
128
+ }
129
+ ]
130
+ };
110
131
  }
111
132
  static setConfig(config) {
112
- setConfig(config);
133
+ saveInMemory2(config, SDK_CONFIG_KEY);
113
134
  }
114
135
  };
115
136
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/requests.ts","../src/cookies.ts","../src/sdk.ts"],"sourcesContent":["import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API } from \"@c-rex/constants\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private apiClient: AxiosInstance;\n private logger: any;\n\n public constructor(baseUrl: string, logger: any) {\n this.apiClient = axios.create({\n baseURL: baseUrl,\n headers: {\n \"content-Type\": \"application/json\",\n },\n });\n this.logger = logger;\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers,\n }: CallParams): Promise<any> {\n let response: APIGenericResponse<T> | undefined = undefined;\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n } catch (error) {\n this.logger.log(\"error\", `API.execute error when request ${url}. Error: ${error}`);\n throw error;\n }\n }\n\n if (response) {\n return response.data\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}\n","const GLOBAL_KEY = '__CREX_INITIAL_CONFIG__';\nconst CONFIG_COOKIE_KEY = 'crex_config';\n\nfunction isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction parseCookies(): Record<string, string> {\n const cookies: Record<string, string> = {};\n\n if (typeof document === 'undefined') {\n return cookies;\n }\n\n document.cookie.split(';').forEach(cookie => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n\n return cookies;\n}\n\nfunction setCookie(name: string, value: string, days = 30) {\n if (typeof document === 'undefined') return;\n\n const expires = new Date(Date.now() + days * 86400 * 1000).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\n\nexport function setConfig(config: Record<string, any>) {\n\n if (isBrowser()) {\n setCookie(CONFIG_COOKIE_KEY, JSON.stringify(config));\n } else {\n if (typeof global !== 'undefined' && !(GLOBAL_KEY in global)) {\n (global as any)[GLOBAL_KEY] = null;\n }\n\n const globalConfig = (global as any)[GLOBAL_KEY] as any;\n\n if (globalConfig === null) {\n (global as any)[GLOBAL_KEY] = config;\n }\n }\n}\n\nexport function getConfig(): Record<string, any> | null {\n let returnValue\n\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[CONFIG_COOKIE_KEY];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n\n } else {\n returnValue = (global as any)[GLOBAL_KEY];\n }\n\n return returnValue\n}\n","import { CrexApi } from \"./requests\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getConfig, setConfig } from \"./cookies\";\n\nexport class CrexSDK {\n public customerConfig!: ConfigInterface;\n public logger!: any;\n public api!: CrexApi;\n\n public constructor() {\n const config = getConfig();\n\n this.customerConfig = config as ConfigInterface;\n this.api = new CrexApi(this.customerConfig.baseUrl, null);\n }\n\n public static setConfig(config: ConfigInterface) {\n setConfig(config);\n }\n}"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/requests.ts","../src/sdk.ts"],"sourcesContent":["import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getFromMemory, saveInMemory } from \"@c-rex/utils\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private config: ConfigInterface;\n private apiClient: AxiosInstance;\n private logger: any;\n\n public constructor(config: ConfigInterface, logger: any) {\n this.apiClient = axios.create({\n baseURL: config.baseUrl,\n headers: {\n \"content-Type\": \"application/json\",\n },\n });\n\n this.config = config;\n this.logger = logger;\n }\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.config.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.config.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.config.OIDC.client.id,\n client_secret: this.config.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!,\n tokenExpiry = now + tokenSet.expires_at!\n } catch (error) {\n console.log(\"error\", `API.getToken error when request ${this.config.OIDC.client.issuer}. Error: ${error}`);\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","import { SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { CrexApi } from \"./requests\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { getFromMemory, saveInMemory } from \"@c-rex/utils\";\n\n\nexport class CrexSDK {\n public api!: CrexApi;\n public logger!: any;\n public userAuthConfig: any = {};\n public customerConfig!: ConfigInterface;\n\n public constructor() {\n const config = getFromMemory(SDK_CONFIG_KEY);\n\n this.customerConfig = config as ConfigInterface;\n this.api = new CrexApi(this.customerConfig, null);\n\n const user = this.customerConfig.OIDC.user;\n this.userAuthConfig = {\n providers: [\n {\n id: \"crex\",\n name: \"CREX\",\n type: \"oauth\",\n clientId: user.id,\n wellKnown: user.issuer,\n clientSecret: user.secret,\n authorization: { params: { scope: user.scope } },\n profile(profile: any) {\n return {\n id: profile.id || \"fake Id\",\n name: profile.name || \"Fake Name\",\n email: profile.email || \"fake Email\",\n image: profile.image || \"fake Image\",\n }\n },\n },\n ]\n }\n }\n\n public static setConfig(config: ConfigInterface) {\n saveInMemory(config, SDK_CONFIG_KEY);\n }\n}"],"mappings":"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","names":["getFromMemory","saveInMemory"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c-rex/core",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -46,7 +46,10 @@
46
46
  "@c-rex/constants": "*",
47
47
  "@c-rex/interfaces": "*",
48
48
  "@c-rex/types": "*",
49
+ "@c-rex/utils": "*",
49
50
  "axios": "^1.8.4",
51
+ "next-auth": "^4.24.11",
52
+ "openid-client": "^5.7.1",
50
53
  "winston": "^3.17.0",
51
54
  "winston-graylog2": "^2.1.2"
52
55
  }