@stigg/node-server-sdk 4.21.2 → 4.22.1

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 (91) hide show
  1. package/dist/client.js +8 -8
  2. package/dist/clientInitialization.js +6 -6
  3. package/dist/configuration.d.ts +2 -2
  4. package/dist/models.d.ts +1 -1
  5. package/dist/services/LegacyEventPayloadMapper.d.ts +1 -2
  6. package/dist/services/LegacyEventPayloadMapper.js +1 -1
  7. package/dist/services/entitlementDecisionService.d.ts +1 -2
  8. package/dist/services/entitlementDecisionService.js +5 -5
  9. package/dist/services/entitlementsService.d.ts +2 -4
  10. package/dist/services/entitlementsService.js +29 -31
  11. package/dist/services/eventEmitter.d.ts +1 -1
  12. package/dist/services/eventEmitterCacheInstrumentation.d.ts +1 -1
  13. package/dist/services/inMemoryEntitlementsService.d.ts +2 -3
  14. package/dist/services/inMemoryEntitlementsService.js +4 -5
  15. package/dist/services/redisEntitlementsService.d.ts +3 -3
  16. package/dist/services/redisEntitlementsService.js +3 -3
  17. package/dist/utils/ModelMapper.d.ts +1 -1
  18. package/dist/utils/ModelMapper.js +22 -24
  19. package/dist/utils/entitlementFallbackUtils.d.ts +1 -1
  20. package/dist/utils/entitlementFallbackUtils.js +3 -3
  21. package/package.json +3 -1
  22. package/dist/services/ApiCacheMapper.d.ts +0 -15
  23. package/dist/services/ApiCacheMapper.js +0 -100
  24. package/dist/services/cache/CacheMapper.d.ts +0 -16
  25. package/dist/services/cache/CacheMapper.js +0 -3
  26. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.d.ts +0 -28
  27. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.js +0 -184
  28. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.utils.d.ts +0 -22
  29. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.utils.js +0 -16
  30. package/dist/services/cache/RedisSingleExecutionService/index.d.ts +0 -1
  31. package/dist/services/cache/RedisSingleExecutionService/index.js +0 -6
  32. package/dist/services/cache/accessDeniedReasonMapper.d.ts +0 -3
  33. package/dist/services/cache/accessDeniedReasonMapper.js +0 -15
  34. package/dist/services/cache/cacheKeysHelpers.d.ts +0 -9
  35. package/dist/services/cache/cacheKeysHelpers.js +0 -55
  36. package/dist/services/cache/cacheService.d.ts +0 -13
  37. package/dist/services/cache/cacheService.js +0 -3
  38. package/dist/services/cache/entities/cachedEntitlement.d.ts +0 -20
  39. package/dist/services/cache/entities/cachedEntitlement.js +0 -53
  40. package/dist/services/cache/entities/calculatedEntitlement.d.ts +0 -39
  41. package/dist/services/cache/entities/calculatedEntitlement.js +0 -3
  42. package/dist/services/cache/entities/entitlementQuery.d.ts +0 -8
  43. package/dist/services/cache/entities/entitlementQuery.js +0 -3
  44. package/dist/services/cache/entities/entitlementsMap.d.ts +0 -33
  45. package/dist/services/cache/entities/entitlementsMap.js +0 -92
  46. package/dist/services/cache/entities/index.d.ts +0 -6
  47. package/dist/services/cache/entities/index.js +0 -12
  48. package/dist/services/cache/entities/usageData.d.ts +0 -11
  49. package/dist/services/cache/entities/usageData.js +0 -9
  50. package/dist/services/cache/extractWithDependencies.d.ts +0 -12
  51. package/dist/services/cache/extractWithDependencies.js +0 -37
  52. package/dist/services/cache/freshness/EntitlementsFreshener.d.ts +0 -11
  53. package/dist/services/cache/freshness/EntitlementsFreshener.js +0 -27
  54. package/dist/services/cache/freshness/transformers/CreditAccessPropagator.d.ts +0 -15
  55. package/dist/services/cache/freshness/transformers/CreditAccessPropagator.js +0 -67
  56. package/dist/services/cache/freshness/transformers/UsagePeriodReset.d.ts +0 -11
  57. package/dist/services/cache/freshness/transformers/UsagePeriodReset.js +0 -45
  58. package/dist/services/cache/inMemoryCacheService.d.ts +0 -28
  59. package/dist/services/cache/inMemoryCacheService.js +0 -80
  60. package/dist/services/cache/index.d.ts +0 -13
  61. package/dist/services/cache/index.js +0 -38
  62. package/dist/services/cache/redis/distributedLocks.d.ts +0 -15
  63. package/dist/services/cache/redis/distributedLocks.js +0 -90
  64. package/dist/services/cache/redisCacheService.constants.d.ts +0 -6
  65. package/dist/services/cache/redisCacheService.constants.js +0 -10
  66. package/dist/services/cache/redisCacheService.d.ts +0 -78
  67. package/dist/services/cache/redisCacheService.js +0 -519
  68. package/dist/services/cache/types/cacheInstrumentation.d.ts +0 -37
  69. package/dist/services/cache/types/cacheInstrumentation.js +0 -3
  70. package/dist/services/cache/types/cacheResponse.d.ts +0 -26
  71. package/dist/services/cache/types/cacheResponse.js +0 -19
  72. package/dist/services/cache/types/cacheServiceParams.d.ts +0 -20
  73. package/dist/services/cache/types/cacheServiceParams.js +0 -3
  74. package/dist/services/cache/types/entitlementFeature.d.ts +0 -19
  75. package/dist/services/cache/types/entitlementFeature.js +0 -3
  76. package/dist/services/cache/types/entitlementsMapTransformer.d.ts +0 -4
  77. package/dist/services/cache/types/entitlementsMapTransformer.js +0 -3
  78. package/dist/services/cache/types/logger.d.ts +0 -6
  79. package/dist/services/cache/types/logger.js +0 -3
  80. package/dist/services/cache/types/redisConfiguration.d.ts +0 -39
  81. package/dist/services/cache/types/redisConfiguration.js +0 -14
  82. package/dist/types.d.ts +0 -3
  83. package/dist/types.js +0 -3
  84. package/dist/utils/calculateUsagePeriod.d.ts +0 -5
  85. package/dist/utils/calculateUsagePeriod.js +0 -37
  86. package/dist/utils/dateUtils.d.ts +0 -2
  87. package/dist/utils/dateUtils.js +0 -13
  88. package/dist/utils/decorators/ReuseOngoingExecution.d.ts +0 -2
  89. package/dist/utils/decorators/ReuseOngoingExecution.js +0 -38
  90. package/dist/utils/featureTypes.d.ts +0 -10
  91. package/dist/utils/featureTypes.js +0 -24
