@fantastic.dev/better-stripe 0.5.0 → 0.6.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.
- package/CHANGELOG.md +91 -43
- package/README.md +14 -14
- package/dist/component/connect/mutations.d.ts.map +1 -1
- package/dist/component/connect/mutations.js +13 -4
- package/dist/component/connect/mutations.js.map +1 -1
- package/dist/component/connect/queries.d.ts +3 -4
- package/dist/component/connect/queries.d.ts.map +1 -1
- package/dist/component/connect/queries.js +19 -10
- package/dist/component/connect/queries.js.map +1 -1
- package/dist/react/hooks/useSplitBreakdown.d.ts +4 -6
- package/dist/react/hooks/useSplitBreakdown.d.ts.map +1 -1
- package/dist/react/hooks/useSplitBreakdown.js +4 -6
- package/dist/react/hooks/useSplitBreakdown.js.map +1 -1
- package/package.json +1 -1
- package/src/component/connect/mutations.ts +23 -12
- package/src/component/connect/queries.ts +18 -10
- package/src/component/reversal-races.test.ts +41 -1
- package/src/component/transfers.test.ts +69 -0
- package/src/react/hooks/useSplitBreakdown.ts +4 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Return every original split leg by default from `listTransfersByCharge`,
|
|
6
|
+
excluding reinstatement rows before applying any explicit preview limit.
|
|
7
|
+
Split breakdowns and reversal claims now cover sales with more than 50 legs.
|
|
8
|
+
Queries and atomic claims fail on Convex resource limits rather than silently
|
|
9
|
+
truncate financial data. `listTransfersByAccount` remains a preview API;
|
|
10
|
+
earnings hooks use exact server-side aggregates.
|
|
11
|
+
- Update the former roadmap to describe the existing product-level first-charge
|
|
12
|
+
descriptors, first-invoice fee recovery, retry-safe reversal claims, and exact
|
|
13
|
+
earnings aggregates, including their practical limitations.
|
|
14
|
+
- Remove internal tracker references from public documentation and add a
|
|
15
|
+
regression check that prevents their reintroduction.
|
|
16
|
+
|
|
17
|
+
## [0.6.1](https://github.com/FantasticDevHQ/better-stripe/compare/v0.6.0...v0.6.1) (2026-10-13)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* complete large split reversals and keep public docs current ([#127](https://github.com/FantasticDevHQ/better-stripe/issues/127)) ([e7cc0a9](https://github.com/FantasticDevHQ/better-stripe/commit/e7cc0a9b0ea01f4993447f9d73edebe71b364081))
|
|
23
|
+
|
|
24
|
+
## [0.6.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.5.0...v0.6.0) (2026-10-12)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### ⚠ BREAKING CHANGES
|
|
28
|
+
|
|
29
|
+
* the package name changes to @fantastic.dev/better-stripe; @getdojo/better-stripe receives no further releases.
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* complete Stripe Endive compatibility and release 0.5.0 ([#126](https://github.com/FantasticDevHQ/better-stripe/issues/126)) ([135695f](https://github.com/FantasticDevHQ/better-stripe/commit/135695f51906ea156a36dbe8d0d43cf1d99e5fc1))
|
|
34
|
+
* publish as [@fantastic](https://github.com/fantastic).dev/better-stripe via Release Please and trusted publishing ([#120](https://github.com/FantasticDevHQ/better-stripe/issues/120)) ([7451eeb](https://github.com/FantasticDevHQ/better-stripe/commit/7451eeb514b09a09656355c74c4bec083e1ddce7))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* repair example checkout billing and seller flows ([#125](https://github.com/FantasticDevHQ/better-stripe/issues/125)) ([5911fb8](https://github.com/FantasticDevHQ/better-stripe/commit/5911fb8d8bc585fab62fe48e58e1e964047b8fd9))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Maintenance
|
|
43
|
+
|
|
44
|
+
* **deps:** update dependencies to latest ([#122](https://github.com/FantasticDevHQ/better-stripe/issues/122)) ([a7e4161](https://github.com/FantasticDevHQ/better-stripe/commit/a7e416179d20afdd2356668cbd4482e2e3fa4eff))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Continuous Integration
|
|
48
|
+
|
|
49
|
+
* **release:** open release PRs with the org release GitHub App ([#124](https://github.com/FantasticDevHQ/better-stripe/issues/124)) ([3c94f2e](https://github.com/FantasticDevHQ/better-stripe/commit/3c94f2ef317f939ac039c261f9c148e6b1f14a56))
|
|
50
|
+
|
|
3
51
|
## 0.5.0
|
|
4
52
|
|
|
5
53
|
### Features
|
|
@@ -42,13 +90,13 @@ changed by this release.
|
|
|
42
90
|
|
|
43
91
|
### Minor Changes
|
|
44
92
|
|
|
45
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `getAccountBalance` for per-account balance retrieval (
|
|
93
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `getAccountBalance` for per-account balance retrieval ([#62](https://github.com/kellykampen/better-stripe/issues/62)).
|
|
46
94
|
|
|
47
95
|
New `BetterStripe.getAccountBalance({ stripeAccountId })` reads a connected account's live Stripe balance, scoped via the `Stripe-Account` header (mirroring the other per-account calls like `createPayout`). Pairs Stripe's separate `available`/`pending` per-currency lists into one `AccountBalance` (`{ available, pending, currency }`, minor units) per currency — a currency present on only one side defaults to `0` on the other. `AccountBalance` is re-exported at the package root, and its shape matches the `PayoutSchedule` component's `balance` prop directly.
|
|
48
96
|
|
|
49
97
|
Purely additive.
|
|
50
98
|
|
|
51
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `BuyerBillingView` component (
|
|
99
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `BuyerBillingView` component ([#50](https://github.com/kellykampen/better-stripe/issues/50)).
|
|
52
100
|
|
|
53
101
|
The buyer's embedded-only, in-app billing surface: shows a buyer's subscriptions grouped by store (via the existing `groupSubscriptionsByStore` util, not recomputed), with per-store cancel/reactivate through the shared `SubscriptionCard`/`SubscriptionActions`, the one saved payment method reusable across every store, and an embedded (no-redirect) card-update slot.
|
|
54
102
|
|
|
@@ -61,20 +109,20 @@ changed by this release.
|
|
|
61
109
|
|
|
62
110
|
Previously `DEFAULT_ACCOUNT_CONFIGURATION` only requested the merchant configuration, so there was no first-class path to create a customer-billable account.
|
|
63
111
|
|
|
64
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `DisputeDetail` + `EvidenceForm` headless React components (
|
|
112
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `DisputeDetail` + `EvidenceForm` headless React components ([#40](https://github.com/kellykampen/better-stripe/issues/40)).
|
|
65
113
|
|
|
66
114
|
- `DisputeDetail` — renders a dispute's amount, reason, status, evidence-due countdown message, and linked transfer ids. Loading/empty states, i18n label overrides.
|
|
67
115
|
- `EvidenceForm` — headless controlled form for the four Skool-style evidence fields (product description, access activity, additional info, customer communication); `stage()` saves a draft (no `submit` key), `submit()` finalizes with `submit: true`. Supports `stripeAccountId` scoping and `onStaged`/`onSubmitted`/`onError` callbacks.
|
|
68
116
|
|
|
69
|
-
Both are headless/themeable (`className` plus a `children` render-prop) and consume the existing
|
|
117
|
+
Both are headless/themeable (`className` plus a `children` render-prop) and consume the existing dispute handling/dispute hooks core with no duplicated logic. Purely additive.
|
|
70
118
|
|
|
71
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `DisputesList` component with due-by countdown badges (
|
|
119
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `DisputesList` component with due-by countdown badges ([#41](https://github.com/kellykampen/better-stripe/issues/41)).
|
|
72
120
|
|
|
73
|
-
Pure, hook-free presentational list of a seller's disputes, sorted by evidence deadline (soonest first, no-deadline rows last, overdue rows naturally at the top). Rows accept the exact shape `getDisputeWithCountdown`/`useDisputeWithCountdown`
|
|
121
|
+
Pure, hook-free presentational list of a seller's disputes, sorted by evidence deadline (soonest first, no-deadline rows last, overdue rows naturally at the top). Rows accept the exact shape `getDisputeWithCountdown`/`useDisputeWithCountdown` produce, so the component never recomputes deadlines itself.
|
|
74
122
|
|
|
75
123
|
Headless overrides: `className`, i18n labels (`emptyLabel`, `loadingLabel`, `dueLabel`/`overdueLabel` with `{days}` templating), a per-row `renderRow` slot, and a whole-list `children` render prop. Default markup is semantic `ul[role=list] > li[data-dispute-id]` with a `span[role=status]` badge carrying `data-overdue`. Purely additive.
|
|
76
124
|
|
|
77
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add dispute React hooks: `createUseDisputes` + `createUseDisputeWithCountdown` (
|
|
125
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add dispute React hooks: `createUseDisputes` + `createUseDisputeWithCountdown` ([#36](https://github.com/kellykampen/better-stripe/issues/36)).
|
|
78
126
|
|
|
79
127
|
Two new factory hooks following the existing `createUse*` convention:
|
|
80
128
|
|
|
@@ -83,7 +131,7 @@ changed by this release.
|
|
|
83
131
|
|
|
84
132
|
Both wired into the `@getdojo/better-stripe/react` entry export; `StripeComponentDispute` re-exported for consumers. Purely additive.
|
|
85
133
|
|
|
86
|
-
- [#51](https://github.com/kellykampen/better-stripe/pull/51) [`6345352`](https://github.com/kellykampen/better-stripe/commit/6345352cf4b3ad4247c865090693e877da6bf5ef) Thanks [@kellykampen](https://github.com/kellykampen)! - Smart-retry dunning: surface failed subscription cycles
|
|
134
|
+
- [#51](https://github.com/kellykampen/better-stripe/pull/51) [`6345352`](https://github.com/kellykampen/better-stripe/commit/6345352cf4b3ad4247c865090693e877da6bf5ef) Thanks [@kellykampen](https://github.com/kellykampen)! - Smart-retry dunning: surface failed subscription cycles.
|
|
87
135
|
|
|
88
136
|
`invoice.payment_failed` previously upserted the invoice but fired **no** async hook, so apps couldn't react to a failed subscription cycle. It now schedules a new invoice-level hook:
|
|
89
137
|
|
|
@@ -97,7 +145,7 @@ changed by this release.
|
|
|
97
145
|
|
|
98
146
|
Note: covered by unit tests (hook scheduling, invoice state transition + retry metadata, `past_due`/`unpaid` persistence). The live `invoice.payment_failed` path (real failed-card subscription cycle) should be exercised by the E2E webhook run before release.
|
|
99
147
|
|
|
100
|
-
- [#64](https://github.com/kellykampen/better-stripe/pull/64) [`477e282`](https://github.com/kellykampen/better-stripe/commit/477e282ea1cfd2fc198f1aa19cc376eea96b38ca) Thanks [@kellykampen](https://github.com/kellykampen)! - Exact earnings totals — fix silently truncated financial figures past 50 rows
|
|
148
|
+
- [#64](https://github.com/kellykampen/better-stripe/pull/64) [`477e282`](https://github.com/kellykampen/better-stripe/commit/477e282ea1cfd2fc198f1aa19cc376eea96b38ca) Thanks [@kellykampen](https://github.com/kellykampen)! - Exact earnings totals — fix silently truncated financial figures past 50 rows.
|
|
101
149
|
|
|
102
150
|
`listTransfersByAccount` and `listPayouts` cap their results at 50 rows, and the `useEarnings` hook summed those rows client-side — so an account with more than 50 transfers or payouts reported **silently wrong** (understated) gross / reversed / net / paid-out totals, with no error.
|
|
103
151
|
|
|
@@ -112,37 +160,37 @@ changed by this release.
|
|
|
112
160
|
|
|
113
161
|
**Behavior change:** if you wired `createUseEarnings` against `listTransfersByAccount` / `listPayouts`, repoint the refs at the new aggregate queries. The list queries and `BetterStripe.listPayouts()` are unchanged, now documented as capped drill-down views. `listTransfersByCharge` (per-sale split legs) is unchanged and safe in practice — a sale has few legs.
|
|
114
162
|
|
|
115
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `createUseEarnings` + `createUseSplitBreakdown` React hook factories (
|
|
163
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `createUseEarnings` + `createUseSplitBreakdown` React hook factories ([#44](https://github.com/kellykampen/better-stripe/issues/44)).
|
|
116
164
|
|
|
117
165
|
- `createUseEarnings(useQuery, transfersRef, payoutsRef)` → `useEarnings(accountId)` reads a recipient's transfer ledger and payouts, deriving `gross` (total transferred in), `reversed` (pulled back via fee collection + refund/dispute clawbacks — deliberately not labeled "fees", since a true platform-fees figure lives on the payments rows' `feeCollectedAmount`), `net`, `payouts`/`paidOut`, and the raw `transfers` for drill-down.
|
|
118
166
|
- `createUseSplitBreakdown(useQuery, transfersByChargeRef)` → `useSplitBreakdown({ sourceChargeId, saleAmount? })` sums a sale's split legs by role (`store`/`affiliate`/`other`), each net of reversals, with the `platform` share derived when the caller supplies the sale amount.
|
|
119
167
|
|
|
120
|
-
Both follow the `createUse*` factory convention from
|
|
168
|
+
Both follow the `createUse*` factory convention from dispute hooks. Purely additive.
|
|
121
169
|
|
|
122
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add embedded Stripe Connect dispute components (
|
|
170
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add embedded Stripe Connect dispute components ([#48](https://github.com/kellykampen/better-stripe/issues/48)).
|
|
123
171
|
|
|
124
172
|
The Stripe-hosted alternative to the headless dispute components, built on `@stripe/react-connect-js`:
|
|
125
173
|
|
|
126
|
-
- `ConnectProvider` — initializes ConnectJS once per mount via `loadConnectAndInitialize({ publishableKey, fetchClientSecret, appearance?, locale? })` and provides the instance through `ConnectComponentsProvider`. `fetchClientSecret` wires to an app action wrapping `stripe.createDisputeSession({ stripeAccountId })
|
|
174
|
+
- `ConnectProvider` — initializes ConnectJS once per mount via `loadConnectAndInitialize({ publishableKey, fetchClientSecret, appearance?, locale? })` and provides the instance through `ConnectComponentsProvider`. `fetchClientSecret` wires to an app action wrapping `stripe.createDisputeSession({ stripeAccountId })`.
|
|
127
175
|
- `EmbeddedDisputes` — mounts Stripe's `disputes_list` embedded component, or `payment_disputes` scoped to one payment via the `payment` prop. Must render inside `ConnectProvider`.
|
|
128
176
|
|
|
129
177
|
Adds `@stripe/connect-js` and `@stripe/react-connect-js` as regular dependencies, mirroring the existing `@stripe/stripe-js`/`@stripe/react-stripe-js` convention. Purely additive.
|
|
130
178
|
|
|
131
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `PayoutSchedule` component for recipient balance + payout display (
|
|
179
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add headless `PayoutSchedule` component for recipient balance + payout display ([#46](https://github.com/kellykampen/better-stripe/issues/46)).
|
|
132
180
|
|
|
133
181
|
Pure, hook-free component showing a seller's available/pending balance (from a `RecipientBalance` snapshot prop) and next payout — the earliest `pending`/`in_transit` payout row with an arrival date, templated as "Next payout of $40.00 expected Jul 10, 2026", falling back to a rolling-schedule message when none is upcoming (payouts are automatic/rolling; the component deliberately offers no manual withdrawal). Optional `manageUrl` link out to the hosted Express dashboard.
|
|
134
182
|
|
|
135
183
|
Headless conventions: `className`, i18n label overrides, loading/empty states, and a `children` render-prop with all computed state. Data comes entirely via props (no data-fetching hook yet); purely additive.
|
|
136
184
|
|
|
137
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add product-level `statement_descriptor` so it covers a subscription's first charge (
|
|
185
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add product-level `statement_descriptor` so it covers a subscription's first charge ([#63](https://github.com/kellykampen/better-stripe/issues/63)).
|
|
138
186
|
|
|
139
|
-
The invoice-time descriptor path
|
|
187
|
+
The invoice-time descriptor path sets the descriptor at `invoice.created`, which never reaches a subscription's first invoice — Stripe finalizes and (for `charge_automatically`/Checkout subscription-mode) pays invoice [#1](https://github.com/kellykampen/better-stripe/issues/1) synchronously at creation, before that handler runs. Per Stripe's descriptor precedence (Invoice → Product → charge-type default), a product-level `statement_descriptor` covers every cycle including the first.
|
|
140
188
|
|
|
141
|
-
`createProduct`/`updateProduct` now resolve the per-store descriptor (the store's stored suffix, else the platform default — mirroring the
|
|
189
|
+
`createProduct`/`updateProduct` now resolve the per-store descriptor (the store's stored suffix, else the platform default — mirroring the account-level descriptor resolution) and stamp it onto the Stripe Product's `statement_descriptor`, for products with an `accountId`. No public API change to existing call shapes.
|
|
142
190
|
|
|
143
|
-
- [#70](https://github.com/kellykampen/better-stripe/pull/70) [`306d402`](https://github.com/kellykampen/better-stripe/commit/306d402b0148e0794a2239a5c83a0d3780300c38) Thanks [@kellykampen](https://github.com/kellykampen)! - Reclaim/expiry of dead reversal claims
|
|
191
|
+
- [#70](https://github.com/kellykampen/better-stripe/pull/70) [`306d402`](https://github.com/kellykampen/better-stripe/commit/306d402b0148e0794a2239a5c83a0d3780300c38) Thanks [@kellykampen](https://github.com/kellykampen)! - Reclaim/expiry of dead reversal claims.
|
|
144
192
|
|
|
145
|
-
|
|
193
|
+
Atomic reversal claims reserve reversal slices atomically before money moves; the executor now refuses to leapfrog an unexecuted predecessor claim. The residual, by-design failure mode: if the operation that reserved a slice dies permanently (its webhook exhausts Stripe's retries and never confirms), the claim frontier stays ahead of the confirmed `reversedAmount` forever, and every successor reversal on that leg blocks with `predecessor claim unexecuted`. This adds an ops path to resolve such wedged legs.
|
|
146
194
|
|
|
147
195
|
- **`BetterStripe.listWedgedReversalClaims(ctx)`** — lists legs where `reversalClaimedAmount > reversedAmount` and the recorded ops holding the blocking (unexecuted) slice on each. An ops/admin diagnostic; scans the ledger to completion (exact, and loud past Convex's 16,384-doc read limit rather than silently truncating).
|
|
148
196
|
- **`BetterStripe.reclaimReversalClaim(ctx, { operationId, mode })`** — resolves a dead claim:
|
|
@@ -151,13 +199,13 @@ changed by this release.
|
|
|
151
199
|
|
|
152
200
|
New component functions: `connect/queries/listWedgedReversalClaims`, `connect/queries/getReversalOp`, `connect/mutations/releaseReversalClaim`. No behavior change to existing reversal paths.
|
|
153
201
|
|
|
154
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add refund actor scoping — seller (own sales) vs platform admin (
|
|
202
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add refund actor scoping — seller (own sales) vs platform admin ([#56](https://github.com/kellykampen/better-stripe/issues/56)).
|
|
155
203
|
|
|
156
|
-
`createRefund`
|
|
204
|
+
`createRefund` previously had no notion of who may initiate a refund. It now takes an optional `actor` option (`{ type: "admin" }` or `{ type: "seller", accountId }`) and enforces the rule before any Stripe call is made — an unauthorized refund never moves money. A platform admin may refund any sale; a seller may refund only sales routed to their own connected account (destination charge, or one of the split legs in a separate-charges split), resolved from the payment's own component-ledger routing. Fails closed: a seller is denied when the payment's routing can't be resolved.
|
|
157
205
|
|
|
158
|
-
Additive and backwards compatible — omitting `actor` preserves the prior unrestricted behavior. The refund fee/transfer-reversal math from
|
|
206
|
+
Additive and backwards compatible — omitting `actor` preserves the prior unrestricted behavior. The refund fee/transfer-reversal math from refund handling is unchanged.
|
|
159
207
|
|
|
160
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Refunds now return the platform fee pro-rata and reverse recipient transfers (
|
|
208
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Refunds now return the platform fee pro-rata and reverse recipient transfers ([#45](https://github.com/kellykampen/better-stripe/issues/45)).
|
|
161
209
|
|
|
162
210
|
**Destination charges:** `createRefund` gains `refundApplicationFee` and `reverseTransfer` options, both defaulting `true`, sent only when the charge actually carries an application fee / destination transfer (sending either on an incapable charge is a hard Stripe error). Stripe pro-rates both natively for partial refunds; an explicit `false` always wins.
|
|
163
211
|
|
|
@@ -185,14 +233,14 @@ changed by this release.
|
|
|
185
233
|
|
|
186
234
|
Note: V2 `customer_account` + `pause_collection`/dispute interplay and the refund-via-API path are covered by unit tests; the live E2E (`refund.created` via real API call, dispute triggers) should be run before release — `charge.dispute.funds_withdrawn`/`funds_reinstated` cannot be reliably triggered in test mode.
|
|
187
235
|
|
|
188
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `SplitBreakdown` + `EarningsSummary` headless components (
|
|
236
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add `SplitBreakdown` + `EarningsSummary` headless components ([#49](https://github.com/kellykampen/better-stripe/issues/49)).
|
|
189
237
|
|
|
190
238
|
- `SplitBreakdown` renders a sale's store + affiliate + platform lines (the `other` bucket only when it carries money) from `useSplitBreakdown`'s totals. When the platform share is underivable (no sale amount given to the hook) it renders an explicit "Unknown without the sale amount" state — never a silent zero.
|
|
191
239
|
- `EarningsSummary` renders gross / reversals / net / paid-out plus the latest payout status line. Its props are a subset of `useEarnings`'s result shape, so `<EarningsSummary {...useEarnings(accountId)} />` works directly.
|
|
192
240
|
|
|
193
|
-
Consumes the
|
|
241
|
+
Consumes the earnings hooks hooks ([#44](https://github.com/kellykampen/better-stripe/issues/44)). Both headless/themeable (`className` + `children` render-prop). Purely additive.
|
|
194
242
|
|
|
195
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add per-store statement descriptors on destination charges (
|
|
243
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Add per-store statement descriptors on destination charges ([#47](https://github.com/kellykampen/better-stripe/issues/47)).
|
|
196
244
|
|
|
197
245
|
- New `BetterStripe.setAccountStatementDescriptor` method (validates first; `null` clears) writes a `statementDescriptor` field on the component's account record via a new `core/mutations/setStatementDescriptor` mutation.
|
|
198
246
|
- New constructor option `statementDescriptorSuffix` sets a configurable platform-wide default (validated at construction, same pattern as `platformFee`), used whenever a store account carries no suffix of its own. Resolution order: store's stored suffix → configured default → none.
|
|
@@ -215,9 +263,9 @@ changed by this release.
|
|
|
215
263
|
- `listTransfersByCharge(ctx, { sourceChargeId, limit? })` — a sale's original split legs (reinstatement rows excluded), the read behind the `useSplitBreakdown` hook / per-sale breakdown UIs.
|
|
216
264
|
- `listTransfersByAccount(ctx, { destinationAccountId, limit? })` — a recipient's transfer ledger (the earnings view, includes reinstatements), the read behind the `useEarnings` hook.
|
|
217
265
|
|
|
218
|
-
The underlying component queries already existed, but there was no client-side method to reach them, so an app couldn't wire the `useSplitBreakdown` / `useEarnings` hook factories to real data. These thin read wrappers close that gap (surfaced while building the affiliate-split demo
|
|
266
|
+
The underlying component queries already existed, but there was no client-side method to reach them, so an app couldn't wire the `useSplitBreakdown` / `useEarnings` hook factories to real data. These thin read wrappers close that gap (surfaced while building the affiliate-split demo).
|
|
219
267
|
|
|
220
|
-
- [#58](https://github.com/kellykampen/better-stripe/pull/58) [`61f755e`](https://github.com/kellykampen/better-stripe/commit/61f755ebf38065d5c3cc73db18e7dfd1c3d8c394) Thanks [@kellykampen](https://github.com/kellykampen)! - `updateDispute` now stages evidence by default instead of submitting it
|
|
268
|
+
- [#58](https://github.com/kellykampen/better-stripe/pull/58) [`61f755e`](https://github.com/kellykampen/better-stripe/commit/61f755ebf38065d5c3cc73db18e7dfd1c3d8c394) Thanks [@kellykampen](https://github.com/kellykampen)! - `updateDispute` now stages evidence by default instead of submitting it.
|
|
221
269
|
|
|
222
270
|
Stripe's dispute-update `submit` parameter **defaults to `true`**, so evidence sent without an explicit `submit` is submitted to the bank — a one-shot, outcome-affecting action. The previous docblock incorrectly said omitting `submit` "saves a draft", and the method forwarded `submit` only when explicitly set, so a caller following the docs would submit unintentionally.
|
|
223
271
|
|
|
@@ -225,52 +273,52 @@ changed by this release.
|
|
|
225
273
|
|
|
226
274
|
- A bare metadata/status update (no `evidence`) is unchanged — no `submit` is forced.
|
|
227
275
|
- An explicit `submit: true` / `submit: false` is always honored.
|
|
228
|
-
- `EvidenceForm`
|
|
276
|
+
- `EvidenceForm` already passes `submit` explicitly, so it is unaffected.
|
|
229
277
|
|
|
230
278
|
If you relied on the old behavior of submitting evidence by omitting `submit`, pass `submit: true` explicitly.
|
|
231
279
|
|
|
232
280
|
### Patch Changes
|
|
233
281
|
|
|
234
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Regenerate the component's `_generated` API so transfer/dispute queries are typed for consumers (
|
|
282
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Regenerate the component's `_generated` API so transfer/dispute queries are typed for consumers ([#71](https://github.com/kellykampen/better-stripe/issues/71)).
|
|
235
283
|
|
|
236
|
-
`src/component/_generated/component.ts` was stale — it predated `listTransfersByCharge`/`listTransfersByAccount`
|
|
284
|
+
`src/component/_generated/component.ts` was stale — it predated `listTransfersByCharge`/`listTransfersByAccount` and `getDisputeByStripeId`/`listDisputes`, so `components.betterStripe.connect.queries.*` for those methods was untyped for any consumer reaching into the raw component API. Regenerated via `npx convex codegen`; no source logic changed, generated bindings only.
|
|
237
285
|
|
|
238
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: `updateDispute` now sends an explicit `submit: false` on every call, including metadata-only updates (
|
|
286
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: `updateDispute` now sends an explicit `submit: false` on every call, including metadata-only updates ([#67](https://github.com/kellykampen/better-stripe/issues/67)).
|
|
239
287
|
|
|
240
|
-
|
|
288
|
+
Earlier evidence handling made evidence-bearing `updateDispute` calls stage by default (`submit: false`), but left metadata-only updates sending no `submit` key at all — inheriting Stripe's server-side default, which Stripe's docs state is `true` on every update. Empirically, a metadata-only update does not submit previously staged evidence today, but that leniency contradicts the documented default and submission is one-shot and outcome-affecting. `updateDispute` now never omits `submit`: every call — evidence, metadata, or both — sends an explicit `submit: false` unless the caller passes `submit: true` to finalize.
|
|
241
289
|
|
|
242
290
|
No public API change; the safer default only ever narrows behavior (no call that previously submitted now stages, and vice versa).
|
|
243
291
|
|
|
244
|
-
- [#68](https://github.com/kellykampen/better-stripe/pull/68) [`4d1b843`](https://github.com/kellykampen/better-stripe/commit/4d1b843cb9891a313c9b9a270ca067e36c686420) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix a first-invoice fee double-reversal crack
|
|
292
|
+
- [#68](https://github.com/kellykampen/better-stripe/pull/68) [`4d1b843`](https://github.com/kellykampen/better-stripe/commit/4d1b843cb9891a313c9b9a270ca067e36c686420) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix a first-invoice fee double-reversal crack.
|
|
245
293
|
|
|
246
294
|
`applyFirstInvoiceFee` recomputed the platform fee from **live** subscription metadata (`bsFeeConfig`) on every webhook retry. If the transfer reversal succeeded but the `bsFeeCollected` invoice-marker write then failed (event marked `failed`), and the platform edited `bsFeeConfig` before Stripe redelivered, a retry landing **after** Stripe's ≤24h idempotency-key window would recompute a _different_ fee and create a **second** reversal — double-collecting the fee.
|
|
247
295
|
|
|
248
|
-
**Fix:** before reversing, `applyFirstInvoiceFee` now lists the destination transfer's existing reversals and adopts one tagged `metadata.bsFeeFor:<invoiceId>` as the idempotency source of truth. That tag survives both the marker-write failure and the idempotency-key TTL, so a retry re-records the marker with the already-reversed amount instead of reversing again — mirroring
|
|
296
|
+
**Fix:** before reversing, `applyFirstInvoiceFee` now lists the destination transfer's existing reversals and adopts one tagged `metadata.bsFeeFor:<invoiceId>` as the idempotency source of truth. That tag survives both the marker-write failure and the idempotency-key TTL, so a retry re-records the marker with the already-reversed amount instead of reversing again — mirroring the per-charge fee collector's frozen-config guarantee. No API surface change.
|
|
249
297
|
|
|
250
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: collect the fixed/tier platform fee on a subscription's first invoice (
|
|
298
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: collect the fixed/tier platform fee on a subscription's first invoice ([#52](https://github.com/kellykampen/better-stripe/issues/52)).
|
|
251
299
|
|
|
252
|
-
`applyPerInvoiceFee`
|
|
300
|
+
`applyPerInvoiceFee` applies a fixed/tier `application_fee_amount` at `invoice.created`, which only works while the invoice is still a draft. Stripe finalizes a `charge_automatically` subscription's first invoice synchronously at creation (and Checkout subscription-mode pays it during checkout), so `invoice.created` fires with an already-`open` invoice — the update is silently rejected and the first cycle's platform fee was lost on every destination-charge subscription with a fixed/tier fee. Percent-only fees and renewal invoices (which get Stripe's ~1h draft window) were unaffected.
|
|
253
301
|
|
|
254
|
-
Fixed with a new `applyFirstInvoiceFee` processor hooked at `invoice.paid`: it collects the missed fee via a partial reversal of the automatic destination transfer, sized from `amount_paid` — the same mechanism
|
|
302
|
+
Fixed with a new `applyFirstInvoiceFee` processor hooked at `invoice.paid`: it collects the missed fee via a partial reversal of the automatic destination transfer, sized from `amount_paid` — the same mechanism the per-charge fee collector's `applyPerChargeFee` uses for one-time charges. Skips any invoice whose fee the draft path already collected, so there's no double-collection. No public API change.
|
|
255
303
|
|
|
256
|
-
- [#21](https://github.com/kellykampen/better-stripe/pull/21) [`1f43345`](https://github.com/kellykampen/better-stripe/commit/1f433459ec6eb11d75982f1ed883cff9414d4e15) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix `createPrice` orphaning a Stripe price when the product is missing from the component DB
|
|
304
|
+
- [#21](https://github.com/kellykampen/better-stripe/pull/21) [`1f43345`](https://github.com/kellykampen/better-stripe/commit/1f433459ec6eb11d75982f1ed883cff9414d4e15) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix `createPrice` orphaning a Stripe price when the product is missing from the component DB.
|
|
257
305
|
|
|
258
306
|
`createPrice` previously called `stripe.prices.create(...)` **before** verifying the product existed in the component DB, then threw `PRODUCT_NOT_FOUND` afterward — leaving an orphaned price in Stripe with no corresponding component record. The product lookup now runs **first**, so a missing/unsynced product throws before any Stripe write happens. No API change; behavior only differs on the error path.
|
|
259
307
|
|
|
260
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: collect deferred `per_charge` platform fees via transfer reversal (
|
|
308
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix: collect deferred `per_charge` platform fees via transfer reversal ([#38](https://github.com/kellykampen/better-stripe/issues/38)).
|
|
261
309
|
|
|
262
310
|
`bsFeeMode="per_charge"` (used when a one-time destination charge's final amount isn't known up front — discounts, `custom_unit_amount` prices, or a `sessionOverrides`-replaced `line_items`) had no webhook consumer, so the fixed/tiered platform fee was silently never collected on those charges.
|
|
263
311
|
|
|
264
312
|
Fixed with a new `applyPerChargeFee` processor at `payment_intent.succeeded`: it collects the fee the same way Stripe itself settles application fees on destination charges — a partial reversal of the automatic destination transfer, sized by `computeFee` from the amount actually charged (`amount_received`). No public API change; charges that already pass `amount` up front (computing `application_fee_amount` at session creation) are unaffected.
|
|
265
313
|
|
|
266
|
-
- [#66](https://github.com/kellykampen/better-stripe/pull/66) [`a47d64d`](https://github.com/kellykampen/better-stripe/commit/a47d64d39ece42b4cc0d96508e9b87925c6bf8e9) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix `addRecipientConfiguration` not persisting `appliedConfigurations` to the component DB
|
|
314
|
+
- [#66](https://github.com/kellykampen/better-stripe/pull/66) [`a47d64d`](https://github.com/kellykampen/better-stripe/commit/a47d64d39ece42b4cc0d96508e9b87925c6bf8e9) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix `addRecipientConfiguration` not persisting `appliedConfigurations` to the component DB.
|
|
267
315
|
|
|
268
316
|
`addRecipientConfiguration` applied the V2 recipient configuration on Stripe but never wrote the result back to the component `accounts` row, unlike `addCustomerConfiguration` which re-fetches and records `applied_configurations` after every update. Callers had to manually run `syncAllAccounts` afterward to reconcile the component DB, leaving it stale in between — anything reading `appliedConfigurations` off the component row (e.g. billing-view/UI gating) saw an out-of-date picture. `addRecipientConfiguration` now follows the same pattern: re-fetch the account after the Stripe update, read `applied_configurations`, recover the owning `userId` from the existing component record (failing closed with `ACCOUNT_NOT_FOUND` if the account isn't in the component DB yet), and `upsertAccount`. No public API change on the call side; the return shape now includes `appliedConfigurations` alongside `success`, matching `addCustomerConfiguration`.
|
|
269
317
|
|
|
270
|
-
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix three transfer-reversal money races via atomic reversal-slice claiming (
|
|
318
|
+
- [#76](https://github.com/kellykampen/better-stripe/pull/76) [`c9f1489`](https://github.com/kellykampen/better-stripe/commit/c9f148948f2f5ea77f343c5fc1a78faffbb5ac1e) Thanks [@kellykampen](https://github.com/kellykampen)! - Fix three transfer-reversal money races via atomic reversal-slice claiming ([#61](https://github.com/kellykampen/better-stripe/issues/61)).
|
|
271
319
|
|
|
272
320
|
- Dispute clawback (amount mode): a retry after partial success recomputed per-leg amounts from mutable ledger state — a same-params replay could double-record the ledger, or a shifted remainder could resend different params under an already-used Stripe idempotency key, causing a permanent event-retry loop.
|
|
273
|
-
- Refund clawback (delta-to-target
|
|
321
|
+
- Refund clawback (delta-to-target): two distinct refunds racing between the ledger read and the Stripe call could both compute the same reversal target from stale state, over-reversing a leg and under-recording the ledger.
|
|
274
322
|
- `payment_intent.succeeded` redelivery could have `upsertPayment`'s blanket patch rewrite `feeCollectedAmount` back to the gross fee, bypassing the monotonic fee-refund guard.
|
|
275
323
|
|
|
276
324
|
Fixed by claiming the exact reversal slice atomically, in a new component mutation, before any money moves — so a retry re-adopts the already-claimed slice instead of recomputing and re-reversing it. No public API change.
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Built for Convex + Next.js applications. Follows the conventions established by
|
|
|
6
6
|
|
|
7
7
|
## Status
|
|
8
8
|
|
|
9
|
-
**Version**: `0.
|
|
9
|
+
**Version**: `0.6.1` <!-- x-release-please-version --> (pre-1.0). API may change between minor versions until 1.0.
|
|
10
10
|
|
|
11
11
|
Used in production by its authors. Webhook pipeline is covered by unit tests and a live E2E harness (`npm run e2e:webhooks`) that fires real Stripe-signed events and asserts the ledger.
|
|
12
12
|
|
|
@@ -61,11 +61,11 @@ pnpm codegen:example # regen example/convex/_generated only
|
|
|
61
61
|
|
|
62
62
|
All three require a configured dev deployment (`CONVEX_DEPLOYMENT` env var, normally set by a prior `npx convex dev`). They write only the local `_generated/` files — they don't push code or data to the deployment.
|
|
63
63
|
|
|
64
|
-
**CI gate
|
|
64
|
+
**CI gate.** Two layers verify the committed files are not stale:
|
|
65
65
|
|
|
66
66
|
1. **Structural drift check** (`pnpm codegen:check`, always runs in CI): two independent scans, each checking both directions (every source export appears in the generated file, and every generated entry still has a matching source), neither needing a deployment:
|
|
67
|
-
- Library component — scans `src/component/**/*.{queries,mutations,actions}.ts` and verifies every exported function appears in `src/component/_generated/component.ts`.
|
|
68
|
-
- Example app — scans `example/convex/**/*.ts` and verifies every source module is imported and registered in `example/convex/_generated/api.ts`. Catches the common case of adding a new `example/convex/<module>.ts` (or nested file like `example/convex/lib/<module>.ts`) without regenerating
|
|
67
|
+
- Library component — scans `src/component/**/*.{queries,mutations,actions}.ts` and verifies every exported function appears in `src/component/_generated/component.ts`. The reverse direction also flags a stale entry left behind by a *deleted* query/mutation/action. The export-detection regex intentionally matches only direct `query(...)`/`mutation(...)`/`action(...)` exports — not wrapper or re-export forms like `customQuery(...)` (convex-helpers) or `export { fn as name }`, which this component has none of today; widen the regex (and the reverse scan) rather than assuming that stays true.
|
|
68
|
+
- Example app — scans `example/convex/**/*.ts` and verifies every source module is imported and registered in `example/convex/_generated/api.ts`. Catches the common case of adding a new `example/convex/<module>.ts` (or nested file like `example/convex/lib/<module>.ts`) without regenerating. The reverse direction likewise flags a stale import left behind by a *deleted* module.
|
|
69
69
|
2. **Authoritative regen-and-diff** (runs in CI when `CONVEX_DEPLOYMENT` is configured): runs `pnpm codegen` against the configured dev deployment and fails if `git diff` shows changes. Catches every drift case, including validator-shape changes the structural check can't see. To enable on a fork, set the `CONVEX_DEPLOYMENT` repo secret to a dev deployment name and authorize the CI runner — see Convex's [GitHub Actions guide](https://docs.convex.dev/production/integration/deployments#github-actions).
|
|
70
70
|
|
|
71
71
|
### Relation to `@convex-dev/stripe`
|
|
@@ -96,12 +96,12 @@ See [Roadmap / Known Gaps](#roadmap--known-gaps) for what's still in flight.
|
|
|
96
96
|
|
|
97
97
|
## Roadmap / Known Gaps
|
|
98
98
|
|
|
99
|
-
The marketplace economics layer
|
|
99
|
+
The marketplace economics layer includes platform fees, split transfers, rolling payouts, dispute recovery, refund reversals, and per-store statement descriptors. The former roadmap gaps are covered as follows:
|
|
100
100
|
|
|
101
|
-
- **
|
|
102
|
-
- **
|
|
103
|
-
- **
|
|
104
|
-
- **
|
|
101
|
+
- **First subscription charge descriptor** — `createProduct` and `updateProduct` stamp the store's descriptor (or platform fallback) onto store-owned Stripe products. The product descriptor covers the first invoice for direct subscriptions and Checkout subscription mode; the invoice-time descriptor still takes precedence on later invoices. Existing products need `updateProduct` to receive the descriptor, and a later store descriptor change requires refreshing its products. Shared products have one descriptor and should not be reused across stores that need different descriptors.
|
|
102
|
+
- **First-invoice fees** — finalized first invoices bypass the draft update window. At `invoice.paid`, the processor collects the fixed/tiered fee through a partial reversal of the destination transfer. Invoice markers and invoice-tagged reversals prevent duplicate collection, including recovery after a failed marker write. Renewals whose fees were set on the draft invoice are skipped.
|
|
103
|
+
- **Dispute reversal retries** — reversal slices are claimed atomically before any Stripe call. Partial-success retries reuse the recorded amounts and idempotency keys, skip confirmed legs, and reconcile money already moved before a ledger-write failure.
|
|
104
|
+
- **Earnings and split totals** — `useEarnings` reads exact server-side aggregates with bounded drill-down previews. `listTransfersByAccount` remains a preview API; do not sum it for financial totals. `listTransfersByCharge` now returns every original split leg by default, and reversal claims cover all of those legs. An explicit list limit requests a preview. Convex read/write/response limits fail loudly rather than silently truncate financial data.
|
|
105
105
|
|
|
106
106
|
## Installation
|
|
107
107
|
|
|
@@ -598,7 +598,7 @@ const { feeAmount, percentApplied, fixedApplied, tier } = computeFee(2999, {
|
|
|
598
598
|
|
|
599
599
|
- **Percent-only** fees (`isPercentOnlyFee(config)` — no `fixed`, no `tiers`) map directly to Stripe's `application_fee_percent` on the subscription/PaymentIntent — no per-invoice computation needed.
|
|
600
600
|
- **Fixed or tiered** fees can't be expressed as a flat Stripe percentage, so they're computed and applied per invoice (`applyPerInvoiceFee`, at `invoice.created`) or per one-time charge (`applyPerChargeFee`) in the webhook processor, via `application_fee_amount`.
|
|
601
|
-
-
|
|
601
|
+
- For synchronously finalized first invoices, `invoice.paid` collects the missed fixed/tiered fee through a partial destination-transfer reversal. See [first-invoice fee handling](#roadmap--known-gaps).
|
|
602
602
|
|
|
603
603
|
Fees only apply to **destination charges** (`destinationAccountId` set, or a single-recipient `split`). The **separate-charges-and-transfers** path (multi-recipient `split`) never uses `application_fee` — the platform's cut is realized by transferring less than was charged (see Split Engine below).
|
|
604
604
|
|
|
@@ -690,7 +690,7 @@ await stripe.setAccountStatementDescriptor(ctx, {
|
|
|
690
690
|
});
|
|
691
691
|
```
|
|
692
692
|
|
|
693
|
-
Validated against Stripe's rules (`validateStatementDescriptorSuffix`: 1–22 chars, at least one Latin letter, no `< > \ ' " *`, no non-Latin — rejects rather than truncates) before writing. Resolution order per charge: the store's stored suffix → the platform's configured `statementDescriptorSuffix` default (constructor option) → none. One-time payments set the suffix directly on the PaymentIntent at checkout
|
|
693
|
+
Validated against Stripe's rules (`validateStatementDescriptorSuffix`: 1–22 chars, at least one Latin letter, no `< > \ ' " *`, no non-Latin — rejects rather than truncates) before writing. Resolution order per charge: the store's stored suffix → the platform's configured `statementDescriptorSuffix` default (constructor option) → none. One-time payments set the suffix directly on the PaymentIntent at checkout. Store-owned products carry the descriptor for subscriptions' first charges; the webhook processor sets it on later invoices. Refresh existing products with `updateProduct` after changing a store's descriptor.
|
|
694
694
|
|
|
695
695
|
## React Hooks
|
|
696
696
|
|
|
@@ -711,8 +711,8 @@ Read hooks are exported as factory functions that take the app's `useQuery` bind
|
|
|
711
711
|
| `createUsePaymentMethods` | `(accountId?)` | `{ methods, defaultMethod, isLoading }` |
|
|
712
712
|
| `createUseInvoices` | `({ userId?, subscriptionId?, status? }?)` | `{ invoices, isLoading }` |
|
|
713
713
|
| `createUseAccountOnboarding` | `(accountId?)` | `{ account, status, isReady, missingRequirements, isLoading }` |
|
|
714
|
-
| `createUseEarnings` | `(accountId?)` | `{ gross, reversed, net, payouts, paidOut, transfers, isLoading }` — recipient balance/earnings
|
|
715
|
-
| `createUseSplitBreakdown` | `({ sourceChargeId?, saleAmount? })` | `{ breakdown: { legs, store, affiliate, other, recipientsTotal, platform? } \| null, isLoading }` — per-sale split
|
|
714
|
+
| `createUseEarnings` | `(accountId?)` | `{ gross, reversed, net, payouts, paidOut, transfers, isLoading }` — recipient balance/earnings |
|
|
715
|
+
| `createUseSplitBreakdown` | `({ sourceChargeId?, saleAmount? })` | `{ breakdown: { legs, store, affiliate, other, recipientsTotal, platform? } \| null, isLoading }` — per-sale split |
|
|
716
716
|
| `createUseDisputes` | `({ accountId?, status? }?)` | `{ disputes, isLoading }` |
|
|
717
717
|
| `createUseDisputeWithCountdown` | `(stripeDisputeId?)` | `{ dispute, countdown: { dueBy?, daysRemaining?, isOverdue } \| null, isLoading }` |
|
|
718
718
|
|
|
@@ -919,7 +919,7 @@ views and responds to their own disputes via Stripe's embedded `disputes_list`
|
|
|
919
919
|
**Dependencies:** the wrapper uses [`@stripe/react-connect-js`](https://www.npmjs.com/package/@stripe/react-connect-js) and [`@stripe/connect-js`](https://www.npmjs.com/package/@stripe/connect-js), which ship as regular dependencies of this package (same convention as `@stripe/react-stripe-js` / `@stripe/stripe-js`) -- no extra install step. ConnectJS components are client-only iframes; render them in client components.
|
|
920
920
|
|
|
921
921
|
```tsx
|
|
922
|
-
// convex/stripe.ts — expose the account session (server side
|
|
922
|
+
// convex/stripe.ts — expose the account session (server side)
|
|
923
923
|
export const createDisputeSession = action({
|
|
924
924
|
args: { stripeAccountId: v.string() },
|
|
925
925
|
handler: async (ctx, args) => stripe.createDisputeSession(ctx, args),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/component/connect/mutations.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;iBAyExB,CAAC;AAMH,eAAO,MAAM,YAAY;;;;;;;;;iBA4BvB,CAAC;AAMH,eAAO,MAAM,YAAY;;;;;;;;;;;iBA8DvB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;;;;iBAwDjC,CAAC;AAMH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;iBAmBxB,CAAC;
|
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/component/connect/mutations.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;iBAyExB,CAAC;AAMH,eAAO,MAAM,YAAY;;;;;;;;;iBA4BvB,CAAC;AAMH,eAAO,MAAM,YAAY;;;;;;;;;;;iBA8DvB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;;;;iBAwDjC,CAAC;AAMH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;iBAmBxB,CAAC;AA8BH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;iBAmCzB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;iBAqCjC,CAAC;AAcH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;GA0F9B,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;0BA+EM,MAAM;YAAM,MAAM;;GAWvD,CAAC"}
|
|
@@ -353,16 +353,25 @@ export const claimReversalSlices = mutation({
|
|
|
353
353
|
if (existingOp) {
|
|
354
354
|
const slices = [];
|
|
355
355
|
for (const s of existingOp.slices) {
|
|
356
|
-
slices.push({
|
|
356
|
+
slices.push({
|
|
357
|
+
...s,
|
|
358
|
+
confirmed: await confirmedFor(s.stripeTransferId),
|
|
359
|
+
});
|
|
357
360
|
}
|
|
358
361
|
return { replay: true, slices };
|
|
359
362
|
}
|
|
360
363
|
// Original split legs only — reinstatement payouts are audit rows and
|
|
361
364
|
// must never be re-reversed (mirrors listTransfersByCharge).
|
|
362
|
-
|
|
365
|
+
// Claim every original split leg, including those beyond the former
|
|
366
|
+
// 50-row preview. Read/write limits abort the transaction before a partial
|
|
367
|
+
// claim can commit; no Stripe call happens until this mutation succeeds.
|
|
368
|
+
const rows = [];
|
|
369
|
+
for await (const transfer of ctx.db
|
|
363
370
|
.query("transfers")
|
|
364
|
-
.withIndex("by_source_charge_id", (q) => q.eq("sourceChargeId", args.sourceChargeId))
|
|
365
|
-
|
|
371
|
+
.withIndex("by_source_charge_id", (q) => q.eq("sourceChargeId", args.sourceChargeId))) {
|
|
372
|
+
if (!transfer.reinstatement)
|
|
373
|
+
rows.push(transfer);
|
|
374
|
+
}
|
|
366
375
|
const byId = new Map(rows.map((r) => [r.stripeTransferId, r]));
|
|
367
376
|
const slices = computeReversalSlices(rows.map((t) => ({
|
|
368
377
|
stripeTransferId: t.stripeTransferId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/component/connect/mutations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/component/connect/mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -189,10 +189,9 @@ export declare const getTransferByStripeId: import("convex/server").RegisteredQu
|
|
|
189
189
|
/**
|
|
190
190
|
* All transfers funded from one charge (the legs of a split).
|
|
191
191
|
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* recipients.
|
|
192
|
+
* Returns every original split leg unless an explicit limit is provided.
|
|
193
|
+
* Reinstatement audit rows do not consume that limit. Database read/response
|
|
194
|
+
* limits fail the query rather than silently returning incomplete money data.
|
|
196
195
|
*/
|
|
197
196
|
export declare const listTransfersByCharge: import("convex/server").RegisteredQuery<"public", {
|
|
198
197
|
limit?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/component/connect/queries.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;UAW/B,CAAC;AAMH,eAAO,MAAM,SAAS;;;;;;;;;;;;;UAMpB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;UAW9B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;KAsCtB,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;UAW9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;KA6DtB,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;UAW/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;KA6DvB,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;UAWhC,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/component/connect/queries.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;UAW/B,CAAC;AAMH,eAAO,MAAM,SAAS;;;;;;;;;;;;;UAMpB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;UAW9B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;KAsCtB,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;UAW9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;KA6DtB,CAAC;AAMH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;UAW/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;KA6DvB,CAAC;AAMH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;UAWhC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;KAuBhC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;KAWjC,CAAC;AAMH;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;UAWxB,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB;;;;;;;qBAsBhB,MAAM;cAAQ,MAAM;YAAM,MAAM;;KAuBnD,CAAC;AAgBH;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;GA+B7B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;GAuB5B,CAAC"}
|
|
@@ -225,22 +225,31 @@ export const getTransferByStripeId = query({
|
|
|
225
225
|
/**
|
|
226
226
|
* All transfers funded from one charge (the legs of a split).
|
|
227
227
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* recipients.
|
|
228
|
+
* Returns every original split leg unless an explicit limit is provided.
|
|
229
|
+
* Reinstatement audit rows do not consume that limit. Database read/response
|
|
230
|
+
* limits fail the query rather than silently returning incomplete money data.
|
|
232
231
|
*/
|
|
233
232
|
export const listTransfersByCharge = query({
|
|
234
233
|
args: { sourceChargeId: v.string(), limit: v.optional(v.number()) },
|
|
235
234
|
returns: v.array(transferDocValidator),
|
|
236
235
|
handler: async (ctx, args) => {
|
|
237
|
-
|
|
236
|
+
if (args.limit !== undefined &&
|
|
237
|
+
(!Number.isInteger(args.limit) || args.limit < 0)) {
|
|
238
|
+
throw new Error("limit must be a non-negative integer");
|
|
239
|
+
}
|
|
240
|
+
const rows = [];
|
|
241
|
+
if (args.limit === 0)
|
|
242
|
+
return rows;
|
|
243
|
+
for await (const transfer of ctx.db
|
|
238
244
|
.query("transfers")
|
|
239
|
-
.withIndex("by_source_charge_id", (q) => q.eq("sourceChargeId", args.sourceChargeId))
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
245
|
+
.withIndex("by_source_charge_id", (q) => q.eq("sourceChargeId", args.sourceChargeId))) {
|
|
246
|
+
if (transfer.reinstatement)
|
|
247
|
+
continue;
|
|
248
|
+
rows.push(transfer);
|
|
249
|
+
if (args.limit !== undefined && rows.length >= args.limit)
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
return rows;
|
|
244
253
|
},
|
|
245
254
|
});
|
|
246
255
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/component/connect/queries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/component/connect/queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export type UseSplitBreakdownResult = {
|
|
|
35
35
|
isLoading: boolean;
|
|
36
36
|
};
|
|
37
37
|
/**
|
|
38
|
-
* Factory for a per-sale split-breakdown hook
|
|
38
|
+
* Factory for a per-sale split-breakdown hook: reads the sale's
|
|
39
39
|
* original split legs (`listTransfersByCharge` — reinstatement rows are
|
|
40
40
|
* excluded server-side) and sums them by role, with the platform's share
|
|
41
41
|
* derived from the sale amount when provided. Presentation math only — the
|
|
@@ -44,11 +44,9 @@ export type UseSplitBreakdownResult = {
|
|
|
44
44
|
* Pass `sourceChargeId: undefined` to skip the query. The `useQuery` binding
|
|
45
45
|
* must support Convex's `"skip"` sentinel.
|
|
46
46
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* than 50 recipients would undercount here; pass a higher `limit` on that query
|
|
51
|
-
* if you ever do that.
|
|
47
|
+
* Bind this to a query that returns every original leg for the charge. The
|
|
48
|
+
* component's `listTransfersByCharge` returns all legs by default; applying an
|
|
49
|
+
* explicit preview limit in the app's wrapper would understate these totals.
|
|
52
50
|
*/
|
|
53
51
|
export declare function createUseSplitBreakdown(useQuery: (queryRef: any, args: Record<string, unknown> | "skip") => any, transfersByChargeQueryRef: any): (args: {
|
|
54
52
|
sourceChargeId: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSplitBreakdown.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSplitBreakdown.ts"],"names":[],"mappings":"AAIA,2EAA2E;AAC3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IACtC,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"useSplitBreakdown.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSplitBreakdown.ts"],"names":[],"mappings":"AAIA,2EAA2E;AAC3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IACtC,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,0DAA0D;IAC1D,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,KAAK,GAAG,EACxE,yBAAyB,EAAE,GAAG,UAEU;IACtC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,uBAAuB,CAkD5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
/**
|
|
3
|
-
* Factory for a per-sale split-breakdown hook
|
|
3
|
+
* Factory for a per-sale split-breakdown hook: reads the sale's
|
|
4
4
|
* original split legs (`listTransfersByCharge` — reinstatement rows are
|
|
5
5
|
* excluded server-side) and sums them by role, with the platform's share
|
|
6
6
|
* derived from the sale amount when provided. Presentation math only — the
|
|
@@ -9,11 +9,9 @@
|
|
|
9
9
|
* Pass `sourceChargeId: undefined` to skip the query. The `useQuery` binding
|
|
10
10
|
* must support Convex's `"skip"` sentinel.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* than 50 recipients would undercount here; pass a higher `limit` on that query
|
|
16
|
-
* if you ever do that.
|
|
12
|
+
* Bind this to a query that returns every original leg for the charge. The
|
|
13
|
+
* component's `listTransfersByCharge` returns all legs by default; applying an
|
|
14
|
+
* explicit preview limit in the app's wrapper would understate these totals.
|
|
17
15
|
*/
|
|
18
16
|
export function createUseSplitBreakdown(useQuery, transfersByChargeQueryRef) {
|
|
19
17
|
return function useSplitBreakdown(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSplitBreakdown.js","sourceRoot":"","sources":["../../../src/react/hooks/useSplitBreakdown.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AA2Cb
|
|
1
|
+
{"version":3,"file":"useSplitBreakdown.js","sourceRoot":"","sources":["../../../src/react/hooks/useSplitBreakdown.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AA2Cb;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAwE,EACxE,yBAA8B;IAE9B,OAAO,SAAS,iBAAiB,CAAC,IAIjC;QACC,MAAM,SAAS,GAAG,QAAQ,CACxB,yBAAyB,EACzB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CACvE,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,cAAc,KAAK,SAAS;aAC7C,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAyB,SAAgC,CAAC,GAAG,CACrE,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC;YAC7C,OAAO;gBACL,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;gBAC5C,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO;gBACvB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,cAAc;gBACd,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,cAAc;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,IAA+B,EAAE,EAAE,CACjD,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;QAElD,OAAO;YACL,SAAS,EAAE;gBACT,IAAI;gBACJ,KAAK;gBACL,SAAS;gBACT,KAAK;gBACL,eAAe;gBACf,QAAQ,EACN,IAAI,CAAC,UAAU,KAAK,SAAS;oBAC3B,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe;oBACnC,CAAC,CAAC,SAAS;aAChB;YACD,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { v } from "convex/values";
|
|
2
2
|
|
|
3
|
-
import type { Id } from "../_generated/dataModel";
|
|
3
|
+
import type { Doc, Id } from "../_generated/dataModel";
|
|
4
4
|
import { mutation } from "../_generated/server";
|
|
5
5
|
import { feeRoutingFields } from "../lib/fees";
|
|
6
6
|
import { computeReversalSlices } from "../lib/reversals";
|
|
@@ -311,7 +311,8 @@ function deriveReversalState(
|
|
|
311
311
|
return {
|
|
312
312
|
reversedAmount: reversedAmount > 0 ? reversedAmount : undefined,
|
|
313
313
|
reversalStatus,
|
|
314
|
-
status:
|
|
314
|
+
status:
|
|
315
|
+
reversalStatus === "fully_reversed" ? ("reversed" as const) : baseStatus,
|
|
315
316
|
};
|
|
316
317
|
}
|
|
317
318
|
|
|
@@ -333,7 +334,11 @@ export const upsertTransfer = mutation({
|
|
|
333
334
|
existing.reversedAmount ?? 0,
|
|
334
335
|
args.reversedAmount ?? 0,
|
|
335
336
|
);
|
|
336
|
-
const derived = deriveReversalState(
|
|
337
|
+
const derived = deriveReversalState(
|
|
338
|
+
args.amount,
|
|
339
|
+
reversedAmount,
|
|
340
|
+
args.status,
|
|
341
|
+
);
|
|
337
342
|
await ctx.db.patch("transfers", existing._id, { ...args, ...derived });
|
|
338
343
|
} else {
|
|
339
344
|
const derived = deriveReversalState(
|
|
@@ -459,21 +464,27 @@ export const claimReversalSlices = mutation({
|
|
|
459
464
|
if (existingOp) {
|
|
460
465
|
const slices = [];
|
|
461
466
|
for (const s of existingOp.slices) {
|
|
462
|
-
slices.push({
|
|
467
|
+
slices.push({
|
|
468
|
+
...s,
|
|
469
|
+
confirmed: await confirmedFor(s.stripeTransferId),
|
|
470
|
+
});
|
|
463
471
|
}
|
|
464
472
|
return { replay: true, slices };
|
|
465
473
|
}
|
|
466
474
|
|
|
467
475
|
// Original split legs only — reinstatement payouts are audit rows and
|
|
468
476
|
// must never be re-reversed (mirrors listTransfersByCharge).
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
+
// Claim every original split leg, including those beyond the former
|
|
478
|
+
// 50-row preview. Read/write limits abort the transaction before a partial
|
|
479
|
+
// claim can commit; no Stripe call happens until this mutation succeeds.
|
|
480
|
+
const rows: Doc<"transfers">[] = [];
|
|
481
|
+
for await (const transfer of ctx.db
|
|
482
|
+
.query("transfers")
|
|
483
|
+
.withIndex("by_source_charge_id", (q) =>
|
|
484
|
+
q.eq("sourceChargeId", args.sourceChargeId),
|
|
485
|
+
)) {
|
|
486
|
+
if (!transfer.reinstatement) rows.push(transfer);
|
|
487
|
+
}
|
|
477
488
|
|
|
478
489
|
const byId = new Map(rows.map((r) => [r.stripeTransferId, r]));
|
|
479
490
|
const slices = computeReversalSlices(
|
|
@@ -293,24 +293,32 @@ export const getTransferByStripeId = query({
|
|
|
293
293
|
/**
|
|
294
294
|
* All transfers funded from one charge (the legs of a split).
|
|
295
295
|
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
* recipients.
|
|
296
|
+
* Returns every original split leg unless an explicit limit is provided.
|
|
297
|
+
* Reinstatement audit rows do not consume that limit. Database read/response
|
|
298
|
+
* limits fail the query rather than silently returning incomplete money data.
|
|
300
299
|
*/
|
|
301
300
|
export const listTransfersByCharge = query({
|
|
302
301
|
args: { sourceChargeId: v.string(), limit: v.optional(v.number()) },
|
|
303
302
|
returns: v.array(transferDocValidator),
|
|
304
303
|
handler: async (ctx, args) => {
|
|
305
|
-
|
|
304
|
+
if (
|
|
305
|
+
args.limit !== undefined &&
|
|
306
|
+
(!Number.isInteger(args.limit) || args.limit < 0)
|
|
307
|
+
) {
|
|
308
|
+
throw new Error("limit must be a non-negative integer");
|
|
309
|
+
}
|
|
310
|
+
const rows: Doc<"transfers">[] = [];
|
|
311
|
+
if (args.limit === 0) return rows;
|
|
312
|
+
for await (const transfer of ctx.db
|
|
306
313
|
.query("transfers")
|
|
307
314
|
.withIndex("by_source_charge_id", (q) =>
|
|
308
315
|
q.eq("sourceChargeId", args.sourceChargeId),
|
|
309
|
-
)
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
316
|
+
)) {
|
|
317
|
+
if (transfer.reinstatement) continue;
|
|
318
|
+
rows.push(transfer);
|
|
319
|
+
if (args.limit !== undefined && rows.length >= args.limit) break;
|
|
320
|
+
}
|
|
321
|
+
return rows;
|
|
314
322
|
},
|
|
315
323
|
});
|
|
316
324
|
|
|
@@ -296,7 +296,47 @@ describe("BTS-63 race 1 — refund path: concurrent DISTINCT refunds must not do
|
|
|
296
296
|
});
|
|
297
297
|
|
|
298
298
|
describe("BTS-63 race 2 — dispute path: retry after partial success must converge", () => {
|
|
299
|
-
|
|
299
|
+
it("claws back all 120 legs and converges after a failure beyond the former cap", async () => {
|
|
300
|
+
const t = convexTest(schema, modules);
|
|
301
|
+
const ctx = makeCtx(t);
|
|
302
|
+
const component = proxyComponent();
|
|
303
|
+
const stripe = makeRacingStripe();
|
|
304
|
+
for (let i = 0; i < 120; i++) {
|
|
305
|
+
await seedLeg(t, {
|
|
306
|
+
stripeTransferId: `tr_large_${i}`,
|
|
307
|
+
sourceChargeId: "ch_large",
|
|
308
|
+
amount: 100,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
const opts = {
|
|
312
|
+
sourceChargeId: "ch_large",
|
|
313
|
+
amount: 6000,
|
|
314
|
+
operationId: "dispute_large",
|
|
315
|
+
};
|
|
316
|
+
stripe.failNextCallFor("tr_large_75");
|
|
317
|
+
await expect(
|
|
318
|
+
reverseTransfers(asStripe(stripe), component, ctx, opts),
|
|
319
|
+
).rejects.toThrow(/network error/);
|
|
320
|
+
await reverseTransfers(asStripe(stripe), component, ctx, opts);
|
|
321
|
+
// A further redelivery must not move money or conflict with earlier keys.
|
|
322
|
+
await reverseTransfers(asStripe(stripe), component, ctx, opts);
|
|
323
|
+
const rows = await t.query(api.connect.queries.listTransfersByCharge, {
|
|
324
|
+
sourceChargeId: "ch_large",
|
|
325
|
+
});
|
|
326
|
+
expect(rows).toHaveLength(120);
|
|
327
|
+
expect(rows.reduce((sum, row) => sum + (row.reversedAmount ?? 0), 0)).toBe(
|
|
328
|
+
6000,
|
|
329
|
+
);
|
|
330
|
+
for (const row of rows) {
|
|
331
|
+
expect(row.reversedAmount).toBe(50);
|
|
332
|
+
expect(stripe.total(row.stripeTransferId)).toBe(50);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
const DISPUTE = {
|
|
336
|
+
sourceChargeId: "ch_dp",
|
|
337
|
+
amount: 4500,
|
|
338
|
+
operationId: "dp_1",
|
|
339
|
+
};
|
|
300
340
|
|
|
301
341
|
async function seedDisputeLegs(t: ReturnType<typeof convexTest>) {
|
|
302
342
|
await seedLeg(t, {
|
|
@@ -2,11 +2,80 @@
|
|
|
2
2
|
import { convexTest } from "convex-test";
|
|
3
3
|
import { describe, expect, it } from "vitest";
|
|
4
4
|
|
|
5
|
+
import { createUseSplitBreakdown } from "../react/hooks/useSplitBreakdown.js";
|
|
6
|
+
|
|
5
7
|
import { api } from "./_generated/api.js";
|
|
6
8
|
import schema from "./schema.js";
|
|
7
9
|
|
|
8
10
|
const modules = import.meta.glob("./**/*.*s");
|
|
9
11
|
|
|
12
|
+
describe("complete split-leg reads", () => {
|
|
13
|
+
it("returns every original leg beyond the former 50-row cap and filters audit rows before limiting", async () => {
|
|
14
|
+
const t = convexTest(schema, modules);
|
|
15
|
+
await t.mutation(api.connect.mutations.upsertTransfer, {
|
|
16
|
+
stripeTransferId: "tr_audit_first",
|
|
17
|
+
sourceChargeId: "ch_many",
|
|
18
|
+
destinationAccountId: "acct_store",
|
|
19
|
+
amount: 100,
|
|
20
|
+
currency: "usd",
|
|
21
|
+
status: "paid",
|
|
22
|
+
reinstatement: true,
|
|
23
|
+
});
|
|
24
|
+
for (let i = 0; i < 120; i++) {
|
|
25
|
+
await t.mutation(api.connect.mutations.upsertTransfer, {
|
|
26
|
+
stripeTransferId: `tr_many_${i}`,
|
|
27
|
+
sourceChargeId: "ch_many",
|
|
28
|
+
destinationAccountId: `acct_${i}`,
|
|
29
|
+
amount: 100,
|
|
30
|
+
currency: "usd",
|
|
31
|
+
status: "paid",
|
|
32
|
+
role: i % 2 === 0 ? "store" : "affiliate",
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const rows = await t.query(api.connect.queries.listTransfersByCharge, {
|
|
36
|
+
sourceChargeId: "ch_many",
|
|
37
|
+
});
|
|
38
|
+
expect(rows).toHaveLength(120);
|
|
39
|
+
expect(rows.reduce((sum, row) => sum + row.amount, 0)).toBe(12000);
|
|
40
|
+
expect(rows.some((row) => row.reinstatement)).toBe(false);
|
|
41
|
+
const useSplitBreakdown = createUseSplitBreakdown(
|
|
42
|
+
() => rows,
|
|
43
|
+
"chargeQuery",
|
|
44
|
+
);
|
|
45
|
+
expect(
|
|
46
|
+
useSplitBreakdown({ sourceChargeId: "ch_many", saleAmount: 13000 })
|
|
47
|
+
.breakdown,
|
|
48
|
+
).toMatchObject({
|
|
49
|
+
store: 6000,
|
|
50
|
+
affiliate: 6000,
|
|
51
|
+
recipientsTotal: 12000,
|
|
52
|
+
platform: 1000,
|
|
53
|
+
});
|
|
54
|
+
const preview = await t.query(api.connect.queries.listTransfersByCharge, {
|
|
55
|
+
sourceChargeId: "ch_many",
|
|
56
|
+
limit: 50,
|
|
57
|
+
});
|
|
58
|
+
expect(preview).toHaveLength(50);
|
|
59
|
+
expect(preview[0].stripeTransferId).toBe("tr_many_0");
|
|
60
|
+
expect(
|
|
61
|
+
await t.query(api.connect.queries.listTransfersByCharge, {
|
|
62
|
+
sourceChargeId: "ch_many",
|
|
63
|
+
limit: 0,
|
|
64
|
+
}),
|
|
65
|
+
).toEqual([]);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it.each([-1, 1.5])("rejects invalid explicit limit %s", async (limit) => {
|
|
69
|
+
const t = convexTest(schema, modules);
|
|
70
|
+
await expect(
|
|
71
|
+
t.query(api.connect.queries.listTransfersByCharge, {
|
|
72
|
+
sourceChargeId: "ch_many",
|
|
73
|
+
limit,
|
|
74
|
+
}),
|
|
75
|
+
).rejects.toThrow("non-negative integer");
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
10
79
|
describe("transfers ledger (BTS-12)", () => {
|
|
11
80
|
it("upserts a transfer and reads it back by stripe id", async () => {
|
|
12
81
|
const t = convexTest(schema, modules);
|
|
@@ -42,7 +42,7 @@ export type UseSplitBreakdownResult = {
|
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* Factory for a per-sale split-breakdown hook
|
|
45
|
+
* Factory for a per-sale split-breakdown hook: reads the sale's
|
|
46
46
|
* original split legs (`listTransfersByCharge` — reinstatement rows are
|
|
47
47
|
* excluded server-side) and sums them by role, with the platform's share
|
|
48
48
|
* derived from the sale amount when provided. Presentation math only — the
|
|
@@ -51,11 +51,9 @@ export type UseSplitBreakdownResult = {
|
|
|
51
51
|
* Pass `sourceChargeId: undefined` to skip the query. The `useQuery` binding
|
|
52
52
|
* must support Convex's `"skip"` sentinel.
|
|
53
53
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* than 50 recipients would undercount here; pass a higher `limit` on that query
|
|
58
|
-
* if you ever do that.
|
|
54
|
+
* Bind this to a query that returns every original leg for the charge. The
|
|
55
|
+
* component's `listTransfersByCharge` returns all legs by default; applying an
|
|
56
|
+
* explicit preview limit in the app's wrapper would understate these totals.
|
|
59
57
|
*/
|
|
60
58
|
export function createUseSplitBreakdown(
|
|
61
59
|
useQuery: (queryRef: any, args: Record<string, unknown> | "skip") => any,
|