Skip to main content

max / makenotwork

build(server): swap async-stripe 0.37.3 → 1.0.0-rc.5 sub-crates rc.5 splits the SDK across per-domain crates and gates Deserialize behind a feature flag. Webhook signature verification is no longer provided by the SDK (kept local impl in payments::webhooks::verify_signature). cargo check now reports 58 errors across the codebase — categories: - typed imports moved to sub-crates (stripe::CheckoutSession → stripe_checkout::CheckoutSession) - Request struct shapes changed (CreateCheckoutSession, CreateAccount, etc) - Connect account header passed per-request instead of via Client::with_stripe_account - Event/EventObject/EventType replaced (write our own thin envelope) - Currency moved to stripe_types This commit is intentionally non-compiling — Phase 2 of the migration. See server/docs/migration_stripe_rc5.md for the resume plan.
Author: Max J. <87768334+MaxJMath@users.noreply.github.com> · 2026-05-16 23:18 UTC
Commit: 12a3512116bdc037afbee80435e69fc90f849bc9
Parent: d107447
1 file changed, +15 insertions, -2 deletions
@@ -115,8 +115,21 @@ semver = "1"
115 115 # S3 Storage
116 116 s3-storage = { path = "../shared/s3-storage" }
117 117
118 - # Stripe Payments
119 - async-stripe = { version = "0.37.3", features = ["runtime-tokio-hyper", "checkout", "connect", "billing"] }
118 + # Stripe Payments — async-stripe 1.0.0-rc.5 (split into sub-crates).
119 + # The umbrella `async-stripe` provides the HTTP client; resource types live in
120 + # per-domain sub-crates. The `deserialize` feature on each resource crate is
121 + # required to derive `serde::Deserialize` on Subscription, Invoice, etc — we
122 + # parse them from webhook payloads ourselves (no built-in webhook helper in
123 + # rc.5; see `payments::webhooks::verify_signature` for our HMAC check).
124 + async-stripe = { version = "1.0.0-rc.5", features = ["default-tls"] }
125 + async-stripe-shared = { version = "1.0.0-rc.5", features = ["deserialize"] }
126 + async-stripe-billing = { version = "1.0.0-rc.5", features = ["deserialize"] }
127 + async-stripe-checkout = { version = "1.0.0-rc.5", features = ["deserialize"] }
128 + async-stripe-connect = { version = "1.0.0-rc.5", features = ["deserialize"] }
129 + async-stripe-core = { version = "1.0.0-rc.5", features = ["deserialize"] }
130 + async-stripe-payment = { version = "1.0.0-rc.5", features = ["deserialize"] }
131 + async-stripe-product = { version = "1.0.0-rc.5", features = ["deserialize"] }
132 + async-stripe-types = { version = "1.0.0-rc.5", features = ["deserialize"] }
120 133 reqwest = { version = "0.12", features = ["json", "cookies"] }
121 134 urlencoding = "2.1.3"
122 135