@spritz-finance/service-client 0.3.50 → 0.3.52

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.
@@ -0,0 +1,2 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ export declare const createGraphClient: (config: AxiosRequestConfig) => import("axios").AxiosInstance;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createGraphClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const axios_token_interceptor_1 = __importDefault(require("axios-token-interceptor"));
9
+ const credentials_1 = require("./credentials");
10
+ const EXPIRATION_BUFFER_MS = 5 * 60 * 1000; // 5 minute buffer
11
+ const getMaxAge = (res) => {
12
+ return res.expires_in * 1000 - EXPIRATION_BUFFER_MS;
13
+ };
14
+ const headerFormatter = (res) => {
15
+ return 'Bearer ' + res.access_token;
16
+ };
17
+ const interceptor = function (tokenProvider, authenticate) {
18
+ const getToken = tokenProvider.tokenCache(authenticate, { getMaxAge });
19
+ return tokenProvider({ getToken, headerFormatter });
20
+ };
21
+ const createGraphClient = (config) => {
22
+ const serviceClient = axios_1.default.create(config);
23
+ serviceClient.interceptors.request.use(interceptor(axios_token_interceptor_1.default, credentials_1.getGraphCredentials));
24
+ return serviceClient;
25
+ };
26
+ exports.createGraphClient = createGraphClient;
@@ -1,3 +1,4 @@
1
1
  export declare const getServiceCredentials: () => Promise<{
2
2
  access_token: string;
3
3
  }>;
4
+ export declare const getGraphCredentials: () => Promise<any>;
@@ -1,14 +1,40 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getServiceCredentials = void 0;
29
+ exports.getGraphCredentials = exports.getServiceCredentials = void 0;
7
30
  const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
8
31
  const logger_1 = __importDefault(require("@spritz-finance/logger"));
32
+ const axios_1 = __importDefault(require("axios"));
9
33
  const crypto_1 = require("crypto");
10
34
  const jose_1 = require("jose");
35
+ const qs = __importStar(require("qs"));
11
36
  const config_1 = require("./config");
37
+ const params_1 = require("./params");
12
38
  function createSecret(key) {
13
39
  return (0, crypto_1.createSecretKey)(Buffer.from(key, 'utf8'));
14
40
  }
@@ -50,3 +76,22 @@ const getServiceCredentials = async () => {
50
76
  }
51
77
  };
52
78
  exports.getServiceCredentials = getServiceCredentials;
79
+ const getGraphCredentials = async () => {
80
+ try {
81
+ const clientIdParam = `/${config_1.config.env}/auth/serviceClientId`;
82
+ const clientSecretParam = `/${config_1.config.env}/auth/serviceClientSecret`;
83
+ const paramsByKey = await (0, params_1.getParams)([clientIdParam, clientSecretParam]);
84
+ const { data } = await axios_1.default.post(config_1.config.authEndpoint, qs.stringify({
85
+ grant_type: 'client_credentials',
86
+ scope: 'spritz/service',
87
+ client_id: paramsByKey[clientIdParam],
88
+ client_secret: paramsByKey[clientSecretParam],
89
+ }));
90
+ return data;
91
+ }
92
+ catch (e) {
93
+ logger_1.default.error(`Getting credentials failed`, e);
94
+ throw e;
95
+ }
96
+ };
97
+ exports.getGraphCredentials = getGraphCredentials;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GraphClient = void 0;
4
- const serviceClient_1 = require("./serviceClient");
5
- const config_1 = require("./config");
6
4
  const graphql_1 = require("graphql");
5
+ const config_1 = require("./config");
6
+ const createGraphClient_1 = require("./createGraphClient");
7
7
  class GraphClient {
8
8
  constructor() {
9
- this.client = (0, serviceClient_1.createServiceClient)({
9
+ this.client = (0, createGraphClient_1.createGraphClient)({
10
10
  baseURL: config_1.config.graphEndpoint,
11
11
  });
12
12
  }
@@ -1,3 +1 @@
1
- import { AxiosRequestConfig } from 'axios';
2
- export declare const createServiceClient: (config: AxiosRequestConfig) => import("axios").AxiosInstance;
3
1
  export declare const baseClient: import("axios").AxiosInstance;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.baseClient = exports.createServiceClient = void 0;
6
+ exports.baseClient = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const axios_token_interceptor_1 = __importDefault(require("axios-token-interceptor"));
9
9
  const config_1 = require("./config");
@@ -24,7 +24,6 @@ const createServiceClient = (config) => {
24
24
  serviceClient.interceptors.request.use(interceptor(axios_token_interceptor_1.default, credentials_1.getServiceCredentials));
25
25
  return serviceClient;
26
26
  };
27
- exports.createServiceClient = createServiceClient;
28
- exports.baseClient = (0, exports.createServiceClient)({
27
+ exports.baseClient = createServiceClient({
29
28
  baseURL: config_1.config.baseEndpoint,
30
29
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spritz-finance/service-client",
3
- "version": "0.3.50",
3
+ "version": "0.3.52",
4
4
  "description": "Service client",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",