@fantastic.dev/better-stripe 0.25.1 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/MIGRATION.md +11 -0
- package/README.md +10 -1
- package/dist/client/connect/payoutExecution.d.ts.map +1 -1
- package/dist/client/connect/payoutExecution.js +8 -83
- package/dist/client/connect/payoutExecution.js.map +1 -1
- package/dist/client/connect/payoutExecutionTestHelpers.d.ts +2 -10
- package/dist/client/connect/payoutExecutionTestHelpers.d.ts.map +1 -1
- package/dist/client/connect/payoutExecutionTestHelpers.js.map +1 -1
- package/dist/client/connect/payoutPreview.d.ts +20 -0
- package/dist/client/connect/payoutPreview.d.ts.map +1 -0
- package/dist/client/connect/payoutPreview.js +44 -0
- package/dist/client/connect/payoutPreview.js.map +1 -0
- package/dist/client/connect/payoutQualification.d.ts +30 -0
- package/dist/client/connect/payoutQualification.d.ts.map +1 -0
- package/dist/client/connect/payoutQualification.js +98 -0
- package/dist/client/connect/payoutQualification.js.map +1 -0
- package/dist/client/payoutPolicy.d.ts +4 -0
- package/dist/client/payoutPolicy.d.ts.map +1 -1
- package/dist/client/payoutPolicy.js +6 -1
- package/dist/client/payoutPolicy.js.map +1 -1
- package/dist/component/_generated/component.d.ts +39 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/affiliateRecovery/accounting.d.ts +2 -2
- package/dist/component/affiliateRecovery/accounting.d.ts.map +1 -1
- package/dist/component/affiliateRecovery/accounting.js.map +1 -1
- package/dist/component/payoutPolicy/helpers.d.ts +1 -1
- package/dist/component/payoutPolicy/helpers.d.ts.map +1 -1
- package/dist/component/payoutPolicy/helpers.js +3 -1
- package/dist/component/payoutPolicy/helpers.js.map +1 -1
- package/dist/component/payoutPolicy/mutations.d.ts.map +1 -1
- package/dist/component/payoutPolicy/mutations.js +1 -1
- package/dist/component/payoutPolicy/mutations.js.map +1 -1
- package/dist/component/payoutRelease/helpers.d.ts +4 -4
- package/dist/component/payoutRelease/helpers.d.ts.map +1 -1
- package/dist/component/payoutRelease/helpers.js.map +1 -1
- package/dist/component/payoutRelease/mutations.d.ts.map +1 -1
- package/dist/component/payoutRelease/mutations.js +2 -29
- package/dist/component/payoutRelease/mutations.js.map +1 -1
- package/dist/component/payoutRelease/planning.d.ts +27 -0
- package/dist/component/payoutRelease/planning.d.ts.map +1 -0
- package/dist/component/payoutRelease/planning.js +35 -0
- package/dist/component/payoutRelease/planning.js.map +1 -0
- package/dist/component/payoutRelease/preview.d.ts +117 -0
- package/dist/component/payoutRelease/preview.d.ts.map +1 -0
- package/dist/component/payoutRelease/preview.js +82 -0
- package/dist/component/payoutRelease/preview.js.map +1 -0
- package/dist/component/payoutRelease/queries.d.ts +39 -0
- package/dist/component/payoutRelease/queries.d.ts.map +1 -1
- package/dist/component/payoutRelease/queries.js +6 -0
- package/dist/component/payoutRelease/queries.js.map +1 -1
- package/dist/react/workflows/PayoutProgress.d.ts +5 -0
- package/dist/react/workflows/PayoutProgress.d.ts.map +1 -0
- package/dist/react/workflows/PayoutProgress.js +23 -0
- package/dist/react/workflows/PayoutProgress.js.map +1 -0
- package/dist/react/workflows/PayoutSettings.d.ts +44 -0
- package/dist/react/workflows/PayoutSettings.d.ts.map +1 -0
- package/dist/react/workflows/PayoutSettings.js +84 -0
- package/dist/react/workflows/PayoutSettings.js.map +1 -0
- package/dist/react/workflows/index.d.ts +4 -0
- package/dist/react/workflows/index.d.ts.map +1 -1
- package/dist/react/workflows/index.js +2 -0
- package/dist/react/workflows/index.js.map +1 -1
- package/dist/react/workflows/payout-progress-state.d.ts +43 -0
- package/dist/react/workflows/payout-progress-state.d.ts.map +1 -0
- package/dist/react/workflows/payout-progress-state.js +93 -0
- package/dist/react/workflows/payout-progress-state.js.map +1 -0
- package/docs/react-workflows-audit.md +1 -1
- package/docs/react-workflows.md +81 -0
- package/docs/settlement.md +57 -0
- package/package.json +1 -1
- package/src/client/connect/payoutExecution.ts +12 -99
- package/src/client/connect/payoutExecutionTestHelpers.ts +15 -13
- package/src/client/connect/payoutPreview.test.ts +269 -0
- package/src/client/connect/payoutPreview.ts +77 -0
- package/src/client/connect/payoutQualification.ts +145 -0
- package/src/client/payoutPolicy.test.ts +13 -0
- package/src/client/payoutPolicy.ts +19 -1
- package/src/component/_generated/api.ts +4 -0
- package/src/component/_generated/component.ts +42 -0
- package/src/component/affiliateRecovery/accounting.ts +2 -2
- package/src/component/payoutPolicy/helpers.ts +3 -1
- package/src/component/payoutPolicy/mutations.ts +4 -1
- package/src/component/payoutRelease/helpers.ts +7 -4
- package/src/component/payoutRelease/mutations.ts +2 -37
- package/src/component/payoutRelease/planning.ts +55 -0
- package/src/component/payoutRelease/preview.ts +118 -0
- package/src/component/payoutRelease/queries.ts +6 -0
- package/src/react/workflows/PayoutProgress.test.tsx +169 -0
- package/src/react/workflows/PayoutProgress.tsx +94 -0
- package/src/react/workflows/PayoutSettings.test.tsx +139 -0
- package/src/react/workflows/PayoutSettings.tsx +209 -0
- package/src/react/workflows/index.ts +13 -0
- package/src/react/workflows/payout-progress-state.ts +152 -0
package/CHANGELOG.md
CHANGED
|
@@ -26,6 +26,18 @@
|
|
|
26
26
|
- Remove internal tracker references from public documentation and add a
|
|
27
27
|
regression check that prevents their reintroduction.
|
|
28
28
|
|
|
29
|
+
## [0.27.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.26.0...v0.27.0) (2026-10-15)
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
- **react:** add reusable payout policy settings and progress ([#206](https://github.com/FantasticDevHQ/better-stripe/issues/206)) ([02dbc96](https://github.com/FantasticDevHQ/better-stripe/commit/02dbc966c065741b72d7a82bfc8f1b714083dc36))
|
|
34
|
+
|
|
35
|
+
## [0.26.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.25.1...v0.26.0) (2026-10-15)
|
|
36
|
+
|
|
37
|
+
### Features
|
|
38
|
+
|
|
39
|
+
- **payouts:** preview combined recipient eligibility without creating payouts ([#204](https://github.com/FantasticDevHQ/better-stripe/issues/204)) ([77db756](https://github.com/FantasticDevHQ/better-stripe/commit/77db756bd57192e841dfdaa11220bfe55e838a2e))
|
|
40
|
+
|
|
29
41
|
## [0.25.1](https://github.com/FantasticDevHQ/better-stripe/compare/v0.25.0...v0.25.1) (2026-10-15)
|
|
30
42
|
|
|
31
43
|
### Bug Fixes
|
package/MIGRATION.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Migrating to 0.5.0 and Stripe Endive
|
|
2
2
|
|
|
3
|
+
## Combined payout eligibility preview
|
|
4
|
+
|
|
5
|
+
`stripe.payoutPolicy.preview` is an additive server API. Regenerate the component
|
|
6
|
+
bindings when upgrading. No table migration or provider schedule change is
|
|
7
|
+
required to read it. Keep existing release and automatic worker calls; the
|
|
8
|
+
preview does not replace either. Authenticate the recipient and resolve
|
|
9
|
+
liabilities on the server before calling it. See the
|
|
10
|
+
[preview contract and display guidance](docs/settlement.md#payout-eligibility-preview)
|
|
11
|
+
for detailed versus unavailable assessments, shared deductions, and the
|
|
12
|
+
difference between an application attempt and a bank arrival.
|
|
13
|
+
|
|
3
14
|
## Package and runtime
|
|
4
15
|
|
|
5
16
|
Install `@fantastic.dev/better-stripe@0.5.0`. The old
|
package/README.md
CHANGED
|
@@ -51,6 +51,15 @@ idempotent bank payout. Install a host job to invoke it and expire due policies.
|
|
|
51
51
|
The [automatic worker](docs/settlement.md#automatic-recipient-worker) provides
|
|
52
52
|
durable attempt IDs, retry leases, recovery discovery and the next attempt time.
|
|
53
53
|
The example installs its five-minute cron in `example/convex/crons.ts`.
|
|
54
|
+
A [payout eligibility preview](docs/settlement.md#payout-eligibility-preview)
|
|
55
|
+
uses the release qualification checks to report combined mature funds, pending
|
|
56
|
+
credits, shared deductions and source categories without creating a bank payout.
|
|
57
|
+
The unstyled React [`PayoutProgress`](docs/react-workflows.md#combined-automatic-payout-progress)
|
|
58
|
+
displays that assessment with one combined minimum and supports custom cards
|
|
59
|
+
and translated copy through render props.
|
|
60
|
+
[`PayoutSettings`](docs/react-workflows.md#payout-settings)
|
|
61
|
+
adds consent, exact minimum entry, pending-state recovery and account-wide opt-out
|
|
62
|
+
through authorized host callbacks. Seller and affiliate payout pages use both.
|
|
54
63
|
[Historical imports and explicit funded activation](docs/settlement.md#historical-import-and-funded-activation)
|
|
55
64
|
verify old payouts, source ownership and holding age before enabling a custom
|
|
56
65
|
schedule. Larger histories and unallocated money still require reconciliation;
|
|
@@ -61,7 +70,7 @@ claim execution are completed.
|
|
|
61
70
|
|
|
62
71
|
## Status
|
|
63
72
|
|
|
64
|
-
**Version**: `0.
|
|
73
|
+
**Version**: `0.27.0` <!-- x-release-please-version --> (pre-1.0). API may change between minor versions until 1.0.
|
|
65
74
|
|
|
66
75
|
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.
|
|
67
76
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payoutExecution.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"payoutExecution.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAGxE,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,KAAK,MAAM,GAAG,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AACtC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,iHAAiH;IACjH,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,KAAK,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/C,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,IAAI,CAAC;AAC9D;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,OAAO,CACnB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAC5D,GACA,OAAO,CAAC,mBAAmB,CAAC,CAyI9B"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { runMutationOrThrow } from "../helpers.js";
|
|
2
2
|
import { componentRef } from "../webhooks/helpers.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { verifyPayoutHistory } from "./payoutHistory.js";
|
|
3
|
+
import { validateIdentity } from "../../component/payoutRelease/helpers.js";
|
|
4
|
+
import { collectPayoutQualification } from "./payoutQualification.js";
|
|
6
5
|
import { reconcileRecipientPayout, } from "./payoutReconciliation.js";
|
|
7
6
|
/**
|
|
8
7
|
* Complete receipt qualification followed by an atomic claim and one immutable
|
|
@@ -43,91 +42,17 @@ export async function releaseRecipientPayout(stripe, component, ctx, opts, verif
|
|
|
43
42
|
const controls = await verify();
|
|
44
43
|
if (controls.status !== "verified" || !("policy" in controls))
|
|
45
44
|
return { status: "held", reason: controls.status };
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
return
|
|
49
|
-
const banks = [];
|
|
50
|
-
let bankCursor;
|
|
51
|
-
for (let page = 0;; page++) {
|
|
52
|
-
if (page >= maxPages)
|
|
53
|
-
return { status: "held", reason: "bank_history_incomplete" };
|
|
54
|
-
const batch = await stripe.accounts.listExternalAccounts(opts.accountId, {
|
|
55
|
-
object: "bank_account",
|
|
56
|
-
limit: 100,
|
|
57
|
-
...(bankCursor ? { starting_after: bankCursor } : {}),
|
|
58
|
-
});
|
|
59
|
-
for (const bank of batch.data)
|
|
60
|
-
if (bank.object === "bank_account" &&
|
|
61
|
-
bank.currency === opts.currency &&
|
|
62
|
-
bank.default_for_currency &&
|
|
63
|
-
bank.status !== "errored")
|
|
64
|
-
banks.push(bank.id);
|
|
65
|
-
if (!batch.has_more)
|
|
66
|
-
break;
|
|
67
|
-
const next = batch.data[batch.data.length - 1]?.id;
|
|
68
|
-
if (!next || next === bankCursor)
|
|
69
|
-
return { status: "held", reason: "bank_history_incomplete" };
|
|
70
|
-
bankCursor = next;
|
|
71
|
-
}
|
|
72
|
-
if (banks.length !== 1 || !/^ba_\w+$/.test(banks[0]))
|
|
73
|
-
return { status: "held", reason: "bank_destination_unavailable" };
|
|
74
|
-
const destinationId = banks[0];
|
|
75
|
-
const transactions = [];
|
|
76
|
-
for (const claim of snapshot.claims) {
|
|
77
|
-
if (claim.currency !== opts.currency ||
|
|
78
|
-
claim.status === "canceled" ||
|
|
79
|
-
claim.status === "rejected")
|
|
80
|
-
continue;
|
|
81
|
-
if (claim.attemptedAt === undefined)
|
|
82
|
-
return { status: "held", reason: "pending_claim" };
|
|
83
|
-
const result = await reconcileRecipientPayout(stripe, component, ctx, {
|
|
84
|
-
accountId: opts.accountId,
|
|
85
|
-
ownerKey: opts.ownerKey,
|
|
86
|
-
operationKey: claim.operationKey,
|
|
87
|
-
maxPages,
|
|
88
|
-
});
|
|
89
|
-
if (result.status !== "updated")
|
|
90
|
-
return result;
|
|
91
|
-
for (const t of [result.receipt.debit, result.receipt.credit])
|
|
92
|
-
if (t)
|
|
93
|
-
transactions.push({ ...t, sourceId: result.receipt.stripePayoutId });
|
|
94
|
-
}
|
|
95
|
-
const observations = [];
|
|
96
|
-
for (const row of snapshot.transfers) {
|
|
97
|
-
const receipt = await getTransferFundingReceipt(stripe, component, ctx, {
|
|
98
|
-
accountId: opts.accountId,
|
|
99
|
-
stripeTransferId: row.stripeTransferId,
|
|
100
|
-
});
|
|
101
|
-
if (receipt.status !== "ready")
|
|
102
|
-
return { status: "held", reason: receipt.reason };
|
|
103
|
-
observations.push({
|
|
104
|
-
stripeTransferId: row.stripeTransferId,
|
|
105
|
-
currency: receipt.settlementCurrency,
|
|
106
|
-
matureNet: receipt.matureNet,
|
|
107
|
-
pendingCredits: receipt.pendingCredits,
|
|
108
|
-
ledgerFingerprint: transferFingerprint(row),
|
|
109
|
-
observedAt: receipt.observedAt,
|
|
110
|
-
transactionIds: receipt.transactions.map((t) => t.id),
|
|
111
|
-
});
|
|
112
|
-
if (receipt.settlementCurrency === opts.currency)
|
|
113
|
-
transactions.push(...receipt.transactions);
|
|
114
|
-
}
|
|
115
|
-
const history = await verifyPayoutHistory(stripe, {
|
|
116
|
-
accountId: opts.accountId,
|
|
117
|
-
currency: opts.currency,
|
|
118
|
-
transactions,
|
|
119
|
-
maxPages,
|
|
120
|
-
});
|
|
121
|
-
if (history.status !== "verified")
|
|
122
|
-
return history;
|
|
45
|
+
const proof = await collectPayoutQualification(stripe, component, ctx, opts, maxPages);
|
|
46
|
+
if (proof.status !== "verified")
|
|
47
|
+
return proof;
|
|
123
48
|
const claim = (await runMutationOrThrow(ctx, componentRef(component, "payoutRelease/mutations/claim"), {
|
|
124
49
|
...identity,
|
|
125
50
|
expectedRevision: controls.policy.revision,
|
|
126
51
|
currency: opts.currency,
|
|
127
|
-
destinationId,
|
|
128
|
-
providerAvailable:
|
|
52
|
+
destinationId: proof.destinationId,
|
|
53
|
+
providerAvailable: proof.providerAvailable,
|
|
129
54
|
independentLiabilities: opts.independentLiabilities,
|
|
130
|
-
observations,
|
|
55
|
+
observations: proof.observations,
|
|
131
56
|
}));
|
|
132
57
|
if (claim.status === "held")
|
|
133
58
|
return claim;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payoutExecution.js","sourceRoot":"","sources":["../../../src/client/connect/payoutExecution.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"payoutExecution.js","sourceRoot":"","sources":["../../../src/client/connect/payoutExecution.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAcnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,SAAoB,EACpB,GAAW,EACX,IAA0B,EAC1B,MAEC;IAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvB,IACE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,CAAC;QAE/B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,GAAG;QAC/D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAClC,YAAY,CAAC,SAAS,EAAE,2BAA2B,CAAC,EACpD,QAAQ,CACT,CAAiB,CAAC;IACnB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YACrC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;YACtE,OAAO,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE;gBACtD,GAAG,QAAQ;gBACX,QAAQ;aACT,CAAC,CAAC;QACL,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CACrC,GAAG,EACH,YAAY,CAAC,SAAS,EAAE,2CAA2C,CAAC,EACpE,QAAQ,CACT,CAAU,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;IAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAC5C,MAAM,EACN,SAAS,EACT,GAAG,EACH,IAAI,EACJ,QAAQ,CACT,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CACrC,GAAG,EACH,YAAY,CAAC,SAAS,EAAE,+BAA+B,CAAC,EACxD;QACE,GAAG,QAAQ;QACX,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;QACnD,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CACF,CAAiB,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,6EAA6E;IAC7E,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAChE,OAAO,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE;YACtD,GAAG,QAAQ;YACX,QAAQ;SACT,CAAC,CAAC;IACL,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;IAC9B,IACE,MAAM,CAAC,MAAM,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,QAAQ,EACnD,CAAC;QACD,MAAM,kBAAkB,CACtB,GAAG,EACH,YAAY,CAAC,SAAS,EAAE,2CAA2C,CAAC,EACpE,QAAQ,CACT,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;SACxE,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,CACtB,GAAG,EACH,YAAY,CAAC,SAAS,EAAE,sCAAsC,CAAC,EAC/D,QAAQ,CACT,CAAC;IACF,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAClC;YACE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,aAAa;YAChC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE;SAChD,EACD;YACE,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,cAAc,EAAE,qBAAqB,KAAK,CAAC,YAAY,EAAE;SAC1D,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,KAAK;YACtB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,2BAA2B;YAC1C,MAAM,IAAI,KAAK;YACf,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CACnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CACnB;YACD,WAAW,IAAI,KAAK;YACpB,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;YACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EACjC,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CACrC,GAAG,EACH,YAAY,CAAC,SAAS,EAAE,yCAAyC,CAAC,EAClE;gBACE,GAAG,QAAQ;gBACX,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CACF,CAAU,CAAC;YACZ,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE;QACtD,GAAG,QAAQ;QACX,cAAc,EAAE,MAAM,CAAC,EAAE;QACzB,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
1
2
|
import type { Component, RunCtx } from "../helpers.js";
|
|
2
3
|
export declare const component: Component;
|
|
3
4
|
export declare const scope: {
|
|
@@ -1726,16 +1727,7 @@ export declare function setup(amounts?: number[]): Promise<{
|
|
|
1726
1727
|
} | undefined>>;
|
|
1727
1728
|
};
|
|
1728
1729
|
balance: {
|
|
1729
|
-
retrieve: import("vitest").Mock<() => Promise<
|
|
1730
|
-
available: {
|
|
1731
|
-
currency: string;
|
|
1732
|
-
amount: number;
|
|
1733
|
-
source_types: {
|
|
1734
|
-
card: number;
|
|
1735
|
-
};
|
|
1736
|
-
}[];
|
|
1737
|
-
pending: never[];
|
|
1738
|
-
}>>;
|
|
1730
|
+
retrieve: import("vitest").Mock<() => Promise<Pick<Stripe.Balance, "available" | "pending">>>;
|
|
1739
1731
|
};
|
|
1740
1732
|
payouts: {
|
|
1741
1733
|
list: import("vitest").Mock<() => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payoutExecutionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payoutExecutionTestHelpers.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payoutExecutionTestHelpers.js","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,uCAAuC,EAAE,EAAE;KACxE;CACsB,CAAC;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,WAAW;IACzB,QAAQ,EAAE,KAAK;IACf,sBAAsB,EAAE,CAAC;CAC1B,CAAC;AACF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;IAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACxB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC/C,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;SACpC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;YACrC,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC/B,gBAAgB,EAAE,MAAM,CAAC,EAAE;gBAC3B,oBAAoB,EAAE,KAAK,CAAC,SAAS;gBACrC,cAAc,EAAE,MAAM,CAAC,EAAE;gBACzB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;aACpC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,GAA2B,EAAE,EAAE,CAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG;QACV,QAAQ,EAAE,CAAC,GAA2B,EAAE,IAAW,EAAE,EAAE,CACrD,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;QAC1D,WAAW,EAAE,CAAC,GAA2B,EAAE,IAAW,EAAE,EAAE,CACxD,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAa,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;KAC5C,CAAC;IACvB,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,MAAM;QACN,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,GAAG;QACjB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,SAAS;QACf,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC,CAAC;IACJ,IAAI,MAA2C,CAAC;IAChD,MAAM,QAAQ,GAAG;QACf,QAAQ,EAAE;YACR,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE;oBACJ;wBACE,EAAE,EAAE,QAAQ;wBACZ,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,KAAK;wBACf,oBAAoB,EAAE,IAAI;qBAC3B;iBACF;gBACD,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;SACJ;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO;oBACL,EAAE;oBACF,WAAW,EAAE,KAAK,CAAC,SAAS;oBAC5B,mBAAmB,EAAE,MAAM,CAAC,EAAE;oBAC9B,kBAAkB,EAAE,MAAM,CAAC,EAAE;oBAC7B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClB,QAAQ,EAAE,KAAK;oBACf,eAAe,EAAE,CAAC;iBACnB,CAAC;YACJ,CAAC,CAAC;YACF,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SAClE;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,OAAO;oBACL,EAAE;oBACF,eAAe,EAAE,MAAM,CAAC,EAAE;oBAC1B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClB,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,WAAW;oBACnB,mBAAmB,EAAE,OAAO,CAAC,EAAE;iBAChC,CAAC;YACJ,CAAC,CAAC;SACH;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAA2C,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,EAAE,MAAM,CAAC,MAAM;oBACjB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;oBACxD,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;gBACvC,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE,CACnC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CACtC;SACF;QACD,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"payoutExecutionTestHelpers.js","sourceRoot":"","sources":["../../../src/client/connect/payoutExecutionTestHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
2
|
+
import type { Infer } from "convex/values";
|
|
3
|
+
import type { Component, RunCtx } from "../helpers.js";
|
|
4
|
+
import type { previewResult } from "../../component/payoutRelease/preview.js";
|
|
5
|
+
import { type PayoutControlVerification } from "./payoutQualification.js";
|
|
6
|
+
export type PayoutPreviewOptions = {
|
|
7
|
+
accountId: string;
|
|
8
|
+
ownerKey: string;
|
|
9
|
+
currency: string;
|
|
10
|
+
independentLiabilities: number;
|
|
11
|
+
maxPages?: number;
|
|
12
|
+
};
|
|
13
|
+
export type PayoutPreview = Infer<typeof previewResult> | {
|
|
14
|
+
status: "held";
|
|
15
|
+
reason: string;
|
|
16
|
+
amount: 0;
|
|
17
|
+
};
|
|
18
|
+
/** Informational assessment only. Release always repeats qualification and atomically reserves funds. */
|
|
19
|
+
export declare function previewRecipientPayout(stripe: Stripe, component: Component, ctx: RunCtx, opts: PayoutPreviewOptions, verify: PayoutControlVerification): Promise<PayoutPreview>;
|
|
20
|
+
//# sourceMappingURL=payoutPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payoutPreview.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutPreview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,OAAO,aAAa,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAC9E,yGAAyG;AACzG,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CAkDxB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { componentRef } from "../webhooks/helpers.js";
|
|
2
|
+
import { validateScope } from "../../component/payoutPolicy/helpers.js";
|
|
3
|
+
import { collectPayoutQualification, } from "./payoutQualification.js";
|
|
4
|
+
/** Informational assessment only. Release always repeats qualification and atomically reserves funds. */
|
|
5
|
+
export async function previewRecipientPayout(stripe, component, ctx, opts, verify) {
|
|
6
|
+
validateScope(opts);
|
|
7
|
+
const maxPages = opts.maxPages ?? 10;
|
|
8
|
+
if (!/^[a-z]{3}$/.test(opts.currency) ||
|
|
9
|
+
!Number.isSafeInteger(opts.independentLiabilities) ||
|
|
10
|
+
opts.independentLiabilities < 0 ||
|
|
11
|
+
!Number.isInteger(maxPages) ||
|
|
12
|
+
maxPages < 1 ||
|
|
13
|
+
maxPages > 100)
|
|
14
|
+
throw new Error("Invalid payout preview scope or budget.");
|
|
15
|
+
const held = (reason) => ({
|
|
16
|
+
status: "held",
|
|
17
|
+
reason,
|
|
18
|
+
amount: 0,
|
|
19
|
+
});
|
|
20
|
+
const controls = await verify();
|
|
21
|
+
if (controls.status !== "verified" || !("policy" in controls))
|
|
22
|
+
return held(controls.status);
|
|
23
|
+
const proof = await collectPayoutQualification(stripe, component, ctx, opts, maxPages);
|
|
24
|
+
if (proof.status !== "verified")
|
|
25
|
+
return held(proof.reason);
|
|
26
|
+
const latest = await verify();
|
|
27
|
+
if (latest.status !== "verified" || !("policy" in latest))
|
|
28
|
+
return held(latest.status);
|
|
29
|
+
if (latest.policy.revision !== controls.policy.revision)
|
|
30
|
+
return held("policy_changed");
|
|
31
|
+
if (proof.observedAt < Date.now() - 30000 ||
|
|
32
|
+
proof.observations.some((o) => o.observedAt < Date.now() - 30000))
|
|
33
|
+
return held("observations_stale");
|
|
34
|
+
return ctx.runQuery(componentRef(component, "payoutRelease/queries/preview"), {
|
|
35
|
+
accountId: opts.accountId,
|
|
36
|
+
ownerKey: opts.ownerKey,
|
|
37
|
+
currency: opts.currency,
|
|
38
|
+
expectedRevision: controls.policy.revision,
|
|
39
|
+
observations: proof.observations,
|
|
40
|
+
providerAvailable: proof.providerAvailable,
|
|
41
|
+
independentLiabilities: opts.independentLiabilities,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=payoutPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payoutPreview.js","sourceRoot":"","sources":["../../../src/client/connect/payoutPreview.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EACL,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAUlC,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,SAAoB,EACpB,GAAW,EACX,IAA0B,EAC1B,MAAiC;IAEjC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,IACE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC;QAClD,IAAI,CAAC,sBAAsB,GAAG,CAAC;QAC/B,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC3B,QAAQ,GAAG,CAAC;QACZ,QAAQ,GAAG,GAAG;QAEd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,MAAe;QACvB,MAAM;QACN,MAAM,EAAE,CAAU;KACnB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;IAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAC5C,MAAM,EACN,SAAS,EACT,GAAG,EACH,IAAI,EACJ,QAAQ,CACT,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,QAAQ;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChC,IACE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QACrC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEjE,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,QAAQ,CACjB,YAAY,CAAC,SAAS,EAAE,+BAA+B,CAAC,EACxD;QACE,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;QAC1C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;KACpD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
2
|
+
import type { Infer } from "convex/values";
|
|
3
|
+
import type { Component, RunCtx } from "../helpers.js";
|
|
4
|
+
import type { observation } from "../../component/payoutRelease/schema.js";
|
|
5
|
+
import type { policyDoc } from "../../component/payoutPolicy/schema.js";
|
|
6
|
+
type Held = {
|
|
7
|
+
status: "held";
|
|
8
|
+
reason: string;
|
|
9
|
+
};
|
|
10
|
+
export type PayoutControlVerification = () => Promise<{
|
|
11
|
+
status: "verified";
|
|
12
|
+
policy: Infer<typeof policyDoc>;
|
|
13
|
+
} | {
|
|
14
|
+
status: string;
|
|
15
|
+
}>;
|
|
16
|
+
export type PayoutProofScope = {
|
|
17
|
+
accountId: string;
|
|
18
|
+
ownerKey: string;
|
|
19
|
+
currency: string;
|
|
20
|
+
};
|
|
21
|
+
/** Shared provider qualification. It can reconcile existing receipts, but never creates a bank payout. */
|
|
22
|
+
export declare function collectPayoutQualification(stripe: Stripe, component: Component, ctx: RunCtx, opts: PayoutProofScope, maxPages: number): Promise<Held | {
|
|
23
|
+
status: "verified";
|
|
24
|
+
observations: Infer<typeof observation>[];
|
|
25
|
+
destinationId: string;
|
|
26
|
+
providerAvailable: number;
|
|
27
|
+
observedAt: number;
|
|
28
|
+
}>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=payoutQualification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payoutQualification.d.ts","sourceRoot":"","sources":["../../../src/client/connect/payoutQualification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAQxE,KAAK,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ/C,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CACnD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAC7E,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,0GAA0G;AAC1G,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CACN,IAAI,GACJ;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB,CACJ,CA+FA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { componentRef } from "../webhooks/helpers.js";
|
|
2
|
+
import { transferFingerprint } from "../../component/payoutRelease/helpers.js";
|
|
3
|
+
import { getTransferFundingReceipt, } from "./transferReceipt.js";
|
|
4
|
+
import { verifyPayoutHistory } from "./payoutHistory.js";
|
|
5
|
+
import { reconcileRecipientPayout } from "./payoutReconciliation.js";
|
|
6
|
+
/** Shared provider qualification. It can reconcile existing receipts, but never creates a bank payout. */
|
|
7
|
+
export async function collectPayoutQualification(stripe, component, ctx, opts, maxPages) {
|
|
8
|
+
const snapshot = (await ctx.runQuery(componentRef(component, "payoutRelease/queries/snapshot"), { accountId: opts.accountId, ownerKey: opts.ownerKey }));
|
|
9
|
+
if (snapshot.status !== "ready")
|
|
10
|
+
return snapshot;
|
|
11
|
+
const banks = [];
|
|
12
|
+
let bankCursor;
|
|
13
|
+
for (let page = 0;; page++) {
|
|
14
|
+
if (page >= maxPages)
|
|
15
|
+
return { status: "held", reason: "bank_history_incomplete" };
|
|
16
|
+
const batch = await stripe.accounts.listExternalAccounts(opts.accountId, {
|
|
17
|
+
object: "bank_account",
|
|
18
|
+
limit: 100,
|
|
19
|
+
...(bankCursor ? { starting_after: bankCursor } : {}),
|
|
20
|
+
});
|
|
21
|
+
for (const bank of batch.data)
|
|
22
|
+
if (bank.object === "bank_account" &&
|
|
23
|
+
bank.currency === opts.currency &&
|
|
24
|
+
bank.default_for_currency &&
|
|
25
|
+
bank.status !== "errored")
|
|
26
|
+
banks.push(bank.id);
|
|
27
|
+
if (!batch.has_more)
|
|
28
|
+
break;
|
|
29
|
+
const next = batch.data[batch.data.length - 1]?.id;
|
|
30
|
+
if (!next || next === bankCursor)
|
|
31
|
+
return { status: "held", reason: "bank_history_incomplete" };
|
|
32
|
+
bankCursor = next;
|
|
33
|
+
}
|
|
34
|
+
if (banks.length !== 1 || !/^ba_\w+$/.test(banks[0]))
|
|
35
|
+
return { status: "held", reason: "bank_destination_unavailable" };
|
|
36
|
+
const destinationId = banks[0];
|
|
37
|
+
const transactions = [];
|
|
38
|
+
for (const claim of snapshot.claims) {
|
|
39
|
+
if (claim.currency !== opts.currency ||
|
|
40
|
+
claim.status === "canceled" ||
|
|
41
|
+
claim.status === "rejected")
|
|
42
|
+
continue;
|
|
43
|
+
if (claim.attemptedAt === undefined)
|
|
44
|
+
return { status: "held", reason: "pending_claim" };
|
|
45
|
+
const result = await reconcileRecipientPayout(stripe, component, ctx, {
|
|
46
|
+
accountId: opts.accountId,
|
|
47
|
+
ownerKey: opts.ownerKey,
|
|
48
|
+
operationKey: claim.operationKey,
|
|
49
|
+
maxPages,
|
|
50
|
+
});
|
|
51
|
+
if (result.status !== "updated")
|
|
52
|
+
return {
|
|
53
|
+
status: "held",
|
|
54
|
+
reason: result.status === "held"
|
|
55
|
+
? result.reason
|
|
56
|
+
: "historical_claim_terminal",
|
|
57
|
+
};
|
|
58
|
+
for (const t of [result.receipt.debit, result.receipt.credit])
|
|
59
|
+
if (t)
|
|
60
|
+
transactions.push({ ...t, sourceId: result.receipt.stripePayoutId });
|
|
61
|
+
}
|
|
62
|
+
const observations = [];
|
|
63
|
+
for (const row of snapshot.transfers) {
|
|
64
|
+
const receipt = await getTransferFundingReceipt(stripe, component, ctx, {
|
|
65
|
+
accountId: opts.accountId,
|
|
66
|
+
stripeTransferId: row.stripeTransferId,
|
|
67
|
+
});
|
|
68
|
+
if (receipt.status !== "ready")
|
|
69
|
+
return { status: "held", reason: receipt.reason };
|
|
70
|
+
observations.push({
|
|
71
|
+
stripeTransferId: row.stripeTransferId,
|
|
72
|
+
currency: receipt.settlementCurrency,
|
|
73
|
+
matureNet: receipt.matureNet,
|
|
74
|
+
pendingCredits: receipt.pendingCredits,
|
|
75
|
+
ledgerFingerprint: transferFingerprint(row),
|
|
76
|
+
observedAt: receipt.observedAt,
|
|
77
|
+
transactionIds: receipt.transactions.map((t) => t.id),
|
|
78
|
+
});
|
|
79
|
+
if (receipt.settlementCurrency === opts.currency)
|
|
80
|
+
transactions.push(...receipt.transactions);
|
|
81
|
+
}
|
|
82
|
+
const history = await verifyPayoutHistory(stripe, {
|
|
83
|
+
accountId: opts.accountId,
|
|
84
|
+
currency: opts.currency,
|
|
85
|
+
transactions,
|
|
86
|
+
maxPages,
|
|
87
|
+
});
|
|
88
|
+
if (history.status !== "verified")
|
|
89
|
+
return history;
|
|
90
|
+
return {
|
|
91
|
+
status: "verified",
|
|
92
|
+
observations,
|
|
93
|
+
destinationId,
|
|
94
|
+
providerAvailable: history.providerAvailable,
|
|
95
|
+
observedAt: history.observedAt,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=payoutQualification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payoutQualification.js","sourceRoot":"","sources":["../../../src/client/connect/payoutQualification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type PayoutPreviewOptions } from "./connect/payoutPreview.js";
|
|
2
|
+
export type * from "./connect/payoutPreview.js";
|
|
3
|
+
export { previewResult as payoutPreviewValidator } from "../component/payoutRelease/preview.js";
|
|
1
4
|
import { PayoutWorkerClient } from "./connect/payoutWorker.js";
|
|
2
5
|
export type * from "./connect/payoutWorker.js";
|
|
3
6
|
import { type PayoutCollectionOptions, type PayoutCollectionScope } from "./connect/payoutCollection.js";
|
|
@@ -42,6 +45,7 @@ export declare class PayoutPolicyClient {
|
|
|
42
45
|
private readonly component;
|
|
43
46
|
private readonly provider;
|
|
44
47
|
readonly worker: PayoutWorkerClient;
|
|
48
|
+
preview(ctx: RunCtx, opts: PayoutPreviewOptions): Promise<import("./payoutPolicy.js").PayoutPreview>;
|
|
45
49
|
constructor(component: Component, provider: () => Stripe);
|
|
46
50
|
collectSnapshot(ctx: RunCtx, opts: PayoutCollectionOptions): Promise<{
|
|
47
51
|
_creationTime: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payoutPolicy.d.ts","sourceRoot":"","sources":["../../src/client/payoutPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,mBAAmB,2BAA2B,CAAC;AAC/C,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AACvC,mBAAmB,+BAA+B,CAAC;AAEnD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,mBAAmB,6BAA6B,CAAC;AACjD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,mBAAmB,8BAA8B,CAAC;AAClD,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,mCAAmC,CAAC;AAC3C,mBAAmB,mCAAmC,CAAC;AACvD,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,4BAA4B,CAAC;AACpC,mBAAmB,4BAA4B,CAAC;AAChD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,8BAA8B,CAAC;AACtC,mBAAmB,8BAA8B,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACT,MAAM,qCAAqC,CAAC;AAO7C,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AACnD,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,IAAI,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EACF,4BAA4B,GAC5B,2BAA2B,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,yBAAyB,GACzB,kBAAkB,GAClB,mBAAmB,GACnB,0BAA0B,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AA8BpD,mFAAmF;AACnF,qBAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"payoutPolicy.d.ts","sourceRoot":"","sources":["../../src/client/payoutPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { previewRecipientPayout, } from "./connect/payoutPreview.js";
|
|
2
|
+
export { previewResult as payoutPreviewValidator } from "../component/payoutRelease/preview.js";
|
|
1
3
|
import { PayoutWorkerClient } from "./connect/payoutWorker.js";
|
|
2
4
|
import { collectPayoutSnapshot, discardPayoutSnapshot, } from "./connect/payoutCollection.js";
|
|
3
5
|
import { collectAdoptionProof } from "./connect/payoutActivationProof.js";
|
|
@@ -38,6 +40,9 @@ export class PayoutPolicyClient {
|
|
|
38
40
|
component;
|
|
39
41
|
provider;
|
|
40
42
|
worker;
|
|
43
|
+
preview(ctx, opts) {
|
|
44
|
+
return previewRecipientPayout(this.provider(), this.component, ctx, opts, () => this.verify(ctx, opts));
|
|
45
|
+
}
|
|
41
46
|
constructor(component, provider) {
|
|
42
47
|
this.component = component;
|
|
43
48
|
this.provider = provider;
|
|
@@ -152,7 +157,7 @@ export class PayoutPolicyClient {
|
|
|
152
157
|
if (prior) {
|
|
153
158
|
if (prior.mode !== opts.mode ||
|
|
154
159
|
prior.expectedRevision !== opts.expectedRevision ||
|
|
155
|
-
!equal(prior.thresholds, thresholds) ||
|
|
160
|
+
!equal(canonicalThresholds(prior.thresholds, prior.mode === "custom"), thresholds) ||
|
|
156
161
|
Boolean(prior.adoption) !== Boolean(opts.adoptExistingBalance))
|
|
157
162
|
throw new Error("Payout policy operation identity cannot be reused.");
|
|
158
163
|
return { status: "prepared", operation: prior };
|