@stigg/node-server-sdk 0.72.1 → 0.74.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.
Files changed (37) hide show
  1. package/dist/api/customerFragments.d.ts +0 -4
  2. package/dist/api/customerFragments.js +2 -209
  3. package/dist/api/entitlements/entitlementsApi.d.ts +7 -4
  4. package/dist/api/entitlements/entitlementsApi.js +9 -12
  5. package/dist/api/entitlements/entitlementsGql.d.ts +1 -2
  6. package/dist/api/entitlements/entitlementsGql.js +17 -19
  7. package/dist/api/generated/types.d.ts +129 -322
  8. package/dist/api/generated/types.js +114 -1
  9. package/dist/api/managementApi.d.ts +3 -2
  10. package/dist/api/managementApi.js +4 -20
  11. package/dist/client.d.ts +1 -0
  12. package/dist/client.js +20 -47
  13. package/dist/clientInitialization.d.ts +12 -0
  14. package/dist/clientInitialization.js +59 -0
  15. package/dist/configuration.d.ts +6 -0
  16. package/dist/configuration.js +1 -1
  17. package/dist/models.d.ts +2 -5
  18. package/dist/models.js +2 -6
  19. package/dist/services/EdgeApiClient.d.ts +2 -1
  20. package/dist/services/EdgeApiClient.js +1 -1
  21. package/dist/services/cache/cacheService.d.ts +3 -6
  22. package/dist/services/cache/inMemoryCacheService.d.ts +2 -5
  23. package/dist/services/cache/inMemoryCacheService.js +3 -9
  24. package/dist/services/cache/redisCacheService.d.ts +21 -0
  25. package/dist/services/cache/redisCacheService.js +142 -0
  26. package/dist/services/entitlementsService.d.ts +28 -30
  27. package/dist/services/entitlementsService.js +46 -93
  28. package/dist/services/inMemoryEntitlementsService.d.ts +20 -0
  29. package/dist/services/inMemoryEntitlementsService.js +80 -0
  30. package/dist/services/redisEntitlementsService.d.ts +18 -0
  31. package/dist/services/redisEntitlementsService.js +83 -0
  32. package/dist/utils/ModelMapper.d.ts +4 -3
  33. package/dist/utils/ModelMapper.js +24 -26
  34. package/dist/utils/apiErrorHandling.js +1 -1
  35. package/package.json +5 -1
  36. package/dist/api/packagesFragments.d.ts +0 -1
  37. package/dist/api/packagesFragments.js +0 -85
@@ -0,0 +1,59 @@
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
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.intializeStiggDependencies = void 0;
26
+ const eventEmitter_1 = require("./services/eventEmitter");
27
+ const inMemoryCacheService_1 = require("./services/cache/inMemoryCacheService");
28
+ const initApolloClient_1 = __importStar(require("./api/initApolloClient"));
29
+ const redisEntitlementsService_1 = require("./services/redisEntitlementsService");
30
+ const redisCacheService_1 = require("./services/cache/redisCacheService");
31
+ const inMemoryEntitlementsService_1 = require("./services/inMemoryEntitlementsService");
32
+ const managementApi_1 = __importDefault(require("./api/managementApi"));
33
+ const sdkConfigurationApi_1 = __importDefault(require("./api/sdkConfigurationApi"));
34
+ const EdgeApiClient_1 = require("./services/EdgeApiClient");
35
+ const intializeStiggDependencies = (isPersistedCacheEnabled, sdkConfiguration, loggerService) => {
36
+ const eventEmitter = new eventEmitter_1.TypedEventEmitter();
37
+ let inMemoryCacheService = null;
38
+ let entitlementsService;
39
+ if (!isPersistedCacheEnabled) {
40
+ inMemoryCacheService = new inMemoryCacheService_1.InMemoryCacheService();
41
+ }
42
+ const graphqlClient = (0, initApolloClient_1.default)(Object.assign(Object.assign({}, sdkConfiguration), { onConnected: (inMemoryCacheService === null || inMemoryCacheService === void 0 ? void 0 : inMemoryCacheService.clearCache) || Promise.resolve, loggerService }));
43
+ const batchedGraphClient = (0, initApolloClient_1.initBatchedApolloClient)(sdkConfiguration);
44
+ const edgeApiClient = EdgeApiClient_1.EdgeApiClient.create(sdkConfiguration);
45
+ if (isPersistedCacheEnabled) {
46
+ entitlementsService = new redisEntitlementsService_1.RedisEntitlementsService(sdkConfiguration.redis.environmentPrefix, new redisCacheService_1.RedisCacheService(sdkConfiguration.redis, loggerService), graphqlClient, loggerService, batchedGraphClient, edgeApiClient);
47
+ }
48
+ else if (inMemoryCacheService) {
49
+ entitlementsService = new inMemoryEntitlementsService_1.InMemoryEntitlementsService(inMemoryCacheService, graphqlClient, batchedGraphClient, eventEmitter, loggerService, edgeApiClient);
50
+ }
51
+ else {
52
+ throw new Error();
53
+ }
54
+ const managementApi = new managementApi_1.default(graphqlClient, edgeApiClient);
55
+ const sdkConfigurationApi = new sdkConfigurationApi_1.default(graphqlClient, edgeApiClient);
56
+ return { eventEmitter, entitlementsService, managementApi, sdkConfigurationApi };
57
+ };
58
+ exports.intializeStiggDependencies = intializeStiggDependencies;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50SW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLDBEQUE0RDtBQUM1RCxnRkFBNkU7QUFFN0UsMkVBQW1GO0FBQ25GLGtGQUErRTtBQUMvRSwwRUFBdUU7QUFDdkUsd0ZBQXFGO0FBQ3JGLHdFQUFnRDtBQUNoRCxvRkFBNEQ7QUFDNUQsNERBQXlEO0FBRWxELE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsdUJBQWdDLEVBQ2hDLGdCQUErQyxFQUMvQyxhQUE0QixFQUM1QixFQUFFO0lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQ0FBaUIsRUFBRSxDQUFDO0lBQzdDLElBQUksb0JBQW9CLEdBQWdDLElBQUksQ0FBQztJQUM3RCxJQUFJLG1CQUF3QyxDQUFDO0lBRTdDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtRQUM1QixvQkFBb0IsR0FBRyxJQUFJLDJDQUFvQixFQUFFLENBQUM7S0FDbkQ7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixrQ0FDakMsZ0JBQWdCLEtBQ25CLFdBQVcsRUFBRSxDQUFBLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLFVBQVUsS0FBSSxPQUFPLENBQUMsT0FBTyxFQUNoRSxhQUFhLElBQ2IsQ0FBQztJQUVILE1BQU0sa0JBQWtCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLDZCQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0QsSUFBSSx1QkFBdUIsRUFBRTtRQUMzQixtQkFBbUIsR0FBRyxJQUFJLG1EQUF3QixDQUNoRCxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQ3hDLElBQUkscUNBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUM1RCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixhQUFhLENBQ2QsQ0FBQztLQUNIO1NBQU0sSUFBSSxvQkFBb0IsRUFBRTtRQUMvQixtQkFBbUIsR0FBRyxJQUFJLHlEQUEyQixDQUNuRCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osYUFBYSxFQUNiLGFBQWEsQ0FDZCxDQUFDO0tBQ0g7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztLQUNuQjtJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEUsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLDZCQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0FBQ25GLENBQUMsQ0FBQztBQWhEVyxRQUFBLDBCQUEwQiw4QkFnRHJDIn0=
@@ -1,7 +1,12 @@
1
1
  import { SourceType } from './api/generated/types';
