@classytic/revenue 1.1.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +638 -632
  3. package/dist/audit-B39B0Sdq.mjs +53 -0
  4. package/dist/audit-DZ0eTr9g.d.mts +89 -0
  5. package/dist/bridges/index.d.mts +2 -0
  6. package/dist/bridges/index.mjs +1 -0
  7. package/dist/context-DRqSeTPM.d.mts +35 -0
  8. package/dist/core/state-machines.d.mts +35 -0
  9. package/dist/core/state-machines.mjs +134 -0
  10. package/dist/engine-types-CcjIb4Fy.d.mts +611 -0
  11. package/dist/enums/index.d.mts +3 -157
  12. package/dist/enums/index.mjs +3 -55
  13. package/dist/errors-DHa8JVQ-.mjs +92 -0
  14. package/dist/escrow.schema-BBv9oVEW.mjs +322 -0
  15. package/dist/escrow.schema-CC8XuD46.d.mts +629 -0
  16. package/dist/event-constants-CEMitnIV.mjs +53 -0
  17. package/dist/events/index.d.mts +3 -0
  18. package/dist/events/index.mjs +4 -0
  19. package/dist/index.d.mts +77 -9
  20. package/dist/index.mjs +465 -29
  21. package/dist/monetization.enums-BtiU3t8o.mjs +39 -0
  22. package/dist/monetization.enums-D2xbxXJM.d.mts +34 -0
  23. package/dist/plugins/plugin.interface.d.mts +28 -0
  24. package/dist/plugins/plugin.interface.mjs +26 -0
  25. package/dist/providers/index.d.mts +2 -3
  26. package/dist/providers/index.mjs +2 -2
  27. package/dist/{base-DCoyIUj6.mjs → registry-DhFMsSn5.mjs} +34 -36
  28. package/dist/{base-CsTlVQJe.d.mts → registry-SvIGPAx_.d.mts} +73 -66
  29. package/dist/repositories/create-repositories.d.mts +21 -0
  30. package/dist/repositories/create-repositories.mjs +12 -0
  31. package/dist/revenue-bridges-sdlrR85c.d.mts +145 -0
  32. package/dist/revenue-event-catalog-BX3g7RUi.d.mts +823 -0
  33. package/dist/revenue-event-catalog-LqxPnsU_.mjs +388 -0
  34. package/dist/settlement.repository-Cy3mMWGH.mjs +771 -0
  35. package/dist/shared/index.d.mts +2 -0
  36. package/dist/shared/index.mjs +4 -0
  37. package/dist/split.enums-CQE3ekH1.mjs +172 -0
  38. package/dist/split.enums-Dw4zCrcZ.d.mts +154 -0
  39. package/dist/splits-BAfY-a9P.mjs +123 -0
  40. package/dist/validators/index.d.mts +2 -0
  41. package/dist/validators/index.mjs +3 -0
  42. package/package.json +32 -36
  43. package/dist/application/services/index.d.mts +0 -4
  44. package/dist/application/services/index.mjs +0 -3
  45. package/dist/category-resolver-DV83N8ok.mjs +0 -284
  46. package/dist/commission-split-BzB8cd39.mjs +0 -485
  47. package/dist/core/events.d.mts +0 -294
  48. package/dist/core/events.mjs +0 -100
  49. package/dist/core/index.d.mts +0 -9
  50. package/dist/core/index.mjs +0 -8
  51. package/dist/errors-CorrWz7A.d.mts +0 -787
  52. package/dist/escrow.enums-CZGrrdg7.mjs +0 -101
  53. package/dist/escrow.enums-DwdLuuve.d.mts +0 -78
  54. package/dist/idempotency-DaYcUGY1.mjs +0 -172
  55. package/dist/index-Dsp7H5Wb.d.mts +0 -471
  56. package/dist/infrastructure/plugins/index.d.mts +0 -239
  57. package/dist/infrastructure/plugins/index.mjs +0 -345
  58. package/dist/money-CvrDOijQ.mjs +0 -271
  59. package/dist/money-DPG8AtJ8.d.mts +0 -112
  60. package/dist/payment.enums-HAuAS9Pp.d.mts +0 -70
  61. package/dist/payment.enums-tEFVa-Xp.mjs +0 -69
  62. package/dist/plugin-BbK0OVHy.d.mts +0 -327
  63. package/dist/plugin-Cd_V04Em.mjs +0 -210
  64. package/dist/reconciliation/index.d.mts +0 -193
  65. package/dist/reconciliation/index.mjs +0 -192
  66. package/dist/retry-HHCOXYdn.d.mts +0 -186
  67. package/dist/revenue-9scqKSef.mjs +0 -553
  68. package/dist/schemas/index.d.mts +0 -2665
  69. package/dist/schemas/index.mjs +0 -717
  70. package/dist/schemas/validation.d.mts +0 -375
  71. package/dist/schemas/validation.mjs +0 -325
  72. package/dist/settlement.enums-DFhkqZEY.d.mts +0 -132
  73. package/dist/settlement.schema-D5uWB5tP.d.mts +0 -344
  74. package/dist/settlement.service-BxuiHpNC.d.mts +0 -594
  75. package/dist/settlement.service-CUxbUTzT.mjs +0 -2510
  76. package/dist/split.enums-BrjabxIX.mjs +0 -86
  77. package/dist/split.enums-DmskfLOM.d.mts +0 -43
  78. package/dist/tax-BoCt5cEd.d.mts +0 -61
  79. package/dist/tax-EQ15DO81.mjs +0 -162
  80. package/dist/transaction.enums-pCyMFT4Z.mjs +0 -96
  81. package/dist/utils/index.d.mts +0 -428
  82. package/dist/utils/index.mjs +0 -346
