@stigg/node-server-sdk 4.10.0 → 4.12.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 (95) hide show
  1. package/dist/api/entitlements/entitlementsApi.d.ts +3 -4
  2. package/dist/api/entitlements/entitlementsApi.js +3 -8
  3. package/dist/client.d.ts +11 -1
  4. package/dist/client.js +26 -4
  5. package/dist/clientInitialization.js +8 -7
  6. package/dist/configuration.d.ts +2 -21
  7. package/dist/configuration.js +1 -1
  8. package/dist/models.d.ts +30 -6
  9. package/dist/models.js +12 -2
  10. package/dist/services/ApiCacheMapper.d.ts +15 -0
  11. package/dist/services/ApiCacheMapper.js +96 -0
  12. package/dist/services/EdgeApiClient.d.ts +1 -2
  13. package/dist/services/EdgeApiClient.js +1 -7
  14. package/dist/services/LegacyEventPayloadMapper.d.ts +15 -0
  15. package/dist/services/LegacyEventPayloadMapper.js +102 -0
  16. package/dist/services/cache/CacheMapper.d.ts +16 -0
  17. package/dist/services/cache/CacheMapper.js +3 -0
  18. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.d.ts +3 -3
  19. package/dist/services/cache/RedisSingleExecutionService/RedisSingleExecution.js +4 -3
  20. package/dist/services/cache/accessDeniedReasonMapper.d.ts +3 -0
  21. package/dist/services/cache/accessDeniedReasonMapper.js +16 -0
  22. package/dist/services/cache/cacheKeysHelpers.d.ts +9 -0
  23. package/dist/services/cache/cacheKeysHelpers.js +55 -0
  24. package/dist/services/cache/cacheService.d.ts +10 -28
  25. package/dist/services/cache/entities/cachedEntitlement.d.ts +20 -0
  26. package/dist/services/cache/entities/cachedEntitlement.js +53 -0
  27. package/dist/services/cache/entities/calculatedEntitlement.d.ts +34 -0
  28. package/dist/services/cache/entities/calculatedEntitlement.js +3 -0
  29. package/dist/services/cache/entities/entitlementQuery.d.ts +8 -0
  30. package/dist/services/cache/entities/entitlementQuery.js +3 -0
  31. package/dist/services/cache/entities/entitlementsMap.d.ts +33 -0
  32. package/dist/services/cache/entities/entitlementsMap.js +92 -0
  33. package/dist/services/cache/entities/index.d.ts +6 -0
  34. package/dist/services/cache/entities/index.js +12 -0
  35. package/dist/services/cache/entities/usageData.d.ts +11 -0
  36. package/dist/services/cache/entities/usageData.js +9 -0
  37. package/dist/services/cache/extractWithDependencies.d.ts +12 -0
  38. package/dist/services/cache/extractWithDependencies.js +37 -0
  39. package/dist/services/cache/freshness/EntitlementsFreshener.d.ts +11 -0
  40. package/dist/services/cache/freshness/EntitlementsFreshener.js +27 -0
  41. package/dist/services/cache/freshness/transformers/CreditAccessPropagator.d.ts +15 -0
  42. package/dist/services/cache/freshness/transformers/CreditAccessPropagator.js +67 -0
  43. package/dist/services/cache/freshness/transformers/UsagePeriodReset.d.ts +11 -0
  44. package/dist/services/cache/freshness/transformers/UsagePeriodReset.js +45 -0
  45. package/dist/services/cache/inMemoryCacheService.d.ts +19 -14
  46. package/dist/services/cache/inMemoryCacheService.js +44 -69
  47. package/dist/services/cache/index.d.ts +13 -0
  48. package/dist/services/cache/index.js +38 -0
  49. package/dist/services/cache/redis/distributedLocks.d.ts +4 -3
  50. package/dist/services/cache/redis/distributedLocks.js +5 -4
  51. package/dist/services/cache/redisCacheService.constants.d.ts +1 -1
  52. package/dist/services/cache/redisCacheService.constants.js +3 -3
  53. package/dist/services/cache/redisCacheService.d.ts +54 -17
  54. package/dist/services/cache/redisCacheService.js +293 -159
  55. package/dist/services/cache/types/cacheInstrumentation.d.ts +37 -0
  56. package/dist/services/cache/types/cacheInstrumentation.js +3 -0
  57. package/dist/services/cache/types/cacheResponse.d.ts +26 -0
  58. package/dist/services/cache/types/cacheResponse.js +19 -0
  59. package/dist/services/cache/types/cacheServiceParams.d.ts +20 -0
  60. package/dist/services/cache/types/cacheServiceParams.js +3 -0
  61. package/dist/services/cache/types/entitlementFeature.d.ts +19 -0
  62. package/dist/services/cache/types/entitlementFeature.js +3 -0
  63. package/dist/services/cache/types/entitlementsMapTransformer.d.ts +4 -0
  64. package/dist/services/cache/types/entitlementsMapTransformer.js +3 -0
  65. package/dist/services/cache/types/logger.d.ts +6 -0
  66. package/dist/services/cache/types/logger.js +3 -0
  67. package/dist/services/cache/types/redisConfiguration.d.ts +39 -0
  68. package/dist/services/cache/types/redisConfiguration.js +14 -0
  69. package/dist/services/entitlementDecisionService.d.ts +14 -2
  70. package/dist/services/entitlementDecisionService.js +41 -14
  71. package/dist/services/entitlementsService.d.ts +26 -23
  72. package/dist/services/entitlementsService.js +126 -110
  73. package/dist/services/entitlementsService.utils.d.ts +1 -28
  74. package/dist/services/entitlementsService.utils.js +1 -17
  75. package/dist/services/eventEmitter.d.ts +1 -1
  76. package/dist/services/eventEmitterCacheInstrumentation.d.ts +9 -0
  77. package/dist/services/eventEmitterCacheInstrumentation.js +19 -0
  78. package/dist/services/inMemoryEntitlementsService.d.ts +5 -6
  79. package/dist/services/inMemoryEntitlementsService.js +52 -59
  80. package/dist/services/redisEntitlementsService.d.ts +5 -4
  81. package/dist/services/redisEntitlementsService.js +2 -2
  82. package/dist/types.d.ts +2 -0
  83. package/dist/utils/ModelMapper.d.ts +8 -7
  84. package/dist/utils/ModelMapper.js +17 -3
  85. package/dist/{services/cache → utils}/calculateUsagePeriod.js +1 -1
  86. package/package.json +18 -1
  87. package/dist/services/cache/cachedEntitlement.d.ts +0 -29
  88. package/dist/services/cache/cachedEntitlement.js +0 -10
  89. package/dist/services/cacheInstrumentation.d.ts +0 -18
  90. package/dist/services/cacheInstrumentation.js +0 -19
  91. package/dist/utils/CacheMapper.d.ts +0 -6
  92. package/dist/utils/CacheMapper.js +0 -57
  93. package/dist/utils/cacheKeysHelpers.d.ts +0 -7
  94. package/dist/utils/cacheKeysHelpers.js +0 -42
  95. /package/dist/{services/cache → utils}/calculateUsagePeriod.d.ts +0 -0