package/dist/client.js CHANGED
@@ -10,7 +10,7 @@ const apiErrorHandling_1 = require("./utils/apiErrorHandling");
10
10
  const lodash_1 = require("lodash");
11
11
  const sdk_1 = require("@stigg/api-client-js/src/generated/sdk");
12
12
  const initializationStateTracker_1 = require("./services/initializationStateTracker");
13
- const cache_1 = require("./services/cache");
13
+ const cache_core_1 = require("@stigg/cache-core");
14
14
  const clientInitialization_1 = require("./clientInitialization");
15
15
  const entitlementFallbackUtils_1 = require("./utils/entitlementFallbackUtils");
16
16
  const mapGetEntitlementsFallback_1 = require("./utils/mapGetEntitlementsFallback");
@@ -255,7 +255,7 @@ class Stigg {
255
255
  if (this.config.offline) {
256
256
  return fallbackEntitlementWithValues;
257
257
  }
258
- const entitlement = await this.errorHandler.withErrorHandling(() => this.entitlementsService.getEntitlement({ type: cache_1.EntitlementType.Feature, id: featureId }, customerId, resourceId, options, fallbackEntitlementWithValues), {
258
+ const entitlement = await this.errorHandler.withErrorHandling(() => this.entitlementsService.getEntitlement({ type: cache_core_1.EntitlementType.Feature, id: featureId }, customerId, resourceId, options, fallbackEntitlementWithValues), {
259
259
  customerId,
260
260
  sdkConfiguration: this.config,
261
261
  errorReportMetadata: { featureId, options },
@@ -313,16 +313,16 @@ class Stigg {
313
313
  }
314
314
  // After guards, exactly one is true
315
315
  if (hasFeature) {
316
- return { type: cache_1.EntitlementType.Feature, id: params.featureId };
316
+ return { type: cache_core_1.EntitlementType.Feature, id: params.featureId };
317
317
  }
318
- return { type: cache_1.EntitlementType.Credit, id: params.currencyId };
318
+ return { type: cache_core_1.EntitlementType.Credit, id: params.currencyId };
319
319
  }
320
320
  getFallbackForInvalidGetEntitlementV2Params(params) {
321
321
  if (params.featureId) {
322
- return (0, entitlementFallbackUtils_1.getEntitlementV2FallbackFromOptions)({ type: cache_1.EntitlementType.Feature, id: params.featureId }, params.options);
322
+ return (0, entitlementFallbackUtils_1.getEntitlementV2FallbackFromOptions)({ type: cache_core_1.EntitlementType.Feature, id: params.featureId }, params.options);
323
323
  }
324
324
  if (params.currencyId) {
325
- return (0, entitlementFallbackUtils_1.getEntitlementV2FallbackFromOptions)({ type: cache_1.EntitlementType.Credit, id: params.currencyId }, params.options);
325
+ return (0, entitlementFallbackUtils_1.getEntitlementV2FallbackFromOptions)({ type: cache_core_1.EntitlementType.Credit, id: params.currencyId }, params.options);
326
326
  }
327
327
  return (0, entitlementFallbackUtils_1.getFeatureFallbackFromOptions)(params.options);
328
328
  }
@@ -332,7 +332,7 @@ class Stigg {
332
332
  if (!entitlement.isFallback || (options === null || options === void 0 ? void 0 : options.fallback)) {
333
333
  return entitlement;
334
334
  }
335
- if (entitlementReference.type === cache_1.EntitlementType.Credit) {
335
+ if (entitlementReference.type === cache_core_1.EntitlementType.Credit) {
336
336
  const creditConfigFallback = (_a = this.config.creditEntitlementsFallback) === null || _a === void 0 ? void 0 : _a[entitlementReference.id];
337
337
  if (!creditConfigFallback || !('currency' in entitlement)) {
338
338
  return entitlement;
@@ -1417,4 +1417,4 @@ class Stigg {
1417
1417
  }
1418
1418
  }
1419
1419
  exports.Stigg = Stigg;
1420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FpRWtCO0FBQ2xCLHFEQUFrRDtBQUdsRCxtREFBK0Y7QUFDL0YsNERBQXlEO0FBQ3pELHdEQUE0RDtBQUM1RCwrREFBMkQ7QUFFM0QsbUNBQWdEO0FBQ2hELGdFQTRCZ0Q7QUFDaEQsc0ZBQW1GO0FBQ25GLDRDQUFxRTtBQUVyRSxpRUFBb0U7QUFDcEUsK0VBSTBDO0FBQzFDLG1GQUFnRjtBQXdHaEYsSUFBSSxtQkFBbUIsR0FBaUIsSUFBSSxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBTWhCLFlBQ21CLE1BQXFDLEVBQ3JDLG1CQUF3QyxFQUN4QyxhQUE0QixFQUM1QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBK0I7UUFML0IsV0FBTSxHQUFOLE1BQU0sQ0FBK0I7UUFDckMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQVIxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBVXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixFQUFFLENB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
1420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FpRWtCO0FBQ2xCLHFEQUFrRDtBQUdsRCxtREFBK0Y7QUFDL0YsNERBQXlEO0FBQ3pELHdEQUE0RDtBQUM1RCwrREFBMkQ7QUFFM0QsbUNBQWdEO0FBQ2hELGdFQTRCZ0Q7QUFDaEQsc0ZBQW1GO0FBQ25GLGtEQUFzRTtBQUV0RSxpRUFBb0U7QUFDcEUsK0VBSTBDO0FBQzFDLG1GQUFnRjtBQXdHaEYsSUFBSSxtQkFBbUIsR0FBaUIsSUFBSSxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBTWhCLFlBQ21CLE1BQXFDLEVBQ3JDLG1CQUF3QyxFQUN4QyxhQUE0QixFQUM1QixhQUE0QixFQUM1QixtQkFBd0MsRUFDeEMsWUFBK0I7UUFML0IsV0FBTSxHQUFOLE1BQU0sQ0FBK0I7UUFDckMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQVIxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBVXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLHdCQUF3QixFQUFFLENB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
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.intializeStiggDependencies = void 0;
7
7
  const eventEmitter_1 = require("./services/eventEmitter");
8
- const cache_1 = require("./services/cache");
9
- const ApiCacheMapper_1 = require("./services/ApiCacheMapper");
8
+ const cache_core_1 = require("@stigg/cache-core");
9
+ const cache_redis_store_1 = require("@stigg/cache-redis-store");
10
10
  const initApolloClient_1 = __importDefault(require("./api/apollo/initApolloClient"));
11
11
  const redisEntitlementsService_1 = require("./services/redisEntitlementsService");
12
12
  const inMemoryEntitlementsService_1 = require("./services/inMemoryEntitlementsService");
@@ -17,17 +17,17 @@ const eventEmitterCacheInstrumentation_1 = require("./services/eventEmitterCache
17
17
  const intializeStiggDependencies = (isPersistedCacheEnabled, sdkConfiguration, loggerService) => {
18
18
  const eventEmitter = new eventEmitter_1.TypedEventEmitter();
19
19
  const cacheInstrumentation = new eventEmitterCacheInstrumentation_1.EventEmitterCacheInstrumentation(eventEmitter);
20
- const cacheMapper = new ApiCacheMapper_1.ApiCacheMapper(loggerService);
20
+ const cacheMapper = new cache_core_1.ApiCacheMapper(loggerService);
21
21
  let inMemoryCacheService = null;
22
22
  let entitlementsService;
23
23
  if (!isPersistedCacheEnabled) {
24
- inMemoryCacheService = new cache_1.InMemoryCacheService(sdkConfiguration.memoryCacheMaxSizeBytes, cacheInstrumentation, cacheMapper);
24
+ inMemoryCacheService = new cache_core_1.InMemoryCacheService(sdkConfiguration.memoryCacheMaxSizeBytes, cacheInstrumentation, cacheMapper);
25
25
  }
26
26
  const graphqlClient = (0, initApolloClient_1.default)(Object.assign(Object.assign({}, sdkConfiguration), { onConnected: (inMemoryCacheService === null || inMemoryCacheService === void 0 ? void 0 : inMemoryCacheService.clearCache) || Promise.resolve, loggerService }));
27
27
  const edgeApiClient = EdgeApiClient_1.EdgeApiClient.create(sdkConfiguration, loggerService);
28
28
  const { entitlementsTimeout } = sdkConfiguration;
29
29
  if (isPersistedCacheEnabled) {
30
- entitlementsService = new redisEntitlementsService_1.RedisEntitlementsService(new cache_1.RedisCacheService(sdkConfiguration, loggerService, cacheInstrumentation, cacheMapper), graphqlClient, loggerService, edgeApiClient, entitlementsTimeout);
30
+ entitlementsService = new redisEntitlementsService_1.RedisEntitlementsService(new cache_redis_store_1.RedisCacheService(sdkConfiguration, loggerService, cacheInstrumentation, cacheMapper), graphqlClient, loggerService, edgeApiClient, entitlementsTimeout);
31
31
  }
32
32
  else if (inMemoryCacheService) {
33
33
  entitlementsService = new inMemoryEntitlementsService_1.InMemoryEntitlementsService(inMemoryCacheService, graphqlClient, eventEmitter, loggerService, edgeApiClient, entitlementsTimeout);
@@ -40,4 +40,4 @@ const intializeStiggDependencies = (isPersistedCacheEnabled, sdkConfiguration, l
40
40
  return { eventEmitter, entitlementsService, managementApi, sdkConfigurationApi };
41
41
  };
42
42
  exports.intializeStiggDependencies = intializeStiggDependencies;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50SW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsMERBQTREO0FBQzVELDRDQUEyRTtBQUMzRSw4REFBaUY7QUFFakYscUZBQTZEO0FBQzdELGtGQUErRTtBQUMvRSx3RkFBcUY7QUFDckYsd0VBQWdEO0FBQ2hELG9GQUE0RDtBQUM1RCw0REFBeUQ7QUFDekQsa0dBQStGO0FBRXhGLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsdUJBQWdDLEVBQ2hDLGdCQUErQyxFQUMvQyxhQUE0QixFQUM1QixFQUFFO0lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQ0FBaUIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxtRUFBZ0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLCtCQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsSUFBSSxvQkFBb0IsR0FBc0QsSUFBSSxDQUFDO0lBQ25GLElBQUksbUJBQXdDLENBQUM7SUFFN0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDN0Isb0JBQW9CLEdBQUcsSUFBSSw0QkFBb0IsQ0FDN0MsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQ3hDLG9CQUFvQixFQUNwQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixrQ0FDakMsZ0JBQWdCLEtBQ25CLFdBQVcsRUFBRSxDQUFBLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLFVBQVUsS0FBSSxPQUFPLENBQUMsT0FBTyxFQUNoRSxhQUFhLElBQ2IsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLDZCQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLGdCQUFnQixDQUFDO0lBRWpELElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUM1QixtQkFBbUIsR0FBRyxJQUFJLG1EQUF3QixDQUNoRCxJQUFJLHlCQUFpQixDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsRUFDekYsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLG1CQUFtQixHQUFHLElBQUkseURBQTJCLENBQ25ELG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSx1QkFBYSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksNkJBQW1CLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFDbkYsQ0FBQyxDQUFDO0FBckRXLFFBQUEsMEJBQTBCLDhCQXFEckMifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50SW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsMERBQTREO0FBQzVELGtEQUErRjtBQUMvRixnRUFBNkQ7QUFFN0QscUZBQTZEO0FBQzdELGtGQUErRTtBQUMvRSx3RkFBcUY7QUFDckYsd0VBQWdEO0FBQ2hELG9GQUE0RDtBQUM1RCw0REFBeUQ7QUFDekQsa0dBQStGO0FBRXhGLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsdUJBQWdDLEVBQ2hDLGdCQUErQyxFQUMvQyxhQUE0QixFQUM1QixFQUFFO0lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxnQ0FBaUIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxtRUFBZ0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRixNQUFNLFdBQVcsR0FBRyxJQUFJLDJCQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsSUFBSSxvQkFBb0IsR0FBc0QsSUFBSSxDQUFDO0lBQ25GLElBQUksbUJBQXdDLENBQUM7SUFFN0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDN0Isb0JBQW9CLEdBQUcsSUFBSSxpQ0FBb0IsQ0FDN0MsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQ3hDLG9CQUFvQixFQUNwQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFnQixrQ0FDakMsZ0JBQWdCLEtBQ25CLFdBQVcsRUFBRSxDQUFBLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLFVBQVUsS0FBSSxPQUFPLENBQUMsT0FBTyxFQUNoRSxhQUFhLElBQ2IsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLDZCQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLGdCQUFnQixDQUFDO0lBRWpELElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUM1QixtQkFBbUIsR0FBRyxJQUFJLG1EQUF3QixDQUNoRCxJQUFJLHFDQUFpQixDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUMsRUFDekYsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLG1CQUFtQixHQUFHLElBQUkseURBQTJCLENBQ25ELG9CQUFvQixFQUNwQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSx1QkFBYSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUV0RSxNQUFNLG1CQUFtQixHQUFHLElBQUksNkJBQW1CLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFDbkYsQ0FBQyxDQUFDO0FBckRXLFFBQUEsMEJBQTBCLDhCQXFEckMifQ==
@@ -1,12 +1,12 @@
1
1
  import { SourceType } from '@stigg/api-client-js/src/generated/sdk';
2
2
  import { LogConfiguration, LoggerService } from './services/loggerService';
3
3
  import { CreditEntitlementsFallback, EntitlementsFallback } from './models';
4
- import { StiggRedisOptions } from './services/cache';
4
+ import { StiggRedisOptions } from '@stigg/cache-redis-store';
5
5
  export declare const SDK_SOURCE_TYPE = SourceType.NodeServerSdk;
6
6
  export declare const SDK_NAME = "node-server-sdk";
7
7
  export declare const DEFAULT_TIMEOUT: number;
8
8
  export declare const DEFAULT_ENTITLEMENTS_TIMEOUT: number;
9
- export type { StiggRedisOptions, DistributedEntitlementsFetchingOptions } from './services/cache';
9
+ export type { StiggRedisOptions, DistributedEntitlementsFetchingOptions } from '@stigg/cache-redis-store';
10
10
  type ClientConfiguration = {
11
11
  apiKey: string;
12
12
  baseUri?: string;
package/dist/models.d.ts CHANGED
@@ -3,7 +3,7 @@ export * from '@stigg/api-client-js/src/generated/sdk';
3
3
  export interface Metadata {
4
4
  [key: string]: string;
5
5
  }
6
- import { EntitlementFeature as CacheEntitlementFeature, UnitTransformation } from './services/cache';
6
+ import { EntitlementFeature as CacheEntitlementFeature, UnitTransformation } from '@stigg/cache-core';
7
7
  export { UnitTransformation };
8
8
  export type EntitlementFeature = CacheEntitlementFeature & {
9
9
  isMetered?: boolean;
@@ -1,6 +1,5 @@
1
1
  import { EntitlementUsageUpdatedFragment, EntitlementsUpdatedPayloadFragment, OnEntitlementsUpdatedV2Subscription } from '@stigg/api-client-js/src/generated/sdk';
2
- import { CachedEntitlement, EntitlementType } from './cache';
3
- import { Maybe } from '../types';
2
+ import { CachedEntitlement, EntitlementType, Maybe } from '@stigg/cache-core';
4
3
  type EntitlementsUpdatedV2Payload = OnEntitlementsUpdatedV2Subscription['entitlementsUpdatedV2'];
5
4
  /**
6
5
  * Maps V2 entitlements payload to V1 format for backward compatibility.
@@ -99,4 +99,4 @@ function buildUsageUpdatedV1Payload(customerId, resourceId, cachedEntitlement) {
99
99
  entitlement,
100
100
  };
101
101
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVnYWN5RXZlbnRQYXlsb2FkTWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0xlZ2FjeUV2ZW50UGF5bG9hZE1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSxvRUEwQkM7QUFNRCxnRUE4REM7QUE3SEQsMEVBQThFO0FBQzlFLG1DQUFxQztBQU1yQyxTQUFTLFNBQVMsQ0FBQyxJQUErQztJQUNoRSxJQUFJLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxJQUErQztJQUNsRSxJQUFJLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsU0FBdUM7SUFFdkMsa0VBQWtFO0lBQ2xFLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsb0RBQTRCLENBQUMsQ0FBQztJQUV4RixvREFBb0Q7SUFDcEQsTUFBTSxrQkFBa0IsR0FBK0QsbUJBQW1CLENBQUMsR0FBRyxDQUM1RyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsaUNBQ0gs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
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVnYWN5RXZlbnRQYXlsb2FkTWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0xlZ2FjeUV2ZW50UGF5bG9hZE1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxvRUEwQkM7QUFNRCxnRUE4REM7QUE1SEQsMEVBQThFO0FBQzlFLG1DQUFxQztBQUtyQyxTQUFTLFNBQVMsQ0FBQyxJQUErQztJQUNoRSxJQUFJLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxJQUErQztJQUNsRSxJQUFJLElBQUEsY0FBSyxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsU0FBdUM7SUFFdkMsa0VBQWtFO0lBQ2xFLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsb0RBQTRCLENBQUMsQ0FBQztJQUV4RixvREFBb0Q7SUFDcEQsTUFBTSxrQkFBa0IsR0FBK0QsbUJBQW1CLENBQUMsR0FBRyxDQUM1RyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsaUNBQ0gs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
@@ -1,6 +1,5 @@
1
- import { CachedEntitlement, EntitlementType } from './cache';
1
+ import { CachedEntitlement, EntitlementType, Maybe } from '@stigg/cache-core';
2
2
  import { AccessDeniedReason } from '../models';
3
- import { Maybe } from '../types';
4
3
  export interface DecideEntitlementPolicyParams {
5
4
  entitlementType: EntitlementType;
6
5
  accessDeniedReason: Maybe<AccessDeniedReason>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntitlementDecisionService = void 0;
4
- const cache_1 = require("./cache");
4
+ const cache_core_1 = require("@stigg/cache-core");
5
5
  const models_1 = require("../models");
6
6
  const lodash_1 = require("lodash");
7
7
  // TODO: Extract to a common lib for other sdks
@@ -16,16 +16,16 @@ class EntitlementDecisionService {
16
16
  if (entitlement.calculatedEntitlement.accessDeniedReason) {
17
17
  return { hasAccess: false, accessDeniedReason: entitlement.calculatedEntitlement.accessDeniedReason };
18
18
  }
19
- if ((0, cache_1.isCreditEntitlement)(entitlement)) {
19
+ if ((0, cache_core_1.isCreditEntitlement)(entitlement)) {
20
20
  return this.decideCreditAccess(entitlement);
21
21
  }
22
- if ((0, cache_1.isFeatureEntitlement)(entitlement)) {
22
+ if ((0, cache_core_1.isFeatureEntitlement)(entitlement)) {
23
23
  return this.decideFeatureAccess(entitlement, requestedUsage, requestedValues);
24
24
  }
25
25
  return { hasAccess: false, accessDeniedReason: models_1.AccessDeniedReason.NoFeatureEntitlementInSubscription };
26
26
  }
27
27
  static getNotFoundReason(entitlementType) {
28
- if (entitlementType === cache_1.EntitlementType.Feature) {
28
+ if (entitlementType === cache_core_1.EntitlementType.Feature) {
29
29
  // for backward compatability
30
30
  return models_1.AccessDeniedReason.NoFeatureEntitlementInSubscription;
31
31
  }
@@ -77,4 +77,4 @@ class EntitlementDecisionService {
77
77
  }
78
78
  }
79
79
  exports.EntitlementDecisionService = EntitlementDecisionService;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXdHO0FBQ3hHLHNDQUF1RTtBQUN2RSxtQ0FBNkM7QUFXN0MsK0NBQStDO0FBQy9DLE1BQWEsMEJBQTBCO0lBQzlCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUNwQyxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEdBQUcsQ0FBQyxFQUNsQixlQUFlLEdBQUcsRUFBRSxHQUNVO1FBQzlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDM0YsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEcsQ0FBQztRQUVELElBQUksSUFBQSwyQkFBbUIsRUFBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUEsNEJBQW9CLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FB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
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBTTJCO0FBQzNCLHNDQUF1RTtBQUN2RSxtQ0FBNkM7QUFVN0MsK0NBQStDO0FBQy9DLE1BQWEsMEJBQTBCO0lBQzlCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUNwQyxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEdBQUcsQ0FBQyxFQUNsQixlQUFlLEdBQUcsRUFBRSxHQUNVO1FBQzlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDM0YsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEcsQ0FBQztRQUVELElBQUksSUFBQSxnQ0FBbUIsRUFBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUEsaUNBQW9CLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FB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
@@ -3,13 +3,11 @@ import { LoggerService } from './loggerService';
3
3
  import { ApolloClient, FetchResult, NormalizedCacheObject } from '@apollo/client/core';
4
4
  import { BooleanEntitlement, BooleanEntitlementOptions, CustomerEntitlementsResultV2, CreateUsageMeasurement, CreditEntitlement, EntitlementV2, EnumEntitlement, EnumEntitlementOptions, EntitlementOptionsV2, MeteredEntitlement, MeteredEntitlementOptions, NumericEntitlement, NumericEntitlementOptions, ReportEvent } from '../models';
5
5
  import { ModelMapper } from '../utils/ModelMapper';
6
- import { CacheService, EntitlementQuery, EntitlementsMap, EntitlementsStateAccessDeniedReason } from './cache';
7
- import { Maybe } from '../types';
6
+ import { CacheService, EntitlementQuery, EntitlementsMap, EntitlementsStateAccessDeniedReason, Maybe } from '@stigg/cache-core';
8
7
  import { EdgeApiClient } from './EdgeApiClient';
9
8
  import { EntitlementUnionFragment, ReportEventMutation, ReportUsageBulkInput, ReportUsageBulkMutation, ReportUsageFragment, ReportUsageMutation } from '@stigg/api-client-js/src/generated/sdk';
10
- import { EntitlementsResponse, EntitlementsResponseCacheHit } from './cache';
9
+ import { EntitlementsResponse, EntitlementsResponseCacheHit, CacheableEntitlement } from '@stigg/cache-core';
11
10
  import { RefetchEntitlementsAfterCacheMissParams, RefetchEntitlementsParams, RefetchEntityEntitlementsAfterCacheMissParams } from './entitlementsService.utils';
12
- import { CacheableEntitlement } from './ApiCacheMapper';
13
11
  export declare abstract class EntitlementsService {
14
12
  protected readonly loggerService: LoggerService;
15
13
  protected readonly cacheService: CacheService<CacheableEntitlement>;