@classytic/revenue 1.0.2 → 1.1.2

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 (53) hide show
  1. package/README.md +603 -486
  2. package/dist/application/services/index.d.ts +6 -0
  3. package/dist/application/services/index.js +3288 -0
  4. package/dist/application/services/index.js.map +1 -0
  5. package/dist/core/events.d.ts +455 -0
  6. package/dist/core/events.js +122 -0
  7. package/dist/core/events.js.map +1 -0
  8. package/dist/core/index.d.ts +12 -889
  9. package/dist/core/index.js +2361 -705
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/enums/index.d.ts +54 -25
  12. package/dist/enums/index.js +143 -14
  13. package/dist/enums/index.js.map +1 -1
  14. package/dist/escrow.enums-CE0VQsfe.d.ts +76 -0
  15. package/dist/{index-BnJWVXuw.d.ts → index-DxIK0UmZ.d.ts} +281 -26
  16. package/dist/index-EnfKzDbs.d.ts +806 -0
  17. package/dist/{index-ChVD3P9k.d.ts → index-cLJBLUvx.d.ts} +55 -81
  18. package/dist/index.d.ts +16 -15
  19. package/dist/index.js +2583 -2066
  20. package/dist/index.js.map +1 -1
  21. package/dist/infrastructure/plugins/index.d.ts +267 -0
  22. package/dist/infrastructure/plugins/index.js +292 -0
  23. package/dist/infrastructure/plugins/index.js.map +1 -0
  24. package/dist/money-widWVD7r.d.ts +111 -0
  25. package/dist/payment.enums-C1BiGlRa.d.ts +69 -0
  26. package/dist/plugin-Bb9HOE10.d.ts +336 -0
  27. package/dist/providers/index.d.ts +19 -6
  28. package/dist/providers/index.js +22 -3
  29. package/dist/providers/index.js.map +1 -1
  30. package/dist/reconciliation/index.d.ts +215 -0
  31. package/dist/reconciliation/index.js +140 -0
  32. package/dist/reconciliation/index.js.map +1 -0
  33. package/dist/{retry-80lBCmSe.d.ts → retry-D4hFUwVk.d.ts} +1 -41
  34. package/dist/schemas/index.d.ts +1927 -166
  35. package/dist/schemas/index.js +357 -40
  36. package/dist/schemas/index.js.map +1 -1
  37. package/dist/schemas/validation.d.ts +87 -12
  38. package/dist/schemas/validation.js +71 -17
  39. package/dist/schemas/validation.js.map +1 -1
  40. package/dist/settlement.enums-ByC1x0ye.d.ts +130 -0
  41. package/dist/settlement.schema-CpamV7ZY.d.ts +343 -0
  42. package/dist/split.enums-DG3TxQf9.d.ts +42 -0
  43. package/dist/tax-CV8A0sxl.d.ts +60 -0
  44. package/dist/utils/index.d.ts +487 -13
  45. package/dist/utils/index.js +370 -235
  46. package/dist/utils/index.js.map +1 -1
  47. package/package.json +27 -13
  48. package/dist/actions-CwG-b7fR.d.ts +0 -519
  49. package/dist/services/index.d.ts +0 -3
  50. package/dist/services/index.js +0 -1632
  51. package/dist/services/index.js.map +0 -1
  52. package/dist/split.enums-Bh24jw8p.d.ts +0 -255
  53. package/dist/split.schema-DYVP7Wu2.d.ts +0 -958
@@ -1,21 +1,34 @@
1
- export { G as GATEWAY_TYPES, n as GATEWAY_TYPE_VALUES, x as HOLD_REASON, z as HOLD_REASON_VALUES, H as HOLD_STATUS, u as HOLD_STATUS_VALUES, y as HoldReason, a0 as HoldReasonValue, Z as HoldStatus, _ as HoldStatusValue, L as LIBRARY_CATEGORIES, h as LIBRARY_CATEGORY_VALUES, f as LibraryCategories, g as LibraryCategoryValue, M as MONETIZATION_TYPES, t as MONETIZATION_TYPE_VALUES, Y as MonetizationTypeValue, s as MonetizationTypes, k as PAYMENT_GATEWAY_TYPE, m as PAYMENT_GATEWAY_TYPE_VALUES, P as PAYMENT_STATUS, j as PAYMENT_STATUS_VALUES, I as PAYOUT_METHOD, K as PAYOUT_METHOD_VALUES, p as PLAN_KEYS, r as PLAN_KEY_VALUES, l as PaymentGatewayType, U as PaymentGatewayTypeValue, i as PaymentStatus, Q as PaymentStatusValue, J as PayoutMethod, a3 as PayoutMethodValue, X as PlanKeyValue, q as PlanKeys, R as RELEASE_REASON, w as RELEASE_REASON_VALUES, v as ReleaseReason, $ as ReleaseReasonValue, D as SPLIT_STATUS, F as SPLIT_STATUS_VALUES, A as SPLIT_TYPE, C as SPLIT_TYPE_VALUES, S as SUBSCRIPTION_STATUS, o as SUBSCRIPTION_STATUS_VALUES, E as SplitStatus, a2 as SplitStatusValue, B as SplitType, a1 as SplitTypeValue, V as SubscriptionStatus, W as SubscriptionStatusValue, c as TRANSACTION_STATUS, e as TRANSACTION_STATUS_VALUES, T as TRANSACTION_TYPE, b as TRANSACTION_TYPE_VALUES, d as TransactionStatus, O as TransactionStatusValue, a as TransactionType, N as TransactionTypeValue } from '../split.enums-Bh24jw8p.js';
1
+ import { S as SplitTypeValue, a as SplitStatusValue, P as PayoutMethodValue, i as isSplitType, b as isSplitStatus, c as isPayoutMethod } from '../split.enums-DG3TxQf9.js';
2
+ export { k as PAYOUT_METHOD, m as PAYOUT_METHOD_VALUES, l as PayoutMethod, g as SPLIT_STATUS, j as SPLIT_STATUS_VALUES, d as SPLIT_TYPE, f as SPLIT_TYPE_VALUES, h as SplitStatus, e as SplitType } from '../split.enums-DG3TxQf9.js';
3
+ import { S as SubscriptionStatusValue, P as PlanKeyValue, i as isSubscriptionStatus, a as isPlanKey, H as HoldStatusValue, R as ReleaseReasonValue, b as HoldReasonValue, c as isHoldStatus, d as isReleaseReason, e as isHoldReason } from '../escrow.enums-CE0VQsfe.js';
4
+ export { s as HOLD_REASON, u as HOLD_REASON_VALUES, m as HOLD_STATUS, o as HOLD_STATUS_VALUES, t as HoldReason, n as HoldStatus, j as PLAN_KEYS, l as PLAN_KEY_VALUES, k as PlanKeys, p as RELEASE_REASON, r as RELEASE_REASON_VALUES, q as ReleaseReason, f as SUBSCRIPTION_STATUS, h as SUBSCRIPTION_STATUS_VALUES, g as SubscriptionStatus } from '../escrow.enums-CE0VQsfe.js';
5
+ import { P as PaymentStatusValue, a as PaymentGatewayTypeValue, i as isPaymentStatus, b as isPaymentGatewayType } from '../payment.enums-C1BiGlRa.js';
6
+ export { G as GATEWAY_TYPES, j as GATEWAY_TYPE_VALUES, f as PAYMENT_GATEWAY_TYPE, h as PAYMENT_GATEWAY_TYPE_VALUES, c as PAYMENT_STATUS, e as PAYMENT_STATUS_VALUES, g as PaymentGatewayType, d as PaymentStatus, k as isGatewayType } from '../payment.enums-C1BiGlRa.js';
7
+ import { T as TransactionFlowValue, a as TransactionStatusValue, L as LibraryCategoryValue, i as isLibraryCategory, b as isTransactionType, c as isTransactionStatus } from '../settlement.enums-ByC1x0ye.js';
8
+ export { o as LIBRARY_CATEGORIES, q as LIBRARY_CATEGORY_VALUES, p as LibraryCategories, S as SETTLEMENT_STATUS, u as SETTLEMENT_STATUS_VALUES, w as SETTLEMENT_TYPE, z as SETTLEMENT_TYPE_VALUES, s as SettlementStatus, t as SettlementStatusValue, x as SettlementType, y as SettlementTypeValue, d as TRANSACTION_FLOW, g as TRANSACTION_FLOW_VALUES, l as TRANSACTION_STATUS, n as TRANSACTION_STATUS_VALUES, e as TRANSACTION_TYPE, k as TRANSACTION_TYPE_VALUES, f as TransactionFlow, m as TransactionStatus, h as TransactionType, j as TransactionTypeValue, v as isSettlementStatus, A as isSettlementType, r as isTransactionFlow } from '../settlement.enums-ByC1x0ye.js';
2
9
 
3
10
  /**
4
- * @classytic/revenue - Centralized Enums
5
- * All enums for the revenue management system
11
+ * Monetization Enums
12
+ * @classytic/revenue
6
13
  *
7
- * This file serves as the single source of truth for all enum values
8
- * used across monetization and payment subsystems.
9
- *
10
- * @module @classytic/revenue/enums
14
+ * General monetization enums and constants
11
15
  */
16
+ declare const MONETIZATION_TYPES: {
17
+ readonly FREE: "free";
18
+ readonly PURCHASE: "purchase";
19
+ readonly SUBSCRIPTION: "subscription";
20
+ };
21
+ type MonetizationTypes = typeof MONETIZATION_TYPES;
22
+ type MonetizationTypeValue = MonetizationTypes[keyof MonetizationTypes];
23
+ declare const MONETIZATION_TYPE_VALUES: MonetizationTypeValue[];
24
+ declare function isMonetizationType(value: unknown): value is MonetizationTypeValue;
12
25
 
