@stigg/node-server-sdk 0.18.1 → 0.21.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.
package/dist/models.d.ts CHANGED
@@ -1,52 +1,52 @@
1
- import { AccessDeniedReason, BillingPeriod } from './api/generated/types';
2
- export { AccessDeniedReason } from './api/generated/types';
3
- export { ErrorCode } from './api/generated/types';
4
- export { BillingPeriod } from './api/generated/types';
1
+ import { BillingPeriod, SubscriptionCancellationTime } from './api/generated/types';
2
+ export { ErrorCode, BillingPeriod } from './api/generated/types';
3
+ export declare enum AccessDeniedReason {
4
+ InvalidFeatureType = "InvalidFeatureType",
5
+ CustomerNotFound = "CustomerNotFound",
6
+ FeatureNotFound = "FeatureNotFound",
7
+ NoActiveSubscriptions = "NoActiveSubscriptions",
8
+ CustomerNotEntitledForFeature = "CustomerNotEntitledForFeature",
9
+ RequestedUsageExceedsLimit = "RequestedUsageExceedsLimit",
10
+ Unknown = "Unknown"
11
+ }
5
12
  export declare enum FeatureType {
6
- Boolean = "BOOLEAN",
7
- Number = "NUMBER"
13
+ Boolean = "Boolean",
14
+ Numeric = "Numeric"
8
15
  }
9
16
  export declare enum MeterType {
10
17
  Fluctuating = "Fluctuating",
11
18
  Incremental = "Incremental",
12
19
  None = "None"
13
20
  }
21
+ export declare type EntitlementFeature = {
22
+ id: string;
23
+ featureType: FeatureType;
24
+ units?: string;
25
+ unitsPlural?: string;
26
+ meterType?: MeterType.Fluctuating | MeterType.Incremental | MeterType.None;
27
+ isMetered?: boolean;
28
+ };
14
29
  export declare type BaseEntitlement = {
15
- isValid: boolean;
16
- isGranted: boolean;
17
- featureType?: FeatureType;
18
- accessDeniedReason?: AccessDeniedReason | null;
19
- featureId?: string | null;
20
- };
21
- export interface InvalidEntitlement extends BaseEntitlement {
22
- isValid: false;
23
- isGranted: false;
24
- accessDeniedReason: AccessDeniedReason.FeatureNotFound | AccessDeniedReason.CustomerNotFound | AccessDeniedReason.Unknown;
25
- }
26
- export interface FallbackEntitlement extends BaseEntitlement {
27
- isValid: false;
28
- }
29
- export interface ValidEntitlement extends BaseEntitlement {
30
- isValid: true;
31
- }
32
- export interface BooleanEntitlement extends BaseEntitlement {
33
- featureType: FeatureType.Boolean;
34
- }
35
- export interface NumberEntitlement extends BaseEntitlement {
36
- featureType: FeatureType.Number;
37
- usageLimit: number | null;
38
- featureUnits?: string;
39
- featureUnitsPlural?: string;
40
- hasUnlimitedUsage: boolean;
30
+ hasAccess: boolean;
31
+ isFallback: boolean;
32
+ accessDeniedReason?: AccessDeniedReason;
33
+ feature?: EntitlementFeature;
34
+ };
35
+ export declare type BooleanEntitlement = BaseEntitlement;
36
+ export interface NumericEntitlement extends BaseEntitlement {
37
+ value?: number;
38
+ isUnlimited: boolean;
41
39
  }