@@ -9,8 +9,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.InMemoryEntitlementsService = void 0;
10
10
  const sdk_1 = require("@stigg/api-client-js/src/generated/sdk");
11
11
  const entitlementsService_1 = require("./entitlementsService");
12
+ const cache_1 = require("./cache");
12
13
  const ReuseOngoingExecution_1 = require("../utils/decorators/ReuseOngoingExecution");
13
14
  const lodash_1 = require("lodash");
15
+ const LegacyEventPayloadMapper_1 = require("./LegacyEventPayloadMapper");
14
16
  const WS_ERROR_RECONNECT_INTERVAL_MS = 5 * 1000;
15
17
  class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsService {
16
18
  constructor(cacheService, client, eventEmitter, loggerService, edgeApiClient, entitlementsTimeout) {
@@ -20,7 +22,6 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
20
22
  this.entitlementsSubscription = null;
21
23
  this.usageSubscription = null;
22
24
  this.packagePublished = null;
23
- this.creditBalance = null;
24
25
  }
25
26
  init() {
26
27
  this.loggerService.log('Subscribing to real-time updates');
@@ -28,7 +29,6 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
28
29
  this.entitlementsSubscription = this.entitlementsApi.subscribeEntitlementsUpdated().subscribe((value) => this.onEntitlementsUpdated(value), (err) => this.websocketErrorHandling(err));
29
30
  this.usageSubscription = this.entitlementsApi.subscribeUsageUpdated().subscribe((value) => this.onUsageUpdated(value), (err) => this.websocketErrorHandling(err));
30
31
  this.packagePublished = this.entitlementsApi.subscribePackagePublished().subscribe((value) => this.onPackagePublished(value), (err) => this.websocketErrorHandling(err));
31
- this.creditBalance = this.entitlementsApi.subscribeCreditBalanceUpdated().subscribe((value) => this.onCreditBalanceUpdated(value), (err) => this.websocketErrorHandling(err));
32
32
  this.isInitialized = true;
33
33
  }
34
34
  websocketErrorHandling(err) {
@@ -49,15 +49,13 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
49
49
  }
50
50
  }
51
51
  cleanup() {
52
- var _a, _b, _c, _d;
52
+ var _a, _b, _c;
53
53
  (_a = this.entitlementsSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
54
54
  this.entitlementsSubscription = null;
55
55
  (_b = this.usageSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
56
56
  this.usageSubscription = null;
57
57
  (_c = this.packagePublished) === null || _c === void 0 ? void 0 : _c.unsubscribe();
58
58
  this.packagePublished = null;
59
- (_d = this.creditBalance) === null || _d === void 0 ? void 0 : _d.unsubscribe();
60
- this.creditBalance = null;
61
59
  this.cacheService.clearCache();
62
60
  this.isInitialized = false;
63
61
  }
@@ -68,30 +66,41 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
68
66
  });
69
67
  return;
70
68
  }
