@classytic/revenue 2.0.1 → 2.1.3

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 (45) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +33 -10
  3. package/dist/bank-feed-BlQeq2rK.mjs +133 -0
  4. package/dist/bank-feed.enums-BadqNJTC.d.mts +118 -0
  5. package/dist/bank-feed.enums-kYTLTTbe.mjs +165 -0
  6. package/dist/bridges/index.d.mts +1 -1
  7. package/dist/core/state-machines.d.mts +25 -2
  8. package/dist/core/state-machines.mjs +43 -3
  9. package/dist/engine-types-Jctrbasz.d.mts +1160 -0
  10. package/dist/enums/index.d.mts +4 -3
  11. package/dist/enums/index.mjs +4 -3
  12. package/dist/{errors-DHa8JVQ-.mjs → errors-LYYg9wcs.mjs} +23 -1
  13. package/dist/{escrow.schema-D5X32LwX.d.mts → escrow.schema-YuBgjL-I.d.mts} +27 -27
  14. package/dist/{event-constants-CEMitnIV.mjs → event-constants-Dn1TKahe.mjs} +6 -0
  15. package/dist/events/index.d.mts +2 -2
  16. package/dist/events/index.mjs +3 -3
  17. package/dist/index.d.mts +32 -13
  18. package/dist/index.mjs +142 -19
  19. package/dist/providers/index.d.mts +2 -2
  20. package/dist/providers/index.mjs +2 -2
  21. package/dist/registry-h8sasoLh.d.mts +145 -0
  22. package/dist/repositories/create-repositories.d.mts +1 -1
  23. package/dist/repositories/create-repositories.mjs +1 -1
  24. package/dist/{revenue-bridges-sdlrR85c.d.mts → revenue-bridges-BtkWFsJu.d.mts} +107 -1
  25. package/dist/{revenue-event-catalog-LqxPnsU_.mjs → revenue-event-catalog-BvjNVnPd.mjs} +77 -3
  26. package/dist/{revenue-event-catalog-BX3g7RUi.d.mts → revenue-event-catalog-JpJcyK1E.d.mts} +198 -2
  27. package/dist/settlement.repository-BAdc9qGl.mjs +1444 -0
  28. package/dist/shared/index.d.mts +1 -1
  29. package/dist/shared/index.mjs +2 -2
  30. package/dist/{subscription.enums-tfoAgsTv.mjs → subscription.enums-95othr0i.mjs} +1 -40
  31. package/dist/{transaction.enums-u4MshXcL.d.mts → subscription.enums-k24kLpF7.d.mts} +1 -36
  32. package/dist/validators/index.d.mts +158 -2
  33. package/dist/validators/index.mjs +95 -2
  34. package/package.json +7 -7
  35. package/dist/engine-types-CcjIb4Fy.d.mts +0 -611
  36. package/dist/registry-DhFMsSn5.mjs +0 -150
  37. package/dist/registry-SvIGPAx_.d.mts +0 -143
  38. package/dist/settlement.repository-DHIPx5S4.mjs +0 -771
  39. /package/dist/{audit-B39B0Sdq.mjs → audit-Ba2XB2C4.mjs} +0 -0
  40. /package/dist/{audit-DZ0eTr9g.d.mts → audit-DRKuLBFO.d.mts} +0 -0
  41. /package/dist/{context-DRqSeTPM.d.mts → context-pjP1QeE3.d.mts} +0 -0
  42. /package/dist/{escrow.schema-BBv9oVEW.mjs → escrow.schema-C-b41z_G.mjs} +0 -0
  43. /package/dist/{monetization.enums-BtiU3t8o.mjs → monetization.enums-B9HBOecd.mjs} +0 -0
  44. /package/dist/{monetization.enums-D2xbxXJM.d.mts → monetization.enums-DzAI4sT7.d.mts} +0 -0
  45. /package/dist/{splits-BAfY-a9P.mjs → splits-CNfQj92L.mjs} +0 -0