@@ -1,157 +1,3 @@
1
- import { a as SPLIT_STATUS, c as SPLIT_TYPE_VALUES, d as SplitType, f as SplitTypeValue, h as isSplitType, i as PayoutMethodValue, l as SplitStatus, m as isSplitStatus, n as PAYOUT_METHOD_VALUES, o as SPLIT_STATUS_VALUES, p as isPayoutMethod, r as PayoutMethod, s as SPLIT_TYPE, t as PAYOUT_METHOD, u as SplitStatusValue } from "../split.enums-DmskfLOM.mjs";
2
- import { A as isTransactionType, C as TransactionStatus, D as isLibraryCategory, E as TransactionTypeValue, O as isTransactionFlow, S as TransactionFlowValue, T as TransactionType, _ as TRANSACTION_STATUS, a as SettlementStatus, b as TRANSACTION_TYPE_VALUES, c as SettlementTypeValue, d as LIBRARY_CATEGORIES, f as LIBRARY_CATEGORY_VALUES, g as TRANSACTION_FLOW_VALUES, h as TRANSACTION_FLOW, i as SETTLEMENT_TYPE_VALUES, k as isTransactionStatus, l as isSettlementStatus, m as LibraryCategoryValue, n as SETTLEMENT_STATUS_VALUES, o as SettlementStatusValue, p as LibraryCategories, r as SETTLEMENT_TYPE, s as SettlementType, t as SETTLEMENT_STATUS, u as isSettlementType, v as TRANSACTION_STATUS_VALUES, w as TransactionStatusValue, x as TransactionFlow, y as TRANSACTION_TYPE } from "../settlement.enums-DFhkqZEY.mjs";
3
- import { C as SubscriptionStatusValue, S as SubscriptionStatus, T as isSubscriptionStatus, _ as PLAN_KEY_VALUES, a as HoldReason, b as SUBSCRIPTION_STATUS, c as HoldStatusValue, d as ReleaseReason, f as ReleaseReasonValue, g as PLAN_KEYS, h as isReleaseReason, i as HOLD_STATUS_VALUES, l as RELEASE_REASON, m as isHoldStatus, n as HOLD_REASON_VALUES, o as HoldReasonValue, p as isHoldReason, r as HOLD_STATUS, s as HoldStatus, t as HOLD_REASON, u as RELEASE_REASON_VALUES, v as PlanKeyValue, w as isPlanKey, x as SUBSCRIPTION_STATUS_VALUES, y as PlanKeys } from "../escrow.enums-DwdLuuve.mjs";
4
- import { a as PAYMENT_STATUS, c as PaymentGatewayTypeValue, d as isGatewayType, f as isPaymentGatewayType, i as PAYMENT_GATEWAY_TYPE_VALUES, l as PaymentStatus, n as GATEWAY_TYPE_VALUES, o as PAYMENT_STATUS_VALUES, p as isPaymentStatus, r as PAYMENT_GATEWAY_TYPE, s as PaymentGatewayType, t as GATEWAY_TYPES, u as PaymentStatusValue } from "../payment.enums-HAuAS9Pp.mjs";
5
-
6
- //#region src/enums/monetization.enums.d.ts
7
- /**
8
- * Monetization Enums
9
- * @classytic/revenue
10
- *
11
- * General monetization enums and constants
12
- */
13
- declare const MONETIZATION_TYPES: {
14
- readonly FREE: "free";
15
- readonly PURCHASE: "purchase";
16
- readonly SUBSCRIPTION: "subscription";
17
- };
18
- type MonetizationTypes = typeof MONETIZATION_TYPES;
19
- type MonetizationTypeValue = MonetizationTypes[keyof MonetizationTypes];
20
- declare const MONETIZATION_TYPE_VALUES: MonetizationTypeValue[];
21
- declare function isMonetizationType(value: unknown): value is MonetizationTypeValue;
22
- //#endregion
23
- //#region src/enums/index.d.ts
24
- declare const _default: {
25
- readonly TRANSACTION_TYPE: {
26
- readonly INFLOW: "inflow";
27
- readonly OUTFLOW: "outflow";
28
- };
29
- readonly TRANSACTION_TYPE_VALUES: TransactionFlowValue[];
30
- readonly TRANSACTION_STATUS: {
31
- readonly PENDING: "pending";
32
- readonly PAYMENT_INITIATED: "payment_initiated";
33
- readonly PROCESSING: "processing";
34
- readonly REQUIRES_ACTION: "requires_action";
35
- readonly VERIFIED: "verified";
36
- readonly COMPLETED: "completed";
37
- readonly FAILED: "failed";
38
- readonly CANCELLED: "cancelled";
39
- readonly EXPIRED: "expired";
40
- readonly REFUNDED: "refunded";
41
- readonly PARTIALLY_REFUNDED: "partially_refunded";
42
- };
43
- readonly TRANSACTION_STATUS_VALUES: TransactionStatusValue[];
44
- readonly LIBRARY_CATEGORIES: {
45
- readonly SUBSCRIPTION: "subscription";
46
- readonly PURCHASE: "purchase";
47
- };
48
- readonly LIBRARY_CATEGORY_VALUES: LibraryCategoryValue[];
49
- readonly isLibraryCategory: typeof isLibraryCategory;
50
- readonly isTransactionType: typeof isTransactionType;
51
- readonly isTransactionStatus: typeof isTransactionStatus;
52
- readonly PAYMENT_STATUS: {
53
- readonly PENDING: "pending";
54
- readonly VERIFIED: "verified";
55
- readonly FAILED: "failed";
56
- readonly REFUNDED: "refunded";
57
- readonly CANCELLED: "cancelled";
58
- };
59
- readonly PAYMENT_STATUS_VALUES: PaymentStatusValue[];
60
- readonly PAYMENT_GATEWAY_TYPE: {
61
- readonly MANUAL: "manual";
62
- readonly STRIPE: "stripe";
63
- readonly SSLCOMMERZ: "sslcommerz";
64
- };
65
- readonly PAYMENT_GATEWAY_TYPE_VALUES: PaymentGatewayTypeValue[];
66
- readonly GATEWAY_TYPES: {
67
- readonly MANUAL: "manual";
68
- readonly STRIPE: "stripe";
69
- readonly SSLCOMMERZ: "sslcommerz";
70
- };
71
- readonly GATEWAY_TYPE_VALUES: PaymentGatewayTypeValue[];
72
- readonly isPaymentStatus: typeof isPaymentStatus;
73
- readonly isPaymentGatewayType: typeof isPaymentGatewayType;
74
- readonly isGatewayType: typeof isPaymentGatewayType;
75
- readonly SUBSCRIPTION_STATUS: {
76
- readonly ACTIVE: "active";
77
- readonly PAUSED: "paused";
78
- readonly CANCELLED: "cancelled";
79
- readonly EXPIRED: "expired";
80
- readonly PENDING: "pending";
81
- readonly PENDING_RENEWAL: "pending_renewal";
82
- readonly INACTIVE: "inactive";
83
- };
84
- readonly SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
85
- readonly PLAN_KEYS: {
86
- readonly MONTHLY: "monthly";
87
- readonly QUARTERLY: "quarterly";
88
- readonly YEARLY: "yearly";
89
- };
90
- readonly PLAN_KEY_VALUES: PlanKeyValue[];
91
- readonly isSubscriptionStatus: typeof isSubscriptionStatus;
92
- readonly isPlanKey: typeof isPlanKey;
93
- readonly MONETIZATION_TYPES: {
94
- readonly FREE: "free";
95
- readonly PURCHASE: "purchase";
96
- readonly SUBSCRIPTION: "subscription";
97
- };
98
- readonly MONETIZATION_TYPE_VALUES: MonetizationTypeValue[];
99
- readonly isMonetizationType: typeof isMonetizationType;
100
- readonly HOLD_STATUS: {
101
- readonly PENDING: "pending";
102
- readonly HELD: "held";
103
- readonly RELEASED: "released";
104
- readonly CANCELLED: "cancelled";
105
- readonly EXPIRED: "expired";
106
- readonly PARTIALLY_RELEASED: "partially_released";
107
- };
108
- readonly HOLD_STATUS_VALUES: HoldStatusValue[];
109
- readonly RELEASE_REASON: {
110
- readonly PAYMENT_VERIFIED: "payment_verified";
111
- readonly MANUAL_RELEASE: "manual_release";
112
- readonly AUTO_RELEASE: "auto_release";
113
- readonly DISPUTE_RESOLVED: "dispute_resolved";
114
- };
115
- readonly RELEASE_REASON_VALUES: ReleaseReasonValue[];
116
- readonly HOLD_REASON: {
117
- readonly PAYMENT_VERIFICATION: "payment_verification";
118
- readonly FRAUD_CHECK: "fraud_check";
119
- readonly MANUAL_REVIEW: "manual_review";
120
- readonly DISPUTE: "dispute";
121
- readonly COMPLIANCE: "compliance";
122
- };
123
- readonly HOLD_REASON_VALUES: HoldReasonValue[];
124
- readonly isHoldStatus: typeof isHoldStatus;
125
- readonly isReleaseReason: typeof isReleaseReason;
126
- readonly isHoldReason: typeof isHoldReason;
127
- readonly SPLIT_TYPE: {
128
- readonly PLATFORM_COMMISSION: "platform_commission";
129
- readonly AFFILIATE_COMMISSION: "affiliate_commission";
130
- readonly REFERRAL_COMMISSION: "referral_commission";
131
- readonly PARTNER_COMMISSION: "partner_commission";
132
- readonly CUSTOM: "custom";
133
- };
134
- readonly SPLIT_TYPE_VALUES: SplitTypeValue[];
135
- readonly SPLIT_STATUS: {
136
- readonly PENDING: "pending";
137
- readonly DUE: "due";
138
- readonly PAID: "paid";
139
- readonly WAIVED: "waived";
140
- readonly CANCELLED: "cancelled";
141
- };
142
- readonly SPLIT_STATUS_VALUES: SplitStatusValue[];
143
- readonly PAYOUT_METHOD: {
144
- readonly BANK_TRANSFER: "bank_transfer";
145
- readonly MOBILE_WALLET: "mobile_wallet";
146
- readonly PLATFORM_BALANCE: "platform_balance";
147
- readonly CRYPTO: "crypto";
148
- readonly CHECK: "check";
149
- readonly MANUAL: "manual";
150
- };
151
- readonly PAYOUT_METHOD_VALUES: PayoutMethodValue[];
152
- readonly isSplitType: typeof isSplitType;
153
- readonly isSplitStatus: typeof isSplitStatus;
154
- readonly isPayoutMethod: typeof isPayoutMethod;
155
- };
156
- //#endregion
157
- export { GATEWAY_TYPES, GATEWAY_TYPE_VALUES, HOLD_REASON, HOLD_REASON_VALUES, HOLD_STATUS, HOLD_STATUS_VALUES, HoldReason, HoldReasonValue, HoldStatus, HoldStatusValue, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_VALUES, LibraryCategories, LibraryCategoryValue, MONETIZATION_TYPES, MONETIZATION_TYPE_VALUES, MonetizationTypeValue, MonetizationTypes, PAYMENT_GATEWAY_TYPE, PAYMENT_GATEWAY_TYPE_VALUES, PAYMENT_STATUS, PAYMENT_STATUS_VALUES, PAYOUT_METHOD, PAYOUT_METHOD_VALUES, PLAN_KEYS, PLAN_KEY_VALUES, PaymentGatewayType, PaymentGatewayTypeValue, PaymentStatus, PaymentStatusValue, PayoutMethod, PayoutMethodValue, PlanKeyValue, PlanKeys, RELEASE_REASON, RELEASE_REASON_VALUES, ReleaseReason, ReleaseReasonValue, 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, SettlementStatus, SettlementStatusValue, SettlementType, SettlementTypeValue, SplitStatus, SplitStatusValue, SplitType, SplitTypeValue, SubscriptionStatus, SubscriptionStatusValue, TRANSACTION_FLOW, TRANSACTION_FLOW_VALUES, TRANSACTION_STATUS, TRANSACTION_STATUS_VALUES, TRANSACTION_TYPE, TRANSACTION_TYPE_VALUES, TransactionFlow, TransactionFlowValue, TransactionStatus, TransactionStatusValue, TransactionType, TransactionTypeValue, _default as default, isGatewayType, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSettlementStatus, isSettlementType, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionFlow, isTransactionStatus, isTransactionType };
1
+ import { $ as LibraryCategories, A as isReleaseReason, B as isSettlementType, C as HoldStatusValue, D as ReleaseReasonValue, E as ReleaseReason, F as SettlementStatus, G as SUBSCRIPTION_STATUS, H as PLAN_KEY_VALUES, I as SettlementStatusValue, J as SubscriptionStatusValue, K as SUBSCRIPTION_STATUS_VALUES, L as SettlementType, M as SETTLEMENT_STATUS_VALUES, N as SETTLEMENT_TYPE, O as isHoldReason, P as SETTLEMENT_TYPE_VALUES, Q as LIBRARY_CATEGORY_VALUES, R as SettlementTypeValue, S as HoldStatus, T as RELEASE_REASON_VALUES, U as PlanKeyValue, V as PLAN_KEYS, W as PlanKeys, X as isSubscriptionStatus, Y as isPlanKey, Z as LIBRARY_CATEGORIES, _ as HOLD_REASON_VALUES, a as SPLIT_STATUS, at as TransactionFlow, b as HoldReason, c as SPLIT_TYPE_VALUES, ct as TransactionStatusValue, d as SplitType, dt as isTransactionStatus, et as LibraryCategoryValue, f as SplitTypeValue, g as HOLD_REASON, h as isSplitType, i as PayoutMethodValue, it as TRANSACTION_STATUS_VALUES, j as SETTLEMENT_STATUS, k as isHoldStatus, l as SplitStatus, lt as isLibraryCategory, m as isSplitStatus, n as PAYOUT_METHOD_VALUES, nt as TRANSACTION_FLOW_VALUES, o as SPLIT_STATUS_VALUES, ot as TransactionFlowValue, p as isPayoutMethod, q as SubscriptionStatus, r as PayoutMethod, rt as TRANSACTION_STATUS, s as SPLIT_TYPE, st as TransactionStatus, t as PAYOUT_METHOD, tt as TRANSACTION_FLOW, u as SplitStatusValue, ut as isTransactionFlow, v as HOLD_STATUS, w as RELEASE_REASON, x as HoldReasonValue, y as HOLD_STATUS_VALUES, z as isSettlementStatus } from "../split.enums-Dw4zCrcZ.mjs";
2
+ import { a as isMonetizationType, c as PAYMENT_STATUS, d as PaymentGatewayTypeValue, f as PaymentStatus, h as isPaymentStatus, i as MonetizationTypes, l as PAYMENT_STATUS_VALUES, m as isPaymentGatewayType, n as MONETIZATION_TYPE_VALUES, o as PAYMENT_GATEWAY_TYPE, p as PaymentStatusValue, r as MonetizationTypeValue, s as PAYMENT_GATEWAY_TYPE_VALUES, t as MONETIZATION_TYPES, u as PaymentGatewayType } from "../monetization.enums-D2xbxXJM.mjs";
3
+ export { HOLD_REASON, HOLD_REASON_VALUES, HOLD_STATUS, HOLD_STATUS_VALUES, HoldReason, HoldReasonValue, HoldStatus, HoldStatusValue, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_VALUES, LibraryCategories, LibraryCategoryValue, MONETIZATION_TYPES, MONETIZATION_TYPE_VALUES, MonetizationTypeValue, MonetizationTypes, PAYMENT_GATEWAY_TYPE, PAYMENT_GATEWAY_TYPE_VALUES, PAYMENT_STATUS, PAYMENT_STATUS_VALUES, PAYOUT_METHOD, PAYOUT_METHOD_VALUES, PLAN_KEYS, PLAN_KEY_VALUES, PaymentGatewayType, PaymentGatewayTypeValue, PaymentStatus, PaymentStatusValue, PayoutMethod, PayoutMethodValue, PlanKeyValue, PlanKeys, RELEASE_REASON, RELEASE_REASON_VALUES, ReleaseReason, ReleaseReasonValue, 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, SettlementStatus, SettlementStatusValue, SettlementType, SettlementTypeValue, SplitStatus, SplitStatusValue, SplitType, SplitTypeValue, SubscriptionStatus, SubscriptionStatusValue, TRANSACTION_FLOW, TRANSACTION_FLOW_VALUES, TRANSACTION_STATUS, TRANSACTION_STATUS_VALUES, TransactionFlow, TransactionFlowValue, TransactionStatus, TransactionStatusValue, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSettlementStatus, isSettlementType, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionFlow, isTransactionStatus };
@@ -1,56 +1,4 @@
1
- import { a as TRANSACTION_STATUS, c as TRANSACTION_TYPE_VALUES, d as isTransactionStatus, f as isTransactionType, i as TRANSACTION_FLOW_VALUES, l as isLibraryCategory, n as LIBRARY_CATEGORY_VALUES, o as TRANSACTION_STATUS_VALUES, r as TRANSACTION_FLOW, s as TRANSACTION_TYPE, t as LIBRARY_CATEGORIES, u as isTransactionFlow } from "../transaction.enums-pCyMFT4Z.mjs";
2
- import { _ as MONETIZATION_TYPE_VALUES, a as RELEASE_REASON, c as isHoldStatus, d as SETTLEMENT_STATUS_VALUES, f as SETTLEMENT_TYPE, g as MONETIZATION_TYPES, h as isSettlementType, i as HOLD_STATUS_VALUES, l as isReleaseReason, m as isSettlementStatus, n as HOLD_REASON_VALUES, o as RELEASE_REASON_VALUES, p as SETTLEMENT_TYPE_VALUES, r as HOLD_STATUS, s as isHoldReason, t as HOLD_REASON, u as SETTLEMENT_STATUS, v as isMonetizationType } from "../escrow.enums-CZGrrdg7.mjs";
3
- import { a as SPLIT_TYPE, c as isSplitStatus, d as PLAN_KEY_VALUES, f as SUBSCRIPTION_STATUS, h as isSubscriptionStatus, i as SPLIT_STATUS_VALUES, l as isSplitType, m as isPlanKey, n as PAYOUT_METHOD_VALUES, o as SPLIT_TYPE_VALUES, p as SUBSCRIPTION_STATUS_VALUES, r as SPLIT_STATUS, s as isPayoutMethod, t as PAYOUT_METHOD, u as PLAN_KEYS } from "../split.enums-BrjabxIX.mjs";
4
- import { a as PAYMENT_STATUS, c as isPaymentGatewayType, i as PAYMENT_GATEWAY_TYPE_VALUES, l as isPaymentStatus, n as GATEWAY_TYPE_VALUES, o as PAYMENT_STATUS_VALUES, r as PAYMENT_GATEWAY_TYPE, s as isGatewayType, t as GATEWAY_TYPES } from "../payment.enums-tEFVa-Xp.mjs";
1
+ import { A as isReleaseReason, C as HOLD_REASON_VALUES, D as RELEASE_REASON_VALUES, E as RELEASE_REASON, F as TRANSACTION_STATUS, I as TRANSACTION_STATUS_VALUES, L as isLibraryCategory, M as LIBRARY_CATEGORY_VALUES, N as TRANSACTION_FLOW, O as isHoldReason, P as TRANSACTION_FLOW_VALUES, R as isTransactionFlow, S as HOLD_REASON, T as HOLD_STATUS_VALUES, _ as PLAN_KEY_VALUES, a as SPLIT_TYPE, b as isPlanKey, c as isSplitStatus, d as SETTLEMENT_STATUS_VALUES, f as SETTLEMENT_TYPE, g as PLAN_KEYS, h as isSettlementType, i as SPLIT_STATUS_VALUES, j as LIBRARY_CATEGORIES, k as isHoldStatus, l as isSplitType, m as isSettlementStatus, n as PAYOUT_METHOD_VALUES, o as SPLIT_TYPE_VALUES, p as SETTLEMENT_TYPE_VALUES, r as SPLIT_STATUS, s as isPayoutMethod, t as PAYOUT_METHOD, u as SETTLEMENT_STATUS, v as SUBSCRIPTION_STATUS, w as HOLD_STATUS, x as isSubscriptionStatus, y as SUBSCRIPTION_STATUS_VALUES, z as isTransactionStatus } from "../split.enums-CQE3ekH1.mjs";
2
+ import { a as PAYMENT_GATEWAY_TYPE_VALUES, c as isPaymentGatewayType, i as PAYMENT_GATEWAY_TYPE, l as isPaymentStatus, n as MONETIZATION_TYPE_VALUES, o as PAYMENT_STATUS, r as isMonetizationType, s as PAYMENT_STATUS_VALUES, t as MONETIZATION_TYPES } from "../monetization.enums-BtiU3t8o.mjs";
5
3
 