2
2
  import { LogConfiguration, LoggerService } from './services/loggerService';
3
+ import { RedisOptions } from 'ioredis/built/redis/RedisOptions';
3
4
  export declare const SDK_SOURCE_TYPE = SourceType.NodeServerSdk;
4
5
  export declare const SDK_NAME = "node-server-sdk";
6
+ export declare type StiggRedisOptions = RedisOptions & {
7
+ environmentPrefix: string;
8
+ ttl?: number;
9
+ };
5
10
  declare type ClientConfiguration = {
6
11
  apiKey: string;
7
12
  baseUri?: string;
@@ -10,6 +15,7 @@ declare type ClientConfiguration = {
10
15
  logConfiguration?: LogConfiguration;
11
16
  realtimeUpdatesEnabled?: boolean;
12
17
  enableEdge?: boolean;
18
+ redis?: StiggRedisOptions;
13
19
  };
14
20
  declare function getConfiguration(configuration: Partial<ClientConfiguration>): Required<ClientConfiguration>;
15
21
  /**
@@ -68,4 +68,4 @@ function validateConfiguration(configuration, loggerService) {
68
68
  }
69
69
  }
70
70
  exports.validateConfiguration = validateConfiguration;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFtRDtBQUNuRCw0REFBcUY7QUFDckYsbUNBQStCO0FBRWxCLFFBQUEsZUFBZSxHQUFHLGtCQUFVLENBQUMsYUFBYSxDQUFDO0FBQzNDLFFBQUEsUUFBUSxHQUFHLGlCQUFpQixDQUFDO0FBWTFDLE1BQU0sUUFBUSxHQUFHLEdBQWlDLEVBQUU7SUFDbEQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsT0FBTztRQUNMLE9BQU87UUFDUCxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN4QixXQUFXLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsUUFBUSxFQUFFLHdCQUFRLENBQUMsS0FBSztTQUN6QjtRQUNELHNCQUFzQixFQUFFLElBQUk7UUFDNUIsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLFNBQVMsZ0JBQWdCLENBQUMsYUFBMkM7SUFDbkUsTUFBTSxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFDakMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUs7UUFDL0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQ3JCLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDakMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDeEIsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVc7UUFDM0MsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1FBQzNCLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN2QixDQUFDLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUU5QixPQUFPLElBQUEsY0FBSyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQWtDLENBQUM7QUFDdEcsQ0FBQztBQXVDUSw0Q0FBZ0I7QUFyQ3pCLFNBQVMsUUFBUSxDQUFDLE1BQWM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtRQUM1QixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztLQUN0QjtTQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7UUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7S0FDdkI7SUFFRCxtRUFBbUU7SUFDbkUsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE1BQWM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtRQUNoQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztLQUNuQjtTQUFNO1FBQ0wsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN2QztJQUVELG1FQUFtRTtJQUNuRSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxhQUEyQyxFQUFFLGFBQTRCO0lBQ3RHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLCtDQUErQyxDQUFDO1FBQzlELGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFFK0Msc0RBQXFCIn0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFtRDtBQUNuRCw0REFBcUY7QUFFckYsbUNBQStCO0FBRWxCLFFBQUEsZUFBZSxHQUFHLGtCQUFVLENBQUMsYUFBYSxDQUFDO0FBQzNDLFFBQUEsUUFBUSxHQUFHLGlCQUFpQixDQUFDO0FBZTFDLE1BQU0sUUFBUSxHQUFHLEdBQWlDLEVBQUU7SUFDbEQsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsT0FBTztRQUNMLE9BQU87UUFDUCxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN4QixXQUFXLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsUUFBUSxFQUFFLHdCQUFRLENBQUMsS0FBSztTQUN6QjtRQUNELHNCQUFzQixFQUFFLElBQUk7UUFDNUIsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLFNBQVMsZ0JBQWdCLENBQUMsYUFBMkM7SUFDbkUsTUFBTSxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFFakMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUs7UUFDL0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQ3JCLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7WUFDakMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDeEIsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVc7UUFDM0MsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1FBQzNCLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN2QixDQUFDLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUU5QixPQUFPLElBQUEsY0FBSyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQWtDLENBQUM7QUFDdEcsQ0FBQztBQXVDUSw0Q0FBZ0I7QUFyQ3pCLFNBQVMsUUFBUSxDQUFDLE1BQWM7SUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtRQUM1QixHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztLQUN0QjtTQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7UUFDcEMsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7S0FDdkI7SUFFRCxtRUFBbUU7SUFDbkUsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE1BQWM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtRQUNoQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztLQUNuQjtTQUFNO1FBQ0wsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN2QztJQUVELG1FQUFtRTtJQUNuRSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxhQUEyQyxFQUFFLGFBQTRCO0lBQ3RHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLCtDQUErQyxDQUFDO1FBQzlELGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFFK0Msc0RBQXFCIn0=
package/dist/models.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BillingPeriod, SubscriptionCancellationTime, PromotionalEntitlementStatus, SubscriptionStatus, TrialPeriodUnits, BillingModel, PricingType, SubscriptionDecisionStrategy, ExperimentGroupType } from './api/generated/types';
1
+ import { BillingPeriod, SubscriptionCancellationTime, PromotionalEntitlementStatus, SubscriptionStatus, TrialPeriodUnits, BillingModel, PricingType, SubscriptionDecisionStrategy, ExperimentGroupType, Currency } from './api/generated/types';
2
2
  export { PricingType, ErrorCode, BillingPeriod, SubscriptionCancellationTime, EntitlementsUpdatedPayloadFragment, EntitlementUsageUpdatedFragment, ExperimentGroupType, PromotionalEntitlementStatus, SubscriptionStatus, TrialPeriodUnits, BillingModel, SubscriptionDecisionStrategy, } from './api/generated/types';
3
3
  export interface Metadata {
4
4
  [key: string]: string;
@@ -294,10 +294,7 @@ export declare type BillingInfo = {
294
294
  invoiceCustomFields?: Record<string, string>;
295
295
  paymentMethodId?: string;
296
296
  };
297
- export declare enum Currency {
298
- Ils = "ILS",
299
- Usd = "USD"
300
- }
297
+ export { Currency };
301
298
  /**
302
299
  * @param country - optional country of the address - in a valid ISO 3166-1 alpha-2 format
303
300
  */
package/dist/models.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CustomerModel = exports.Currency = exports.ProvisionSubscriptionStatus = exports.METERED_DEFAULT_FALLBACK_ENTITLEMENT = exports.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT = exports.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT = exports.MeterType = exports.FeatureType = exports.AccessDeniedReason = exports.EntitlementResetPeriod = exports.SubscriptionDecisionStrategy = exports.BillingModel = exports.TrialPeriodUnits = exports.SubscriptionStatus = exports.PromotionalEntitlementStatus = exports.ExperimentGroupType = exports.SubscriptionCancellationTime = exports.BillingPeriod = exports.ErrorCode = exports.PricingType = void 0;
4
4
  const types_1 = require("./api/generated/types");
5
+ Object.defineProperty(exports, "Currency", { enumerable: true, get: function () { return types_1.Currency; } });
5
6
  var types_2 = require("./api/generated/types");
6
7
  Object.defineProperty(exports, "PricingType", { enumerable: true, get: function () { return types_2.PricingType; } });
7
8
  Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return types_2.ErrorCode; } });
