@fantastic.dev/better-stripe 0.4.0 → 0.5.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 +34 -0
- package/MIGRATION.md +135 -0
- package/README.md +23 -2
- package/dist/client/billing/checkout.d.ts.map +1 -1
- package/dist/client/billing/checkout.js +22 -8
- package/dist/client/billing/checkout.js.map +1 -1
- package/dist/client/billing/subscriptionRouting.d.ts +24 -0
- package/dist/client/billing/subscriptionRouting.d.ts.map +1 -0
- package/dist/client/billing/subscriptionRouting.js +19 -0
- package/dist/client/billing/subscriptionRouting.js.map +1 -0
- package/dist/client/billing/subscriptions.d.ts +6 -6
- package/dist/client/billing/subscriptions.d.ts.map +1 -1
- package/dist/client/billing/subscriptions.js +31 -12
- package/dist/client/billing/subscriptions.js.map +1 -1
- package/dist/client/connect/disputes.js.map +1 -1
- package/dist/client/constants.js +1 -1
- package/dist/client/core/accountLinks.d.ts +1 -0
- package/dist/client/core/accountLinks.d.ts.map +1 -1
- package/dist/client/core/accountLinks.js +0 -6
- package/dist/client/core/accountLinks.js.map +1 -1
- package/dist/client/core/accountStatus.d.ts.map +1 -1
- package/dist/client/core/accountStatus.js +23 -8
- package/dist/client/core/accountStatus.js.map +1 -1
- package/dist/client/index.d.ts +5 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/types/documents.d.ts +1 -0
- package/dist/client/types/documents.d.ts.map +1 -1
- package/dist/client/types/events.d.ts +2 -1
- package/dist/client/types/events.d.ts.map +1 -1
- package/dist/client/types/options.d.ts +7 -0
- package/dist/client/types/options.d.ts.map +1 -1
- package/dist/client/utils/stripeDashboardUrl.d.ts.map +1 -1
- package/dist/client/utils/webhookEndpoints.d.ts.map +1 -1
- package/dist/client/webhooks/handler.d.ts.map +1 -1
- package/dist/client/webhooks/handler.js +35 -1
- package/dist/client/webhooks/handler.js.map +1 -1
- package/dist/client/webhooks/hooks.d.ts +1 -1
- package/dist/client/webhooks/hooks.d.ts.map +1 -1
- package/dist/client/webhooks/hooks.js +5 -1
- package/dist/client/webhooks/hooks.js.map +1 -1
- package/dist/client/webhooks/processors.d.ts.map +1 -1
- package/dist/client/webhooks/processors.js +12 -2
- package/dist/client/webhooks/processors.js.map +1 -1
- package/dist/client/webhooks/v2.d.ts.map +1 -1
- package/dist/client/webhooks/v2.js +11 -3
- package/dist/client/webhooks/v2.js.map +1 -1
- package/dist/component/_generated/component.d.ts +8 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/_generated/server.d.ts +7 -1
- package/dist/component/_generated/server.d.ts.map +1 -1
- package/dist/component/_generated/server.js +2 -1
- package/dist/component/_generated/server.js.map +1 -1
- package/dist/component/billing/mutations.d.ts +29 -28
- package/dist/component/billing/mutations.d.ts.map +1 -1
- package/dist/component/billing/mutations.js +1 -0
- package/dist/component/billing/mutations.js.map +1 -1
- package/dist/component/billing/queries.d.ts +138 -131
- package/dist/component/billing/queries.d.ts.map +1 -1
- package/dist/component/billing/schema.d.ts +67 -65
- package/dist/component/billing/schema.d.ts.map +1 -1
- package/dist/component/billing/validators.d.ts +94 -91
- package/dist/component/billing/validators.d.ts.map +1 -1
- package/dist/component/billing/validators.js +1 -0
- package/dist/component/billing/validators.js.map +1 -1
- package/dist/component/connect/mutations.d.ts +37 -37
- package/dist/component/connect/queries.d.ts +115 -115
- package/dist/component/connect/queries.d.ts.map +1 -1
- package/dist/component/connect/queries.js +34 -71
- package/dist/component/connect/queries.js.map +1 -1
- package/dist/component/connect/schema.d.ts +73 -73
- package/dist/component/connect/validators.d.ts +119 -119
- package/dist/component/connect/validators.d.ts.map +1 -1
- package/dist/component/convex.config.d.ts +1 -0
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/convex.config.js +2 -1
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/core/mutations.d.ts +12 -12
- package/dist/component/core/queries.d.ts +34 -34
- package/dist/component/core/schema.d.ts +11 -11
- package/dist/component/core/validators.d.ts +14 -14
- package/dist/component/core/validators.d.ts.map +1 -1
- package/dist/component/lib/fees.d.ts +12 -12
- package/dist/component/lib/fees.d.ts.map +1 -1
- package/dist/component/lib/fees.js +1 -1
- package/dist/component/lib/reversals.js.map +1 -1
- package/dist/component/products/mutations.d.ts +7 -7
- package/dist/component/products/queries.d.ts +33 -33
- package/dist/component/products/schema.d.ts +15 -15
- package/dist/component/products/validators.d.ts +16 -16
- package/dist/component/products/validators.d.ts.map +1 -1
- package/dist/component/schema.d.ts +173 -171
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/webhooks/mutations.d.ts +3 -3
- package/dist/component/webhooks/queries.d.ts +12 -12
- package/dist/component/webhooks/schema.d.ts +7 -7
- package/dist/component/webhooks/validators.d.ts +10 -10
- package/dist/component/webhooks/validators.d.ts.map +1 -1
- package/dist/react/components/AccountCreateCard.js.map +1 -1
- package/dist/react/components/BuyerBillingView.js +1 -1
- package/dist/react/components/CheckoutSessionProviderWithKey.d.ts +1 -1
- package/dist/react/components/DisputeDetail.js +1 -1
- package/dist/react/components/DisputesList.js +1 -1
- package/dist/react/components/EarningsSummary.js +1 -1
- package/dist/react/components/EmbeddedCheckout.d.ts.map +1 -1
- package/dist/react/components/EmbeddedCheckout.js +1 -1
- package/dist/react/components/EmbeddedCheckout.js.map +1 -1
- package/dist/react/components/PayoutSchedule.js +1 -1
- package/dist/react/components/SplitBreakdown.js +1 -1
- package/dist/react/components/StripeProvider.d.ts +1 -1
- package/dist/react/components/StripeProviderWithKey.d.ts +1 -1
- package/dist/react/hooks/useAccount.d.ts.map +1 -1
- package/dist/react/hooks/useAccountOnboarding.d.ts.map +1 -1
- package/dist/react/hooks/useCheckout.d.ts.map +1 -1
- package/dist/react/hooks/useDisputeWithCountdown.d.ts.map +1 -1
- package/dist/react/hooks/useDisputes.d.ts.map +1 -1
- package/dist/react/hooks/useEarnings.d.ts.map +1 -1
- package/dist/react/hooks/useInvoices.d.ts.map +1 -1
- package/dist/react/hooks/usePaymentMethodActions.js.map +1 -1
- package/dist/react/hooks/usePaymentMethods.d.ts.map +1 -1
- package/dist/react/hooks/usePrices.d.ts.map +1 -1
- package/dist/react/hooks/useProducts.d.ts.map +1 -1
- package/dist/react/hooks/useSplitBreakdown.d.ts.map +1 -1
- package/dist/react/hooks/useSubscription.d.ts.map +1 -1
- package/dist/react/hooks/useSubscriptions.d.ts.map +1 -1
- package/dist/react/lib/stripe-element-styles.d.ts.map +1 -1
- package/dist/react/lib/stripe-element-styles.js.map +1 -1
- package/package.json +25 -23
- package/src/client/billing/checkout.test.ts +62 -14
- package/src/client/billing/checkout.ts +26 -10
- package/src/client/billing/subscriptionRouting.ts +25 -0
- package/src/client/billing/subscriptions.test.ts +90 -28
- package/src/client/billing/subscriptions.ts +53 -18
- package/src/client/constants.ts +1 -1
- package/src/client/core/accountLinks.test.ts +20 -13
- package/src/client/core/accountLinks.ts +2 -10
- package/src/client/core/accountStatus.test.ts +67 -0
- package/src/client/core/accountStatus.ts +30 -13
- package/src/client/helpers.test.ts +2 -2
- package/src/client/index.ts +49 -44
- package/src/client/stripe-version.test.ts +47 -0
- package/src/client/types/documents.ts +1 -0
- package/src/client/types/events.ts +2 -1
- package/src/client/types/options.ts +7 -0
- package/src/client/webhooks/handler.ts +38 -1
- package/src/client/webhooks/hooks.ts +3 -0
- package/src/client/webhooks/processors.test.ts +201 -40
- package/src/client/webhooks/processors.ts +21 -17
- package/src/client/webhooks/retry.integration.test.ts +196 -0
- package/src/client/webhooks/v2.test.ts +36 -0
- package/src/client/webhooks/v2.ts +14 -4
- package/src/component/_generated/component.ts +15 -28
- package/src/component/_generated/server.ts +9 -2
- package/src/component/billing/mutations.ts +1 -0
- package/src/component/billing/validators.ts +1 -0
- package/src/component/config-queries.test.ts +8 -4
- package/src/component/connect/queries.ts +31 -66
- package/src/component/convex.config.ts +2 -1
- package/src/component/earnings-totals.test.ts +27 -1
- package/src/component/lib/fees.ts +1 -1
- package/src/react/components/EmbeddedCheckout.render.test.tsx +57 -0
- package/src/react/components/EmbeddedCheckout.tsx +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Incorporate Dojo's `retryOnHookError` webhook patch upstream. Selected,
|
|
8
|
+
signature-verified V1 `onEvent`/event hooks must succeed before acknowledgment;
|
|
9
|
+
failed hooks and unavailable ledger writes return 500, in-flight deliveries
|
|
10
|
+
return 503, and successful redelivery deduplicates. The default remains
|
|
11
|
+
best-effort. Add regression coverage using real SDK signatures and the real
|
|
12
|
+
Convex component ledger, including stale-reservation recovery.
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- Complete support for Stripe API **`2026-09-30.endive`** with stripe-node
|
|
17
|
+
**23.0.0** (already pinned in the 0.4.0 checkout). Verify both client factories'
|
|
18
|
+
outgoing version headers against the typed single-source API constant.
|
|
19
|
+
- Preserve verified V2 notification context when retrieving accounts; accept
|
|
20
|
+
related-object pointers without an id and resolve accounts from their URL.
|
|
21
|
+
- Map Endive `rejected`/`restricted` capabilities to `restricted` and pending
|
|
22
|
+
capabilities to `in_progress`, including nested Stripe balance capabilities.
|
|
23
|
+
- Remount embedded Checkout when its key/client secret changes, using React
|
|
24
|
+
Stripe.js 7's current `createEmbeddedCheckoutPage` integration.
|
|
25
|
+
- Deprecate the retained, ignored V2 account-link `configurations` option and
|
|
26
|
+
remove its obsolete internal use.
|
|
27
|
+
|
|
28
|
+
### Migration
|
|
29
|
+
|
|
30
|
+
See [MIGRATION.md](MIGRATION.md) for removing the Dojo pnpm patch, upgrading
|
|
31
|
+
0.2.0 webhook wiring, billing-anchor/payment-method request changes, and
|
|
32
|
+
**separate consumer-controlled webhook destination upgrades**. The public
|
|
33
|
+
`V2ThinEvent.related_object.id` is now optional; consumers must guard it.
|
|
34
|
+
No account defaults, event destinations, DNS, or production deployments are
|
|
35
|
+
changed by this release.
|
|
36
|
+
|
|
3
37
|
## 0.4.0
|
|
4
38
|
|
|
5
39
|
**Renamed to `@fantastic.dev/better-stripe`.** This is the first release under the new name, published from `FantasticDevHQ/better-stripe` through npm trusted publishing with provenance. `@getdojo/better-stripe` is deprecated and gets no further releases. To migrate, replace `@getdojo/better-stripe` with `@fantastic.dev/better-stripe` in `package.json`, in imports and in `convex.config.ts`, then run `npx convex dev` to regenerate `_generated/`. The API is unchanged by the rename.
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Migrating to 0.5.0 and Stripe Endive
|
|
2
|
+
|
|
3
|
+
## Package and runtime
|
|
4
|
+
|
|
5
|
+
Install `@fantastic.dev/better-stripe@0.5.0`. The old
|
|
6
|
+
`@getdojo/better-stripe` name is deprecated. Replace imports and the component
|
|
7
|
+
config import with the new name, retaining your existing component instance
|
|
8
|
+
name (for example `betterStripe`) so its stored data remains attached. Run
|
|
9
|
+
`npx convex dev` against your development deployment to regenerate bindings.
|
|
10
|
+
Node.js 20 or newer is required by stripe-node 23.
|
|
11
|
+
|
|
12
|
+
The package depends on `stripe ~23.0.0`, whose supported API is exactly
|
|
13
|
+
`2026-09-30.endive`. The typed `STRIPE_API_VERSION` constant in
|
|
14
|
+
`src/client/constants.ts` pins app clients, component actions, and webhook
|
|
15
|
+
resource refreshes. This SDK and pin were already present in the 0.4.0 checkout;
|
|
16
|
+
0.5.0 adds fulfillment retries and completes the V2/React compatibility fixes.
|
|
17
|
+
Leave `stripeApiVersion` unset to use this pin. The legacy string override is
|
|
18
|
+
retained for compatibility, but overriding it does not change the SDK's types
|
|
19
|
+
or convert webhook payloads and can make requests inconsistent with them.
|
|
20
|
+
|
|
21
|
+
## Remove Dojo's consumer patch
|
|
22
|
+
|
|
23
|
+
Remove the `@getdojo/better-stripe@0.2.0` entry from pnpm's
|
|
24
|
+
`patchedDependencies` and delete `patches/@getdojo__better-stripe@0.2.0.patch`.
|
|
25
|
+
Update the dependency/imports and regenerate the lockfile. The upstream
|
|
26
|
+
`RegisterRoutesConfig.retryOnHookError` has the same signature and V1 semantics
|
|
27
|
+
as that patch. Dojo can keep its existing selector:
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
retryOnHookError: (event) => {
|
|
31
|
+
if (event.type !== "checkout.session.completed" || !("data" in event)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const metadata = (event.data.object as {
|
|
35
|
+
metadata?: Record<string, string>;
|
|
36
|
+
}).metadata;
|
|
37
|
+
return (
|
|
38
|
+
(metadata?.purchaseType ?? metadata?.purchase_type) === "communityMembership" &&
|
|
39
|
+
metadata?.dojoMembershipFulfillment === "1"
|
|
40
|
+
);
|
|
41
|
+
},
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For selected **verified V1 events**, component processing commits first;
|
|
45
|
+
`onEvent` and the matching `events[type]` hook then run before the event is marked
|
|
46
|
+
processed. A hook failure records `failed` and returns HTTP 500. A concurrent
|
|
47
|
+
delivery returns 503; ledger reservation/completion failures return 500. Failed
|
|
48
|
+
events can be retried immediately; an abandoned processing reservation can be
|
|
49
|
+
retried after ten minutes. Once processed, redelivery deduplicates without
|
|
50
|
+
re-running the hooks. Selector exceptions also return 500.
|
|
51
|
+
|
|
52
|
+
Hooks and any sync triggers must be idempotent using `event.id` or a durable
|
|
53
|
+
business key: processing can run again after a hook failure, and hook success
|
|
54
|
+
followed by a failed completion write can rerun a successful hook. This is
|
|
55
|
+
at-least-once fulfillment. Unselected events, V2 hooks, and scheduled
|
|
56
|
+
`asyncWebhook` hooks keep their existing best-effort acknowledgment behavior.
|
|
57
|
+
Put required fulfillment in `onEvent`/`events`, not in a scheduled hook.
|
|
58
|
+
|
|
59
|
+
### Existing breaking change when coming from 0.2.0
|
|
60
|
+
|
|
61
|
+
The 0.3.0/0.4.0 webhook wiring change remains required: `triggersApi()` was
|
|
62
|
+
replaced by `webhookHandlers()`. The constructor's `triggers` and `hooks` stay
|
|
63
|
+
the same. Export the two wrappers:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
export const { syncWebhook, asyncWebhook } = stripe.webhookHandlers();
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
In `registerRoutes`, replace `triggers: internal.stripe` with
|
|
70
|
+
`webhooks: internal.stripe`. Regenerate Convex bindings before using the pair.
|
|
71
|
+
|
|
72
|
+
## Stripe request and response changes
|
|
73
|
+
|
|
74
|
+
- **V2 account links:** `use_case.account_onboarding.configurations` and
|
|
75
|
+
`use_case.account_update.configurations` are removed. The public
|
|
76
|
+
`createV2AccountLink({ configurations })` option is retained, deprecated, and
|
|
77
|
+
ignored. Stripe collects requirements for the account without it.
|
|
78
|
+
- **Billing-cycle anchors:** Endive changes Subscription update/resume and
|
|
79
|
+
invoice preview `subscription_details.billing_cycle_anchor` to an object,
|
|
80
|
+
for example `{ type: "now" }` or `{ type: "unchanged" }`. These wrappers
|
|
81
|
+
currently send no billing-cycle anchor; no scalar anchor request needed
|
|
82
|
+
rewriting. Consumer raw SDK calls to those endpoints must migrate. Creation
|
|
83
|
+
and Checkout `subscription_data.billing_cycle_anchor` still accept a Unix
|
|
84
|
+
timestamp; do not convert those fields to the update format.
|
|
85
|
+
- **Payment methods:** Checkout Session creation and PaymentIntent
|
|
86
|
+
create/update/confirm and SetupIntent create/update no longer accept
|
|
87
|
+
`payment_method_types`. Use `allowed_payment_method_types` for a restriction,
|
|
88
|
+
or omit it for dynamic methods; retain `automatic_payment_methods` only where
|
|
89
|
+
supported. The package's Checkout requests omit the removed parameter.
|
|
90
|
+
Update consumer `sessionOverrides` and raw Stripe calls; SDK 23 types catch
|
|
91
|
+
old parameters. Subscription/invoice `payment_settings.payment_method_types`
|
|
92
|
+
and PaymentMethod list `type` are separate, still-supported parameters.
|
|
93
|
+
- **Account status:** an applied V2 configuration with a `rejected` or
|
|
94
|
+
`restricted` capability now maps to public `restricted`; a `pending`
|
|
95
|
+
capability maps to `in_progress`, including nested `stripe_balance` groups.
|
|
96
|
+
Unsupported optional payment methods do not block onboarding. Existing public
|
|
97
|
+
status strings remain unchanged.
|
|
98
|
+
- **V2 notifications:** signature verification uses
|
|
99
|
+
`parseEventNotificationAsync`. Account refreshes propagate the notification's
|
|
100
|
+
`context` via `stripeContext`. `related_object.id` is now optional because
|
|
101
|
+
singleton pointers can omit it; account pointers can resolve from their URL.
|
|
102
|
+
Consumers reading the public thin-event type must guard an absent id. Other
|
|
103
|
+
singleton resource events remain outside the account-sync handler's scope.
|
|
104
|
+
- **React embedded Checkout:** React Stripe.js 7 calls the current Stripe.js 10
|
|
105
|
+
`createEmbeddedCheckoutPage` API. `EmbeddedCheckout` keeps its public props and
|
|
106
|
+
now remounts the provider when the key or client secret changes, destroying
|
|
107
|
+
the previous session rather than keeping an immutable provider on it.
|
|
108
|
+
|
|
109
|
+
## Upgrade webhook payload versions separately
|
|
110
|
+
|
|
111
|
+
Installing this package pins outgoing API requests. It does **not** change your
|
|
112
|
+
Stripe account's default API version or the version of an existing event
|
|
113
|
+
destination. In particular, a V1 snapshot event keeps the version configured on
|
|
114
|
+
its destination, regardless of `stripeApiVersion`.
|
|
115
|
+
|
|
116
|
+
1. Deploy and test the consumer upgrade in a Stripe sandbox first. Preserve
|
|
117
|
+
your current endpoint URL, selected events, and signing secrets.
|
|
118
|
+
2. In Stripe Workbench, review the destination's current version and the
|
|
119
|
+
[Endive changelog](https://docs.stripe.com/changelog/2026-09-30.endive).
|
|
120
|
+
Review every intervening breaking release if coming from Dahlia.
|
|
121
|
+
3. Use Stripe's destination-version upgrade/testing procedure to test Endive
|
|
122
|
+
V1 snapshot payloads and V2 thin notifications separately. V2 uses
|
|
123
|
+
`webhookSecretV2` if set; otherwise it uses `webhookSecret`.
|
|
124
|
+
4. Verify subscription fulfillment, cancellation, required-hook failure/retry,
|
|
125
|
+
and deduplication in sandbox before explicitly upgrading production
|
|
126
|
+
destinations. Keep the Stripe rollback window and its documented limits in
|
|
127
|
+
mind. Do not change the account default version as part of a package upgrade.
|
|
128
|
+
|
|
129
|
+
The official [stripe-node 23.0.0 changelog](https://github.com/stripe/stripe-node/blob/v23.0.0/CHANGELOG.md#2300---2026-09-30)
|
|
130
|
+
and installed SDK 23 types were reviewed for the breaking request/response
|
|
131
|
+
changes. Further consumer guidance: [Stripe API changelog](https://docs.stripe.com/changelog),
|
|
132
|
+
[API versioning](https://docs.stripe.com/upgrades), and
|
|
133
|
+
[event destinations](https://docs.stripe.com/event-destinations).
|
|
134
|
+
The docs.stripe.com changelog page returned HTTP 403 in this execution
|
|
135
|
+
environment.
|
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.5.0` <!-- 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
|
|
|
@@ -28,6 +28,25 @@ Release policy lives in `release-please-config.json`. Keep the workflow file nam
|
|
|
28
28
|
|
|
29
29
|
The private `example` workspace isn't published.
|
|
30
30
|
|
|
31
|
+
### Development toolchain
|
|
32
|
+
|
|
33
|
+
Install with `pnpm install` from the repository root, then run `pnpm build`
|
|
34
|
+
and `pnpm dev` to start the example at http://localhost:5173. The example needs
|
|
35
|
+
Node.js 22.12+ and a configured Convex development deployment; see
|
|
36
|
+
[the example setup guide](example/README.md).
|
|
37
|
+
|
|
38
|
+
Builds and typechecks use TypeScript 7 (`@typescript/native` aliases
|
|
39
|
+
`typescript`). ESLint and Convex code generation still need the TypeScript 6
|
|
40
|
+
API, so `typescript` aliases Microsoft's `@typescript/typescript6` compatibility
|
|
41
|
+
package. Keep both aliases when updating dependencies, as described in
|
|
42
|
+
[Microsoft's migration guide](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0).
|
|
43
|
+
|
|
44
|
+
Stripe 23 targets API version `2026-09-30.endive`. Account links now collect
|
|
45
|
+
requirements without a `configurations` parameter; callers can still pass the
|
|
46
|
+
legacy option, but it is not sent to Stripe. See the
|
|
47
|
+
[Stripe API changelog](https://docs.stripe.com/changelog) before upgrading an
|
|
48
|
+
existing integration to this API version.
|
|
49
|
+
|
|
31
50
|
### Regenerating codegen
|
|
32
51
|
|
|
33
52
|
The component ships committed Convex codegen output at `src/component/_generated/{api,component,dataModel,server}.ts` — consumers reach the bindings via the `./_generated/component` subpath export. The example app also commits its own codegen at `example/convex/_generated/`. Running `pnpm dev` (which wraps `convex dev`) regenerates these automatically when the schema or function definitions change, but only against the live dev deployment and only while the dev server is watching.
|
|
@@ -118,6 +137,8 @@ app.use(betterStripe, {
|
|
|
118
137
|
export default app;
|
|
119
138
|
```
|
|
120
139
|
|
|
140
|
+
> **TypeScript 6+:** `compilerOptions.types` now defaults to `[]`, so installed `@types/*` packages are no longer included automatically. If Convex's typecheck reports `Cannot find name 'process'` for the `process.env` reads below, add `"types": ["node"]` to `convex/tsconfig.json` and make sure `@types/node` is a devDependency.
|
|
141
|
+
|
|
121
142
|
### Step 2: Create a BetterStripe instance with triggers
|
|
122
143
|
|
|
123
144
|
```typescript
|
|
@@ -1017,7 +1038,7 @@ the deployment env — no `app.use` wiring required.
|
|
|
1017
1038
|
|
|
1018
1039
|
### Stripe API Version
|
|
1019
1040
|
|
|
1020
|
-
The component pins the Stripe API version internally (`2026-
|
|
1041
|
+
The component pins the Stripe API version internally (`2026-09-30.endive`) using the installed stripe-node 23 SDK's exact API-version type. Upgrading the pinned version requires a package release and changelog entry. Apps do not need to set `STRIPE_API_VERSION`. See [the migration notes](MIGRATION.md) for removing Dojo's fulfillment-retry patch and upgrading webhook payload versions separately.
|
|
1021
1042
|
|
|
1022
1043
|
### SDK Management
|
|
1023
1044
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/client/billing/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,KAAK,EACV,iBAAiB,EACjB,8BAA8B,EAC/B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/client/billing/checkout.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,18 +38,30 @@ function deriveFeeRow(params) {
|
|
|
38
38
|
return {};
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Destination
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
41
|
+
* Destination and separate charges use platform prices. Catalog accountId is a
|
|
42
|
+
* store attribution tag, not Stripe ownership (createProduct uses the platform).
|
|
43
|
+
* For tagged products, verify the price in the platform Stripe context before
|
|
44
|
+
* rejecting it. Untagged/unknown catalog entries are validated by Checkout.
|
|
45
45
|
*/
|
|
46
|
-
async function assertPlatformPrice(component, ctx, stripePriceId) {
|
|
46
|
+
async function assertPlatformPrice(stripe, component, ctx, stripePriceId) {
|
|
47
47
|
const price = (await ctx.runQuery(componentRef(component, "products/queries/getPriceByStripeId"), { stripePriceId }));
|
|
48
48
|
if (!price?.stripeProductId)
|
|
49
49
|
return;
|
|
50
50
|
const product = (await ctx.runQuery(componentRef(component, "products/queries/getProductByStripeId"), { stripeProductId: price.stripeProductId }));
|
|
51
51
|
if (product?.accountId) {
|
|
52
|
-
|
|
52
|
+
try {
|
|
53
|
+
await stripe.prices.retrieve(stripePriceId);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// Only absence on the platform means the ownership check failed.
|
|
57
|
+
// Auth/network/rate-limit failures must not be misreported as ownership.
|
|
58
|
+
if (!error ||
|
|
59
|
+
typeof error !== "object" ||
|
|
60
|
+
!("code" in error) ||
|
|
61
|
+
error.code !== "resource_missing")
|
|
62
|
+
throw error;
|
|
63
|
+
throwStripeError("INVALID_CONFIGURATION", `Price ${stripePriceId} is unavailable on the platform account; destination charges require a platform-owned price.`);
|
|
64
|
+
}
|
|
53
65
|
}
|
|
54
66
|
}
|
|
55
67
|
// =============================================================================
|
|
@@ -85,7 +97,9 @@ export async function createCheckoutSession(stripe, component, ctx, opts) {
|
|
|
85
97
|
? {
|
|
86
98
|
bsChargeType: "separate",
|
|
87
99
|
bsSplit: JSON.stringify(opts.split),
|
|
88
|
-
...(opts.feeConfig
|
|
100
|
+
...(opts.feeConfig
|
|
101
|
+
? { bsFeeConfig: JSON.stringify(opts.feeConfig) }
|
|
102
|
+
: {}),
|
|
89
103
|
}
|
|
90
104
|
: {};
|
|
91
105
|
// Strip the reserved `bs*` namespace from caller metadata so it can't forge
|
|
@@ -216,7 +230,7 @@ export async function createCheckoutSession(stripe, component, ctx, opts) {
|
|
|
216
230
|
const finalPriceId = finalSessionParams.line_items?.[0]?.price;
|
|
217
231
|
if ((isSeparate || feeRow.chargeType === "destination") &&
|
|
218
232
|
typeof finalPriceId === "string") {
|
|
219
|
-
await assertPlatformPrice(component, ctx, finalPriceId);
|
|
233
|
+
await assertPlatformPrice(stripe, component, ctx, finalPriceId);
|
|
220
234
|
}
|
|
221
235
|
const session = await stripe.checkout.sessions.create(finalSessionParams);
|
|
222
236
|
await runMutationOrThrow(ctx, componentRef(component, "billing/mutations/upsertCheckoutSession"), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/client/billing/checkout.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM1E,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,MAAmC;IAMvD,MAAM,IAAI,GAAG,CAAC,CAAU,EAAsB,EAAE,CAC9C,OAAO,CAAC,KAAK,QAAQ;QACnB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAE,CAAwC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CACtB,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,WAAW,CACrD,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;QAC9D,OAAO;YACL,UAAU,EAAE,aAAa;YACzB,oBAAoB,EAAE,WAAW;YACjC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CACtB,MAAM,CAAC,mBAAmB,EAAE,aAAa,EAAE,WAAW,CACvD,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;QAC/D,OAAO;YACL,UAAU,EAAE,aAAa;YACzB,oBAAoB,EAAE,WAAW;YACjC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAAoB,EACpB,GAAW,EACX,aAAqB;IAErB,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAC/B,YAAY,CAAC,SAAS,EAAE,qCAAqC,CAAC,EAC9D,EAAE,aAAa,EAAE,CAClB,CAAwC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,eAAe;QAAE,OAAO;IAEpC,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CACjC,YAAY,CAAC,SAAS,EAAE,uCAAuC,CAAC,EAChE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAC3C,CAAkC,CAAC;IAEpC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/client/billing/checkout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
2
|
+
/** Recover routing from Stripe for both webhook delivery and explicit syncs. */
|
|
3
|
+
export declare function subscriptionRouting(subscription: Stripe.Subscription): {
|
|
4
|
+
chargeType: "destination";
|
|
5
|
+
destinationAccountId: string;
|
|
6
|
+
applicationFeePercent: number | undefined;
|
|
7
|
+
splitRecipients?: undefined;
|
|
8
|
+
} | {
|
|
9
|
+
destinationAccountId?: undefined;
|
|
10
|
+
applicationFeePercent?: undefined;
|
|
11
|
+
chargeType: "separate";
|
|
12
|
+
splitRecipients: {
|
|
13
|
+
amount?: number | undefined;
|
|
14
|
+
destinationAccountId: string;
|
|
15
|
+
percent?: number | undefined;
|
|
16
|
+
role: "affiliate" | "other" | "store";
|
|
17
|
+
}[];
|
|
18
|
+
} | {
|
|
19
|
+
destinationAccountId?: undefined;
|
|
20
|
+
applicationFeePercent?: undefined;
|
|
21
|
+
chargeType?: undefined;
|
|
22
|
+
splitRecipients?: undefined;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=subscriptionRouting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptionRouting.d.ts","sourceRoot":"","sources":["../../../src/client/billing/subscriptionRouting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY;gBAInD,aAAa;;;;;;;gBAWN,UAAU;;;;;;;;;;;;EAGlC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { validateSplit } from "../core/fees.js";
|
|
2
|
+
/** Recover routing from Stripe for both webhook delivery and explicit syncs. */
|
|
3
|
+
export function subscriptionRouting(subscription) {
|
|
4
|
+
const destination = subscription.transfer_data?.destination;
|
|
5
|
+
if (destination) {
|
|
6
|
+
return {
|
|
7
|
+
chargeType: "destination",
|
|
8
|
+
destinationAccountId: typeof destination === "string" ? destination : destination.id,
|
|
9
|
+
applicationFeePercent: subscription.application_fee_percent ?? undefined,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (subscription.metadata?.bsChargeType === "separate") {
|
|
13
|
+
const split = JSON.parse(subscription.metadata.bsSplit ?? "null");
|
|
14
|
+
validateSplit(split);
|
|
15
|
+
return { chargeType: "separate", splitRecipients: split };
|
|
16
|
+
}
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=subscriptionRouting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptionRouting.js","sourceRoot":"","sources":["../../../src/client/billing/subscriptionRouting.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,YAAiC;IACnE,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,UAAU,EAAE,aAAsB;YAClC,oBAAoB,EAClB,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;YAChE,qBAAqB,EAAE,YAAY,CAAC,uBAAuB,IAAI,SAAS;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,YAAY,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CACpB,CAAC;QACtB,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,EAAE,UAAU,EAAE,UAAmB,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -21,6 +21,8 @@ export declare function createSubscription(stripe: Stripe, component: Component,
|
|
|
21
21
|
split?: SplitRecipient[];
|
|
22
22
|
feeConfig?: PlatformFeeConfig;
|
|
23
23
|
trialDays?: number;
|
|
24
|
+
/** Attached payment method to use for this subscription. */
|
|
25
|
+
defaultPaymentMethod?: string;
|
|
24
26
|
/** Platform-default statement-descriptor suffix (BTS-32); see checkout.ts. */
|
|
25
27
|
defaultStatementDescriptorSuffix?: string;
|
|
26
28
|
metadata?: Record<string, string>;
|
|
@@ -54,8 +56,8 @@ export declare function updateSubscriptionQuantity(stripe: Stripe, _ctx: RunCtx,
|
|
|
54
56
|
success: boolean;
|
|
55
57
|
}>;
|
|
56
58
|
/**
|
|
57
|
-
* Pause collection on a subscription. Sets `pause_collection`
|
|
58
|
-
* the subscription
|
|
59
|
+
* Pause collection on a subscription. Sets `pause_collection` without changing
|
|
60
|
+
* the subscription status; the component DB is updated when the
|
|
59
61
|
* resulting `customer.subscription.updated` webhook arrives.
|
|
60
62
|
*/
|
|
61
63
|
export declare function pauseSubscription(stripe: Stripe, _ctx: RunCtx, opts: {
|
|
@@ -66,10 +68,8 @@ export declare function pauseSubscription(stripe: Stripe, _ctx: RunCtx, opts: {
|
|
|
66
68
|
success: boolean;
|
|
67
69
|
}>;
|
|
68
70
|
/**
|
|
69
|
-
* Resume
|
|
70
|
-
*
|
|
71
|
-
* (`Emptyable<PauseCollection>`) clears the field and Stripe returns the
|
|
72
|
-
* subscription to its prior active status.
|
|
71
|
+
* Resume payment collection by clearing `pause_collection`. The empty-string
|
|
72
|
+
* sentinel clears the field without changing the subscription status.
|
|
73
73
|
*/
|
|
74
74
|
export declare function resumeSubscription(stripe: Stripe, _ctx: RunCtx, opts: {
|
|
75
75
|
stripeSubscriptionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../src/client/billing/subscriptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../src/client/billing/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { subscriptionRouting } from "./subscriptionRouting.js";
|
|
2
|
+
import { resolveOwnerAccount } from "../utils/owner.js";
|
|
1
3
|
import { isPercentOnlyFee, validateSplit } from "../core/fees.js";
|
|
2
4
|
import { epochToIso, runMutationOrThrow, stripReservedMetadata, } from "../helpers.js";
|
|
3
5
|
import { throwStripeError } from "../errors.js";
|
|
@@ -64,6 +66,9 @@ export async function createSubscription(stripe, component, ctx, opts) {
|
|
|
64
66
|
}
|
|
65
67
|
const params = {
|
|
66
68
|
customer_account: opts.customerAccount,
|
|
69
|
+
...(opts.defaultPaymentMethod
|
|
70
|
+
? { default_payment_method: opts.defaultPaymentMethod }
|
|
71
|
+
: {}),
|
|
67
72
|
items: [{ price: opts.stripePriceId }],
|
|
68
73
|
metadata,
|
|
69
74
|
};
|
|
@@ -78,7 +83,9 @@ export async function createSubscription(stripe, component, ctx, opts) {
|
|
|
78
83
|
...metadata,
|
|
79
84
|
bsChargeType: "separate",
|
|
80
85
|
bsSplit: JSON.stringify(opts.split),
|
|
81
|
-
...(opts.feeConfig
|
|
86
|
+
...(opts.feeConfig
|
|
87
|
+
? { bsFeeConfig: JSON.stringify(opts.feeConfig) }
|
|
88
|
+
: {}),
|
|
82
89
|
};
|
|
83
90
|
feeRow.chargeType = "separate";
|
|
84
91
|
feeRow.splitRecipients = opts.split;
|
|
@@ -111,13 +118,27 @@ export async function createSubscription(stripe, component, ctx, opts) {
|
|
|
111
118
|
? { idempotencyKey: opts.idempotencyKey }
|
|
112
119
|
: undefined;
|
|
113
120
|
const sub = await callStripe("Failed to create subscription", () => stripe.subscriptions.create(params, requestOpts));
|
|
121
|
+
// Stripe 23 permits future status strings; our ledger accepts only these
|
|
122
|
+
// known statuses. Reject an unknown value before attempting to persist it.
|
|
123
|
+
const isKnownStatus = (value) => value === "active" ||
|
|
124
|
+
value === "canceled" ||
|
|
125
|
+
value === "incomplete" ||
|
|
126
|
+
value === "incomplete_expired" ||
|
|
127
|
+
value === "past_due" ||
|
|
128
|
+
value === "paused" ||
|
|
129
|
+
value === "trialing" ||
|
|
130
|
+
value === "unpaid";
|
|
131
|
+
const status = sub.status;
|
|
132
|
+
if (!isKnownStatus(status)) {
|
|
133
|
+
throwStripeError("STRIPE_API_ERROR", `Unsupported subscription status: ${status}`);
|
|
134
|
+
}
|
|
114
135
|
const firstItem = sub.items?.data?.[0];
|
|
115
136
|
await runMutationOrThrow(ctx, componentRef(component, "billing/mutations/upsertSubscription"), {
|
|
116
137
|
stripeSubscriptionId: sub.id,
|
|
117
138
|
accountId: opts.customerAccount,
|
|
118
139
|
userId: opts.userId,
|
|
119
140
|
orgId: opts.orgId,
|
|
120
|
-
status
|
|
141
|
+
status,
|
|
121
142
|
priceId: firstItem?.price?.id ?? opts.stripePriceId,
|
|
122
143
|
quantity: firstItem?.quantity ?? undefined,
|
|
123
144
|
currentPeriodStart: epochToIso(firstItem?.current_period_start ?? undefined),
|
|
@@ -130,7 +151,7 @@ export async function createSubscription(stripe, component, ctx, opts) {
|
|
|
130
151
|
...feeRow,
|
|
131
152
|
metadata: sub.metadata ?? undefined,
|
|
132
153
|
});
|
|
133
|
-
return { stripeSubscriptionId: sub.id, status
|
|
154
|
+
return { stripeSubscriptionId: sub.id, status };
|
|
134
155
|
}
|
|
135
156
|
export async function getSubscription(component, ctx, opts) {
|
|
136
157
|
return (await ctx.runQuery(componentRef(component, "billing/queries/getSubscription"), opts));
|
|
@@ -165,8 +186,8 @@ export async function updateSubscriptionQuantity(stripe, _ctx, opts) {
|
|
|
165
186
|
return { success: true };
|
|
166
187
|
}
|
|
167
188
|
/**
|
|
168
|
-
* Pause collection on a subscription. Sets `pause_collection`
|
|
169
|
-
* the subscription
|
|
189
|
+
* Pause collection on a subscription. Sets `pause_collection` without changing
|
|
190
|
+
* the subscription status; the component DB is updated when the
|
|
170
191
|
* resulting `customer.subscription.updated` webhook arrives.
|
|
171
192
|
*/
|
|
172
193
|
export async function pauseSubscription(stripe, _ctx, opts) {
|
|
@@ -179,10 +200,8 @@ export async function pauseSubscription(stripe, _ctx, opts) {
|
|
|
179
200
|
return { success: true };
|
|
180
201
|
}
|
|
181
202
|
/**
|
|
182
|
-
* Resume
|
|
183
|
-
*
|
|
184
|
-
* (`Emptyable<PauseCollection>`) clears the field and Stripe returns the
|
|
185
|
-
* subscription to its prior active status.
|
|
203
|
+
* Resume payment collection by clearing `pause_collection`. The empty-string
|
|
204
|
+
* sentinel clears the field without changing the subscription status.
|
|
186
205
|
*/
|
|
187
206
|
export async function resumeSubscription(stripe, _ctx, opts) {
|
|
188
207
|
await callStripe("Failed to resume subscription", () => stripe.subscriptions.update(opts.stripeSubscriptionId, {
|
|
@@ -294,9 +313,8 @@ export async function syncAllSubscriptions(stripe, component, ctx) {
|
|
|
294
313
|
const periodEnd = firstItem?.current_period_end ?? undefined;
|
|
295
314
|
await runMutationOrThrow(ctx, componentRef(component, "billing/mutations/upsertSubscription"), {
|
|
296
315
|
stripeSubscriptionId: sub.id,
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
: (sub.customer?.id ?? ""),
|
|
316
|
+
...subscriptionRouting(sub),
|
|
317
|
+
accountId: resolveOwnerAccount(sub) ?? "",
|
|
300
318
|
userId,
|
|
301
319
|
orgId,
|
|
302
320
|
status: sub.status,
|
|
@@ -305,6 +323,7 @@ export async function syncAllSubscriptions(stripe, component, ctx) {
|
|
|
305
323
|
currentPeriodStart: epochToIso(periodStart),
|
|
306
324
|
currentPeriodEnd: epochToIso(periodEnd),
|
|
307
325
|
cancelAtPeriodEnd: sub.cancel_at_period_end,
|
|
326
|
+
isCollectionPaused: !!sub.pause_collection,
|
|
308
327
|
canceledAt: epochToIso(sub.canceled_at),
|
|
309
328
|
isTrialing: sub.status === "trialing",
|
|
310
329
|
trialStart: epochToIso(sub.trial_start),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../src/client/billing/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../src/client/billing/subscriptions.ts"],"names":[],"mappings":"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"}
|