Skip to content

build: drop @stripe/stripe-js, redirect to the checkout session URL - #258

Merged
agentHits merged 1 commit into
AgentHits-Devfrom
build/drop-stripe-js
Nov 11, 2026
Merged

agentHits merged 1 commit into
AgentHits-Devfrom
build/drop-stripe-js

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

В @stripe/stripe-js 10.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 проверено: stripe 23.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 проходят.
  • Unit-тесты: 6128 прошли, 2 упали. Оба так же падают на базовой ветке: backup-files и service-webhook-secret > Bitbucket.

Что проверить вручную на dev

  • Только облачная версия: кнопка Subscribe в онбординге ведёт на страницу оплаты Stripe.
  • На self-hosted панели шаг с тарифом не показывается, проверять нечего.

🤖 Generated with Claude Code

Что: пакет @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>
@agentHits
agentHits merged commit 110768e into AgentHits-Dev Nov 11, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant