@classytic/revenue 1.0.6 → 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 (54) hide show
  1. package/README.md +581 -633
  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 +2372 -786
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/enums/index.d.ts +29 -8
  12. package/dist/enums/index.js +41 -8
  13. package/dist/enums/index.js.map +1 -1
  14. package/dist/escrow.enums-CE0VQsfe.d.ts +76 -0
  15. package/dist/{index-BnEXsnLJ.d.ts → index-DxIK0UmZ.d.ts} +281 -26
  16. package/dist/index-EnfKzDbs.d.ts +806 -0
  17. package/dist/{index-C5SsOrV0.d.ts → index-cLJBLUvx.d.ts} +55 -111
  18. package/dist/index.d.ts +16 -16
  19. package/dist/index.js +2558 -2192
  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 +1653 -49
  35. package/dist/schemas/index.js +233 -19
  36. package/dist/schemas/index.js.map +1 -1
  37. package/dist/schemas/validation.d.ts +4 -4
  38. package/dist/schemas/validation.js +16 -15
  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 +351 -289
  46. package/dist/utils/index.js.map +1 -1
  47. package/package.json +22 -9
  48. package/dist/actions-Ctf2XUL-.d.ts +0 -519
  49. package/dist/payment.enums-B_RwB8iR.d.ts +0 -184
  50. package/dist/services/index.d.ts +0 -3
  51. package/dist/services/index.js +0 -1702
  52. package/dist/services/index.js.map +0 -1
  53. package/dist/split.schema-DLVF3XBI.d.ts +0 -1122
  54. package/dist/transaction.enums-7uBnuswI.d.ts +0 -87