71
- const entitlementsUpdated = result.data.entitlementsUpdated;
69
+ const entitlementsUpdated = result.data.entitlementsUpdatedV2;
70
+ const { customerId, resourceId, accessDeniedReason, entitlements } = entitlementsUpdated;
72
71
  this.loggerService.debug(`Entitlements updated event arrived.`, {
73
- customerId: entitlementsUpdated.customerId,
74
- resourceId: entitlementsUpdated.resourceId,
75
- accessDeniedReason: entitlementsUpdated.accessDeniedReason,
76
- entitlementsCount: entitlementsUpdated.entitlements.length,
72
+ customerId,
73
+ resourceId,
74
+ accessDeniedReason,
75
+ entitlementsCount: entitlements.length,
77
76
  });
78
- const entitlements = this.cacheMapper.mapCachedEntitlements(entitlementsUpdated.entitlements);
79
- const accessDeniedReason = entitlementsUpdated.accessDeniedReason
80
- ? entitlementsService_1.accessDeniedReasonMap[entitlementsUpdated.accessDeniedReason]
81
- : null;
82
- if (entitlements.size === 0 && !accessDeniedReason) {
77
+ // Check for empty entitlements before mapping/caching
78
+ if (entitlements.length === 0 && !accessDeniedReason) {
83
79
  this.loggerService.debug(`entitlements updated event contains no entitlements and no accessDeniedReason.`, {
84
- customerId: entitlementsUpdated.customerId,
85
- resourceId: entitlementsUpdated.resourceId,
86
- accessDeniedReason: entitlementsUpdated.accessDeniedReason,
80
+ customerId,
81
+ resourceId,
82
+ accessDeniedReason,
87
83
  });
88
84
  // we don't know the reason for empty entitlements, so we invalidate the cache to fetch
89
85
  // fresh accessDeniedReason on next request
90
- this.cacheService.clearCustomer(entitlementsUpdated.customerId, entitlementsUpdated.resourceId || undefined);
86
+ this.cacheService.purge({ customerId, resourceId });
91
87
  return;
92
88
  }
93
- this.cacheService.setCustomer(entitlementsUpdated.customerId, entitlements, accessDeniedReason, entitlementsUpdated.resourceId || undefined);
94
- this.eventEmitter.emit('entitlementsUpdated', entitlementsUpdated);
89
+ const entitlementsTimestamp = this.getEntitlementsUpdatedAtTimestamp({
90
+ entitlements,
91
+ customerId,
92
+ resourceId,
93
+ });
94
+ this.cacheService.setCustomer({
95
+ customerId,
96
+ resourceId,
97
+ entitlements,
98
+ accessDeniedReason,
99
+ entitlementsTimestamp: entitlementsTimestamp.getTime(),
100
+ });
101
+ // Emit backward-compatible event (filter out credit entitlements)
102
+ const v1Payload = (0, LegacyEventPayloadMapper_1.mapEntitlementsUpdatedV2ToV1)(entitlementsUpdated);
103
+ this.eventEmitter.emit('entitlementsUpdated', v1Payload);
95
104
  }
96
105
  onUsageUpdated(result) {
97
106
  if (result.errors || !result.data) {
@@ -100,55 +109,39 @@ class InMemoryEntitlementsService extends entitlementsService_1.EntitlementsServ
100
109
  });
101
110
  return;
102
111
  }
103
- const { usage: { customerId, featureId, resourceId, currentUsage, usagePeriodStart, usagePeriodEnd }, } = result.data.usageUpdated;
112
+ const { customerId, resourceId, entitlementReference, usage } = result.data.usageUpdatedV2;
113
+ const { currentUsage, usagePeriodStart, usagePeriodEnd, usageUpdatedAt } = usage;
104
114
  this.loggerService.debug(`Usage updated event arrived.`, {
105
115
  customerId: customerId,
106
- featureId: featureId,
107
116
  resourceId: resourceId,
117
+ entitlementType: entitlementReference.type,
118
+ entitlementId: entitlementReference.id,
108
119
  currentUsage: currentUsage,
109
120
  usagePeriodStart: usagePeriodStart,
110
121
  usagePeriodEnd: usagePeriodEnd,
111
122
  });