13
26
  declare const _default: {
14
27
  readonly TRANSACTION_TYPE: {
15
- readonly INCOME: "income";
16
- readonly EXPENSE: "expense";
28
+ readonly INFLOW: "inflow";
29
+ readonly OUTFLOW: "outflow";
17
30
  };
18
- readonly TRANSACTION_TYPE_VALUES: ("income" | "expense")[];
31
+ readonly TRANSACTION_TYPE_VALUES: TransactionFlowValue[];
19
32
  readonly TRANSACTION_STATUS: {
20
33
  readonly PENDING: "pending";
21
34
  readonly PAYMENT_INITIATED: "payment_initiated";
@@ -29,12 +42,15 @@ declare const _default: {
29
42
  readonly REFUNDED: "refunded";
30
43
  readonly PARTIALLY_REFUNDED: "partially_refunded";
31
44
  };
32
- readonly TRANSACTION_STATUS_VALUES: ("pending" | "payment_initiated" | "processing" | "requires_action" | "verified" | "completed" | "failed" | "cancelled" | "expired" | "refunded" | "partially_refunded")[];
45
+ readonly TRANSACTION_STATUS_VALUES: TransactionStatusValue[];
33
46
  readonly LIBRARY_CATEGORIES: {
34
47
  readonly SUBSCRIPTION: "subscription";
35
48
  readonly PURCHASE: "purchase";
36
49
  };
37
- readonly LIBRARY_CATEGORY_VALUES: ("subscription" | "purchase")[];
50
+ readonly LIBRARY_CATEGORY_VALUES: LibraryCategoryValue[];
51
+ readonly isLibraryCategory: typeof isLibraryCategory;
52
+ readonly isTransactionType: typeof isTransactionType;
53
+ readonly isTransactionStatus: typeof isTransactionStatus;
38
54
  readonly PAYMENT_STATUS: {
39
55
  readonly PENDING: "pending";
40
56
  readonly VERIFIED: "verified";
@@ -42,40 +58,47 @@ declare const _default: {
42
58
  readonly REFUNDED: "refunded";
43
59
  readonly CANCELLED: "cancelled";
44
60
  };
45
- readonly PAYMENT_STATUS_VALUES: ("pending" | "verified" | "failed" | "cancelled" | "refunded")[];
61
+ readonly PAYMENT_STATUS_VALUES: PaymentStatusValue[];
46
62
  readonly PAYMENT_GATEWAY_TYPE: {
47
63
  readonly MANUAL: "manual";
48
64
  readonly STRIPE: "stripe";
49
65
  readonly SSLCOMMERZ: "sslcommerz";
50
66
  };
51
- readonly PAYMENT_GATEWAY_TYPE_VALUES: ("manual" | "stripe" | "sslcommerz")[];
67
+ readonly PAYMENT_GATEWAY_TYPE_VALUES: PaymentGatewayTypeValue[];
52
68
  readonly GATEWAY_TYPES: {
53
69
  readonly MANUAL: "manual";
54
70
  readonly STRIPE: "stripe";
55
71
  readonly SSLCOMMERZ: "sslcommerz";
56
72
  };
57
- readonly GATEWAY_TYPE_VALUES: ("manual" | "stripe" | "sslcommerz")[];
73
+ readonly GATEWAY_TYPE_VALUES: PaymentGatewayTypeValue[];
74
+ readonly isPaymentStatus: typeof isPaymentStatus;
75
+ readonly isPaymentGatewayType: typeof isPaymentGatewayType;
76
+ readonly isGatewayType: typeof isPaymentGatewayType;
58
77
  readonly SUBSCRIPTION_STATUS: {
59
78
  readonly ACTIVE: "active";
60
79
  readonly PAUSED: "paused";
61
80
  readonly CANCELLED: "cancelled";
62
81
  readonly EXPIRED: "expired";
63
82
  readonly PENDING: "pending";
83
+ readonly PENDING_RENEWAL: "pending_renewal";
64
84
  readonly INACTIVE: "inactive";
65
85
  };
66
- readonly SUBSCRIPTION_STATUS_VALUES: ("pending" | "cancelled" | "expired" | "active" | "paused" | "inactive")[];
86
+ readonly SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
67
87
  readonly PLAN_KEYS: {
68
88
  readonly MONTHLY: "monthly";
69
89
  readonly QUARTERLY: "quarterly";
70
90
  readonly YEARLY: "yearly";
71
91
  };
72
- readonly PLAN_KEY_VALUES: ("monthly" | "quarterly" | "yearly")[];
92
+ readonly PLAN_KEY_VALUES: PlanKeyValue[];
93
+ readonly isSubscriptionStatus: typeof isSubscriptionStatus;
94
+ readonly isPlanKey: typeof isPlanKey;
73
95
  readonly MONETIZATION_TYPES: {
74
96
  readonly FREE: "free";
75
97
  readonly PURCHASE: "purchase";
76
98
  readonly SUBSCRIPTION: "subscription";
77
99
  };
78
- readonly MONETIZATION_TYPE_VALUES: ("subscription" | "purchase" | "free")[];
100
+ readonly MONETIZATION_TYPE_VALUES: MonetizationTypeValue[];
101
+ readonly isMonetizationType: typeof isMonetizationType;
79
102
  readonly HOLD_STATUS: {
80
103
  readonly PENDING: "pending";
81
104
  readonly HELD: "held";
@@ -84,14 +107,14 @@ declare const _default: {
84
107
  readonly EXPIRED: "expired";
85
108
  readonly PARTIALLY_RELEASED: "partially_released";
86
109
  };
87
- readonly HOLD_STATUS_VALUES: ("pending" | "cancelled" | "expired" | "held" | "released" | "partially_released")[];
110
+ readonly HOLD_STATUS_VALUES: HoldStatusValue[];
88
111
  readonly RELEASE_REASON: {
89
112
  readonly PAYMENT_VERIFIED: "payment_verified";
90
113
  readonly MANUAL_RELEASE: "manual_release";
91
114
  readonly AUTO_RELEASE: "auto_release";
92
115
  readonly DISPUTE_RESOLVED: "dispute_resolved";
93
116
  };
94
- readonly RELEASE_REASON_VALUES: ("payment_verified" | "manual_release" | "auto_release" | "dispute_resolved")[];
117
+ readonly RELEASE_REASON_VALUES: ReleaseReasonValue[];
95
118
  readonly HOLD_REASON: {
96
119
  readonly PAYMENT_VERIFICATION: "payment_verification";
97
120
  readonly FRAUD_CHECK: "fraud_check";
@@ -99,7 +122,10 @@ declare const _default: {
99
122
  readonly DISPUTE: "dispute";
100
123
  readonly COMPLIANCE: "compliance";
101
124
  };
102
- readonly HOLD_REASON_VALUES: ("payment_verification" | "fraud_check" | "manual_review" | "dispute" | "compliance")[];
125
+ readonly HOLD_REASON_VALUES: HoldReasonValue[];
126
+ readonly isHoldStatus: typeof isHoldStatus;
127
+ readonly isReleaseReason: typeof isReleaseReason;
128
+ readonly isHoldReason: typeof isHoldReason;
103
129
  readonly SPLIT_TYPE: {
104
130
  readonly PLATFORM_COMMISSION: "platform_commission";
105
131
  readonly AFFILIATE_COMMISSION: "affiliate_commission";
@@ -107,7 +133,7 @@ declare const _default: {
107
133
  readonly PARTNER_COMMISSION: "partner_commission";
108
134
  readonly CUSTOM: "custom";
109
135
  };
110
- readonly SPLIT_TYPE_VALUES: ("platform_commission" | "affiliate_commission" | "referral_commission" | "partner_commission" | "custom")[];
136
+ readonly SPLIT_TYPE_VALUES: SplitTypeValue[];
111
137
  readonly SPLIT_STATUS: {
112
138
  readonly PENDING: "pending";
113
139
  readonly DUE: "due";
@@ -115,7 +141,7 @@ declare const _default: {
115
141
  readonly WAIVED: "waived";
116
142
  readonly CANCELLED: "cancelled";
117
143
  };
118
- readonly SPLIT_STATUS_VALUES: ("pending" | "cancelled" | "due" | "paid" | "waived")[];
144
+ readonly SPLIT_STATUS_VALUES: SplitStatusValue[];
119
145
  readonly PAYOUT_METHOD: {
120
146
  readonly BANK_TRANSFER: "bank_transfer";
121
147
  readonly MOBILE_WALLET: "mobile_wallet";
@@ -124,7 +150,10 @@ declare const _default: {
124
150
  readonly CHECK: "check";
125
151
  readonly MANUAL: "manual";
126
152
  };
127
- readonly PAYOUT_METHOD_VALUES: ("manual" | "bank_transfer" | "mobile_wallet" | "platform_balance" | "crypto" | "check")[];
153
+ readonly PAYOUT_METHOD_VALUES: PayoutMethodValue[];
154
+ readonly isSplitType: typeof isSplitType;
155
+ readonly isSplitStatus: typeof isSplitStatus;
156
+ readonly isPayoutMethod: typeof isPayoutMethod;
128
157
  };
129
158
 
130
- export { _default as default };
159
+ export { HoldReasonValue, HoldStatusValue, LibraryCategoryValue, MONETIZATION_TYPES, MONETIZATION_TYPE_VALUES, type MonetizationTypeValue, type MonetizationTypes, PaymentGatewayTypeValue, PaymentStatusValue, PayoutMethodValue, PlanKeyValue, ReleaseReasonValue, SplitStatusValue, SplitTypeValue, SubscriptionStatusValue, TransactionFlowValue, TransactionStatusValue, _default as default, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionStatus, isTransactionType };
@@ -1,11 +1,15 @@
1
1
  // @classytic/revenue - Enterprise Revenue Management System
2
2
 
3
3
  // src/enums/transaction.enums.ts
4
- var TRANSACTION_TYPE = {
5
- INCOME: "income",
6
- EXPENSE: "expense"
4
+ var TRANSACTION_FLOW = {
5
+ INFLOW: "inflow",
6
+ OUTFLOW: "outflow"
7
7
  };
8
- var TRANSACTION_TYPE_VALUES = Object.values(TRANSACTION_TYPE);
8
+ var TRANSACTION_TYPE = TRANSACTION_FLOW;
9
+ var TRANSACTION_FLOW_VALUES = Object.values(
10
+ TRANSACTION_FLOW
11
+ );
12
+ var TRANSACTION_TYPE_VALUES = TRANSACTION_FLOW_VALUES;
9
13
  var TRANSACTION_STATUS = {
10
14
  PENDING: "pending",
11
15
  PAYMENT_INITIATED: "payment_initiated",
@@ -19,12 +23,33 @@ var TRANSACTION_STATUS = {
19
23
  REFUNDED: "refunded",
20
24
  PARTIALLY_REFUNDED: "partially_refunded"
21
25
  };
22
- var TRANSACTION_STATUS_VALUES = Object.values(TRANSACTION_STATUS);
26
+ var TRANSACTION_STATUS_VALUES = Object.values(
27
+ TRANSACTION_STATUS
28
+ );
23
29
  var LIBRARY_CATEGORIES = {
24
30
  SUBSCRIPTION: "subscription",
25
31
  PURCHASE: "purchase"
26
32
  };
27
- var LIBRARY_CATEGORY_VALUES = Object.values(LIBRARY_CATEGORIES);
33
+ var LIBRARY_CATEGORY_VALUES = Object.values(
34
+ LIBRARY_CATEGORIES
35
+ );
36
+ var transactionFlowSet = new Set(TRANSACTION_FLOW_VALUES);
37
+ var transactionStatusSet = new Set(
38
+ TRANSACTION_STATUS_VALUES
39
+ );
40
+ var libraryCategorySet = new Set(LIBRARY_CATEGORY_VALUES);
41
+ function isLibraryCategory(value) {
42
+ return typeof value === "string" && libraryCategorySet.has(value);
43
+ }
44
+ function isTransactionFlow(value) {
45
+ return typeof value === "string" && transactionFlowSet.has(value);
46
+ }
47
+ function isTransactionType(value) {
48
+ return isTransactionFlow(value);
49
+ }
50
+ function isTransactionStatus(value) {
51
+ return typeof value === "string" && transactionStatusSet.has(value);
52
+ }
28
53
 
29
54
  // src/enums/payment.enums.ts
30
55
  var PAYMENT_STATUS = {
@@ -34,15 +59,30 @@ var PAYMENT_STATUS = {
34
59
  REFUNDED: "refunded",
35
60
  CANCELLED: "cancelled"
36
61
  };
37
- var PAYMENT_STATUS_VALUES = Object.values(PAYMENT_STATUS);
62
+ var PAYMENT_STATUS_VALUES = Object.values(
63
+ PAYMENT_STATUS
64
+ );
38
65
  var PAYMENT_GATEWAY_TYPE = {
39
66
  MANUAL: "manual",
40
67
  STRIPE: "stripe",
41
68
  SSLCOMMERZ: "sslcommerz"
42
69
  };
43
- var PAYMENT_GATEWAY_TYPE_VALUES = Object.values(PAYMENT_GATEWAY_TYPE);
70
+ var PAYMENT_GATEWAY_TYPE_VALUES = Object.values(
71
+ PAYMENT_GATEWAY_TYPE
72
+ );
44
73
  var GATEWAY_TYPES = PAYMENT_GATEWAY_TYPE;
45
74
  var GATEWAY_TYPE_VALUES = PAYMENT_GATEWAY_TYPE_VALUES;
75
+ var paymentStatusSet = new Set(PAYMENT_STATUS_VALUES);
76
+ var paymentGatewayTypeSet = new Set(
77
+ PAYMENT_GATEWAY_TYPE_VALUES
78
+ );
79
+ function isPaymentStatus(value) {
80
+ return typeof value === "string" && paymentStatusSet.has(value);
81
+ }
82
+ function isPaymentGatewayType(value) {
83
+ return typeof value === "string" && paymentGatewayTypeSet.has(value);
84
+ }
85
+ var isGatewayType = isPaymentGatewayType;
46
86
 
47
87
  // src/enums/subscription.enums.ts
48
88
  var SUBSCRIPTION_STATUS = {
@@ -51,15 +91,28 @@ var SUBSCRIPTION_STATUS = {
51
91
  CANCELLED: "cancelled",
52
92
  EXPIRED: "expired",
53
93
  PENDING: "pending",
94
+ PENDING_RENEWAL: "pending_renewal",
54
95
  INACTIVE: "inactive"
55
96
  };
56
- var SUBSCRIPTION_STATUS_VALUES = Object.values(SUBSCRIPTION_STATUS);
97
+ var SUBSCRIPTION_STATUS_VALUES = Object.values(
98
+ SUBSCRIPTION_STATUS
99
+ );
57
100
  var PLAN_KEYS = {
58
101
  MONTHLY: "monthly",
59
102
  QUARTERLY: "quarterly",
60
103
  YEARLY: "yearly"
61
104
  };
62
105
  var PLAN_KEY_VALUES = Object.values(PLAN_KEYS);
106
+ var subscriptionStatusSet = new Set(
107
+ SUBSCRIPTION_STATUS_VALUES
108
+ );
109
+ var planKeySet = new Set(PLAN_KEY_VALUES);
110
+ function isSubscriptionStatus(value) {
111
+ return typeof value === "string" && subscriptionStatusSet.has(value);
112
+ }
113
+ function isPlanKey(value) {
114
+ return typeof value === "string" && planKeySet.has(value);
115
+ }
63
116
 
64
117
  // src/enums/monetization.enums.ts
65
118
  var MONETIZATION_TYPES = {
@@ -67,7 +120,13 @@ var MONETIZATION_TYPES = {
67
120
  PURCHASE: "purchase",
68
121
  SUBSCRIPTION: "subscription"
69
122
  };
70
- var MONETIZATION_TYPE_VALUES = Object.values(MONETIZATION_TYPES);
123
+ var MONETIZATION_TYPE_VALUES = Object.values(
124
+ MONETIZATION_TYPES
125
+ );
126
+ var monetizationTypeSet = new Set(MONETIZATION_TYPE_VALUES);
127
+ function isMonetizationType(value) {
128
+ return typeof value === "string" && monetizationTypeSet.has(value);
129
+ }
71
130
 
72
131
  // src/enums/escrow.enums.ts
73
132
  var HOLD_STATUS = {
@@ -85,7 +144,9 @@ var RELEASE_REASON = {
85
144
  AUTO_RELEASE: "auto_release",
86
145
  DISPUTE_RESOLVED: "dispute_resolved"
87
146
  };
88
- var RELEASE_REASON_VALUES = Object.values(RELEASE_REASON);
147
+ var RELEASE_REASON_VALUES = Object.values(
148
+ RELEASE_REASON
149
+ );
89
150
  var HOLD_REASON = {
90
151
  PAYMENT_VERIFICATION: "payment_verification",
91
152
  FRAUD_CHECK: "fraud_check",
@@ -94,6 +155,18 @@ var HOLD_REASON = {
94
155
  COMPLIANCE: "compliance"
95
156
  };
96
157
  var HOLD_REASON_VALUES = Object.values(HOLD_REASON);
158
+ var holdStatusSet = new Set(HOLD_STATUS_VALUES);
159
+ var releaseReasonSet = new Set(RELEASE_REASON_VALUES);
160
+ var holdReasonSet = new Set(HOLD_REASON_VALUES);
161
+ function isHoldStatus(value) {
162
+ return typeof value === "string" && holdStatusSet.has(value);
163
+ }
164
+ function isReleaseReason(value) {
165
+ return typeof value === "string" && releaseReasonSet.has(value);
166
+ }
167
+ function isHoldReason(value) {
168
+ return typeof value === "string" && holdReasonSet.has(value);
169
+ }
97
170
 
98
171
  // src/enums/split.enums.ts
99
172
  var SPLIT_TYPE = {
@@ -111,7 +184,9 @@ var SPLIT_STATUS = {
111
184
  WAIVED: "waived",
112
185
  CANCELLED: "cancelled"
113
186
  };
114
- var SPLIT_STATUS_VALUES = Object.values(SPLIT_STATUS);
187
+ var SPLIT_STATUS_VALUES = Object.values(
188
+ SPLIT_STATUS
189
+ );
115
190
  var PAYOUT_METHOD = {
116
191
  BANK_TRANSFER: "bank_transfer",
117
192
  MOBILE_WALLET: "mobile_wallet",
@@ -121,6 +196,45 @@ var PAYOUT_METHOD = {
121
196
  MANUAL: "manual"
122
197
  };
123
198
  var PAYOUT_METHOD_VALUES = Object.values(PAYOUT_METHOD);
199
+ var splitTypeSet = new Set(SPLIT_TYPE_VALUES);
200
+ var splitStatusSet = new Set(SPLIT_STATUS_VALUES);
201
+ var payoutMethodSet = new Set(PAYOUT_METHOD_VALUES);
202
+ function isSplitType(value) {
203
+ return typeof value === "string" && splitTypeSet.has(value);
204
+ }
205
+ function isSplitStatus(value) {
206
+ return typeof value === "string" && splitStatusSet.has(value);
207
+ }
208
+ function isPayoutMethod(value) {
209
+ return typeof value === "string" && payoutMethodSet.has(value);
210
+ }
211
+
212
+ // src/enums/settlement.enums.ts
213
+ var SETTLEMENT_STATUS = {
214
+ PENDING: "pending",
215
+ PROCESSING: "processing",
216
+ COMPLETED: "completed",
217
+ FAILED: "failed",
218
+ CANCELLED: "cancelled"
219
+ };
220
+ var SETTLEMENT_STATUS_VALUES = Object.values(SETTLEMENT_STATUS);
221
+ function isSettlementStatus(value) {
222
+ return typeof value === "string" && SETTLEMENT_STATUS_VALUES.includes(value);
223
+ }
224
+ var SETTLEMENT_TYPE = {
225
+ SPLIT_PAYOUT: "split_payout",
226
+ // Payout to split recipient (vendor/affiliate)
227
+ PLATFORM_WITHDRAWAL: "platform_withdrawal",
228
+ // Platform withdraws commission
229
+ MANUAL_PAYOUT: "manual_payout",
230
+ // Manual vendor payout
231
+ ESCROW_RELEASE: "escrow_release"
232
+ // Release from escrow hold
233
+ };
234
+ var SETTLEMENT_TYPE_VALUES = Object.values(SETTLEMENT_TYPE);
235
+ function isSettlementType(value) {
236
+ return typeof value === "string" && SETTLEMENT_TYPE_VALUES.includes(value);
237
+ }
124
238
 
125
239
  // src/enums/index.ts
126
240
  var enums_default = {
@@ -131,6 +245,9 @@ var enums_default = {
131
245
  TRANSACTION_STATUS_VALUES,
132
246
  LIBRARY_CATEGORIES,
133
247
  LIBRARY_CATEGORY_VALUES,
248
+ isLibraryCategory,
249
+ isTransactionType,
250
+ isTransactionStatus,
134
251
  // Payment enums
135
252
  PAYMENT_STATUS,
136
253
  PAYMENT_STATUS_VALUES,
@@ -138,14 +255,20 @@ var enums_default = {
138
255
  PAYMENT_GATEWAY_TYPE_VALUES,
139
256
  GATEWAY_TYPES,
140
257
  GATEWAY_TYPE_VALUES,
258
+ isPaymentStatus,
259
+ isPaymentGatewayType,
260
+ isGatewayType,
141
261
  // Subscription enums
142
262
  SUBSCRIPTION_STATUS,
143
263
  SUBSCRIPTION_STATUS_VALUES,
144
264
  PLAN_KEYS,
145
265
  PLAN_KEY_VALUES,
266
+ isSubscriptionStatus,
267
+ isPlanKey,
146
268
  // Monetization enums
147
269
  MONETIZATION_TYPES,
148
270
  MONETIZATION_TYPE_VALUES,
271
+ isMonetizationType,
149
272
  // Escrow enums
150
273
  HOLD_STATUS,
151
274
  HOLD_STATUS_VALUES,
@@ -153,15 +276,21 @@ var enums_default = {
153
276
  RELEASE_REASON_VALUES,
154
277
  HOLD_REASON,
155
278
  HOLD_REASON_VALUES,
279
+ isHoldStatus,
280
+ isReleaseReason,
281
+ isHoldReason,
156
282
  // Split enums
157
283
  SPLIT_TYPE,
158
284
  SPLIT_TYPE_VALUES,
159
285
  SPLIT_STATUS,
160
286
  SPLIT_STATUS_VALUES,
161
287
  PAYOUT_METHOD,
162
- PAYOUT_METHOD_VALUES
288
+ PAYOUT_METHOD_VALUES,
289
+ isSplitType,
290
+ isSplitStatus,
291
+ isPayoutMethod
163
292
  };
164
293
 
165
- export { GATEWAY_TYPES, GATEWAY_TYPE_VALUES, HOLD_REASON, HOLD_REASON_VALUES, HOLD_STATUS, HOLD_STATUS_VALUES, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_VALUES, MONETIZATION_TYPES, MONETIZATION_TYPE_VALUES, PAYMENT_GATEWAY_TYPE, PAYMENT_GATEWAY_TYPE_VALUES, PAYMENT_STATUS, PAYMENT_STATUS_VALUES, PAYOUT_METHOD, PAYOUT_METHOD_VALUES, PLAN_KEYS, PLAN_KEY_VALUES, RELEASE_REASON, RELEASE_REASON_VALUES, SPLIT_STATUS, SPLIT_STATUS_VALUES, SPLIT_TYPE, SPLIT_TYPE_VALUES, SUBSCRIPTION_STATUS, SUBSCRIPTION_STATUS_VALUES, TRANSACTION_STATUS, TRANSACTION_STATUS_VALUES, TRANSACTION_TYPE, TRANSACTION_TYPE_VALUES, enums_default as default };
294
+ export { GATEWAY_TYPES, GATEWAY_TYPE_VALUES, HOLD_REASON, HOLD_REASON_VALUES, HOLD_STATUS, HOLD_STATUS_VALUES, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_VALUES, MONETIZATION_TYPES, MONETIZATION_TYPE_VALUES, PAYMENT_GATEWAY_TYPE, PAYMENT_GATEWAY_TYPE_VALUES, PAYMENT_STATUS, PAYMENT_STATUS_VALUES, PAYOUT_METHOD, PAYOUT_METHOD_VALUES, PLAN_KEYS, PLAN_KEY_VALUES, RELEASE_REASON, RELEASE_REASON_VALUES, SETTLEMENT_STATUS, SETTLEMENT_STATUS_VALUES, SETTLEMENT_TYPE, SETTLEMENT_TYPE_VALUES, SPLIT_STATUS, SPLIT_STATUS_VALUES, SPLIT_TYPE, SPLIT_TYPE_VALUES, SUBSCRIPTION_STATUS, SUBSCRIPTION_STATUS_VALUES, TRANSACTION_FLOW, TRANSACTION_FLOW_VALUES, TRANSACTION_STATUS, TRANSACTION_STATUS_VALUES, TRANSACTION_TYPE, TRANSACTION_TYPE_VALUES, enums_default as default, isGatewayType, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSettlementStatus, isSettlementType, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionFlow, isTransactionStatus, isTransactionType };
166
295
  //# sourceMappingURL=index.js.map
167
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/enums/transaction.enums.ts","../../src/enums/payment.enums.ts","../../src/enums/subscription.enums.ts","../../src/enums/monetization.enums.ts","../../src/enums/escrow.enums.ts","../../src/enums/split.enums.ts","../../src/enums/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Transaction Enums\n * @classytic/revenue\n *\n * Library-managed transaction enums only.\n * Users should define their own categories and merge with these.\n */\n\n// ============ TRANSACTION TYPE ============\n/**\n * Transaction Type - Income vs Expense\n *\n * INCOME: Money coming in (payments, subscriptions, purchases)\n * EXPENSE: Money going out (refunds, payouts)\n *\n * Users can map these in their config via transactionTypeMapping\n */\nexport const TRANSACTION_TYPE = {\n INCOME: 'income',\n EXPENSE: 'expense',\n} as const;\n\nexport type TransactionType = typeof TRANSACTION_TYPE;\nexport type TransactionTypeValue = TransactionType[keyof TransactionType];\nexport const TRANSACTION_TYPE_VALUES = Object.values(TRANSACTION_TYPE);\n\n// ============ TRANSACTION STATUS ============\n/**\n * Transaction Status - Library-managed states\n */\nexport const TRANSACTION_STATUS = {\n PENDING: 'pending',\n PAYMENT_INITIATED: 'payment_initiated',\n PROCESSING: 'processing',\n REQUIRES_ACTION: 'requires_action',\n VERIFIED: 'verified',\n COMPLETED: 'completed',\n FAILED: 'failed',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n REFUNDED: 'refunded',\n PARTIALLY_REFUNDED: 'partially_refunded',\n} as const;\n\nexport type TransactionStatus = typeof TRANSACTION_STATUS;\nexport type TransactionStatusValue = TransactionStatus[keyof TransactionStatus];\nexport const TRANSACTION_STATUS_VALUES = Object.values(TRANSACTION_STATUS);\n\n// ============ LIBRARY CATEGORIES ============\n/**\n * Categories managed by this library\n *\n * SUBSCRIPTION: Recurring subscription payments\n * PURCHASE: One-time purchases\n *\n * Users should spread these into their own category enums:\n *\n * @example\n * import { LIBRARY_CATEGORIES } from '@classytic/revenue';\n *\n * export const MY_CATEGORIES = {\n * ...LIBRARY_CATEGORIES,\n * SALARY: 'salary',\n * RENT: 'rent',\n * EQUIPMENT: 'equipment',\n * } as const;\n */\nexport const LIBRARY_CATEGORIES = {\n SUBSCRIPTION: 'subscription',\n PURCHASE: 'purchase',\n} as const;\n\nexport type LibraryCategories = typeof LIBRARY_CATEGORIES;\nexport type LibraryCategoryValue = LibraryCategories[keyof LibraryCategories];\nexport const LIBRARY_CATEGORY_VALUES = Object.values(LIBRARY_CATEGORIES);\n\n","/**\n * Payment Enums\n * @classytic/revenue\n *\n * Library-managed payment enums only.\n * Users define their own payment methods in their schema.\n */\n\n// ============ PAYMENT STATUS ============\n/**\n * Payment Status - Library-managed states\n */\nexport const PAYMENT_STATUS = {\n PENDING: 'pending',\n VERIFIED: 'verified',\n FAILED: 'failed',\n REFUNDED: 'refunded',\n CANCELLED: 'cancelled',\n} as const;\n\nexport type PaymentStatus = typeof PAYMENT_STATUS;\nexport type PaymentStatusValue = PaymentStatus[keyof PaymentStatus];\nexport const PAYMENT_STATUS_VALUES = Object.values(PAYMENT_STATUS);\n\n// ============ PAYMENT GATEWAY TYPES ============\n/**\n * Common gateway type constants for convenience\n *\n * ⚠️ IMPORTANT: These are NOT restrictions - just common reference values\n *\n * You can register ANY custom gateway provider by passing it to createRevenue():\n *\n * @example\n * ```typescript\n * const revenue = createRevenue({\n * providers: {\n * manual: new ManualProvider(),\n * bkash: new BkashProvider(), // ✅ Custom gateway\n * nagad: new NagadProvider(), // ✅ Custom gateway\n * stripe: new StripeProvider(), // ✅ Custom gateway\n * paypal: new PaypalProvider(), // ✅ Any gateway you want\n * }\n * });\n *\n * // Use by name\n * await revenue.monetization.create({ gateway: 'bkash', ... });\n * ```\n *\n * Reference values:\n * - MANUAL: Built-in manual provider (@classytic/revenue-manual)\n * - STRIPE: Stripe provider (build with @classytic/revenue-stripe)\n * - SSLCOMMERZ: SSLCommerz provider (build with @classytic/revenue-sslcommerz)\n *\n * Add your own: bkash, nagad, rocket, paypal, razorpay, flutterwave, etc.\n */\nexport const PAYMENT_GATEWAY_TYPE = {\n MANUAL: 'manual',\n STRIPE: 'stripe',\n SSLCOMMERZ: 'sslcommerz',\n} as const;\n\nexport type PaymentGatewayType = typeof PAYMENT_GATEWAY_TYPE;\nexport type PaymentGatewayTypeValue = PaymentGatewayType[keyof PaymentGatewayType];\nexport const PAYMENT_GATEWAY_TYPE_VALUES = Object.values(PAYMENT_GATEWAY_TYPE);\n\n// Backward compatibility alias\nexport const GATEWAY_TYPES = PAYMENT_GATEWAY_TYPE;\nexport const GATEWAY_TYPE_VALUES = PAYMENT_GATEWAY_TYPE_VALUES;\n\n","/**\n * Subscription Enums\n * @classytic/revenue\n *\n * All subscription-related enums and constants\n */\n\n// ============ SUBSCRIPTION STATUS ============\n/**\n * Subscription Status\n */\nexport const SUBSCRIPTION_STATUS = {\n ACTIVE: 'active',\n PAUSED: 'paused',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n PENDING: 'pending',\n INACTIVE: 'inactive',\n} as const;\n\nexport type SubscriptionStatus = typeof SUBSCRIPTION_STATUS;\nexport type SubscriptionStatusValue = SubscriptionStatus[keyof SubscriptionStatus];\nexport const SUBSCRIPTION_STATUS_VALUES = Object.values(SUBSCRIPTION_STATUS);\n\n// ============ PLAN KEYS ============\n/**\n * Supported plan intervals\n */\nexport const PLAN_KEYS = {\n MONTHLY: 'monthly',\n QUARTERLY: 'quarterly',\n YEARLY: 'yearly',\n} as const;\n\nexport type PlanKeys = typeof PLAN_KEYS;\nexport type PlanKeyValue = PlanKeys[keyof PlanKeys];\nexport const PLAN_KEY_VALUES = Object.values(PLAN_KEYS);\n\n","/**\n * Monetization Enums\n * @classytic/revenue\n *\n * General monetization enums and constants\n */\n\n// ============ MONETIZATION TYPES ============\nexport const MONETIZATION_TYPES = {\n FREE: 'free',\n PURCHASE: 'purchase',\n SUBSCRIPTION: 'subscription',\n} as const;\n\nexport type MonetizationTypes = typeof MONETIZATION_TYPES;\nexport type MonetizationTypeValue = MonetizationTypes[keyof MonetizationTypes];\nexport const MONETIZATION_TYPE_VALUES = Object.values(MONETIZATION_TYPES);\n\n","/**\n * Escrow/Hold Enums\n * @classytic/revenue\n *\n * Enums for platform-as-intermediary payment flow\n */\n\nexport const HOLD_STATUS = {\n PENDING: 'pending',\n HELD: 'held',\n RELEASED: 'released',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n PARTIALLY_RELEASED: 'partially_released',\n} as const;\n\nexport type HoldStatus = typeof HOLD_STATUS;\nexport type HoldStatusValue = HoldStatus[keyof HoldStatus];\nexport const HOLD_STATUS_VALUES = Object.values(HOLD_STATUS);\n\nexport const RELEASE_REASON = {\n PAYMENT_VERIFIED: 'payment_verified',\n MANUAL_RELEASE: 'manual_release',\n AUTO_RELEASE: 'auto_release',\n DISPUTE_RESOLVED: 'dispute_resolved',\n} as const;\n\nexport type ReleaseReason = typeof RELEASE_REASON;\nexport type ReleaseReasonValue = ReleaseReason[keyof ReleaseReason];\nexport const RELEASE_REASON_VALUES = Object.values(RELEASE_REASON);\n\nexport const HOLD_REASON = {\n PAYMENT_VERIFICATION: 'payment_verification',\n FRAUD_CHECK: 'fraud_check',\n MANUAL_REVIEW: 'manual_review',\n DISPUTE: 'dispute',\n COMPLIANCE: 'compliance',\n} as const;\n\nexport type HoldReason = typeof HOLD_REASON;\nexport type HoldReasonValue = HoldReason[keyof HoldReason];\nexport const HOLD_REASON_VALUES = Object.values(HOLD_REASON);\n\n","/**\n * Split Payment Enums\n * @classytic/revenue\n *\n * Enums for multi-party commission splits\n */\n\nexport const SPLIT_TYPE = {\n PLATFORM_COMMISSION: 'platform_commission',\n AFFILIATE_COMMISSION: 'affiliate_commission',\n REFERRAL_COMMISSION: 'referral_commission',\n PARTNER_COMMISSION: 'partner_commission',\n CUSTOM: 'custom',\n} as const;\n\nexport type SplitType = typeof SPLIT_TYPE;\nexport type SplitTypeValue = SplitType[keyof SplitType];\nexport const SPLIT_TYPE_VALUES = Object.values(SPLIT_TYPE);\n\nexport const SPLIT_STATUS = {\n PENDING: 'pending',\n DUE: 'due',\n PAID: 'paid',\n WAIVED: 'waived',\n CANCELLED: 'cancelled',\n} as const;\n\nexport type SplitStatus = typeof SPLIT_STATUS;\nexport type SplitStatusValue = SplitStatus[keyof SplitStatus];\nexport const SPLIT_STATUS_VALUES = Object.values(SPLIT_STATUS);\n\nexport const PAYOUT_METHOD = {\n BANK_TRANSFER: 'bank_transfer',\n MOBILE_WALLET: 'mobile_wallet',\n PLATFORM_BALANCE: 'platform_balance',\n CRYPTO: 'crypto',\n CHECK: 'check',\n MANUAL: 'manual',\n} as const;\n\nexport type PayoutMethod = typeof PAYOUT_METHOD;\nexport type PayoutMethodValue = PayoutMethod[keyof PayoutMethod];\nexport const PAYOUT_METHOD_VALUES = Object.values(PAYOUT_METHOD);\n\n","/**\n * @classytic/revenue - Centralized Enums\n * All enums for the revenue management system\n *\n * This file serves as the single source of truth for all enum values\n * used across monetization and payment subsystems.\n *\n * @module @classytic/revenue/enums\n */\n\n// Re-export all enums\nexport * from './transaction.enums.js';\nexport * from './payment.enums.js';\nexport * from './subscription.enums.js';\nexport * from './monetization.enums.js';\nexport * from './escrow.enums.js';\nexport * from './split.enums.js';\n\n// Import for default export\nimport {\n TRANSACTION_TYPE,\n TRANSACTION_TYPE_VALUES,\n TRANSACTION_STATUS,\n TRANSACTION_STATUS_VALUES,\n LIBRARY_CATEGORIES,\n LIBRARY_CATEGORY_VALUES,\n} from './transaction.enums.js';\n\nimport {\n PAYMENT_STATUS,\n PAYMENT_STATUS_VALUES,\n PAYMENT_GATEWAY_TYPE,\n PAYMENT_GATEWAY_TYPE_VALUES,\n GATEWAY_TYPES,\n GATEWAY_TYPE_VALUES,\n} from './payment.enums.js';\n\nimport {\n SUBSCRIPTION_STATUS,\n SUBSCRIPTION_STATUS_VALUES,\n PLAN_KEYS,\n PLAN_KEY_VALUES,\n} from './subscription.enums.js';\n\nimport {\n MONETIZATION_TYPES,\n MONETIZATION_TYPE_VALUES,\n} from './monetization.enums.js';\n\nimport {\n HOLD_STATUS,\n HOLD_STATUS_VALUES,\n RELEASE_REASON,\n RELEASE_REASON_VALUES,\n HOLD_REASON,\n HOLD_REASON_VALUES,\n} from './escrow.enums.js';\n\nimport {\n SPLIT_TYPE,\n SPLIT_TYPE_VALUES,\n SPLIT_STATUS,\n SPLIT_STATUS_VALUES,\n PAYOUT_METHOD,\n PAYOUT_METHOD_VALUES,\n} from './split.enums.js';\n\nexport default {\n // Transaction enums\n TRANSACTION_TYPE,\n TRANSACTION_TYPE_VALUES,\n TRANSACTION_STATUS,\n TRANSACTION_STATUS_VALUES,\n LIBRARY_CATEGORIES,\n LIBRARY_CATEGORY_VALUES,\n\n // Payment enums\n PAYMENT_STATUS,\n PAYMENT_STATUS_VALUES,\n PAYMENT_GATEWAY_TYPE,\n PAYMENT_GATEWAY_TYPE_VALUES,\n GATEWAY_TYPES,\n GATEWAY_TYPE_VALUES,\n\n // Subscription enums\n SUBSCRIPTION_STATUS,\n SUBSCRIPTION_STATUS_VALUES,\n PLAN_KEYS,\n PLAN_KEY_VALUES,\n\n // Monetization enums\n MONETIZATION_TYPES,\n MONETIZATION_TYPE_VALUES,\n\n // Escrow enums\n HOLD_STATUS,\n HOLD_STATUS_VALUES,\n RELEASE_REASON,\n RELEASE_REASON_VALUES,\n HOLD_REASON,\n HOLD_REASON_VALUES,\n\n // Split enums\n SPLIT_TYPE,\n SPLIT_TYPE_VALUES,\n SPLIT_STATUS,\n SPLIT_STATUS_VALUES,\n PAYOUT_METHOD,\n PAYOUT_METHOD_VALUES,\n} as const;\n\n"]}
1
+ {"version":3,"sources":["../../src/enums/transaction.enums.ts","../../src/enums/payment.enums.ts","../../src/enums/subscription.enums.ts","../../src/enums/monetization.enums.ts","../../src/enums/escrow.enums.ts","../../src/enums/split.enums.ts","../../src/enums/settlement.enums.ts","../../src/enums/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Transaction Enums\n * @classytic/revenue\n *\n * Library-managed transaction enums only.\n * Users should define their own categories and merge with these.\n */\n\n// ============ TRANSACTION FLOW ============\n/**\n * Transaction Flow - Directional money movement\n *\n * INFLOW: Money coming in (payments, subscriptions, purchases, receipts)\n * OUTFLOW: Money going out (refunds, payouts, expenses, disbursements)\n *\n * Industry-standard terminology compatible with QuickBooks, Xero, and other accounting systems.\n * Users can map categories to flow directions via transactionTypeMapping config.\n *\n * @example\n * // Revenue platform\n * { type: 'subscription', flow: 'inflow' }\n *\n * // Payroll platform\n * { type: 'salary', flow: 'outflow' }\n *\n * // Marketplace\n * { type: 'commission', flow: 'outflow' } // Paying sellers\n * { type: 'platform_fee', flow: 'inflow' } // Platform revenue\n */\nexport const TRANSACTION_FLOW = {\n INFLOW: 'inflow',\n OUTFLOW: 'outflow',\n} as const;\n\n/** @deprecated Use TRANSACTION_FLOW instead */\nexport const TRANSACTION_TYPE = TRANSACTION_FLOW;\n\nexport type TransactionFlow = typeof TRANSACTION_FLOW;\nexport type TransactionFlowValue = TransactionFlow[keyof TransactionFlow];\nexport const TRANSACTION_FLOW_VALUES = Object.values(\n TRANSACTION_FLOW,\n) as TransactionFlowValue[];\n\n/** @deprecated Use TransactionFlow instead */\nexport type TransactionType = TransactionFlow;\n/** @deprecated Use TransactionFlowValue instead */\nexport type TransactionTypeValue = TransactionFlowValue;\n/** @deprecated Use TRANSACTION_FLOW_VALUES instead */\nexport const TRANSACTION_TYPE_VALUES = TRANSACTION_FLOW_VALUES;\n\n// ============ TRANSACTION STATUS ============\n/**\n * Transaction Status - Library-managed states\n */\nexport const TRANSACTION_STATUS = {\n PENDING: 'pending',\n PAYMENT_INITIATED: 'payment_initiated',\n PROCESSING: 'processing',\n REQUIRES_ACTION: 'requires_action',\n VERIFIED: 'verified',\n COMPLETED: 'completed',\n FAILED: 'failed',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n REFUNDED: 'refunded',\n PARTIALLY_REFUNDED: 'partially_refunded',\n} as const;\n\nexport type TransactionStatus = typeof TRANSACTION_STATUS;\nexport type TransactionStatusValue = TransactionStatus[keyof TransactionStatus];\nexport const TRANSACTION_STATUS_VALUES = Object.values(\n TRANSACTION_STATUS,\n) as TransactionStatusValue[];\n\n// ============ LIBRARY CATEGORIES ============\n/**\n * Categories managed by this library\n *\n * SUBSCRIPTION: Recurring subscription payments\n * PURCHASE: One-time purchases\n *\n * Users should spread these into their own category enums:\n *\n * @example\n * import { LIBRARY_CATEGORIES } from '@classytic/revenue';\n *\n * export const MY_CATEGORIES = {\n * ...LIBRARY_CATEGORIES,\n * SALARY: 'salary',\n * RENT: 'rent',\n * EQUIPMENT: 'equipment',\n * } as const;\n */\nexport const LIBRARY_CATEGORIES = {\n SUBSCRIPTION: 'subscription',\n PURCHASE: 'purchase',\n} as const;\n\nexport type LibraryCategories = typeof LIBRARY_CATEGORIES;\nexport type LibraryCategoryValue = LibraryCategories[keyof LibraryCategories];\nexport const LIBRARY_CATEGORY_VALUES = Object.values(\n LIBRARY_CATEGORIES,\n) as LibraryCategoryValue[];\n\nconst transactionFlowSet = new Set<TransactionFlowValue>(TRANSACTION_FLOW_VALUES);\nconst transactionStatusSet = new Set<TransactionStatusValue>(\n TRANSACTION_STATUS_VALUES,\n);\nconst libraryCategorySet = new Set<LibraryCategoryValue>(LIBRARY_CATEGORY_VALUES);\n\nexport function isLibraryCategory(value: unknown): value is LibraryCategoryValue {\n return typeof value === 'string' && libraryCategorySet.has(value as LibraryCategoryValue);\n}\n\nexport function isTransactionFlow(value: unknown): value is TransactionFlowValue {\n return typeof value === 'string' && transactionFlowSet.has(value as TransactionFlowValue);\n}\n\n/** @deprecated Use isTransactionFlow instead */\nexport function isTransactionType(value: unknown): value is TransactionTypeValue {\n return isTransactionFlow(value);\n}\n\nexport function isTransactionStatus(\n value: unknown,\n): value is TransactionStatusValue {\n return typeof value === 'string' && transactionStatusSet.has(value as TransactionStatusValue);\n}\n","/**\n * Payment Enums\n * @classytic/revenue\n *\n * Library-managed payment enums only.\n * Users define their own payment methods in their schema.\n */\n\n// ============ PAYMENT STATUS ============\n/**\n * Payment Status - Library-managed states\n */\nexport const PAYMENT_STATUS = {\n PENDING: 'pending',\n VERIFIED: 'verified',\n FAILED: 'failed',\n REFUNDED: 'refunded',\n CANCELLED: 'cancelled',\n} as const;\n\nexport type PaymentStatus = typeof PAYMENT_STATUS;\nexport type PaymentStatusValue = PaymentStatus[keyof PaymentStatus];\nexport const PAYMENT_STATUS_VALUES = Object.values(\n PAYMENT_STATUS,\n) as PaymentStatusValue[];\n\n// ============ PAYMENT GATEWAY TYPES ============\n/**\n * Common gateway type constants for convenience\n *\n * ⚠️ IMPORTANT: These are NOT restrictions - just common reference values\n *\n * You can register ANY custom gateway provider by passing it to createRevenue():\n *\n * @example\n * ```typescript\n * const revenue = createRevenue({\n * providers: {\n * manual: new ManualProvider(),\n * bkash: new BkashProvider(), // ✅ Custom gateway\n * nagad: new NagadProvider(), // ✅ Custom gateway\n * stripe: new StripeProvider(), // ✅ Custom gateway\n * paypal: new PaypalProvider(), // ✅ Any gateway you want\n * }\n * });\n *\n * // Use by name\n * await revenue.monetization.create({ gateway: 'bkash', ... });\n * ```\n *\n * Reference values:\n * - MANUAL: Built-in manual provider (@classytic/revenue-manual)\n * - STRIPE: Stripe provider (build with @classytic/revenue-stripe)\n * - SSLCOMMERZ: SSLCommerz provider (build with @classytic/revenue-sslcommerz)\n *\n * Add your own: bkash, nagad, rocket, paypal, razorpay, flutterwave, etc.\n */\nexport const PAYMENT_GATEWAY_TYPE = {\n MANUAL: 'manual',\n STRIPE: 'stripe',\n SSLCOMMERZ: 'sslcommerz',\n} as const;\n\nexport type PaymentGatewayType = typeof PAYMENT_GATEWAY_TYPE;\nexport type PaymentGatewayTypeValue = PaymentGatewayType[keyof PaymentGatewayType];\nexport const PAYMENT_GATEWAY_TYPE_VALUES = Object.values(\n PAYMENT_GATEWAY_TYPE,\n) as PaymentGatewayTypeValue[];\n\n// Backward compatibility alias\nexport const GATEWAY_TYPES = PAYMENT_GATEWAY_TYPE;\nexport const GATEWAY_TYPE_VALUES = PAYMENT_GATEWAY_TYPE_VALUES;\n\nconst paymentStatusSet = new Set<PaymentStatusValue>(PAYMENT_STATUS_VALUES);\nconst paymentGatewayTypeSet = new Set<PaymentGatewayTypeValue>(\n PAYMENT_GATEWAY_TYPE_VALUES,\n);\n\nexport function isPaymentStatus(value: unknown): value is PaymentStatusValue {\n return typeof value === 'string' && paymentStatusSet.has(value as PaymentStatusValue);\n}\n\nexport function isPaymentGatewayType(\n value: unknown,\n): value is PaymentGatewayTypeValue {\n return (\n typeof value === 'string' &&\n paymentGatewayTypeSet.has(value as PaymentGatewayTypeValue)\n );\n}\n\nexport const isGatewayType = isPaymentGatewayType;\n","/**\n * Subscription Enums\n * @classytic/revenue\n *\n * All subscription-related enums and constants\n */\n\n// ============ SUBSCRIPTION STATUS ============\n/**\n * Subscription Status\n */\nexport const SUBSCRIPTION_STATUS = {\n ACTIVE: 'active',\n PAUSED: 'paused',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n PENDING: 'pending',\n PENDING_RENEWAL: 'pending_renewal',\n INACTIVE: 'inactive',\n} as const;\n\nexport type SubscriptionStatus = typeof SUBSCRIPTION_STATUS;\nexport type SubscriptionStatusValue = SubscriptionStatus[keyof SubscriptionStatus];\nexport const SUBSCRIPTION_STATUS_VALUES = Object.values(\n SUBSCRIPTION_STATUS,\n) as SubscriptionStatusValue[];\n\n// ============ PLAN KEYS ============\n/**\n * Supported plan intervals\n */\nexport const PLAN_KEYS = {\n MONTHLY: 'monthly',\n QUARTERLY: 'quarterly',\n YEARLY: 'yearly',\n} as const;\n\nexport type PlanKeys = typeof PLAN_KEYS;\nexport type PlanKeyValue = PlanKeys[keyof PlanKeys];\nexport const PLAN_KEY_VALUES = Object.values(PLAN_KEYS) as PlanKeyValue[];\n\nconst subscriptionStatusSet = new Set<SubscriptionStatusValue>(\n SUBSCRIPTION_STATUS_VALUES,\n);\nconst planKeySet = new Set<PlanKeyValue>(PLAN_KEY_VALUES);\n\nexport function isSubscriptionStatus(\n value: unknown,\n): value is SubscriptionStatusValue {\n return (\n typeof value === 'string' &&\n subscriptionStatusSet.has(value as SubscriptionStatusValue)\n );\n}\n\nexport function isPlanKey(value: unknown): value is PlanKeyValue {\n return typeof value === 'string' && planKeySet.has(value as PlanKeyValue);\n}\n","/**\n * Monetization Enums\n * @classytic/revenue\n *\n * General monetization enums and constants\n */\n\n// ============ MONETIZATION TYPES ============\nexport const MONETIZATION_TYPES = {\n FREE: 'free',\n PURCHASE: 'purchase',\n SUBSCRIPTION: 'subscription',\n} as const;\n\nexport type MonetizationTypes = typeof MONETIZATION_TYPES;\nexport type MonetizationTypeValue = MonetizationTypes[keyof MonetizationTypes];\nexport const MONETIZATION_TYPE_VALUES = Object.values(\n MONETIZATION_TYPES,\n) as MonetizationTypeValue[];\n\nconst monetizationTypeSet = new Set<MonetizationTypeValue>(MONETIZATION_TYPE_VALUES);\n\nexport function isMonetizationType(\n value: unknown,\n): value is MonetizationTypeValue {\n return (\n typeof value === 'string' &&\n monetizationTypeSet.has(value as MonetizationTypeValue)\n );\n}\n","/**\n * Escrow/Hold Enums\n * @classytic/revenue\n *\n * Enums for platform-as-intermediary payment flow\n */\n\nexport const HOLD_STATUS = {\n PENDING: 'pending',\n HELD: 'held',\n RELEASED: 'released',\n CANCELLED: 'cancelled',\n EXPIRED: 'expired',\n PARTIALLY_RELEASED: 'partially_released',\n} as const;\n\nexport type HoldStatus = typeof HOLD_STATUS;\nexport type HoldStatusValue = HoldStatus[keyof HoldStatus];\nexport const HOLD_STATUS_VALUES = Object.values(HOLD_STATUS) as HoldStatusValue[];\n\nexport const RELEASE_REASON = {\n PAYMENT_VERIFIED: 'payment_verified',\n MANUAL_RELEASE: 'manual_release',\n AUTO_RELEASE: 'auto_release',\n DISPUTE_RESOLVED: 'dispute_resolved',\n} as const;\n\nexport type ReleaseReason = typeof RELEASE_REASON;\nexport type ReleaseReasonValue = ReleaseReason[keyof ReleaseReason];\nexport const RELEASE_REASON_VALUES = Object.values(\n RELEASE_REASON,\n) as ReleaseReasonValue[];\n\nexport const HOLD_REASON = {\n PAYMENT_VERIFICATION: 'payment_verification',\n FRAUD_CHECK: 'fraud_check',\n MANUAL_REVIEW: 'manual_review',\n DISPUTE: 'dispute',\n COMPLIANCE: 'compliance',\n} as const;\n\nexport type HoldReason = typeof HOLD_REASON;\nexport type HoldReasonValue = HoldReason[keyof HoldReason];\nexport const HOLD_REASON_VALUES = Object.values(HOLD_REASON) as HoldReasonValue[];\n\nconst holdStatusSet = new Set<HoldStatusValue>(HOLD_STATUS_VALUES);\nconst releaseReasonSet = new Set<ReleaseReasonValue>(RELEASE_REASON_VALUES);\nconst holdReasonSet = new Set<HoldReasonValue>(HOLD_REASON_VALUES);\n\nexport function isHoldStatus(value: unknown): value is HoldStatusValue {\n return typeof value === 'string' && holdStatusSet.has(value as HoldStatusValue);\n}\n\nexport function isReleaseReason(value: unknown): value is ReleaseReasonValue {\n return (\n typeof value === 'string' &&\n releaseReasonSet.has(value as ReleaseReasonValue)\n );\n}\n\nexport function isHoldReason(value: unknown): value is HoldReasonValue {\n return typeof value === 'string' && holdReasonSet.has(value as HoldReasonValue);\n}\n","/**\n * Split Payment Enums\n * @classytic/revenue\n *\n * Enums for multi-party commission splits\n */\n\nexport const SPLIT_TYPE = {\n PLATFORM_COMMISSION: 'platform_commission',\n AFFILIATE_COMMISSION: 'affiliate_commission',\n REFERRAL_COMMISSION: 'referral_commission',\n PARTNER_COMMISSION: 'partner_commission',\n CUSTOM: 'custom',\n} as const;\n\nexport type SplitType = typeof SPLIT_TYPE;\nexport type SplitTypeValue = SplitType[keyof SplitType];\nexport const SPLIT_TYPE_VALUES = Object.values(SPLIT_TYPE) as SplitTypeValue[];\n\nexport const SPLIT_STATUS = {\n PENDING: 'pending',\n DUE: 'due',\n PAID: 'paid',\n WAIVED: 'waived',\n CANCELLED: 'cancelled',\n} as const;\n\nexport type SplitStatus = typeof SPLIT_STATUS;\nexport type SplitStatusValue = SplitStatus[keyof SplitStatus];\nexport const SPLIT_STATUS_VALUES = Object.values(\n SPLIT_STATUS,\n) as SplitStatusValue[];\n\nexport const PAYOUT_METHOD = {\n BANK_TRANSFER: 'bank_transfer',\n MOBILE_WALLET: 'mobile_wallet',\n PLATFORM_BALANCE: 'platform_balance',\n CRYPTO: 'crypto',\n CHECK: 'check',\n MANUAL: 'manual',\n} as const;\n\nexport type PayoutMethod = typeof PAYOUT_METHOD;\nexport type PayoutMethodValue = PayoutMethod[keyof PayoutMethod];\nexport const PAYOUT_METHOD_VALUES = Object.values(PAYOUT_METHOD) as PayoutMethodValue[];\n\nconst splitTypeSet = new Set<SplitTypeValue>(SPLIT_TYPE_VALUES);\nconst splitStatusSet = new Set<SplitStatusValue>(SPLIT_STATUS_VALUES);\nconst payoutMethodSet = new Set<PayoutMethodValue>(PAYOUT_METHOD_VALUES);\n\nexport function isSplitType(value: unknown): value is SplitTypeValue {\n return typeof value === 'string' && splitTypeSet.has(value as SplitTypeValue);\n}\n\nexport function isSplitStatus(value: unknown): value is SplitStatusValue {\n return (\n typeof value === 'string' &&\n splitStatusSet.has(value as SplitStatusValue)\n );\n}\n\nexport function isPayoutMethod(value: unknown): value is PayoutMethodValue {\n return (\n typeof value === 'string' &&\n payoutMethodSet.has(value as PayoutMethodValue)\n );\n}\n","/**\n * Settlement Enums\n * @classytic/revenue\n *\n * Enums for settlement/payout tracking\n */\n\n// ============ SETTLEMENT STATUS ============\n\nexport const SETTLEMENT_STATUS = {\n PENDING: 'pending',\n PROCESSING: 'processing',\n COMPLETED: 'completed',\n FAILED: 'failed',\n CANCELLED: 'cancelled',\n} as const;\n\nexport type SettlementStatus = typeof SETTLEMENT_STATUS;\nexport type SettlementStatusValue = SettlementStatus[keyof SettlementStatus];\n\nexport const SETTLEMENT_STATUS_VALUES = Object.values(SETTLEMENT_STATUS);\n\n/**\n * Type guard for settlement status\n */\nexport function isSettlementStatus(value: unknown): value is SettlementStatusValue {\n return typeof value === 'string' && SETTLEMENT_STATUS_VALUES.includes(value as SettlementStatusValue);\n}\n\n// ============ SETTLEMENT TYPE ============\n\nexport const SETTLEMENT_TYPE = {\n SPLIT_PAYOUT: 'split_payout', // Payout to split recipient (vendor/affiliate)\n PLATFORM_WITHDRAWAL: 'platform_withdrawal', // Platform withdraws commission\n MANUAL_PAYOUT: 'manual_payout', // Manual vendor payout\n ESCROW_RELEASE: 'escrow_release', // Release from escrow hold\n} as const;\n\nexport type SettlementType = typeof SETTLEMENT_TYPE;\nexport type SettlementTypeValue = SettlementType[keyof SettlementType];\n\nexport const SETTLEMENT_TYPE_VALUES = Object.values(SETTLEMENT_TYPE);\n\n/**\n * Type guard for settlement type\n */\nexport function isSettlementType(value: unknown): value is SettlementTypeValue {\n return typeof value === 'string' && SETTLEMENT_TYPE_VALUES.includes(value as SettlementTypeValue);\n}\n\n// ============ EXPORTS ============\n\nexport default {\n SETTLEMENT_STATUS,\n SETTLEMENT_STATUS_VALUES,\n SETTLEMENT_TYPE,\n SETTLEMENT_TYPE_VALUES,\n isSettlementStatus,\n isSettlementType,\n};\n","/**\n * @classytic/revenue - Centralized Enums\n * All enums for the revenue management system\n *\n * This file serves as the single source of truth for all enum values\n * used across monetization and payment subsystems.\n *\n * @module @classytic/revenue/enums\n */\n\n// Re-export all enums\nexport * from './transaction.enums.js';\nexport * from './payment.enums.js';\nexport * from './subscription.enums.js';\nexport * from './monetization.enums.js';\nexport * from './escrow.enums.js';\nexport * from './split.enums.js';\nexport * from './settlement.enums.js';\n\n// Import for default export\nimport {\n TRANSACTION_TYPE,\n TRANSACTION_TYPE_VALUES,\n TRANSACTION_STATUS,\n TRANSACTION_STATUS_VALUES,\n LIBRARY_CATEGORIES,\n LIBRARY_CATEGORY_VALUES,\n isLibraryCategory,\n isTransactionType,\n isTransactionStatus,\n} from './transaction.enums.js';\n\nimport {\n PAYMENT_STATUS,\n PAYMENT_STATUS_VALUES,\n PAYMENT_GATEWAY_TYPE,\n PAYMENT_GATEWAY_TYPE_VALUES,\n GATEWAY_TYPES,\n GATEWAY_TYPE_VALUES,\n isPaymentStatus,\n isPaymentGatewayType,\n isGatewayType,\n} from './payment.enums.js';\n\nimport {\n SUBSCRIPTION_STATUS,\n SUBSCRIPTION_STATUS_VALUES,\n PLAN_KEYS,\n PLAN_KEY_VALUES,\n isSubscriptionStatus,\n isPlanKey,\n} from './subscription.enums.js';\n\nimport {\n MONETIZATION_TYPES,\n MONETIZATION_TYPE_VALUES,\n isMonetizationType,\n} from './monetization.enums.js';\n\nimport {\n HOLD_STATUS,\n HOLD_STATUS_VALUES,\n RELEASE_REASON,\n RELEASE_REASON_VALUES,\n HOLD_REASON,\n HOLD_REASON_VALUES,\n isHoldStatus,\n isReleaseReason,\n isHoldReason,\n} from './escrow.enums.js';\n\nimport {\n SPLIT_TYPE,\n SPLIT_TYPE_VALUES,\n SPLIT_STATUS,\n SPLIT_STATUS_VALUES,\n PAYOUT_METHOD,\n PAYOUT_METHOD_VALUES,\n isSplitType,\n isSplitStatus,\n isPayoutMethod,\n} from './split.enums.js';\n\nexport default {\n // Transaction enums\n TRANSACTION_TYPE,\n TRANSACTION_TYPE_VALUES,\n TRANSACTION_STATUS,\n TRANSACTION_STATUS_VALUES,\n LIBRARY_CATEGORIES,\n LIBRARY_CATEGORY_VALUES,\n isLibraryCategory,\n isTransactionType,\n isTransactionStatus,\n\n // Payment enums\n PAYMENT_STATUS,\n PAYMENT_STATUS_VALUES,\n PAYMENT_GATEWAY_TYPE,\n PAYMENT_GATEWAY_TYPE_VALUES,\n GATEWAY_TYPES,\n GATEWAY_TYPE_VALUES,\n isPaymentStatus,\n isPaymentGatewayType,\n isGatewayType,\n\n // Subscription enums\n SUBSCRIPTION_STATUS,\n SUBSCRIPTION_STATUS_VALUES,\n PLAN_KEYS,\n PLAN_KEY_VALUES,\n isSubscriptionStatus,\n isPlanKey,\n\n // Monetization enums\n MONETIZATION_TYPES,\n MONETIZATION_TYPE_VALUES,\n isMonetizationType,\n\n // Escrow enums\n HOLD_STATUS,\n HOLD_STATUS_VALUES,\n RELEASE_REASON,\n RELEASE_REASON_VALUES,\n HOLD_REASON,\n HOLD_REASON_VALUES,\n isHoldStatus,\n isReleaseReason,\n isHoldReason,\n\n // Split enums\n SPLIT_TYPE,\n SPLIT_TYPE_VALUES,\n SPLIT_STATUS,\n SPLIT_STATUS_VALUES,\n PAYOUT_METHOD,\n PAYOUT_METHOD_VALUES,\n isSplitType,\n isSplitStatus,\n isPayoutMethod,\n} as const;\n"]}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Subscription Enums
3
+ * @classytic/revenue
4
+ *
5
+ * All subscription-related enums and constants
6
+ */
7
+ /**
8
+ * Subscription Status
9
+ */
10
+ declare const SUBSCRIPTION_STATUS: {
11
+ readonly ACTIVE: "active";
12
+ readonly PAUSED: "paused";
13
+ readonly CANCELLED: "cancelled";
14
+ readonly EXPIRED: "expired";
15
+ readonly PENDING: "pending";
16
+ readonly PENDING_RENEWAL: "pending_renewal";
17
+ readonly INACTIVE: "inactive";
18
+ };
19
+ type SubscriptionStatus = typeof SUBSCRIPTION_STATUS;
20
+ type SubscriptionStatusValue = SubscriptionStatus[keyof SubscriptionStatus];
21
+ declare const SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
22
+ /**
23
+ * Supported plan intervals
24
+ */
25
+ declare const PLAN_KEYS: {
26
+ readonly MONTHLY: "monthly";
27
+ readonly QUARTERLY: "quarterly";
28
+ readonly YEARLY: "yearly";
29
+ };
30
+ type PlanKeys = typeof PLAN_KEYS;
31
+ type PlanKeyValue = PlanKeys[keyof PlanKeys];
32
+ declare const PLAN_KEY_VALUES: PlanKeyValue[];
33
+ declare function isSubscriptionStatus(value: unknown): value is SubscriptionStatusValue;
34
+ declare function isPlanKey(value: unknown): value is PlanKeyValue;
35
+
36
+ /**
37
+ * Escrow/Hold Enums
38
+ * @classytic/revenue
39
+ *
40
+ * Enums for platform-as-intermediary payment flow
41
+ */
42
+ declare const HOLD_STATUS: {
43
+ readonly PENDING: "pending";
44
+ readonly HELD: "held";
45
+ readonly RELEASED: "released";
46
+ readonly CANCELLED: "cancelled";
47
+ readonly EXPIRED: "expired";
48
+ readonly PARTIALLY_RELEASED: "partially_released";
49
+ };
50
+ type HoldStatus = typeof HOLD_STATUS;
51
+ type HoldStatusValue = HoldStatus[keyof HoldStatus];
52
+ declare const HOLD_STATUS_VALUES: HoldStatusValue[];
53
+ declare const RELEASE_REASON: {
54
+ readonly PAYMENT_VERIFIED: "payment_verified";
55
+ readonly MANUAL_RELEASE: "manual_release";
56
+ readonly AUTO_RELEASE: "auto_release";
57
+ readonly DISPUTE_RESOLVED: "dispute_resolved";
58
+ };
59
+ type ReleaseReason = typeof RELEASE_REASON;
60
+ type ReleaseReasonValue = ReleaseReason[keyof ReleaseReason];
61
+ declare const RELEASE_REASON_VALUES: ReleaseReasonValue[];
62
+ declare const HOLD_REASON: {
63
+ readonly PAYMENT_VERIFICATION: "payment_verification";
64
+ readonly FRAUD_CHECK: "fraud_check";
65
+ readonly MANUAL_REVIEW: "manual_review";
66
+ readonly DISPUTE: "dispute";
67
+ readonly COMPLIANCE: "compliance";
68
+ };
69
+ type HoldReason = typeof HOLD_REASON;
70
+ type HoldReasonValue = HoldReason[keyof HoldReason];
71
+ declare const HOLD_REASON_VALUES: HoldReasonValue[];
72
+ declare function isHoldStatus(value: unknown): value is HoldStatusValue;
73
+ declare function isReleaseReason(value: unknown): value is ReleaseReasonValue;
74
+ declare function isHoldReason(value: unknown): value is HoldReasonValue;
75
+
76
+ export { type HoldStatusValue as H, type PlanKeyValue as P, type ReleaseReasonValue as R, type SubscriptionStatusValue as S, isPlanKey as a, type HoldReasonValue as b, isHoldStatus as c, isReleaseReason as d, isHoldReason as e, SUBSCRIPTION_STATUS as f, type SubscriptionStatus as g, SUBSCRIPTION_STATUS_VALUES as h, isSubscriptionStatus as i, PLAN_KEYS as j, type PlanKeys as k, PLAN_KEY_VALUES as l, HOLD_STATUS as m, type HoldStatus as n, HOLD_STATUS_VALUES as o, RELEASE_REASON as p, type ReleaseReason as q, RELEASE_REASON_VALUES as r, HOLD_REASON as s, type HoldReason as t, HOLD_REASON_VALUES as u };