@abyss-project/main 20.1.0 → 21.0.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 (117) hide show
  1. package/dist/api/billing-account.admin.api.d.ts +9 -0
  2. package/dist/api/billing-account.admin.api.js +21 -1
  3. package/dist/api/billing-account.admin.api.js.map +1 -1
  4. package/dist/api/organization-billing.api.d.ts +15 -2
  5. package/dist/api/organization-billing.api.js +38 -1
  6. package/dist/api/organization-billing.api.js.map +1 -1
  7. package/dist/api/user-billing.api.d.ts +15 -2
  8. package/dist/api/user-billing.api.js +45 -1
  9. package/dist/api/user-billing.api.js.map +1 -1
  10. package/dist/constants/index.d.ts +1 -0
  11. package/dist/constants/index.js +1 -0
  12. package/dist/constants/index.js.map +1 -1
  13. package/dist/constants/public-plans.constants.js +8 -0
  14. package/dist/constants/public-plans.constants.js.map +1 -1
  15. package/dist/constants/unpaid-invoice.constants.d.ts +1 -0
  16. package/dist/constants/unpaid-invoice.constants.js +5 -0
  17. package/dist/constants/unpaid-invoice.constants.js.map +1 -0
  18. package/dist/index.d.ts +23 -0
  19. package/dist/index.js +23 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/translate/en.translate.d.ts +24 -0
  22. package/dist/translate/en.translate.js +24 -0
  23. package/dist/translate/en.translate.js.map +1 -1
  24. package/dist/translate/fr.translate.d.ts +24 -0
  25. package/dist/translate/fr.translate.js +24 -0
  26. package/dist/translate/fr.translate.js.map +1 -1
  27. package/dist/types/enum/api-error.enum.d.ts +3 -0
  28. package/dist/types/enum/api-error.enum.js +3 -0
  29. package/dist/types/enum/api-error.enum.js.map +1 -1
  30. package/dist/types/enum/billing-interval.enum.d.ts +8 -0
  31. package/dist/types/enum/billing-interval.enum.js +14 -0
  32. package/dist/types/enum/billing-interval.enum.js.map +1 -0
  33. package/dist/types/enum/billing-subscription-event.enum.d.ts +27 -0
  34. package/dist/types/enum/billing-subscription-event.enum.js +34 -0
  35. package/dist/types/enum/billing-subscription-event.enum.js.map +1 -0
  36. package/dist/types/enum/email-type.enum.d.ts +6 -0
  37. package/dist/types/enum/email-type.enum.js +6 -0
  38. package/dist/types/enum/email-type.enum.js.map +1 -1
  39. package/dist/types/enum/index.d.ts +4 -0
  40. package/dist/types/enum/index.js +4 -0
  41. package/dist/types/enum/index.js.map +1 -1
  42. package/dist/types/enum/loyalty-grant-mode.enum.d.ts +4 -0
  43. package/dist/types/enum/loyalty-grant-mode.enum.js +9 -0
  44. package/dist/types/enum/loyalty-grant-mode.enum.js.map +1 -0
  45. package/dist/types/enum/subscription-pause.enum.d.ts +6 -0
  46. package/dist/types/enum/subscription-pause.enum.js +11 -0
  47. package/dist/types/enum/subscription-pause.enum.js.map +1 -0
  48. package/dist/types/enum/user-notification-category.enum.js +6 -0
  49. package/dist/types/enum/user-notification-category.enum.js.map +1 -1
  50. package/dist/types/enum/user-notification-content-type.enum.d.ts +30 -0
  51. package/dist/types/enum/user-notification-content-type.enum.js +7 -1
  52. package/dist/types/enum/user-notification-content-type.enum.js.map +1 -1
  53. package/dist/types/interface/api/index.d.ts +8 -0
  54. package/dist/types/interface/api/index.js +8 -0
  55. package/dist/types/interface/api/index.js.map +1 -1
  56. package/dist/types/interface/api/requests/loyalty-rule.admin.request.d.ts +16 -0
  57. package/dist/types/interface/api/requests/loyalty-rule.admin.request.js +3 -0
  58. package/dist/types/interface/api/requests/loyalty-rule.admin.request.js.map +1 -0
  59. package/dist/types/interface/api/requests/organization-billing.request.d.ts +15 -1
  60. package/dist/types/interface/api/requests/retention-metrics.admin.request.d.ts +4 -0
  61. package/dist/types/interface/api/requests/retention-metrics.admin.request.js +3 -0
  62. package/dist/types/interface/api/requests/retention-metrics.admin.request.js.map +1 -0
  63. package/dist/types/interface/api/requests/subscription-retention.request.d.ts +34 -0
  64. package/dist/types/interface/api/requests/subscription-retention.request.js +3 -0
  65. package/dist/types/interface/api/requests/subscription-retention.request.js.map +1 -0
  66. package/dist/types/interface/api/requests/user-billing.request.d.ts +12 -1
  67. package/dist/types/interface/api/responses/billing-module.response.d.ts +1 -0
  68. package/dist/types/interface/api/responses/billing-plan.response.d.ts +1 -0
  69. package/dist/types/interface/api/responses/loyalty-bonus.response.d.ts +16 -0
  70. package/dist/types/interface/api/responses/loyalty-bonus.response.js +3 -0
  71. package/dist/types/interface/api/responses/loyalty-bonus.response.js.map +1 -0
  72. package/dist/types/interface/api/responses/loyalty-rule.admin.response.d.ts +12 -0
  73. package/dist/types/interface/api/responses/loyalty-rule.admin.response.js +3 -0
  74. package/dist/types/interface/api/responses/loyalty-rule.admin.response.js.map +1 -0
  75. package/dist/types/interface/api/responses/organization-billing.response.d.ts +3 -1
  76. package/dist/types/interface/api/responses/retention-metrics.admin.response.d.ts +29 -0
  77. package/dist/types/interface/api/responses/retention-metrics.admin.response.js +3 -0
  78. package/dist/types/interface/api/responses/retention-metrics.admin.response.js.map +1 -0
  79. package/dist/types/interface/api/responses/subscription-retention.response.d.ts +11 -0
  80. package/dist/types/interface/api/responses/subscription-retention.response.js +3 -0
  81. package/dist/types/interface/api/responses/subscription-retention.response.js.map +1 -0
  82. package/dist/types/interface/api/responses/unpaid-amount.response.d.ts +9 -0
  83. package/dist/types/interface/api/responses/unpaid-amount.response.js +3 -0
  84. package/dist/types/interface/api/responses/unpaid-amount.response.js.map +1 -0
  85. package/dist/types/interface/api/responses/user-billing.response.d.ts +14 -1
  86. package/dist/types/interface/index.d.ts +2 -0
  87. package/dist/types/interface/index.js +2 -0
  88. package/dist/types/interface/index.js.map +1 -1
  89. package/dist/types/interface/models/billing-account.model.d.ts +22 -1
  90. package/dist/types/interface/models/billing-subscription-event.model.d.ts +17 -0
  91. package/dist/types/interface/models/billing-subscription-event.model.js +3 -0
  92. package/dist/types/interface/models/billing-subscription-event.model.js.map +1 -0
  93. package/dist/types/interface/models/index.d.ts +2 -0
  94. package/dist/types/interface/models/index.js +2 -0
  95. package/dist/types/interface/models/index.js.map +1 -1
  96. package/dist/types/interface/models/loyalty-rule.model.d.ts +12 -0
  97. package/dist/types/interface/models/loyalty-rule.model.js +3 -0
  98. package/dist/types/interface/models/loyalty-rule.model.js.map +1 -0
  99. package/dist/types/interface/models/plan-template.model.d.ts +1 -0
  100. package/dist/utils/index.d.ts +1 -0
  101. package/dist/utils/index.js +1 -0
  102. package/dist/utils/index.js.map +1 -1
  103. package/dist/utils/pricing.utils.d.ts +11 -1
  104. package/dist/utils/pricing.utils.js +55 -8
  105. package/dist/utils/pricing.utils.js.map +1 -1
  106. package/dist/utils/subscription-retention.utils.d.ts +12 -0
  107. package/dist/utils/subscription-retention.utils.js +40 -0
  108. package/dist/utils/subscription-retention.utils.js.map +1 -0
  109. package/dist/utils/tests/annual-price.utils.spec.d.ts +1 -0
  110. package/dist/utils/tests/annual-price.utils.spec.js +50 -0
  111. package/dist/utils/tests/annual-price.utils.spec.js.map +1 -0
  112. package/dist/utils/tests/pricing-calculator.utils.spec.js +1 -0
  113. package/dist/utils/tests/pricing-calculator.utils.spec.js.map +1 -1
  114. package/dist/utils/tests/subscription-retention.utils.spec.d.ts +1 -0
  115. package/dist/utils/tests/subscription-retention.utils.spec.js +80 -0
  116. package/dist/utils/tests/subscription-retention.utils.spec.js.map +1 -0
  117. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,6DAA2C;AAC3C,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,+DAA6C;AAC7C,8DAA4C;AAC5C,mEAAiD;AACjD,oEAAkD;AAGlD,2DAAyC;AACzC,sEAAoD;AAGpD,wCAAsB;AAGtB,uDAAqC;AAGrC,wDAAsC;AACtC,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,oEAAkD;AAClD,qEAAmD;AACnD,8EAA4D;AAC5D,kFAAgE;AAGhE,8DAA4C;AAC5C,0EAAwD;AACxD,qEAAmD;AACnD,gFAA8D;AAC9D,mEAAiD;AAGjD,+DAA6C;AAC7C,iEAA+C;AAC/C,uEAAqD;AACrD,4EAA0D;AAC1D,4EAA0D;AAC1D,8DAA4C;AAC5C,yDAAuC;AACvC,8DAA4C;AAC5C,oEAAkD;AAClD,6DAA2C;AAC3C,oEAAkD;AAClD,iEAA+C;AAC/C,0EAAwD;AACxD,6DAA2C;AAC3C,sEAAoD;AACpD,mEAAiD;AACjD,mEAAiD;AACjD,kEAAgD;AAChD,qEAAmD;AACnD,wEAAsD;AACtD,+DAA6C;AAC7C,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,qEAAmD;AACnD,iFAA+D;AAC/D,iEAA+C;AAC/C,oFAAkE;AAGlE,kEAAgD;AAGhD,mEAAiD;AAGjD,+DAA6C;AAO7C,gEAA8C;AAG9C,gEAA8C;AAC9C,wEAAsD;AACtD,2EAAyD;AACzD,oEAAkD;AAClD,yEAAuD;AAGvD,4DAA0C;AAG1C,4DAA0C;AAG1C,qEAAmD;AAKnD,kEAAgD;AAGhD,iEAA+C;AAC/C,4DAA0C;AAG1C,yDAAuC;AACvC,yDAAuC;AAGvC,gEAA8C;AAC9C,qEAAmD;AACnD,wCAAsB;AAGtB,0DAAwC;AAGxC,+DAA6C;AAG7C,yDAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,6DAA2C;AAC3C,mEAAiD;AACjD,yEAAuD;AACvD,+DAA6C;AAC7C,+DAA6C;AAC7C,8DAA4C;AAC5C,mEAAiD;AACjD,oEAAkD;AAGlD,2DAAyC;AACzC,sEAAoD;AAGpD,wCAAsB;AAGtB,uDAAqC;AAGrC,wDAAsC;AACtC,gEAA8C;AAC9C,8DAA4C;AAC5C,oEAAkD;AAClD,oEAAkD;AAClD,qEAAmD;AACnD,8EAA4D;AAC5D,kFAAgE;AAGhE,8DAA4C;AAC5C,0EAAwD;AACxD,qEAAmD;AACnD,gFAA8D;AAC9D,mEAAiD;AAGjD,+DAA6C;AAC7C,iEAA+C;AAC/C,uEAAqD;AACrD,4EAA0D;AAC1D,4EAA0D;AAC1D,8DAA4C;AAC5C,yDAAuC;AACvC,8DAA4C;AAC5C,oEAAkD;AAClD,6DAA2C;AAC3C,oEAAkD;AAClD,iEAA+C;AAC/C,0EAAwD;AACxD,6DAA2C;AAC3C,sEAAoD;AACpD,mEAAiD;AACjD,mEAAiD;AACjD,kEAAgD;AAChD,qEAAmD;AACnD,wEAAsD;AACtD,+DAA6C;AAC7C,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,qEAAmD;AACnD,iFAA+D;AAC/D,iEAA+C;AAC/C,oFAAkE;AAGlE,kEAAgD;AAGhD,mEAAiD;AAGjD,+DAA6C;AAO7C,gEAA8C;AAG9C,gEAA8C;AAC9C,wEAAsD;AACtD,2EAAyD;AACzD,oEAAkD;AAClD,yEAAuD;AAGvD,4DAA0C;AAG1C,4DAA0C;AAG1C,qEAAmD;AAKnD,kEAAgD;AAGhD,iEAA+C;AAC/C,4DAA0C;AAG1C,yDAAuC;AACvC,yDAAuC;AAGvC,gEAA8C;AAC9C,qEAAmD;AACnD,wCAAsB;AAGtB,0DAAwC;AAGxC,+DAA6C;AAG7C,yDAAuC;AAGvC,4EAA0D;AAC1D,8DAA4C"}