112
- const wasSet = this.cacheService.updateFeatureUsage({
113
- timestamp: new Date(),
114
- customerId,
115
- resourceId: resourceId || undefined,
116
- featureId,
117
- currentUsage,
118
- usagePeriodStart: usagePeriodStart || undefined,
119
- usagePeriodEnd: usagePeriodEnd || undefined,
120
- });
121
- if (wasSet) {
122
- this.eventEmitter.emit('usageUpdated', result.data.usageUpdated);
123
- }
124
- }
125
- onCreditBalanceUpdated(result) {
126
- if (result.errors || !result.data) {
127
- this.loggerService.error(`Failed to handle credit balance updated event. Errors: ${result.errors}`, {
128
- errors: JSON.stringify(result.errors),
129
- });
130
- return;
131
- }
132
- const { customerId, resourceId, currentBalance, currency: { currencyId }, totalConsumed, totalGranted, validUntil, } = result.data.creditBalanceUpdated;
133
- this.loggerService.log(`Credit balance updated event arrived.`, {
123
+ const usageTimestamp = usageUpdatedAt !== null && usageUpdatedAt !== void 0 ? usageUpdatedAt : Date.now();
124
+ this.cacheService.updateUsage({
134
125
  customerId,
135
126
  resourceId,
136
- currencyId,
137
- currentBalance,
138
- totalConsumed,
139
- totalGranted,
140
- validUntil,
127
+ entitlementReference,
128
+ usageTimestamp,
129
+ usage: {
130
+ currentUsage,
131
+ usagePeriodStart,
132
+ usagePeriodEnd,
133
+ },
141
134
  });
142
- this.cacheService.updateEntitlementsBasedOnCreditBalanceUpdate({
143
- timestamp: new Date(),
135
+ const updatedEntitlement = this.cacheService.getCustomerEntitlement({
136
+ query: entitlementReference,
144
137
  customerId,
145
- resourceId: resourceId || undefined,
146
- currencyId,
147
- totalGranted,
148
- totalConsumed,
149
- currentBalance,
150
- validUntil: validUntil || undefined,
138
+ resourceId,
151
139
  });
140
+ // Only emit usageUpdated event for FEATURE type (backward compatibility)
141
+ if (updatedEntitlement.entitlement && (0, cache_1.isFeatureEntitlement)(updatedEntitlement.entitlement)) {
142
+ const v1Payload = (0, LegacyEventPayloadMapper_1.buildUsageUpdatedV1Payload)(customerId, resourceId, updatedEntitlement.entitlement);
143
+ this.eventEmitter.emit('usageUpdated', v1Payload);
144
+ }
152
145
  }
153
146
  isErrorRecoverable(err) {
154
147
  const isInvalidAPIKeyError = err.reason === 'Invalid API key';
@@ -182,4 +175,4 @@ __decorate([
182
175
  (0, ReuseOngoingExecution_1.ReuseOngoingExecution)(({ customerId, resourceId }) => (0, lodash_1.compact)([customerId, resourceId]).join(':'))
183
176
  ], InMemoryEntitlementsService.prototype, "refetchEntityEntitlementsAfterCacheMiss", null);
184
177
  exports.InMemoryEntitlementsService = InMemoryEntitlementsService;
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2luTWVtb3J5RW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxnRUFNZ0Q7QUFHaEQsK0RBQW1GO0FBSW5GLHFGQUFrRjtBQUNsRixtQ0FBaUM7QUFHakMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBRWhELE1BQWEsMkJBQTRCLFNBQVEseUNBQW1CO0lBTWxFLFlBQ3FCLFlBQWtDLEVBQ3JELE1BQTJDLEVBQzFCLFlBQStCLEVBQ2hELGFBQTRCLEVBQzVCLGFBQW1DLEVBQ25DLG1CQUEyQjtRQUUzQixLQUFLLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFQNUQsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBRXBDLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQVIxQyw2QkFBd0IsR0FBa0MsSUFBSSxDQUFDO1FBQy9ELHNCQUFpQixHQUFrQyxJQUFJLENBQUM7UUFDeEQscUJBQWdCLEdBQWtDLElBQUksQ0FBQztRQUN2RCxrQkFBYSxHQUFrQyxJQUFJLENBQUM7SUFXNUQsQ0FBQztJQUVRLElBQUk7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLENBQUMsU0FBUyxDQUMzRixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUM1QyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFD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
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnlFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2luTWVtb3J5RW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxnRUFLZ0Q7QUFHaEQsK0RBQTREO0FBRTVELG1DQUFxRTtBQUVyRSxxRkFBa0Y7QUFDbEYsbUNBQWlDO0FBRWpDLHlFQUFzRztBQUd0RyxNQUFNLDhCQUE4QixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFFaEQsTUFBYSwyQkFBNEIsU0FBUSx5Q0FBbUI7SUFLbEUsWUFDcUIsWUFBd0QsRUFDM0UsTUFBMkMsRUFDMUIsWUFBK0IsRUFDaEQsYUFBNEIsRUFDNUIsYUFBbUMsRUFDbkMsbUJBQTJCO1FBRTNCLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQVA1RCxpQkFBWSxHQUFaLFlBQVksQ0FBNEM7UUFFMUQsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBUDFDLDZCQUF3QixHQUFrQyxJQUFJLENBQUM7UUFDL0Qsc0JBQWlCLEdBQWtDLElBQUksQ0FBQztRQUN4RCxxQkFBZ0IsR0FBa0MsSUFBSSxDQUFDO0lBVy9ELENBQUM7SUFFUSxJQUFJO1FBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLFNBQVMsQ0FDM0YsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFDNUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxH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
@@ -2,14 +2,15 @@ import { EntitlementsService } from './entitlementsService';
2
2
  import { RefetchEntityEntitlementsAfterCacheMissParams } from './entitlementsService.utils';
3
3
  import { ApolloClient, NormalizedCacheObject } from '@apollo/client/core';
4
4
  import { LoggerService } from './loggerService';
5
- import { RedisCacheService } from './cache/redisCacheService';
5
+ import { RedisCacheService } from './cache';
6
6
  import { EdgeApiClient } from './EdgeApiClient';
7
+ import { CacheableEntitlement } from './ApiCacheMapper';
7
8
  export declare class RedisEntitlementsService extends EntitlementsService {
8
- protected readonly cacheService: RedisCacheService;
9
+ protected readonly cacheService: RedisCacheService<CacheableEntitlement>;
9
10
  protected readonly graphqlClient: ApolloClient<NormalizedCacheObject>;
10
11
  protected readonly loggerService: LoggerService;
11
- constructor(cacheService: RedisCacheService, graphqlClient: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService, edgeApiClient: EdgeApiClient | null, entitlementsTimeout: number);
12
- protected refetchEntityEntitlementsAfterCacheMiss(params: RefetchEntityEntitlementsAfterCacheMissParams): Promise<import("./entitlementsService.utils").EntitlementsResponse>;
12
+ constructor(cacheService: RedisCacheService<CacheableEntitlement>, graphqlClient: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService, edgeApiClient: EdgeApiClient | null, entitlementsTimeout: number);
13
+ protected refetchEntityEntitlementsAfterCacheMiss(params: RefetchEntityEntitlementsAfterCacheMissParams): Promise<import("./cache").EntitlementsResponse>;
13
14
  clearCache(): Promise<void>;
14
15
  init(): void | Promise<void>;
15
16
  cleanup(): void | Promise<void>;
@@ -28,7 +28,7 @@ class RedisEntitlementsService extends entitlementsService_1.EntitlementsService
28
28
  }
29
29
  const { customerId, resourceId } = params;
30
30
  const reloadFromApi = () => this.refetchEntitlements(params);
31
- const loadFromCache = () => this.cacheService.getCustomerEntitlements(customerId, resourceId);
31
+ const loadFromCache = () => this.cacheService.getCustomerEntitlements({ customerId, resourceId });
32
32
  return distributedRefetchEntitlementsService.executeOnceAcrossMultipleProcesses({
33
33
  customerId,
34
34
  resourceId,
@@ -52,4 +52,4 @@ __decorate([
52
52
  (0, ReuseOngoingExecution_1.ReuseOngoingExecution)(({ customerId, resourceId }) => (0, lodash_1.compact)([customerId, resourceId]).join(':'))
53
53
  ], RedisEntitlementsService.prototype, "refetchEntityEntitlementsAfterCacheMiss", null);
54
54
  exports.RedisEntitlementsService = RedisEntitlementsService;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JlZGlzRW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwrREFBNEQ7QUFNNUQscUZBQWtGO0FBQ2xGLG1DQUFpQztBQUVqQyxNQUFhLHdCQUF5QixTQUFRLHlDQUFtQjtJQUMvRCxZQUNxQixZQUErQixFQUMvQixhQUFrRCxFQUNsRCxhQUE0QixFQUMvQyxhQUFtQyxFQUNuQyxtQkFBMkI7UUFFM0IsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBTm5FLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUM7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFLL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyw0Q0FBNEM7SUFDekUsQ0FBQztJQUt3QixBQUFOLEtBQUssQ0FBQyx1Q0FBdUMsQ0FDOUQsTUFBcUQ7UUFFckQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDekU7UUFFRCxNQUFNLEVBQUUscUNBQXFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQ0FBcUMsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUU5RixPQUFPLHFDQUFxQyxDQUFDLGtDQUFrQyxDQUFDO1lBQzlFLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtZQUNiLGFBQWE7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsVUFBVTtRQUNqQiw0Q0FBNEM7UUFDNUMsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVRLElBQUk7UUFDWCxrRUFBa0U7UUFDbEUsT0FBTztJQUNULENBQUM7SUFFUSxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQXJDMEI7SUFIeEIsSUFBQSw2Q0FBcUIsRUFBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBaUQsRUFBRSxFQUFFLENBQ25HLElBQUEsZ0JBQU8sRUFBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDNUM7dUZBdUJBO0FBckNILDREQW9EQyJ9
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXNFbnRpdGxlbWVudHNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JlZGlzRW50aXRsZW1lbnRzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwrREFBNEQ7QUFNNUQscUZBQWtGO0FBQ2xGLG1DQUFpQztBQUdqQyxNQUFhLHdCQUF5QixTQUFRLHlDQUFtQjtJQUMvRCxZQUNxQixZQUFxRCxFQUNyRCxhQUFrRCxFQUNsRCxhQUE0QixFQUMvQyxhQUFtQyxFQUNuQyxtQkFBMkI7UUFFM0IsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBTm5FLGlCQUFZLEdBQVosWUFBWSxDQUF5QztRQUNyRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUM7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFLL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyw0Q0FBNEM7SUFDekUsQ0FBQztJQUt3QixBQUFOLEtBQUssQ0FBQyx1Q0FBdUMsQ0FDOUQsTUFBcUQ7UUFFckQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7U0FDekU7UUFFRCxNQUFNLEVBQUUscUNBQXFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQ0FBcUMsRUFBRTtZQUMxQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFbEcsT0FBTyxxQ0FBcUMsQ0FBQyxrQ0FBa0MsQ0FBQztZQUM5RSxVQUFVO1lBQ1YsVUFBVTtZQUNWLGFBQWE7WUFDYixhQUFhO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFVBQVU7UUFDakIsNENBQTRDO1FBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUSxJQUFJO1FBQ1gsa0VBQWtFO1FBQ2xFLE9BQU87SUFDVCxDQUFDO0lBRVEsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFyQzBCO0lBSHhCLElBQUEsNkNBQXFCLEVBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQWlELEVBQUUsRUFBRSxDQUNuRyxJQUFBLGdCQUFPLEVBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQzVDO3VGQXVCQTtBQXJDSCw0REFvREMifQ==
package/dist/types.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export type OptionalPromise<T> = T | Promise<T>;
2
+ export type Maybe<T> = T | null | undefined;
3
+ export type OneOrMany<T> = T | T[];
@@ -1,13 +1,14 @@
1
1
  import { ApplySubscriptionMutation, CustomerResourceFragment, CustomerStatisticsFragment, CustomerWithSubscriptionsFragment, GetCouponsQuery, GetPaywallQuery, GetProductsQuery, ImmediateSubscriptionPreviewInvoiceFragment, ProvisionCustomerMutation, ProvisionSubscriptionMutation, ReportUsageFragment, SlimCustomerFragment, SlimSubscriptionFragment, SubscriptionFragment, SubscriptionPreviewFragment, SubscriptionPreviewInvoiceFragment, SubscriptionPreviewV2Fragment, UsageHistoryFragment } from '@stigg/api-client-js/src/generated/sdk';
2
- import { ApplySubscriptionResults, BooleanEntitlement, Coupon, CustomerResource, CustomerStatisticsModel, Entitlement, EnumEntitlement, FullCustomer, FullSubscription, MeteredEntitlement, Money, NumericEntitlement, Paywall, Plan, Price, Product, ProvisionedCustomer, ProvisionSubscriptionResult, ReportUsageAck, SlimCustomer, Subscription, SubscriptionPreview, SubscriptionPreviewCredits, SubscriptionPreviewDiscount, SubscriptionPreviewInvoice, SubscriptionPreviewV2, UsageHistoryPoint } from '../models';
2
+ import { ApplySubscriptionResults, BooleanEntitlement, Coupon, CreditEntitlement, CustomerResource, CustomerStatisticsModel, Entitlement, EnumEntitlement, FullCustomer, FullSubscription, MeteredEntitlement, Money, NumericEntitlement, Paywall, Plan, Price, Product, ProvisionedCustomer, ProvisionSubscriptionResult, ReportUsageAck, SlimCustomer, Subscription, SubscriptionPreview, SubscriptionPreviewCredits, SubscriptionPreviewDiscount, SubscriptionPreviewInvoice, SubscriptionPreviewV2, UsageHistoryPoint } from '../models';
3
3
  import { Decision } from '../services/entitlementDecisionService';
4
- import CachedEntitlement from '../services/cache/cachedEntitlement';
4
+ import { CachedEntitlement, EntitlementType } from '../services/cache';
5
5
  declare class ModelMapper {
6
- mapEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number, requestedValues?: string[]): Entitlement;
7
- mapBooleanEntitlement(entitlement: CachedEntitlement, decision: Decision): BooleanEntitlement;
8
- mapEnumEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedValues?: string[]): EnumEntitlement;
9
- mapNumericEntitlement(entitlement: CachedEntitlement, decision: Decision): NumericEntitlement;
10
- mapMeteredEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number): MeteredEntitlement;
6
+ mapEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedUsage?: number, requestedValues?: string[]): Entitlement;
7
+ mapBooleanEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision): BooleanEntitlement;
8
+ mapEnumEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedValues?: string[]): EnumEntitlement;
9
+ mapNumericEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision): NumericEntitlement;
10
+ mapMeteredEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedUsage?: number): MeteredEntitlement;
11
+ mapCreditEntitlement(entitlement: CachedEntitlement<EntitlementType.Credit>, decision: Decision): CreditEntitlement;
11
12
  mapSlimCustomer: (customer: SlimCustomerFragment) => SlimCustomer;