@@ -1,2 +1,2 @@
1
- import { A as SplitInfo, B as validateTaxCalculation, C as multiplyMoney, D as toCurrencyCode, E as sumMoney, F as TaxConfig, H as calculateCommission, I as TaxType, L as calculateTax, M as calculateOrganizationPayout, N as calculateSplits, O as toMajor, P as TaxCalculation, R as getTaxType, S as money, T as subtractMoney, U as reverseCommission, V as CommissionInfo, _ as isMoney, a as CurrencyCode, b as isZeroMoney, c as Money, d as addMoney, f as compareMoney, g as isCurrencyCode, h as fromSmallestUnit, i as CURRENCIES, j as SplitRule, k as toSmallestUnit, l as MoneyValue, m as fromMajor, n as getAuditTrail, o as CurrencyMismatchError, p as equalsMoney, r as getLastStateChange, s as MINOR_UNIT_FACTOR, t as appendAuditEvent, u as absMoney, v as isNegativeMoney, w as negateMoney, x as minorUnitFactor, y as isPositiveMoney, z as reverseTax } from "../audit-DZ0eTr9g.mjs";
1
+ import { A as SplitInfo, B as validateTaxCalculation, C as multiplyMoney, D as toCurrencyCode, E as sumMoney, F as TaxConfig, H as calculateCommission, I as TaxType, L as calculateTax, M as calculateOrganizationPayout, N as calculateSplits, O as toMajor, P as TaxCalculation, R as getTaxType, S as money, T as subtractMoney, U as reverseCommission, V as CommissionInfo, _ as isMoney, a as CurrencyCode, b as isZeroMoney, c as Money, d as addMoney, f as compareMoney, g as isCurrencyCode, h as fromSmallestUnit, i as CURRENCIES, j as SplitRule, k as toSmallestUnit, l as MoneyValue, m as fromMajor, n as getAuditTrail, o as CurrencyMismatchError, p as equalsMoney, r as getLastStateChange, s as MINOR_UNIT_FACTOR, t as appendAuditEvent, u as absMoney, v as isNegativeMoney, w as negateMoney, x as minorUnitFactor, y as isPositiveMoney, z as reverseTax } from "../audit-DRKuLBFO.mjs";
2
2
  export { CURRENCIES, CommissionInfo, type CurrencyCode, CurrencyMismatchError, MINOR_UNIT_FACTOR, type Money, type MoneyValue, SplitInfo, SplitRule, TaxCalculation, TaxConfig, TaxType, absMoney, addMoney, appendAuditEvent, calculateCommission, calculateOrganizationPayout, calculateSplits, calculateTax, compareMoney, equalsMoney, fromMajor, fromSmallestUnit, getAuditTrail, getLastStateChange, getTaxType, isCurrencyCode, isMoney, isNegativeMoney, isPositiveMoney, isZeroMoney, minorUnitFactor, money, multiplyMoney, negateMoney, reverseCommission, reverseTax, subtractMoney, sumMoney, toCurrencyCode, toMajor, toSmallestUnit, validateTaxCalculation };
@@ -1,4 +1,4 @@
1
- import { a as reverseTax, c as reverseCommission, i as getTaxType, n as calculateSplits, o as validateTaxCalculation, r as calculateTax, s as calculateCommission, t as calculateOrganizationPayout } from "../splits-BAfY-a9P.mjs";
2
- import { C as sumMoney, E as toSmallestUnit, S as subtractMoney, T as toMajor, _ as isZeroMoney, a as CurrencyMismatchError, b as multiplyMoney, c as addMoney, d as fromMajor, f as fromSmallestUnit, g as isPositiveMoney, h as isNegativeMoney, i as CURRENCIES, l as compareMoney, m as isMoney, n as getAuditTrail, o as MINOR_UNIT_FACTOR, p as isCurrencyCode, r as getLastStateChange, s as absMoney, t as appendAuditEvent, u as equalsMoney, v as minorUnitFactor, w as toCurrencyCode, x as negateMoney, y as money } from "../audit-B39B0Sdq.mjs";
1
+ import { a as reverseTax, c as reverseCommission, i as getTaxType, n as calculateSplits, o as validateTaxCalculation, r as calculateTax, s as calculateCommission, t as calculateOrganizationPayout } from "../splits-CNfQj92L.mjs";
2
+ import { C as sumMoney, E as toSmallestUnit, S as subtractMoney, T as toMajor, _ as isZeroMoney, a as CurrencyMismatchError, b as multiplyMoney, c as addMoney, d as fromMajor, f as fromSmallestUnit, g as isPositiveMoney, h as isNegativeMoney, i as CURRENCIES, l as compareMoney, m as isMoney, n as getAuditTrail, o as MINOR_UNIT_FACTOR, p as isCurrencyCode, r as getLastStateChange, s as absMoney, t as appendAuditEvent, u as equalsMoney, v as minorUnitFactor, w as toCurrencyCode, x as negateMoney, y as money } from "../audit-Ba2XB2C4.mjs";
3
3
 
4
4
  export { CURRENCIES, CurrencyMismatchError, MINOR_UNIT_FACTOR, absMoney, addMoney, appendAuditEvent, calculateCommission, calculateOrganizationPayout, calculateSplits, calculateTax, compareMoney, equalsMoney, fromMajor, fromSmallestUnit, getAuditTrail, getLastStateChange, getTaxType, isCurrencyCode, isMoney, isNegativeMoney, isPositiveMoney, isZeroMoney, minorUnitFactor, money, multiplyMoney, negateMoney, reverseCommission, reverseTax, subtractMoney, sumMoney, toCurrencyCode, toMajor, toSmallestUnit, validateTaxCalculation };