@@ -1,14 +1,34 @@
1
- import { M as PaymentStatusValue, N as PaymentGatewayTypeValue, i as isPaymentStatus, g as isPaymentGatewayType, O as SubscriptionStatusValue, Q as PlanKeyValue, n as isSubscriptionStatus, o as isPlanKey, T as HoldStatusValue, U as ReleaseReasonValue, V as HoldReasonValue, v as isHoldStatus, w as isReleaseReason, x as isHoldReason, W as SplitTypeValue, X as SplitStatusValue, Y as PayoutMethodValue, J as isSplitType, K as isSplitStatus, L as isPayoutMethod } from '../payment.enums-B_RwB8iR.js';
2
- export { G as GATEWAY_TYPES, f as GATEWAY_TYPE_VALUES, s as HOLD_REASON, u as HOLD_REASON_VALUES, H as HOLD_STATUS, p as HOLD_STATUS_VALUES, t as HoldReason, _ as HoldStatus, c as PAYMENT_GATEWAY_TYPE, e as PAYMENT_GATEWAY_TYPE_VALUES, P as PAYMENT_STATUS, b as PAYMENT_STATUS_VALUES, E as PAYOUT_METHOD, I as PAYOUT_METHOD_VALUES, k as PLAN_KEYS, m as PLAN_KEY_VALUES, d as PaymentGatewayType, a as PaymentStatus, F as PayoutMethod, l as PlanKeys, R as RELEASE_REASON, r as RELEASE_REASON_VALUES, q as ReleaseReason, B as SPLIT_STATUS, D as SPLIT_STATUS_VALUES, y as SPLIT_TYPE, A as SPLIT_TYPE_VALUES, S as SUBSCRIPTION_STATUS, j as SUBSCRIPTION_STATUS_VALUES, C as SplitStatus, z as SplitType, Z as SubscriptionStatus, h as isGatewayType } from '../payment.enums-B_RwB8iR.js';
3
- import { o as TransactionTypeValue, p as TransactionStatusValue, g as LibraryCategoryValue, i as isLibraryCategory, j as isTransactionType, k as isTransactionStatus, q as MonetizationTypeValue, n as isMonetizationType } from '../transaction.enums-7uBnuswI.js';
4
- export { L as LIBRARY_CATEGORIES, h as LIBRARY_CATEGORY_VALUES, f as LibraryCategories, M as MONETIZATION_TYPES, m as MONETIZATION_TYPE_VALUES, l as MonetizationTypes, c as TRANSACTION_STATUS, e as TRANSACTION_STATUS_VALUES, T as TRANSACTION_TYPE, b as TRANSACTION_TYPE_VALUES, d as TransactionStatus, a as TransactionType } from '../transaction.enums-7uBnuswI.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';
9
+
10
+ /**
11
+ * Monetization Enums
12
+ * @classytic/revenue
13
+ *
14
+ * General monetization enums and constants
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;
5
25
 
6
26
  declare const _default: {
7
27
  readonly TRANSACTION_TYPE: {
8
- readonly INCOME: "income";
9
- readonly EXPENSE: "expense";
28
+ readonly INFLOW: "inflow";
29
+ readonly OUTFLOW: "outflow";
10
30
  };
11
- readonly TRANSACTION_TYPE_VALUES: TransactionTypeValue[];
31
+ readonly TRANSACTION_TYPE_VALUES: TransactionFlowValue[];
12
32
  readonly TRANSACTION_STATUS: {
13
33
  readonly PENDING: "pending";
14
34
  readonly PAYMENT_INITIATED: "payment_initiated";
@@ -60,6 +80,7 @@ declare const _default: {
60
80
  readonly CANCELLED: "cancelled";
61
81
  readonly EXPIRED: "expired";
62
82
  readonly PENDING: "pending";
83
+ readonly PENDING_RENEWAL: "pending_renewal";
63
84
  readonly INACTIVE: "inactive";
64
85
  };
65
86
  readonly SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
@@ -135,4 +156,4 @@ declare const _default: {
135
156
  readonly isPayoutMethod: typeof isPayoutMethod;
136
157
  };
137
158
 
138
- export { HoldReasonValue, HoldStatusValue, LibraryCategoryValue, MonetizationTypeValue, PaymentGatewayTypeValue, PaymentStatusValue, PayoutMethodValue, PlanKeyValue, ReleaseReasonValue, SplitStatusValue, SplitTypeValue, SubscriptionStatusValue, TransactionStatusValue, TransactionTypeValue, _default as default, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionStatus, isTransactionType };
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,13 +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(
9
- TRANSACTION_TYPE
8
+ var TRANSACTION_TYPE = TRANSACTION_FLOW;
9
+ var TRANSACTION_FLOW_VALUES = Object.values(
10
+ TRANSACTION_FLOW
10
11
  );
12
+ var TRANSACTION_TYPE_VALUES = TRANSACTION_FLOW_VALUES;
11
13
  var TRANSACTION_STATUS = {
12
14
  PENDING: "pending",
13
15
  PAYMENT_INITIATED: "payment_initiated",
@@ -31,7 +33,7 @@ var LIBRARY_CATEGORIES = {
31
33
  var LIBRARY_CATEGORY_VALUES = Object.values(
32
34
  LIBRARY_CATEGORIES
33
35
  );
34
- var transactionTypeSet = new Set(TRANSACTION_TYPE_VALUES);
36
+ var transactionFlowSet = new Set(TRANSACTION_FLOW_VALUES);
35
37
  var transactionStatusSet = new Set(
36
38
  TRANSACTION_STATUS_VALUES
37
39
  );
@@ -39,8 +41,11 @@ var libraryCategorySet = new Set(LIBRARY_CATEGORY_VALUES);
39
41
  function isLibraryCategory(value) {
40
42
  return typeof value === "string" && libraryCategorySet.has(value);
41
43
  }
44
+ function isTransactionFlow(value) {
45
+ return typeof value === "string" && transactionFlowSet.has(value);
46
+ }
42
47
  function isTransactionType(value) {
43
- return typeof value === "string" && transactionTypeSet.has(value);
48
+ return isTransactionFlow(value);
44
49
  }
45
50
  function isTransactionStatus(value) {
46
51
  return typeof value === "string" && transactionStatusSet.has(value);
@@ -86,6 +91,7 @@ var SUBSCRIPTION_STATUS = {
86
91
  CANCELLED: "cancelled",
87
92
  EXPIRED: "expired",
88
93
  PENDING: "pending",
94
+ PENDING_RENEWAL: "pending_renewal",
89
95
  INACTIVE: "inactive"
90
96
  };
91
97
  var SUBSCRIPTION_STATUS_VALUES = Object.values(
@@ -203,6 +209,33 @@ function isPayoutMethod(value) {
203
209
  return typeof value === "string" && payoutMethodSet.has(value);
204
210
  }
205
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
+ }
238
+
206
239
  // src/enums/index.ts
207
240
  var enums_default = {
208
241
  // Transaction enums
@@ -258,6 +291,6 @@ var enums_default = {
258
291
  isPayoutMethod
259
292
  };
260
293
 
261
- 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, isGatewayType, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionStatus, isTransactionType };
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 };
262
295
  //# sourceMappingURL=index.js.map
263
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(\n TRANSACTION_TYPE,\n) as TransactionTypeValue[];\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 transactionTypeSet = new Set<TransactionTypeValue>(TRANSACTION_TYPE_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 isTransactionType(value: unknown): value is TransactionTypeValue {\n return typeof value === 'string' && transactionTypeSet.has(value as TransactionTypeValue);\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 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 * @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 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"]}
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 };