12
13
  mapProvisionedCustomer: (graphProvisionedCustomer: ProvisionCustomerMutation) => ProvisionedCustomer;
13
14
  mapProvisionedSubscriptionResult: (graphProvisionedSubscriptionResult: ProvisionSubscriptionMutation) => ProvisionSubscriptionResult;
@@ -139,8 +139,8 @@ class ModelMapper {
139
139
  };
140
140
  }
141
141
  mapMeteredEntitlement(entitlement, decision, requestedUsage) {
142
- const { hasUnlimitedUsage, usageLimit, hasSoftLimit } = entitlement.calculatedEntitlement;
143
- const { currentUsage, resetPeriod, usagePeriodAnchor, usagePeriodStart, usagePeriodEnd } = entitlement.featureUsage;
142
+ const { hasUnlimitedUsage, usageLimit, hasSoftLimit, resetPeriod, usagePeriodAnchor } = entitlement.calculatedEntitlement;
143
+ const { currentUsage, usagePeriodStart, usagePeriodEnd } = entitlement.usageData;
144
144
  return {
145
145
  type: 'METERED',
146
146
  isFallback: false,
@@ -160,6 +160,20 @@ class ModelMapper {
160
160
  ? Object.assign(Object.assign({}, entitlement.calculatedEntitlement.feature), { meterType: entitlement.calculatedEntitlement.feature.meterType || undefined, isMetered: true }) : undefined,
161
161
  };
162
162
  }
163
+ mapCreditEntitlement(entitlement, decision) {
164
+ const { currency, usageLimit } = entitlement.calculatedEntitlement;
165
+ const { currentUsage } = entitlement.usageData;
166
+ const remaining = Math.max(usageLimit - currentUsage, 0);
167
+ return {
168
+ hasAccess: decision.hasAccess,
169
+ isFallback: false,
170
+ accessDeniedReason: decision.accessDeniedReason,
171
+ currency,
172
+ usageLimit,
173
+ currentUsage,
174
+ remaining,
175
+ };
176
+ }
163
177
  getSubscriptionPrices(subscription) {
164
178
  return subscription.prices
165
179
  ? subscription.prices
@@ -586,4 +600,4 @@ class ModelMapper {
586
600
  }
587
601
  }
588
602
  exports.ModelMapper = ModelMapper;
589
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBa0NnRDtBQUNoRCxzQ0FxQ21CO0FBR25CLG1DQUF5QztBQUN6QyxpREFBMkM7QUFDM0MsMkNBQXNDO0FBRXRDLE1BQU0sV0FBVztJQUFqQjtRQWdIRSxvQkFBZSxHQUFHLENBQUMsUUFBOEIsRUFBZ0IsRUFBRTtZQUNqRSxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDbEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLElBQUksU0FBUztnQkFDaEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksU0FBUztnQkFDbEMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDMUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxRQUFRLEVBQUUsUUFBUSxDQUFDLGtCQUFrQjtnQkFDckMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLHdCQUF3QjthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsMkJBQXNCLEdBQUcsQ0FBQyx3QkFBbUQsRUFBdUIsRUFBRTtZQUNwRyxNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6RyxNQUFNLFlBQVksR0FBNkIsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsWUFBWTtnQkFDcEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ25GLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFZCxPQUFP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
603
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBa0NnRDtBQUNoRCxzQ0F1Q21CO0FBR25CLG1DQUF5QztBQUN6QyxpREFBMkM7QUFDM0MsMkNBQXNDO0FBRXRDLE1BQU0sV0FBVztJQUFqQjtRQTJJRSxvQkFBZSxHQUFHLENBQUMsUUFBOEIsRUFBZ0IsRUFBRTtZQUNqRSxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDbEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLElBQUksU0FBUztnQkFDaEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksU0FBUztnQkFDbEMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTLElBQUksU0FBUztnQkFDMUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxRQUFRLEVBQUUsUUFBUSxDQUFDLGtCQUFrQjtnQkFDckMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLHdCQUF3QjthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsMkJBQXNCLEdBQUcsQ0FBQyx3QkFBbUQsRUFBdUIsRUFBRTtZQUNwRyxNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV6RyxNQUFNLFlBQVksR0FBNkIsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsWUFBWTtnQkFDcEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ25GLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFFZCxPQUFP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
@@ -35,4 +35,4 @@ function calculateUsagePeriod(usagePeriodAnchor, baseDate, resetPeriod) {
35
35
  };
36
36
  }
