@stigg/node-server-sdk 4.37.0 → 4.38.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 (32) hide show
  1. package/dist/api/entitlements/entitlementsApi.d.ts +1 -1
  2. package/dist/api/managementApi.d.ts +1 -1
  3. package/dist/client.d.ts +1 -2
  4. package/dist/client.js +19 -23
  5. package/dist/clientInitialization.js +5 -4
  6. package/dist/configuration.d.ts +1 -1
  7. package/dist/models/index.d.ts +10 -0
  8. package/dist/models/index.js +33 -0
  9. package/dist/services/LegacyEventPayloadMapper.js +3 -3
  10. package/dist/services/entitlementsService.d.ts +6 -3
  11. package/dist/services/entitlementsService.js +26 -91
  12. package/dist/services/identifiers.d.ts +0 -1
  13. package/dist/services/identifiers.js +1 -6
  14. package/dist/services/inMemoryEntitlementsService.d.ts +2 -1
  15. package/dist/services/inMemoryEntitlementsService.js +1 -1
  16. package/dist/services/inMemoryLruCacheService.d.ts +6 -0
  17. package/dist/services/inMemoryLruCacheService.js +20 -0
  18. package/dist/services/redisEntitlementsService.d.ts +1 -1
  19. package/dist/services/redisEntitlementsService.js +1 -1
  20. package/package.json +4 -3
  21. package/dist/models.d.ts +0 -946
  22. package/dist/models.js +0 -80
  23. package/dist/services/entitlementDecisionService.d.ts +0 -20
  24. package/dist/services/entitlementDecisionService.js +0 -80
  25. package/dist/utils/ModelMapper.d.ts +0 -61
  26. package/dist/utils/ModelMapper.js +0 -623
  27. package/dist/utils/entitlementFallbackUtils.d.ts +0 -23
  28. package/dist/utils/entitlementFallbackUtils.js +0 -66
  29. package/dist/utils/entitlementTypeGuards.d.ts +0 -6
  30. package/dist/utils/entitlementTypeGuards.js +0 -11
  31. package/dist/utils/mapGetEntitlementsFallback.d.ts +0 -2
  32. package/dist/utils/mapGetEntitlementsFallback.js +0 -14