@@ -1,42 +1,3 @@
1
- //#region src/enums/transaction.enums.ts
2
- const TRANSACTION_FLOW = {
3
- INFLOW: "inflow",
4
- OUTFLOW: "outflow"
5
- };
6
- const TRANSACTION_FLOW_VALUES = Object.values(TRANSACTION_FLOW);
7
- const TRANSACTION_STATUS = {
8
- PENDING: "pending",
9
- PAYMENT_INITIATED: "payment_initiated",
10
- PROCESSING: "processing",
11
- REQUIRES_ACTION: "requires_action",
12
- VERIFIED: "verified",
13
- COMPLETED: "completed",
14
- FAILED: "failed",
15
- CANCELLED: "cancelled",
16
- EXPIRED: "expired",
17
- REFUNDED: "refunded",
18
- PARTIALLY_REFUNDED: "partially_refunded"
19
- };
20
- const TRANSACTION_STATUS_VALUES = Object.values(TRANSACTION_STATUS);
21
- const LIBRARY_CATEGORIES = {
22
- SUBSCRIPTION: "subscription",
23
- PURCHASE: "purchase"
24
- };
25
- const LIBRARY_CATEGORY_VALUES = Object.values(LIBRARY_CATEGORIES);
26
- const transactionFlowSet = new Set(TRANSACTION_FLOW_VALUES);
27
- const transactionStatusSet = new Set(TRANSACTION_STATUS_VALUES);
28
- const libraryCategorySet = new Set(LIBRARY_CATEGORY_VALUES);
29
- function isLibraryCategory(value) {
30
- return typeof value === "string" && libraryCategorySet.has(value);
31
- }
32
- function isTransactionFlow(value) {
33
- return typeof value === "string" && transactionFlowSet.has(value);
34
- }
35
- function isTransactionStatus(value) {
36
- return typeof value === "string" && transactionStatusSet.has(value);
37
- }
38
-
39
- //#endregion
40
1
  //#region src/enums/escrow.enums.ts
