@classytic/revenue 2.0.0 → 2.0.1

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.
@@ -1,6 +1,12 @@
1
- import { C as HoldStatusValue, I as SettlementStatusValue, J as SubscriptionStatusValue, ct as TransactionStatusValue, u as SplitStatusValue } from "../split.enums-Dw4zCrcZ.mjs";
1
+ import { C as SubscriptionStatusValue, F as SplitStatusValue, K as SettlementStatusValue, f as TransactionStatusValue, it as HoldStatusValue } from "../transaction.enums-u4MshXcL.mjs";
2
2
 
3
3
  //#region src/core/state-machines.d.ts
4
+ /**
5
+ * Audit-trail event emitted by `validateAndCreateAuditEvent`.
6
+ *
7
+ * Revenue-specific shape — primitives' state-machine is intentionally
8
+ * ledger-agnostic, so the audit envelope stays here next to the consumers.
9
+ */
4
10
  interface StateChangeEvent<TState extends string = string> {
5
11
  resourceType: string;
6
12
  resourceId: string;
@@ -11,9 +17,21 @@ interface StateChangeEvent<TState extends string = string> {
11
17
  reason?: string;
12
18
  metadata?: Record<string, unknown>;
13
19
  }
20
+ /**
21
+ * Revenue's typed state machine.
22
+ *
23
+ * Thin facade over `@classytic/primitives/state-machine`'s
24
+ * `defineStateMachine` — primitives owns the transition logic, revenue
25
+ * owns the API shape (`validate`, `getAllowedTransitions`,
26
+ * `validateAndCreateAuditEvent`) that the existing repos and tests
27
+ * depend on. Wires `InvalidStateTransitionError` through the primitive's
28
+ * `errorFactory` so thrown types are unchanged.
29
+ *
30
+ * The constructor still accepts `Map<TState, Set<TState>>` so existing
31
+ * instance definitions don't need to be rewritten.
32
+ */
14
33
  declare class StateMachine<TState extends string> {
15
- private readonly transitions;
16
- private readonly resourceType;
34
+ private readonly inner;
17
35
  constructor(transitions: Map<TState, Set<TState>>, resourceType: string);
18
36
  validate(from: TState, to: TState, resourceId: string): void;
19
37
  canTransition(from: TState, to: TState): boolean;
@@ -1,32 +1,51 @@
1
- import { F as TRANSACTION_STATUS, r as SPLIT_STATUS, u as SETTLEMENT_STATUS, v as SUBSCRIPTION_STATUS, w as HOLD_STATUS } from "../split.enums-CQE3ekH1.mjs";
1
+ import { F as TRANSACTION_STATUS, g as SETTLEMENT_STATUS, l as SPLIT_STATUS, r as SUBSCRIPTION_STATUS, w as HOLD_STATUS } from "../subscription.enums-tfoAgsTv.mjs";
2
2
  import { r as InvalidStateTransitionError } from "../errors-DHa8JVQ-.mjs";
3
+ import { defineStateMachine } from "@classytic/primitives/state-machine";
3
4
 
4
5
  //#region src/core/state-machines.ts
6
+ /**
7
+ * Revenue's typed state machine.
8
+ *
9
+ * Thin facade over `@classytic/primitives/state-machine`'s
10
+ * `defineStateMachine` — primitives owns the transition logic, revenue
11
+ * owns the API shape (`validate`, `getAllowedTransitions`,
12
+ * `validateAndCreateAuditEvent`) that the existing repos and tests
13
+ * depend on. Wires `InvalidStateTransitionError` through the primitive's
14
+ * `errorFactory` so thrown types are unchanged.
15
+ *
16
+ * The constructor still accepts `Map<TState, Set<TState>>` so existing
17
+ * instance definitions don't need to be rewritten.
18
+ */
5
19
  var StateMachine = class {
20
+ inner;
6
21
  constructor(transitions, resourceType) {
7
- this.transitions = transitions;
8
- this.resourceType = resourceType;
22
+ const record = {};
23
+ for (const [from, toSet] of transitions.entries()) record[from] = Array.from(toSet);
24
+ this.inner = defineStateMachine({
25
+ name: resourceType,
26
+ transitions: record,
27
+ errorFactory: ({ entityId, from, to }) => new InvalidStateTransitionError(resourceType, entityId, from, to)
28
+ });
9
29
  }
10
30
  validate(from, to, resourceId) {
11
- if (!this.transitions.get(from)?.has(to)) throw new InvalidStateTransitionError(this.resourceType, resourceId, from, to);
31
+ this.inner.assertTransition(resourceId, from, to);
12
32
  }
13
33
  canTransition(from, to) {
14
- return this.transitions.get(from)?.has(to) ?? false;
34
+ return this.inner.canTransition(from, to);
15
35
  }
16
36
  getAllowedTransitions(from) {
17
- return Array.from(this.transitions.get(from) ?? []);
37
+ return [...this.inner.transitions[from] ?? []];
18
38
  }
19
39
  isTerminalState(state) {
20
- const t = this.transitions.get(state);
21
- return !t || t.size === 0;
40
+ return this.inner.isTerminal(state);
22
41
  }
23
42
  getResourceType() {
24
- return this.resourceType;
43
+ return this.inner.name;
25
44
  }
26
45
  validateAndCreateAuditEvent(from, to, resourceId, context) {
27
46
  this.validate(from, to, resourceId);
28
47
  return {
29
- resourceType: this.resourceType,
48
+ resourceType: this.inner.name,
30
49
  resourceId,
31
50
  fromState: from,
32
51
  toState: to,
@@ -1,3 +1,3 @@
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";
1
+ import { $ as HOLD_STATUS, A as SPLIT_STATUS, B as isSplitType, C as SubscriptionStatusValue, D as PAYOUT_METHOD_VALUES, E as PAYOUT_METHOD, F as SplitStatusValue, G as SettlementStatus, H as SETTLEMENT_STATUS_VALUES, I as SplitType, J as SettlementTypeValue, K as SettlementStatusValue, L as SplitTypeValue, M as SPLIT_TYPE, N as SPLIT_TYPE_VALUES, O as PayoutMethod, P as SplitStatus, Q as HOLD_REASON_VALUES, R as isPayoutMethod, S as SubscriptionStatus, T as isSubscriptionStatus, U as SETTLEMENT_TYPE, V as SETTLEMENT_STATUS, W as SETTLEMENT_TYPE_VALUES, X as isSettlementType, Y as isSettlementStatus, Z as HOLD_REASON, _ as PLAN_KEY_VALUES, a as TRANSACTION_FLOW, at as RELEASE_REASON, b as SUBSCRIPTION_STATUS, c as TRANSACTION_STATUS_VALUES, ct as ReleaseReasonValue, d as TransactionStatus, dt as isReleaseReason, et as HOLD_STATUS_VALUES, f as TransactionStatusValue, g as PLAN_KEYS, h as isTransactionStatus, i as LibraryCategoryValue, it as HoldStatusValue, j as SPLIT_STATUS_VALUES, k as PayoutMethodValue, l as TransactionFlow, lt as isHoldReason, m as isTransactionFlow, n as LIBRARY_CATEGORY_VALUES, nt as HoldReasonValue, o as TRANSACTION_FLOW_VALUES, ot as RELEASE_REASON_VALUES, p as isLibraryCategory, q as SettlementType, r as LibraryCategories, rt as HoldStatus, s as TRANSACTION_STATUS, st as ReleaseReason, t as LIBRARY_CATEGORIES, tt as HoldReason, u as TransactionFlowValue, ut as isHoldStatus, v as PlanKeyValue, w as isPlanKey, x as SUBSCRIPTION_STATUS_VALUES, y as PlanKeys, z as isSplitStatus } from "../transaction.enums-u4MshXcL.mjs";
2
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
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,4 +1,4 @@
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";
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 SETTLEMENT_STATUS_VALUES, a as isPlanKey, b as isSettlementStatus, c as PAYOUT_METHOD_VALUES, d as SPLIT_TYPE, f as SPLIT_TYPE_VALUES, g as SETTLEMENT_STATUS, h as isSplitType, i as SUBSCRIPTION_STATUS_VALUES, j as LIBRARY_CATEGORIES, k as isHoldStatus, l as SPLIT_STATUS, m as isSplitStatus, n as PLAN_KEY_VALUES, o as isSubscriptionStatus, p as isPayoutMethod, r as SUBSCRIPTION_STATUS, s as PAYOUT_METHOD, t as PLAN_KEYS, u as SPLIT_STATUS_VALUES, v as SETTLEMENT_TYPE, w as HOLD_STATUS, x as isSettlementType, y as SETTLEMENT_TYPE_VALUES, z as isTransactionStatus } from "../subscription.enums-tfoAgsTv.mjs";
2
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";
3
3
 
4
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 };
@@ -98,26 +98,13 @@ declare const transactionCreateSchema: z.ZodObject<{
98
98
  organizationId: z.ZodOptional<z.ZodString>;
99
99
  customerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
100
100
  type: z.ZodString;
101
- amount: z.ZodNumber;
102
- currency: z.ZodString;
103
- status: z.ZodDefault<z.ZodString>;
104
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
- gateway: z.ZodOptional<z.ZodObject<{
106
- type: z.ZodString;
107
- sessionId: z.ZodOptional<z.ZodString>;
108
- paymentIntentId: z.ZodOptional<z.ZodString>;
109
- chargeId: z.ZodOptional<z.ZodString>;
110
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
111
- verificationData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
112
- }, z.core.$strip>>;
113
- sourceId: z.ZodOptional<z.ZodString>;
114
- sourceModel: z.ZodOptional<z.ZodString>;
115
- idempotencyKey: z.ZodOptional<z.ZodString>;
116
101
  flow: z.ZodEnum<{
117
102
  inflow: "inflow";
118
103
  outflow: "outflow";
119
104
  }>;
120
105
  tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
106
+ amount: z.ZodNumber;
107
+ currency: z.ZodString;
121
108
  fee: z.ZodDefault<z.ZodNumber>;
122
109
  tax: z.ZodDefault<z.ZodNumber>;
123
110
  net: z.ZodDefault<z.ZodNumber>;
@@ -131,6 +118,16 @@ declare const transactionCreateSchema: z.ZodObject<{
131
118
  isInclusive: z.ZodOptional<z.ZodBoolean>;
132
119
  }, z.core.$strip>>;
133
120
  method: z.ZodString;
121
+ status: z.ZodDefault<z.ZodString>;
122
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
123
+ gateway: z.ZodOptional<z.ZodObject<{
124
+ type: z.ZodString;
125
+ sessionId: z.ZodOptional<z.ZodString>;
126
+ paymentIntentId: z.ZodOptional<z.ZodString>;
127
+ chargeId: z.ZodOptional<z.ZodString>;
128
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
129
+ verificationData: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
130
+ }, z.core.$strip>>;
134
131
  paymentDetails: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
135
132
  commission: z.ZodOptional<z.ZodObject<{
136
133
  rate: z.ZodNumber;
@@ -171,7 +168,10 @@ declare const transactionCreateSchema: z.ZodObject<{
171
168
  }, z.core.$strip>>>;
172
169
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
173
170
  }, z.core.$strip>>;
171
+ sourceId: z.ZodOptional<z.ZodString>;
172
+ sourceModel: z.ZodOptional<z.ZodString>;
174
173
  relatedTransactionId: z.ZodOptional<z.ZodString>;
174
+ idempotencyKey: z.ZodOptional<z.ZodString>;
175
175
  }, z.core.$strip>;
176
176
  declare const transactionUpdateSchema: z.ZodObject<{
177
177
  publicId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -317,18 +317,18 @@ declare const subscriptionBaseSchema: z.ZodObject<{
317
317
  declare const subscriptionCreateSchema: z.ZodObject<{
318
318
  organizationId: z.ZodOptional<z.ZodString>;
319
319
  customerId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
320
- planKey: z.ZodString;
321
320
  amount: z.ZodNumber;
322
321
  currency: z.ZodOptional<z.ZodString>;
323
- transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
322
  paymentIntentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
323
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
324
+ transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
325
+ planKey: z.ZodString;
325
326
  startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
326
327
  endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
327
328
  pauseReason: z.ZodOptional<z.ZodString>;
328
329
  cancelAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
329
330
  cancellationReason: z.ZodOptional<z.ZodString>;
330
331
  renewalTransactionId: z.ZodOptional<z.ZodString>;
331
- metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
332
332
  }, z.core.$strip>;
333
333
  declare const subscriptionUpdateSchema: z.ZodObject<{
334
334
  publicId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { t as RevenueContext } from "./context-DRqSeTPM.mjs";
2
2
  import { a as CurrencyBridge, c as LedgerBridge, i as CustomerBridge, o as NotificationBridge, r as AnalyticsBridge, s as TaxBridge, t as RevenueBridges } from "./revenue-bridges-sdlrR85c.mjs";
3
- 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";
3
+ import { $ as HOLD_STATUS, A as SPLIT_STATUS, B as isSplitType, C as SubscriptionStatusValue, D as PAYOUT_METHOD_VALUES, E as PAYOUT_METHOD, F as SplitStatusValue, G as SettlementStatus, H as SETTLEMENT_STATUS_VALUES, I as SplitType, J as SettlementTypeValue, K as SettlementStatusValue, L as SplitTypeValue, M as SPLIT_TYPE, N as SPLIT_TYPE_VALUES, O as PayoutMethod, P as SplitStatus, Q as HOLD_REASON_VALUES, R as isPayoutMethod, S as SubscriptionStatus, T as isSubscriptionStatus, U as SETTLEMENT_TYPE, V as SETTLEMENT_STATUS, W as SETTLEMENT_TYPE_VALUES, X as isSettlementType, Y as isSettlementStatus, Z as HOLD_REASON, _ as PLAN_KEY_VALUES, a as TRANSACTION_FLOW, at as RELEASE_REASON, b as SUBSCRIPTION_STATUS, c as TRANSACTION_STATUS_VALUES, ct as ReleaseReasonValue, d as TransactionStatus, dt as isReleaseReason, et as HOLD_STATUS_VALUES, f as TransactionStatusValue, g as PLAN_KEYS, h as isTransactionStatus, i as LibraryCategoryValue, it as HoldStatusValue, j as SPLIT_STATUS_VALUES, k as PayoutMethodValue, l as TransactionFlow, lt as isHoldReason, m as isTransactionFlow, n as LIBRARY_CATEGORY_VALUES, nt as HoldReasonValue, o as TRANSACTION_FLOW_VALUES, ot as RELEASE_REASON_VALUES, p as isLibraryCategory, q as SettlementType, r as LibraryCategories, rt as HoldStatus, s as TRANSACTION_STATUS, st as ReleaseReason, t as LIBRARY_CATEGORIES, tt as HoldReason, u as TransactionFlowValue, ut as isHoldStatus, v as PlanKeyValue, w as isPlanKey, x as SUBSCRIPTION_STATUS_VALUES, y as PlanKeys, z as isSplitStatus } from "./transaction.enums-u4MshXcL.mjs";
4
4
  import { HOLD_STATE_MACHINE, SETTLEMENT_STATE_MACHINE, SPLIT_STATE_MACHINE, SUBSCRIPTION_STATE_MACHINE, StateChangeEvent, StateMachine, TRANSACTION_STATE_MACHINE } from "./core/state-machines.mjs";
5
5
  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";
6
6
  import { D as RevenueEventSchema, E as RevenueEventPayloadOf, T as RevenueEventDefinition, at as InProcessRevenueBusOptions, et as revenueEventDefinitions, it as InProcessRevenueBus, nt as RevenueEventName, rt as createEvent, tt as REVENUE_EVENTS } from "./revenue-event-catalog-BX3g7RUi.mjs";
7
7
  import { a as PaymentIntentData, c as PaymentResultData, d as RefundResultData, f as WebhookEvent, i as PaymentIntent, l as ProviderCapabilities, n as createProviderRegistry, o as PaymentProvider, p as WebhookEventData, r as CreateIntentParams, s as PaymentResult, t as ProviderRegistry, u as RefundResult } from "./registry-SvIGPAx_.mjs";
8
8
  import { a as SettlementRepository, c as RevenueModels, d as SubscriptionDocument, f as TransactionDocument, i as RevenueEngine, l as RevenueSchemaOptions, n as RetryConfig, o as SubscriptionRepository, r as RevenueConfig, s as TransactionRepository, t as CommissionConfig, u as SettlementDocument } from "./engine-types-CcjIb4Fy.mjs";
9
9
  import { RepositoryPluginBundle, RevenueRepositories } from "./repositories/create-repositories.mjs";
10
- 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-CC8XuD46.mjs";
10
+ 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";
11
11
  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";
12
12
  import { HookHandler, PluginContext, PluginManager, RevenuePluginDefinition } from "./plugins/plugin.interface.mjs";
13
13
  import { DomainEvent, EventHandler, EventTransport } from "@classytic/primitives/events";
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import { n as createEvent, t as REVENUE_EVENTS } from "./event-constants-CEMitnIV.mjs";
2
- 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 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 SETTLEMENT_STATUS_VALUES, a as isPlanKey, b as isSettlementStatus, c as PAYOUT_METHOD_VALUES, d as SPLIT_TYPE, f as SPLIT_TYPE_VALUES, g as SETTLEMENT_STATUS, h as isSplitType, i as SUBSCRIPTION_STATUS_VALUES, j as LIBRARY_CATEGORIES, k as isHoldStatus, l as SPLIT_STATUS, m as isSplitStatus, n as PLAN_KEY_VALUES, o as isSubscriptionStatus, p as isPayoutMethod, r as SUBSCRIPTION_STATUS, s as PAYOUT_METHOD, t as PLAN_KEYS, u as SPLIT_STATUS_VALUES, v as SETTLEMENT_TYPE, w as HOLD_STATUS, x as isSettlementType, y as SETTLEMENT_TYPE_VALUES, z as isTransactionStatus } from "./subscription.enums-tfoAgsTv.mjs";
3
3
  import { a as PaymentVerificationError, c as RefundNotSupportedError, d as SubscriptionNotFoundError, f as TransactionNotFoundError, i as PaymentIntentCreationError, l as RevenueError, n as ConfigurationError, o as ProviderCapabilityError, p as ValidationError, r as InvalidStateTransitionError, s as ProviderNotFoundError, t as AlreadyVerifiedError, u as SettlementNotFoundError } from "./errors-DHa8JVQ-.mjs";
4
4
  import { HOLD_STATE_MACHINE, SETTLEMENT_STATE_MACHINE, SPLIT_STATE_MACHINE, SUBSCRIPTION_STATE_MACHINE, StateMachine, TRANSACTION_STATE_MACHINE } from "./core/state-machines.mjs";
5
5
  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";
6
- import { n as SubscriptionRepository, r as TransactionRepository, t as SettlementRepository } from "./settlement.repository-Cy3mMWGH.mjs";
6
+ import { n as SubscriptionRepository, r as TransactionRepository, t as SettlementRepository } from "./settlement.repository-DHIPx5S4.mjs";
7
7
  import { createRevenueRepositories } from "./repositories/create-repositories.mjs";
8
8
  import { a as PaymentResult, i as PaymentProvider, n as createProviderRegistry, o as RefundResult, r as PaymentIntent, s as WebhookEvent, t as ProviderRegistry } from "./registry-DhFMsSn5.mjs";
9
9
  import { D as InProcessRevenueBus, E as revenueEventDefinitions } from "./revenue-event-catalog-LqxPnsU_.mjs";
@@ -1,4 +1,4 @@
1
- import { n as SubscriptionRepository, r as TransactionRepository, t as SettlementRepository } from "../settlement.repository-Cy3mMWGH.mjs";
1
+ import { n as SubscriptionRepository, r as TransactionRepository, t as SettlementRepository } from "../settlement.repository-DHIPx5S4.mjs";
2
2
 
3
3
  //#region src/repositories/create-repositories.ts
4
4
  function createRevenueRepositories(models, builtInPlugins, hostPlugins = {}) {
@@ -1,5 +1,5 @@
1
1
  import { n as createEvent, t as REVENUE_EVENTS } from "./event-constants-CEMitnIV.mjs";
2
- import { F as TRANSACTION_STATUS, u as SETTLEMENT_STATUS, v as SUBSCRIPTION_STATUS, w as HOLD_STATUS } from "./split.enums-CQE3ekH1.mjs";
2
+ import { F as TRANSACTION_STATUS, g as SETTLEMENT_STATUS, r as SUBSCRIPTION_STATUS, w as HOLD_STATUS } from "./subscription.enums-tfoAgsTv.mjs";
3
3
  import { d as SubscriptionNotFoundError, f as TransactionNotFoundError, p as ValidationError, u as SettlementNotFoundError } from "./errors-DHa8JVQ-.mjs";
4
4
  import { SETTLEMENT_STATE_MACHINE, SUBSCRIPTION_STATE_MACHINE, TRANSACTION_STATE_MACHINE } from "./core/state-machines.mjs";
5
5
  import { a as reverseTax, c as reverseCommission, n as calculateSplits, s as calculateCommission, t as calculateOrganizationPayout } from "./splits-BAfY-a9P.mjs";
@@ -75,33 +75,6 @@ function isHoldReason(value) {
75
75
  return typeof value === "string" && holdReasonSet.has(value);
76
76
  }
77
77
 
78
- //#endregion
79
- //#region src/enums/subscription.enums.ts
80
- const SUBSCRIPTION_STATUS = {
81
- ACTIVE: "active",
82
- PAUSED: "paused",
83
- CANCELLED: "cancelled",
84
- EXPIRED: "expired",
85
- PENDING: "pending",
86
- PENDING_RENEWAL: "pending_renewal",
87
- INACTIVE: "inactive"
88
- };
89
- const SUBSCRIPTION_STATUS_VALUES = Object.values(SUBSCRIPTION_STATUS);
90
- const PLAN_KEYS = {
91
- MONTHLY: "monthly",
92
- QUARTERLY: "quarterly",
93
- YEARLY: "yearly"
94
- };
95
- const PLAN_KEY_VALUES = Object.values(PLAN_KEYS);
96
- const subscriptionStatusSet = new Set(SUBSCRIPTION_STATUS_VALUES);
97
- const planKeySet = new Set(PLAN_KEY_VALUES);
98
- function isSubscriptionStatus(value) {
99
- return typeof value === "string" && subscriptionStatusSet.has(value);
100
- }
101
- function isPlanKey(value) {
102
- return typeof value === "string" && planKeySet.has(value);
103
- }
104
-
105
78
  //#endregion
106
79
  //#region src/enums/settlement.enums.ts
107
80
  const SETTLEMENT_STATUS = {
@@ -169,4 +142,31 @@ function isPayoutMethod(value) {
169
142
  }
170
143
 
171
144
  //#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, PLAN_KEY_VALUES as _, SPLIT_TYPE as a, isPlanKey as b, isSplitStatus as c, SETTLEMENT_STATUS_VALUES as d, SETTLEMENT_TYPE as f, PLAN_KEYS as g, isSettlementType as h, SPLIT_STATUS_VALUES as i, LIBRARY_CATEGORIES as j, isHoldStatus as k, isSplitType as l, isSettlementStatus as m, PAYOUT_METHOD_VALUES as n, SPLIT_TYPE_VALUES as o, SETTLEMENT_TYPE_VALUES as p, SPLIT_STATUS as r, isPayoutMethod as s, PAYOUT_METHOD as t, SETTLEMENT_STATUS as u, SUBSCRIPTION_STATUS as v, HOLD_STATUS as w, isSubscriptionStatus as x, SUBSCRIPTION_STATUS_VALUES as y, isTransactionStatus as z };
145
+ //#region src/enums/subscription.enums.ts
146
+ const SUBSCRIPTION_STATUS = {
147
+ ACTIVE: "active",
148
+ PAUSED: "paused",
149
+ CANCELLED: "cancelled",
150
+ EXPIRED: "expired",
151
+ PENDING: "pending",
152
+ PENDING_RENEWAL: "pending_renewal",
153
+ INACTIVE: "inactive"
154
+ };
155
+ const SUBSCRIPTION_STATUS_VALUES = Object.values(SUBSCRIPTION_STATUS);
156
+ const PLAN_KEYS = {
157
+ MONTHLY: "monthly",
158
+ QUARTERLY: "quarterly",
159
+ YEARLY: "yearly"
160
+ };
161
+ const PLAN_KEY_VALUES = Object.values(PLAN_KEYS);
162
+ const subscriptionStatusSet = new Set(SUBSCRIPTION_STATUS_VALUES);
163
+ const planKeySet = new Set(PLAN_KEY_VALUES);
164
+ function isSubscriptionStatus(value) {
165
+ return typeof value === "string" && subscriptionStatusSet.has(value);
166
+ }
167
+ function isPlanKey(value) {
168
+ return typeof value === "string" && planKeySet.has(value);
169
+ }
170
+
171
+ //#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 };
@@ -1,85 +1,3 @@
1
- //#region src/enums/transaction.enums.d.ts
2
- declare const TRANSACTION_FLOW: {
3
- readonly INFLOW: "inflow";
4
- readonly OUTFLOW: "outflow";
5
- };
6
- type TransactionFlow = typeof TRANSACTION_FLOW;
7
- type TransactionFlowValue = TransactionFlow[keyof TransactionFlow];
8
- declare const TRANSACTION_FLOW_VALUES: TransactionFlowValue[];
9
- declare const TRANSACTION_STATUS: {
10
- readonly PENDING: "pending";
11
- readonly PAYMENT_INITIATED: "payment_initiated";
12
- readonly PROCESSING: "processing";
13
- readonly REQUIRES_ACTION: "requires_action";
14
- readonly VERIFIED: "verified";
15
- readonly COMPLETED: "completed";
16
- readonly FAILED: "failed";
17
- readonly CANCELLED: "cancelled";
18
- readonly EXPIRED: "expired";
19
- readonly REFUNDED: "refunded";
20
- readonly PARTIALLY_REFUNDED: "partially_refunded";
21
- };
22
- type TransactionStatus = typeof TRANSACTION_STATUS;
23
- type TransactionStatusValue = TransactionStatus[keyof TransactionStatus];
24
- declare const TRANSACTION_STATUS_VALUES: TransactionStatusValue[];
25
- declare const LIBRARY_CATEGORIES: {
26
- readonly SUBSCRIPTION: "subscription";
27
- readonly PURCHASE: "purchase";
28
- };
29
- type LibraryCategories = typeof LIBRARY_CATEGORIES;
30
- type LibraryCategoryValue = LibraryCategories[keyof LibraryCategories];
31
- declare const LIBRARY_CATEGORY_VALUES: LibraryCategoryValue[];
32
- declare function isLibraryCategory(value: unknown): value is LibraryCategoryValue;
33
- declare function isTransactionFlow(value: unknown): value is TransactionFlowValue;
34
- declare function isTransactionStatus(value: unknown): value is TransactionStatusValue;
35
- //#endregion
36
- //#region src/enums/subscription.enums.d.ts
37
- declare const SUBSCRIPTION_STATUS: {
38
- readonly ACTIVE: "active";
39
- readonly PAUSED: "paused";
40
- readonly CANCELLED: "cancelled";
41
- readonly EXPIRED: "expired";
42
- readonly PENDING: "pending";
43
- readonly PENDING_RENEWAL: "pending_renewal";
44
- readonly INACTIVE: "inactive";
45
- };
46
- type SubscriptionStatus = typeof SUBSCRIPTION_STATUS;
47
- type SubscriptionStatusValue = SubscriptionStatus[keyof SubscriptionStatus];
48
- declare const SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
49
- declare const PLAN_KEYS: {
50
- readonly MONTHLY: "monthly";
51
- readonly QUARTERLY: "quarterly";
52
- readonly YEARLY: "yearly";
53
- };
54
- type PlanKeys = typeof PLAN_KEYS;
55
- type PlanKeyValue = PlanKeys[keyof PlanKeys];
56
- declare const PLAN_KEY_VALUES: PlanKeyValue[];
57
- declare function isSubscriptionStatus(value: unknown): value is SubscriptionStatusValue;
58
- declare function isPlanKey(value: unknown): value is PlanKeyValue;
59
- //#endregion
60
- //#region src/enums/settlement.enums.d.ts
61
- declare const SETTLEMENT_STATUS: {
62
- readonly PENDING: "pending";
63
- readonly PROCESSING: "processing";
64
- readonly COMPLETED: "completed";
65
- readonly FAILED: "failed";
66
- readonly CANCELLED: "cancelled";
67
- };
68
- type SettlementStatus = typeof SETTLEMENT_STATUS;
69
- type SettlementStatusValue = SettlementStatus[keyof SettlementStatus];
70
- declare const SETTLEMENT_STATUS_VALUES: SettlementStatusValue[];
71
- declare const SETTLEMENT_TYPE: {
72
- readonly SPLIT_PAYOUT: "split_payout";
73
- readonly PLATFORM_WITHDRAWAL: "platform_withdrawal";
74
- readonly MANUAL_PAYOUT: "manual_payout";
75
- readonly ESCROW_RELEASE: "escrow_release";
76
- };
77
- type SettlementType = typeof SETTLEMENT_TYPE;
78
- type SettlementTypeValue = SettlementType[keyof SettlementType];
79
- declare const SETTLEMENT_TYPE_VALUES: SettlementTypeValue[];
80
- declare function isSettlementStatus(value: unknown): value is SettlementStatusValue;
81
- declare function isSettlementType(value: unknown): value is SettlementTypeValue;
82
- //#endregion
83
1
  //#region src/enums/escrow.enums.d.ts
84
2
  declare const HOLD_STATUS: {
85
3
  readonly PENDING: "pending";
@@ -115,6 +33,29 @@ declare function isHoldStatus(value: unknown): value is HoldStatusValue;
115
33
  declare function isReleaseReason(value: unknown): value is ReleaseReasonValue;
116
34
  declare function isHoldReason(value: unknown): value is HoldReasonValue;
117
35
  //#endregion
36
+ //#region src/enums/settlement.enums.d.ts
37
+ declare const SETTLEMENT_STATUS: {
38
+ readonly PENDING: "pending";
39
+ readonly PROCESSING: "processing";
40
+ readonly COMPLETED: "completed";
41
+ readonly FAILED: "failed";
42
+ readonly CANCELLED: "cancelled";
43
+ };
44
+ type SettlementStatus = typeof SETTLEMENT_STATUS;
45
+ type SettlementStatusValue = SettlementStatus[keyof SettlementStatus];
46
+ declare const SETTLEMENT_STATUS_VALUES: SettlementStatusValue[];
47
+ declare const SETTLEMENT_TYPE: {
48
+ readonly SPLIT_PAYOUT: "split_payout";
49
+ readonly PLATFORM_WITHDRAWAL: "platform_withdrawal";
50
+ readonly MANUAL_PAYOUT: "manual_payout";
51
+ readonly ESCROW_RELEASE: "escrow_release";
52
+ };
53
+ type SettlementType = typeof SETTLEMENT_TYPE;
54
+ type SettlementTypeValue = SettlementType[keyof SettlementType];
55
+ declare const SETTLEMENT_TYPE_VALUES: SettlementTypeValue[];
56
+ declare function isSettlementStatus(value: unknown): value is SettlementStatusValue;
57
+ declare function isSettlementType(value: unknown): value is SettlementTypeValue;
58
+ //#endregion
118
59
  //#region src/enums/split.enums.d.ts
119
60
  declare const SPLIT_TYPE: {
120
61
  readonly PLATFORM_COMMISSION: "platform_commission";
@@ -151,4 +92,63 @@ declare function isSplitType(value: unknown): value is SplitTypeValue;
151
92
  declare function isSplitStatus(value: unknown): value is SplitStatusValue;
152
93
  declare function isPayoutMethod(value: unknown): value is PayoutMethodValue;
153
94
  //#endregion
154
- export { LibraryCategories as $, isReleaseReason as A, isSettlementType as B, HoldStatusValue as C, ReleaseReasonValue as D, ReleaseReason as E, SettlementStatus as F, SUBSCRIPTION_STATUS as G, PLAN_KEY_VALUES as H, SettlementStatusValue as I, SubscriptionStatusValue as J, SUBSCRIPTION_STATUS_VALUES as K, SettlementType as L, SETTLEMENT_STATUS_VALUES as M, SETTLEMENT_TYPE as N, isHoldReason as O, SETTLEMENT_TYPE_VALUES as P, LIBRARY_CATEGORY_VALUES as Q, SettlementTypeValue as R, HoldStatus as S, RELEASE_REASON_VALUES as T, PlanKeyValue as U, PLAN_KEYS as V, PlanKeys as W, isSubscriptionStatus as X, isPlanKey as Y, LIBRARY_CATEGORIES as Z, HOLD_REASON_VALUES as _, SPLIT_STATUS as a, TransactionFlow as at, HoldReason as b, SPLIT_TYPE_VALUES as c, TransactionStatusValue as ct, SplitType as d, isTransactionStatus as dt, LibraryCategoryValue as et, SplitTypeValue as f, HOLD_REASON as g, isSplitType as h, PayoutMethodValue as i, TRANSACTION_STATUS_VALUES as it, SETTLEMENT_STATUS as j, isHoldStatus as k, SplitStatus as l, isLibraryCategory as lt, isSplitStatus as m, PAYOUT_METHOD_VALUES as n, TRANSACTION_FLOW_VALUES as nt, SPLIT_STATUS_VALUES as o, TransactionFlowValue as ot, isPayoutMethod as p, SubscriptionStatus as q, PayoutMethod as r, TRANSACTION_STATUS as rt, SPLIT_TYPE as s, TransactionStatus as st, PAYOUT_METHOD as t, TRANSACTION_FLOW as tt, SplitStatusValue as u, isTransactionFlow as ut, HOLD_STATUS as v, RELEASE_REASON as w, HoldReasonValue as x, HOLD_STATUS_VALUES as y, isSettlementStatus as z };
95
+ //#region src/enums/subscription.enums.d.ts
96
+ declare const SUBSCRIPTION_STATUS: {
97
+ readonly ACTIVE: "active";
98
+ readonly PAUSED: "paused";
99
+ readonly CANCELLED: "cancelled";
100
+ readonly EXPIRED: "expired";
101
+ readonly PENDING: "pending";
102
+ readonly PENDING_RENEWAL: "pending_renewal";
103
+ readonly INACTIVE: "inactive";
104
+ };
105
+ type SubscriptionStatus = typeof SUBSCRIPTION_STATUS;
106
+ type SubscriptionStatusValue = SubscriptionStatus[keyof SubscriptionStatus];
107
+ declare const SUBSCRIPTION_STATUS_VALUES: SubscriptionStatusValue[];
108
+ declare const PLAN_KEYS: {
109
+ readonly MONTHLY: "monthly";
110
+ readonly QUARTERLY: "quarterly";
111
+ readonly YEARLY: "yearly";
112
+ };
113
+ type PlanKeys = typeof PLAN_KEYS;
114
+ type PlanKeyValue = PlanKeys[keyof PlanKeys];
115
+ declare const PLAN_KEY_VALUES: PlanKeyValue[];
116
+ declare function isSubscriptionStatus(value: unknown): value is SubscriptionStatusValue;
117
+ declare function isPlanKey(value: unknown): value is PlanKeyValue;
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 };
@@ -1,2 +1,2 @@
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-CC8XuD46.mjs";
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
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 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classytic/revenue",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
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,
@@ -50,7 +50,10 @@
50
50
  "dev": "tsdown --watch",
51
51
  "typecheck": "tsc --noEmit",
52
52
  "prepublishOnly": "tsdown",
53
- "test": "cd .. && vitest run"
53
+ "test": "cd .. && vitest run",
54
+ "release:push": "node -e \"require('child_process').execSync('npm run push -- main',{cwd:require('node:path').resolve('..'),stdio:'inherit'})\"",
55
+ "release:tag": "node -e \"const v=require('./package.json').version,p=require('node:path').resolve('..'),{execSync:e}=require('child_process'),r=c=>e(c,{cwd:p,stdio:'inherit'});r('git tag -a revenue-v'+v+' -m revenue-v'+v);r('npm run push -- revenue-v'+v)\"",
56
+ "release": "npm run release:push && npm run release:tag && npm publish"
54
57
  },
55
58
  "exports": {
56
59
  ".": {
@@ -99,7 +102,7 @@
99
102
  "peerDependencies": {
100
103
  "@classytic/mongokit": ">=3.11.0",
101
104
  "@classytic/repo-core": ">=0.2.0",
102
- "@classytic/primitives": ">=0.1.0",
105
+ "@classytic/primitives": ">=0.2.0",
103
106
  "mongoose": ">=9.4.1",
104
107
  "zod": ">=4.0.0"
105
108
  },
@@ -109,7 +112,7 @@
109
112
  "devDependencies": {
110
113
  "@classytic/mongokit": ">=3.11.0",
111
114
  "@classytic/repo-core": ">=0.2.0",
112
- "@classytic/primitives": ">=0.1.0",
115
+ "@classytic/primitives": ">=0.2.0",
113
116
  "@types/node": "^22.8.7",
114
117
  "mongoose": "^9.4.1",
115
118
  "tsdown": "^0.20.3",