42
- export interface MeteredEntitlement extends NumberEntitlement {
43
- featureType: FeatureType.Number;
44
- meterType: MeterType.Fluctuating | MeterType.Incremental | MeterType.None;
40
+ export interface MeteredEntitlement extends BaseEntitlement {
41
+ usageLimit?: number;
42
+ isUnlimited: boolean;
45
43
  currentUsage: number;
46
44
  requestedUsage: number;
47
45
  }
48
- export declare type Entitlement = FallbackEntitlement | InvalidEntitlement | BooleanEntitlement | NumberEntitlement | MeteredEntitlement;
49
- export declare const INVALID_ENTITLEMENT: InvalidEntitlement;
46
+ export declare type Entitlement = BooleanEntitlement | NumericEntitlement | MeteredEntitlement;
47
+ export declare const BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT: BooleanEntitlement;
48
+ export declare const NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT: NumericEntitlement;
49
+ export declare const METERED_DEFAULT_FALLBACK_ENTITLEMENT: MeteredEntitlement;
50
50
  export declare type Customer = {
51
51
  id: string;
52
52
  };
@@ -71,15 +71,59 @@ export declare type CreateSubscription = {
71
71
  unitQuantity?: number;
72
72
  isTrialSubscription?: boolean;
73
73
  };
74
- export declare type EntitlementOptions = {
75
- requestedUsage?: number;
76
- shouldTrack?: boolean;
77
- fallbackGrantedValue?: boolean;
74
+ export declare type CancelSubscription = {
75
+ subscriptionId: string;
76
+ endDate?: Date;
77
+ subscriptionCancellationTime?: SubscriptionCancellationTime;
78
+ };
79
+ export declare type GetBooleanEntitlement = {
80
+ customerId: string;
81
+ featureId: string;
82
+ options?: BooleanEntitlementOptions;
83
+ };
84
+ export declare type GetNumericEntitlement = {
85
+ customerId: string;
86
+ featureId: string;
87
+ options?: NumericEntitlementOptions;
88
+ };
89
+ export declare type GetMeteredEntitlement = {
90
+ customerId: string;
91
+ featureId: string;
92
+ options?: MeteredEntitlementOptions;
78
93
  };
79
- export declare type FetchEntitlement = {
94
+ export declare type ReportUsage = {
80
95
  customerId: string;
81
96
  featureId: string;
82
- options?: EntitlementOptions;
97
+ value: number;
98
+ };
99
+ export declare type CreateCustomer = {
100
+ customerId?: string;
101
+ };
102
+ export declare type BooleanEntitlementFallback = {
103
+ hasAccess: boolean;
104
+ };
105
+ export declare type BooleanEntitlementOptions = {
106
+ shouldTrack?: boolean;
107
+ fallback?: BooleanEntitlementFallback;
108
+ };
109
+ export declare type NumericEntitlementFallback = {
110
+ hasAccess: boolean;
111
+ value?: number;
112
+ isUnlimited?: boolean;
113
+ };
114
+ export declare type NumericEntitlementOptions = {
115
+ shouldTrack?: boolean;
116
+ fallback?: NumericEntitlementFallback;
117
+ };
118
+ export declare type MeteredEntitlementFallback = {
119
+ hasAccess: boolean;
120
+ usageLimit?: number;
121
+ isUnlimited?: boolean;
122
+ };
123
+ export declare type MeteredEntitlementOptions = {
124
+ requestedUsage?: number;
125
+ shouldTrack?: boolean;
126
+ fallback?: MeteredEntitlementFallback;
83
127
  };
84
128
  export declare type FetchEntitlements = {
85
129
  customerId: string;
package/dist/models.js CHANGED
@@ -1,17 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.INVALID_ENTITLEMENT = exports.MeterType = exports.FeatureType = exports.BillingPeriod = exports.ErrorCode = exports.AccessDeniedReason = void 0;
4
- const types_1 = require("./api/generated/types");
5
- var types_2 = require("./api/generated/types");
6
- Object.defineProperty(exports, "AccessDeniedReason", { enumerable: true, get: function () { return types_2.AccessDeniedReason; } });
7
- var types_3 = require("./api/generated/types");
8
- Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return types_3.ErrorCode; } });
9
- var types_4 = require("./api/generated/types");
10
- Object.defineProperty(exports, "BillingPeriod", { enumerable: true, get: function () { return types_4.BillingPeriod; } });
3
+ exports.METERED_DEFAULT_FALLBACK_ENTITLEMENT = exports.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT = exports.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT = exports.MeterType = exports.FeatureType = exports.AccessDeniedReason = exports.BillingPeriod = exports.ErrorCode = void 0;
4
+ var types_1 = require("./api/generated/types");
5
+ Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return types_1.ErrorCode; } });
6
+ Object.defineProperty(exports, "BillingPeriod", { enumerable: true, get: function () { return types_1.BillingPeriod; } });
7
+ var AccessDeniedReason;
8
+ (function (AccessDeniedReason) {
9
+ AccessDeniedReason["InvalidFeatureType"] = "InvalidFeatureType";
10
+ AccessDeniedReason["CustomerNotFound"] = "CustomerNotFound";
11
+ AccessDeniedReason["FeatureNotFound"] = "FeatureNotFound";
12
+ AccessDeniedReason["NoActiveSubscriptions"] = "NoActiveSubscriptions";
13
+ AccessDeniedReason["CustomerNotEntitledForFeature"] = "CustomerNotEntitledForFeature";
14
+ AccessDeniedReason["RequestedUsageExceedsLimit"] = "RequestedUsageExceedsLimit";
15
+ AccessDeniedReason["Unknown"] = "Unknown";
16
+ })(AccessDeniedReason = exports.AccessDeniedReason || (exports.AccessDeniedReason = {}));
11
17
  var FeatureType;
