@synteq/cli 0.2.0 → 1.1.2
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/dist/api/client.d.ts +362 -5
- package/dist/api/client.js +559 -44
- package/dist/api/client.js.map +1 -1
- package/dist/api/factory.js +5 -2
- package/dist/api/factory.js.map +1 -1
- package/dist/api/types.d.ts +892 -3
- package/dist/apps-support/deploy.d.ts +197 -0
- package/dist/apps-support/deploy.js +639 -0
- package/dist/apps-support/deploy.js.map +1 -0
- package/dist/apps-support/dotenv.d.ts +67 -0
- package/dist/apps-support/dotenv.js +136 -0
- package/dist/apps-support/dotenv.js.map +1 -0
- package/dist/apps-support/env-rollout.d.ts +18 -0
- package/dist/apps-support/env-rollout.js +52 -0
- package/dist/apps-support/env-rollout.js.map +1 -0
- package/dist/apps-support/git.d.ts +14 -0
- package/dist/apps-support/git.js +25 -0
- package/dist/apps-support/git.js.map +1 -0
- package/dist/apps-support/link.d.ts +25 -0
- package/dist/apps-support/link.js +39 -0
- package/dist/apps-support/link.js.map +1 -0
- package/dist/apps-support/log-stream.d.ts +25 -0
- package/dist/apps-support/log-stream.js +85 -0
- package/dist/apps-support/log-stream.js.map +1 -0
- package/dist/apps-support/paid-app.d.ts +64 -0
- package/dist/apps-support/paid-app.js +195 -0
- package/dist/apps-support/paid-app.js.map +1 -0
- package/dist/apps-support/plans.d.ts +44 -0
- package/dist/apps-support/plans.js +43 -0
- package/dist/apps-support/plans.js.map +1 -0
- package/dist/apps-support/resolve.d.ts +10 -0
- package/dist/apps-support/resolve.js +53 -0
- package/dist/apps-support/resolve.js.map +1 -0
- package/dist/apps-support/time.d.ts +20 -0
- package/dist/apps-support/time.js +82 -0
- package/dist/apps-support/time.js.map +1 -0
- package/dist/auth/scope.js +4 -0
- package/dist/auth/scope.js.map +1 -1
- package/dist/auth/tokens.d.ts +3 -0
- package/dist/auth/tokens.js +6 -4
- package/dist/auth/tokens.js.map +1 -1
- package/dist/base/command.d.ts +35 -0
- package/dist/base/command.js +87 -4
- package/dist/base/command.js.map +1 -1
- package/dist/commands/agents.d.ts +10 -0
- package/dist/commands/agents.js +53 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/api.d.ts +0 -1
- package/dist/commands/api.js +6 -5
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/app/deployment/list.d.ts +14 -0
- package/dist/commands/app/deployment/list.js +45 -0
- package/dist/commands/app/deployment/list.js.map +1 -0
- package/dist/commands/app/deployment/rollback.d.ts +18 -0
- package/dist/commands/app/deployment/rollback.js +57 -0
- package/dist/commands/app/deployment/rollback.js.map +1 -0
- package/dist/commands/app/deployment/show.d.ts +26 -0
- package/dist/commands/app/deployment/show.js +98 -0
- package/dist/commands/app/deployment/show.js.map +1 -0
- package/dist/commands/app/domain/add.d.ts +17 -0
- package/dist/commands/app/domain/add.js +59 -0
- package/dist/commands/app/domain/add.js.map +1 -0
- package/dist/commands/app/domain/list.d.ts +14 -0
- package/dist/commands/app/domain/list.js +42 -0
- package/dist/commands/app/domain/list.js.map +1 -0
- package/dist/commands/app/domain/remove.d.ts +16 -0
- package/dist/commands/app/domain/remove.js +51 -0
- package/dist/commands/app/domain/remove.js.map +1 -0
- package/dist/commands/app/domain/verify.d.ts +15 -0
- package/dist/commands/app/domain/verify.js +39 -0
- package/dist/commands/app/domain/verify.js.map +1 -0
- package/dist/commands/app/env/add.d.ts +22 -0
- package/dist/commands/app/env/add.js +103 -0
- package/dist/commands/app/env/add.js.map +1 -0
- package/dist/commands/app/env/list.d.ts +17 -0
- package/dist/commands/app/env/list.js +40 -0
- package/dist/commands/app/env/list.js.map +1 -0
- package/dist/commands/app/env/reveal.d.ts +17 -0
- package/dist/commands/app/env/reveal.js +40 -0
- package/dist/commands/app/env/reveal.js.map +1 -0
- package/dist/commands/app/env/rm.d.ts +16 -0
- package/dist/commands/app/env/rm.js +48 -0
- package/dist/commands/app/env/rm.js.map +1 -0
- package/dist/commands/app/health.d.ts +14 -0
- package/dist/commands/app/health.js +40 -0
- package/dist/commands/app/health.js.map +1 -0
- package/dist/commands/app/index.d.ts +6 -0
- package/dist/commands/app/index.js +7 -0
- package/dist/commands/app/index.js.map +1 -0
- package/dist/commands/app/link.d.ts +22 -0
- package/dist/commands/app/link.js +31 -0
- package/dist/commands/app/link.js.map +1 -0
- package/dist/commands/app/logs.d.ts +25 -0
- package/dist/commands/app/logs.js +121 -0
- package/dist/commands/app/logs.js.map +1 -0
- package/dist/commands/app/metrics.d.ts +21 -0
- package/dist/commands/app/metrics.js +123 -0
- package/dist/commands/app/metrics.js.map +1 -0
- package/dist/commands/app/plan/change.d.ts +18 -0
- package/dist/commands/app/plan/change.js +79 -0
- package/dist/commands/app/plan/change.js.map +1 -0
- package/dist/commands/app/plan/show.d.ts +14 -0
- package/dist/commands/app/plan/show.js +40 -0
- package/dist/commands/app/plan/show.js.map +1 -0
- package/dist/commands/app/settings/set.d.ts +25 -0
- package/dist/commands/app/settings/set.js +96 -0
- package/dist/commands/app/settings/set.js.map +1 -0
- package/dist/commands/app/settings/show.d.ts +14 -0
- package/dist/commands/app/settings/show.js +48 -0
- package/dist/commands/app/settings/show.js.map +1 -0
- package/dist/commands/app/unlink.d.ts +8 -0
- package/dist/commands/app/unlink.js +25 -0
- package/dist/commands/app/unlink.js.map +1 -0
- package/dist/commands/apps/create.d.ts +26 -0
- package/dist/commands/apps/create.js +91 -0
- package/dist/commands/apps/create.js.map +1 -0
- package/dist/commands/apps/list.d.ts +17 -0
- package/dist/commands/apps/list.js +56 -0
- package/dist/commands/apps/list.js.map +1 -0
- package/dist/commands/baremetal/activity.d.ts +14 -0
- package/dist/commands/baremetal/activity.js +53 -0
- package/dist/commands/baremetal/activity.js.map +1 -0
- package/dist/commands/baremetal/bandwidth.d.ts +10 -0
- package/dist/commands/baremetal/bandwidth.js +86 -0
- package/dist/commands/baremetal/bandwidth.js.map +1 -0
- package/dist/commands/baremetal/console.d.ts +20 -0
- package/dist/commands/baremetal/console.js +72 -0
- package/dist/commands/baremetal/console.js.map +1 -0
- package/dist/commands/baremetal/details.d.ts +11 -0
- package/dist/commands/baremetal/details.js +116 -0
- package/dist/commands/baremetal/details.js.map +1 -0
- package/dist/commands/baremetal/index.d.ts +5 -0
- package/dist/commands/baremetal/index.js +6 -0
- package/dist/commands/baremetal/index.js.map +1 -0
- package/dist/commands/baremetal/install-password.d.ts +14 -0
- package/dist/commands/baremetal/install-password.js +80 -0
- package/dist/commands/baremetal/install-password.js.map +1 -0
- package/dist/commands/baremetal/list.d.ts +11 -0
- package/dist/commands/baremetal/list.js +59 -0
- package/dist/commands/baremetal/list.js.map +1 -0
- package/dist/commands/baremetal/order.d.ts +34 -0
- package/dist/commands/baremetal/order.js +394 -0
- package/dist/commands/baremetal/order.js.map +1 -0
- package/dist/commands/baremetal/power.d.ts +18 -0
- package/dist/commands/baremetal/power.js +168 -0
- package/dist/commands/baremetal/power.js.map +1 -0
- package/dist/commands/baremetal/reinstall.d.ts +21 -0
- package/dist/commands/baremetal/reinstall.js +168 -0
- package/dist/commands/baremetal/reinstall.js.map +1 -0
- package/dist/commands/config/profile/add.d.ts +11 -0
- package/dist/commands/config/profile/add.js +51 -0
- package/dist/commands/config/profile/add.js.map +1 -0
- package/dist/commands/config/profile/list.d.ts +7 -0
- package/dist/commands/config/profile/list.js +29 -0
- package/dist/commands/config/profile/list.js.map +1 -0
- package/dist/commands/config/profile/remove.d.ts +11 -0
- package/dist/commands/config/profile/remove.js +35 -0
- package/dist/commands/config/profile/remove.js.map +1 -0
- package/dist/commands/config/profile/use.d.ts +10 -0
- package/dist/commands/config/profile/use.js +44 -0
- package/dist/commands/config/profile/use.js.map +1 -0
- package/dist/commands/config/show.js +4 -1
- package/dist/commands/config/show.js.map +1 -1
- package/dist/commands/credits/add.js +2 -2
- package/dist/commands/credits/add.js.map +1 -1
- package/dist/commands/credits/index.js +5 -1
- package/dist/commands/credits/index.js.map +1 -1
- package/dist/commands/deploy.d.ts +51 -0
- package/dist/commands/deploy.js +515 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/function/create.d.ts +29 -0
- package/dist/commands/function/create.js +113 -0
- package/dist/commands/function/create.js.map +1 -0
- package/dist/commands/function/credits/add.d.ts +29 -0
- package/dist/commands/function/credits/add.js +209 -0
- package/dist/commands/function/credits/add.js.map +1 -0
- package/dist/commands/function/credits/auto-reload.d.ts +27 -0
- package/dist/commands/function/credits/auto-reload.js +107 -0
- package/dist/commands/function/credits/auto-reload.js.map +1 -0
- package/dist/commands/function/credits/index.d.ts +22 -0
- package/dist/commands/function/credits/index.js +80 -0
- package/dist/commands/function/credits/index.js.map +1 -0
- package/dist/commands/function/cron/add.d.ts +19 -0
- package/dist/commands/function/cron/add.js +74 -0
- package/dist/commands/function/cron/add.js.map +1 -0
- package/dist/commands/function/cron/list.d.ts +12 -0
- package/dist/commands/function/cron/list.js +55 -0
- package/dist/commands/function/cron/list.js.map +1 -0
- package/dist/commands/function/cron/rm.d.ts +17 -0
- package/dist/commands/function/cron/rm.js +73 -0
- package/dist/commands/function/cron/rm.js.map +1 -0
- package/dist/commands/function/cron/run.d.ts +16 -0
- package/dist/commands/function/cron/run.js +59 -0
- package/dist/commands/function/cron/run.js.map +1 -0
- package/dist/commands/function/cron/update.d.ts +21 -0
- package/dist/commands/function/cron/update.js +87 -0
- package/dist/commands/function/cron/update.js.map +1 -0
- package/dist/commands/function/delete.d.ts +23 -0
- package/dist/commands/function/delete.js +90 -0
- package/dist/commands/function/delete.js.map +1 -0
- package/dist/commands/function/deploy.d.ts +64 -0
- package/dist/commands/function/deploy.js +616 -0
- package/dist/commands/function/deploy.js.map +1 -0
- package/dist/commands/function/env/list.d.ts +12 -0
- package/dist/commands/function/env/list.js +46 -0
- package/dist/commands/function/env/list.js.map +1 -0
- package/dist/commands/function/env/reveal.d.ts +21 -0
- package/dist/commands/function/env/reveal.js +54 -0
- package/dist/commands/function/env/reveal.js.map +1 -0
- package/dist/commands/function/env/rm.d.ts +17 -0
- package/dist/commands/function/env/rm.js +62 -0
- package/dist/commands/function/env/rm.js.map +1 -0
- package/dist/commands/function/env/set.d.ts +28 -0
- package/dist/commands/function/env/set.js +124 -0
- package/dist/commands/function/env/set.js.map +1 -0
- package/dist/commands/function/index.d.ts +14 -0
- package/dist/commands/function/index.js +11 -0
- package/dist/commands/function/index.js.map +1 -0
- package/dist/commands/function/init.d.ts +48 -0
- package/dist/commands/function/init.js +277 -0
- package/dist/commands/function/init.js.map +1 -0
- package/dist/commands/function/invoke.d.ts +29 -0
- package/dist/commands/function/invoke.js +138 -0
- package/dist/commands/function/invoke.js.map +1 -0
- package/dist/commands/function/link.d.ts +23 -0
- package/dist/commands/function/link.js +80 -0
- package/dist/commands/function/link.js.map +1 -0
- package/dist/commands/function/list.d.ts +16 -0
- package/dist/commands/function/list.js +55 -0
- package/dist/commands/function/list.js.map +1 -0
- package/dist/commands/function/logs.d.ts +29 -0
- package/dist/commands/function/logs.js +171 -0
- package/dist/commands/function/logs.js.map +1 -0
- package/dist/commands/function/pause.d.ts +19 -0
- package/dist/commands/function/pause.js +50 -0
- package/dist/commands/function/pause.js.map +1 -0
- package/dist/commands/function/releases.d.ts +15 -0
- package/dist/commands/function/releases.js +62 -0
- package/dist/commands/function/releases.js.map +1 -0
- package/dist/commands/function/resume.d.ts +16 -0
- package/dist/commands/function/resume.js +47 -0
- package/dist/commands/function/resume.js.map +1 -0
- package/dist/commands/function/rollback.d.ts +18 -0
- package/dist/commands/function/rollback.js +69 -0
- package/dist/commands/function/rollback.js.map +1 -0
- package/dist/commands/function/settings/set.d.ts +23 -0
- package/dist/commands/function/settings/set.js +119 -0
- package/dist/commands/function/settings/set.js.map +1 -0
- package/dist/commands/function/show.d.ts +15 -0
- package/dist/commands/function/show.js +80 -0
- package/dist/commands/function/show.js.map +1 -0
- package/dist/commands/function/unlink.d.ts +9 -0
- package/dist/commands/function/unlink.js +34 -0
- package/dist/commands/function/unlink.js.map +1 -0
- package/dist/commands/link.d.ts +82 -0
- package/dist/commands/link.js +532 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/login.js +9 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/order.js +3 -1
- package/dist/commands/order.js.map +1 -1
- package/dist/commands/payments/methods/delete.js +2 -2
- package/dist/commands/payments/methods/delete.js.map +1 -1
- package/dist/commands/resources.js +50 -7
- package/dist/commands/resources.js.map +1 -1
- package/dist/commands/status.d.ts +12 -0
- package/dist/commands/status.js +71 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/storage/detach.js +1 -1
- package/dist/commands/storage/detach.js.map +1 -1
- package/dist/commands/storage/list.js +6 -2
- package/dist/commands/storage/list.js.map +1 -1
- package/dist/commands/storage/order.d.ts +2 -0
- package/dist/commands/storage/order.js +100 -18
- package/dist/commands/storage/order.js.map +1 -1
- package/dist/commands/storage/resize.js +19 -6
- package/dist/commands/storage/resize.js.map +1 -1
- package/dist/commands/tickets/create.d.ts +2 -0
- package/dist/commands/tickets/create.js +40 -1
- package/dist/commands/tickets/create.js.map +1 -1
- package/dist/commands/tickets/download.d.ts +18 -0
- package/dist/commands/tickets/download.js +138 -0
- package/dist/commands/tickets/download.js.map +1 -0
- package/dist/commands/tickets/list.js +13 -7
- package/dist/commands/tickets/list.js.map +1 -1
- package/dist/commands/tickets/reply.d.ts +2 -0
- package/dist/commands/tickets/reply.js +33 -4
- package/dist/commands/tickets/reply.js.map +1 -1
- package/dist/commands/vds/order.js +72 -7
- package/dist/commands/vds/order.js.map +1 -1
- package/dist/commands/vps/console.js +14 -6
- package/dist/commands/vps/console.js.map +1 -1
- package/dist/commands/vps/details.js +7 -1
- package/dist/commands/vps/details.js.map +1 -1
- package/dist/commands/vps/ip/add.js +76 -9
- package/dist/commands/vps/ip/add.js.map +1 -1
- package/dist/commands/vps/list.js +13 -4
- package/dist/commands/vps/list.js.map +1 -1
- package/dist/commands/vps/order.d.ts +19 -0
- package/dist/commands/vps/order.js +179 -23
- package/dist/commands/vps/order.js.map +1 -1
- package/dist/commands/vps/power.js +2 -2
- package/dist/commands/vps/power.js.map +1 -1
- package/dist/commands/vps/reinstall.js +2 -2
- package/dist/commands/vps/reinstall.js.map +1 -1
- package/dist/commands/vps/resize.js +36 -13
- package/dist/commands/vps/resize.js.map +1 -1
- package/dist/commands/whoami.d.ts +5 -0
- package/dist/commands/whoami.js +8 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/config/paths.d.ts +1 -1
- package/dist/config/paths.js +6 -1
- package/dist/config/paths.js.map +1 -1
- package/dist/config/store.d.ts +58 -0
- package/dist/config/store.js +84 -2
- package/dist/config/store.js.map +1 -1
- package/dist/functions-support/credits.d.ts +64 -0
- package/dist/functions-support/credits.js +181 -0
- package/dist/functions-support/credits.js.map +1 -0
- package/dist/functions-support/cron.d.ts +17 -0
- package/dist/functions-support/cron.js +99 -0
- package/dist/functions-support/cron.js.map +1 -0
- package/dist/functions-support/env.d.ts +23 -0
- package/dist/functions-support/env.js +44 -0
- package/dist/functions-support/env.js.map +1 -0
- package/dist/functions-support/link.d.ts +25 -0
- package/dist/functions-support/link.js +51 -0
- package/dist/functions-support/link.js.map +1 -0
- package/dist/functions-support/poll.d.ts +40 -0
- package/dist/functions-support/poll.js +109 -0
- package/dist/functions-support/poll.js.map +1 -0
- package/dist/functions-support/resolve.d.ts +3 -0
- package/dist/functions-support/resolve.js +31 -0
- package/dist/functions-support/resolve.js.map +1 -0
- package/dist/functions-support/runtime.d.ts +30 -0
- package/dist/functions-support/runtime.js +52 -0
- package/dist/functions-support/runtime.js.map +1 -0
- package/dist/functions-support/source.d.ts +92 -0
- package/dist/functions-support/source.js +343 -0
- package/dist/functions-support/source.js.map +1 -0
- package/dist/help/scope-aware-help.js +10 -1
- package/dist/help/scope-aware-help.js.map +1 -1
- package/dist/tui/App.js +10 -25
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/Menu.d.ts +3 -1
- package/dist/tui/components/Menu.js +7 -3
- package/dist/tui/components/Menu.js.map +1 -1
- package/dist/tui/router.d.ts +1 -1
- package/dist/tui/router.js.map +1 -1
- package/dist/tui/screens/Billing.js +56 -4
- package/dist/tui/screens/Billing.js.map +1 -1
- package/dist/tui/screens/Dashboard.js +8 -7
- package/dist/tui/screens/Dashboard.js.map +1 -1
- package/dist/tui/screens/Deploy.d.ts +2 -0
- package/dist/tui/screens/Deploy.js +912 -0
- package/dist/tui/screens/Deploy.js.map +1 -0
- package/dist/tui/screens/Order.js +359 -26
- package/dist/tui/screens/Order.js.map +1 -1
- package/dist/tui/screens/Resources.js +273 -31
- package/dist/tui/screens/Resources.js.map +1 -1
- package/dist/tui/screens/Tickets.js +18 -6
- package/dist/tui/screens/Tickets.js.map +1 -1
- package/dist/tui/screens/deployPreset.d.ts +20 -0
- package/dist/tui/screens/deployPreset.js +11 -0
- package/dist/tui/screens/deployPreset.js.map +1 -0
- package/dist/tui/screens/resources/AppDetail.d.ts +7 -0
- package/dist/tui/screens/resources/AppDetail.js +810 -0
- package/dist/tui/screens/resources/AppDetail.js.map +1 -0
- package/dist/tui/screens/resources/FunctionDetail.d.ts +7 -0
- package/dist/tui/screens/resources/FunctionDetail.js +751 -0
- package/dist/tui/screens/resources/FunctionDetail.js.map +1 -0
- package/dist/ui/attach.d.ts +15 -0
- package/dist/ui/attach.js +63 -0
- package/dist/ui/attach.js.map +1 -0
- package/dist/ui/baremetal-resolve.d.ts +10 -0
- package/dist/ui/baremetal-resolve.js +50 -0
- package/dist/ui/baremetal-resolve.js.map +1 -0
- package/dist/ui/confirm.js +1 -1
- package/dist/ui/confirm.js.map +1 -1
- package/dist/ui/cycle.d.ts +66 -0
- package/dist/ui/cycle.js +96 -0
- package/dist/ui/cycle.js.map +1 -0
- package/dist/ui/deploy-ui.d.ts +75 -0
- package/dist/ui/deploy-ui.js +243 -0
- package/dist/ui/deploy-ui.js.map +1 -0
- package/dist/ui/order-result.d.ts +4 -0
- package/dist/ui/order-result.js +32 -0
- package/dist/ui/order-result.js.map +1 -0
- package/dist/ui/payment-gate.d.ts +26 -0
- package/dist/ui/payment-gate.js +70 -0
- package/dist/ui/payment-gate.js.map +1 -0
- package/dist/ui/payment.js +10 -3
- package/dist/ui/payment.js.map +1 -1
- package/dist/ui/portal.d.ts +1 -1
- package/dist/ui/portal.js +7 -2
- package/dist/ui/portal.js.map +1 -1
- package/dist/ui/project-resolve.d.ts +25 -0
- package/dist/ui/project-resolve.js +31 -0
- package/dist/ui/project-resolve.js.map +1 -0
- package/dist/ui/render-mode.d.ts +5 -0
- package/dist/ui/render-mode.js +1 -1
- package/dist/ui/render-mode.js.map +1 -1
- package/dist/ui/resource-detail.js +0 -3
- package/dist/ui/resource-detail.js.map +1 -1
- package/dist/ui/resource-resolve.d.ts +9 -2
- package/dist/ui/resource-resolve.js +11 -4
- package/dist/ui/resource-resolve.js.map +1 -1
- package/dist/ui/spinner.d.ts +10 -1
- package/dist/ui/spinner.js +12 -3
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/table.d.ts +7 -0
- package/dist/ui/table.js +11 -0
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tax.d.ts +10 -0
- package/dist/ui/tax.js +31 -0
- package/dist/ui/tax.js.map +1 -0
- package/dist/ui/ticket-resolve.d.ts +9 -1
- package/dist/ui/ticket-resolve.js +13 -2
- package/dist/ui/ticket-resolve.js.map +1 -1
- package/dist/ui/volume-resolve.js +4 -1
- package/dist/ui/volume-resolve.js.map +1 -1
- package/dist/ui/wait.d.ts +4 -0
- package/dist/ui/wait.js +7 -2
- package/dist/ui/wait.js.map +1 -1
- package/dist/ui/wizard.d.ts +2 -1
- package/dist/ui/wizard.js +1 -1
- package/dist/ui/wizard.js.map +1 -1
- package/dist/version-check-bin.js +2 -2
- package/dist/version-check-bin.js.map +1 -1
- package/dist/version-check.d.ts +5 -0
- package/dist/version-check.js +6 -1
- package/dist/version-check.js.map +1 -1
- package/package.json +53 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/apps-support/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turning a `.env` on the deploying machine into variables on the app or
|
|
3
|
+
* function — the one place a dotenv file becomes config. Deploys never pack
|
|
4
|
+
* it (`isDotenvName`), so without this the file is simply left behind.
|
|
5
|
+
*
|
|
6
|
+
* Two doors, both opt-in (a plain deploy never asks):
|
|
7
|
+
* - FIRST-TIME SETUP (the link walkthrough creating an app, a function's
|
|
8
|
+
* first-run create) finds `.env` at the source root and ASKS once,
|
|
9
|
+
* default No, listing the keys with secret values masked;
|
|
10
|
+
* - `--env-file <path>` imports that file with no question, in any mode.
|
|
11
|
+
*
|
|
12
|
+
* The file's own comments can set a row: `# scope=build kind=config` on the
|
|
13
|
+
* line above a var — the same convention the portal's Import reads
|
|
14
|
+
* (`parseDotenv` is a port of frontend/components/apps/EnvTab.tsx; keep the
|
|
15
|
+
* two in step). Without one, a var is a runtime secret.
|
|
16
|
+
*/
|
|
17
|
+
export type DotenvScope = "runtime" | "build" | "both";
|
|
18
|
+
export type DotenvKind = "secret" | "config";
|
|
19
|
+
export interface DotenvRow {
|
|
20
|
+
key: string;
|
|
21
|
+
value: string;
|
|
22
|
+
note?: string;
|
|
23
|
+
scope?: DotenvScope;
|
|
24
|
+
kind?: DotenvKind;
|
|
25
|
+
}
|
|
26
|
+
/** KEY=value lines. A `#` comment directly above a var becomes its note;
|
|
27
|
+
* `scope=runtime|build|both` and `kind=secret|config` inside that comment
|
|
28
|
+
* set the row and are dropped from the note. A blank line ends a
|
|
29
|
+
* comment's reach. */
|
|
30
|
+
export declare function parseDotenv(text: string): DotenvRow[];
|
|
31
|
+
/** How a value is shown before it is saved: a config value in full, a
|
|
32
|
+
* secret down to its last 4 characters (the same mask `env reveal` uses). */
|
|
33
|
+
export declare function displayValue(row: DotenvRow): string;
|
|
34
|
+
/** `.env` at the source root, or null. Only the bare `.env`: `.env.local`
|
|
35
|
+
* and friends are machine- or stage-specific and the "Not packed" line
|
|
36
|
+
* still names them. */
|
|
37
|
+
export declare function rootDotenv(dir: string): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* The question, on its own: list `.env`'s rows and ask. Returns the rows on
|
|
40
|
+
* a yes, `[]` when there is no file, nothing in it, or a no. For first-time
|
|
41
|
+
* setup only — a plain deploy never calls this.
|
|
42
|
+
*/
|
|
43
|
+
export declare function offerDotenv(opts: {
|
|
44
|
+
dir: string;
|
|
45
|
+
target: string;
|
|
46
|
+
log: (line: string) => void;
|
|
47
|
+
}): Promise<DotenvRow[]>;
|
|
48
|
+
export interface DotenvImportOptions {
|
|
49
|
+
/** Where the source is; `.env` is looked for here when `envFile` is unset. */
|
|
50
|
+
dir: string;
|
|
51
|
+
/** `--env-file`: import this file, no question asked (relative to cwd). */
|
|
52
|
+
envFile?: string;
|
|
53
|
+
/** First-time setup on a TTY — the only time `.env` is offered. */
|
|
54
|
+
interactive: boolean;
|
|
55
|
+
/** "app my-api" / "function my-fn": the prompt's object. */
|
|
56
|
+
target: string;
|
|
57
|
+
log: (line: string) => void;
|
|
58
|
+
/** Save one row. Called in file order; a throw aborts the caller. */
|
|
59
|
+
save: (row: DotenvRow) => Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `--env-file` imports its file outright; otherwise, during first-time setup
|
|
63
|
+
* only, `.env` is offered. Returns how many rows were saved (0 = nothing to
|
|
64
|
+
* do, declined, or empty). An explicit `--env-file` that doesn't exist or
|
|
65
|
+
* holds no variables is an error — the person asked for it by name.
|
|
66
|
+
*/
|
|
67
|
+
export declare function importDotenv(opts: DotenvImportOptions): Promise<number>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
2
|
+
import { basename, join, relative, resolve } from "node:path";
|
|
3
|
+
import { confirmAction } from "../ui/wizard.js";
|
|
4
|
+
import { dim, ok } from "../ui/glyphs.js";
|
|
5
|
+
const SCOPES = ["runtime", "build", "both"];
|
|
6
|
+
const KINDS = ["secret", "config"];
|
|
7
|
+
/** KEY=value lines. A `#` comment directly above a var becomes its note;
|
|
8
|
+
* `scope=runtime|build|both` and `kind=secret|config` inside that comment
|
|
9
|
+
* set the row and are dropped from the note. A blank line ends a
|
|
10
|
+
* comment's reach. */
|
|
11
|
+
export function parseDotenv(text) {
|
|
12
|
+
const out = [];
|
|
13
|
+
let comment = [];
|
|
14
|
+
for (const raw of text.split(/\r?\n/)) {
|
|
15
|
+
const line = raw.trim();
|
|
16
|
+
if (!line) {
|
|
17
|
+
comment = [];
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (line.startsWith("#")) {
|
|
21
|
+
comment.push(line.replace(/^#+\s?/, ""));
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const eq = line.indexOf("=");
|
|
25
|
+
if (eq <= 0) {
|
|
26
|
+
comment = [];
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const key = line.slice(0, eq).replace(/^export\s+/, "").trim();
|
|
30
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key))
|
|
31
|
+
continue;
|
|
32
|
+
let value = line.slice(eq + 1).trim();
|
|
33
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
34
|
+
value = value.slice(1, -1);
|
|
35
|
+
}
|
|
36
|
+
const row = { key, value };
|
|
37
|
+
if (comment.length) {
|
|
38
|
+
const rest = [];
|
|
39
|
+
for (const w of comment.join(" ").split(/\s+/)) {
|
|
40
|
+
const m = /^(scope|kind)=([a-z]+)$/i.exec(w);
|
|
41
|
+
if (m && m[1].toLowerCase() === "scope" && SCOPES.includes(m[2].toLowerCase()))
|
|
42
|
+
row.scope = m[2].toLowerCase();
|
|
43
|
+
else if (m && m[1].toLowerCase() === "kind" && KINDS.includes(m[2].toLowerCase()))
|
|
44
|
+
row.kind = m[2].toLowerCase();
|
|
45
|
+
else
|
|
46
|
+
rest.push(w);
|
|
47
|
+
}
|
|
48
|
+
const note = rest.join(" ").trim();
|
|
49
|
+
if (note)
|
|
50
|
+
row.note = note.slice(0, 500);
|
|
51
|
+
}
|
|
52
|
+
out.push(row);
|
|
53
|
+
comment = [];
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/** How a value is shown before it is saved: a config value in full, a
|
|
58
|
+
* secret down to its last 4 characters (the same mask `env reveal` uses). */
|
|
59
|
+
export function displayValue(row) {
|
|
60
|
+
if ((row.kind ?? "secret") === "config")
|
|
61
|
+
return row.value;
|
|
62
|
+
if (row.value.length <= 4)
|
|
63
|
+
return "••••";
|
|
64
|
+
return `${"•".repeat(Math.min(8, row.value.length - 4))}${row.value.slice(-4)}`;
|
|
65
|
+
}
|
|
66
|
+
/** `.env` at the source root, or null. Only the bare `.env`: `.env.local`
|
|
67
|
+
* and friends are machine- or stage-specific and the "Not packed" line
|
|
68
|
+
* still names them. */
|
|
69
|
+
export function rootDotenv(dir) {
|
|
70
|
+
const p = join(dir, ".env");
|
|
71
|
+
return existsSync(p) && statSync(p).isFile() ? p : null;
|
|
72
|
+
}
|
|
73
|
+
/** Where a `.env` is shown from: as typed-from-here when under cwd, else in
|
|
74
|
+
* full — a chain of ../ says nothing about which file this is. */
|
|
75
|
+
function shownPath(path) {
|
|
76
|
+
const rel = relative(process.cwd(), path);
|
|
77
|
+
return !rel ? basename(path) : rel.startsWith("..") ? path : rel;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The question, on its own: list `.env`'s rows and ask. Returns the rows on
|
|
81
|
+
* a yes, `[]` when there is no file, nothing in it, or a no. For first-time
|
|
82
|
+
* setup only — a plain deploy never calls this.
|
|
83
|
+
*/
|
|
84
|
+
export async function offerDotenv(opts) {
|
|
85
|
+
const path = rootDotenv(opts.dir);
|
|
86
|
+
if (!path)
|
|
87
|
+
return [];
|
|
88
|
+
const rows = parseDotenv(readFileSync(path, "utf8"));
|
|
89
|
+
if (rows.length === 0)
|
|
90
|
+
return [];
|
|
91
|
+
const shown = shownPath(path);
|
|
92
|
+
opts.log("");
|
|
93
|
+
opts.log(`${shown} has ${rows.length} variable${rows.length === 1 ? "" : "s"}:`);
|
|
94
|
+
for (const r of rows) {
|
|
95
|
+
const meta = [r.kind ?? "secret", r.scope ?? "runtime"].join(" · ");
|
|
96
|
+
opts.log(` ${r.key}=${displayValue(r)} ${dim(`(${meta})`)}`);
|
|
97
|
+
}
|
|
98
|
+
const yes = await confirmAction(`Add them to ${opts.target} from ${shown}?`, false);
|
|
99
|
+
if (!yes) {
|
|
100
|
+
opts.log(dim(` Skipped — \`--env-file ${shown}\` on a deploy imports it.`));
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
return rows;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* `--env-file` imports its file outright; otherwise, during first-time setup
|
|
107
|
+
* only, `.env` is offered. Returns how many rows were saved (0 = nothing to
|
|
108
|
+
* do, declined, or empty). An explicit `--env-file` that doesn't exist or
|
|
109
|
+
* holds no variables is an error — the person asked for it by name.
|
|
110
|
+
*/
|
|
111
|
+
export async function importDotenv(opts) {
|
|
112
|
+
let rows;
|
|
113
|
+
let shown;
|
|
114
|
+
if (opts.envFile !== undefined) {
|
|
115
|
+
const path = resolve(opts.envFile);
|
|
116
|
+
if (!(existsSync(path) && statSync(path).isFile()))
|
|
117
|
+
throw new Error(`--env-file: ${path} is not a file.`);
|
|
118
|
+
shown = shownPath(path);
|
|
119
|
+
rows = parseDotenv(readFileSync(path, "utf8"));
|
|
120
|
+
if (rows.length === 0)
|
|
121
|
+
throw new Error(`--env-file: no KEY=VALUE lines in ${shown}.`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
if (!opts.interactive)
|
|
125
|
+
return 0;
|
|
126
|
+
rows = await offerDotenv(opts);
|
|
127
|
+
if (rows.length === 0)
|
|
128
|
+
return 0;
|
|
129
|
+
shown = shownPath(rootDotenv(opts.dir));
|
|
130
|
+
}
|
|
131
|
+
for (const r of rows)
|
|
132
|
+
await opts.save(r);
|
|
133
|
+
opts.log(ok(`Set ${rows.length} variable${rows.length === 1 ? "" : "s"} on ${opts.target} from ${shown} — the next deploy picks them up.`));
|
|
134
|
+
return rows.length;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=dotenv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dotenv.js","sourceRoot":"","sources":["../../src/apps-support/dotenv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AA6B1C,MAAM,MAAM,GAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACpE,MAAM,KAAK,GAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE1D;;;uBAGuB;AACvB,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACpD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,GAAG,GAAc,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,IAAK,MAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBACnG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAiB,CAAC;qBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,IAAK,KAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBACtG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAgB,CAAC;;oBACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,YAAY,CAAC,GAAc;IACzC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IAC1D,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;wBAEwB;AACxB,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED;mEACmE;AACnE,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAkE;IAClG,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,eAAe,IAAI,CAAC,MAAM,SAAS,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;IACpF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,4BAA4B,KAAK,4BAA4B,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,IAAI,IAAiB,CAAC;IACtB,IAAI,KAAa,CAAC;IAClB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,iBAAiB,CAAC,CAAC;QAC1G,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,CAAC;QAChC,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAChC,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,SAAS,KAAK,mCAAmC,CAAC,CAAC,CAAC;IAC5I,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What happens after an env save (apps and functions alike). The portal
|
|
3
|
+
* auto-rolls a saved env out after a short quiet window (services/apps/
|
|
4
|
+
* env_rollout); `none` opts out (the change waits for the next deploy or
|
|
5
|
+
* "Roll out now"), `now` rolls at once on the same build, `deploy` runs a
|
|
6
|
+
* fresh build from this directory — the only way a build-scope var lands.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ROLLOUT_MODES: readonly ["auto", "now", "deploy", "none"];
|
|
9
|
+
export type RolloutMode = (typeof ROLLOUT_MODES)[number];
|
|
10
|
+
export declare const rolloutFlag: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
/** The PUT body's `rollout`: only auto / now leave the auto rollout armed
|
|
12
|
+
* (`now` replaces it at once); deploy / none hold it for the deploy. */
|
|
13
|
+
export declare function autoRollout(mode: RolloutMode): boolean;
|
|
14
|
+
/** Ask what to do after the save. `canDeploy` = this directory is linked to
|
|
15
|
+
* the target, so a build from cwd builds the right thing. */
|
|
16
|
+
export declare function pickRollout(scope: string, canDeploy: boolean): Promise<RolloutMode>;
|
|
17
|
+
/** One line on what happens next, for the human render. */
|
|
18
|
+
export declare function rolloutNote(mode: RolloutMode, deployCmd: string): string;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { pickFromCatalog } from "../ui/wizard.js";
|
|
3
|
+
/**
|
|
4
|
+
* What happens after an env save (apps and functions alike). The portal
|
|
5
|
+
* auto-rolls a saved env out after a short quiet window (services/apps/
|
|
6
|
+
* env_rollout); `none` opts out (the change waits for the next deploy or
|
|
7
|
+
* "Roll out now"), `now` rolls at once on the same build, `deploy` runs a
|
|
8
|
+
* fresh build from this directory — the only way a build-scope var lands.
|
|
9
|
+
*/
|
|
10
|
+
export const ROLLOUT_MODES = ["auto", "now", "deploy", "none"];
|
|
11
|
+
export const rolloutFlag = Flags.string({
|
|
12
|
+
options: [...ROLLOUT_MODES],
|
|
13
|
+
description: "After saving: auto (roll out after a ~2 min quiet window, the default), now (replace running instances with the new env, same build), deploy (new build from this directory, needed for build-scope vars; linked directory only), none (no rollout; applies on the next deploy).",
|
|
14
|
+
});
|
|
15
|
+
/** The PUT body's `rollout`: only auto / now leave the auto rollout armed
|
|
16
|
+
* (`now` replaces it at once); deploy / none hold it for the deploy. */
|
|
17
|
+
export function autoRollout(mode) {
|
|
18
|
+
return mode === "auto" || mode === "now";
|
|
19
|
+
}
|
|
20
|
+
/** Ask what to do after the save. `canDeploy` = this directory is linked to
|
|
21
|
+
* the target, so a build from cwd builds the right thing. */
|
|
22
|
+
export async function pickRollout(scope, canDeploy) {
|
|
23
|
+
const buildVar = scope === "build" || scope === "both";
|
|
24
|
+
const items = [
|
|
25
|
+
{ value: "auto", name: "Roll out automatically", description: "in ~2 min, once changes settle" },
|
|
26
|
+
{
|
|
27
|
+
value: "now",
|
|
28
|
+
name: "Restart now",
|
|
29
|
+
description: buildVar ? "same build, so build-time vars won't apply" : "replace running instances, same build",
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
if (canDeploy)
|
|
33
|
+
items.push({ value: "deploy", name: "New build", description: "deploy this directory" });
|
|
34
|
+
items.push({ value: "none", name: "Don't roll out", description: "applies on the next deploy" });
|
|
35
|
+
return pickFromCatalog("Roll out the change?", items, {
|
|
36
|
+
defaultValue: buildVar && canDeploy ? "deploy" : "auto",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** One line on what happens next, for the human render. */
|
|
40
|
+
export function rolloutNote(mode, deployCmd) {
|
|
41
|
+
switch (mode) {
|
|
42
|
+
case "auto":
|
|
43
|
+
return "Rolls out automatically in ~2 min (each further change restarts the wait).";
|
|
44
|
+
case "now":
|
|
45
|
+
return "Rolling out now: running instances are replaced with the new env.";
|
|
46
|
+
case "deploy":
|
|
47
|
+
return "Starting a new build…";
|
|
48
|
+
case "none":
|
|
49
|
+
return `Not rolled out. It applies on the next deploy (\`${deployCmd}\`) or "Roll out now" in the portal.`;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=env-rollout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-rollout.js","sourceRoot":"","sources":["../../src/apps-support/env-rollout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAGxE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC;IAC3B,WAAW,EACT,kRAAkR;CACrR,CAAC,CAAC;AAEH;yEACyE;AACzE,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC;AAC3C,CAAC;AAED;8DAC8D;AAC9D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,SAAkB;IACjE,MAAM,QAAQ,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC;IACvD,MAAM,KAAK,GAAiE;QAC1E,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,gCAAgC,EAAE;QAChG;YACE,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,uCAAuC;SAC/G;KACF,CAAC;IACF,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACxG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACjG,OAAO,eAAe,CAAC,sBAAsB,EAAE,KAAK,EAAE;QACpD,YAAY,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KACxD,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,SAAiB;IAC9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,4EAA4E,CAAC;QACtF,KAAK,KAAK;YACR,OAAO,mEAAmE,CAAC;QAC7E,KAAK,QAAQ;YACX,OAAO,uBAAuB,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,oDAAoD,SAAS,sCAAsC,CAAC;IAC/G,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The GitHub `owner/repo` behind a directory's `origin` remote, or null when
|
|
3
|
+
* the directory is not a git checkout, has no origin, or origin is not on
|
|
4
|
+
* github.com. Used to offer the matching app on `synteq link` and a bare
|
|
5
|
+
* `synteq deploy` — the link the web UI already knows about should not have
|
|
6
|
+
* to be picked from a list again.
|
|
7
|
+
*
|
|
8
|
+
* Accepts every shape git prints for a GitHub remote:
|
|
9
|
+
* git@github.com:owner/repo.git
|
|
10
|
+
* ssh://git@github.com/owner/repo.git
|
|
11
|
+
* https://github.com/owner/repo(.git)
|
|
12
|
+
*/
|
|
13
|
+
export declare function originGithubRepo(cwd: string): Promise<string | null>;
|
|
14
|
+
export declare function parseGithubRepo(url: string): string | null;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
/**
|
|
3
|
+
* The GitHub `owner/repo` behind a directory's `origin` remote, or null when
|
|
4
|
+
* the directory is not a git checkout, has no origin, or origin is not on
|
|
5
|
+
* github.com. Used to offer the matching app on `synteq link` and a bare
|
|
6
|
+
* `synteq deploy` — the link the web UI already knows about should not have
|
|
7
|
+
* to be picked from a list again.
|
|
8
|
+
*
|
|
9
|
+
* Accepts every shape git prints for a GitHub remote:
|
|
10
|
+
* git@github.com:owner/repo.git
|
|
11
|
+
* ssh://git@github.com/owner/repo.git
|
|
12
|
+
* https://github.com/owner/repo(.git)
|
|
13
|
+
*/
|
|
14
|
+
export async function originGithubRepo(cwd) {
|
|
15
|
+
const url = await new Promise((resolve) => {
|
|
16
|
+
execFile("git", ["config", "--get", "remote.origin.url"], { cwd, timeout: 3000 }, (err, stdout) => resolve(err ? null : stdout.trim() || null));
|
|
17
|
+
});
|
|
18
|
+
return url ? parseGithubRepo(url) : null;
|
|
19
|
+
}
|
|
20
|
+
export function parseGithubRepo(url) {
|
|
21
|
+
const m = url.match(/^git@github\.com:([^/\s]+)\/([^/\s]+?)(?:\.git)?\/?$/i) ??
|
|
22
|
+
url.match(/^(?:ssh|https?):\/\/(?:[^@/]+@)?github\.com\/([^/\s]+)\/([^/\s]+?)(?:\.git)?\/?$/i);
|
|
23
|
+
return m ? `${m[1]}/${m[2]}` : null;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/apps-support/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;QACvD,QAAQ,CACN,KAAK,EACL,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,EACxC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EACtB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,CAAC,GACL,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACjG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Clients } from "../api/factory.js";
|
|
2
|
+
import type { AppLink } from "../config/store.js";
|
|
3
|
+
/**
|
|
4
|
+
* Helpers for commands that fall back to the directory's `synteq link`
|
|
5
|
+
* when no explicit app is given (deploy, status, logs, env set/list).
|
|
6
|
+
* The link itself is stored in ConfigStore (`linkFor` / `setLink`).
|
|
7
|
+
*/
|
|
8
|
+
/** Consistent guidance when a command needs an app but the cwd isn't linked. */
|
|
9
|
+
export declare function notLinkedError(hint: string): string;
|
|
10
|
+
/** The link names an app the API no longer has (deleted in the portal, or a
|
|
11
|
+
* different environment). What a script gets; a TTY runs the link
|
|
12
|
+
* walkthrough instead — see `deploy`. */
|
|
13
|
+
export declare function staleLinkError(slug: string, hint: string): string;
|
|
14
|
+
/** True when an app lookup failed because the app is gone (404), as opposed
|
|
15
|
+
* to a bad slug (plain Error), no access, or a fault. */
|
|
16
|
+
export declare function isAppGone(e: unknown): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Rescope the API client to the linked team. A link may point at a team
|
|
19
|
+
* other than the token's active team; an explicit --team flag still wins
|
|
20
|
+
* (it's already baked into `current` by BaseCommand.initClients).
|
|
21
|
+
*/
|
|
22
|
+
export declare function clientsForLinkTeam(current: Clients, link: AppLink, flags: {
|
|
23
|
+
team?: string;
|
|
24
|
+
insecure?: boolean;
|
|
25
|
+
}): Clients;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { makeClients } from "../api/factory.js";
|
|
2
|
+
import { ApiError } from "../api/errors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Helpers for commands that fall back to the directory's `synteq link`
|
|
5
|
+
* when no explicit app is given (deploy, status, logs, env set/list).
|
|
6
|
+
* The link itself is stored in ConfigStore (`linkFor` / `setLink`).
|
|
7
|
+
*/
|
|
8
|
+
/** Consistent guidance when a command needs an app but the cwd isn't linked. */
|
|
9
|
+
export function notLinkedError(hint) {
|
|
10
|
+
return [
|
|
11
|
+
"No app given and this directory isn't linked to one.",
|
|
12
|
+
`Run \`synteq link\` for a one-time walkthrough, or pass ${hint}.`,
|
|
13
|
+
].join("\n");
|
|
14
|
+
}
|
|
15
|
+
/** The link names an app the API no longer has (deleted in the portal, or a
|
|
16
|
+
* different environment). What a script gets; a TTY runs the link
|
|
17
|
+
* walkthrough instead — see `deploy`. */
|
|
18
|
+
export function staleLinkError(slug, hint) {
|
|
19
|
+
return [
|
|
20
|
+
`The app this directory was linked to (${slug}) no longer exists.`,
|
|
21
|
+
`Run \`synteq link\` to pick or create one, or pass ${hint}.`,
|
|
22
|
+
].join("\n");
|
|
23
|
+
}
|
|
24
|
+
/** True when an app lookup failed because the app is gone (404), as opposed
|
|
25
|
+
* to a bad slug (plain Error), no access, or a fault. */
|
|
26
|
+
export function isAppGone(e) {
|
|
27
|
+
return e instanceof ApiError && e.status === 404;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Rescope the API client to the linked team. A link may point at a team
|
|
31
|
+
* other than the token's active team; an explicit --team flag still wins
|
|
32
|
+
* (it's already baked into `current` by BaseCommand.initClients).
|
|
33
|
+
*/
|
|
34
|
+
export function clientsForLinkTeam(current, link, flags) {
|
|
35
|
+
if (flags.team || !link.team_id)
|
|
36
|
+
return current;
|
|
37
|
+
return makeClients(link.team_id, { insecure: flags.insecure });
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/apps-support/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C;;;;GAIG;AAEH,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO;QACL,sDAAsD;QACtD,2DAA2D,IAAI,GAAG;KACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;0CAE0C;AAC1C,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,OAAO;QACL,yCAAyC,IAAI,qBAAqB;QAClE,sDAAsD,IAAI,GAAG;KAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,OAAO,CAAC,YAAY,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,IAAa,EACb,KAA4C;IAE5C,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The live container-log tail behind `synteq app logs --follow`.
|
|
3
|
+
*
|
|
4
|
+
* Auth: browsers can't attach the session cookie to a `ws://` handshake, so
|
|
5
|
+
* the WS uses the same single-use ticket contract as the portal — the caller
|
|
6
|
+
* mints a ticket via POST /auth/ws-ticket and it rides as `?token=` on the ws
|
|
7
|
+
* URL. The ticket is 60s, single-use, and rejected on the REST path, so a
|
|
8
|
+
* logged URL can't be replayed (the documented WS-ticket exception to the
|
|
9
|
+
* no-creds-in-URL rule).
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildLogWsUrl(apiBaseUrl: string, appId: string, ticket: string, follow: boolean): string;
|
|
12
|
+
/** Without follow: the log proxy always tails (the orchestrator's tail has no
|
|
13
|
+
* follow switch — `follow=0` is a hint it ignores), so the server never
|
|
14
|
+
* closes. The backfill arrives in one burst; once the stream has been quiet
|
|
15
|
+
* this long after it opened, the buffered lines are in and we close the
|
|
16
|
+
* socket ourselves (QA board_gaps G3). */
|
|
17
|
+
export declare const NO_FOLLOW_QUIET_MS = 2000;
|
|
18
|
+
export declare function streamLogs(opts: {
|
|
19
|
+
url: string;
|
|
20
|
+
slug: string;
|
|
21
|
+
follow: boolean;
|
|
22
|
+
log: (line: string) => void;
|
|
23
|
+
/** Raised when this Node has no global WebSocket (Node 20+ ships one). */
|
|
24
|
+
unsupported: () => never;
|
|
25
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { dim } from "../ui/glyphs.js";
|
|
2
|
+
/**
|
|
3
|
+
* The live container-log tail behind `synteq app logs --follow`.
|
|
4
|
+
*
|
|
5
|
+
* Auth: browsers can't attach the session cookie to a `ws://` handshake, so
|
|
6
|
+
* the WS uses the same single-use ticket contract as the portal — the caller
|
|
7
|
+
* mints a ticket via POST /auth/ws-ticket and it rides as `?token=` on the ws
|
|
8
|
+
* URL. The ticket is 60s, single-use, and rejected on the REST path, so a
|
|
9
|
+
* logged URL can't be replayed (the documented WS-ticket exception to the
|
|
10
|
+
* no-creds-in-URL rule).
|
|
11
|
+
*/
|
|
12
|
+
export function buildLogWsUrl(apiBaseUrl, appId, ticket, follow) {
|
|
13
|
+
const u = new URL(`/apps/${appId}/logs`, apiBaseUrl);
|
|
14
|
+
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
15
|
+
if (follow)
|
|
16
|
+
u.searchParams.set("follow", "1");
|
|
17
|
+
u.searchParams.set("token", ticket);
|
|
18
|
+
return u.toString();
|
|
19
|
+
}
|
|
20
|
+
/** Without follow: the log proxy always tails (the orchestrator's tail has no
|
|
21
|
+
* follow switch — `follow=0` is a hint it ignores), so the server never
|
|
22
|
+
* closes. The backfill arrives in one burst; once the stream has been quiet
|
|
23
|
+
* this long after it opened, the buffered lines are in and we close the
|
|
24
|
+
* socket ourselves (QA board_gaps G3). */
|
|
25
|
+
export const NO_FOLLOW_QUIET_MS = 2000;
|
|
26
|
+
export function streamLogs(opts) {
|
|
27
|
+
// `--insecure` self-signed dev certs: the WS client honours
|
|
28
|
+
// NODE_TLS_REJECT_UNAUTHORIZED, which the base command doesn't set — so wire
|
|
29
|
+
// it here when insecure is requested.
|
|
30
|
+
const insecure = ["1", "true", "yes"].includes((process.env.SYNTEQ_INSECURE_TLS ?? "").toLowerCase());
|
|
31
|
+
if (insecure)
|
|
32
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
|
33
|
+
const WS = globalThis.WebSocket;
|
|
34
|
+
if (!WS)
|
|
35
|
+
opts.unsupported();
|
|
36
|
+
return new Promise((res) => {
|
|
37
|
+
const ws = new WS(opts.url);
|
|
38
|
+
let gotAny = false;
|
|
39
|
+
let quiet;
|
|
40
|
+
const armQuiet = () => {
|
|
41
|
+
if (opts.follow)
|
|
42
|
+
return;
|
|
43
|
+
if (quiet)
|
|
44
|
+
clearTimeout(quiet);
|
|
45
|
+
quiet = setTimeout(() => {
|
|
46
|
+
try {
|
|
47
|
+
ws.close();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
/* ignore */
|
|
51
|
+
}
|
|
52
|
+
}, NO_FOLLOW_QUIET_MS);
|
|
53
|
+
};
|
|
54
|
+
ws.addEventListener("open", () => {
|
|
55
|
+
opts.log(dim(opts.follow ? `Streaming logs for ${opts.slug} (Ctrl-C to stop)…` : `Recent logs for ${opts.slug}…`));
|
|
56
|
+
armQuiet();
|
|
57
|
+
});
|
|
58
|
+
ws.addEventListener("message", (ev) => {
|
|
59
|
+
gotAny = true;
|
|
60
|
+
armQuiet();
|
|
61
|
+
const data = typeof ev.data === "string" ? ev.data : String(ev.data);
|
|
62
|
+
// Server frames are already log lines; write raw so redirects are clean.
|
|
63
|
+
process.stdout.write(data.endsWith("\n") ? data : data + "\n");
|
|
64
|
+
});
|
|
65
|
+
ws.addEventListener("error", () => {
|
|
66
|
+
if (!gotAny)
|
|
67
|
+
opts.log("Could not open the log stream. The live-logs endpoint may not be enabled yet for this app.");
|
|
68
|
+
});
|
|
69
|
+
ws.addEventListener("close", () => {
|
|
70
|
+
if (quiet)
|
|
71
|
+
clearTimeout(quiet);
|
|
72
|
+
res();
|
|
73
|
+
});
|
|
74
|
+
// Ctrl-C → close the socket cleanly.
|
|
75
|
+
process.once("SIGINT", () => {
|
|
76
|
+
try {
|
|
77
|
+
ws.close();
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
/* ignore */
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=log-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../../src/apps-support/log-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Clients } from "../api/factory.js";
|
|
2
|
+
import type { App, AppPlan } from "../api/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Creating a PAID app is an order: the first month is quoted (tax
|
|
5
|
+
* included), a card is chosen, the charge is confirmed, and provisioning runs
|
|
6
|
+
* off the settled order. This mirrors the web's NewAppPayModal step for
|
|
7
|
+
* step; POST /apps only ever creates free-tier apps (the backend refuses a
|
|
8
|
+
* paid tier there with 402).
|
|
9
|
+
*/
|
|
10
|
+
/** The tiers a team can still create an app on — a tier at its per-team
|
|
11
|
+
* cap is not offered at all (not greyed out: there is nothing to do with
|
|
12
|
+
* it). Empty means every tier is full for this team. */
|
|
13
|
+
export declare function pickablePlans(plans: AppPlan[]): AppPlan[];
|
|
14
|
+
/** The price, shown BEFORE any question about credits or cards (owner,
|
|
15
|
+
* 2026-09-23): the customer sees what the first month costs, then decides
|
|
16
|
+
* how to pay it. `degraded` = the tax engine did not answer, so the total
|
|
17
|
+
* is the plan's anchor and tax lands on the invoice. */
|
|
18
|
+
export declare function priceLine(q: {
|
|
19
|
+
total: number;
|
|
20
|
+
taxTotal: number;
|
|
21
|
+
taxLabel: string;
|
|
22
|
+
currency: string;
|
|
23
|
+
slug: string;
|
|
24
|
+
planName: string;
|
|
25
|
+
degraded: boolean;
|
|
26
|
+
}): string;
|
|
27
|
+
/** The one line the customer confirms before being charged: the price first,
|
|
28
|
+
* then exactly where the money comes from. "Charge $0.00 … from your credit
|
|
29
|
+
* balance" read as nonsense (Ben, 2026-10-06), so a credit-covered month
|
|
30
|
+
* says what is used and that no card is touched. */
|
|
31
|
+
export declare function chargeLine(q: {
|
|
32
|
+
total: number;
|
|
33
|
+
taxTotal: number;
|
|
34
|
+
taxLabel: string;
|
|
35
|
+
currency: string;
|
|
36
|
+
slug: string;
|
|
37
|
+
planName: string;
|
|
38
|
+
method?: {
|
|
39
|
+
provider: string;
|
|
40
|
+
card_brand: string | null;
|
|
41
|
+
card_last4: string | null;
|
|
42
|
+
nickname: string | null;
|
|
43
|
+
is_default: boolean;
|
|
44
|
+
};
|
|
45
|
+
creditsApplied: number;
|
|
46
|
+
}): string;
|
|
47
|
+
export declare class PaidAppOrderError extends Error {
|
|
48
|
+
}
|
|
49
|
+
export declare function orderPaidApp(clients: Clients, input: {
|
|
50
|
+
slug: string;
|
|
51
|
+
plan: AppPlan;
|
|
52
|
+
region: string;
|
|
53
|
+
projectId?: string;
|
|
54
|
+
}, opts: {
|
|
55
|
+
interactive: boolean;
|
|
56
|
+
log: (line: string) => void;
|
|
57
|
+
/** A saved method id from --payment-method; skips the picker. */
|
|
58
|
+
paymentMethodId?: string;
|
|
59
|
+
/** --apply-credits: use the team's credit balance first. */
|
|
60
|
+
applyCredits?: boolean;
|
|
61
|
+
/** --yes: confirm the charge without asking (scripts). */
|
|
62
|
+
yes?: boolean;
|
|
63
|
+
timeoutSeconds?: number;
|
|
64
|
+
}): Promise<App>;
|