package/dist/models.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CustomerModel = exports.CREDIT_DEFAULT_FALLBACK_ENTITLEMENT = exports.ENUM_DEFAULT_FALLBACK_ENTITLEMENT = exports.METERED_DEFAULT_FALLBACK_ENTITLEMENT = exports.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT = exports.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT = void 0;
18
- const api_client_js_1 = require("@stigg/api-client-js");
19
- __exportStar(require("@stigg/api-client-js"), exports);
20
- /** @internal */
21
- exports.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT = {
22
- type: 'BOOLEAN',
23
- isFallback: true,
24
- hasAccess: false,
25
- accessDeniedReason: api_client_js_1.AccessDeniedReason.Unknown,
26
- };
27
- /** @internal */
28
- exports.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT = {
29
- type: 'NUMERIC',
30
- isFallback: true,
31
- hasAccess: false,
32
- isUnlimited: false,
33
- accessDeniedReason: api_client_js_1.AccessDeniedReason.Unknown,
34
- };
35
- /** @internal */
36
- exports.METERED_DEFAULT_FALLBACK_ENTITLEMENT = {
37
- type: 'METERED',
38
- isFallback: true,
39
- hasAccess: false,
40
- isUnlimited: false,
41
- hasSoftLimit: false,
42
- currentUsage: 0,
43
- requestedUsage: 1,
44
- accessDeniedReason: api_client_js_1.AccessDeniedReason.Unknown,
45
- };
46
- /** @internal */
47
- exports.ENUM_DEFAULT_FALLBACK_ENTITLEMENT = {
48
- type: 'ENUM',
49
- isFallback: true,
50
- hasAccess: false,
51
- enumValues: [],
52
- accessDeniedReason: api_client_js_1.AccessDeniedReason.Unknown,
53
- };
54
- /** @internal */
55
- exports.CREDIT_DEFAULT_FALLBACK_ENTITLEMENT = {
56
- isFallback: true,
57
- hasAccess: false,
58
- accessDeniedReason: api_client_js_1.AccessDeniedReason.Unknown,
59
- currency: { currencyId: '' },
60
- usageLimit: 0,
61
- currentUsage: 0,
62
- remaining: 0,
63
- };
64
- /** @hidden */
65
- class CustomerModel {
66
- constructor(state) {
67
- Object.assign(this, state);
68
- }
69
- getActiveSubscriptions() {
70
- return this.subscriptions.filter((x) => x.status === api_client_js_1.SubscriptionStatus.Active);
71
- }
72
- getActiveTrials() {
73
- return this.subscriptions.filter((x) => x.status === api_client_js_1.SubscriptionStatus.InTrial);
74
- }
75
- getActivePromotionalEntitlements() {
76
- return this.promotionalEntitlements.filter((x) => x.status === api_client_js_1.PromotionalEntitlementStatus.Active);
77
- }
78
- }
79
- exports.CustomerModel = CustomerModel;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdEQW9EOEI7QUFFOUIsdURBQXFDO0FBc0dyQyxnQkFBZ0I7QUFDSCxRQUFBLG9DQUFvQyxHQUF1QjtJQUN0RSxJQUFJLEVBQUUsU0FBUztJQUNmLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLGtCQUFrQixFQUFFLGtDQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQUVGLGdCQUFnQjtBQUNILFFBQUEsb0NBQW9DLEdBQXVCO0lBQ3RFLElBQUksRUFBRSxTQUFTO0lBQ2YsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsV0FBVyxFQUFFLEtBQUs7SUFDbEIsa0JBQWtCLEVBQUUsa0NBQWtCLENBQUMsT0FBTztDQUMvQyxDQUFDO0FBRUYsZ0JBQWdCO0FBQ0gsUUFBQSxvQ0FBb0MsR0FBdUI7SUFDdEUsSUFBSSxFQUFFLFNBQVM7SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUsS0FBSztJQUNsQixZQUFZLEVBQUUsS0FBSztJQUNuQixZQUFZLEVBQUUsQ0FBQztJQUNmLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGtCQUFrQixFQUFFLGtDQUFrQixDQUFDLE9BQU87Q0FDL0MsQ0FBQztBQUVGLGdCQUFnQjtBQUNILFFBQUEsaUNBQWlDLEdBQW9CO0lBQ2hFLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLEVBQUU7SUFDZCxrQkFBa0IsRUFBRSxrQ0FBa0IsQ0FBQyxPQUFPO0NBQy9DLENBQUM7QUFFRixnQkFBZ0I7QUFDSCxRQUFBLG1DQUFtQyxHQUFzQjtJQUNwRSxVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixrQkFBa0IsRUFBRSxrQ0FBa0IsQ0FBQyxPQUFPO0lBQzlDLFFBQVEsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFDNUIsVUFBVSxFQUFFLENBQUM7SUFDYixZQUFZLEVBQUUsQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDO0NBQ2IsQ0FBQztBQXU4QkYsY0FBYztBQUNkLE1BQWEsYUFBYTtJQVN4QixZQUFZLEtBQW9CO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxrQ0FBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssa0NBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssNENBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGO0FBeEJELHNDQXdCQyJ9
@@ -1,20 +0,0 @@
1
- import { CachedEntitlement, EntitlementType, Maybe } from '@stigg/cache-core';
2
- import { AccessDeniedReason } from '../models';
3
- export interface DecideEntitlementPolicyParams {
4
- entitlementType: EntitlementType;
5
- accessDeniedReason: Maybe<AccessDeniedReason>;
6
- entitlement: Maybe<CachedEntitlement>;
7
- requestedUsage?: number;
8
- requestedValues?: string[];
9
- }
10
- export declare class EntitlementDecisionService {
11
- static decideEntitlementPolicy({ entitlementType, accessDeniedReason, entitlement, requestedUsage, requestedValues, }: DecideEntitlementPolicyParams): Decision;
12
- private static getNotFoundReason;
13
- private static decideFeatureAccess;
14
- private static decideCreditAccess;
15
- private static decideUsageBasedAccess;
16
- }
17
- export interface Decision {
18
- readonly hasAccess: boolean;
19
- readonly accessDeniedReason?: AccessDeniedReason;
20
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntitlementDecisionService = void 0;
4
- const cache_core_1 = require("@stigg/cache-core");
5
- const models_1 = require("../models");
6
- const lodash_1 = require("lodash");
7
- // TODO: Extract to a common lib for other sdks
8
- class EntitlementDecisionService {
9
- static decideEntitlementPolicy({ entitlementType, accessDeniedReason, entitlement, requestedUsage = 0, requestedValues = [], }) {
10
- if (accessDeniedReason) {
11
- return { accessDeniedReason: accessDeniedReason, hasAccess: false };
12
- }
13
- if (!entitlement) {
14
- return { hasAccess: false, accessDeniedReason: this.getNotFoundReason(entitlementType) };
15
- }
16
- if (entitlement.calculatedEntitlement.accessDeniedReason) {
17
- return { hasAccess: false, accessDeniedReason: entitlement.calculatedEntitlement.accessDeniedReason };
18
- }
19
- if ((0, cache_core_1.isCreditEntitlement)(entitlement)) {
20
- return this.decideCreditAccess(entitlement);
21
- }
22
- if ((0, cache_core_1.isFeatureEntitlement)(entitlement)) {
23
- return this.decideFeatureAccess(entitlement, requestedUsage, requestedValues);
24
- }
25
- return { hasAccess: false, accessDeniedReason: models_1.AccessDeniedReason.NoFeatureEntitlementInSubscription };
26
- }
27
- static getNotFoundReason(entitlementType) {
28
- if (entitlementType === cache_core_1.EntitlementType.Feature) {
29
- // for backward compatability
30
- return models_1.AccessDeniedReason.NoFeatureEntitlementInSubscription;
31
- }
32
- return models_1.AccessDeniedReason.EntitlementNotFound;
33
- }
34
- static decideFeatureAccess(entitlement, requestUsage, requestedValues) {
35
- const { feature } = entitlement.calculatedEntitlement;
36
- const { featureType, meterType } = feature;
37
- switch (featureType) {
38
- case models_1.FeatureType.Boolean:
39
- return { hasAccess: true };
40
- case models_1.FeatureType.Enum: {
41
- const missingValues = (0, lodash_1.difference)(requestedValues, entitlement.calculatedEntitlement.enumValues || []);
42
- if (!(0, lodash_1.isEmpty)(missingValues)) {
43
- return {
44
- hasAccess: false,
45
- accessDeniedReason: models_1.AccessDeniedReason.RequestedValuesMismatch,
46
- };
47
- }
48
- return { hasAccess: true };
49
- }
50
- case models_1.FeatureType.Number: {
51
- if (meterType === models_1.MeterType.None) {
52
- return { hasAccess: true };
53
- }
54
- if (entitlement.calculatedEntitlement.hasUnlimitedUsage || entitlement.calculatedEntitlement.hasSoftLimit) {
55
- return { hasAccess: true };
56
- }
57
- const usageLimit = entitlement.calculatedEntitlement.usageLimit || 0;
58
- const currentUsage = entitlement.usageData.currentUsage;
59
- return this.decideUsageBasedAccess(usageLimit, currentUsage, requestUsage);
60
- }
61
- }
62
- }
63
- static decideCreditAccess(entitlement) {
64
- const { usageLimit } = entitlement.calculatedEntitlement;
65
- const { currentUsage } = entitlement.usageData;
66
- // checking at least 1 credit to deny access when none remaining
67
- const requestUsage = 1;
68
- return this.decideUsageBasedAccess(usageLimit, currentUsage, requestUsage);
69
- }
70
- static decideUsageBasedAccess(usageLimit, currentUsage, requestUsage) {
71
- if (currentUsage + requestUsage <= usageLimit) {
72
- return { hasAccess: true };
73
- }
74
- else {
75
- return { hasAccess: false, accessDeniedReason: models_1.AccessDeniedReason.RequestedUsageExceedingLimit };
76
- }
77
- }
78
- }
79
- exports.EntitlementDecisionService = EntitlementDecisionService;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnREZWNpc2lvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBTTJCO0FBQzNCLHNDQUF1RTtBQUN2RSxtQ0FBNkM7QUFVN0MsK0NBQStDO0FBQy9DLE1BQWEsMEJBQTBCO0lBQzlCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUNwQyxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxjQUFjLEdBQUcsQ0FBQyxFQUNsQixlQUFlLEdBQUcsRUFBRSxHQUNVO1FBQzlCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDM0YsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEcsQ0FBQztRQUVELElBQUksSUFBQSxnQ0FBbUIsRUFBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLElBQUEsaUNBQW9CLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FB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
@@ -1,61 +0,0 @@
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';
2
- import { ApplySubscriptionResults, BooleanEntitlement, Coupon, CreditEntitlement, CustomerResource, CustomerStatisticsModel, Entitlement, EntitlementV2, EnumEntitlement, FullCustomer, FullSubscription, MeteredEntitlement, Money, NumericEntitlement, Paywall, Plan, Price, Product, ProvisionedCustomer, ProvisionSubscriptionResult, ReportUsageAck, SlimCustomer, Subscription, SubscriptionPreview, SubscriptionPreviewCredits, SubscriptionPreviewDiscount, SubscriptionPreviewInvoice, SubscriptionPreviewV2, UsageHistoryPoint } from '../models';
3
- import { Decision } from '../services/entitlementDecisionService';
4
- import { CachedEntitlement, EntitlementType } from '@stigg/cache-core';
5
- declare class ModelMapper {
6
- mapEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number, requestedValues?: string[]): EntitlementV2;
7
- mapFeatureEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedUsage?: number, requestedValues?: string[]): Entitlement;
8
- mapBooleanEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision): BooleanEntitlement;
9
- mapEnumEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedValues?: string[]): EnumEntitlement;
10
- mapNumericEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision): NumericEntitlement;
11
- mapMeteredEntitlement(entitlement: CachedEntitlement<EntitlementType.Feature>, decision: Decision, requestedUsage?: number): MeteredEntitlement;
12
- mapCreditEntitlement(entitlement: CachedEntitlement<EntitlementType.Credit>, decision: Decision): CreditEntitlement;
13
- mapSlimCustomer: (customer: SlimCustomerFragment) => SlimCustomer;
14
- mapProvisionedCustomer: (graphProvisionedCustomer: ProvisionCustomerMutation) => ProvisionedCustomer;
15
- mapProvisionedSubscriptionResult: (graphProvisionedSubscriptionResult: ProvisionSubscriptionMutation) => ProvisionSubscriptionResult;
16
- getSubscriptionPrices(subscription: SubscriptionFragment | SlimSubscriptionFragment): Price[];
17
- mapSlimSubscription: (slimSubscription: SlimSubscriptionFragment) => Subscription;
18
- mapApplySubscriptionResults: (graphApplySubscriptionResults: ApplySubscriptionMutation, customerId: string) => ApplySubscriptionResults;
19
- mapFullCustomer: (customer: CustomerWithSubscriptionsFragment) => FullCustomer;
20
- mapCoupons(resultData: GetCouponsQuery): Coupon[];
21
- private mapPaymentDetails;
22
- private mapCoupon;
23
- /**
24
- * Maps a PriceFragment from the API into the SDK's Price model.
25
- * Handles flat-fee, per-unit, tiered, and credit-based pricing models,
26
- * including custom currency top-ups for credit charges.
27
- */
28
- private mapPrice;
29
- private mapPlan;
30
- private mapProduct;
31
- mapProducts(resultData: GetProductsQuery): Product[];
32
- private mapDefaultTrialConfig;
33
- private mapCompatibleAddons;
34
- private mapPackageEntitlement;
35
- mapFullSubscriptions(subscriptions: SubscriptionFragment[]): FullSubscription[];
36
- mapFullSubscription(subscription: SubscriptionFragment): FullSubscription;
37
- private mapLatestInvoice;
38
- private mapTotalPrice;
39
- private mapDependencyAddon;
40
- private mapAddon;
41
- private mapPromotionalEntitlement;
42
- mapReportUsageAck(data: ReportUsageFragment): ReportUsageAck;
43
- mapResource(resource: CustomerResourceFragment): CustomerResource;
44
- mapPaywall(resultData: GetPaywallQuery): Paywall;
45
- mapPlans(resultData: GetPaywallQuery): Plan[];
46
- mapTaxFields(fragment: SubscriptionPreviewFragment | SubscriptionPreviewInvoiceFragment | ImmediateSubscriptionPreviewInvoiceFragment): Pick<SubscriptionPreview, 'tax' | 'taxDetails'>;
47
- mapSubscriptionPreview(fragment: SubscriptionPreviewFragment): SubscriptionPreview;
48
- mapCredits(fragment: NonNullable<SubscriptionPreviewFragment['credits']>): SubscriptionPreviewCredits;
49
- mapSubscriptionPreviewV2(fragment: SubscriptionPreviewV2Fragment): SubscriptionPreviewV2;
50
- mapSubscriptionPreviewInvoice(fragment: SubscriptionPreviewInvoiceFragment | ImmediateSubscriptionPreviewInvoiceFragment): SubscriptionPreviewInvoice;
51
- mapDiscount(discount: NonNullable<SubscriptionPreviewFragment['discount']>): SubscriptionPreviewDiscount;
52
- mapMoney(fragment: {
53
- amount: number;
54
- currency: string;
55
- }): Money;
56
- mapUsageHistory(usageHistory: UsageHistoryFragment): UsageHistoryPoint[];
57
- mapCustomerStatistics(customer: CustomerStatisticsFragment): CustomerStatisticsModel;
58
- private getPriceCurrency;
59
- private mapCompatiblePackageGroups;
60
- }
61
- export { ModelMapper };