@@ -68,11 +69,6 @@ var ProvisionSubscriptionStatus;
68
69
  ProvisionSubscriptionStatus["PaymentRequired"] = "PaymentRequired";
69
70
  ProvisionSubscriptionStatus["Success"] = "Success";
70
71
  })(ProvisionSubscriptionStatus = exports.ProvisionSubscriptionStatus || (exports.ProvisionSubscriptionStatus = {}));
71
- var Currency;
72
- (function (Currency) {
73
- Currency["Ils"] = "ILS";
74
- Currency["Usd"] = "USD";
75
- })(Currency = exports.Currency || (exports.Currency = {}));
76
72
  /** @hidden */
77
73
  class CustomerModel {
78
74
  constructor(state) {
@@ -89,4 +85,4 @@ class CustomerModel {
89
85
  }
90
86
  }
91
87
  exports.CustomerModel = CustomerModel;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFVK0I7QUFFL0IsK0NBYStCO0FBWjdCLG9HQUFBLFdBQVcsT0FBQTtBQUNYLGtHQUFBLFNBQVMsT0FBQTtBQUNULHNHQUFBLGFBQWEsT0FBQTtBQUNiLHFIQUFBLDRCQUE0QixPQUFBO0FBRzVCLDRHQUFBLG1CQUFtQixPQUFBO0FBQ25CLHFIQUFBLDRCQUE0QixPQUFBO0FBQzVCLDJHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHlHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFHQUFBLFlBQVksT0FBQTtBQUNaLHFIQUFBLDRCQUE0QixPQUFBO0FBTzlCLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUNoQyx5Q0FBZSxDQUFBO0lBQ2YsMkNBQWlCLENBQUE7SUFDakIsNkNBQW1CLENBQUE7SUFDbkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBS2pDO0FBRUQsSUFBWSxrQkFRWDtBQVJELFdBQVksa0JBQWtCO0lBQzVCLCtEQUF5QyxDQUFBO0lBQ3pDLDJEQUFxQyxDQUFBO0lBQ3JDLHlEQUFtQyxDQUFBO0lBQ25DLHFFQUErQyxDQUFBO0lBQy9DLHFGQUErRCxDQUFBO0lBQy9ELCtFQUF5RCxDQUFBO0lBQ3pELHlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFSVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQVE3QjtBQUVELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFFRCxJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0IsMEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQWdERCxnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUM7QUFFRixnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUM7QUFFRixnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixZQUFZLEVBQUUsQ0FBQztJQUNmLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQXdKRixJQUFZLDJCQUdYO0FBSEQsV0FBWSwyQkFBMkI7SUFDckMsa0VBQW1DLENBQUE7SUFDbkMsa0RBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLDJCQUEyQixHQUEzQixtQ0FBMkIsS0FBM0IsbUNBQTJCLFFBR3RDO0FBOEdELElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix1QkFBVyxDQUFBO0lBQ1gsdUJBQVcsQ0FBQTtBQUNiLENBQUMsRUFIVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQUduQjtBQXVORCxjQUFjO0FBQ2QsTUFBYSxhQUFhO0lBU3hCLFlBQVksS0FBb0I7UUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLDBCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSywwQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsZ0NBQWdDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxvQ0FBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RyxDQUFDO0NBQ0Y7QUF4QkQsc0NBd0JDIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFXK0I7QUErWHRCLHlGQWhZUCxnQkFBUSxPQWdZTztBQTdYakIsK0NBYStCO0FBWjdCLG9HQUFBLFdBQVcsT0FBQTtBQUNYLGtHQUFBLFNBQVMsT0FBQTtBQUNULHNHQUFBLGFBQWEsT0FBQTtBQUNiLHFIQUFBLDRCQUE0QixPQUFBO0FBRzVCLDRHQUFBLG1CQUFtQixPQUFBO0FBQ25CLHFIQUFBLDRCQUE0QixPQUFBO0FBQzVCLDJHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHlHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHFHQUFBLFlBQVksT0FBQTtBQUNaLHFIQUFBLDRCQUE0QixPQUFBO0FBTzlCLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUNoQyx5Q0FBZSxDQUFBO0lBQ2YsMkNBQWlCLENBQUE7SUFDakIsNkNBQW1CLENBQUE7SUFDbkIsMkNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBS2pDO0FBRUQsSUFBWSxrQkFRWDtBQVJELFdBQVksa0JBQWtCO0lBQzVCLCtEQUF5QyxDQUFBO0lBQ3pDLDJEQUFxQyxDQUFBO0lBQ3JDLHlEQUFtQyxDQUFBO0lBQ25DLHFFQUErQyxDQUFBO0lBQy9DLHFGQUErRCxDQUFBO0lBQy9ELCtFQUF5RCxDQUFBO0lBQ3pELHlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFSVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQVE3QjtBQUVELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFFRCxJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0IsMEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQWdERCxnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUM7QUFFRixnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUM7QUFFRixnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixZQUFZLEVBQUUsQ0FBQztJQUNmLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQXdKRixJQUFZLDJCQUdYO0FBSEQsV0FBWSwyQkFBMkI7SUFDckMsa0VBQW1DLENBQUE7SUFDbkMsa0RBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLDJCQUEyQixHQUEzQixtQ0FBMkIsS0FBM0IsbUNBQTJCLFFBR3RDO0FBcVVELGNBQWM7QUFDZCxNQUFhLGFBQWE7SUFTeEIsWUFBWSxLQUFvQjtRQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssMEJBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLDBCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxnQ0FBZ0M7UUFDOUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLG9DQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRjtBQXhCRCxzQ0F3QkMifQ==
@@ -1,5 +1,6 @@
1
1
  import { ApolloQueryResult } from '@apollo/client/core';
2
- import { GetEntitlementsQuery, GetPaywallQuery, SdkConfigurationQuery } from '../api/generated/types';
2
+ import { SdkConfigurationQuery } from '../api/generated/types';
3
+ import { GetEntitlementsQuery, GetPaywallQuery } from '@stigg/api-client-js/src/generated/sdk';
3
4
  declare type EdgeApiClientConfiguration = {
4
5
  apiKey: string;
5
6
  baseEdgeUri: string;
@@ -35,4 +35,4 @@ class EdgeApiClient {
35
35
  }
36
36
  }
37
37
  exports.EdgeApiClient = EdgeApiClient;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUFxQztBQUNyQyxvREFBbUQ7QUFVbkQsTUFBYSxhQUFhO0lBR3hCLFlBQW9CLE1BQWtDO1FBQ3BELE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBQztZQUM3QixPQUFPLEVBQUUsV0FBVztZQUNwQixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLE1BQU0sRUFBRSwrQkFBZTthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQWtDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWtCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBa0IsTUFBTSxNQUFNLGVBQWUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUF1QixTQUFTLFVBQVUsb0JBQW9CLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBd0IsMENBQTBDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8sR0FBRyxDQUFJLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBdUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBbENELHNDQWtDQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWRnZUFwaUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9FZGdlQXBpQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUFxQztBQUNyQyxvREFBbUQ7QUFXbkQsTUFBYSxhQUFhO0lBR3hCLFlBQW9CLE1BQWtDO1FBQ3BELE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBQztZQUM3QixPQUFPLEVBQUUsV0FBVztZQUNwQixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLE1BQU0sRUFBRSwrQkFBZTthQUN4QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQWtDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWtCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBa0IsTUFBTSxNQUFNLGVBQWUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUF1QixTQUFTLFVBQVUsb0JBQW9CLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBd0IsMENBQTBDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU8sR0FBRyxDQUFJLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBdUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBbENELHNDQWtDQyJ9
@@ -1,9 +1,6 @@
1
1
  import CachedEntitlement from './cachedEntitlement';
2
2
  export interface CacheService {
3
- clearCache(): void;
4
- setCustomer(customerId: string, customerEntitlements: Map<string, CachedEntitlement>): void;
5
- getCustomerEntitlements(customerId: string): Map<string, CachedEntitlement> | null;
6
- setEntitlement(customerId: string, featureId: string, entitlement: CachedEntitlement): boolean;
7
- validateFeature(featureId: string): boolean;
8
- setFeatures(features: string[]): void;
3
+ clearCache(): void | Promise<void>;
4
+ setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>, entitlementsTimestamp: number, usageTimestamp: Map<string, number>): void | Promise<void>;
5
+ getCustomerEntitlements(environmentPrefix: string, customerId: string): Map<string, CachedEntitlement> | null | Promise<Map<string, CachedEntitlement> | null>;
9
6
  }