@@ -1,4 +1,5 @@
1
- import { BillingAccountStatus } from '../../enum';
1
+ import { BillingAccountStatus, BillingAddonStatus, BillingInterval } from '../../enum';
2
+ import { BillingModuleId } from '../../../constants/module-catalog.constants';
2
3
  import { IOrganization } from './organization.model';
3
4
  import { IUser } from './user.model';
4
5
  import { IPlanTemplate } from './plan-template.model';
@@ -13,6 +14,17 @@ export interface IBillingAddress {
13
14
  postalCode: string;
14
15
  country: string;
15
16
  }
17
+ export interface IPausedSubscriptionModule {
18
+ moduleId: BillingModuleId;
19
+ quantity: number;
20
+ status: BillingAddonStatus.ACTIVE | BillingAddonStatus.SUSPENDED_BY_PLAN;
21
+ }
22
+ export interface IPausedSubscriptionSnapshot {
23
+ planTemplateId: string;
24
+ interval: BillingInterval;
25
+ modules: IPausedSubscriptionModule[];
26
+ pausedAt: string;
27
+ }
16
28
  export interface IBillingAccount {
17
29
  id?: string;
18
30
  userId: string | null;
@@ -36,6 +48,15 @@ export interface IBillingAccount {
36
48
  currentPeriodEnd: Date;
37
49
  billingAnchorDay: number | null;
38
50
  trialEndsAt: Date | null;
51
+ paidSince: Date | null;
52
+ billingInterval: BillingInterval;
53
+ pendingBillingInterval: BillingInterval | null;
54
+ annualPeriodStart: Date | null;
55
+ annualPeriodEnd: Date | null;
56
+ pauseStartsAt: Date | null;
57
+ pauseEndsAt: Date | null;
58
+ pausedSnapshot: IPausedSubscriptionSnapshot | null;
59
+ pauseResumeFailedAt: Date | null;
39
60
  unpaidStripeInvoiceIds: string[];
40
61
  openStripeDisputeIds: string[];
41
62
  billingEmail: string | null;
@@ -0,0 +1,17 @@
1
+ import { BillingInterval, BillingSubscriptionEventType } from '../../enum';
2
+ export interface IBillingSubscriptionEvent {
3
+ id: string;
4
+ billingAccountId: string;
5
+ type: BillingSubscriptionEventType;
6
+ occurredAt: Date;
7
+ planBefore: string | null;
8
+ planAfter: string | null;
9
+ intervalBefore: BillingInterval | null;
10
+ intervalAfter: BillingInterval | null;
11
+ mrrCentsBefore: number | null;
12
+ mrrCentsAfter: number | null;
13
+ payload: Record<string, unknown>;
14
+ stripeEventId: string | null;
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=billing-subscription-event.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-subscription-event.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/billing-subscription-event.model.ts"],"names":[],"mappings":""}
@@ -35,6 +35,8 @@ export * from './billing-quota-cap.model';
35
35
  export * from './quota-reservation.model';
36
36
  export * from './storage-subtotal.model';
37
37
  export * from './billing-trial-grant.model';
38
+ export * from './billing-subscription-event.model';
39
+ export * from './loyalty-rule.model';
38
40
  export * from './billing-daily-snapshot.model';
39
41
  export * from './webhook-event.model';
40
42
  export * from './ledger-entry.model';
@@ -51,6 +51,8 @@ __exportStar(require("./billing-quota-cap.model"), exports);
51
51
  __exportStar(require("./quota-reservation.model"), exports);
52
52
  __exportStar(require("./storage-subtotal.model"), exports);
53
53
  __exportStar(require("./billing-trial-grant.model"), exports);
54
+ __exportStar(require("./billing-subscription-event.model"), exports);
55
+ __exportStar(require("./loyalty-rule.model"), exports);
54
56
  __exportStar(require("./billing-daily-snapshot.model"), exports);
55
57
  __exportStar(require("./webhook-event.model"), exports);
56
58
  __exportStar(require("./ledger-entry.model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,yDAAuC;AACvC,qEAAmD;AACnD,sDAAoC;AACpC,4DAA0C;AAC1C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,6DAA2C;AAG3C,oDAAkC;AAClC,+DAA6C;AAG7C,gDAA8B;AAG9B,iDAA+B;AAG/B,uDAAqC;AACrC,mEAAiD;AACjD,8DAA4C;AAG5C,wDAAsC;AACtC,0DAAwC;AACxC,gEAA8C;AAC9C,qEAAmD;AACnD,qEAAmD;AACnD,uDAAqC;AACrC,kDAAgC;AAChC,uDAAqC;AACrC,6DAA2C;AAC3C,sDAAoC;AACpC,6DAA2C;AAC3C,0DAAwC;AACxC,mEAAiD;AACjD,sDAAoC;AACpC,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,wDAAsC;AACtC,uDAAqC;AACrC,8DAA4C;AAC5C,+CAA6B;AAC7B,sDAAoC;AACpC,8DAA4C;AAC5C,0EAAwD;AACxD,0DAAwC;AACxC,6EAA2D;AAG3D,2DAAyC;AAGzC,4DAA0C;AAG1C,wDAAsC;AAGtC,yDAAuC;AACvC,iEAA+C;AAC/C,oEAAkD;AAClD,yDAAuC;AACvC,6DAA2C;AAC3C,kEAAgD;AAGhD,qDAAmC;AAGnC,qDAAmC;AAGnC,8DAA4C;AAK5C,2DAAyC;AAGzC,0DAAwC;AAGxC,kDAAgC;AAChC,kDAAgC;AAGhC,yDAAuC;AACvC,8DAA4C;AAG5C,mDAAiC;AAGjC,wDAAsC;AAGtC,kDAAgC;AAEhC,6DAA2C;AAC3C,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/interface/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,kDAAgC;AAChC,yDAAuC;AACvC,qEAAmD;AACnD,sDAAoC;AACpC,4DAA0C;AAC1C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAC1C,6DAA2C;AAG3C,oDAAkC;AAClC,+DAA6C;AAG7C,gDAA8B;AAG9B,iDAA+B;AAG/B,uDAAqC;AACrC,mEAAiD;AACjD,8DAA4C;AAG5C,wDAAsC;AACtC,0DAAwC;AACxC,gEAA8C;AAC9C,qEAAmD;AACnD,qEAAmD;AACnD,uDAAqC;AACrC,kDAAgC;AAChC,uDAAqC;AACrC,6DAA2C;AAC3C,sDAAoC;AACpC,6DAA2C;AAC3C,0DAAwC;AACxC,mEAAiD;AACjD,sDAAoC;AACpC,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2DAAyC;AACzC,8DAA4C;AAC5C,qEAAmD;AACnD,uDAAqC;AACrC,iEAA+C;AAC/C,wDAAsC;AACtC,uDAAqC;AACrC,8DAA4C;AAC5C,+CAA6B;AAC7B,sDAAoC;AACpC,8DAA4C;AAC5C,0EAAwD;AACxD,0DAAwC;AACxC,6EAA2D;AAG3D,2DAAyC;AAGzC,4DAA0C;AAG1C,wDAAsC;AAGtC,yDAAuC;AACvC,iEAA+C;AAC/C,oEAAkD;AAClD,yDAAuC;AACvC,6DAA2C;AAC3C,kEAAgD;AAGhD,qDAAmC;AAGnC,qDAAmC;AAGnC,8DAA4C;AAK5C,2DAAyC;AAGzC,0DAAwC;AAGxC,kDAAgC;AAChC,kDAAgC;AAGhC,yDAAuC;AACvC,8DAA4C;AAG5C,mDAAiC;AAGjC,wDAAsC;AAGtC,kDAAgC;AAEhC,6DAA2C;AAC3C,8DAA4C"}
@@ -0,0 +1,12 @@
1
+ import { BillingMetric, LoyaltyGrantMode, PlanAccountType } from '../../enum';
2
+ export interface ILoyaltyRule {
3
+ id: string;
4
+ metric: BillingMetric;
5
+ minTenureMonths: number;
6
+ mode: LoyaltyGrantMode;
7
+ value: number;
8
+ scopes: PlanAccountType[];
9
+ active: boolean;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=loyalty-rule.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loyalty-rule.model.js","sourceRoot":"","sources":["../../../../src/types/interface/models/loyalty-rule.model.ts"],"names":[],"mappings":""}
@@ -22,6 +22,7 @@ export interface IPlanTemplate {
22
22
  isPublic: boolean;
23
23
  isArchived: boolean;
24
24
  monthlyPriceEur: number;
25
+ yearlyPriceCents: number;
25
26
  quotas: IPlanServiceQuota[];
26
27
  overagePricing: IPlanOveragePricing[];
27
28
  quotaAlertThresholds: number[];
@@ -25,6 +25,7 @@ export * from './invoice-amounts.utils';
25
25
  export * from './invoice-line-label.utils';
26
26
  export * from './resolve-user.utils';
27
27
  export * from './record-presence.utils';
28
+ export * from './subscription-retention.utils';
28
29
  export * from './pricing.utils';
29
30
  export * from './plan-capacity.utils';
30
31
  export * from './billing-deep-link.utils';
@@ -41,6 +41,7 @@ __exportStar(require("./invoice-amounts.utils"), exports);
41
41
  __exportStar(require("./invoice-line-label.utils"), exports);
42
42
  __exportStar(require("./resolve-user.utils"), exports);
43
43
  __exportStar(require("./record-presence.utils"), exports);
44
+ __exportStar(require("./subscription-retention.utils"), exports);
44
45
  __exportStar(require("./pricing.utils"), exports);
45
46
  __exportStar(require("./plan-capacity.utils"), exports);
46
47
  __exportStar(require("./billing-deep-link.utils"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,gDAA8B;AAC9B,0DAAwC;AACxC,+CAA6B;AAC7B,iDAA+B;AAC/B,uDAAqC;AACrC,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,+CAA6B;AAC7B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,wDAAsC;AACtC,wDAAsC;AACtC,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,qDAAmC;AACnC,0DAAwC;AACxC,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AAIxC,kDAAgC;AAChC,wDAAsC;AACtC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,gDAA8B;AAC9B,0DAAwC;AACxC,+CAA6B;AAC7B,iDAA+B;AAC/B,uDAAqC;AACrC,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,+CAA6B;AAC7B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,kDAAgC;AAChC,wDAAsC;AACtC,wDAAsC;AACtC,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,qDAAmC;AACnC,0DAAwC;AACxC,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,iEAA+C;AAI/C,kDAAgC;AAChC,wDAAsC;AACtC,4DAA0C"}
@@ -2,6 +2,7 @@ import { BillingPackId } from '../constants/pack-catalog.constants';
2
2
  import { BillingModuleId } from '../constants/module-catalog.constants';
3
3
  import { PriceTranche } from '../constants/metric-price-scale.constants';
4
4
  import { BillingMetric } from '../types/enum/organization-billing.enum';
5
+ import { BillingInterval } from '../types/enum/billing-interval.enum';
5
6
  export declare const priceForQuantity: (scale: PriceTranche[], quantity: number) => number;
6
7
  export declare const quantityForBudget: (scale: PriceTranche[], budgetCents: number) => number;
7
8
  export declare const overageNanocentsPerUnit: (scale: PriceTranche[]) => number;
@@ -37,8 +38,17 @@ export interface StripePriceTier {
37
38
  }
38
39
  export declare const shiftedTiersForModule: (scale: PriceTranche[], includedQuantity: number) => StripePriceTier[];
39
40
  export declare const modulePriceCentsFor: (scale: PriceTranche[], includedQuantity: number, quantity: number) => number;
41
+ export declare const moduleExactPriceCentsFor: (scale: PriceTranche[], includedQuantity: number, quantity: number) => number;
40
42
  export declare const moduleMonthlyPriceCents: (moduleId: BillingModuleId, includedQuantity: number, quantity: number) => number;
43
+ export declare const moduleExactMonthlyPriceCents: (moduleId: BillingModuleId, includedQuantity: number, quantity: number) => number;
44
+ export declare const moduleIntervalPriceCents: (moduleId: BillingModuleId, includedQuantity: number, quantity: number, interval: BillingInterval) => number;
41
45
  export declare const moduleMetricUnits: (moduleId: BillingModuleId, lots: number) => number;
42
46
  export declare const remainingPeriodShare: (now: Date, periodStart: Date, periodEnd: Date) => number;
43
- export declare const moduleProratedPriceCents: (moduleId: BillingModuleId, includedQuantity: number, quantity: number, now: Date, periodStart: Date, periodEnd: Date) => number;
47
+ export declare const moduleProratedPriceCents: (moduleId: BillingModuleId, includedQuantity: number, quantity: number, now: Date, periodStart: Date, periodEnd: Date, interval?: BillingInterval) => number;
44
48
  export declare const packMonthlyPriceCents: (packId: BillingPackId, includedByModule: Partial<Record<BillingModuleId, number>>) => number;
49
+ export declare const ANNUAL_MONTHS_CHARGED = 10;
50
+ export declare const annualPriceCents: (monthlyCents: number) => number;
51
+ export declare const intervalPriceCents: (monthlyCents: number, interval: BillingInterval) => number;
52
+ export declare const monthlyEquivalentCents: (priceCents: number, interval: BillingInterval) => number;
53
+ export declare const decimalTimesTen: (decimal: string) => string;
54
+ export declare const annualTiersForModule: (tiers: StripePriceTier[]) => StripePriceTier[];
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.packMonthlyPriceCents = exports.moduleProratedPriceCents = exports.remainingPeriodShare = exports.moduleMetricUnits = exports.moduleMonthlyPriceCents = exports.modulePriceCentsFor = exports.shiftedTiersForModule = exports.quoteOverageRate = exports.OVERAGE_QUOTE_QUANTITIES = exports.formatNanoCentsAsEur = exports.planCapacityShare = exports.planCapacityValueCents = exports.overagePriceCents = exports.overageAmountCents = exports.resolveOverageNanocentsPerUnit = exports.resolveOverageRate = exports.OverageRateSource = exports.overageNanocentsPerUnit = exports.quantityForBudget = exports.priceForQuantity = void 0;
3
+ exports.annualTiersForModule = exports.decimalTimesTen = exports.monthlyEquivalentCents = exports.intervalPriceCents = exports.annualPriceCents = exports.ANNUAL_MONTHS_CHARGED = exports.packMonthlyPriceCents = exports.moduleProratedPriceCents = exports.remainingPeriodShare = exports.moduleMetricUnits = exports.moduleIntervalPriceCents = exports.moduleExactMonthlyPriceCents = exports.moduleMonthlyPriceCents = exports.moduleExactPriceCentsFor = exports.modulePriceCentsFor = exports.shiftedTiersForModule = exports.quoteOverageRate = exports.OVERAGE_QUOTE_QUANTITIES = exports.formatNanoCentsAsEur = exports.planCapacityShare = exports.planCapacityValueCents = exports.overagePriceCents = exports.overageAmountCents = exports.resolveOverageNanocentsPerUnit = exports.resolveOverageRate = exports.OverageRateSource = exports.overageNanocentsPerUnit = exports.quantityForBudget = exports.priceForQuantity = void 0;
4
4
  const pack_catalog_constants_1 = require("../constants/pack-catalog.constants");
5
5
  const overage_base_rates_constants_1 = require("../constants/overage-base-rates.constants");
6
6
  const module_catalog_constants_1 = require("../constants/module-catalog.constants");
7
7
  const metric_price_scale_constants_1 = require("../constants/metric-price-scale.constants");
8
+ const billing_interval_enum_1 = require("../types/enum/billing-interval.enum");
8
9
  const priceForQuantity = (scale, quantity) => {
9
10
  if (!Number.isFinite(quantity) || quantity <= 0) {
10
11
  return 0;
@@ -170,7 +171,9 @@ const shiftedTiersForModule = (scale, includedQuantity) => {
170
171
  return tiers;
171
172
  };
172
173
  exports.shiftedTiersForModule = shiftedTiersForModule;
173
- const modulePriceCentsFor = (scale, includedQuantity, quantity) => {
174
+ const modulePriceCentsFor = (scale, includedQuantity, quantity) => Math.round((0, exports.moduleExactPriceCentsFor)(scale, includedQuantity, quantity));
175
+ exports.modulePriceCentsFor = modulePriceCentsFor;
176
+ const moduleExactPriceCentsFor = (scale, includedQuantity, quantity) => {
174
177
  if (!Number.isFinite(quantity) || quantity <= 0) {
175
178
  return 0;
176
179
  }
@@ -190,10 +193,12 @@ const modulePriceCentsFor = (scale, includedQuantity, quantity) => {
190
193
  break;
191
194
  }
192
195
  }
193
- return Math.round(centimes);
196
+ return centimes;
194
197
  };
195
- exports.modulePriceCentsFor = modulePriceCentsFor;
196
- const moduleMonthlyPriceCents = (moduleId, includedQuantity, quantity) => {
198
+ exports.moduleExactPriceCentsFor = moduleExactPriceCentsFor;
199
+ const moduleMonthlyPriceCents = (moduleId, includedQuantity, quantity) => Math.round((0, exports.moduleExactMonthlyPriceCents)(moduleId, includedQuantity, quantity));
200
+ exports.moduleMonthlyPriceCents = moduleMonthlyPriceCents;
201
+ const moduleExactMonthlyPriceCents = (moduleId, includedQuantity, quantity) => {
197
202
  const module = (0, module_catalog_constants_1.moduleById)(moduleId);
198
203
  if (!module || !Number.isFinite(quantity) || quantity <= 0) {
199
204
  return 0;
@@ -205,9 +210,11 @@ const moduleMonthlyPriceCents = (moduleId, includedQuantity, quantity) => {
205
210
  if (!scale) {
206
211
  return 0;
207
212
  }
208
- return (0, exports.modulePriceCentsFor)(scale, includedQuantity, (0, exports.moduleMetricUnits)(module.id, quantity));
213
+ return (0, exports.moduleExactPriceCentsFor)(scale, includedQuantity, (0, exports.moduleMetricUnits)(module.id, quantity));
209
214
  };
210
- exports.moduleMonthlyPriceCents = moduleMonthlyPriceCents;
215
+ exports.moduleExactMonthlyPriceCents = moduleExactMonthlyPriceCents;
216
+ const moduleIntervalPriceCents = (moduleId, includedQuantity, quantity, interval) => (0, exports.intervalPriceCents)((0, exports.moduleExactMonthlyPriceCents)(moduleId, includedQuantity, quantity), interval);
217
+ exports.moduleIntervalPriceCents = moduleIntervalPriceCents;
211
218
  const moduleMetricUnits = (moduleId, lots) => {
212
219
  const module = (0, module_catalog_constants_1.moduleById)(moduleId);
213
220
  if (!module || !Number.isFinite(lots) || lots <= 0) {
@@ -234,7 +241,7 @@ const remainingPeriodShare = (now, periodStart, periodEnd) => {
234
241
  return Math.min(1, restant / duree);
235
242
  };
236
243
  exports.remainingPeriodShare = remainingPeriodShare;
237
- const moduleProratedPriceCents = (moduleId, includedQuantity, quantity, now, periodStart, periodEnd) => Math.floor((0, exports.moduleMonthlyPriceCents)(moduleId, includedQuantity, quantity) *
244
+ const moduleProratedPriceCents = (moduleId, includedQuantity, quantity, now, periodStart, periodEnd, interval = billing_interval_enum_1.BillingInterval.MONTH) => Math.floor((0, exports.moduleIntervalPriceCents)(moduleId, includedQuantity, quantity, interval) *
238
245
  (0, exports.remainingPeriodShare)(now, periodStart, periodEnd));
239
246
  exports.moduleProratedPriceCents = moduleProratedPriceCents;
240
247
  const packMonthlyPriceCents = (packId, includedByModule) => {
@@ -246,4 +253,44 @@ const packMonthlyPriceCents = (packId, includedByModule) => {
246
253
  return Math.round(somme * (1 - pack_catalog_constants_1.PACK_DISCOUNT_RATE));
247
254
  };
248
255
  exports.packMonthlyPriceCents = packMonthlyPriceCents;
256
+ exports.ANNUAL_MONTHS_CHARGED = 10;
257
+ const MONTHS_PER_YEAR = 12;
258
+ const annualPriceCents = (monthlyCents) => {
259
+ if (!Number.isFinite(monthlyCents) || monthlyCents <= 0) {
260
+ return 0;
261
+ }
262
+ return Math.round(monthlyCents * exports.ANNUAL_MONTHS_CHARGED);
263
+ };
264
+ exports.annualPriceCents = annualPriceCents;
265
+ const intervalPriceCents = (monthlyCents, interval) => {
266
+ if (interval === billing_interval_enum_1.BillingInterval.YEAR) {
267
+ return (0, exports.annualPriceCents)(monthlyCents);
268
+ }
269
+ if (!Number.isFinite(monthlyCents) || monthlyCents <= 0) {
270
+ return 0;
271
+ }
272
+ return Math.round(monthlyCents);
273
+ };
274
+ exports.intervalPriceCents = intervalPriceCents;
275
+ const monthlyEquivalentCents = (priceCents, interval) => interval === billing_interval_enum_1.BillingInterval.YEAR ? Math.round(priceCents / MONTHS_PER_YEAR) : priceCents;
276
+ exports.monthlyEquivalentCents = monthlyEquivalentCents;
277
+ const decimalTimesTen = (decimal) => {
278
+ const [mantissa, exponentText = '0'] = decimal.toLowerCase().split('e');
279
+ const [integerPart, fractionPart = ''] = mantissa.split('.');
280
+ const digits = `${integerPart}${fractionPart}`;
281
+ const pointIndex = integerPart.length + Number(exponentText) + 1;
282
+ const padded = pointIndex <= 0
283
+ ? `${'0'.repeat(1 - pointIndex)}${digits}`
284
+ : digits.padEnd(Math.max(digits.length, pointIndex), '0');
285
+ const at = Math.max(pointIndex, 1);
286
+ const whole = padded.slice(0, at).replace(/^0+(?=\d)/, '');
287
+ const fraction = padded.slice(at).replace(/0+$/, '');
288
+ return fraction.length > 0 ? `${whole}.${fraction}` : whole;
289
+ };
290
+ exports.decimalTimesTen = decimalTimesTen;
291
+ const annualTiersForModule = (tiers) => tiers.map((tier) => ({
292
+ upTo: tier.upTo,
293
+ unitAmountDecimal: (0, exports.decimalTimesTen)(tier.unitAmountDecimal),
294
+ }));
295
+ exports.annualTiersForModule = annualTiersForModule;
249
296
  //# sourceMappingURL=pricing.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.utils.js","sourceRoot":"","sources":["../../src/utils/pricing.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pricing.utils.js","sourceRoot":"","sources":["../../src/utils/pricing.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CancellationReason, RetentionOffer } from '../types/enum/billing-subscription-event.enum';
2
+ import { SubscriptionPauseState } from '../types/enum/subscription-pause.enum';
3
+ import type { IBillingAccount } from '../types/interface/models/billing-account.model';
4
+ export declare const SUBSCRIPTION_PAUSE_MONTHS: readonly [1, 2, 3];
5
+ export type SubscriptionPauseMonths = typeof SUBSCRIPTION_PAUSE_MONTHS[number];
6
+ export declare const SUBSCRIPTION_PAUSE_WINDOW_MONTHS = 12;
7
+ export declare const SUBSCRIPTION_RESUME_REMINDER_DAYS = 7;
8
+ export declare const CANCELLATION_REASON_TEXT_MAX_LENGTH = 500;
9
+ export declare const subscriptionPauseStateOf: (account: Pick<IBillingAccount, "pauseStartsAt" | "pausedSnapshot" | "pauseResumeFailedAt">) => SubscriptionPauseState;
10
+ export declare const retentionOffersFor: (reason?: CancellationReason | null) => RetentionOffer[];
11
+ export declare const RETENTION_OFFERS_SHOWN_MAX = 2;
12
+ export declare const retentionOffersShownMax: (reason?: CancellationReason | null) => number;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retentionOffersShownMax = exports.RETENTION_OFFERS_SHOWN_MAX = exports.retentionOffersFor = exports.subscriptionPauseStateOf = exports.CANCELLATION_REASON_TEXT_MAX_LENGTH = exports.SUBSCRIPTION_RESUME_REMINDER_DAYS = exports.SUBSCRIPTION_PAUSE_WINDOW_MONTHS = exports.SUBSCRIPTION_PAUSE_MONTHS = void 0;
4
+ const billing_subscription_event_enum_1 = require("../types/enum/billing-subscription-event.enum");
5
+ const subscription_pause_enum_1 = require("../types/enum/subscription-pause.enum");
6
+ exports.SUBSCRIPTION_PAUSE_MONTHS = [1, 2, 3];
7
+ exports.SUBSCRIPTION_PAUSE_WINDOW_MONTHS = 12;
8
+ exports.SUBSCRIPTION_RESUME_REMINDER_DAYS = 7;
9
+ exports.CANCELLATION_REASON_TEXT_MAX_LENGTH = 500;
10
+ const subscriptionPauseStateOf = (account) => {
11
+ if (account.pausedSnapshot !== null) {
12
+ return account.pauseResumeFailedAt !== null
13
+ ? subscription_pause_enum_1.SubscriptionPauseState.RESUME_FAILED
14
+ : subscription_pause_enum_1.SubscriptionPauseState.ACTIVE;
15
+ }
16
+ return account.pauseStartsAt !== null
17
+ ? subscription_pause_enum_1.SubscriptionPauseState.SCHEDULED
18
+ : subscription_pause_enum_1.SubscriptionPauseState.NONE;
19
+ };
20
+ exports.subscriptionPauseStateOf = subscriptionPauseStateOf;
21
+ const retentionOffersFor = (reason) => {
22
+ switch (reason) {
23
+ case billing_subscription_event_enum_1.CancellationReason.TOO_EXPENSIVE:
24
+ return [billing_subscription_event_enum_1.RetentionOffer.SWITCH_TO_ANNUAL, billing_subscription_event_enum_1.RetentionOffer.DOWNGRADE_PLAN, billing_subscription_event_enum_1.RetentionOffer.PAUSE];
25
+ case billing_subscription_event_enum_1.CancellationReason.NOT_USING_ENOUGH:
26
+ case billing_subscription_event_enum_1.CancellationReason.TEMPORARY_NEED:
27
+ return [billing_subscription_event_enum_1.RetentionOffer.PAUSE];
28
+ case billing_subscription_event_enum_1.CancellationReason.MISSING_FEATURE:
29
+ case billing_subscription_event_enum_1.CancellationReason.SWITCHING:
30
+ case billing_subscription_event_enum_1.CancellationReason.OTHER:
31
+ return [];
32
+ default:
33
+ return [billing_subscription_event_enum_1.RetentionOffer.SWITCH_TO_ANNUAL, billing_subscription_event_enum_1.RetentionOffer.PAUSE];
34
+ }
35
+ };
36
+ exports.retentionOffersFor = retentionOffersFor;
37
+ exports.RETENTION_OFFERS_SHOWN_MAX = 2;
38
+ const retentionOffersShownMax = (reason) => reason ? exports.RETENTION_OFFERS_SHOWN_MAX : 1;
39
+ exports.retentionOffersShownMax = retentionOffersShownMax;
40
+ //# sourceMappingURL=subscription-retention.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-retention.utils.js","sourceRoot":"","sources":["../../src/utils/subscription-retention.utils.ts"],"names":[],"mappings":";;;AAAA,mGAAmG;AACnG,mFAA+E;AAIlE,QAAA,yBAAyB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU,CAAC;AAK/C,QAAA,gCAAgC,GAAG,EAAE,CAAC;AAGtC,QAAA,iCAAiC,GAAG,CAAC,CAAC;AAGtC,QAAA,mCAAmC,GAAG,GAAG,CAAC;AAOhD,MAAM,wBAAwB,GAAG,CACtC,OAA0F,EAClE,EAAE;IAC1B,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,mBAAmB,KAAK,IAAI;YACzC,CAAC,CAAC,gDAAsB,CAAC,aAAa;YACtC,CAAC,CAAC,gDAAsB,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC,aAAa,KAAK,IAAI;QACnC,CAAC,CAAC,gDAAsB,CAAC,SAAS;QAClC,CAAC,CAAC,gDAAsB,CAAC,IAAI,CAAC;AAClC,CAAC,CAAC;AAXW,QAAA,wBAAwB,4BAWnC;AASK,MAAM,kBAAkB,GAAG,CAAC,MAAkC,EAAoB,EAAE;IACzF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oDAAkB,CAAC,aAAa;YACnC,OAAO,CAAC,gDAAc,CAAC,gBAAgB,EAAE,gDAAc,CAAC,cAAc,EAAE,gDAAc,CAAC,KAAK,CAAC,CAAC;QAChG,KAAK,oDAAkB,CAAC,gBAAgB,CAAC;QACzC,KAAK,oDAAkB,CAAC,cAAc;YACpC,OAAO,CAAC,gDAAc,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,oDAAkB,CAAC,eAAe,CAAC;QACxC,KAAK,oDAAkB,CAAC,SAAS,CAAC;QAClC,KAAK,oDAAkB,CAAC,KAAK;YAC3B,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,CAAC,gDAAc,CAAC,gBAAgB,EAAE,gDAAc,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B;AAGW,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAMrC,MAAM,uBAAuB,GAAG,CAAC,MAAkC,EAAU,EAAE,CACpF,MAAM,CAAC,CAAC,CAAC,kCAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;AAD7B,QAAA,uBAAuB,2BACM"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const billing_interval_enum_1 = require("../../types/enum/billing-interval.enum");
4
+ const module_catalog_constants_1 = require("../../constants/module-catalog.constants");
5
+ const pricing_utils_1 = require("../pricing.utils");
6
+ describe('annual price', () => {
7
+ it('a plan or an unlock: exactly ten monthly prices', () => {
8
+ expect(pricing_utils_1.ANNUAL_MONTHS_CHARGED).toBe(10);
9
+ expect((0, pricing_utils_1.annualPriceCents)(900)).toBe(9000);
10
+ expect((0, pricing_utils_1.annualPriceCents)(2900)).toBe(29000);
11
+ expect((0, pricing_utils_1.annualPriceCents)(0)).toBe(0);
12
+ expect((0, pricing_utils_1.annualPriceCents)(-1)).toBe(0);
13
+ expect((0, pricing_utils_1.annualPriceCents)(Number.NaN)).toBe(0);
14
+ });
15
+ it('a fractional monthly amount is rounded once, after the ×10', () => {
16
+ expect((0, pricing_utils_1.annualPriceCents)(223.65)).toBe(2237);
17
+ expect(10 * Math.round(223.65)).toBe(2240);
18
+ });
19
+ it('per interval, and back to a monthly equivalent', () => {
20
+ expect((0, pricing_utils_1.intervalPriceCents)(900, billing_interval_enum_1.BillingInterval.MONTH)).toBe(900);
21
+ expect((0, pricing_utils_1.intervalPriceCents)(900, billing_interval_enum_1.BillingInterval.YEAR)).toBe(9000);
22
+ expect((0, pricing_utils_1.monthlyEquivalentCents)(9000, billing_interval_enum_1.BillingInterval.YEAR)).toBe(750);
23
+ expect((0, pricing_utils_1.monthlyEquivalentCents)(4990, billing_interval_enum_1.BillingInterval.YEAR)).toBe(416);
24
+ expect((0, pricing_utils_1.monthlyEquivalentCents)(900, billing_interval_enum_1.BillingInterval.MONTH)).toBe(900);
25
+ });
26
+ it('a module: the yearly price rounds the EXACT monthly amount once', () => {
27
+ const lots = 1700;
28
+ const exact = (0, pricing_utils_1.moduleExactMonthlyPriceCents)(module_catalog_constants_1.BillingModuleId.STORAGE, 200, lots);
29
+ expect((0, pricing_utils_1.moduleMonthlyPriceCents)(module_catalog_constants_1.BillingModuleId.STORAGE, 200, lots)).toBe(Math.round(exact));
30
+ expect((0, pricing_utils_1.moduleIntervalPriceCents)(module_catalog_constants_1.BillingModuleId.STORAGE, 200, lots, billing_interval_enum_1.BillingInterval.YEAR)).toBe(Math.round(exact * 10));
31
+ expect((0, pricing_utils_1.moduleIntervalPriceCents)(module_catalog_constants_1.BillingModuleId.UNLOCK_CRYPT_FILE_SIZE, 0, 1, billing_interval_enum_1.BillingInterval.YEAR)).toBe(1900);
32
+ });
33
+ it('a tier rate × 10 is exact in text, even in scientific notation', () => {
34
+ expect((0, pricing_utils_1.decimalTimesTen)('0.6')).toBe('6');
35
+ expect((0, pricing_utils_1.decimalTimesTen)('25')).toBe('250');
36
+ expect((0, pricing_utils_1.decimalTimesTen)('1.5')).toBe('15');
37
+ expect((0, pricing_utils_1.decimalTimesTen)('0.07')).toBe('0.7');
38
+ expect((0, pricing_utils_1.decimalTimesTen)('0.000014')).toBe('0.00014');
39
+ expect((0, pricing_utils_1.decimalTimesTen)('1.4e-7')).toBe('0.0000014');
40
+ expect((0, pricing_utils_1.decimalTimesTen)('2e-7')).toBe('0.000002');
41
+ expect((0, pricing_utils_1.annualTiersForModule)([
42
+ { upTo: 100, unitAmountDecimal: '1.5' },
43
+ { upTo: 'inf', unitAmountDecimal: '0.4' },
44
+ ])).toStrictEqual([
45
+ { upTo: 100, unitAmountDecimal: '15' },
46
+ { upTo: 'inf', unitAmountDecimal: '4' },
47
+ ]);
48
+ });
49
+ });
50
+ //# sourceMappingURL=annual-price.utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annual-price.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/annual-price.utils.spec.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const plan = (catalogKey, monthlyPriceEur) => ({
8
8
  tier: monthlyPriceEur === 0 ? organization_billing_enum_1.PlanTier.FREEMIUM : organization_billing_enum_1.PlanTier.DEFAULT,
9
9
  accountType: organization_billing_enum_1.PlanAccountType.USER,
10
10
  name: catalogKey,
11
+ yearlyPriceCents: Math.round(monthlyPriceEur * 100) * 10,
11
12
  description: null,
12
13
  isPublic: true,
13
14
  isArchived: false,
@@ -1 +1 @@
1
- {"version":3,"file":"pricing-calculator.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/pricing-calculator.utils.spec.ts"],"names":[],"mappings":";;AAAA,0EAAsE;AAEtE,0FAAuF;AACvF,oFAA0E;AAE1E,MAAM,IAAI,GAAG,CAAC,UAA2B,EAAE,eAAuB,EAAiB,EAAE,CAAC,CAAC;IACrF,EAAE,EAAE,QAAQ,UAAU,EAAE;IACxB,IAAI,EAAE,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,oCAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAQ,CAAC,OAAO;IAClE,WAAW,EAAE,2CAAe,CAAC,IAAI;IACjC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;IACjB,eAAe;IACf,MAAM,EAAE,EAAE;IACV,cAAc,EAAE,EAAE;IAClB,oBAAoB,EAAE,EAAE;IACxB,aAAa,EAAE,IAAI;IACnB,UAAU;CACX,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,QAAQ,GAAG,IAAA,kDAAuB,EACtC,CAAC,IAAI,CAAC,wCAAe,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,wCAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EACvE,EAAE,EACF,2CAAe,CAAC,IAAI,CACrB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;YACvC,EAAE,EAAE,eAAe;YACnB,UAAU,EAAE,wCAAe,CAAC,QAAQ;YACpC,IAAI,EAAE,oCAAQ,CAAC,QAAQ;YACvB,eAAe,EAAE,CAAC;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"pricing-calculator.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/pricing-calculator.utils.spec.ts"],"names":[],"mappings":";;AAAA,0EAAsE;AAEtE,0FAAuF;AACvF,oFAA0E;AAE1E,MAAM,IAAI,GAAG,CAAC,UAA2B,EAAE,eAAuB,EAAiB,EAAE,CAAC,CAAC;IACrF,EAAE,EAAE,QAAQ,UAAU,EAAE;IACxB,IAAI,EAAE,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,oCAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAQ,CAAC,OAAO;IAClE,WAAW,EAAE,2CAAe,CAAC,IAAI;IACjC,IAAI,EAAE,UAAU;IAChB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,EAAE;IACxD,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;IACjB,eAAe;IACf,MAAM,EAAE,EAAE;IACV,cAAc,EAAE,EAAE;IAClB,oBAAoB,EAAE,EAAE;IACxB,aAAa,EAAE,IAAI;IACnB,UAAU;CACX,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,QAAQ,GAAG,IAAA,kDAAuB,EACtC,CAAC,IAAI,CAAC,wCAAe,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,wCAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EACvE,EAAE,EACF,2CAAe,CAAC,IAAI,CACrB,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;YACvC,EAAE,EAAE,eAAe;YACnB,UAAU,EAAE,wCAAe,CAAC,QAAQ;YACpC,IAAI,EAAE,oCAAQ,CAAC,QAAQ;YACvB,eAAe,EAAE,CAAC;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const billing_subscription_event_enum_1 = require("../../types/enum/billing-subscription-event.enum");
4
+ const organization_billing_enum_1 = require("../../types/enum/organization-billing.enum");
5
+ const billing_interval_enum_1 = require("../../types/enum/billing-interval.enum");
6
+ const subscription_pause_enum_1 = require("../../types/enum/subscription-pause.enum");
7
+ const module_catalog_constants_1 = require("../../constants/module-catalog.constants");
8
+ const subscription_retention_utils_1 = require("../subscription-retention.utils");
9
+ describe('retentionOffersFor (retention spec §7)', () => {
10
+ it('too expensive: the yearly price, a lower plan, a pause', () => {
11
+ expect((0, subscription_retention_utils_1.retentionOffersFor)(billing_subscription_event_enum_1.CancellationReason.TOO_EXPENSIVE)).toEqual([
12
+ billing_subscription_event_enum_1.RetentionOffer.SWITCH_TO_ANNUAL,
13
+ billing_subscription_event_enum_1.RetentionOffer.DOWNGRADE_PLAN,
14
+ billing_subscription_event_enum_1.RetentionOffer.PAUSE,
15
+ ]);
16
+ });
17
+ it.each([billing_subscription_event_enum_1.CancellationReason.NOT_USING_ENOUGH, billing_subscription_event_enum_1.CancellationReason.TEMPORARY_NEED])('%s: a pause', (reason) => {
18
+ expect((0, subscription_retention_utils_1.retentionOffersFor)(reason)).toEqual([billing_subscription_event_enum_1.RetentionOffer.PAUSE]);
19
+ });
20
+ it.each([
21
+ billing_subscription_event_enum_1.CancellationReason.MISSING_FEATURE,
22
+ billing_subscription_event_enum_1.CancellationReason.SWITCHING,
23
+ billing_subscription_event_enum_1.CancellationReason.OTHER,
24
+ ])('%s: no offer', (reason) => {
25
+ expect((0, subscription_retention_utils_1.retentionOffersFor)(reason)).toEqual([]);
26
+ });
27
+ it.each([null, undefined])('no reason (%s): the yearly price, else a pause', (reason) => {
28
+ expect((0, subscription_retention_utils_1.retentionOffersFor)(reason)).toEqual([
29
+ billing_subscription_event_enum_1.RetentionOffer.SWITCH_TO_ANNUAL,
30
+ billing_subscription_event_enum_1.RetentionOffer.PAUSE,
31
+ ]);
32
+ });
33
+ it('never offers the free plan: it is the cancellation itself', () => {
34
+ const reasons = [...Object.values(billing_subscription_event_enum_1.CancellationReason), null];
35
+ expect(reasons.flatMap((reason) => (0, subscription_retention_utils_1.retentionOffersFor)(reason))).not.toContain('FREE_KEEP_DATA');
36
+ });
37
+ });
38
+ describe('retentionOffersShownMax', () => {
39
+ it('shows one offer without a reason, two at most with one', () => {
40
+ expect((0, subscription_retention_utils_1.retentionOffersShownMax)(null)).toBe(1);
41
+ expect((0, subscription_retention_utils_1.retentionOffersShownMax)(undefined)).toBe(1);
42
+ for (const reason of Object.values(billing_subscription_event_enum_1.CancellationReason)) {
43
+ expect((0, subscription_retention_utils_1.retentionOffersShownMax)(reason)).toBe(subscription_retention_utils_1.RETENTION_OFFERS_SHOWN_MAX);
44
+ }
45
+ expect(subscription_retention_utils_1.RETENTION_OFFERS_SHOWN_MAX).toBe(2);
46
+ });
47
+ });
48
+ describe('subscriptionPauseStateOf', () => {
49
+ const snapshot = {
50
+ planTemplateId: 'plan',
51
+ interval: billing_interval_enum_1.BillingInterval.MONTH,
52
+ modules: [
53
+ { moduleId: module_catalog_constants_1.BillingModuleId.STORAGE, quantity: 1, status: organization_billing_enum_1.BillingAddonStatus.ACTIVE },
54
+ ],
55
+ pausedAt: '2026-10-20T00:00:00.000Z',
56
+ };
57
+ const at = new Date('2026-11-20T00:00:00.000Z');
58
+ it('reads the four states from the pause columns', () => {
59
+ expect([
60
+ { pauseStartsAt: null, pausedSnapshot: null, pauseResumeFailedAt: null },
61
+ { pauseStartsAt: at, pausedSnapshot: null, pauseResumeFailedAt: null },
62
+ {
63
+ pauseStartsAt: at,
64
+ pausedSnapshot: { ...snapshot, modules: [...snapshot.modules] },
65
+ pauseResumeFailedAt: null,
66
+ },
67
+ {
68
+ pauseStartsAt: at,
69
+ pausedSnapshot: { ...snapshot, modules: [] },
70
+ pauseResumeFailedAt: at,
71
+ },
72
+ ].map(subscription_retention_utils_1.subscriptionPauseStateOf)).toEqual([
73
+ subscription_pause_enum_1.SubscriptionPauseState.NONE,
74
+ subscription_pause_enum_1.SubscriptionPauseState.SCHEDULED,
75
+ subscription_pause_enum_1.SubscriptionPauseState.ACTIVE,
76
+ subscription_pause_enum_1.SubscriptionPauseState.RESUME_FAILED,
77
+ ]);
78
+ });
79
+ });
80
+ //# sourceMappingURL=subscription-retention.utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-retention.utils.spec.js","sourceRoot":"","sources":["../../../src/utils/tests/subscription-retention.utils.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/main",
3
- "version": "20.1.0",
3
+ "version": "21.0.0",
4
4
  "description": "Core package to interact with Abyss-Project",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",