12
18
  (function (FeatureType) {
13
- FeatureType["Boolean"] = "BOOLEAN";
14
- FeatureType["Number"] = "NUMBER";
19
+ FeatureType["Boolean"] = "Boolean";
20
+ FeatureType["Numeric"] = "Numeric";
15
21
  })(FeatureType = exports.FeatureType || (exports.FeatureType = {}));
16
22
  var MeterType;
17
23
  (function (MeterType) {
@@ -19,9 +25,23 @@ var MeterType;
19
25
  MeterType["Incremental"] = "Incremental";
20
26
  MeterType["None"] = "None";
21
27
  })(MeterType = exports.MeterType || (exports.MeterType = {}));
22
- exports.INVALID_ENTITLEMENT = {
23
- isValid: false,
24
- isGranted: false,
25
- accessDeniedReason: types_1.AccessDeniedReason.Unknown,
28
+ exports.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT = {
29
+ isFallback: true,
30
+ hasAccess: false,
31
+ accessDeniedReason: AccessDeniedReason.Unknown,
26
32
  };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBMEU7QUFFMUUsK0NBQTJEO0FBQWxELDJHQUFBLGtCQUFrQixPQUFBO0FBQzNCLCtDQUFrRDtBQUF6QyxrR0FBQSxTQUFTLE9BQUE7QUFDbEIsK0NBQXNEO0FBQTdDLHNHQUFBLGFBQWEsT0FBQTtBQUV0QixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCO0FBRUQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLHdDQUEyQixDQUFBO0lBQzNCLHdDQUEyQixDQUFBO0lBQzNCLDBCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFvRFksUUFBQSxtQkFBbUIsR0FBdUI7SUFDckQsT0FBTyxFQUFFLEtBQUs7SUFDZCxTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSwwQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUMifQ==
33
+ exports.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT = {
34
+ isFallback: true,
35
+ hasAccess: false,
36
+ isUnlimited: false,
37
+ accessDeniedReason: AccessDeniedReason.Unknown,
38
+ };
39
+ exports.METERED_DEFAULT_FALLBACK_ENTITLEMENT = {
40
+ isFallback: true,
41
+ hasAccess: false,
42
+ isUnlimited: false,
43
+ currentUsage: 0,
44
+ requestedUsage: 1,
45
+ accessDeniedReason: AccessDeniedReason.Unknown,
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwrQ0FBaUU7QUFBeEQsa0dBQUEsU0FBUyxPQUFBO0FBQUUsc0dBQUEsYUFBYSxPQUFBO0FBRWpDLElBQVksa0JBUVg7QUFSRCxXQUFZLGtCQUFrQjtJQUM1QiwrREFBeUMsQ0FBQTtJQUN6QywyREFBcUMsQ0FBQTtJQUNyQyx5REFBbUMsQ0FBQTtJQUNuQyxxRUFBK0MsQ0FBQTtJQUMvQyxxRkFBK0QsQ0FBQTtJQUMvRCwrRUFBeUQsQ0FBQTtJQUN6RCx5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUlcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFRN0I7QUFFRCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCO0FBRUQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLHdDQUEyQixDQUFBO0lBQzNCLHdDQUEyQixDQUFBO0lBQzNCLDBCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFrQ1ksUUFBQSxvQ0FBb0MsR0FBdUI7SUFDdEUsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsT0FBTztDQUMvQyxDQUFDO0FBRVcsUUFBQSxvQ0FBb0MsR0FBdUI7SUFDdEUsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsT0FBTztDQUMvQyxDQUFDO0FBRVcsUUFBQSxvQ0FBb0MsR0FBdUI7SUFDdEUsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsWUFBWSxFQUFFLENBQUM7SUFDZixjQUFjLEVBQUUsQ0FBQztJQUNqQixrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUMifQ==
@@ -1,11 +1,8 @@
1
- import { FeatureType, MeterType } from '../../models';
1
+ import { EntitlementFeature } from '../../models';
2
2
  export interface CalculatedEntitlement {
3
- featureType: FeatureType;
3
+ feature?: EntitlementFeature;
4
4
  usageLimit?: number | null;
5
- featureUnits?: string;
6
- featureUnitsPlural?: string;
7
5
  hasUnlimitedUsage: boolean;
8
- meterType: MeterType.Fluctuating | MeterType.Incremental | MeterType.None;
9
6
  }
10
7
  export interface FeatureUsage {
11
8
  currentUsage: number;
@@ -7,4 +7,4 @@ class CachedEntitlement {
7
7
  }
8
8
  }
9
9
  exports.default = CachedEntitlement;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkRW50aXRsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FjaGVkRW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsTUFBcUIsaUJBQWlCO0lBSXBDLFlBQVkscUJBQTRDLEVBQUUsWUFBMEI7UUFDbEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQVJELG9DQVFDIn0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkRW50aXRsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FjaGVkRW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxNQUFxQixpQkFBaUI7SUFJcEMsWUFBWSxxQkFBNEMsRUFBRSxZQUEwQjtRQUNsRixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBUkQsb0NBUUMifQ==
@@ -1,9 +1,9 @@
1
1
  import CachedEntitlement from './cache/cachedEntitlement';
2
- import { AccessDeniedReason } from '../api/generated/types';
2
+ import { AccessDeniedReason } from '../models';
3
3
  export declare class EntitlementDecisionService {
4
4
  static decideEntitlementPolicy(customerExists: boolean, entitlement?: CachedEntitlement | null, requestUsage?: number): Decision;
5
5
  }
6
6
  export interface Decision {
7
- readonly isGranted: boolean;
7
+ readonly hasAccess: boolean;
8
8
  readonly accessDeniedReason?: AccessDeniedReason;
9
9
  }
@@ -1,43 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntitlementDecisionService = void 0;
4
- const types_1 = require("../api/generated/types");
5
4
  const models_1 = require("../models");
6
5
  // TODO: Extract to a common lib for other sdks
7
6
  class EntitlementDecisionService {
8
7
  static decideEntitlementPolicy(customerExists, entitlement, requestUsage) {
9
8
  var _a;
10
9
  if (!customerExists) {
11
- return { accessDeniedReason: types_1.AccessDeniedReason.CustomerNotFound, isGranted: false };
10
+ return { accessDeniedReason: models_1.AccessDeniedReason.CustomerNotFound, hasAccess: false };
12
11
  }
13
- if (!entitlement) {
14
- return { isGranted: false, accessDeniedReason: types_1.AccessDeniedReason.NoFeatureEntitlementInSubscription };
12
+ if (!entitlement || !entitlement.calculatedEntitlement.feature) {
13
+ return { hasAccess: false, accessDeniedReason: models_1.AccessDeniedReason.CustomerNotEntitledForFeature };
15
14
  }
16
- const featureType = entitlement.calculatedEntitlement.featureType;
17
- const meterType = entitlement.calculatedEntitlement.meterType;
15
+ const { featureType, meterType } = entitlement.calculatedEntitlement.feature;
18
16
  switch (featureType) {
19
17
  case models_1.FeatureType.Boolean:
20
- return { isGranted: true };
21
- case models_1.FeatureType.Number: {
22
- if (entitlement.calculatedEntitlement.meterType === models_1.MeterType.None) {
23
- return { isGranted: true };
18
+ return { hasAccess: true };
19
+ case models_1.FeatureType.Numeric: {
20
+ if (meterType === models_1.MeterType.None) {
21
+ return { hasAccess: true };
24
22
  }
25
23
  if (entitlement.calculatedEntitlement.hasUnlimitedUsage) {
26
- return { isGranted: true };
24
+ return { hasAccess: true };
27
25
  }
28
26
  let currentUsage = entitlement.featureUsage.currentUsage;
29
27
  if (meterType === models_1.MeterType.Incremental && entitlement.featureUsage.nextResetDate < new Date().getTime()) {
30
28
  currentUsage = 0;
31
29
  }
32
30
  if (currentUsage + (requestUsage || 0) <= (((_a = entitlement.calculatedEntitlement) === null || _a === void 0 ? void 0 : _a.usageLimit) || 0)) {
33
- return { isGranted: true };
31
+ return { hasAccess: true };
34
32
  }
35
33
  else {
36
- return { isGranted: false, accessDeniedReason: types_1.AccessDeniedReason.RequestedUsageExceedingLimit };
34
+ return { hasAccess: false, accessDeniedReason: models_1.AccessDeniedReason.RequestedUsageExceedsLimit };
37
35
  }
38
36
  }
39
37
  }
40
38
  }
41
39
  }
42
40
  exports.EntitlementDecisionService = EntitlementDecisionService;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0RBQTREO0FBQzVELHNDQUFtRDtBQUVuRCwrQ0FBK0M7QUFDL0MsTUFBYSwwQkFBMEI7SUFDOUIsTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxjQUF1QixFQUN2QixXQUFzQyxFQUN0QyxZQUFxQjs7UUFFckIsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsMEJBQWtCLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3RGO1FBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSwwQkFBa0IsQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO1NBQ3hHO1FBRUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBRTlELFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssb0JBQVcsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzdCLEtBQUssb0JBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxXQUFXLENBQUMscUJBQXFCLENBQUMsU0FBUyxLQUFLLGtCQUFTLENBQUMsSUFBSSxFQUFFO29CQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUM1QjtnQkFDRCxJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTtvQkFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDNUI7Z0JBRUQsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQ3pELElBQUksU0FBUyxLQUFLLGtCQUFTLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3hHLFlBQVksR0FBRyxDQUFDLENBQUM7aUJBQ2xCO2dCQUNELElBQUksWUFBWSxHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxNQUFBLFdBQVcsQ0FBQyxxQkFBcUIsMENBQUUsVUFBVSxLQUFJLENBQUMsQ0FBQyxFQUFFO29CQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDTCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSwwQkFBa0IsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2lCQUNsRzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUF2Q0QsZ0VBdUNDIn0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0NBQXVFO0FBRXZFLCtDQUErQztBQUMvQyxNQUFhLDBCQUEwQjtJQUM5QixNQUFNLENBQUMsdUJBQXVCLENBQ25DLGNBQXVCLEVBQ3ZCLFdBQXNDLEVBQ3RDLFlBQXFCOztRQUVyQixJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwyQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDdEY7UUFDRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRTtZQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSwyQkFBa0IsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1NBQ25HO1FBRUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBRTdFLFFBQVEsV0FBVyxFQUFFO1lBQ25CLEtBQUssb0JBQVcsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzdCLEtBQUssb0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxTQUFTLEtBQUssa0JBQVMsQ0FBQyxJQUFJLEVBQUU7b0JBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzVCO2dCQUNELElBQUksV0FBVyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFO29CQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUM1QjtnQkFFRCxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztnQkFDekQsSUFBSSxTQUFTLEtBQUssa0JBQVMsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDeEcsWUFBWSxHQUFHLENBQUMsQ0FBQztpQkFDbEI7Z0JBQ0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFBLE1BQUEsV0FBVyxDQUFDLHFCQUFxQiwwQ0FBRSxVQUFVLEtBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzVCO3FCQUFNO29CQUNMLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLDJCQUFrQixDQUFDLDBCQUEwQixFQUFFLENBQUM7aUJBQ2hHO2FBQ0Y7U0FDRjtJQUNILENBQUM7Q0FDRjtBQXRDRCxnRUFzQ0MifQ==
@@ -1,6 +1,6 @@
1
1
  import { CacheService } from './cache/cacheService';
2
2
  import { ApolloClient, FetchResult, NormalizedCacheObject } from '@apollo/client/core';
3
- import { CreateUsageMeasurement, Entitlement, InvalidEntitlement } from '../models';
3
+ import { BooleanEntitlement, BooleanEntitlementOptions, CreateUsageMeasurement, MeteredEntitlement, MeteredEntitlementOptions, NumericEntitlement, NumericEntitlementOptions } from '../models';
4
4
  import { Decision } from './entitlementDecisionService';
5
5
  import CachedEntitlement from './cache/cachedEntitlement';
6
6
  import { LoggerService } from './loggerService';
@@ -11,7 +11,13 @@ export declare class EntitlementsService {
11
11
  private readonly modelMapper;
12
12
  constructor(cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService);
13
13
  private onEntitlementsUpdated;
14
- getEntitlement<T extends Entitlement>(featureRefId: string, customerRefId: string, requestedUsage?: number): Promise<T | InvalidEntitlement>;
14
+ refetchEntitlements(customerRefId: string, featureRefId: string): Promise<{
15
+ entitlement: CachedEntitlement | null;
16
+ customerExists: boolean;
17
+ }>;
18
+ getBooleanEntitlement(customerRefId: string, featureRefId: string, options?: BooleanEntitlementOptions): Promise<BooleanEntitlement>;
19
+ getNumericEntitlement(customerRefId: string, featureRefId: string, options?: NumericEntitlementOptions): Promise<NumericEntitlement>;
20
+ getMeteredEntitlement(customerRefId: string, featureRefId: string, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
15
21
  private onUsageUpdated;
16
22
  private tryGetCacheCustomerAndEntitlement;
17
23
  createUsageMeasurement(input: CreateUsageMeasurement): Promise<FetchResult<import("../api/generated/types").CreateUsageMeasurementMutation, Record<string, any>, Record<string, any>>>;
@@ -38,31 +38,81 @@ class EntitlementsService {
38
38
  this.modelMapper = new ModelMapper_1.ModelMapper();
39
39
  this.entitlementsApi.subscribeEntitlementsChanges(this.onEntitlementsUpdated, this.onUsageUpdated);
40
40
  }
41
- async getEntitlement(featureRefId, customerRefId, requestedUsage) {
42
- // TODO: Validate feature exists after implementing features subscriptions
43
- // const validFeature = this.cacheService.validateFeature(featureRefId);
41
+ async refetchEntitlements(customerRefId, featureRefId) {
42
+ let entitlement = null;
43
+ let customerExists = false;
44
+ this.loggerService.log(`Customer with id: ${customerRefId} not found in cache`, { customerRefId });
45
+ const entitlements = await this.entitlementsApi.getEntitlements({
46
+ customerId: customerRefId,
47
+ });
48
+ if (entitlements) {
49
+ const cachedEntitlements = this.modelMapper.mapCachedEntitlements(entitlements);
50
+ this.cacheService.setCustomer(customerRefId, cachedEntitlements);
51
+ entitlement = cachedEntitlements.get(featureRefId) || null;
52
+ customerExists = true;
53
+ }
54
+ return { entitlement, customerExists };
55
+ }
56
+ async getBooleanEntitlement(customerRefId, featureRefId, options) {
57
+ var _a;
44
58
  let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
45
59
  if (!entitlement) {
46
- this.loggerService.log(`Customer with id: ${customerRefId} not found in cache`, { customerRefId });
47
- const entitlements = await this.entitlementsApi.getEntitlements({
48
- customerId: customerRefId,
49
- });
50
- if (entitlements) {
51
- const cachedEntitlements = this.modelMapper.mapCachedEntitlements(entitlements);
52
- this.cacheService.setCustomer(customerRefId, cachedEntitlements);
53
- entitlement = cachedEntitlements.get(featureRefId) || null;
54
- customerExists = true;
55
- }
60
+ const refetchResult = await this.refetchEntitlements(customerRefId, featureRefId);
61
+ entitlement = refetchResult.entitlement;
62
+ customerExists = refetchResult.customerExists;
63
+ }
64
+ const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
65
+ if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
66
+ ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.featureType) !== models_1.FeatureType.Boolean) {
67
+ return Object.assign(Object.assign({}, models_1.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT), { accessDeniedReason: models_1.AccessDeniedReason.InvalidFeatureType });
68
+ }
69
+ if (!entitlement ||
70
+ (0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
71
+ this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
72
+ return Object.assign(Object.assign(Object.assign({}, models_1.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT), decision), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
73
+ }
74
+ return this.modelMapper.mapBooleanEntitlement(entitlement, decision);
75
+ }
76
+ async getNumericEntitlement(customerRefId, featureRefId, options) {
77
+ var _a;
78
+ let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
79
+ if (!entitlement) {
80
+ const refetchResult = await this.refetchEntitlements(customerRefId, featureRefId);
81
+ entitlement = refetchResult.entitlement;
82
+ customerExists = refetchResult.customerExists;
83
+ }
84
+ const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
85
+ if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
86
+ ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.featureType) !== models_1.FeatureType.Numeric) {
87
+ return Object.assign(Object.assign({}, models_1.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT), { accessDeniedReason: models_1.AccessDeniedReason.InvalidFeatureType });
56
88
  }
57
- const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement, requestedUsage);
89
+ if (!entitlement ||
90
+ (0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
91
+ this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
92
+ return Object.assign(Object.assign(Object.assign({}, models_1.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT), decision), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
93
+ }
94
+ return this.modelMapper.mapNumericEntitlement(entitlement, decision);
95
+ }
96
+ async getMeteredEntitlement(customerRefId, featureRefId, options) {
97
+ var _a, _b;
98
+ let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
58
99
  if (!entitlement) {
100
+ const refetchResult = await this.refetchEntitlements(customerRefId, featureRefId);
101
+ entitlement = refetchResult.entitlement;
102
+ customerExists = refetchResult.customerExists;
103
+ }
104
+ const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement, options === null || options === void 0 ? void 0 : options.requestedUsage);
105
+ if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
106
+ ((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) !== models_1.MeterType.Fluctuating &&
107
+ ((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== models_1.MeterType.Incremental) {
108
+ return Object.assign(Object.assign({}, models_1.METERED_DEFAULT_FALLBACK_ENTITLEMENT), { accessDeniedReason: models_1.AccessDeniedReason.InvalidFeatureType });
109
+ }
110
+ if (!entitlement ||
111
+ (0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
59
112
  this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
60
- if ((0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
61
- return Object.assign({ isValid: false }, decision);
62
- }
63
- return Object.assign({ isValid: true }, decision);
113
+ return Object.assign(Object.assign(Object.assign({}, models_1.METERED_DEFAULT_FALLBACK_ENTITLEMENT), decision), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
64
114
  }
65
- return this.modelMapper.mapEntitlementByDecision(decision, featureRefId, entitlement, requestedUsage);
115
+ return this.modelMapper.mapMeteredEntitlement(entitlement, decision);
66
116
  }
67
117
  tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId) {
68
118
  const customer = this.cacheService.getCustomerEntitlements(customerRefId);
@@ -73,8 +123,8 @@ class EntitlementsService {
73
123
  return { customerExists: true, entitlement };
74
124
  }
75
125
  async createUsageMeasurement(input) {
76
- return await this.entitlementsApi.createUsageMeasurement(input);
126
+ return this.entitlementsApi.createUsageMeasurement(input);
77
127
  }
78
128
  }
79
129
  exports.EntitlementsService = EntitlementsService;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDBGQUFrRTtBQUNsRSxzREFBbUQ7QUFDbkQsc0NBQXdHO0FBQ3hHLDZFQUFvRjtBQUdwRixtQ0FBa0M7QUFHbEMsTUFBYSxtQkFBbUI7SUFJOUIsWUFDbUIsWUFBMEIsRUFDM0MsTUFBMkMsRUFDMUIsYUFBNEI7UUFGNUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFRdkMsMEJBQXFCLEdBQUcsQ0FBQyxLQUFtRCxFQUFFLEVBQUU7WUFDdEYsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDM0YsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDcEMsQ0FBQyxDQUFDO2dCQUNILE9BQU87YUFDUjtZQUVELE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUM7UUEwQ00sbUJBQWMsR0FBRyxDQUFDLElBQTJDLEVBQUUsRUFBRTtZQUN2RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUM3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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDBGQUFrRTtBQUNsRSxzREFBbUQ7QUFDbkQsc0NBY21CO0FBQ25CLDZFQUFvRjtBQUdwRixtQ0FBa0M7QUFHbEMsTUFBYSxtQkFBbUI7SUFJOUIsWUFDbUIsWUFBMEIsRUFDM0MsTUFBMkMsRUFDMUIsYUFBNEI7UUFGNUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFRdkMsMEJBQXFCLEdBQUcsQ0FBQyxLQUFtRCxFQUFFLEVBQUU7WUFDdEYsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsb0RBQW9ELEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDM0YsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDcEMsQ0FBQyxDQUFDO2dCQUNILE9BQU87YUFDUjtZQUVELE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTlGLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUM7UUF1SE0sbUJBQWMsR0FBRyxDQUFDLElBQTJDLEVBQUUsRUFBRTtZQUN2RSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUM3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
@@ -0,0 +1 @@
1
+ export declare function generateRandomSlug(): string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRandomSlug = void 0;
4
+ const nanoid_1 = require("nanoid");
5
+ const nanoid = (0, nanoid_1.customAlphabet)('1234567890abcdef', 6);
6
+ function generateRandomSlug() {
7
+ return nanoid();
8
+ }
9
+ exports.generateRandomSlug = generateRandomSlug;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVSYW5kb21TbHVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2dlbmVyYXRlUmFuZG9tU2x1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBd0M7QUFFeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBYyxFQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXJELFNBQWdCLGtCQUFrQjtJQUNoQyxPQUFPLE1BQU0sRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFGRCxnREFFQyJ9
@@ -1,4 +1,11 @@
1
- import { Logger } from '../configuration';
1
+ export interface Logger {
2
+ log: (message: string, object?: Record<string, string>) => void;
3
+ error: (message: string, error?: Record<string, string>) => void;
4
+ }
5
+ export interface LogConfiguration {
6
+ logger: Logger;
7
+ logLevel: LogLevel;
8
+ }
2
9
  export declare enum LogLevel {
3
10
  ALL = "ALL",
4
11
  NONE = "NONE",
@@ -29,4 +29,4 @@ class LoggerService {
29
29
  }
30
30
  }
31
31
  exports.LoggerService = LoggerService;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9sb2dnZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLCtEQUF1QztBQUV2QyxJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIsdUJBQVcsQ0FBQTtJQUNYLHlCQUFhLENBQUE7SUFDYix1QkFBVyxDQUFBO0lBQ1gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFFRCxNQUFhLGFBQWE7SUFDeEIsWUFBNkIsTUFBYyxFQUFtQixRQUFrQjtRQUFuRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQ3BGLEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBOEI7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZSxFQUFFLE1BQStCO1FBQ2xELElBQUksQ0FBQyxJQUFBLGtCQUFRLEVBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Q0FDRjtBQWJELHNDQWFDIn0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9sb2dnZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtEQUF1QztBQVl2QyxJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIsdUJBQVcsQ0FBQTtJQUNYLHlCQUFhLENBQUE7SUFDYix1QkFBVyxDQUFBO0lBQ1gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFFRCxNQUFhLGFBQWE7SUFDeEIsWUFBNkIsTUFBYyxFQUFtQixRQUFrQjtRQUFuRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQ3BGLEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBOEI7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZSxFQUFFLE1BQStCO1FBQ2xELElBQUksQ0FBQyxJQUFBLGtCQUFRLEVBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Q0FDRjtBQWJELHNDQWFDIn0=
@@ -1,13 +1,17 @@
1
- import { CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation } from '../api/generated/types';
2
- import { Checkout, Customer, Entitlement, Subscription } from '../models';
1
+ import { CancelSubscriptionMutation, CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation, FeatureType as ApiFeatureType } from '../api/generated/types';
2
+ import { BooleanEntitlement, Checkout, Customer, FeatureType, MeteredEntitlement, NumericEntitlement, Subscription } from '../models';
3
3
  import { Decision } from '../services/entitlementDecisionService';
4
4
  import CachedEntitlement from '../services/cache/cachedEntitlement';
5
5
  declare class ModelMapper {
6
- mapEntitlementByDecision: (decision: Decision, featureId: string, entitlement: CachedEntitlement, requestedUsage?: number | undefined) => Entitlement;
6
+ mapBooleanEntitlement(entitlement: CachedEntitlement, decision: Decision): BooleanEntitlement;
7
+ mapNumericEntitlement(entitlement: CachedEntitlement, decision: Decision): NumericEntitlement;
8
+ mapMeteredEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number): MeteredEntitlement;
9
+ mapFeatureType: (featureType: ApiFeatureType) => FeatureType;
7
10
  mapCachedEntitlement: (entitlement: EntitlementFragment, currentUsage?: number | undefined, nextResetDate?: number | null | undefined) => CachedEntitlement;
8
11
  mapCachedEntitlements: (updatedEntitlements: EntitlementFragment[]) => Map<string, CachedEntitlement>;
9
12
  mapCustomer: (graphCustomer: CreateCustomerMutation) => Customer;
10
13
  mapSubscription: (graphSubscription: CreateSubscriptionMutation) => Subscription;
14
+ mapCanceledSubscription: (graphSubscription: CancelSubscriptionMutation) => Subscription;
11
15
  mapCheckout: (checkout: InitiateCheckoutMutation['initiateCheckout']) => Checkout;
12
16
  }
13
17
  export { ModelMapper };