@@ -2,12 +2,9 @@ import { CacheService } from './cacheService';
2
2
  import CachedEntitlement from './cachedEntitlement';
3
3
  export declare class InMemoryCacheService implements CacheService {
4
4
  private readonly entitlements;
5
- private featureIds;
6
5
  constructor();
7
- validateFeature(featureId: string): boolean;
8
6
  clearCache: () => void;
9
- setFeatures: (featureIds: string[]) => Set<string>;
10
- setCustomer(customerId: string, customerEntitlements: Map<string, CachedEntitlement>): void;
7
+ setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>): void;
11
8
  setEntitlement(customerId: string, featureId: string, entitlement: CachedEntitlement): boolean;
12
- getCustomerEntitlements(customerId: string): Map<string, CachedEntitlement> | null;
9
+ getCustomerEntitlements(environmentId: string, customerId: string): Map<string, CachedEntitlement> | null;
13
10
  }
@@ -5,16 +5,10 @@ class InMemoryCacheService {
5
5
  constructor() {
6
6
  this.clearCache = () => {
7
7
  this.entitlements.clear();
8
- this.featureIds.clear();
9
8
  };
10
- this.setFeatures = (featureIds) => (this.featureIds = new Set(featureIds));
11
9
  this.entitlements = new Map();
12
- this.featureIds = new Set();
13
10
  }
14
- validateFeature(featureId) {
15
- return this.featureIds.has(featureId);
16
- }
17
- setCustomer(customerId, customerEntitlements) {
11
+ setCustomer(environmentPrefix, customerId, customerEntitlements) {
18
12
  this.entitlements.set(customerId, customerEntitlements);
19
13
  }
20
14
  setEntitlement(customerId, featureId, entitlement) {
@@ -26,9 +20,9 @@ class InMemoryCacheService {
26
20
  customerEntitlements.set(featureId, entitlement);
27
21
  return true;
28
22
  }
29
- getCustomerEntitlements(customerId) {
23
+ getCustomerEntitlements(environmentId, customerId) {
30
24
  return this.entitlements.get(customerId) || null;
31
25
  }
32
26
  }
33
27
  exports.InMemoryCacheService = InMemoryCacheService;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvaW5NZW1vcnlDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBYSxvQkFBb0I7SUFHL0I7UUFTQSxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLENBQUMsVUFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFTLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFidEYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFTRCxXQUFXLENBQUMsVUFBa0IsRUFBRSxvQkFBb0Q7UUFDbEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUFrQixFQUFFLFNBQWlCLEVBQUUsV0FBOEI7UUFDbEYsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDekIsa0ZBQWtGO1lBQ2xGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHVCQUF1QixDQUFDLFVBQWtCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQXRDRCxvREFzQ0MifQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvaW5NZW1vcnlDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBYSxvQkFBb0I7SUFFL0I7UUFJQSxlQUFVLEdBQUcsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBTEEsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUN4RSxDQUFDO0lBTUQsV0FBVyxDQUNULGlCQUF5QixFQUN6QixVQUFrQixFQUNsQixvQkFBb0Q7UUFFcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUFrQixFQUFFLFNBQWlCLEVBQUUsV0FBOEI7UUFDbEYsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDekIsa0ZBQWtGO1lBQ2xGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHVCQUF1QixDQUFDLGFBQXFCLEVBQUUsVUFBa0I7UUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBakNELG9EQWlDQyJ9
@@ -0,0 +1,21 @@
1
+ import { CacheService } from './cacheService';
2
+ import CachedEntitlement from './cachedEntitlement';
3
+ import { LoggerService } from '../loggerService';
4
+ import { StiggRedisOptions } from '../../configuration';
5
+ export declare class RedisCacheService implements CacheService {
6
+ private readonly loggerService;
7
+ private readonly environmentPrefix;
8
+ private readonly ttl;
9
+ private readonly redisClient;
10
+ private readonly redlock;
11
+ constructor(options: StiggRedisOptions, loggerService: LoggerService);
12
+ setCustomer(environmentPrefix: string, customerId: string, customerEntitlements: Map<string, CachedEntitlement>, entitlementsTimestamp: number, featureIdToUsageTimestamp: Map<string, number>): Promise<void>;
13
+ getCustomerEntitlements(environmentPrefix: string, customerId: string): Promise<Map<string, CachedEntitlement> | null>;
14
+ getCustomerEntitlementsWithUsage(environmentPrefix: string, customerId: string): Promise<Map<string, CachedEntitlement> | null>;
15
+ getFeatureUsage(environmentPrefix: string, customerId: string, featureId: string): Promise<string | null>;
16
+ private getFeaturesUsage;
17
+ clearCache(): void | Promise<void>;
18
+ private buildCustomerKey;
19
+ private buildUsageKey;
20
+ private updateKey;
21
+ }
@@ -0,0 +1,142 @@
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.RedisCacheService = void 0;
7
+ const ioredis_1 = __importDefault(require("ioredis"));
8
+ const lodash_1 = require("lodash");
9
+ const types_1 = require("../../api/generated/types");
10
+ const redlock_1 = __importDefault(require("redlock"));
11
+ const TIMESTAMP_SUFFIX = 'timestamp';
12
+ const LOCK_DURATION = 5000;
13
+ const DEFAULT_TTL_SECS = 7 * 24 * 60 * 60;
14
+ class RedisCacheService {
15
+ constructor(options, loggerService) {
16
+ this.loggerService = loggerService;
17
+ this.redisClient = new ioredis_1.default(options);
18
+ this.redlock = new redlock_1.default([this.redisClient]);
19
+ this.environmentPrefix = options.environmentPrefix;
20
+ this.ttl = options.ttl || DEFAULT_TTL_SECS;
21
+ this.redlock.on('clientError', (err) => this.loggerService.error('Redis client ran into an issue: ', err));
22
+ }
23
+ async setCustomer(environmentPrefix, customerId, customerEntitlements, entitlementsTimestamp, featureIdToUsageTimestamp) {
24
+ const entitlementsDbKey = this.buildCustomerKey(environmentPrefix, customerId);
25
+ const customerEntitlementsAsObject = Object.fromEntries(customerEntitlements);
26
+ await this.redlock.using([environmentPrefix, customerId], LOCK_DURATION, async () => {
27
+ await this.updateKey(new Date(entitlementsTimestamp), entitlementsDbKey, customerEntitlementsAsObject);
28
+ const entitlements = new Array(...customerEntitlements.values());
29
+ const updateUsagesPromises = entitlements
30
+ .filter((entitlement) => {
31
+ var _a, _b;
32
+ return ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) &&
33
+ ((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== types_1.MeterType.None;
34
+ })
35
+ .map((entitlement) => {
36
+ const { calculatedEntitlement: { feature }, featureUsage: { currentUsage, nextResetDate }, } = entitlement;
37
+ const featureId = (feature === null || feature === void 0 ? void 0 : feature.id) || '';
38
+ const entitlementUsageKey = this.buildUsageKey(environmentPrefix, customerId, featureId);
39
+ const usageValue = {
40
+ currentUsage,
41
+ nextResetDate,
42
+ };
43
+ const featureUsageTimestamp = featureIdToUsageTimestamp.get(featureId);
44
+ if (featureUsageTimestamp) {
45
+ return this.updateKey(new Date(featureUsageTimestamp), entitlementUsageKey, usageValue);
46
+ }
47
+ else {
48
+ this.loggerService.error(`Failed to find usage timestamp for feature with id: ${featureId}`);
49
+ return Promise.resolve();
50
+ }
51
+ });
52
+ // TODO: Partial success is not covered yet, it awaits transactions
53
+ const updateUsagesResult = await Promise.allSettled(updateUsagesPromises);
54
+ updateUsagesResult
55
+ .filter((result) => result.status === 'rejected')
56
+ .forEach((result) => console.log(`Failed to update feature usage result: ${result.reason}`));
57
+ });
58
+ }
59
+ async getCustomerEntitlements(environmentPrefix, customerId) {
60
+ const entitlements = await this.redisClient.get(this.buildCustomerKey(environmentPrefix, customerId));
61
+ if (entitlements === null || (0, lodash_1.isEmpty)(entitlements)) {
62
+ return null;
63
+ }
64
+ this.loggerService.debug(`Found entitlements in persisted cache for customer`, { customerId });
65
+ return new Map(Object.entries(JSON.parse(entitlements)));
66
+ }
67
+ async getCustomerEntitlementsWithUsage(environmentPrefix, customerId) {
68
+ const cachedEntitlements = await this.getCustomerEntitlements(environmentPrefix, customerId);
69
+ if (cachedEntitlements === null) {
70
+ return null;
71
+ }
72
+ const meteredEntitlementsIds = Array.from(cachedEntitlements === null || cachedEntitlements === void 0 ? void 0 : cachedEntitlements.values())
73
+ .filter((entitlement) => {
74
+ var _a, _b;
75
+ return ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) &&
76
+ ((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== types_1.MeterType.None;
77
+ })
78
+ .map((entitlement) => entitlement.calculatedEntitlement.feature.id);
79
+ const featuresUsageByFeatureId = await this.getFeaturesUsage(environmentPrefix, customerId, meteredEntitlementsIds);
80
+ featuresUsageByFeatureId.forEach((usageValue, featureId) => {
81
+ const cachedEntitlement = cachedEntitlements.get(featureId);
82
+ if (cachedEntitlement) {
83
+ const { calculatedEntitlement, featureUsage } = cachedEntitlement;
84
+ cachedEntitlements.set(featureId, { calculatedEntitlement, featureUsage: Object.assign(Object.assign({}, featureUsage), usageValue) });
85
+ }
86
+ else {
87
+ this.loggerService.log(`Found usage for a feature the customer is not entitled to.`, {
88
+ customerId: customerId,
89
+ featureId,
90
+ });
91
+ }
92
+ });
93
+ return cachedEntitlements;
94
+ }
95
+ async getFeatureUsage(environmentPrefix, customerId, featureId) {
96
+ return this.redisClient.get(this.buildUsageKey(environmentPrefix, customerId, featureId));
97
+ }
98
+ async getFeaturesUsage(environmentPrefix, customerId, featureIds) {
99
+ const keysToFetch = featureIds.map((featureId) => this.buildUsageKey(environmentPrefix, customerId, featureId));
100
+ const usageValues = await this.redisClient.mget(keysToFetch);
101
+ const featureIdToFeatureUsage = new Map();
102
+ // Redis guarantees returning values in the same order of the keys so this is legit!
103
+ featureIds.forEach((featureId, index) => {
104
+ const featureUsageValue = usageValues[index];
105
+ if (featureUsageValue === null) {
106
+ this.loggerService.log(`Failed to find usage for metered feature: ${featureId}`);
107
+ return;
108
+ }
109
+ featureIdToFeatureUsage.set(featureId, JSON.parse(featureUsageValue));
110
+ });
111
+ return featureIdToFeatureUsage;
112
+ }
113
+ clearCache() {
114
+ return;
115
+ }
116
+ buildCustomerKey(environmentPrefix, customerId) {
117
+ return `${environmentPrefix}:${customerId}`;
118
+ }
119
+ buildUsageKey(environmentPrefix, customerId, featureId) {
120
+ return `${environmentPrefix}:${customerId}:${featureId}`;
121
+ }
122
+ async updateKey(timestamp, key, value) {
123
+ const latestTimestampValue = await this.redisClient.get(`${key}#${TIMESTAMP_SUFFIX}`);
124
+ const latestTimestamp = latestTimestampValue !== null && parseInt(latestTimestampValue, 10) !== Number.NaN
125
+ ? new Date(parseInt(latestTimestampValue, 10))
126
+ : undefined;
127
+ const messageTimestamp = timestamp.getTime();
128
+ if (!latestTimestamp || (latestTimestamp === null || latestTimestamp === void 0 ? void 0 : latestTimestamp.getTime()) < messageTimestamp) {
129
+ const writeableValue = typeof value === 'string' ? value : JSON.stringify(value);
130
+ await this.redisClient
131
+ .multi()
132
+ .set(key, writeableValue, 'EX', this.ttl)
133
+ .set(`${key}#${TIMESTAMP_SUFFIX}`, messageTimestamp, 'EX', this.ttl)
134
+ .exec();
135
+ }
136
+ else {
137
+ this.loggerService.log('Cache data timestamp is after message timestamp', { messageTimestamp, latestTimestamp });
138
+ }
139
+ }
140
+ }
141
+ exports.RedisCacheService = RedisCacheService;
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNDYWNoZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvcmVkaXNDYWNoZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsc0RBQTRCO0FBQzVCLG1DQUFpQztBQUNqQyxxREFBc0Q7QUFFdEQsc0RBQThCO0FBRzlCLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUMzQixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUUxQyxNQUFhLGlCQUFpQjtJQUs1QixZQUFZLE9BQTBCLEVBQW1CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ25GLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxpQkFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksZ0JBQWdCLENBQUM7UUFFM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLGlCQUF5QixFQUN6QixVQUFrQixFQUNsQixvQkFBb0QsRUFDcEQscUJBQTZCLEVBQzdCLHlCQUE4QztRQUU5QyxNQUFNLGlCQUFpQixHQUFHLElBQUks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
@@ -1,40 +1,38 @@
1
- import { CacheService } from './cache/cacheService';
1
+ import EntitlementsApi from '../api/entitlements/entitlementsApi';
2
+ import { LoggerService } from './loggerService';
2
3
  import { ApolloClient, FetchResult, NormalizedCacheObject } from '@apollo/client/core';
3
4
  import { BooleanEntitlement, BooleanEntitlementOptions, CreateUsageMeasurement, MeteredEntitlement, MeteredEntitlementOptions, NumericEntitlement, NumericEntitlementOptions } from '../models';
4
- import { Decision } from './entitlementDecisionService';
5
+ import { CreateUsageMeasurementMutation, EntitlementCheckResult } from '../api/generated/types';
6
+ import { ModelMapper } from '../utils/ModelMapper';
5
7
  import CachedEntitlement from './cache/cachedEntitlement';
6
- import { LoggerService } from './loggerService';
7
- import { TypedEventEmitter } from './eventEmitter';
8
+ import { CacheService } from './cache/cacheService';
8
9
  import { EdgeApiClient } from './EdgeApiClient';
9
- export declare class EntitlementsService {
10
- private readonly cacheService;
11
- private readonly eventEmitter;
12
- private readonly loggerService;
13
- private readonly entitlementsApi;
10
+ export declare abstract class EntitlementsService {
11
+ private client;
12
+ protected readonly loggerService: LoggerService;
13
+ private readonly batchedGraphqlClient;
14
+ protected readonly cacheService: CacheService;
15
+ protected readonly environmentPrefix: string;
14
16
  private readonly entitlementCheckReportingService;
15
- private readonly modelMapper;
16
- private entitlementsSubscription;
17
- private usageSubscription;
18
- constructor(cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, batchedGraphqlClient: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null, eventEmitter: TypedEventEmitter, loggerService: LoggerService);
19
- subscribeToUpdates(): void;
20
- private websocketErrorHandling;
21
- unsubscribeFromUpdates(): void;
22
- refetchEntitlements(customerRefId: string): Promise<{
23
- entitlements: Map<string, CachedEntitlement> | null;
24
- customerExists: boolean;
25
- }>;
17
+ protected readonly entitlementsApi: EntitlementsApi;
18
+ protected readonly modelMapper: ModelMapper;
19
+ protected constructor(client: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService, batchedGraphqlClient: ApolloClient<NormalizedCacheObject>, edgeApiClient: EdgeApiClient | null, cacheService: CacheService, environmentPrefix: string);
26
20
  getBooleanEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: BooleanEntitlement, options?: BooleanEntitlementOptions): Promise<BooleanEntitlement>;
27
21
  getNumericEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: NumericEntitlement, options?: NumericEntitlementOptions): Promise<NumericEntitlement>;
28
22
  getMeteredEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: MeteredEntitlement, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
23
+ getCustomerEntitlementsWithUsage(customerRefId: string): Promise<import("../models").Entitlement[]>;
29
24
  getCustomerEntitlements(customerRefId: string): Promise<import("../models").Entitlement[]>;
30
- private isErrorRecoverable;
31
- private onEntitlementsUpdated;
32
- private onUsageUpdated;
33
- private tryGetCacheCustomerAndEntitlement;
34
- createUsageMeasurement(input: CreateUsageMeasurement): Promise<FetchResult<import("../api/generated/types").CreateUsageMeasurementMutation, Record<string, any>, Record<string, any>>>;
35
- private tryTrackEntitlementCheck;
25
+ abstract clearCache(): void | Promise<void>;
26
+ abstract init(): void | Promise<void>;
27
+ abstract cleanup(): void | Promise<void>;
28
+ createUsageMeasurement(input: CreateUsageMeasurement): Promise<FetchResult<CreateUsageMeasurementMutation>>;
29
+ protected tryGetCacheCustomerAndEntitlement(featureRefId: string, customerRefId: string): Promise<{
30
+ customerExists: boolean;
31
+ entitlement: CachedEntitlement | null;
32
+ }>;
33
+ refetchEntitlements(customerRefId: string, skipEdge?: boolean): Promise<{
34
+ entitlements: Map<string, CachedEntitlement> | null;
35
+ customerExists: boolean;
36
+ }>;
37
+ protected tryTrackEntitlementCheck(shouldTrack: boolean, featureRefId: string, customerRefId: string, result: EntitlementCheckResult, requestedUsage?: number): void;
36
38
  }
37
- export declare type GetEntitlementResult = {
38
- entitlement: CachedEntitlement | null;
39
- decision: Decision;
40
- };