@stigg/node-server-sdk 3.6.0 → 3.7.0

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.
@@ -1,6 +1,6 @@
1
+ import { AxiosInstance } from 'axios';
1
2
  import { ApolloQueryResult } from '@apollo/client/core';
2
- import { GetSdkConfigurationQuery } from '@stigg/api-client-js/src/generated/sdk';
3
- import { GetEntitlementsQuery, GetPaywallQuery } from '@stigg/api-client-js/src/generated/sdk';
3
+ import { GetEntitlementsQuery, GetPaywallQuery, GetSdkConfigurationQuery } from '@stigg/api-client-js/src/generated/sdk';
4
4
  import { LoggerService } from './loggerService';
5
5
  declare type EdgeApiClientConfiguration = {
6
6
  apiKey: string;
@@ -15,5 +15,10 @@ export declare class EdgeApiClient {
15
15
  getEntitlements(customerId: string, resourceId: string | undefined): Promise<ApolloQueryResult<GetEntitlementsQuery>>;
16
16
  getSdkConfiguration(): Promise<ApolloQueryResult<GetSdkConfigurationQuery>>;
17
17
  private get;
18
+ private initHttpClient;
19
+ /**
20
+ * Public for mocking in tests
21
+ */
22
+ enableRetries(axiosInstance: AxiosInstance): void;
18
23
  }
19
24
  export {};
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -6,13 +25,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
25
  exports.EdgeApiClient = void 0;
7
26
  const axios_1 = __importDefault(require("axios"));
8
27
  const requestHeaders_1 = require("../utils/requestHeaders");
28
+ const axios_retry_1 = __importDefault(require("axios-retry"));
29
+ const http = __importStar(require("http"));
30
+ const https = __importStar(require("https"));
31
+ const REQUEST_TIMEOUT_MS = 60 * 1000; // 1 minute
32
+ const REQUEST_RETRY_COUNT = 3;
9
33
  class EdgeApiClient {
10
34
  constructor(config, loggerService) {
11
35
  const { apiKey, baseEdgeUri } = config;
12
- this.httpClient = axios_1.default.create({
13
- baseURL: baseEdgeUri,
14
- headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
15
- });
36
+ this.httpClient = this.initHttpClient(baseEdgeUri, apiKey, loggerService);
16
37
  }
17
38
  static create(config, loggerService) {
18
39
  return config.enableEdge ? new EdgeApiClient(config, loggerService) : null;
@@ -39,6 +60,27 @@ class EdgeApiClient {
39
60
  get(url) {
40
61
  return this.httpClient.get(url).then((response) => response.data);
41
62
  }
63
+ initHttpClient(baseEdgeUri, apiKey, loggerService) {
64
+ const axiosInstance = axios_1.default.create({
65
+ baseURL: baseEdgeUri,
66
+ headers: Object.assign(Object.assign({}, (0, requestHeaders_1.buildRequestHeaders)(apiKey, loggerService.getInstanceId())), { 'X-API-VERSION': '1' }),
67
+ timeout: REQUEST_TIMEOUT_MS,
68
+ httpAgent: new http.Agent({ keepAlive: true }),
69
+ httpsAgent: new https.Agent({ keepAlive: true }),
70
+ });
71
+ this.enableRetries(axiosInstance);
72
+ return axiosInstance;
73
+ }
74
+ /**
75
+ * Public for mocking in tests
76
+ */
77
+ enableRetries(axiosInstance) {
78
+ (0, axios_retry_1.default)(axiosInstance, {
79
+ retries: REQUEST_RETRY_COUNT,
80
+ retryDelay: (retryNumber, error) => axios_retry_1.default.exponentialDelay(retryNumber, error, 2000),
81
+ shouldResetTimeout: true,
82
+ });
83
+ }
42
84
  }
43
85
  exports.EdgeApiClient = EdgeApiClient;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUFxQztBQUtyQyw0REFBOEQ7QUFROUQsTUFBYSxhQUFhO0lBR3hCLFlBQW9CLE1BQWtDLEVBQUUsYUFBNEI7UUFDbEYsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLE9BQU8sa0NBQ0YsSUFBQSxvQ0FBbUIsRUFBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQzdELGVBQWUsRUFBRSxHQUFHLEdBQ3JCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBa0MsRUFBRSxhQUE0QjtRQUM1RSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdFLENBQUM7SUFFRCxVQUFVLENBQ1IsU0FBa0IsRUFDbEIsa0JBQTJCLEVBQzNCLHVCQUFpQyxFQUNqQyxrQkFBNEI7UUFFNUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsTUFBTSxpQ0FBaUMsR0FBRywyQkFBMkIsdUJBQXVCLEVBQUUsQ0FBQztRQUUvRixJQUFJLEdBQUcsR0FBRyxNQUFNLE1BQU0saUJBQWlCLGlDQUFpQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixHQUFHLElBQUksdUJBQXVCLGtCQUFrQixFQUFFLENBQUM7U0FDcEQ7UUFDRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLEdBQUcsSUFBSSx1QkFBdUIsa0JBQWtCLEVBQUUsQ0FBQztTQUNwRDtRQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQThCO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLFNBQVMsVUFBVSxxQkFBcUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQXVCLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUEyQiwwQ0FBMEMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxHQUFHLENBQUksR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDO0NBQ0Y7QUFsREQsc0NBa0RDIn0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0U7QUFRaEUsNERBQThEO0FBRTlELDhEQUFxQztBQUNyQywyQ0FBNkI7QUFDN0IsNkNBQStCO0FBRS9CLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLFdBQVc7QUFFakQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7QUFROUIsTUFBYSxhQUFhO0lBR3hCLFlBQW9CLE1BQWtDLEVBQUUsYUFBNEI7UUFDbEYsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBa0MsRUFBRSxhQUE0QjtRQUM1RSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdFLENBQUM7SUFFRCxVQUFVLENBQ1IsU0FBa0IsRUFDbEIsa0JBQTJCLEVBQzNCLHVCQUFpQyxFQUNqQyxrQkFBNEI7UUFFNUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEQsTUFBTSxpQ0FBaUMsR0FBRywyQkFBMkIsdUJBQXVCLEVBQUUsQ0FBQztRQUUvRixJQUFJLEdBQUcsR0FBRyxNQUFNLE1BQU0saUJBQWlCLGlDQUFpQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixHQUFHLElBQUksdUJBQXVCLGtCQUFrQixFQUFFLENBQUM7U0FDcEQ7UUFDRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLEdBQUcsSUFBSSx1QkFBdUIsa0JBQWtCLEVBQUUsQ0FBQztTQUNwRDtRQUVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQThCO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLFNBQVMsVUFBVSxxQkFBcUIsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwRyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQXVCLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUEyQiwwQ0FBMEMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTyxHQUFHLENBQUksR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUF1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CLEVBQUUsTUFBYyxFQUFFLGFBQTRCO1FBQ3RGLE1BQU0sYUFBYSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDakMsT0FBTyxFQUFFLFdBQVc7WUFDcEIsT0FBTyxrQ0FDRixJQUFBLG9DQUFtQixFQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUMsS0FDN0QsZUFBZSxFQUFFLEdBQUcsR0FDckI7WUFDRCxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNqRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxhQUE0QjtRQUN4QyxJQUFBLHFCQUFVLEVBQUMsYUFBYSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsVUFBVSxFQUFFLENBQUMsV0FBb0IsRUFBRSxLQUFrQixFQUFFLEVBQUUsQ0FBQyxxQkFBVSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQy9HLGtCQUFrQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBeEVELHNDQXdFQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigg/node-server-sdk",
3
- "version": "3.6.0",
3
+ "version": "3.7.0",
4
4
  "description": "Stigg server-side node SDK",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -38,6 +38,7 @@
38
38
  "@stigg/api-client-js": "1.50.0",
39
39
  "@types/ws": "^8.2.3",
40
40
  "axios": "^1.2.2",
41
+ "axios-retry": "^4.0.0",
41
42
  "cross-fetch": "^3.1.5",
42
43
  "graphql": "^15.6.1",
43
44
  "graphql-ws": "^5.6.0",