37
37
  exports.calculateUsagePeriod = calculateUsagePeriod;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlVXNhZ2VQZXJpb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FsY3VsYXRlVXNhZ2VQZXJpb2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQWdGO0FBQ2hGLGtEQUE4QztBQUU5QyxTQUFTLGFBQWEsQ0FBQyxXQUFtQztJQUN4RCxRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLDRCQUFzQixDQUFDLElBQUk7WUFDOUIsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyw0QkFBc0IsQ0FBQyxLQUFLO1lBQy9CLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssNEJBQXNCLENBQUMsSUFBSTtZQUM5QixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLDRCQUFzQixDQUFDLEdBQUc7WUFDN0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyw0QkFBc0IsQ0FBQyxJQUFJO1lBQzlCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLGlCQUF1QixFQUFFLFFBQWMsRUFBRSxXQUFtQztJQUMvRyxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssRUFBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQUssRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXBGLE9BQU87UUFDTCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsY0FBYyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUU7S0FDeEMsQ0FBQztBQUNKLENBQUM7QUFiRCxvREFhQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlVXNhZ2VQZXJpb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2FsY3VsYXRlVXNhZ2VQZXJpb2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQWdGO0FBQ2hGLGtEQUE4QztBQUU5QyxTQUFTLGFBQWEsQ0FBQyxXQUFtQztJQUN4RCxRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLDRCQUFzQixDQUFDLElBQUk7WUFDOUIsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyw0QkFBc0IsQ0FBQyxLQUFLO1lBQy9CLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssNEJBQXNCLENBQUMsSUFBSTtZQUM5QixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLDRCQUFzQixDQUFDLEdBQUc7WUFDN0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyw0QkFBc0IsQ0FBQyxJQUFJO1lBQzlCLE9BQU8sT0FBTyxDQUFDO1FBQ2pCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLGlCQUF1QixFQUFFLFFBQWMsRUFBRSxXQUFtQztJQUMvRyxNQUFNLEdBQUcsR0FBRyxJQUFBLGVBQUssRUFBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQUssRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXBGLE9BQU87UUFDTCxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFDM0MsY0FBYyxFQUFFLGNBQWMsQ0FBQyxNQUFNLEVBQUU7S0FDeEMsQ0FBQztBQUNKLENBQUM7QUFiRCxvREFhQyJ9