41
2
  const HOLD_STATUS = {
42
3
  PENDING: "pending",
@@ -169,4 +130,4 @@ function isPlanKey(value) {
169
130
  }
170
131
 
171
132
  //#endregion
172
- export { isReleaseReason as A, HOLD_REASON_VALUES as C, RELEASE_REASON_VALUES as D, RELEASE_REASON as E, TRANSACTION_STATUS as F, TRANSACTION_STATUS_VALUES as I, isLibraryCategory as L, LIBRARY_CATEGORY_VALUES as M, TRANSACTION_FLOW as N, isHoldReason as O, TRANSACTION_FLOW_VALUES as P, isTransactionFlow as R, HOLD_REASON as S, HOLD_STATUS_VALUES as T, SETTLEMENT_STATUS_VALUES as _, isPlanKey as a, isSettlementStatus as b, PAYOUT_METHOD_VALUES as c, SPLIT_TYPE as d, SPLIT_TYPE_VALUES as f, SETTLEMENT_STATUS as g, isSplitType as h, SUBSCRIPTION_STATUS_VALUES as i, LIBRARY_CATEGORIES as j, isHoldStatus as k, SPLIT_STATUS as l, isSplitStatus as m, PLAN_KEY_VALUES as n, isSubscriptionStatus as o, isPayoutMethod as p, SUBSCRIPTION_STATUS as r, PAYOUT_METHOD as s, PLAN_KEYS as t, SPLIT_STATUS_VALUES as u, SETTLEMENT_TYPE as v, HOLD_STATUS as w, isSettlementType as x, SETTLEMENT_TYPE_VALUES as y, isTransactionStatus as z };
133
+ export { isReleaseReason as A, HOLD_REASON_VALUES as C, RELEASE_REASON_VALUES as D, RELEASE_REASON as E, isHoldReason as O, HOLD_REASON as S, HOLD_STATUS_VALUES as T, SETTLEMENT_STATUS_VALUES as _, isPlanKey as a, isSettlementStatus as b, PAYOUT_METHOD_VALUES as c, SPLIT_TYPE as d, SPLIT_TYPE_VALUES as f, SETTLEMENT_STATUS as g, isSplitType as h, SUBSCRIPTION_STATUS_VALUES as i, isHoldStatus as k, SPLIT_STATUS as l, isSplitStatus as m, PLAN_KEY_VALUES as n, isSubscriptionStatus as o, isPayoutMethod as p, SUBSCRIPTION_STATUS as r, PAYOUT_METHOD as s, PLAN_KEYS as t, SPLIT_STATUS_VALUES as u, SETTLEMENT_TYPE as v, HOLD_STATUS as w, isSettlementType as x, SETTLEMENT_TYPE_VALUES as y };
@@ -116,39 +116,4 @@ declare const PLAN_KEY_VALUES: PlanKeyValue[];
116
116
  declare function isSubscriptionStatus(value: unknown): value is SubscriptionStatusValue;
117
117
  declare function isPlanKey(value: unknown): value is PlanKeyValue;
118
118
  //#endregion
119
- //#region src/enums/transaction.enums.d.ts
120
- declare const TRANSACTION_FLOW: {
121
- readonly INFLOW: "inflow";
122
- readonly OUTFLOW: "outflow";
123
- };
124
- type TransactionFlow = typeof TRANSACTION_FLOW;
125
- type TransactionFlowValue = TransactionFlow[keyof TransactionFlow];
126
- declare const TRANSACTION_FLOW_VALUES: TransactionFlowValue[];
127
- declare const TRANSACTION_STATUS: {
128
- readonly PENDING: "pending";
129
- readonly PAYMENT_INITIATED: "payment_initiated";
130
- readonly PROCESSING: "processing";
131
- readonly REQUIRES_ACTION: "requires_action";
132
- readonly VERIFIED: "verified";
133
- readonly COMPLETED: "completed";
134
- readonly FAILED: "failed";
135
- readonly CANCELLED: "cancelled";
136
- readonly EXPIRED: "expired";
137
- readonly REFUNDED: "refunded";
138
- readonly PARTIALLY_REFUNDED: "partially_refunded";
139
- };
140
- type TransactionStatus = typeof TRANSACTION_STATUS;
141
- type TransactionStatusValue = TransactionStatus[keyof TransactionStatus];
142
- declare const TRANSACTION_STATUS_VALUES: TransactionStatusValue[];
143
- declare const LIBRARY_CATEGORIES: {
144
- readonly SUBSCRIPTION: "subscription";
145
- readonly PURCHASE: "purchase";
146
- };
147
- type LibraryCategories = typeof LIBRARY_CATEGORIES;
148
- type LibraryCategoryValue = LibraryCategories[keyof LibraryCategories];
149
- declare const LIBRARY_CATEGORY_VALUES: LibraryCategoryValue[];
150
- declare function isLibraryCategory(value: unknown): value is LibraryCategoryValue;
151
- declare function isTransactionFlow(value: unknown): value is TransactionFlowValue;
152
- declare function isTransactionStatus(value: unknown): value is TransactionStatusValue;
153
- //#endregion
154
- export { HOLD_STATUS as $, SPLIT_STATUS as A, isSplitType as B, SubscriptionStatusValue as C, PAYOUT_METHOD_VALUES as D, PAYOUT_METHOD as E, SplitStatusValue as F, SettlementStatus as G, SETTLEMENT_STATUS_VALUES as H, SplitType as I, SettlementTypeValue as J, SettlementStatusValue as K, SplitTypeValue as L, SPLIT_TYPE as M, SPLIT_TYPE_VALUES as N, PayoutMethod as O, SplitStatus as P, HOLD_REASON_VALUES as Q, isPayoutMethod as R, SubscriptionStatus as S, isSubscriptionStatus as T, SETTLEMENT_TYPE as U, SETTLEMENT_STATUS as V, SETTLEMENT_TYPE_VALUES as W, isSettlementType as X, isSettlementStatus as Y, HOLD_REASON as Z, PLAN_KEY_VALUES as _, TRANSACTION_FLOW as a, RELEASE_REASON as at, SUBSCRIPTION_STATUS as b, TRANSACTION_STATUS_VALUES as c, ReleaseReasonValue as ct, TransactionStatus as d, isReleaseReason as dt, HOLD_STATUS_VALUES as et, TransactionStatusValue as f, PLAN_KEYS as g, isTransactionStatus as h, LibraryCategoryValue as i, HoldStatusValue as it, SPLIT_STATUS_VALUES as j, PayoutMethodValue as k, TransactionFlow as l, isHoldReason as lt, isTransactionFlow as m, LIBRARY_CATEGORY_VALUES as n, HoldReasonValue as nt, TRANSACTION_FLOW_VALUES as o, RELEASE_REASON_VALUES as ot, isLibraryCategory as p, SettlementType as q, LibraryCategories as r, HoldStatus as rt, TRANSACTION_STATUS as s, ReleaseReason as st, LIBRARY_CATEGORIES as t, HoldReason as tt, TransactionFlowValue as u, isHoldStatus as ut, PlanKeyValue as v, isPlanKey as w, SUBSCRIPTION_STATUS_VALUES as x, PlanKeys as y, isSplitStatus as z };
119
+ export { SettlementStatus as A, HoldReason as B, isPayoutMethod as C, SETTLEMENT_STATUS_VALUES as D, SETTLEMENT_STATUS as E, isSettlementType as F, RELEASE_REASON_VALUES as G, HoldStatus as H, HOLD_REASON as I, isHoldReason as J, ReleaseReason as K, HOLD_REASON_VALUES as L, SettlementType as M, SettlementTypeValue as N, SETTLEMENT_TYPE as O, isSettlementStatus as P, HOLD_STATUS as R, SplitTypeValue as S, isSplitType as T, HoldStatusValue as U, HoldReasonValue as V, RELEASE_REASON as W, isReleaseReason as X, isHoldStatus as Y, SPLIT_TYPE as _, SUBSCRIPTION_STATUS as a, SplitStatusValue as b, SubscriptionStatusValue as c, PAYOUT_METHOD as d, PAYOUT_METHOD_VALUES as f, SPLIT_STATUS_VALUES as g, SPLIT_STATUS as h, PlanKeys as i, SettlementStatusValue as j, SETTLEMENT_TYPE_VALUES as k, isPlanKey as l, PayoutMethodValue as m, PLAN_KEY_VALUES as n, SUBSCRIPTION_STATUS_VALUES as o, PayoutMethod as p, ReleaseReasonValue as q, PlanKeyValue as r, SubscriptionStatus as s, PLAN_KEYS as t, isSubscriptionStatus as u, SPLIT_TYPE_VALUES as v, isSplitStatus as w, SplitType as x, SplitStatus as y, HOLD_STATUS_VALUES as z };
@@ -1,2 +1,158 @@
1
- import { A as transactionBaseSchema, C as subscriptionBaseSchema, D as TransactionCreateInput, E as subscriptionUpdateSchema, M as transactionListFilterSchema, N as transactionUpdateSchema, O as TransactionListFilter, S as SubscriptionUpdateInput, T as subscriptionListFilterSchema, _ as settlementCreateSchema, a as escrowReleaseSchema, b as SubscriptionCreateInput, c as PaymentVerifyInput, d as paymentVerifySchema, f as refundSchema, g as settlementBaseSchema, h as SettlementUpdateInput, i as escrowHoldSchema, j as transactionCreateSchema, k as TransactionUpdateInput, l as RefundInput, m as SettlementListFilter, n as EscrowReleaseInput, o as splitRuleSchema, p as SettlementCreateInput, r as SplitRuleInput, s as PaymentIntentInput, t as EscrowHoldInput, u as paymentIntentSchema, v as settlementListFilterSchema, w as subscriptionCreateSchema, x as SubscriptionListFilter, y as settlementUpdateSchema } from "../escrow.schema-D5X32LwX.mjs";
2
- export { EscrowHoldInput, EscrowReleaseInput, PaymentIntentInput, PaymentVerifyInput, RefundInput, SettlementCreateInput, SettlementListFilter, SettlementUpdateInput, SplitRuleInput, SubscriptionCreateInput, SubscriptionListFilter, SubscriptionUpdateInput, TransactionCreateInput, TransactionListFilter, TransactionUpdateInput, escrowHoldSchema, escrowReleaseSchema, paymentIntentSchema, paymentVerifySchema, refundSchema, settlementBaseSchema, settlementCreateSchema, settlementListFilterSchema, settlementUpdateSchema, splitRuleSchema, subscriptionBaseSchema, subscriptionCreateSchema, subscriptionListFilterSchema, subscriptionUpdateSchema, transactionBaseSchema, transactionCreateSchema, transactionListFilterSchema, transactionUpdateSchema };
1
+ import { A as transactionBaseSchema, C as subscriptionBaseSchema, D as TransactionCreateInput, E as subscriptionUpdateSchema, M as transactionListFilterSchema, N as transactionUpdateSchema, O as TransactionListFilter, S as SubscriptionUpdateInput, T as subscriptionListFilterSchema, _ as settlementCreateSchema, a as escrowReleaseSchema, b as SubscriptionCreateInput, c as PaymentVerifyInput, d as paymentVerifySchema, f as refundSchema, g as settlementBaseSchema, h as SettlementUpdateInput, i as escrowHoldSchema, j as transactionCreateSchema, k as TransactionUpdateInput, l as RefundInput, m as SettlementListFilter, n as EscrowReleaseInput, o as splitRuleSchema, p as SettlementCreateInput, r as SplitRuleInput, s as PaymentIntentInput, t as EscrowHoldInput, u as paymentIntentSchema, v as settlementListFilterSchema, w as subscriptionCreateSchema, x as SubscriptionListFilter, y as settlementUpdateSchema } from "../escrow.schema-YuBgjL-I.mjs";
2
+ import { z } from "zod";
3
+
4
+ //#region src/validators/bank-feed.schema.d.ts
5
+ declare const moneySchema: z.ZodObject<{
6
+ amount: z.ZodNumber;
7
+ currency: z.ZodString;
8
+ }, z.core.$strip>;
9
+ declare const counterpartySchema: z.ZodObject<{
10
+ name: z.ZodOptional<z.ZodString>;
11
+ identifier: z.ZodOptional<z.ZodString>;
12
+ iban: z.ZodOptional<z.ZodString>;
13
+ accountNumber: z.ZodOptional<z.ZodString>;
14
+ bic: z.ZodOptional<z.ZodString>;
15
+ routingNumber: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>;
17
+ declare const bankTransactionSchema: z.ZodObject<{
18
+ externalId: z.ZodString;
19
+ postedDate: z.ZodCoercedDate<unknown>;
20
+ valueDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
21
+ amount: z.ZodObject<{
22
+ amount: z.ZodNumber;
23
+ currency: z.ZodString;
24
+ }, z.core.$strip>;
25
+ description: z.ZodString;
26
+ counterparty: z.ZodOptional<z.ZodObject<{
27
+ name: z.ZodOptional<z.ZodString>;
28
+ identifier: z.ZodOptional<z.ZodString>;
29
+ iban: z.ZodOptional<z.ZodString>;
30
+ accountNumber: z.ZodOptional<z.ZodString>;
31
+ bic: z.ZodOptional<z.ZodString>;
32
+ routingNumber: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>>;
34
+ reference: z.ZodOptional<z.ZodString>;
35
+ category: z.ZodOptional<z.ZodString>;
36
+ balanceAfter: z.ZodOptional<z.ZodObject<{
37
+ amount: z.ZodNumber;
38
+ currency: z.ZodString;
39
+ }, z.core.$strip>>;
40
+ type: z.ZodOptional<z.ZodString>;
41
+ raw: z.ZodOptional<z.ZodUnknown>;
42
+ }, z.core.$strip>;
43
+ declare const journalEntryRefSchema: z.ZodObject<{
44
+ type: z.ZodString;
45
+ id: z.ZodString;
46
+ }, z.core.$strip>;
47
+ declare const matchingMappingSchema: z.ZodObject<{
48
+ debitAccount: z.ZodOptional<z.ZodString>;
49
+ creditAccount: z.ZodOptional<z.ZodString>;
50
+ notes: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ declare const importBodySchema: z.ZodObject<{
53
+ bankAccountId: z.ZodString;
54
+ source: z.ZodEnum<{
55
+ [x: string]: string;
56
+ }>;
57
+ rows: z.ZodArray<z.ZodObject<{
58
+ externalId: z.ZodString;
59
+ postedDate: z.ZodCoercedDate<unknown>;
60
+ valueDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
61
+ amount: z.ZodObject<{
62
+ amount: z.ZodNumber;
63
+ currency: z.ZodString;
64
+ }, z.core.$strip>;
65
+ description: z.ZodString;
66
+ counterparty: z.ZodOptional<z.ZodObject<{
67
+ name: z.ZodOptional<z.ZodString>;
68
+ identifier: z.ZodOptional<z.ZodString>;
69
+ iban: z.ZodOptional<z.ZodString>;
70
+ accountNumber: z.ZodOptional<z.ZodString>;
71
+ bic: z.ZodOptional<z.ZodString>;
72
+ routingNumber: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strip>>;
74
+ reference: z.ZodOptional<z.ZodString>;
75
+ category: z.ZodOptional<z.ZodString>;
76
+ balanceAfter: z.ZodOptional<z.ZodObject<{
77
+ amount: z.ZodNumber;
78
+ currency: z.ZodString;
79
+ }, z.core.$strip>>;
80
+ type: z.ZodOptional<z.ZodString>;
81
+ raw: z.ZodOptional<z.ZodUnknown>;
82
+ }, z.core.$strip>>;
83
+ }, z.core.$strip>;
84
+ declare const matchBodySchema: z.ZodObject<{
85
+ mapping: z.ZodObject<{
86
+ debitAccount: z.ZodOptional<z.ZodString>;
87
+ creditAccount: z.ZodOptional<z.ZodString>;
88
+ notes: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strip>;
90
+ relatedTransactionId: z.ZodOptional<z.ZodString>;
91
+ matchedBy: z.ZodOptional<z.ZodString>;
92
+ }, z.core.$strip>;
93
+ declare const journalizeBodySchema: z.ZodObject<{
94
+ journalEntryRef: z.ZodObject<{
95
+ type: z.ZodString;
96
+ id: z.ZodString;
97
+ }, z.core.$strip>;
98
+ journalizedBy: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strip>;
100
+ declare const rejectBodySchema: z.ZodObject<{
101
+ reason: z.ZodString;
102
+ rejectedBy: z.ZodOptional<z.ZodString>;
103
+ }, z.core.$strip>;
104
+ declare const unmatchBodySchema: z.ZodObject<{
105
+ unmatchedBy: z.ZodOptional<z.ZodString>;
106
+ }, z.core.$strip>;
107
+ declare const manualEntrySchema: z.ZodObject<{
108
+ kind: z.ZodDefault<z.ZodLiteral<"manual">>;
109
+ amount: z.ZodNumber;
110
+ currency: z.ZodString;
111
+ flow: z.ZodEnum<{
112
+ inflow: "inflow";
113
+ outflow: "outflow";
114
+ }>;
115
+ type: z.ZodString;
116
+ description: z.ZodOptional<z.ZodString>;
117
+ counterparty: z.ZodOptional<z.ZodObject<{
118
+ name: z.ZodOptional<z.ZodString>;
119
+ identifier: z.ZodOptional<z.ZodString>;
120
+ iban: z.ZodOptional<z.ZodString>;
121
+ accountNumber: z.ZodOptional<z.ZodString>;
122
+ bic: z.ZodOptional<z.ZodString>;
123
+ routingNumber: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>>;
125
+ reference: z.ZodOptional<z.ZodString>;
126
+ postedDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
127
+ valueDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
128
+ bankAccountId: z.ZodOptional<z.ZodString>;
129
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
130
+ }, z.core.$strip>;
131
+ declare const findMatchCandidatesQuerySchema: z.ZodObject<{
132
+ amount: z.ZodCoercedNumber<unknown>;
133
+ currency: z.ZodOptional<z.ZodString>;
134
+ postedDate: z.ZodCoercedDate<unknown>;
135
+ toleranceDays: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
136
+ amountTolerancePct: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
137
+ counterpartyName: z.ZodOptional<z.ZodString>;
138
+ }, z.core.$strip>;
139
+ declare const transactionListQuerySchema: z.ZodObject<{
140
+ kind: z.ZodOptional<z.ZodEnum<{
141
+ [x: string]: string;
142
+ }>>;
143
+ status: z.ZodOptional<z.ZodString>;
144
+ bankAccountId: z.ZodOptional<z.ZodString>;
145
+ source: z.ZodOptional<z.ZodEnum<{
146
+ [x: string]: string;
147
+ }>>;
148
+ }, z.core.$strip>;
149
+ type ImportBody = z.infer<typeof importBodySchema>;
150
+ type MatchBody = z.infer<typeof matchBodySchema>;
151
+ type JournalizeBody = z.infer<typeof journalizeBodySchema>;
152
+ type RejectBody = z.infer<typeof rejectBodySchema>;
153
+ type UnmatchBody = z.infer<typeof unmatchBodySchema>;
154
+ type ManualEntryBody = z.infer<typeof manualEntrySchema>;
155
+ type FindMatchCandidatesQuery = z.infer<typeof findMatchCandidatesQuerySchema>;
156
+ type TransactionListQuery = z.infer<typeof transactionListQuerySchema>;
157
+ //#endregion
158
+ export { EscrowHoldInput, EscrowReleaseInput, FindMatchCandidatesQuery, ImportBody, JournalizeBody, ManualEntryBody, MatchBody, PaymentIntentInput, PaymentVerifyInput, RefundInput, RejectBody, SettlementCreateInput, SettlementListFilter, SettlementUpdateInput, SplitRuleInput, SubscriptionCreateInput, SubscriptionListFilter, SubscriptionUpdateInput, TransactionCreateInput, TransactionListFilter, TransactionListQuery, TransactionUpdateInput, UnmatchBody, bankTransactionSchema, counterpartySchema, escrowHoldSchema, escrowReleaseSchema, findMatchCandidatesQuerySchema, importBodySchema, journalEntryRefSchema, journalizeBodySchema, manualEntrySchema, matchBodySchema, matchingMappingSchema, moneySchema, paymentIntentSchema, paymentVerifySchema, refundSchema, rejectBodySchema, settlementBaseSchema, settlementCreateSchema, settlementListFilterSchema, settlementUpdateSchema, splitRuleSchema, subscriptionBaseSchema, subscriptionCreateSchema, subscriptionListFilterSchema, subscriptionUpdateSchema, transactionBaseSchema, transactionCreateSchema, transactionListFilterSchema, transactionListQuerySchema, transactionUpdateSchema, unmatchBodySchema };
@@ -1,3 +1,96 @@
1
- import { _ as transactionListFilterSchema, a as paymentVerifySchema, c as settlementCreateSchema, d as subscriptionBaseSchema, f as subscriptionCreateSchema, g as transactionCreateSchema, h as transactionBaseSchema, i as paymentIntentSchema, l as settlementListFilterSchema, m as subscriptionUpdateSchema, n as escrowReleaseSchema, o as refundSchema, p as subscriptionListFilterSchema, r as splitRuleSchema, s as settlementBaseSchema, t as escrowHoldSchema, u as settlementUpdateSchema, v as transactionUpdateSchema } from "../escrow.schema-BBv9oVEW.mjs";
1
+ import { n as BANK_FEED_SOURCE_VALUES, o as TRANSACTION_KIND_VALUES } from "../bank-feed.enums-kYTLTTbe.mjs";
2
+ import { _ as transactionListFilterSchema, a as paymentVerifySchema, c as settlementCreateSchema, d as subscriptionBaseSchema, f as subscriptionCreateSchema, g as transactionCreateSchema, h as transactionBaseSchema, i as paymentIntentSchema, l as settlementListFilterSchema, m as subscriptionUpdateSchema, n as escrowReleaseSchema, o as refundSchema, p as subscriptionListFilterSchema, r as splitRuleSchema, s as settlementBaseSchema, t as escrowHoldSchema, u as settlementUpdateSchema, v as transactionUpdateSchema } from "../escrow.schema-C-b41z_G.mjs";
3
+ import { z } from "zod";
2
4
 
3
- export { escrowHoldSchema, escrowReleaseSchema, paymentIntentSchema, paymentVerifySchema, refundSchema, settlementBaseSchema, settlementCreateSchema, settlementListFilterSchema, settlementUpdateSchema, splitRuleSchema, subscriptionBaseSchema, subscriptionCreateSchema, subscriptionListFilterSchema, subscriptionUpdateSchema, transactionBaseSchema, transactionCreateSchema, transactionListFilterSchema, transactionUpdateSchema };
5
+ //#region src/validators/bank-feed.schema.ts
6
+ /**
7
+ * Zod 4 validators for bank-feed HTTP / RPC payloads.
8
+ *
9
+ * In-process schemas use `z.coerce.date()` (PACKAGE_RULES §25). Shapes
10
+ * that travel over the wire (Plaid webhooks, queued jobs) use
11
+ * `z.iso.datetime()` — see the catalog file for those.
12
+ */
13
+ const moneySchema = z.object({
14
+ amount: z.number().int(),
15
+ currency: z.string().length(3)
16
+ });
17
+ const counterpartySchema = z.object({
18
+ name: z.string().optional(),
19
+ identifier: z.string().optional(),
20
+ iban: z.string().optional(),
21
+ accountNumber: z.string().optional(),
22
+ bic: z.string().optional(),
23
+ routingNumber: z.string().optional()
24
+ });
25
+ const bankTransactionSchema = z.object({
26
+ externalId: z.string().min(1),
27
+ postedDate: z.coerce.date(),
28
+ valueDate: z.coerce.date().optional(),
29
+ amount: moneySchema,
30
+ description: z.string(),
31
+ counterparty: counterpartySchema.optional(),
32
+ reference: z.string().optional(),
33
+ category: z.string().optional(),
34
+ balanceAfter: moneySchema.optional(),
35
+ type: z.string().optional(),
36
+ raw: z.unknown().optional()
37
+ });
38
+ const journalEntryRefSchema = z.object({
39
+ type: z.string().min(1),
40
+ id: z.string().min(1)
41
+ });
42
+ const matchingMappingSchema = z.object({
43
+ debitAccount: z.string().optional(),
44
+ creditAccount: z.string().optional(),
45
+ notes: z.string().optional()
46
+ });
47
+ const importBodySchema = z.object({
48
+ bankAccountId: z.string().min(1),
49
+ source: z.enum(BANK_FEED_SOURCE_VALUES),
50
+ rows: z.array(bankTransactionSchema).min(1)
51
+ });
52
+ const matchBodySchema = z.object({
53
+ mapping: matchingMappingSchema,
54
+ relatedTransactionId: z.string().optional(),
55
+ matchedBy: z.string().optional()
56
+ });
57
+ const journalizeBodySchema = z.object({
58
+ journalEntryRef: journalEntryRefSchema,
59
+ journalizedBy: z.string().optional()
60
+ });
61
+ const rejectBodySchema = z.object({
62
+ reason: z.string().min(1).max(500),
63
+ rejectedBy: z.string().optional()
64
+ });
65
+ const unmatchBodySchema = z.object({ unmatchedBy: z.string().optional() });
66
+ const manualEntrySchema = z.object({
67
+ kind: z.literal("manual").default("manual"),
68
+ amount: z.number().nonnegative(),
69
+ currency: z.string().length(3),
70
+ flow: z.enum(["inflow", "outflow"]),
71
+ type: z.string().min(1),
72
+ description: z.string().optional(),
73
+ counterparty: counterpartySchema.optional(),
74
+ reference: z.string().optional(),
75
+ postedDate: z.coerce.date().optional(),
76
+ valueDate: z.coerce.date().optional(),
77
+ bankAccountId: z.string().optional(),
78
+ metadata: z.record(z.string(), z.unknown()).optional()
79
+ });
80
+ const findMatchCandidatesQuerySchema = z.object({
81
+ amount: z.coerce.number().nonnegative(),
82
+ currency: z.string().length(3).optional(),
83
+ postedDate: z.coerce.date(),
84
+ toleranceDays: z.coerce.number().int().min(0).max(30).optional(),
85
+ amountTolerancePct: z.coerce.number().min(0).max(.5).optional(),
86
+ counterpartyName: z.string().optional()
87
+ });
88
+ const transactionListQuerySchema = z.object({
89
+ kind: z.enum(TRANSACTION_KIND_VALUES).optional(),
90
+ status: z.string().optional(),
91
+ bankAccountId: z.string().optional(),
92
+ source: z.enum(BANK_FEED_SOURCE_VALUES).optional()
93
+ });
94
+
95
+ //#endregion
96
+ export { bankTransactionSchema, counterpartySchema, escrowHoldSchema, escrowReleaseSchema, findMatchCandidatesQuerySchema, importBodySchema, journalEntryRefSchema, journalizeBodySchema, manualEntrySchema, matchBodySchema, matchingMappingSchema, moneySchema, paymentIntentSchema, paymentVerifySchema, refundSchema, rejectBodySchema, settlementBaseSchema, settlementCreateSchema, settlementListFilterSchema, settlementUpdateSchema, splitRuleSchema, subscriptionBaseSchema, subscriptionCreateSchema, subscriptionListFilterSchema, subscriptionUpdateSchema, transactionBaseSchema, transactionCreateSchema, transactionListFilterSchema, transactionListQuerySchema, transactionUpdateSchema, unmatchBodySchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classytic/revenue",
3
- "version": "2.0.1",
3
+ "version": "2.1.3",
4
4
  "description": "Payment lifecycle engine — transactions, subscriptions, escrow, settlements, commissions. MongoKit-powered, Arc-compatible, framework-agnostic.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -100,9 +100,9 @@
100
100
  "LICENSE"
101
101
  ],
102
102
  "peerDependencies": {
103
- "@classytic/mongokit": ">=3.11.0",
104
- "@classytic/repo-core": ">=0.2.0",
105
- "@classytic/primitives": ">=0.2.0",
103
+ "@classytic/mongokit": ">=3.13.3",
104
+ "@classytic/primitives": ">=0.5.0",
105
+ "@classytic/repo-core": ">=0.4.2",
106
106
  "mongoose": ">=9.4.1",
107
107
  "zod": ">=4.0.0"
108
108
  },
@@ -110,9 +110,9 @@
110
110
  "node": ">=18.0.0"
111
111
  },
112
112
  "devDependencies": {
113
- "@classytic/mongokit": ">=3.11.0",
114
- "@classytic/repo-core": ">=0.2.0",
115
- "@classytic/primitives": ">=0.2.0",
113
+ "@classytic/mongokit": "^3.13.3",
114
+ "@classytic/primitives": ">=0.5.0",
115
+ "@classytic/repo-core": "^0.4.2",
116
116
  "@types/node": "^22.8.7",
117
117
  "mongoose": "^9.4.1",
118
118
  "tsdown": "^0.20.3",