@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.
- package/lib/createGraphClient.d.ts +2 -0
- package/lib/createGraphClient.js +26 -0
- package/lib/credentials.d.ts +1 -0
- package/lib/credentials.js +46 -1
- package/lib/graphClient.js +3 -3
- package/lib/serviceClient.d.ts +0 -2
- package/lib/serviceClient.js +2 -3
- package/package.json +1 -1
|
@@ -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;
|
package/lib/credentials.d.ts
CHANGED
package/lib/credentials.js
CHANGED
|
@@ -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;
|
package/lib/graphClient.js
CHANGED
|
@@ -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,
|
|
9
|
+
this.client = (0, createGraphClient_1.createGraphClient)({
|
|
10
10
|
baseURL: config_1.config.graphEndpoint,
|
|
11
11
|
});
|
|
12
12
|
}
|
package/lib/serviceClient.d.ts
CHANGED
package/lib/serviceClient.js
CHANGED
|
@@ -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 =
|
|
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.
|
|
28
|
-
exports.baseClient = (0, exports.createServiceClient)({
|
|
27
|
+
exports.baseClient = createServiceClient({
|
|
29
28
|
baseURL: config_1.config.baseEndpoint,
|
|
30
29
|
});
|