6
- //#region src/enums/index.ts
7
- var enums_default = {
8
- TRANSACTION_TYPE,
9
- TRANSACTION_TYPE_VALUES,
10
- TRANSACTION_STATUS,
11
- TRANSACTION_STATUS_VALUES,
12
- LIBRARY_CATEGORIES,
13
- LIBRARY_CATEGORY_VALUES,
14
- isLibraryCategory,
15
- isTransactionType,
16
- isTransactionStatus,
17
- PAYMENT_STATUS,
18
- PAYMENT_STATUS_VALUES,
19
- PAYMENT_GATEWAY_TYPE,
20
- PAYMENT_GATEWAY_TYPE_VALUES,
21
- GATEWAY_TYPES,
22
- GATEWAY_TYPE_VALUES,
23
- isPaymentStatus,
24
- isPaymentGatewayType,
25
- isGatewayType,
26
- SUBSCRIPTION_STATUS,
27
- SUBSCRIPTION_STATUS_VALUES,
28
- PLAN_KEYS,
29
- PLAN_KEY_VALUES,
30
- isSubscriptionStatus,
31
- isPlanKey,
32
- MONETIZATION_TYPES,
33
- MONETIZATION_TYPE_VALUES,
34
- isMonetizationType,
35
- HOLD_STATUS,
36
- HOLD_STATUS_VALUES,
37
- RELEASE_REASON,
38
- RELEASE_REASON_VALUES,
39
- HOLD_REASON,
40
- HOLD_REASON_VALUES,
41
- isHoldStatus,
42
- isReleaseReason,
43
- isHoldReason,
44
- SPLIT_TYPE,
45
- SPLIT_TYPE_VALUES,
46
- SPLIT_STATUS,
47
- SPLIT_STATUS_VALUES,
48
- PAYOUT_METHOD,
49
- PAYOUT_METHOD_VALUES,
50
- isSplitType,
51
- isSplitStatus,
52
- isPayoutMethod
53
- };
54
-
55
- //#endregion
56
- 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 };
4
+ export { 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, isHoldReason, isHoldStatus, isLibraryCategory, isMonetizationType, isPaymentGatewayType, isPaymentStatus, isPayoutMethod, isPlanKey, isReleaseReason, isSettlementStatus, isSettlementType, isSplitStatus, isSplitType, isSubscriptionStatus, isTransactionFlow, isTransactionStatus };
@@ -0,0 +1,92 @@
1
+ //#region src/core/errors.ts
2
+ var RevenueError = class extends Error {
3
+ constructor(message, code, details) {
4
+ super(message);
5
+ this.code = code;
6
+ this.details = details;
7
+ this.name = "RevenueError";
8
+ }
9
+ };
10
+ var ValidationError = class extends RevenueError {
11
+ constructor(message, details) {
12
+ super(message, "VALIDATION_ERROR", details);
13
+ this.name = "ValidationError";
14
+ }
15
+ };
16
+ var ConfigurationError = class extends RevenueError {
17
+ constructor(message, details) {
18
+ super(message, "CONFIGURATION_ERROR", details);
19
+ this.name = "ConfigurationError";
20
+ }
21
+ };
22
+ var ProviderNotFoundError = class extends RevenueError {
23
+ constructor(providerName) {
24
+ super(`Payment provider '${providerName}' not found`, "PROVIDER_NOT_FOUND", { providerName });
25
+ this.name = "ProviderNotFoundError";
26
+ }
27
+ };
28
+ var TransactionNotFoundError = class extends RevenueError {
29
+ constructor(transactionId) {
30
+ super(`Transaction '${transactionId}' not found`, "TRANSACTION_NOT_FOUND", { transactionId });
31
+ this.name = "TransactionNotFoundError";
32
+ }
33
+ };
34
+ var SubscriptionNotFoundError = class extends RevenueError {
35
+ constructor(subscriptionId) {
36
+ super(`Subscription '${subscriptionId}' not found`, "SUBSCRIPTION_NOT_FOUND", { subscriptionId });
37
+ this.name = "SubscriptionNotFoundError";
38
+ }
39
+ };
40
+ var SettlementNotFoundError = class extends RevenueError {
41
+ constructor(settlementId) {
42
+ super(`Settlement '${settlementId}' not found`, "SETTLEMENT_NOT_FOUND", { settlementId });
43
+ this.name = "SettlementNotFoundError";
44
+ }
45
+ };
46
+ var PaymentIntentCreationError = class extends RevenueError {
47
+ constructor(message, details) {
48
+ super(message, "PAYMENT_INTENT_CREATION_ERROR", details);
49
+ this.name = "PaymentIntentCreationError";
50
+ }
51
+ };
52
+ var ProviderCapabilityError = class extends RevenueError {
53
+ constructor(provider, capability) {
54
+ super(`Provider '${provider}' does not support '${capability}'`, "PROVIDER_CAPABILITY_ERROR", {
55
+ provider,
56
+ capability
57
+ });
58
+ this.name = "ProviderCapabilityError";
59
+ }
60
+ };
61
+ var InvalidStateTransitionError = class extends RevenueError {
62
+ constructor(resourceType, resourceId, from, to) {
63
+ super(`Invalid ${resourceType} state transition: ${from} → ${to} (resource: ${resourceId})`, "INVALID_STATE_TRANSITION", {
64
+ resourceType,
65
+ resourceId,
66
+ from,
67
+ to
68
+ });
69
+ this.name = "InvalidStateTransitionError";
70
+ }
71
+ };
72
+ var AlreadyVerifiedError = class extends RevenueError {
73
+ constructor(transactionId) {
74
+ super(`Transaction '${transactionId}' is already verified`, "ALREADY_VERIFIED", { transactionId });
75
+ this.name = "AlreadyVerifiedError";
76
+ }
77
+ };
78
+ var RefundNotSupportedError = class extends RevenueError {
79
+ constructor(provider) {
80
+ super(`Provider '${provider}' does not support refunds`, "REFUND_NOT_SUPPORTED", { provider });
81
+ this.name = "RefundNotSupportedError";
82
+ }
83
+ };
84
+ var PaymentVerificationError = class extends RevenueError {
85
+ constructor(message, details) {
86
+ super(message, "PAYMENT_VERIFICATION_ERROR", details);
87
+ this.name = "PaymentVerificationError";
88
+ }
89
+ };
90
+
91
+ //#endregion
92
+ export { PaymentVerificationError as a, RefundNotSupportedError as c, SubscriptionNotFoundError as d, TransactionNotFoundError as f, PaymentIntentCreationError as i, RevenueError as l, ConfigurationError as n, ProviderCapabilityError as o, ValidationError as p, InvalidStateTransitionError as r, ProviderNotFoundError as s, AlreadyVerifiedError as t, SettlementNotFoundError as u };
@@ -0,0 +1,322 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/validators/transaction.schema.ts
4
+ const commissionSchema = z.object({
5
+ rate: z.number().min(0).max(1),
6
+ grossAmount: z.number().int(),
7
+ gatewayFeeRate: z.number().min(0).max(1),
8
+ gatewayFeeAmount: z.number().int(),
9
+ netAmount: z.number().int(),
10
+ status: z.string()
11
+ });
12
+ const holdReleaseSchema = z.object({
13
+ amount: z.number().int(),
14
+ recipientId: z.string(),
15
+ recipientType: z.string(),
16
+ releasedAt: z.coerce.date(),
17
+ releasedBy: z.string().optional(),
18
+ reason: z.string().optional(),
19
+ metadata: z.record(z.string(), z.unknown()).optional()
20
+ });
21
+ const holdSchema = z.object({
22
+ status: z.string(),
23
+ heldAmount: z.number().int(),
24
+ releasedAmount: z.number().int().default(0),
25
+ reason: z.string(),
26
+ heldAt: z.coerce.date(),
27
+ holdUntil: z.coerce.date().optional(),
28
+ releasedAt: z.coerce.date().optional(),
29
+ cancelledAt: z.coerce.date().optional(),
30
+ releases: z.array(holdReleaseSchema).default([]),
31
+ metadata: z.record(z.string(), z.unknown()).optional()
32
+ });
33
+ const gatewaySchema = z.object({
34
+ type: z.string(),
35
+ sessionId: z.string().optional(),
36
+ paymentIntentId: z.string().optional(),
37
+ chargeId: z.string().optional(),
38
+ metadata: z.record(z.string(), z.unknown()).optional(),
39
+ verificationData: z.record(z.string(), z.unknown()).optional()
40
+ });
41
+ const splitInfoSchema = z.object({
42
+ type: z.string(),
43
+ recipientId: z.string(),
44
+ recipientType: z.string(),
45
+ rate: z.number(),
46
+ grossAmount: z.number().int(),
47
+ gatewayFeeRate: z.number(),
48
+ gatewayFeeAmount: z.number().int(),
49
+ netAmount: z.number().int(),
50
+ status: z.string()
51
+ });
52
+ const webhookSchema = z.object({
53
+ eventId: z.string(),
54
+ eventType: z.string(),
55
+ receivedAt: z.coerce.date(),
56
+ processedAt: z.coerce.date(),
57
+ data: z.record(z.string(), z.unknown())
58
+ });
59
+ const transactionBaseSchema = z.object({
60
+ publicId: z.string().optional(),
61
+ organizationId: z.string().optional(),
62
+ customerId: z.string().nullish(),
63
+ type: z.string(),
64
+ flow: z.enum(["inflow", "outflow"]),
65
+ tags: z.array(z.string()).default([]),
66
+ amount: z.number().int().min(0),
67
+ currency: z.string().min(3).max(3),
68
+ fee: z.number().int().default(0),
69
+ tax: z.number().int().default(0),
70
+ net: z.number().int().default(0),
71
+ taxDetails: z.object({
72
+ type: z.enum([
73
+ "sales_tax",
74
+ "vat",
75
+ "none"
76
+ ]).optional(),
77
+ rate: z.number().min(0).max(1).optional(),
78
+ isInclusive: z.boolean().optional()
79
+ }).optional(),
80
+ method: z.string(),
81
+ status: z.string().default("pending"),
82
+ gateway: gatewaySchema.optional(),
83
+ paymentDetails: z.record(z.string(), z.unknown()).optional(),
84
+ commission: commissionSchema.optional(),
85
+ splits: z.array(splitInfoSchema).optional(),
86
+ hold: holdSchema.optional(),
87
+ sourceId: z.string().optional(),
88
+ sourceModel: z.string().optional(),
89
+ relatedTransactionId: z.string().optional(),
90
+ refundedAmount: z.number().int().optional(),
91
+ refundedAt: z.coerce.date().optional(),
92
+ failureReason: z.string().optional(),
93
+ failedAt: z.coerce.date().optional(),
94
+ verifiedAt: z.coerce.date().optional(),
95
+ verifiedBy: z.string().optional(),
96
+ webhook: webhookSchema.optional(),
97
+ idempotencyKey: z.string().optional(),
98
+ metadata: z.record(z.string(), z.unknown()).optional()
99
+ });
100
+ const transactionCreateSchema = transactionBaseSchema.omit({
101
+ publicId: true,
102
+ refundedAmount: true,
103
+ refundedAt: true,
104
+ failureReason: true,
105
+ failedAt: true,
106
+ verifiedAt: true,
107
+ verifiedBy: true,
108
+ webhook: true
109
+ });
110
+ const transactionUpdateSchema = transactionBaseSchema.partial();
111
+ const transactionListFilterSchema = z.object({
112
+ organizationId: z.string().optional(),
113
+ customerId: z.string().optional(),
114
+ type: z.string().optional(),
115
+ flow: z.enum(["inflow", "outflow"]).optional(),
116
+ status: z.string().optional(),
117
+ method: z.string().optional(),
118
+ sourceId: z.string().optional(),
119
+ sourceModel: z.string().optional(),
120
+ minAmount: z.number().int().optional(),
121
+ maxAmount: z.number().int().optional(),
122
+ fromDate: z.coerce.date().optional(),
123
+ toDate: z.coerce.date().optional(),
124
+ page: z.number().int().positive().optional(),
125
+ limit: z.number().int().positive().max(200).optional(),
126
+ sort: z.record(z.string(), z.union([z.literal(1), z.literal(-1)])).optional()
127
+ });
128
+
129
+ //#endregion
130
+ //#region src/validators/subscription.schema.ts
131
+ const subscriptionBaseSchema = z.object({
132
+ publicId: z.string().optional(),
133
+ organizationId: z.string().optional(),
134
+ customerId: z.string().nullish(),
135
+ planKey: z.string(),
136
+ amount: z.number().int().min(0),
137
+ currency: z.string().min(3).max(3).optional(),
138
+ status: z.string().default("pending"),
139
+ isActive: z.boolean().default(false),
140
+ transactionId: z.string().nullish(),
141
+ paymentIntentId: z.string().nullish(),
142
+ startDate: z.coerce.date().optional(),
143
+ endDate: z.coerce.date().optional(),
144
+ activatedAt: z.coerce.date().optional(),
145
+ pausedAt: z.coerce.date().optional(),
146
+ pauseReason: z.string().optional(),
147
+ canceledAt: z.coerce.date().optional(),
148
+ cancelAt: z.coerce.date().optional(),
149
+ cancellationReason: z.string().optional(),
150
+ renewalTransactionId: z.string().optional(),
151
+ renewalCount: z.number().int().default(0),
152
+ metadata: z.record(z.string(), z.unknown()).optional()
153
+ });
154
+ const subscriptionCreateSchema = subscriptionBaseSchema.omit({
155
+ publicId: true,
156
+ status: true,
157
+ isActive: true,
158
+ activatedAt: true,
159
+ pausedAt: true,
160
+ canceledAt: true,
161
+ renewalCount: true
162
+ });
163
+ const subscriptionUpdateSchema = subscriptionBaseSchema.partial();
164
+ const subscriptionListFilterSchema = z.object({
165
+ organizationId: z.string().optional(),
166
+ customerId: z.string().optional(),
167
+ planKey: z.string().optional(),
168
+ status: z.string().optional(),
169
+ isActive: z.boolean().optional(),
170
+ page: z.number().int().positive().optional(),
171
+ limit: z.number().int().positive().max(200).optional(),
172
+ sort: z.record(z.string(), z.union([z.literal(1), z.literal(-1)])).optional()
173
+ });
174
+
175
+ //#endregion
176
+ //#region src/validators/settlement.schema.ts
177
+ const settlementBaseSchema = z.object({
178
+ publicId: z.string().optional(),
179
+ organizationId: z.string(),
180
+ recipientId: z.string(),
181
+ recipientType: z.enum([
182
+ "platform",
183
+ "organization",
184
+ "user",
185
+ "affiliate",
186
+ "partner"
187
+ ]),
188
+ type: z.enum([
189
+ "split_payout",
190
+ "platform_withdrawal",
191
+ "manual_payout",
192
+ "escrow_release"
193
+ ]),
194
+ status: z.string().default("pending"),
195
+ payoutMethod: z.enum([
196
+ "bank_transfer",
197
+ "mobile_wallet",
198
+ "platform_balance",
199
+ "crypto",
200
+ "check",
201
+ "manual"
202
+ ]),
203
+ amount: z.number().int().min(0),
204
+ currency: z.string().min(3).max(3),
205
+ sourceTransactionIds: z.array(z.string()).default([]),
206
+ sourceSplitIds: z.array(z.string()).default([]),
207
+ bankTransferDetails: z.object({
208
+ accountNumber: z.string().optional(),
209
+ accountName: z.string().optional(),
210
+ bankName: z.string().optional(),
211
+ routingNumber: z.string().optional(),
212
+ swiftCode: z.string().optional(),
213
+ iban: z.string().optional(),
214
+ transferReference: z.string().optional(),
215
+ transferredAt: z.coerce.date().optional()
216
+ }).optional(),
217
+ mobileWalletDetails: z.object({
218
+ provider: z.string().optional(),
219
+ phoneNumber: z.string().optional(),
220
+ accountNumber: z.string().optional(),
221
+ transactionId: z.string().optional(),
222
+ transferredAt: z.coerce.date().optional()
223
+ }).optional(),
224
+ cryptoDetails: z.object({
225
+ network: z.string().optional(),
226
+ walletAddress: z.string().optional(),
227
+ transactionHash: z.string().optional(),
228
+ transferredAt: z.coerce.date().optional()
229
+ }).optional(),
230
+ scheduledAt: z.coerce.date().default(() => /* @__PURE__ */ new Date()),
231
+ processedAt: z.coerce.date().optional(),
232
+ completedAt: z.coerce.date().optional(),
233
+ failedAt: z.coerce.date().optional(),
234
+ cancelledAt: z.coerce.date().optional(),
235
+ failureReason: z.string().optional(),
236
+ failureCode: z.string().optional(),
237
+ retryCount: z.number().int().default(0),
238
+ notes: z.string().optional(),
239
+ metadata: z.record(z.string(), z.unknown()).optional()
240
+ });
241
+ const settlementCreateSchema = settlementBaseSchema.omit({
242
+ publicId: true,
243
+ status: true,
244
+ processedAt: true,
245
+ completedAt: true,
246
+ failedAt: true,
247
+ cancelledAt: true,
248
+ failureReason: true,
249
+ failureCode: true,
250
+ retryCount: true
251
+ });
252
+ const settlementUpdateSchema = settlementBaseSchema.partial();
253
+ const settlementListFilterSchema = z.object({
254
+ organizationId: z.string().optional(),
255
+ recipientId: z.string().optional(),
256
+ recipientType: z.string().optional(),
257
+ status: z.string().optional(),
258
+ payoutMethod: z.string().optional(),
259
+ fromDate: z.coerce.date().optional(),
260
+ toDate: z.coerce.date().optional(),
261
+ page: z.number().int().positive().optional(),
262
+ limit: z.number().int().positive().max(200).optional(),
263
+ sort: z.record(z.string(), z.union([z.literal(1), z.literal(-1)])).optional()
264
+ });
265
+
266
+ //#endregion
267
+ //#region src/validators/payment.schema.ts
268
+ const paymentIntentSchema = z.object({
269
+ amount: z.number().int().min(1),
270
+ currency: z.string().min(3).max(3),
271
+ gateway: z.string(),
272
+ customerId: z.string().optional(),
273
+ sourceId: z.string().optional(),
274
+ sourceModel: z.string().optional(),
275
+ monetizationType: z.enum([
276
+ "purchase",
277
+ "subscription",
278
+ "free"
279
+ ]).default("purchase"),
280
+ planKey: z.string().optional(),
281
+ paymentData: z.record(z.string(), z.unknown()).optional(),
282
+ metadata: z.record(z.string(), z.unknown()).optional(),
283
+ idempotencyKey: z.string().optional()
284
+ });
285
+ const paymentVerifySchema = z.object({
286
+ paymentIntentId: z.string(),
287
+ verifiedBy: z.string().optional()
288
+ });
289
+ const refundSchema = z.object({
290
+ transactionId: z.string(),
291
+ amount: z.number().int().min(1).optional(),
292
+ reason: z.string().optional()
293
+ });
294
+
295
+ //#endregion
296
+ //#region src/validators/escrow.schema.ts
297
+ const escrowHoldSchema = z.object({
298
+ transactionId: z.string(),
299
+ amount: z.number().int().min(1).optional(),
300
+ reason: z.string().optional(),
301
+ holdUntil: z.coerce.date().optional(),
302
+ metadata: z.record(z.string(), z.unknown()).optional()
303
+ });
304
+ const escrowReleaseSchema = z.object({
305
+ transactionId: z.string(),
306
+ amount: z.number().int().min(1).optional(),
307
+ recipientId: z.string(),
308
+ recipientType: z.string(),
309
+ reason: z.string().optional(),
310
+ releasedBy: z.string().optional(),
311
+ createTransaction: z.boolean().default(true),
312
+ metadata: z.record(z.string(), z.unknown()).optional()
313
+ });
314
+ const splitRuleSchema = z.object({
315
+ type: z.string(),
316
+ recipientId: z.string(),
317
+ recipientType: z.string(),
318
+ rate: z.number().min(0).max(1)
319
+ });
320
+
321
+ //#endregion
322
+ export { transactionListFilterSchema as _, paymentVerifySchema as a, settlementCreateSchema as c, subscriptionBaseSchema as d, subscriptionCreateSchema as f, transactionCreateSchema as g, transactionBaseSchema as h, paymentIntentSchema as i, settlementListFilterSchema as l, subscriptionUpdateSchema as m, escrowReleaseSchema as n, refundSchema as o, subscriptionListFilterSchema as p, splitRuleSchema as r, settlementBaseSchema as s, escrowHoldSchema as t, settlementUpdateSchema as u, transactionUpdateSchema as v };