@fantastic.dev/better-stripe 0.13.0 → 0.15.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 +17 -0
- package/README.md +63 -1
- package/dist/client/billing/checkoutOptions.d.ts +27 -0
- package/dist/client/billing/checkoutOptions.d.ts.map +1 -0
- package/dist/client/billing/checkoutOptions.js +2 -0
- package/dist/client/billing/checkoutOptions.js.map +1 -0
- package/dist/client/billing/intents.d.ts +32 -0
- package/dist/client/billing/intents.d.ts.map +1 -0
- package/dist/client/billing/intents.js +71 -0
- package/dist/client/billing/intents.js.map +1 -0
- package/dist/client/connect/disputes.d.ts +20 -0
- package/dist/client/connect/disputes.d.ts.map +1 -1
- package/dist/client/connect/disputes.js +55 -0
- package/dist/client/connect/disputes.js.map +1 -1
- package/dist/client/core/fees.d.ts +2 -0
- package/dist/client/core/fees.d.ts.map +1 -1
- package/dist/client/core/fees.js +7 -0
- package/dist/client/core/fees.js.map +1 -1
- package/dist/client/costRecovery-invoices.d.ts +10 -4
- package/dist/client/costRecovery-invoices.d.ts.map +1 -1
- package/dist/client/costRecovery-invoices.js +4 -0
- package/dist/client/costRecovery-invoices.js.map +1 -1
- package/dist/client/costRecovery.d.ts +18 -2
- package/dist/client/costRecovery.d.ts.map +1 -1
- package/dist/client/costRecovery.js +4 -0
- package/dist/client/costRecovery.js.map +1 -1
- package/dist/client/errors.d.ts +1 -1
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/index.d.ts +20 -37
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +18 -20
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +59 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/costRecovery/claims.d.ts +12 -0
- package/dist/component/costRecovery/claims.d.ts.map +1 -1
- package/dist/component/costRecovery/imports.d.ts +53 -0
- package/dist/component/costRecovery/imports.d.ts.map +1 -0
- package/dist/component/costRecovery/imports.js +67 -0
- package/dist/component/costRecovery/imports.js.map +1 -0
- package/dist/component/costRecovery/mutations.d.ts +47 -0
- package/dist/component/costRecovery/mutations.d.ts.map +1 -1
- package/dist/component/costRecovery/mutations.js +7 -1
- package/dist/component/costRecovery/mutations.js.map +1 -1
- package/dist/component/costRecovery/queries.d.ts +12 -0
- package/dist/component/costRecovery/queries.d.ts.map +1 -1
- package/dist/component/costRecovery/schema.d.ts +72 -2
- package/dist/component/costRecovery/schema.d.ts.map +1 -1
- package/dist/component/costRecovery/schema.js +13 -0
- package/dist/component/costRecovery/schema.js.map +1 -1
- package/dist/component/schema.d.ts +19 -1
- package/dist/react/hooks/useConfirmPayment.d.ts +1 -1
- package/dist/react/hooks/useConfirmPayment.d.ts.map +1 -1
- package/dist/react/hooks/useConfirmPayment.js +13 -2
- package/dist/react/hooks/useConfirmPayment.js.map +1 -1
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/workflows/EvidenceUpload.d.ts +18 -0
- package/dist/react/workflows/EvidenceUpload.d.ts.map +1 -0
- package/dist/react/workflows/EvidenceUpload.js +35 -0
- package/dist/react/workflows/EvidenceUpload.js.map +1 -0
- package/dist/react/workflows/Onboarding.d.ts +3 -3
- package/dist/react/workflows/Onboarding.d.ts.map +1 -1
- package/dist/react/workflows/Onboarding.js +8 -6
- package/dist/react/workflows/Onboarding.js.map +1 -1
- package/dist/react/workflows/SaveCard.d.ts +27 -0
- package/dist/react/workflows/SaveCard.d.ts.map +1 -0
- package/dist/react/workflows/SaveCard.js +56 -0
- package/dist/react/workflows/SaveCard.js.map +1 -0
- package/dist/react/workflows/index.d.ts +2 -0
- package/dist/react/workflows/index.d.ts.map +1 -1
- package/dist/react/workflows/index.js +1 -0
- package/dist/react/workflows/index.js.map +1 -1
- package/dist/react/workflows/useWorkflowAction.d.ts +1 -1
- package/dist/react/workflows/useWorkflowAction.d.ts.map +1 -1
- package/dist/react/workflows/useWorkflowAction.js +6 -2
- package/dist/react/workflows/useWorkflowAction.js.map +1 -1
- package/docs/react-workflows.md +83 -0
- package/package.json +1 -1
- package/src/client/billing/checkoutOptions.ts +27 -0
- package/src/client/billing/intents.test.ts +216 -0
- package/src/client/billing/intents.ts +120 -0
- package/src/client/billing/intentsTransport.test.ts +94 -0
- package/src/client/connect/dispute-upload.test.ts +208 -0
- package/src/client/connect/disputes.ts +103 -0
- package/src/client/core/fees.ts +8 -0
- package/src/client/costRecovery-import.test.ts +174 -0
- package/src/client/costRecovery-invoices.test.ts +69 -0
- package/src/client/costRecovery-invoices.ts +32 -0
- package/src/client/costRecovery.ts +16 -0
- package/src/client/errors.ts +1 -0
- package/src/client/index.ts +50 -52
- package/src/component/_generated/api.ts +2 -0
- package/src/component/_generated/component.ts +65 -0
- package/src/component/costRecovery/imports.ts +74 -0
- package/src/component/costRecovery/mutations.ts +8 -0
- package/src/component/costRecovery/schema.ts +13 -0
- package/src/react/hooks/useConfirmPayment.test.tsx +47 -0
- package/src/react/hooks/useConfirmPayment.ts +16 -2
- package/src/react/index.ts +3 -0
- package/src/react/workflows/EvidenceUpload.test.tsx +56 -0
- package/src/react/workflows/EvidenceUpload.tsx +71 -0
- package/src/react/workflows/Onboarding.test.tsx +73 -0
- package/src/react/workflows/Onboarding.tsx +8 -5
- package/src/react/workflows/SaveCard.test.tsx +127 -0
- package/src/react/workflows/SaveCard.tsx +117 -0
- package/src/react/workflows/index.ts +3 -0
- package/src/react/workflows/useWorkflowAction.ts +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,23 @@
|
|
|
14
14
|
- Remove internal tracker references from public documentation and add a
|
|
15
15
|
regression check that prevents their reintroduction.
|
|
16
16
|
|
|
17
|
+
## [0.15.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.14.0...v0.15.0) (2026-10-15)
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- provision payment and saved-card setup intents ([#166](https://github.com/FantasticDevHQ/better-stripe/issues/166)) ([195e4c6](https://github.com/FantasticDevHQ/better-stripe/commit/195e4c630e6f70907405fd9c8aa0d9cfcf17e6d5))
|
|
22
|
+
|
|
23
|
+
## [0.14.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.13.0...v0.14.0) (2026-10-15)
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
- bind dispute evidence uploads and guard onboarding navigation ([#167](https://github.com/FantasticDevHQ/better-stripe/issues/167)) ([e52cd5d](https://github.com/FantasticDevHQ/better-stripe/commit/e52cd5dfc34d3c83a00d2f1686d07af5370b1e60))
|
|
28
|
+
- **recovery:** preserve verified opening collections ([#163](https://github.com/FantasticDevHQ/better-stripe/issues/163)) ([e613ac0](https://github.com/FantasticDevHQ/better-stripe/commit/e613ac0d52d1d053b4e3a54dd0394ad1e427c729))
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
- **recovery:** release unbound void invoice reservations ([#165](https://github.com/FantasticDevHQ/better-stripe/issues/165)) ([a73fd89](https://github.com/FantasticDevHQ/better-stripe/commit/a73fd893370688385fcf9dc2a8dd309d2cbd3ead))
|
|
33
|
+
|
|
17
34
|
## [0.13.0](https://github.com/FantasticDevHQ/better-stripe/compare/v0.12.0...v0.13.0) (2026-10-15)
|
|
18
35
|
|
|
19
36
|
### Features
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ See the [customer preview setup and webhook migration guide](docs/accounts-v2-pr
|
|
|
38
38
|
|
|
39
39
|
## Status
|
|
40
40
|
|
|
41
|
-
**Version**: `0.
|
|
41
|
+
**Version**: `0.15.0` <!-- x-release-please-version --> (pre-1.0). API may change between minor versions until 1.0.
|
|
42
42
|
|
|
43
43
|
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.
|
|
44
44
|
|
|
@@ -420,6 +420,30 @@ Use `balance(ctx, scope)` for exact maintained totals and
|
|
|
420
420
|
the existing unstyled React `CostRecovery` display. These bookkeeping APIs leave
|
|
421
421
|
consent, provider fee policy and entitlement changes in the host.
|
|
422
422
|
|
|
423
|
+
### Importing opening recovery balances
|
|
424
|
+
|
|
425
|
+
When moving an existing ledger into the component, your server can call
|
|
426
|
+
`stripe.costRecovery.importClaim(ctx, { ...observation, operationKey, collectedAmount })`.
|
|
427
|
+
The observation includes the authorized account/scope/currency, original charge,
|
|
428
|
+
gross and processing fee, approved cumulative amount due and a durable revision.
|
|
429
|
+
`collectedAmount` is the signed amount already verified as collected before the
|
|
430
|
+
cutover. The component retains that opening snapshot and computes outstanding as
|
|
431
|
+
amount due minus the imported collection. It does not create a Stripe payment.
|
|
432
|
+
|
|
433
|
+
Quiesce the old ledger's writers and verify its invoice and payout outcomes first.
|
|
434
|
+
An unpaid invoice is a reservation, not a collection; an unknown provider outcome
|
|
435
|
+
must stay held until reconciled. Do not import those amounts as collected or
|
|
436
|
+
silently release them. Authorize source identity and original provider economics
|
|
437
|
+
in the host before invoking this server-only bookkeeping operation.
|
|
438
|
+
|
|
439
|
+
Use one stable import operation key per claim. A replay returns the current claim
|
|
440
|
+
even after later observations or collections, without resetting its opening
|
|
441
|
+
amount. Changing the opening snapshot or source binding, reusing an operation key
|
|
442
|
+
for another claim, importing over a normal live claim, or introducing a new
|
|
443
|
+
opening balance while the scope has a pending external recovery group is rejected.
|
|
444
|
+
Signed credit collections and currencies stay separate. New observations continue
|
|
445
|
+
through `recordClaim` with newer durable revisions.
|
|
446
|
+
|
|
423
447
|
### Invoice recovery adjustments
|
|
424
448
|
|
|
425
449
|
After authorizing the seller, invoice and liability scope, reserve with
|
|
@@ -453,6 +477,11 @@ attachment and any calls that finish or release it. Never release a reservation
|
|
|
453
477
|
after a timeout or unknown provider outcome. Draft and open invoices retain their
|
|
454
478
|
reservations, blocking recovery from a second payout. A verified paid invoice
|
|
455
479
|
commits collection; a verified void releases the obligation for a future boundary.
|
|
480
|
+
If an invoice is voided before its adjustment was attached, reconciliation releases
|
|
481
|
+
an unbound sealed group only after scanning every item on that exact invoice.
|
|
482
|
+
The receipt then has `invoiceItemId: null`. A missing previously bound item, or
|
|
483
|
+
an absent adjustment on a paid or unpaid invoice, remains an error and keeps
|
|
484
|
+
reservations held.
|
|
456
485
|
Uncollectible invoices stay reserved unless your explicit host policy passes
|
|
457
486
|
`releaseUncollectible: true`. Do not use that policy while another process might
|
|
458
487
|
retry payment on the original invoice. Subscription cancellation alone does not
|
|
@@ -1524,3 +1553,36 @@ and [v2 request semantics](https://docs.stripe.com/api-v2-overview).
|
|
|
1524
1553
|
current provider objects rather than cached component records. They are server
|
|
1525
1554
|
APIs: authorize each resource and return only the fields your browser needs.
|
|
1526
1555
|
Subscription upserts accept Stripe's `incomplete_expired` terminal status.
|
|
1556
|
+
|
|
1557
|
+
### One-time intents and saved-card setup
|
|
1558
|
+
|
|
1559
|
+
`createPaymentIntent(ctx, { userId, customerAccount?, stripePriceId,
|
|
1560
|
+
idempotencyKey, receiptEmail?, metadata? })` creates a card-only, platform
|
|
1561
|
+
PaymentIntent by default. Set `paymentMethods: "automatic"` to let Stripe select
|
|
1562
|
+
compatible methods, as in the example. It retrieves the platform price and expanded product from Stripe,
|
|
1563
|
+
rejects inactive products/prices, recurring and nonpositive/nonfixed prices, and
|
|
1564
|
+
derives amount and currency from the provider price. It returns only
|
|
1565
|
+
`{ paymentIntentId, clientSecret }`. Omit `customerAccount` for a host-authorized
|
|
1566
|
+
guest purchase. Existing Checkout Sessions integrations remain available.
|
|
1567
|
+
|
|
1568
|
+
`createSetupIntent(ctx, { userId, customerAccount, usage, consent: true,
|
|
1569
|
+
idempotencyKey, metadata? })` provisions a card-only SetupIntent for a V2 customer
|
|
1570
|
+
account, returning only `{ setupIntentId, clientSecret }`. Explicitly choose
|
|
1571
|
+
`on_session` or `off_session` and record consent to that usage before provisioning.
|
|
1572
|
+
Confirmation attaches the saved card after required authentication; it does not
|
|
1573
|
+
set a subscription default. `SaveCard` from the React entrypoint supplies an
|
|
1574
|
+
unstyled Payment Element workflow. See the [React guide](docs/react-workflows.md#save-a-card-through-setupintent-confirmation).
|
|
1575
|
+
|
|
1576
|
+
Both APIs require caller idempotency keys. Persist logical request identity and
|
|
1577
|
+
immutable inputs on the server, bind keys to the authenticated customer and
|
|
1578
|
+
operation, and reuse the same key on retries. Stripe's bounded idempotency window
|
|
1579
|
+
is not a durable order store. Authenticate in the host adapter, authorize the
|
|
1580
|
+
selected price/product and customer, and supply server-selected metadata. The
|
|
1581
|
+
package checks a supplied customer account's persisted `userId` ownership,
|
|
1582
|
+
protects its own attribution keys and strips the reserved `bs*` namespace. Never
|
|
1583
|
+
accept browser-provided amounts, user IDs or metadata as authorization.
|
|
1584
|
+
|
|
1585
|
+
Grant paid access only after the existing verified webhook/settlement flow.
|
|
1586
|
+
Creation and browser confirmation are not settlement proof. Customer-account
|
|
1587
|
+
operations require Accounts v2 support in the sandbox or merchant account; the
|
|
1588
|
+
[customer preview guide](docs/accounts-v2-preview.md) explains eligibility.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SplitRecipient } from "../../component/lib/fees.js";
|
|
2
|
+
import type { FeeOverride } from "../types.js";
|
|
3
|
+
/** Host-authorized Checkout Session request. */
|
|
4
|
+
export type CreateCheckoutSessionOptions = {
|
|
5
|
+
idempotencyKey?: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
orgId?: string;
|
|
8
|
+
stripePriceId: string;
|
|
9
|
+
mode: "payment" | "subscription" | "setup";
|
|
10
|
+
uiMode?: "embedded" | "redirect" | "custom" | "form";
|
|
11
|
+
quantity?: number;
|
|
12
|
+
returnUrl: string;
|
|
13
|
+
trialDays?: number;
|
|
14
|
+
accountId?: string;
|
|
15
|
+
customerEmail?: string;
|
|
16
|
+
/** Seller/recipient connected account to route funds to (destination charge). */
|
|
17
|
+
destinationAccountId?: string;
|
|
18
|
+
/** Multiple recipients (store + affiliate[s]); >1 routes via separate charges & transfers. */
|
|
19
|
+
split?: SplitRecipient[];
|
|
20
|
+
/** Per-call platform fee override; falls back to the configured default. */
|
|
21
|
+
fee?: FeeOverride;
|
|
22
|
+
/** Charge total (minor units) for one-time payment fee computation. */
|
|
23
|
+
amount?: number;
|
|
24
|
+
metadata?: Record<string, string>;
|
|
25
|
+
sessionOverrides?: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=checkoutOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkoutOptions.d.ts","sourceRoot":"","sources":["../../../src/client/billing/checkoutOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,gDAAgD;AAChD,MAAM,MAAM,4BAA4B,GAAG;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkoutOptions.js","sourceRoot":"","sources":["../../../src/client/billing/checkoutOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
2
|
+
import type { Component, RunCtx } from "../helpers.js";
|
|
3
|
+
/** Host must derive userId from authentication and authorize the purchase. */
|
|
4
|
+
export type IntentScope = {
|
|
5
|
+
userId: string;
|
|
6
|
+
customerAccount?: string;
|
|
7
|
+
/** Persist the logical request and its immutable inputs before calling. */
|
|
8
|
+
idempotencyKey: string;
|
|
9
|
+
/** Server-selected attribution only. Never forward arbitrary browser metadata. */
|
|
10
|
+
metadata?: Record<string, string>;
|
|
11
|
+
};
|
|
12
|
+
export type CreatePaymentIntentOptions = IntentScope & {
|
|
13
|
+
stripePriceId: string;
|
|
14
|
+
receiptEmail?: string;
|
|
15
|
+
/** Card-only by default; automatic preserves host-selected local payment methods. */
|
|
16
|
+
paymentMethods?: "card" | "automatic";
|
|
17
|
+
};
|
|
18
|
+
export type CreateSetupIntentOptions = IntentScope & {
|
|
19
|
+
customerAccount: string;
|
|
20
|
+
usage: "on_session" | "off_session";
|
|
21
|
+
/** Host records consent for the selected usage before provisioning. */
|
|
22
|
+
consent: true;
|
|
23
|
+
};
|
|
24
|
+
export declare function createPaymentIntent(stripe: Stripe, component: Component, ctx: RunCtx, opts: CreatePaymentIntentOptions): Promise<{
|
|
25
|
+
paymentIntentId: string;
|
|
26
|
+
clientSecret: string;
|
|
27
|
+
}>;
|
|
28
|
+
export declare function createSetupIntent(stripe: Stripe, component: Component, ctx: RunCtx, opts: CreateSetupIntentOptions): Promise<{
|
|
29
|
+
setupIntentId: string;
|
|
30
|
+
clientSecret: string;
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=intents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../../../src/client/billing/intents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvD,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,WAAW,GAAG;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;IACpC,uEAAuE;IACvE,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAoBF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,0BAA0B;;;GAwCjC;AACD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,wBAAwB;;;GAwB/B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { stripReservedMetadata } from "../helpers.js";
|
|
2
|
+
import { idempotencyOptions } from "../core/idempotency.js";
|
|
3
|
+
import { componentRef } from "../webhooks/helpers.js";
|
|
4
|
+
async function authorize(component, ctx, opts) {
|
|
5
|
+
if (typeof opts.idempotencyKey !== "string")
|
|
6
|
+
throw new Error("An explicit idempotency key is required.");
|
|
7
|
+
const request = idempotencyOptions(opts.idempotencyKey);
|
|
8
|
+
if (opts.customerAccount === undefined)
|
|
9
|
+
return request;
|
|
10
|
+
if (!opts.userId || !/^acct_[a-zA-Z0-9]+$/.test(opts.customerAccount))
|
|
11
|
+
throw new Error("An authenticated user and V2 customer account are required.");
|
|
12
|
+
const account = await ctx.runQuery(componentRef(component, "core/queries/getAccountByStripeId"), { stripeAccountId: opts.customerAccount });
|
|
13
|
+
if (!account || account.userId !== opts.userId)
|
|
14
|
+
throw new Error("Customer account does not belong to the authenticated user.");
|
|
15
|
+
return request;
|
|
16
|
+
}
|
|
17
|
+
export async function createPaymentIntent(stripe, component, ctx, opts) {
|
|
18
|
+
const request = await authorize(component, ctx, opts);
|
|
19
|
+
const price = await stripe.prices.retrieve(opts.stripePriceId, {
|
|
20
|
+
expand: ["product"],
|
|
21
|
+
});
|
|
22
|
+
const product = price.product;
|
|
23
|
+
if (!price.active ||
|
|
24
|
+
price.type !== "one_time" ||
|
|
25
|
+
!Number.isSafeInteger(price.unit_amount) ||
|
|
26
|
+
price.unit_amount <= 0 ||
|
|
27
|
+
typeof product === "string" ||
|
|
28
|
+
product.deleted ||
|
|
29
|
+
!product.active)
|
|
30
|
+
throw new Error("Payment Intents require an active product and a positive fixed one-time price.");
|
|
31
|
+
const intent = await stripe.paymentIntents.create({
|
|
32
|
+
amount: price.unit_amount,
|
|
33
|
+
currency: price.currency,
|
|
34
|
+
customer_account: opts.customerAccount,
|
|
35
|
+
receipt_email: opts.receiptEmail,
|
|
36
|
+
...(opts.paymentMethods === "automatic"
|
|
37
|
+
? { automatic_payment_methods: { enabled: true } }
|
|
38
|
+
: { allowed_payment_method_types: ["card"] }),
|
|
39
|
+
metadata: {
|
|
40
|
+
...stripReservedMetadata(opts.metadata),
|
|
41
|
+
userId: opts.userId,
|
|
42
|
+
stripePriceId: price.id,
|
|
43
|
+
stripeProductId: product.id,
|
|
44
|
+
},
|
|
45
|
+
}, request);
|
|
46
|
+
if (!intent.client_secret)
|
|
47
|
+
throw new Error("Stripe did not return a payment secret.");
|
|
48
|
+
return { paymentIntentId: intent.id, clientSecret: intent.client_secret };
|
|
49
|
+
}
|
|
50
|
+
export async function createSetupIntent(stripe, component, ctx, opts) {
|
|
51
|
+
if (!opts.customerAccount)
|
|
52
|
+
throw new Error("A customer account is required for setup.");
|
|
53
|
+
const request = await authorize(component, ctx, opts);
|
|
54
|
+
if (opts.consent !== true)
|
|
55
|
+
throw new Error("Explicit saved-card consent is required.");
|
|
56
|
+
if (opts.usage !== "on_session" && opts.usage !== "off_session")
|
|
57
|
+
throw new Error("Unsupported SetupIntent usage.");
|
|
58
|
+
const intent = await stripe.setupIntents.create({
|
|
59
|
+
customer_account: opts.customerAccount,
|
|
60
|
+
usage: opts.usage,
|
|
61
|
+
allowed_payment_method_types: ["card"],
|
|
62
|
+
metadata: {
|
|
63
|
+
...stripReservedMetadata(opts.metadata),
|
|
64
|
+
userId: opts.userId,
|
|
65
|
+
},
|
|
66
|
+
}, request);
|
|
67
|
+
if (!intent.client_secret)
|
|
68
|
+
throw new Error("Stripe did not return a setup secret.");
|
|
69
|
+
return { setupIntentId: intent.id, clientSecret: intent.client_secret };
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=intents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intents.js","sourceRoot":"","sources":["../../../src/client/billing/intents.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,26 @@ export declare function updateDispute(stripe: Stripe, component: Component, ctx:
|
|
|
66
66
|
}): Promise<{
|
|
67
67
|
success: true;
|
|
68
68
|
}>;
|
|
69
|
+
/** File fields supported by Stripe dispute evidence. */
|
|
70
|
+
export type DisputeEvidenceFileField = "cancellation_policy" | "customer_communication" | "customer_signature" | "duplicate_charge_documentation" | "receipt" | "refund_policy" | "service_documentation" | "shipping_documentation" | "uncategorized_file";
|
|
71
|
+
export type DisputeEvidenceUploadOptions = {
|
|
72
|
+
stripeDisputeId: string;
|
|
73
|
+
/** Derive this on the server from the authenticated session. */
|
|
74
|
+
actor: RefundActor;
|
|
75
|
+
field: DisputeEvidenceFileField;
|
|
76
|
+
file: {
|
|
77
|
+
data: Uint8Array;
|
|
78
|
+
name: string;
|
|
79
|
+
type: "application/pdf" | "image/jpeg" | "image/png";
|
|
80
|
+
};
|
|
81
|
+
/** Request account owning the charge, distinct from the seller actor. */
|
|
82
|
+
stripeAccountId?: string;
|
|
83
|
+
};
|
|
84
|
+
/** Upload and attach to one authorized dispute as a draft. Never submits. */
|
|
85
|
+
export declare function uploadDisputeEvidence(stripe: Stripe, component: Component, ctx: RunCtx, opts: DisputeEvidenceUploadOptions): Promise<{
|
|
86
|
+
stripeFileId: string;
|
|
87
|
+
stripeDisputeId: string;
|
|
88
|
+
}>;
|
|
69
89
|
/**
|
|
70
90
|
* Accept a dispute (concede the chargeback). Irreversible.
|
|
71
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disputes.d.ts","sourceRoot":"","sources":["../../../src/client/connect/disputes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"disputes.d.ts","sourceRoot":"","sources":["../../../src/client/connect/disputes.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,61 @@ export async function updateDispute(stripe, component, ctx, opts) {
|
|
|
82
82
|
throwStripeError("DISPUTE_UPDATE_FAILED", "Failed to update dispute", err);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
/** Upload and attach to one authorized dispute as a draft. Never submits. */
|
|
86
|
+
export async function uploadDisputeEvidence(stripe, component, ctx, opts) {
|
|
87
|
+
if (!opts.actor ||
|
|
88
|
+
!["admin", "seller"].includes(opts.actor.type) ||
|
|
89
|
+
(opts.actor.type === "seller" &&
|
|
90
|
+
(typeof opts.actor.accountId !== "string" ||
|
|
91
|
+
!opts.actor.accountId.trim())))
|
|
92
|
+
throwStripeError("DISPUTE_UNAUTHORIZED", "Dispute upload requires an authenticated actor");
|
|
93
|
+
await assertDisputeAuthorized(component, ctx, opts);
|
|
94
|
+
const fields = [
|
|
95
|
+
"cancellation_policy",
|
|
96
|
+
"customer_communication",
|
|
97
|
+
"customer_signature",
|
|
98
|
+
"duplicate_charge_documentation",
|
|
99
|
+
"receipt",
|
|
100
|
+
"refund_policy",
|
|
101
|
+
"service_documentation",
|
|
102
|
+
"shipping_documentation",
|
|
103
|
+
"uncategorized_file",
|
|
104
|
+
];
|
|
105
|
+
const { data, name, type } = opts.file;
|
|
106
|
+
const signature = type === "application/pdf"
|
|
107
|
+
? [37, 80, 68, 70, 45]
|
|
108
|
+
: type === "image/jpeg"
|
|
109
|
+
? [255, 216, 255]
|
|
110
|
+
: type === "image/png"
|
|
111
|
+
? [137, 80, 78, 71, 13, 10, 26, 10]
|
|
112
|
+
: [];
|
|
113
|
+
if (!fields.includes(opts.field) ||
|
|
114
|
+
!(data instanceof Uint8Array) ||
|
|
115
|
+
!data.byteLength ||
|
|
116
|
+
data.byteLength > 5_000_000 ||
|
|
117
|
+
!name.trim() ||
|
|
118
|
+
!signature.length ||
|
|
119
|
+
!signature.every((byte, i) => data[i] === byte))
|
|
120
|
+
throwStripeError("INVALID_CONFIGURATION", "Invalid dispute evidence: use a nonempty PDF, JPEG or PNG up to 5 MB with a matching MIME type and filename");
|
|
121
|
+
let stripeFileId;
|
|
122
|
+
try {
|
|
123
|
+
const file = await stripe.files.create({ purpose: "dispute_evidence", file: { data, name, type } }, opts.stripeAccountId
|
|
124
|
+
? { stripeAccount: opts.stripeAccountId }
|
|
125
|
+
: undefined);
|
|
126
|
+
stripeFileId = file.id;
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
throwStripeError("DISPUTE_UPLOAD_FAILED", "Failed to upload dispute evidence", err);
|
|
130
|
+
}
|
|
131
|
+
await updateDispute(stripe, component, ctx, {
|
|
132
|
+
stripeDisputeId: opts.stripeDisputeId,
|
|
133
|
+
actor: opts.actor,
|
|
134
|
+
stripeAccountId: opts.stripeAccountId,
|
|
135
|
+
evidence: { [opts.field]: stripeFileId },
|
|
136
|
+
submit: false,
|
|
137
|
+
});
|
|
138
|
+
return { stripeFileId, stripeDisputeId: opts.stripeDisputeId };
|
|
139
|
+
}
|
|
85
140
|
/**
|
|
86
141
|
* Accept a dispute (concede the chargeback). Irreversible.
|
|
87
142
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disputes.js","sourceRoot":"","sources":["../../../src/client/connect/disputes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"disputes.js","sourceRoot":"","sources":["../../../src/client/connect/disputes.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,4 +80,6 @@ export declare function computeSplit(amount: number, feeConfig: PlatformFeeConfi
|
|
|
80
80
|
* The amount-vs-charge check happens at execution time in {@link computeSplit}.
|
|
81
81
|
*/
|
|
82
82
|
export declare function validateSplit(recipients: SplitRecipient[]): void;
|
|
83
|
+
/** Deep-copy a platform fee config so stored/returned values can't be mutated. */
|
|
84
|
+
export declare function clonePlatformFee(config: PlatformFeeConfig): PlatformFeeConfig;
|
|
83
85
|
//# sourceMappingURL=fees.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/client/core/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAwB7B;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA8BnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,iBAAiB,EACjC,QAAQ,CAAC,EAAE,WAAW,GACrB,iBAAiB,GAAG,SAAS,CAQ/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEnE;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG;IACzB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,YAAY,CAwBd;AAED,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,GAAG,SAAS,EACxC,UAAU,EAAE,cAAc,EAAE,GAC3B,WAAW,CAkCb;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CA+ChE"}
|
|
1
|
+
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../src/client/core/fees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAwB7B;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA8BnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,iBAAiB,EACjC,QAAQ,CAAC,EAAE,WAAW,GACrB,iBAAiB,GAAG,SAAS,CAQ/B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAEnE;AAED,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG;IACzB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,YAAY,CAwBd;AAED,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,GAAG,SAAS,EACxC,UAAU,EAAE,cAAc,EAAE,GAC3B,WAAW,CAkCb;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CA+ChE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAK7E"}
|
package/dist/client/core/fees.js
CHANGED
|
@@ -180,4 +180,11 @@ export function validateSplit(recipients) {
|
|
|
180
180
|
throw new Error(`split percents sum to ${percentSum}, which exceeds 100`);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
+
/** Deep-copy a platform fee config so stored/returned values can't be mutated. */
|
|
184
|
+
export function clonePlatformFee(config) {
|
|
185
|
+
return {
|
|
186
|
+
...config,
|
|
187
|
+
tiers: config.tiers?.map((tier) => ({ ...tier })),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
183
190
|
//# sourceMappingURL=fees.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/client/core/fees.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../src/client/core/fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,17 @@ import type { RecoveryGroup, RecoveryScope } from "./costRecovery.js";
|
|
|
3
3
|
export type RecoveryInvoiceOptions = RecoveryScope & {
|
|
4
4
|
groupKey: string;
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
export declare function attachRecoveryInvoice(stripe: Stripe, group: RecoveryGroup | null, opts: RecoveryInvoiceOptions, bind: (invoiceItemId: string) => Promise<RecoveryGroup>, create?: boolean): Promise<{
|
|
6
|
+
type InvoiceReceipt = {
|
|
8
7
|
group: RecoveryGroup;
|
|
9
8
|
invoiceItemId: string;
|
|
10
|
-
invoiceStatus: Stripe.Invoice
|
|
11
|
-
}
|
|
9
|
+
invoiceStatus: Stripe.Invoice["status"];
|
|
10
|
+
};
|
|
11
|
+
type BindInvoiceItem = (invoiceItemId: string) => Promise<RecoveryGroup>;
|
|
12
|
+
/** Attachment always produces an item; reconciliation can release an unbound void invoice. */
|
|
13
|
+
export declare function attachRecoveryInvoice(stripe: Stripe, group: RecoveryGroup | null, opts: RecoveryInvoiceOptions, bind: BindInvoiceItem, create?: true): Promise<InvoiceReceipt>;
|
|
14
|
+
export declare function attachRecoveryInvoice(stripe: Stripe, group: RecoveryGroup | null, opts: RecoveryInvoiceOptions, bind: BindInvoiceItem, create: false): Promise<InvoiceReceipt | (Omit<InvoiceReceipt, "invoiceItemId"> & {
|
|
15
|
+
invoiceItemId: null;
|
|
16
|
+
})>;
|
|
12
17
|
/** Refuse ambiguous cash/credit or multi-payment allocations instead of inventing economics. */
|
|
13
18
|
export declare function readInvoiceFunding(stripe: Stripe, group: RecoveryGroup): Promise<{
|
|
14
19
|
status: "not_ready";
|
|
@@ -35,4 +40,5 @@ export declare function readInvoiceFunding(stripe: Stripe, group: RecoveryGroup)
|
|
|
35
40
|
status: "not_ready";
|
|
36
41
|
reason: "invoice_funding_allocation_required";
|
|
37
42
|
}>;
|
|
43
|
+
export {};
|
|
38
44
|
//# sourceMappingURL=costRecovery-invoices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costRecovery-invoices.d.ts","sourceRoot":"","sources":["../../src/client/costRecovery-invoices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAK1E,
|
|
1
|
+
{"version":3,"file":"costRecovery-invoices.d.ts","sourceRoot":"","sources":["../../src/client/costRecovery-invoices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAK1E,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AACF,KAAK,eAAe,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzE,8FAA8F;AAC9F,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,IAAI,EAAE,sBAAsB,EAC5B,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,IAAI,GACZ,OAAO,CAAC,cAAc,CAAC,CAAC;AAC3B,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GAAG,IAAI,EAC3B,IAAI,EAAE,sBAAsB,EAC5B,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,KAAK,GACZ,OAAO,CACN,cAAc,GACd,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG;IAAE,aAAa,EAAE,IAAI,CAAA;CAAE,CAAC,CACpE,CAAC;AAmGF,gGAAgG;AAChG,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;YA8B/D,WAAW;YACX,qCAAqC;GAYlD"}
|
|
@@ -40,6 +40,10 @@ export async function attachRecoveryInvoice(stripe, group, opts, bind, create =
|
|
|
40
40
|
if (!found) {
|
|
41
41
|
if (group.invoiceItemId)
|
|
42
42
|
throw new Error("Bound recovery invoice item is missing; reconcile before retrying.");
|
|
43
|
+
if (!create &&
|
|
44
|
+
invoice.status === "void" &&
|
|
45
|
+
["sealed", "releasing", "released"].includes(group.status))
|
|
46
|
+
return { group, invoiceItemId: null, invoiceStatus: invoice.status };
|
|
43
47
|
if (!create)
|
|
44
48
|
throw new Error("Recovery invoice item is missing; no collection can be confirmed.");
|
|
45
49
|
if (group.status !== "sealed")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costRecovery-invoices.js","sourceRoot":"","sources":["../../src/client/costRecovery-invoices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAI3E,MAAM,MAAM,GAAG,iBAAiB,CAAC;AACjC,MAAM,EAAE,GAAG,CAAC,KAAqC,EAAE,EAAE,CACnD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"costRecovery-invoices.js","sourceRoot":"","sources":["../../src/client/costRecovery-invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,12 @@ export type RecoveryClaim = RecoveryObservation & {
|
|
|
20
20
|
reservedAmount: number;
|
|
21
21
|
outstanding: number;
|
|
22
22
|
sign: "positive" | "negative" | "zero";
|
|
23
|
+
openingCollection?: {
|
|
24
|
+
operationKey: string;
|
|
25
|
+
amountDue: number;
|
|
26
|
+
revision: number;
|
|
27
|
+
collectedAmount: number;
|
|
28
|
+
};
|
|
23
29
|
};
|
|
24
30
|
export type RecoveryBalance = RecoveryScope & {
|
|
25
31
|
amountDue: number;
|
|
@@ -83,7 +89,7 @@ export declare class CostRecoveryClient {
|
|
|
83
89
|
}): Promise<{
|
|
84
90
|
group: RecoveryGroup;
|
|
85
91
|
invoiceItemId: string;
|
|
86
|
-
invoiceStatus: Stripe.Invoice
|
|
92
|
+
invoiceStatus: Stripe.Invoice["status"];
|
|
87
93
|
}>;
|
|
88
94
|
/** Re-read Stripe; keep unpaid items reserved. Repeat until isDone after terminal outcomes. */
|
|
89
95
|
reconcileInvoice(ctx: RunCtx, opts: RecoveryScope & {
|
|
@@ -93,7 +99,12 @@ export declare class CostRecoveryClient {
|
|
|
93
99
|
isDone: boolean;
|
|
94
100
|
group: RecoveryGroup;
|
|
95
101
|
invoiceItemId: string;
|
|
96
|
-
invoiceStatus: Stripe.Invoice
|
|
102
|
+
invoiceStatus: Stripe.Invoice["status"];
|
|
103
|
+
} | {
|
|
104
|
+
isDone: boolean;
|
|
105
|
+
group: RecoveryGroup;
|
|
106
|
+
invoiceStatus: Stripe.Invoice["status"];
|
|
107
|
+
invoiceItemId: null;
|
|
97
108
|
}>;
|
|
98
109
|
/** Reconcile a returned funding charge without changing the original cost claims. */
|
|
99
110
|
rollbackInvoice(ctx: RunCtx, opts: RecoveryScope & {
|
|
@@ -110,6 +121,11 @@ export declare class CostRecoveryClient {
|
|
|
110
121
|
status: "not_ready";
|
|
111
122
|
reason: "invoice_funding_allocation_required";
|
|
112
123
|
}>;
|
|
124
|
+
/** Import a host-verified opening collection. Never overwrites a live claim. */
|
|
125
|
+
importClaim(ctx: RunCtx, opts: RecoveryObservation & {
|
|
126
|
+
operationKey: string;
|
|
127
|
+
collectedAmount: number;
|
|
128
|
+
}): Promise<RecoveryClaim>;
|
|
113
129
|
recordClaim(ctx: RunCtx, opts: RecoveryObservation): Promise<RecoveryClaim>;
|
|
114
130
|
reserve(ctx: RunCtx, opts: RecoveryGroupOptions & {
|
|
115
131
|
operationKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costRecovery.d.ts","sourceRoot":"","sources":["../../src/client/costRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"costRecovery.d.ts","sourceRoot":"","sources":["../../src/client/costRecovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,10 @@ export class CostRecoveryClient {
|
|
|
79
79
|
}),
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
+
/** Import a host-verified opening collection. Never overwrites a live claim. */
|
|
83
|
+
importClaim(ctx, opts) {
|
|
84
|
+
return this.mutate(ctx, "mutations/importClaim", opts);
|
|
85
|
+
}
|
|
82
86
|
recordClaim(ctx, opts) {
|
|
83
87
|
return this.mutate(ctx, "mutations/record", opts);
|
|
84
88
|
}
|