package/package.json CHANGED
@@ -1,9 +1,26 @@
1
1
  {
2
2
  "name": "@stigg/node-server-sdk",
3
- "version": "4.10.0",
3
+ "version": "4.12.0",
4
4
  "description": "Stigg server-side node SDK",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./cache": {
13
+ "types": "./dist/services/cache/index.d.ts",
14
+ "default": "./dist/services/cache/index.js"
15
+ }
16
+ },
17
+ "typesVersions": {
18
+ "*": {
19
+ "cache": [
20
+ "dist/services/cache/index.d.ts"
21
+ ]
22
+ }
23
+ },
7
24
  "repository": "https://github.com/stiggio/node-server-sdk",
8
25
  "license": "MIT",
9
26
  "keywords": [],
@@ -1,29 +0,0 @@
1
- import { AccessDeniedReason, EntitlementFeature, EntitlementResetPeriod } from '../../models';
2
- import { ResetPeriodConfigurationFragment } from '@stigg/api-client-js/src/generated/sdk';
3
- export interface CalculatedEntitlement {
4
- feature?: EntitlementFeature;
5
- resourceId?: string;
6
- usageLimit?: number | null;
7
- enumValues?: string[];
8
- hasUnlimitedUsage: boolean;
9
- hasSoftLimit: boolean;
10
- accessDeniedReason?: AccessDeniedReason;
11
- validUntil?: number;
12
- creditRate?: {
13
- amount: number;
14
- currencyId: string;
15
- };
16
- }
17
- export interface FeatureUsage {
18
- currentUsage: number;
19
- usagePeriodAnchor?: number;
20
- usagePeriodStart?: number;
21
- usagePeriodEnd?: number;
22
- resetPeriod?: EntitlementResetPeriod | null;
23
- resetPeriodConfiguration?: ResetPeriodConfigurationFragment | null;
24
- }
25
- export default class CachedEntitlement {
26
- readonly calculatedEntitlement: CalculatedEntitlement;
27
- readonly featureUsage: FeatureUsage;
28
- constructor(calculatedEntitlement: CalculatedEntitlement, featureUsage: FeatureUsage);
29
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class CachedEntitlement {
4
- constructor(calculatedEntitlement, featureUsage) {
5
- this.calculatedEntitlement = calculatedEntitlement;
6
- this.featureUsage = featureUsage;
7
- }
8
- }
9
- exports.default = CachedEntitlement;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkRW50aXRsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FjaGVkRW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsTUFBcUIsaUJBQWlCO0lBSXBDLFlBQVkscUJBQTRDLEVBQUUsWUFBMEI7UUFDbEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQVJELG9DQVFDIn0=
@@ -1,18 +0,0 @@
1
- import { TypedEventEmitter } from './eventEmitter';
2
- export interface CacheHit {
3
- customerId: string;
4
- resourceId?: string;
5
- }
6
- export interface CacheMiss extends CacheHit {
7
- globalCustomerMissing?: boolean;
8
- }
9
- export declare class CacheInstrumentation {
10
- private readonly eventEmitter;
11
- constructor(eventEmitter: TypedEventEmitter);
12
- trackHit(data: CacheHit): void;
13
- trackMiss(data: CacheMiss): void;
14
- trackRedisClientError(data: {
15
- error: Error;
16
- clientName: 'redis' | 'redlock' | 'subscribe';
17
- }): void;
18
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CacheInstrumentation = void 0;
4
- class CacheInstrumentation {
5
- constructor(eventEmitter) {
6
- this.eventEmitter = eventEmitter;
7
- }
8
- trackHit(data) {
9
- this.eventEmitter.emit('cacheHit', data);
10
- }
11
- trackMiss(data) {
12
- this.eventEmitter.emit('cacheMiss', data);
13
- }
14
- trackRedisClientError(data) {
15
- this.eventEmitter.emit('redisClientError', data);
16
- }
17
- }
18
- exports.CacheInstrumentation = CacheInstrumentation;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVJbnN0cnVtZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvY2FjaGVJbnN0cnVtZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0EsTUFBYSxvQkFBb0I7SUFDL0IsWUFBNkIsWUFBK0I7UUFBL0IsaUJBQVksR0FBWixZQUFZLENBQW1CO0lBQUcsQ0FBQztJQUVoRSxRQUFRLENBQUMsSUFBYztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFlO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBcUU7UUFDekYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBZEQsb0RBY0MifQ==
@@ -1,6 +0,0 @@
1
- import { EntitlementFragment } from '@stigg/api-client-js/src/generated/sdk';
2
- import CachedEntitlement from '../services/cache/cachedEntitlement';
3
- export default class CacheMapper {
4
- mapCachedEntitlement(entitlement: EntitlementFragment): CachedEntitlement;
5
- mapCachedEntitlements(updatedEntitlements: EntitlementFragment[]): Map<string, CachedEntitlement>;
6
- }