Repository navigation
build: drop @stripe/stripe-js, redirect to the checkout session URL - #258
Merged
Merged
Conversation
Что: пакет @stripe/stripe-js удалён из apps/dokploy; онбординг (plan-step.tsx) после createCheckoutSession переходит на session.url, как это уже делает страница биллинга. Охранный тест stripe-script-on-demand.test.ts теперь требует редиректа по URL и отсутствия любого импорта пакета и самой зависимости. Раздел CLAUDE.md про Stripe в браузере переписан. Там же записано, почему серверный пакет stripe остаётся на 17.2.1.
Зачем: в 10.x убрали redirectToCheckout, единственный вызов, которым пользовался форк (typecheck на 10.2.1: Property 'redirectToCheckout' does not exist on type 'Stripe'). Сервер и так возвращает { sessionId, url }, а переход по url не зависит от версии Stripe.js. Скрипт js.stripe.com браузер больше не загружает вообще.
Риски: код выполняется только в облачной версии (IS_CLOUD), на self-hosted панели шаг с тарифом не показывается. Если Stripe вернёт сессию без url, пользователь увидит тот же тост "Error starting checkout", что и при любой ошибке. NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY остаётся в Dockerfile.cloud и deploy.yml неиспользуемым: токен не может менять workflows.
Серверный stripe 23.1.0 не взят намеренно: его типы принимают только apiVersion 2026-10-28.endive, а Invoice.subscription переехал в parent.subscription_details (5 ошибок типов в 4 файлах); обновление требует переноса кода на два года изменений объектов Stripe и одновременной смены версии API у вебхука в аккаунте Stripe, без тестовых ключей и без ни разу не пройденной настоящей оплаты.
Проверки на Linux, Bun 1.4.4, Node 26.13.0: bun install, bun audit --audit-level=moderate, server:build и typecheck проходят; unit-тесты: 6128 прошли, 2 упали, и каждый из них так же падает на базовой ветке (backup-files под нагрузкой, service-webhook-secret обращается к настоящему Bitbucket API).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Зачем
В
@stripe/stripe-js10.x убралиredirectToCheckout. Это единственный вызов, которым пользовался форк (в онбординге). Сервер и так отдаёт{ sessionId, url }, а страница биллинга уже переходит поsession.url. Поэтому вместо обновления браузерного SDK онбординг переведён на тот же редирект, а пакет удалён: скриптjs.stripe.comбраузер больше не загружает вообще.Что изменилось
@stripe/stripe-jsудалён изapps/dokploy/package.jsonиbun.lock.components/dashboard/onboarding/steps/plan-step.tsx:loadStripeиredirectToCheckoutзаменены наwindow.location.href = session.url(еслиurlнет, прежний тост «Error starting checkout»).__test__/billing/stripe-script-on-demand.test.ts: тест проверяет редирект по URL, отсутствие любого импорта пакета в клиентском коде и отсутствие зависимости.CLAUDE.md: раздел «Stripe in the browser» переписан; в разделе Dependencies записано, почему серверныйstripeостаётся на 17.2.1.Серверный stripe 23 не взят
На VM проверено:
stripe23.1.0 даёт 5 ошибок типов в 4 файлах. Его типы принимают толькоapiVersion: "2026-10-28.endive"(форк задаёт2024-09-30.acacia), аInvoice.subscriptionпереехал вparent.subscription_details. Обновление означает перенос кода на два года изменений объектов Stripe и одновременную смену версии API у вебхука в аккаунте Stripe. Код выполняется только в облачной версии (IS_CLOUD), тестовых ключей нет, настоящая оплата ни разу не проходила, поэтому я не стал менять поведение биллинга вслепую.Проверки
Linux, Bun 1.4.4, Node 26.13.0:
bun install,bun audit --audit-level=moderate,bun run server:build,bun run typecheckпроходят.backup-filesиservice-webhook-secret > Bitbucket.Что проверить вручную на dev
🤖 Generated with Claude Code