@voltro/cli 0.33.0 → 0.35.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 +1968 -0
- package/bin/nodeEnvironment.d.mts +30 -0
- package/bin/nodeEnvironment.mjs +158 -0
- package/bin/voltro.mjs +69 -5
- package/dist/addCommand-BNeoeSxe.js +124 -0
- package/dist/addCommand-aXSQveak.js +2 -0
- package/dist/agentsMd-BTchIZku.js +2 -0
- package/dist/agentsMd-mhQMF1bx.js +254 -0
- package/dist/apiBuild-B8aoJvuw.js +2 -0
- package/dist/{apiBuild-h9VHtnlw.js → apiBuild-DYD_ONLD.js} +46 -46
- package/dist/{appGraph-gQ_6GkQQ.js → appGraph-KGDPTuTy.js} +1 -1
- package/dist/appGraph-zuMGKVYX.js +2 -0
- package/dist/appPort-B_HpJ_ck.js +48 -0
- package/dist/baselineCommand-C2ClWZN3.js +2 -0
- package/dist/baselineCommand-DIttzO8A.js +227 -0
- package/dist/bin.js +71 -28
- package/dist/build-CD8K4XOr.js +711 -0
- package/dist/cacheCommand-DA4OH9xt.js +42 -0
- package/dist/capabilitiesCommand-nq_pz5xd.js +123 -0
- package/dist/checkCommand-Ct9xkTrS.js +232 -0
- package/dist/checkCommand-DKpDLlqu.js +2 -0
- package/dist/{cliArgs-qdZSElM3.js → cliArgs-D4p8n7EE.js} +12 -1
- package/dist/cliError-BmdYnghb.js +10 -0
- package/dist/cliOutput-D1tSBoRM.js +15 -0
- package/dist/{cliRuntime-Oh517vCV.js → cliRuntime-Dh7UDinH.js} +20 -20
- package/dist/cloudClient-DWL-Hw_T.js +67 -0
- package/dist/cloudCmd-Cvv5HGaZ.js +364 -0
- package/dist/clusterCmd-D5wsCmA_.js +54 -0
- package/dist/codegen-CYM3Zqrf.js +605 -0
- package/dist/codegen-ChBi_hVa.js +2 -0
- package/dist/codegenCommand-C4YoQIc2.js +30 -0
- package/dist/codemodRunner-BnFq3Fgu.js +5384 -0
- package/dist/commandRunner-BLAEFLjp.js +47 -0
- package/dist/commands-BE8E7zF3.js +816 -0
- package/dist/connectionConfig-UFlIEiys.js +66 -0
- package/dist/dashboardCommand-D7SgZGaN.js +25 -0
- package/dist/dataCommand-BhYwDgg-.js +537 -0
- package/dist/dataProfile-dW-PsfLB.js +15 -0
- package/dist/dbCommand-DS4b97Is.js +2 -0
- package/dist/{dbCommand-DTLKAfbA.js → dbCommand-O8HA63s2.js} +552 -402
- package/dist/{dev-C_P8FLSx.js → dev-C7sFZq3m.js} +3670 -3169
- package/dist/dev-D2BikO7a.js +3 -0
- package/dist/devActivity-Dx_3nnGv.js +100 -0
- package/dist/devActivity.js +1 -1
- package/dist/dialectDriver-CgXnDfec.js +39 -0
- package/dist/discover-C9XKJDco.js +25 -0
- package/dist/doctorCommand-CM4Ch9C7.js +2 -0
- package/dist/{checkCommand-xGhRFFg2.js → doctorCommand-DnimF5IM.js} +523 -1278
- package/dist/dormancyCommand-QewYug_s.js +69 -0
- package/dist/e2eCmd-BRabZww-.js +147 -0
- package/dist/embeddingsCommand-BfiLS_QI.js +73 -0
- package/dist/envCommand-CCGPRQY1.js +60 -0
- package/dist/evalCommand-6RUfPen4.js +118 -0
- package/dist/evolveCommand-CHsLCtDf.js +281 -0
- package/dist/fileTaxonomy-CJfgOllU.js +457 -0
- package/dist/frameworkTableAssembly-YyVe32Cb.js +2 -0
- package/dist/frameworkTableAssembly-oMPBKqlE.js +511 -0
- package/dist/generateCommand-DbgcUpGw.js +147 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +4 -3
- package/dist/infoCommand-DwOgK1t6.js +60 -0
- package/dist/{inspect-BUUjt773.js → inspect-CjTYzAs_.js} +113 -41
- package/dist/inspect-P4pxoMaV.js +2 -0
- package/dist/inspectCmd-EHFZ9yYu.js +224 -0
- package/dist/inspectFetch-EMuhTG_9.js +151 -0
- package/dist/inspectMetrics-CfdKLh6t.js +72 -0
- package/dist/loadEnv-D9nEOClM.js +44 -0
- package/dist/logFileSink-C_D2wRN1.js +105 -0
- package/dist/logsCmd-D36xK7Zu.js +260 -0
- package/dist/manifestBuild-COkJoyAr.js +2 -0
- package/dist/{manifestBuild-BLrVuSlM.js → manifestBuild-hpPLaGxV.js} +1 -1
- package/dist/metaCommands-7MJfZ5cf.js +196 -0
- package/dist/migrate-BV7I-ZHZ.js +83 -0
- package/dist/mssqlClusterPatch-_4cE_nun.js +44 -0
- package/dist/newCommand-COWOJ1_E.js +156 -0
- package/dist/nodeEnvironment-cGFAj1J8.js +28 -0
- package/dist/packageCommand-Cug_3Ogl.js +271 -0
- package/dist/pageConvention-cEiRxdab.js +5 -0
- package/dist/privacyCommand-C-Df56U_.js +146 -0
- package/dist/probeCommand-CZfaaUOZ.js +122 -0
- package/dist/projectScaffold-DmzEKHib.js +2 -0
- package/dist/projectScaffold-LMMtaavR.js +814 -0
- package/dist/renderModeScan-D7J1B7Kw.js +105 -0
- package/dist/renderProfile-1OWWAAtx.js +81 -0
- package/dist/runtimeRegistry-DMeKfTHP.js +81 -0
- package/dist/runtimeTrace-CH3eUiMw.js +91 -0
- package/dist/scheduleCmd-DQRu6BZC.js +149 -0
- package/dist/scheduleManifestCmd-D2x0CTTY.js +249 -0
- package/dist/schemaIr-UJybUUZW.js +103 -0
- package/dist/{sdkgen-C81QIkiL.js → sdkgen-BLkvGRfX.js} +111 -209
- package/dist/seedRunner-ZmLSqNe2.js +333 -0
- package/dist/serveCommand-CbDHU6l-.js +2 -0
- package/dist/serveCommand-iwlUBNS1.js +1766 -0
- package/dist/serveEntry.js +5 -5
- package/dist/serverlessCommand-CfJZy6dS.js +482 -0
- package/dist/start-BgN62boB.js +3 -0
- package/dist/start-T4VesWiM.js +1087 -0
- package/dist/startEntry.js +2 -2
- package/dist/staticCommand-Dr2M6tpU.js +304 -0
- package/dist/storageCommand-Co6NfLqN.js +42 -0
- package/dist/templates-De8IR5-c.js +102 -0
- package/dist/test-CI6iDsYc.js +115 -0
- package/dist/tracesCmd-DStmCJPi.js +232 -0
- package/dist/tsconfigPaths-BWXBWgcl.js +107 -0
- package/dist/tsxLoader-EuXmSJ1K.js +51 -0
- package/dist/typecheckCommand-BlsWiCNq.js +61 -0
- package/dist/updateCommand-BlMZhWgO.js +2 -0
- package/dist/updateCommand-x0pI_x-B.js +585 -0
- package/dist/webDev-BcykISYQ2.js +2 -0
- package/dist/{inspectMetrics-1xzTKAFx.js → webDev-Dybxew86.js} +988 -1560
- package/dist/webhookDiscovery-CrGAfhIG.js +2 -0
- package/dist/webhookDiscovery-D7VaeMlz.js +51 -0
- package/dist/webhooksCommand-DlAgS2Iw.js +267 -0
- package/dist/workflowsCmd-BGF-mRZ5.js +608 -0
- package/package.json +209 -17
- package/templates/AGENTS.core.md +58 -3
- package/templates/AGENTS.md +64 -7
- package/templates/agent-docs/_index.md +6 -4
- package/templates/agent-docs/_manifest.json +23 -6
- package/templates/agent-docs/ai.md +370 -0
- package/templates/agent-docs/authentication.md +313 -31
- package/templates/agent-docs/caching.md +6 -0
- package/templates/agent-docs/cli.md +853 -50
- package/templates/agent-docs/data.md +608 -12
- package/templates/agent-docs/database/migrations.md +223 -25
- package/templates/agent-docs/database/misc.md +156 -40
- package/templates/agent-docs/database/querying.md +19 -1
- package/templates/agent-docs/database/scaling.md +60 -0
- package/templates/agent-docs/database/schema.md +1 -0
- package/templates/agent-docs/database/seedsdialects.md +208 -19
- package/templates/agent-docs/database/transactions.md +68 -0
- package/templates/agent-docs/deployment.md +284 -25
- package/templates/agent-docs/introduction.md +88 -17
- package/templates/agent-docs/local-first-mobile.md +79 -4
- package/templates/agent-docs/multi-tenancy.md +188 -42
- package/templates/agent-docs/observability.md +58 -3
- package/templates/agent-docs/plugins/ai-flows.md +247 -2
- package/templates/agent-docs/plugins/analytics-postgres.md +1 -1
- package/templates/agent-docs/plugins/audit.md +37 -1
- package/templates/agent-docs/plugins/auth-social.md +143 -0
- package/templates/agent-docs/plugins/auth-workos.md +4 -2
- package/templates/agent-docs/plugins/auth.md +131 -6
- package/templates/agent-docs/plugins/billing.md +132 -15
- package/templates/agent-docs/plugins/cdc-out.md +46 -7
- package/templates/agent-docs/plugins/clickhouse.md +32 -1
- package/templates/agent-docs/plugins/duckdb.md +1 -1
- package/templates/agent-docs/plugins/flags.md +132 -0
- package/templates/agent-docs/plugins/governance.md +105 -7
- package/templates/agent-docs/plugins/multitenancy.md +9 -4
- package/templates/agent-docs/plugins/presence.md +13 -2
- package/templates/agent-docs/plugins/ratelimit.md +9 -0
- package/templates/agent-docs/plugins/search.md +162 -8
- package/templates/agent-docs/plugins/sso-saml.md +47 -8
- package/templates/agent-docs/plugins/storage.md +11 -0
- package/templates/agent-docs/plugins/webhooks.md +105 -0
- package/templates/agent-docs/plugins.md +152 -18
- package/templates/agent-docs/reference.md +60 -3
- package/templates/agent-docs/releases.md +1117 -0
- package/templates/agent-docs/routing.md +43 -25
- package/templates/agent-docs/scheduling.md +27 -0
- package/templates/agent-docs/schema-driven-ui.md +92 -12
- package/templates/agent-docs/security.md +426 -0
- package/templates/agent-docs/templates/apibackends.md +87 -18
- package/templates/agent-docs/templates/appshells.md +32 -14
- package/templates/agent-docs/templates/overview.md +13 -8
- package/templates/agent-docs/testing.md +211 -14
- package/templates/agent-docs/whats-new.md +98 -136
- package/templates/agent-docs/workflows.md +231 -14
- package/templates/apps/api-ai/actions/summarize.action.ts +11 -0
- package/templates/apps/api-ai/package.json +8 -7
- package/templates/apps/api-auth/actions/me.action.ts +13 -0
- package/templates/apps/api-auth/package.json +9 -8
- package/templates/apps/api-backend/mutations/notes.create.mutation.ts +9 -0
- package/templates/apps/api-backend/package.json +12 -8
- package/templates/apps/api-backend/queries/notes.query.ts +30 -8
- package/templates/apps/api-backend-deactivation/actions/users.get.action.ts +14 -0
- package/templates/apps/api-backend-deactivation/mutations/users.create.mutation.ts +8 -0
- package/templates/apps/api-backend-deactivation/mutations/users.deactivate.mutation.ts +10 -0
- package/templates/apps/api-backend-deactivation/package.json +8 -7
- package/templates/apps/api-backend-mail/actions/sendWelcome.action.ts +17 -0
- package/templates/apps/api-backend-mail/mutations/notes.create.mutation.ts +9 -0
- package/templates/apps/api-backend-mail/package.json +9 -8
- package/templates/apps/api-backend-mail/queries/notes.query.ts +30 -8
- package/templates/apps/api-backend-mariadb/.env.example +14 -0
- package/templates/apps/api-backend-mariadb/mutations/notes.create.mutation.ts +9 -0
- package/templates/apps/api-backend-mariadb/package.json +10 -9
- package/templates/apps/api-backend-mariadb/queries/notes.query.ts +30 -8
- package/templates/apps/api-backend-sqlite/.env.example +14 -0
- package/templates/apps/api-backend-sqlite/mutations/notes.create.mutation.ts +9 -0
- package/templates/apps/api-backend-sqlite/package.json +9 -8
- package/templates/apps/api-backend-sqlite/queries/notes.query.ts +30 -8
- package/templates/apps/api-backend-storage/actions/uploadAvatar.action.ts +13 -0
- package/templates/apps/api-backend-storage/actions/uploadDocument.action.ts +12 -0
- package/templates/apps/api-backend-storage/mutations/notes.create.mutation.ts +9 -0
- package/templates/apps/api-backend-storage/package.json +9 -8
- package/templates/apps/api-backend-storage/queries/notes.query.ts +30 -8
- package/templates/apps/api-cms/actions/content.get.action.ts +7 -0
- package/templates/apps/api-cms/actions/content.types.action.ts +6 -0
- package/templates/apps/api-cms/actions/me.action.ts +13 -0
- package/templates/apps/api-cms/app.config.ts +19 -0
- package/templates/apps/api-cms/authz.ts +63 -0
- package/templates/apps/api-cms/mutations/content.publish.mutation.ts +10 -0
- package/templates/apps/api-cms/mutations/content.saveDraft.mutation.ts +10 -0
- package/templates/apps/api-cms/mutations/content.unpublish.mutation.ts +5 -0
- package/templates/apps/api-cms/package.json +11 -10
- package/templates/apps/api-cms/queries/content.list.query.ts +23 -7
- package/templates/apps/api-cms/tests/accessDecisions.test.ts +121 -0
- package/templates/apps/api-cms/tests/content.descriptors.test.ts +8 -4
- package/templates/apps/api-collab/mutations/documents.create.mutation.ts +8 -0
- package/templates/apps/api-collab/mutations/documents.setBody.mutation.ts +13 -0
- package/templates/apps/api-collab/package.json +9 -8
- package/templates/apps/api-collab/queries/documents.query.ts +19 -7
- package/templates/apps/api-data-advanced/package.json +9 -8
- package/templates/apps/api-data-advanced/queries/authors.withBooks.query.ts +12 -0
- package/templates/apps/api-data-advanced/queries/books.search.query.ts +9 -0
- package/templates/apps/api-durable/mutations/orders.approve.mutation.ts +17 -0
- package/templates/apps/api-durable/mutations/orders.place.mutation.ts +9 -0
- package/templates/apps/api-durable/package.json +9 -8
- package/templates/apps/api-feature-flags/actions/notes.export.action.ts +16 -0
- package/templates/apps/api-feature-flags/mutations/notes.create.mutation.ts +12 -0
- package/templates/apps/api-feature-flags/package.json +10 -9
- package/templates/apps/api-governance/README.md +30 -8
- package/templates/apps/api-governance/actions/profiles.get.action.server.ts +17 -1
- package/templates/apps/api-governance/actions/profiles.get.action.ts +29 -4
- package/templates/apps/api-governance/database/schema.ts +16 -4
- package/templates/apps/api-governance/mutations/profiles.create.mutation.ts +12 -0
- package/templates/apps/api-governance/package.json +9 -8
- package/templates/apps/api-kv/actions/sync.pull.action.ts +15 -0
- package/templates/apps/api-kv/actions/sync.reset.action.ts +13 -0
- package/templates/apps/api-kv/actions/sync.status.action.ts +7 -0
- package/templates/apps/api-kv/package.json +9 -8
- package/templates/apps/api-kv/queries/events.list.query.ts +19 -8
- package/templates/apps/api-moderation/mutations/comments.create.mutation.ts +11 -0
- package/templates/apps/api-moderation/mutations/posts.create.mutation.ts +13 -0
- package/templates/apps/api-moderation/package.json +9 -8
- package/templates/apps/api-observability/mutations/notes.create.mutation.ts +8 -0
- package/templates/apps/api-observability/package.json +9 -8
- package/templates/apps/api-observability/queries/notes.list.query.ts +13 -0
- package/templates/apps/api-ratelimit/mutations/notes.create.mutation.ts +14 -0
- package/templates/apps/api-ratelimit/package.json +9 -8
- package/templates/apps/api-rbac/package.json +9 -8
- package/templates/apps/api-rest/package.json +8 -7
- package/templates/apps/api-saas/mutations/projects.create.mutation.ts +13 -0
- package/templates/apps/api-saas/package.json +12 -11
- package/templates/apps/api-saas/queries/projects.list.query.ts +11 -0
- package/templates/apps/api-saas-starter/actions/me.action.ts +13 -0
- package/templates/apps/api-saas-starter/app.config.ts +19 -0
- package/templates/apps/api-saas-starter/authz.ts +75 -0
- package/templates/apps/api-saas-starter/mutations/invites.create.mutation.ts +10 -0
- package/templates/apps/api-saas-starter/mutations/projects.create.mutation.ts +9 -0
- package/templates/apps/api-saas-starter/package.json +15 -11
- package/templates/apps/api-saas-starter/queries/invites.list.query.ts +19 -8
- package/templates/apps/api-saas-starter/queries/projects.list.query.ts +18 -7
- package/templates/apps/api-saas-starter/tests/accessDecisions.test.ts +135 -0
- package/templates/apps/api-search/mutations/articles.create.mutation.ts +14 -0
- package/templates/apps/api-search/package.json +9 -8
- package/templates/apps/api-search/queries/articles.list.query.ts +21 -8
- package/templates/apps/api-status/README.md +10 -3
- package/templates/apps/api-status/app.config.ts +8 -3
- package/templates/apps/api-status/authz.ts +5 -3
- package/templates/apps/api-status/package.json +9 -8
- package/templates/apps/api-status/queries/components.list.query.ts +14 -6
- package/templates/apps/api-status/queries/incidents.live.query.ts +23 -10
- package/templates/apps/api-status/queries/updates.list.query.ts +16 -9
- package/templates/apps/api-status/tests/status.test.ts +9 -1
- package/templates/apps/api-versioning/actions/documents.asOf.action.ts +12 -0
- package/templates/apps/api-versioning/actions/documents.history.action.ts +13 -0
- package/templates/apps/api-versioning/mutations/documents.create.mutation.ts +9 -0
- package/templates/apps/api-versioning/mutations/documents.update.mutation.ts +12 -0
- package/templates/apps/api-versioning/package.json +9 -8
- package/templates/apps/api-webhooks/mutations/orders.fulfill.mutation.ts +16 -0
- package/templates/apps/api-webhooks/package.json +10 -9
- package/templates/apps/api-webhooks/queries/orders.list.query.ts +10 -0
- package/templates/apps/changelog/package.json +8 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +10 -8
- package/templates/apps/frontend-admin/src/lib/admin.ts +20 -9
- package/templates/apps/frontend-admin/src/locales/de.ts +11 -1
- package/templates/apps/frontend-admin/src/locales/en.ts +13 -1
- package/templates/apps/frontend-admin/src/pages/admin/[entity]/page.tsx +65 -22
- package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +130 -23
- package/templates/apps/frontend-admin/src/pages/admin/layout.tsx +3 -2
- package/templates/apps/frontend-admin/src/pages/admin/page.test.tsx +19 -2
- package/templates/apps/frontend-admin/src/pages/admin/page.tsx +9 -4
- package/templates/apps/frontend-app/app.config.ts +4 -3
- package/templates/apps/frontend-app/package.json +11 -8
- package/templates/apps/frontend-app/src/lib/api.ts +25 -0
- package/templates/apps/frontend-app/src/pages/page.test.tsx +130 -82
- package/templates/apps/frontend-app/src/pages/page.tsx +14 -18
- package/templates/apps/frontend-auth/package.json +10 -8
- package/templates/apps/frontend-blank/package.json +9 -7
- package/templates/apps/frontend-cms/package.json +11 -9
- package/templates/apps/frontend-collab/package.json +12 -9
- package/templates/apps/frontend-collab/src/pages/page.test.tsx +122 -78
- package/templates/apps/frontend-contact/package.json +9 -7
- package/templates/apps/frontend-dashboard/package.json +9 -7
- package/templates/apps/frontend-docs/package.json +9 -7
- package/templates/apps/frontend-i18n/package.json +8 -6
- package/templates/apps/frontend-landing/package.json +9 -7
- package/templates/apps/frontend-portal/package.json +10 -8
- package/templates/apps/frontend-saas/app.config.ts +10 -6
- package/templates/apps/frontend-saas/package.json +10 -8
- package/templates/apps/frontend-saas/src/lib/api.ts +27 -32
- package/templates/apps/frontend-saas/src/pages/dashboard/billing/page.tsx +7 -8
- package/templates/apps/frontend-saas/src/pages/dashboard/page.test.tsx +27 -3
- package/templates/apps/frontend-saas/src/pages/dashboard/page.tsx +4 -4
- package/templates/apps/frontend-saas/src/pages/dashboard/team/page.tsx +3 -4
- package/templates/apps/frontend-spa/package.json +9 -7
- package/templates/apps/frontend-ssr/package.json +9 -7
- package/templates/apps/frontend-ssr-api/package.json +10 -8
- package/templates/apps/frontend-static-blog/package.json +8 -6
- package/templates/apps/frontend-status/package.json +10 -8
- package/templates/apps/mobile-app/README.md +1 -0
- package/templates/apps/mobile-app/package.json +4 -2
- package/templates/apps/mobile-app/src/app/index.tsx +22 -12
- package/templates/apps/mobile-app/src/app/orders/[id].tsx +1 -1
- package/templates/apps/mobile-app/src/lib/api.ts +34 -0
- package/templates/apps/mobile-app/voltro.mobile.ts +4 -2
- package/templates/baselines/bare/.env.example +14 -0
- package/templates/baselines/bare/baseline.json +4 -4
- package/templates/baselines/compose/.env.example +14 -0
- package/templates/baselines/compose/README.md +1 -1
- package/templates/baselines/compose/baseline.json +5 -5
- package/templates/baselines/compose-mariadb/.env.example +14 -0
- package/templates/baselines/compose-mariadb/README.md +1 -1
- package/templates/baselines/compose-mariadb/baseline.json +5 -5
- package/templates/baselines/helm/.env.example +14 -0
- package/templates/baselines/helm/baseline.json +4 -4
- package/dist/apiBuild-C-x9YacA.js +0 -2
- package/dist/appGraph-CvQCte0z.js +0 -2
- package/dist/checkCommand-DRovTKza.js +0 -2
- package/dist/commands-CJfepbm4.js +0 -11541
- package/dist/dbCommand-b1gum4td.js +0 -2
- package/dist/dev-iiMtlkfs.js +0 -3
- package/dist/devActivity-BhIu6ncs.js +0 -159
- package/dist/frameworkTableAssembly-BwIrO5nv.js +0 -638
- package/dist/frameworkTableAssembly-D-EebUQX.js +0 -2
- package/dist/inspect-mmBuRXmy.js +0 -2
- package/dist/manifestBuild-Dj8Jjoto.js +0 -2
- package/dist/seedRunner-Bqxgp7HZ.js +0 -230
- package/dist/serveCommand-DdaM4Hup.js +0 -1608
- package/dist/start-C0koT0UO.js +0 -1084
- /package/templates/apps/api-ai/actions/{summarize.action.server.tsx → summarize.action.server.ts} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,35 @@ export declare const CLI_NAME: "framework";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const COMMAND_GROUPS: ReadonlyArray<readonly [string, ReadonlyArray<string>]>;
|
|
17
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Structured `--help` for a command that does not print its own.
|
|
20
|
+
*
|
|
21
|
+
* The dispatcher used to answer `--help` for 39 of the 53 commands with a
|
|
22
|
+
* single summary line — no flags, no example — and `--help` is the second thing
|
|
23
|
+
* a user types after a command surprises them. One renderer
|
|
24
|
+
* (`renderCommandHelp`) turns this data into that page, so growing the coverage
|
|
25
|
+
* is a data edit rather than 39 hand-written print blocks.
|
|
26
|
+
*
|
|
27
|
+
* **Every flag named here must be one the command actually parses.**
|
|
28
|
+
* `commandHelp.test.ts` derives each command's implementation module from the
|
|
29
|
+
* `import('./x')` in its own dispatch entry and fails if a documented flag is
|
|
30
|
+
* not read there — the per-command form of the repo-wide `check-message-apis`
|
|
31
|
+
* rule, which can only see the union of all sources and would therefore accept
|
|
32
|
+
* `voltro test --create-only` because `migrate` happens to parse it.
|
|
33
|
+
*/
|
|
34
|
+
export declare interface CommandHelp {
|
|
35
|
+
/** Usage line WITHOUT the leading `voltro <name>` — e.g. `[app] [--watch]`. */
|
|
36
|
+
readonly usage?: string;
|
|
37
|
+
/** `[flag, what it does]`. The flag includes its dashes and any `<value>`. */
|
|
38
|
+
readonly flags?: ReadonlyArray<readonly [string, string]>;
|
|
39
|
+
/** `[full command line, what it does]`. Each must start with `voltro <name>`. */
|
|
40
|
+
readonly examples?: ReadonlyArray<readonly [string, string]>;
|
|
41
|
+
/** Environment variables that change what this command does. */
|
|
42
|
+
readonly env?: ReadonlyArray<readonly [string, string]>;
|
|
43
|
+
/** Anything else worth a sentence — printed under the flags. */
|
|
44
|
+
readonly notes?: ReadonlyArray<string>;
|
|
45
|
+
}
|
|
46
|
+
|
|
18
47
|
export declare const COMMANDS: ReadonlyArray<CommandSpec>;
|
|
19
48
|
|
|
20
49
|
export declare type CommandSpec = {
|
|
@@ -27,6 +56,9 @@ export declare type CommandSpec = {
|
|
|
27
56
|
/** This command prints its own richer `--help` — let `--help`/`-h` reach it
|
|
28
57
|
* instead of the dispatcher's uniform one-line fallback. */
|
|
29
58
|
readonly handlesHelp?: boolean;
|
|
59
|
+
/** Flags + examples the shared renderer turns into a real `--help` page.
|
|
60
|
+
* Mutually exclusive with `handlesHelp` (that command prints its own). */
|
|
61
|
+
readonly help?: CommandHelp;
|
|
30
62
|
};
|
|
31
63
|
|
|
32
64
|
export declare const dispatch: (argv: ReadonlyArray<string>) => Promise<number>;
|
|
@@ -39,6 +71,19 @@ export declare const listTemplates: () => Promise<ReadonlyArray<TemplateInfo>>;
|
|
|
39
71
|
|
|
40
72
|
export declare const printUsage: () => void;
|
|
41
73
|
|
|
74
|
+
/**
|
|
75
|
+
* ONE renderer for every command's `--help`.
|
|
76
|
+
*
|
|
77
|
+
* Returned as lines rather than printed so the test can assert on the page
|
|
78
|
+
* without capturing stdout — and so `voltro help <command>` and
|
|
79
|
+
* `voltro <command> --help` cannot render differently.
|
|
80
|
+
*
|
|
81
|
+
* A command with no `help` block still gets a real page: name, summary, docs
|
|
82
|
+
* link. That is the old fallback, kept as the FLOOR rather than as the answer —
|
|
83
|
+
* what changed is that a command CAN now say more without printing it by hand.
|
|
84
|
+
*/
|
|
85
|
+
export declare const renderCommandHelp: (command: CommandSpec) => ReadonlyArray<string>;
|
|
86
|
+
|
|
42
87
|
/** Command names close enough to a typo to suggest. Also matches on prefix /
|
|
43
88
|
* substring, so `voltro work` suggests `workflows`. Exported for the test. */
|
|
44
89
|
export declare const suggestCommands: (input: string, limit?: number) => ReadonlyArray<string>;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-BE8E7zF3.js";
|
|
2
|
+
import { r as o } from "./templates-De8IR5-c.js";
|
|
2
3
|
//#region src/index.ts
|
|
3
|
-
var
|
|
4
|
+
var s = "framework";
|
|
4
5
|
//#endregion
|
|
5
|
-
export {
|
|
6
|
+
export { s as CLI_NAME, a as COMMANDS, n as COMMAND_GROUPS, i as dispatch, o as listTemplates, t as printUsage, e as renderCommandHelp, r as suggestCommands };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { n as e, r as t, t as n } from "./cliOutput-D1tSBoRM.js";
|
|
2
|
+
import { o as r } from "./updateCommand-x0pI_x-B.js";
|
|
3
|
+
import { join as i, resolve as a } from "node:path";
|
|
4
|
+
import { readFileSync as o, readdirSync as s, statSync as c } from "node:fs";
|
|
5
|
+
//#region src/infoCommand.ts
|
|
6
|
+
var l = () => {
|
|
7
|
+
let e = new URL("data:video/mp2t;base64,Ly8gQHZvbHRyby9jbGkg4oCUIHRoZSBgZnJhbWV3b3JrYCBjb21tYW5kLWxpbmUgdG9vbC4gRmlyc3Qgc2xpY2UgZXhwb3NlcwovLyB0aGUgY29tbWFuZCByZWdpc3RyeSBhbmQgZGlzcGF0Y2g7IGVhY2ggc3ViY29tbWFuZCdzIGltcGxlbWVudGF0aW9uIGxhbmRzCi8vIGFzIHRoZSByZWxldmFudCBwcmltaXRpdmUgY29tZXMgb25saW5lLgoKZXhwb3J0IGNvbnN0IENMSV9OQU1FID0gJ2ZyYW1ld29yaycgYXMgY29uc3QKCmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMnCmV4cG9ydCB7IGxpc3RUZW1wbGF0ZXMsIHR5cGUgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi90ZW1wbGF0ZXMnCgovLyBgU3RhcnR1cENvbnRleHRgIC8gYFN0YXJ0dXBGbmAgYXJlIGV4cG9zZWQgdmlhIHRoZSBkZWRpY2F0ZWQKLy8gc3VicGF0aCBgQHZvbHRyby9jbGkvc3RhcnR1cGAuIFN1YnBhdGggaW1wb3J0IGtlZXBzIHRoZSBDTEkncyBoZWF2eQovLyB0cmFuc2l0aXZlIGRlcHMgKHN0YXJ0LnRzLCBkZXYudHMsIOKApikgb3V0IG9mIHVzZXItYXBwCi8vIHR5cGVjaGVja2luZyB3aGVuIGFsbCB0aGV5IG5lZWQgaXMgdGhlIHR5cGUuCg==", "" + import.meta.url).pathname;
|
|
8
|
+
for (let t of [i(e, "..", "package.json"), i(e, "package.json")]) try {
|
|
9
|
+
return JSON.parse(o(t, "utf8")).version ?? "0.0.0";
|
|
10
|
+
} catch {}
|
|
11
|
+
return "0.0.0";
|
|
12
|
+
}, u = (e) => {
|
|
13
|
+
let t = i(e, "node_modules", "@voltro"), n;
|
|
14
|
+
try {
|
|
15
|
+
n = s(t).filter((e) => {
|
|
16
|
+
try {
|
|
17
|
+
return c(i(t, e)).isDirectory();
|
|
18
|
+
} catch {
|
|
19
|
+
return !1;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
} catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
let r = [];
|
|
26
|
+
for (let e of [...n].sort()) {
|
|
27
|
+
let n = "unknown";
|
|
28
|
+
try {
|
|
29
|
+
n = JSON.parse(o(i(t, e, "package.json"), "utf8")).version ?? "unknown";
|
|
30
|
+
} catch {}
|
|
31
|
+
r.push({
|
|
32
|
+
name: `@voltro/${e}`,
|
|
33
|
+
version: n
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return r;
|
|
37
|
+
}, d = (e, t = process.env) => {
|
|
38
|
+
let n = u(e), i = [...new Set(n.map((e) => e.version).filter((e) => e !== "unknown"))].sort();
|
|
39
|
+
return {
|
|
40
|
+
cliVersion: l(),
|
|
41
|
+
node: process.version,
|
|
42
|
+
platform: `${process.platform}-${process.arch}`,
|
|
43
|
+
packageManager: r(e),
|
|
44
|
+
dialect: (t.DB_DIALECT ?? "postgres").toLowerCase(),
|
|
45
|
+
dbUrlConfigured: typeof t.DB_URL == "string" && t.DB_URL.length > 0,
|
|
46
|
+
voltroPackages: n,
|
|
47
|
+
versionSkew: i.length > 1 ? i : []
|
|
48
|
+
};
|
|
49
|
+
}, f = async (r) => {
|
|
50
|
+
let i = t(r);
|
|
51
|
+
i && n();
|
|
52
|
+
let o = a(r.find((e) => !e.startsWith("-")) ?? process.cwd()), s = d(o);
|
|
53
|
+
if (i) return e(s), +(s.versionSkew.length > 0);
|
|
54
|
+
if (console.log(`voltro v${s.cliVersion}`), console.log(` node ${s.node} (${s.platform})`), console.log(` package manager ${s.packageManager}`), console.log(` dialect ${s.dialect}${s.dbUrlConfigured ? "" : " (DB_URL not set)"}`), s.voltroPackages.length === 0) return console.log(`\n No @voltro packages found under ${o}/node_modules — run from an app root with deps installed.`), 0;
|
|
55
|
+
console.log(`\n @voltro packages (${s.voltroPackages.length}):`);
|
|
56
|
+
for (let e of s.voltroPackages) console.log(` ${e.name.padEnd(28)} ${e.version}`);
|
|
57
|
+
return s.versionSkew.length > 0 ? (console.log(""), console.log(` ⚠ version skew — @voltro/* are released in lockstep but ${s.versionSkew.length} versions are installed:`), console.log(` ${s.versionSkew.join(", ")}`), console.log(" Run `voltro update` to realign every @voltro/* package."), 1) : 0;
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { f as runInfoCommand };
|
|
@@ -46,6 +46,13 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
46
46
|
let t = [];
|
|
47
47
|
for (let n of e) {
|
|
48
48
|
if (typeof n != "object" || !n) continue;
|
|
49
|
+
if (typeof n.open == "string") {
|
|
50
|
+
t.push({
|
|
51
|
+
kind: "open",
|
|
52
|
+
reason: n.open
|
|
53
|
+
});
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
49
56
|
if (typeof n.action == "string" && typeof n.resourceType == "string") {
|
|
50
57
|
t.push({
|
|
51
58
|
kind: "policy",
|
|
@@ -172,12 +179,17 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
172
179
|
name: e.name,
|
|
173
180
|
reactive: e.isReactive,
|
|
174
181
|
framework: e.isFrameworkTable,
|
|
182
|
+
editable: e.editable ?? !0,
|
|
183
|
+
...e.pkColumn === void 0 ? {} : { pkColumn: e.pkColumn },
|
|
175
184
|
columns: e.columns.map((e) => ({
|
|
176
185
|
name: e.name,
|
|
177
186
|
type: String(e.type),
|
|
178
187
|
nullable: e.nullable,
|
|
179
188
|
...e.referencesTable === void 0 ? {} : { refersTo: e.referencesTable },
|
|
180
|
-
...e.oneOf === void 0 ? {} : { enum: e.oneOf }
|
|
189
|
+
...e.oneOf === void 0 ? {} : { enum: e.oneOf },
|
|
190
|
+
...e.serverOnly === !0 ? { serverOnly: !0 } : {},
|
|
191
|
+
...e.encrypted === !0 ? { encrypted: !0 } : {},
|
|
192
|
+
...e.sensitive === void 0 ? {} : { sensitive: e.sensitive }
|
|
181
193
|
}))
|
|
182
194
|
}))
|
|
183
195
|
}), S = (e, t, n = {}, i = {}) => {
|
|
@@ -252,11 +264,22 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
252
264
|
set: 0,
|
|
253
265
|
missingRequired: 0
|
|
254
266
|
}
|
|
255
|
-
}, c) : s(200, t.env(), c) : o === "/_voltro/inspect/data/tables" ? t.kind === "api" ? t.inspectTables === void 0 ? s(200, { tables: [] }, c) : s(200, t.inspectTables(), c) : s(404, { error: "data viewer is api-only" }, c) : o === "/_voltro/inspect/invoke" ? s(404, { error: "invoke not enabled here — use POST handler" }, c) : s(404, {
|
|
267
|
+
}, c) : s(200, t.env(), c) : o === "/_voltro/inspect/data/tables" ? t.kind === "api" ? t.inspectTables === void 0 ? s(200, { tables: [] }, c) : s(200, t.inspectTables(), c) : s(404, { error: "data viewer is api-only" }, c) : o === "/_voltro/inspect/invoke" ? s(404, { error: "invoke not enabled here — use POST handler" }, c) : C.has(o) ? s(404, {
|
|
268
|
+
error: "endpoint not mounted on this instance",
|
|
269
|
+
path: o,
|
|
270
|
+
reason: "This inspect endpoint is served by `voltro dev`. A production `voltro serve` does not mount it — the data behind it (the in-memory log ring, the span buffer, the dev route table) is not collected there. This is not a missing token: the same request with no token would be 401."
|
|
271
|
+
}, c) : s(404, {
|
|
256
272
|
error: "unknown inspect endpoint",
|
|
257
273
|
path: o
|
|
258
274
|
}, c);
|
|
259
|
-
}, C =
|
|
275
|
+
}, C = /* @__PURE__ */ new Set([
|
|
276
|
+
`${n}/logs`,
|
|
277
|
+
`${n}/traces`,
|
|
278
|
+
`${n}/workflows`,
|
|
279
|
+
`${n}/storage`,
|
|
280
|
+
`${n}/aggregates`,
|
|
281
|
+
`${n}/flags`
|
|
282
|
+
]), w = async (e, t, n, i = {}) => {
|
|
260
283
|
let o = l(t.origin ?? t.Origin);
|
|
261
284
|
if (r()) return s(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, o);
|
|
262
285
|
let c = (i.method ?? "POST").toUpperCase();
|
|
@@ -291,7 +314,26 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
291
314
|
n !== "cookie" && (h[n] = t);
|
|
292
315
|
}
|
|
293
316
|
return s(200, await p(f.input, h), o);
|
|
294
|
-
},
|
|
317
|
+
}, T = async (e, t, n, i = {}) => {
|
|
318
|
+
let o = _(e);
|
|
319
|
+
if (!y(o) || o !== "/_voltro/inspect/migrations" || (i.method ?? "GET").toUpperCase() !== "GET") return null;
|
|
320
|
+
let c = l(n.origin ?? n.Origin);
|
|
321
|
+
if (r()) return s(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, c);
|
|
322
|
+
let u = (i.authResolver ?? a)(n, "GET");
|
|
323
|
+
return u.ok ? t.kind === "api" ? t.migrations === void 0 ? s(200, {
|
|
324
|
+
drift: {
|
|
325
|
+
isDrifted: !1,
|
|
326
|
+
liveFingerprint: "",
|
|
327
|
+
liveSnapshot: { tables: [] }
|
|
328
|
+
},
|
|
329
|
+
pending: null,
|
|
330
|
+
history: [],
|
|
331
|
+
softDropSnapshots: []
|
|
332
|
+
}, c) : s(200, await t.migrations(), c) : s(404, { error: "migrations endpoint is api-only" }, c) : s(401, {
|
|
333
|
+
error: "unauthorized",
|
|
334
|
+
reason: u.reason
|
|
335
|
+
}, c);
|
|
336
|
+
}, E = async (e, t, i, o, c = {}) => {
|
|
295
337
|
let u = _(e);
|
|
296
338
|
if (!y(u) || !u.startsWith("/_voltro/inspect/webhooks/")) return null;
|
|
297
339
|
let f = l(i.origin ?? i.Origin);
|
|
@@ -351,7 +393,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
351
393
|
message: e?.message ?? String(e)
|
|
352
394
|
}, f);
|
|
353
395
|
}
|
|
354
|
-
},
|
|
396
|
+
}, D = async (e, t, i, o, c = {}) => {
|
|
355
397
|
let u = _(e);
|
|
356
398
|
if (!y(u)) return null;
|
|
357
399
|
let d = l(i.origin ?? i.Origin), f = (c.method ?? "POST").toUpperCase();
|
|
@@ -394,7 +436,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
394
436
|
message: e?.message ?? String(e)
|
|
395
437
|
}, d);
|
|
396
438
|
}
|
|
397
|
-
},
|
|
439
|
+
}, O = async (e, t, n, i = {}) => {
|
|
398
440
|
if (_(e) !== "/_voltro/inspect/data/rows") return null;
|
|
399
441
|
let o = l(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
400
442
|
if (c !== "GET") return s(405, {
|
|
@@ -409,9 +451,9 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
409
451
|
}, o);
|
|
410
452
|
if (t.kind !== "api") return s(404, { error: "data viewer is api-only" }, o);
|
|
411
453
|
if (t.inspectRows === void 0) return s(404, { error: "inspectRows not configured" }, o);
|
|
412
|
-
let d =
|
|
454
|
+
let d = A(e), f = d.get("table");
|
|
413
455
|
if (!f) return s(400, { error: "query.table is required" }, o);
|
|
414
|
-
let p =
|
|
456
|
+
let p = j(d.get("offset")) ?? 0, m = j(d.get("limit")) ?? 50, h = {}, g = d.get("q");
|
|
415
457
|
if (g) {
|
|
416
458
|
if (g.length > 8192) return s(400, { error: "query.q too large" }, o);
|
|
417
459
|
try {
|
|
@@ -436,7 +478,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
436
478
|
message: e?.message ?? String(e)
|
|
437
479
|
}, o);
|
|
438
480
|
}
|
|
439
|
-
},
|
|
481
|
+
}, k = async (t, n, i, o = {}) => {
|
|
440
482
|
if (_(t) !== "/_voltro/inspect/provenance") return null;
|
|
441
483
|
let c = l(i.origin ?? i.Origin), u = (o.method ?? "GET").toUpperCase();
|
|
442
484
|
if (u !== "GET") return s(405, {
|
|
@@ -453,7 +495,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
453
495
|
if (p) return p;
|
|
454
496
|
if (n.kind !== "api") return s(404, { error: "provenance is api-only" }, c);
|
|
455
497
|
if (n.inspectRows === void 0) return s(404, { error: "inspectRows not configured" }, c);
|
|
456
|
-
let m =
|
|
498
|
+
let m = A(t), h = m.get("table"), g = m.get("id"), v = m.get("column") ?? void 0;
|
|
457
499
|
if (!h || !g) return s(400, { error: "query.table and query.id are required" }, c);
|
|
458
500
|
try {
|
|
459
501
|
let t = (await n.inspectRows({
|
|
@@ -480,14 +522,14 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
480
522
|
message: e?.message ?? String(e)
|
|
481
523
|
}, c);
|
|
482
524
|
}
|
|
483
|
-
},
|
|
525
|
+
}, A = (e) => {
|
|
484
526
|
let t = e.indexOf("?");
|
|
485
527
|
return t < 0 ? new URLSearchParams() : new URLSearchParams(e.slice(t + 1));
|
|
486
|
-
},
|
|
528
|
+
}, j = (e) => {
|
|
487
529
|
if (e === null || e === "") return;
|
|
488
530
|
let t = Number(e);
|
|
489
531
|
return Number.isFinite(t) && t >= 0 ? Math.floor(t) : void 0;
|
|
490
|
-
},
|
|
532
|
+
}, M = async (e, t, n, i = {}) => {
|
|
491
533
|
if (_(e) !== "/_voltro/inspect/workflows/runs") return null;
|
|
492
534
|
let o = l(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
493
535
|
if (c !== "GET") return s(405, {
|
|
@@ -507,7 +549,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
507
549
|
offset: 0,
|
|
508
550
|
limit: 50
|
|
509
551
|
}, o);
|
|
510
|
-
let d =
|
|
552
|
+
let d = A(e);
|
|
511
553
|
try {
|
|
512
554
|
let e = d.get("deadLettered") === "1" || d.get("deadLettered") === "true", n = (d.get("statuses") ?? "").split(",").map((e) => e.trim()).filter((e) => e !== "");
|
|
513
555
|
return s(200, await t.inspectWorkflowRuns({
|
|
@@ -518,8 +560,8 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
518
560
|
...d.get("idPrefix") === null ? {} : { idPrefix: d.get("idPrefix") },
|
|
519
561
|
...d.get("from") === null ? {} : { startedAfter: d.get("from") },
|
|
520
562
|
...d.get("to") === null ? {} : { startedBefore: d.get("to") },
|
|
521
|
-
offset:
|
|
522
|
-
limit:
|
|
563
|
+
offset: j(d.get("offset")) ?? 0,
|
|
564
|
+
limit: j(d.get("limit")) ?? 50
|
|
523
565
|
}), o);
|
|
524
566
|
} catch (e) {
|
|
525
567
|
return s(500, {
|
|
@@ -527,7 +569,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
527
569
|
message: e?.message ?? String(e)
|
|
528
570
|
}, o);
|
|
529
571
|
}
|
|
530
|
-
},
|
|
572
|
+
}, N = async (e, t, n, i = {}) => {
|
|
531
573
|
if (_(e) !== "/_voltro/inspect/workflows/stats") return null;
|
|
532
574
|
let o = l(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
533
575
|
if (c !== "GET") return s(405, {
|
|
@@ -549,11 +591,11 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
549
591
|
total: 0,
|
|
550
592
|
truncated: !1
|
|
551
593
|
}, o);
|
|
552
|
-
let d =
|
|
594
|
+
let d = A(e);
|
|
553
595
|
try {
|
|
554
596
|
return s(200, await t.inspectWorkflowRunStats({
|
|
555
597
|
...d.get("tag") === null ? {} : { tag: d.get("tag") },
|
|
556
|
-
...
|
|
598
|
+
...j(d.get("hours")) === void 0 ? {} : { hours: j(d.get("hours")) }
|
|
557
599
|
}), o);
|
|
558
600
|
} catch (e) {
|
|
559
601
|
return s(500, {
|
|
@@ -561,7 +603,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
561
603
|
message: e?.message ?? String(e)
|
|
562
604
|
}, o);
|
|
563
605
|
}
|
|
564
|
-
},
|
|
606
|
+
}, P = async (e, t, n, i, o = {}) => {
|
|
565
607
|
let c = _(e).match(/^\/_voltro\/inspect\/workflows\/start\/([^/]+)$/);
|
|
566
608
|
if (!c) return null;
|
|
567
609
|
let u = decodeURIComponent(c[1] ?? ""), d = l(n.origin ?? n.Origin), f = (o.method ?? "POST").toUpperCase();
|
|
@@ -594,7 +636,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
594
636
|
message: e?.message ?? String(e)
|
|
595
637
|
}, d);
|
|
596
638
|
}
|
|
597
|
-
},
|
|
639
|
+
}, F = async (e, t, n, i = {}) => {
|
|
598
640
|
let o = _(e);
|
|
599
641
|
if (!o.startsWith("/_voltro/inspect/schedules")) return null;
|
|
600
642
|
let c = l(n.origin ?? n.Origin);
|
|
@@ -607,14 +649,44 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
607
649
|
let f = d(i.method, n, c);
|
|
608
650
|
if (f) return f;
|
|
609
651
|
if (t.kind !== "api") return s(404, { error: "schedules are api-only" }, c);
|
|
610
|
-
let p = (i.method ?? "GET").toUpperCase(), m = o.match(/^\/_voltro\/inspect\/schedules\/([^/]+)\/
|
|
652
|
+
let p = (i.method ?? "GET").toUpperCase(), m = o.match(/^\/_voltro\/inspect\/schedules\/([^/]+)\/backfill$/);
|
|
611
653
|
if (m) {
|
|
654
|
+
if (p !== "POST") return s(405, {
|
|
655
|
+
error: "method not allowed",
|
|
656
|
+
expected: "POST"
|
|
657
|
+
}, c);
|
|
658
|
+
if (!t.inspectBackfillSchedule) return s(404, { error: "inspectBackfillSchedule not configured" }, c);
|
|
659
|
+
let e = decodeURIComponent(m[1] ?? ""), n;
|
|
660
|
+
try {
|
|
661
|
+
n = JSON.parse(i.body ?? "{}");
|
|
662
|
+
} catch {
|
|
663
|
+
return s(400, { error: "invalid JSON body — expected { from, to, confirm?, limit? }" }, c);
|
|
664
|
+
}
|
|
665
|
+
if (typeof n.from != "string" || typeof n.to != "string") return s(400, { error: "body must carry ISO 'from' and 'to' instants" }, c);
|
|
666
|
+
try {
|
|
667
|
+
let r = await t.inspectBackfillSchedule({
|
|
668
|
+
name: e,
|
|
669
|
+
from: n.from,
|
|
670
|
+
to: n.to,
|
|
671
|
+
confirm: n.confirm === !0,
|
|
672
|
+
...typeof n.limit == "number" ? { limit: n.limit } : {}
|
|
673
|
+
});
|
|
674
|
+
return s(r.kind === "refused" ? 409 : 200, r, c);
|
|
675
|
+
} catch (e) {
|
|
676
|
+
return s(500, {
|
|
677
|
+
error: "backfill failed",
|
|
678
|
+
message: e?.message ?? String(e)
|
|
679
|
+
}, c);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
let h = o.match(/^\/_voltro\/inspect\/schedules\/([^/]+)\/fire$/);
|
|
683
|
+
if (h) {
|
|
612
684
|
if (p !== "POST") return s(405, {
|
|
613
685
|
error: "method not allowed",
|
|
614
686
|
expected: "POST"
|
|
615
687
|
}, c);
|
|
616
688
|
if (!t.inspectFireSchedule) return s(404, { error: "inspectFireSchedule not configured" }, c);
|
|
617
|
-
let n = decodeURIComponent(
|
|
689
|
+
let n = decodeURIComponent(h[1] ?? ""), r = A(e).get("trigger") === "external" ? "external" : "manual";
|
|
618
690
|
try {
|
|
619
691
|
return s(200, await t.inspectFireSchedule({
|
|
620
692
|
name: n,
|
|
@@ -638,12 +710,12 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
638
710
|
offset: 0,
|
|
639
711
|
limit: 50
|
|
640
712
|
}, c);
|
|
641
|
-
let n =
|
|
713
|
+
let n = A(e);
|
|
642
714
|
try {
|
|
643
715
|
return s(200, await t.inspectScheduleRuns({
|
|
644
716
|
...n.get("name") === null ? {} : { name: n.get("name") },
|
|
645
|
-
offset:
|
|
646
|
-
limit:
|
|
717
|
+
offset: j(n.get("offset")) ?? 0,
|
|
718
|
+
limit: j(n.get("limit")) ?? 50
|
|
647
719
|
}), c);
|
|
648
720
|
} catch (e) {
|
|
649
721
|
return s(500, {
|
|
@@ -662,7 +734,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
662
734
|
error: "unknown schedules endpoint",
|
|
663
735
|
path: o
|
|
664
736
|
}, c);
|
|
665
|
-
},
|
|
737
|
+
}, I = async (e, t, n, i = {}) => {
|
|
666
738
|
if (_(e) !== "/_voltro/inspect/cluster") return null;
|
|
667
739
|
let o = l(n.origin ?? n.Origin);
|
|
668
740
|
if (r()) return s(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, o);
|
|
@@ -710,7 +782,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
710
782
|
message: e?.message ?? String(e)
|
|
711
783
|
}, o);
|
|
712
784
|
}
|
|
713
|
-
},
|
|
785
|
+
}, L = async (e, t, n, i = {}) => {
|
|
714
786
|
let o = _(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/steps$/);
|
|
715
787
|
if (!o) return null;
|
|
716
788
|
let c = decodeURIComponent(o[1] ?? ""), u = l(n.origin ?? n.Origin), d = (i.method ?? "GET").toUpperCase();
|
|
@@ -734,7 +806,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
734
806
|
message: e?.message ?? String(e)
|
|
735
807
|
}, u);
|
|
736
808
|
}
|
|
737
|
-
},
|
|
809
|
+
}, R = async (e, t, n, i = {}) => {
|
|
738
810
|
let o = _(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/events$/);
|
|
739
811
|
if (!o) return null;
|
|
740
812
|
let c = decodeURIComponent(o[1] ?? ""), u = l(n.origin ?? n.Origin), d = (i.method ?? "GET").toUpperCase();
|
|
@@ -758,7 +830,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
758
830
|
message: e?.message ?? String(e)
|
|
759
831
|
}, u);
|
|
760
832
|
}
|
|
761
|
-
},
|
|
833
|
+
}, z = async (e, t, n, i = {}) => {
|
|
762
834
|
if (_(t) !== "/_voltro/inspect/workflows/events") return null;
|
|
763
835
|
let o = l(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
764
836
|
if (c !== "GET") return s(405, {
|
|
@@ -791,7 +863,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
791
863
|
message: e?.message ?? String(e)
|
|
792
864
|
}, o);
|
|
793
865
|
}
|
|
794
|
-
},
|
|
866
|
+
}, B = async (e, t, n, i = {}) => {
|
|
795
867
|
let o = _(t).match(/^\/_voltro\/inspect\/workflows\/events\/([^/]+)\/deliveries$/);
|
|
796
868
|
if (!o) return null;
|
|
797
869
|
let c = decodeURIComponent(o[1] ?? ""), u = l(n.origin ?? n.Origin), d = (i.method ?? "GET").toUpperCase();
|
|
@@ -815,7 +887,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
815
887
|
message: e?.message ?? String(e)
|
|
816
888
|
}, u);
|
|
817
889
|
}
|
|
818
|
-
},
|
|
890
|
+
}, V = async (e, t, n, i = {}) => {
|
|
819
891
|
if (_(e) !== "/_voltro/inspect/workflows/children") return null;
|
|
820
892
|
let o = l(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
821
893
|
if (c !== "GET") return s(405, {
|
|
@@ -829,7 +901,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
829
901
|
reason: u.reason
|
|
830
902
|
}, o);
|
|
831
903
|
if (t.kind !== "api") return s(404, { error: "workflow children are api-only" }, o);
|
|
832
|
-
let d =
|
|
904
|
+
let d = A(e).get("parentExecutionId");
|
|
833
905
|
if (d === null || d === "") return s(400, { error: "parentExecutionId query param required" }, o);
|
|
834
906
|
if (t.inspectWorkflowChildren === void 0) return s(200, {
|
|
835
907
|
runs: [],
|
|
@@ -845,7 +917,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
845
917
|
message: e?.message ?? String(e)
|
|
846
918
|
}, o);
|
|
847
919
|
}
|
|
848
|
-
},
|
|
920
|
+
}, H = async (e, t, n, i, o = {}) => {
|
|
849
921
|
let c = _(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/(cancel|retry|suspend|resume-from-step|resume|signal|update|discard|redrive)$/);
|
|
850
922
|
if (!c) return null;
|
|
851
923
|
let u = decodeURIComponent(c[1] ?? ""), d = c[2], f = l(n.origin ?? n.Origin), p = (o.method ?? "POST").toUpperCase();
|
|
@@ -903,7 +975,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
903
975
|
message: e?.message ?? String(e)
|
|
904
976
|
}, f);
|
|
905
977
|
}
|
|
906
|
-
},
|
|
978
|
+
}, U = async (e, t, n, i, o = {}) => {
|
|
907
979
|
if (_(e) !== "/_voltro/inspect/data/import" || (o.method ?? "POST").toUpperCase() !== "POST") return null;
|
|
908
980
|
let c = l(n.origin ?? n.Origin);
|
|
909
981
|
if (r()) return s(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, c);
|
|
@@ -936,7 +1008,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
936
1008
|
message: e?.message ?? String(e)
|
|
937
1009
|
}, c);
|
|
938
1010
|
}
|
|
939
|
-
},
|
|
1011
|
+
}, W = async (e, t, n, i, o = {}) => {
|
|
940
1012
|
let c = _(e);
|
|
941
1013
|
if (!c.startsWith("/_voltro/inspect/data/rows")) return null;
|
|
942
1014
|
let u = (o.method ?? "POST").toUpperCase();
|
|
@@ -974,7 +1046,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
974
1046
|
if (!p) return null;
|
|
975
1047
|
let m = decodeURIComponent(p[1] ?? "");
|
|
976
1048
|
if (!m) return s(400, { error: "row id is required in URL" }, d);
|
|
977
|
-
let h =
|
|
1049
|
+
let h = A(e).get("table") ?? "";
|
|
978
1050
|
if (!h) return s(400, { error: "query.table is required" }, d);
|
|
979
1051
|
if (u === "PATCH") {
|
|
980
1052
|
if (!t.inspectUpdateRow) return s(404, { error: "inspectUpdateRow not configured" }, d);
|
|
@@ -1016,7 +1088,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
1016
1088
|
error: "method not allowed",
|
|
1017
1089
|
expected: "POST | PATCH | DELETE"
|
|
1018
1090
|
}, d);
|
|
1019
|
-
},
|
|
1091
|
+
}, G = async (e, t, i, o, c = {}) => {
|
|
1020
1092
|
let u = _(e), d = `${n}/workflows/flow-control`;
|
|
1021
1093
|
if (u !== d && !u.startsWith(`${d}/`)) return null;
|
|
1022
1094
|
let f = l(i.origin ?? i.Origin), p = (c.method ?? "GET").toUpperCase();
|
|
@@ -1033,7 +1105,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
1033
1105
|
expected: "GET"
|
|
1034
1106
|
}, f);
|
|
1035
1107
|
if (t.inspectInferences === void 0) return s(404, { error: "inspectInferences not configured" }, f);
|
|
1036
|
-
let n =
|
|
1108
|
+
let n = A(e).get("limit"), r = n === null ? void 0 : Number(n);
|
|
1037
1109
|
try {
|
|
1038
1110
|
return s(200, await t.inspectInferences(r !== void 0 && Number.isFinite(r) ? { limit: r } : {}), f);
|
|
1039
1111
|
} catch (e) {
|
|
@@ -1049,7 +1121,7 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
1049
1121
|
expected: "GET"
|
|
1050
1122
|
}, f);
|
|
1051
1123
|
if (t.inspectFlowControl === void 0) return s(404, { error: "inspectFlowControl not configured" }, f);
|
|
1052
|
-
let n =
|
|
1124
|
+
let n = A(e).get("limit"), r = n === null ? void 0 : Number(n);
|
|
1053
1125
|
try {
|
|
1054
1126
|
return s(200, await t.inspectFlowControl(r !== void 0 && Number.isFinite(r) ? { limit: r } : {}), f);
|
|
1055
1127
|
} catch (e) {
|
|
@@ -1115,4 +1187,4 @@ var n = "/_voltro/inspect", r = () => process.env.VOLTRO_INSPECT === "off", i =
|
|
|
1115
1187
|
}, f);
|
|
1116
1188
|
};
|
|
1117
1189
|
//#endregion
|
|
1118
|
-
export {
|
|
1190
|
+
export { r as A, N as C, l as D, P as E, f as M, g as N, h as O, o as P, R as S, M as T, E as _, a, z as b, U as c, G as d, D as f, F as g, S as h, d as i, c as j, u as k, O as l, k as m, b as n, T as o, w as p, x as r, I as s, n as t, W as u, H as v, L as w, B as x, V as y };
|