devflare 1.0.0-next.32 → 1.0.0-next.33
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/bin/devflare.js +1 -3
- package/dist/{account-g99mzrqp.js → account-p9eywryw.js} +27 -16
- package/dist/ai-r3zqmxan.js +261 -0
- package/dist/{api-2n6dd2ws.js → api-6z01z734.js} +1 -1
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/miniflare.d.ts.map +1 -1
- package/dist/bridge/proxy.d.ts.map +1 -1
- package/dist/bridge/server.d.ts.map +1 -1
- package/dist/bridge/v2/body-streams.d.ts.map +1 -1
- package/dist/bridge/v2/codec.d.ts.map +1 -1
- package/dist/bridge/v2/frames.d.ts.map +1 -1
- package/dist/bridge/v2/value-codec.d.ts.map +1 -1
- package/dist/bridge/v2/value-serialization.d.ts.map +1 -1
- package/dist/bridge/v2/wire.d.ts.map +1 -1
- package/dist/bridge/v2/ws-relay.d.ts +1 -1
- package/dist/bridge/v2/ws-relay.d.ts.map +1 -1
- package/dist/browser-shim/handler.d.ts +1 -1
- package/dist/browser-shim/handler.d.ts.map +1 -1
- package/dist/browser-shim/server.d.ts.map +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +5 -5
- package/dist/{build-4tyjywn9.js → build-8bn7frg8.js} +16 -16
- package/dist/bundler/do-bundler.d.ts.map +1 -1
- package/dist/bundler/rolldown-shared.d.ts.map +1 -1
- package/dist/bundler/worker-bundler.d.ts.map +1 -1
- package/dist/bundler/worker-compat.d.ts.map +1 -1
- package/dist/cli/build-manifest.d.ts.map +1 -1
- package/dist/cli/command-utils.d.ts.map +1 -1
- package/dist/cli/commands/account.d.ts +1 -1
- package/dist/cli/commands/account.d.ts.map +1 -1
- package/dist/cli/commands/ai.d.ts.map +1 -1
- package/dist/cli/commands/build-artifacts.d.ts +3 -3
- package/dist/cli/commands/build-artifacts.d.ts.map +1 -1
- package/dist/cli/commands/build.d.ts +2 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +2 -2
- package/dist/cli/commands/config.d.ts.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/dev.d.ts +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -2
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/login.d.ts +1 -1
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/previews-support/family.d.ts.map +1 -1
- package/dist/cli/commands/previews-support/render.d.ts +1 -1
- package/dist/cli/commands/previews-support/render.d.ts.map +1 -1
- package/dist/cli/commands/previews-support/theme.d.ts +1 -1
- package/dist/cli/commands/previews-support/theme.d.ts.map +1 -1
- package/dist/cli/commands/previews-support/types.d.ts +1 -1
- package/dist/cli/commands/previews-support/types.d.ts.map +1 -1
- package/dist/cli/commands/previews.d.ts.map +1 -1
- package/dist/cli/commands/productions.d.ts +1 -1
- package/dist/cli/commands/productions.d.ts.map +1 -1
- package/dist/cli/commands/remote.d.ts +1 -1
- package/dist/cli/commands/remote.d.ts.map +1 -1
- package/dist/cli/commands/secrets.d.ts.map +1 -1
- package/dist/cli/commands/token.d.ts +2 -2
- package/dist/cli/commands/token.d.ts.map +1 -1
- package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -1
- package/dist/cli/commands/type-generation/generator.d.ts.map +1 -1
- package/dist/cli/commands/types.d.ts +2 -2
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/worker.d.ts +2 -2
- package/dist/cli/commands/worker.d.ts.map +1 -1
- package/dist/cli/dependencies.d.ts +1 -1
- package/dist/cli/dependencies.d.ts.map +1 -1
- package/dist/cli/deploy-strategy.d.ts.map +1 -1
- package/dist/cli/deploy-target.d.ts.map +1 -1
- package/dist/cli/generated-artifacts.d.ts.map +1 -1
- package/dist/cli/help-pages/pages/account.d.ts.map +1 -1
- package/dist/cli/help-pages/pages/core.d.ts.map +1 -1
- package/dist/cli/help-pages/pages/misc.d.ts.map +1 -1
- package/dist/cli/help-pages/pages/previews.d.ts.map +1 -1
- package/dist/cli/help-pages/pages/productions.d.ts.map +1 -1
- package/dist/cli/help-pages/render.d.ts +1 -1
- package/dist/cli/help-pages/render.d.ts.map +1 -1
- package/dist/cli/help-pages/shared.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/preview-bindings.d.ts.map +1 -1
- package/dist/cli/preview.d.ts.map +1 -1
- package/dist/cli/ui.d.ts.map +1 -1
- package/dist/cli/workspace-build-guard.d.ts.map +1 -1
- package/dist/cloudflare/account-core.d.ts.map +1 -1
- package/dist/cloudflare/account-resources.d.ts.map +1 -1
- package/dist/cloudflare/account-status.d.ts.map +1 -1
- package/dist/cloudflare/account-workers.d.ts.map +1 -1
- package/dist/cloudflare/api.d.ts.map +1 -1
- package/dist/cloudflare/auth.d.ts.map +1 -1
- package/dist/cloudflare/index.d.ts +6 -6
- package/dist/cloudflare/index.d.ts.map +1 -1
- package/dist/cloudflare/index.js +6 -6
- package/dist/cloudflare/kv-namespace.d.ts.map +1 -1
- package/dist/cloudflare/preferences.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-inference.d.ts +1 -1
- package/dist/cloudflare/preview-registry-inference.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-shape.d.ts +1 -1
- package/dist/cloudflare/preview-registry-shape.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry-types.d.ts +1 -1
- package/dist/cloudflare/preview-registry-types.d.ts.map +1 -1
- package/dist/cloudflare/preview-registry.d.ts +1 -1
- package/dist/cloudflare/preview-registry.d.ts.map +1 -1
- package/dist/cloudflare/preview-urls.d.ts.map +1 -1
- package/dist/cloudflare/registry-schema.d.ts.map +1 -1
- package/dist/cloudflare/remote-config.d.ts.map +1 -1
- package/dist/cloudflare/tokens.d.ts.map +1 -1
- package/dist/cloudflare/usage.d.ts.map +1 -1
- package/dist/config/binding-resolution-helpers.d.ts.map +1 -1
- package/dist/config/define.d.ts +1 -1
- package/dist/config/define.d.ts.map +1 -1
- package/dist/config/deploy-resources.d.ts +2 -2
- package/dist/config/deploy-resources.d.ts.map +1 -1
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/framework-providers.d.ts.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/preview-resources.d.ts.map +1 -1
- package/dist/config/preview.d.ts +1 -3
- package/dist/config/preview.d.ts.map +1 -1
- package/dist/config/ref.d.ts +1 -1
- package/dist/config/ref.d.ts.map +1 -1
- package/dist/config/resolve-phased.d.ts.map +1 -1
- package/dist/config/resource-resolution.d.ts +3 -3
- package/dist/config/resource-resolution.d.ts.map +1 -1
- package/dist/config/schema-bindings.d.ts.map +1 -1
- package/dist/config/schema-build.d.ts.map +1 -1
- package/dist/config/schema-env.d.ts.map +1 -1
- package/dist/config/schema-normalization.d.ts +1 -1
- package/dist/config/schema-normalization.d.ts.map +1 -1
- package/dist/config/schema-runtime.d.ts.map +1 -1
- package/dist/config/schema-types-bindings-resources.d.ts +1 -2
- package/dist/config/schema-types-bindings-resources.d.ts.map +1 -1
- package/dist/config/schema-types-bindings.d.ts +1 -1
- package/dist/config/schema-types-bindings.d.ts.map +1 -1
- package/dist/config/schema-types-runtime.d.ts +2 -2
- package/dist/config/schema-types-runtime.d.ts.map +1 -1
- package/dist/config/schema-types.d.ts +1 -1
- package/dist/config/schema-types.d.ts.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/service-bindings-validation.d.ts.map +1 -1
- package/dist/config-entry.js +2 -2
- package/dist/{config-88sdhx3w.js → config-gphd6wx7.js} +6 -6
- package/dist/decorators/durable-object.d.ts.map +1 -1
- package/dist/decorators/index.js +1 -1
- package/dist/{deploy-8fpav2cw.js → deploy-vpcp41fw.js} +19 -19
- package/dist/{dev-nxevkfdv.js → dev-9scy9gap.js} +251 -255
- package/dist/dev-server/d1-migrations.d.ts.map +1 -1
- package/dist/dev-server/dev-server-state.d.ts +2 -2
- package/dist/dev-server/dev-server-state.d.ts.map +1 -1
- package/dist/dev-server/gateway-script.d.ts.map +1 -1
- package/dist/dev-server/miniflare-bindings.d.ts.map +1 -1
- package/dist/dev-server/miniflare-dev-config.d.ts +2 -2
- package/dist/dev-server/miniflare-dev-config.d.ts.map +1 -1
- package/dist/dev-server/miniflare-log.d.ts.map +1 -1
- package/dist/dev-server/miniflare-worker-config.d.ts +1 -1
- package/dist/dev-server/miniflare-worker-config.d.ts.map +1 -1
- package/dist/dev-server/server-startup-helpers.d.ts +2 -2
- package/dist/dev-server/server-startup-helpers.d.ts.map +1 -1
- package/dist/dev-server/server.d.ts.map +1 -1
- package/dist/dev-server/vite-process.d.ts.map +1 -1
- package/dist/dev-server/vite-utils.d.ts.map +1 -1
- package/dist/dev-server/worker-source-watcher.d.ts.map +1 -1
- package/dist/dev-server/worker-surface-paths.d.ts +1 -1
- package/dist/dev-server/worker-surface-paths.d.ts.map +1 -1
- package/dist/{doctor-ztwx1y95.js → doctor-swfeeqny.js} +12 -12
- package/dist/{durable-object-v3gsnybk.js → durable-object-pf6gabpn.js} +1 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/{index-mg8vwqxf.js → index-04wh9bxx.js} +2 -2
- package/dist/{index-fcmj6641.js → index-13sfensw.js} +1 -1
- package/dist/{index-6sj0v0dk.js → index-1trss579.js} +1373 -1358
- package/dist/{index-3jme4hgw.js → index-2xz4etye.js} +25 -33
- package/dist/{index-q8f4kawk.js → index-34dejneh.js} +12 -2
- package/dist/{index-rzp9ejrh.js → index-3t0e51a0.js} +1 -1
- package/dist/{index-ptwem1nt.js → index-3z20d3kd.js} +160 -208
- package/dist/{index-d8bdkx2h.js → index-4xmtkg9g.js} +2 -2
- package/dist/{index-qwgr4q7s.js → index-5dkjffqz.js} +2 -14
- package/dist/{index-aqrwyy57.js → index-7m557715.js} +2 -7
- package/dist/{index-85yjb686.js → index-97rfy7n2.js} +1 -1
- package/dist/{index-11p28kxx.js → index-atwc3csp.js} +1 -1
- package/dist/{index-ft3trvra.js → index-b20xx2vk.js} +5 -19
- package/dist/{index-s3km3y34.js → index-bhxj7ff6.js} +234 -219
- package/dist/{index-3edvz3hs.js → index-by27mzra.js} +4 -4
- package/dist/{index-t9y0sve5.js → index-c4zd39tc.js} +1 -1
- package/dist/{index-69c0ed4a.js → index-dem45895.js} +6 -11
- package/dist/{index-k9x5v335.js → index-dgx495pv.js} +30 -27
- package/dist/{index-7qd7nmdd.js → index-e7xn30bh.js} +2 -2
- package/dist/{index-1d4jg11n.js → index-h7r11y4a.js} +5 -8
- package/dist/{index-vez803pp.js → index-ksqth51q.js} +2 -2
- package/dist/{index-stgn34cr.js → index-maw0jjnn.js} +0 -1
- package/dist/{index-hpwa6vsw.js → index-n4xkaymm.js} +1 -4
- package/dist/{index-dfcp9hsd.js → index-pd97hk2j.js} +64 -72
- package/dist/{index-67gr49zr.js → index-pmnb7eke.js} +3 -3
- package/dist/{index-xz18tstn.js → index-t0r7evpw.js} +9 -9
- package/dist/{index-qz6nbwpw.js → index-t23wq5js.js} +1 -1
- package/dist/{index-hjjfxv02.js → index-w8c8tjc5.js} +1 -1
- package/dist/{index-c8p4njqy.js → index-wxdcrzcp.js} +1 -5
- package/dist/{index-15fpa5tx.js → index-x0wpeb3x.js} +2 -2
- package/dist/{index-qmmqww7h.js → index-x2fd1361.js} +5 -5
- package/dist/{index-a855bdsx.js → index-y7w3x9p1.js} +1 -1
- package/dist/{index-gn5wy09x.js → index-zdd0d9qa.js} +3 -9
- package/dist/index.js +12 -12
- package/dist/{init-cwpergap.js → init-tb8jqgvr.js} +2 -2
- package/dist/{login-r5ve73kf.js → login-7vyzeqy4.js} +10 -10
- package/dist/{previews-qjj98rpp.js → previews-jfbectpc.js} +25 -22
- package/dist/{productions-gzdtge0e.js → productions-49ct4kjm.js} +21 -18
- package/dist/{remote-q59qk463.js → remote-6876k6mz.js} +3 -3
- package/dist/runtime/context-events.d.ts.map +1 -1
- package/dist/runtime/context-types.d.ts.map +1 -1
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/exports.d.ts +21 -21
- package/dist/runtime/exports.d.ts.map +1 -1
- package/dist/runtime/index.js +5 -5
- package/dist/runtime/middleware.d.ts.map +1 -1
- package/dist/runtime/router/index.d.ts +1 -1
- package/dist/runtime/router/index.d.ts.map +1 -1
- package/dist/runtime/router/types.d.ts.map +1 -1
- package/dist/secrets/local-secrets.d.ts.map +1 -1
- package/dist/{secrets-4w5166km.js → secrets-9ne7armr.js} +7 -7
- package/dist/shims/local-hyperdrive.d.ts.map +1 -1
- package/dist/shims/local-media-bindings.d.ts.map +1 -1
- package/dist/shims/local-worker-loader.d.ts.map +1 -1
- package/dist/sveltekit/index.d.ts.map +1 -1
- package/dist/sveltekit/index.js +12 -15
- package/dist/sveltekit/local-bindings.d.ts.map +1 -1
- package/dist/sveltekit/platform.d.ts.map +1 -1
- package/dist/test/binding-hints.d.ts +1 -1
- package/dist/test/binding-hints.d.ts.map +1 -1
- package/dist/test/cf.d.ts +1 -1
- package/dist/test/containers.d.ts.map +1 -1
- package/dist/test/email.d.ts +4 -4
- package/dist/test/email.d.ts.map +1 -1
- package/dist/test/index.js +1404 -1402
- package/dist/test/offline-bindings.d.ts.map +1 -1
- package/dist/test/queue.d.ts.map +1 -1
- package/dist/test/remote-ai.d.ts.map +1 -1
- package/dist/test/remote-cloudflare.d.ts.map +1 -1
- package/dist/test/remote-vectorize.d.ts.map +1 -1
- package/dist/test/resolve-service-bindings.d.ts.map +1 -1
- package/dist/test/scheduled.d.ts.map +1 -1
- package/dist/test/simple-context-bindings.d.ts.map +1 -1
- package/dist/test/simple-context-durable-objects.d.ts.map +1 -1
- package/dist/test/simple-context-env.d.ts.map +1 -1
- package/dist/test/simple-context-handlers.d.ts.map +1 -1
- package/dist/test/simple-context-lifecycle.d.ts +1 -1
- package/dist/test/simple-context-lifecycle.d.ts.map +1 -1
- package/dist/test/simple-context-mfconfig.d.ts.map +1 -1
- package/dist/test/simple-context-multi-worker.d.ts +1 -1
- package/dist/test/simple-context-multi-worker.d.ts.map +1 -1
- package/dist/test/simple-context-paths.d.ts.map +1 -1
- package/dist/test/simple-context-runtime.d.ts.map +1 -1
- package/dist/test/simple-context-startup.d.ts.map +1 -1
- package/dist/test/simple-context.d.ts.map +1 -1
- package/dist/test/tail.d.ts +1 -1
- package/dist/test/tail.d.ts.map +1 -1
- package/dist/test/utilities/env.d.ts.map +1 -1
- package/dist/test/worker.d.ts.map +1 -1
- package/dist/{token-35jcdqq8.js → token-yp1qa70y.js} +4 -4
- package/dist/transform/durable-object.d.ts.map +1 -1
- package/dist/transform/worker-entrypoint.d.ts.map +1 -1
- package/dist/{types-6vc02evc.js → types-zekmbebk.js} +16 -18
- package/dist/utils/glob.d.ts.map +1 -1
- package/dist/utils/resolve-package.d.ts.map +1 -1
- package/dist/utils/send-email.d.ts.map +1 -1
- package/dist/utils/send-email.js +1 -1
- package/dist/vite/config-file.d.ts +1 -1
- package/dist/vite/config-file.d.ts.map +1 -1
- package/dist/vite/index.js +12 -12
- package/dist/vite/plugin-config-hook.d.ts.map +1 -1
- package/dist/vite/plugin-context.d.ts.map +1 -1
- package/dist/vite/plugin-durable-objects.d.ts +1 -1
- package/dist/vite/plugin-durable-objects.d.ts.map +1 -1
- package/dist/vite/plugin-programmatic.d.ts.map +1 -1
- package/dist/vite/plugin-service-bindings.d.ts.map +1 -1
- package/dist/vite/plugin-transform.d.ts.map +1 -1
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/{worker-f2v85f7d.js → worker-706g8qeh.js} +14 -14
- package/dist/worker-entry/composed-worker.d.ts.map +1 -1
- package/dist/worker-entry/extensions.d.ts.map +1 -1
- package/dist/worker-entry/routes.d.ts.map +1 -1
- package/dist/worker-entry/surface-paths.d.ts.map +1 -1
- package/dist/{worker-entrypoint-3rmzd4c1.js → worker-entrypoint-y8s9kdcx.js} +1 -1
- package/dist/workflows/local-workflow-entrypoints.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/ai-dx4fr9jh.js +0 -107
- package/dist/{index-vhqww6tt.js → index-p93cngdp.js} +1 -1
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
formatBullet,
|
|
11
11
|
formatCommand,
|
|
12
12
|
logLine
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-maw0jjnn.js";
|
|
14
14
|
import {
|
|
15
15
|
__require
|
|
16
16
|
} from "./index-37x76zdn.js";
|
|
@@ -19,12 +19,40 @@ import {
|
|
|
19
19
|
import { createConsola } from "consola";
|
|
20
20
|
|
|
21
21
|
// src/cli/help-pages/shared.ts
|
|
22
|
-
var COMMANDS = [
|
|
22
|
+
var COMMANDS = [
|
|
23
|
+
"init",
|
|
24
|
+
"dev",
|
|
25
|
+
"build",
|
|
26
|
+
"deploy",
|
|
27
|
+
"types",
|
|
28
|
+
"doctor",
|
|
29
|
+
"config",
|
|
30
|
+
"account",
|
|
31
|
+
"login",
|
|
32
|
+
"previews",
|
|
33
|
+
"productions",
|
|
34
|
+
"worker",
|
|
35
|
+
"tokens",
|
|
36
|
+
"secrets",
|
|
37
|
+
"ai",
|
|
38
|
+
"remote",
|
|
39
|
+
"help",
|
|
40
|
+
"version"
|
|
41
|
+
];
|
|
23
42
|
var COMMAND_ALIASES = {};
|
|
24
43
|
var COMMON_OPTIONS = [
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
{
|
|
45
|
+
command: "--config <path>",
|
|
46
|
+
description: "Select a specific devflare config file when the command supports it"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
command: "--env <name>",
|
|
50
|
+
description: "Resolve config.env[name] when the command supports environments"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
command: "--debug",
|
|
54
|
+
description: "Print extra stack traces and debug output for supported commands"
|
|
55
|
+
},
|
|
28
56
|
{ command: "--no-color", description: "Disable ANSI color output" },
|
|
29
57
|
{ command: "-h, --help", description: "Show detailed help for the current command" },
|
|
30
58
|
{ command: "-v, --version", description: "Show the installed devflare version" }
|
|
@@ -34,7 +62,10 @@ var ACCOUNT_OPTION = {
|
|
|
34
62
|
description: "Use a specific Cloudflare account instead of the workspace/global/default account"
|
|
35
63
|
};
|
|
36
64
|
var PREVIEWS_COMMON_OPTIONS = [
|
|
37
|
-
{
|
|
65
|
+
{
|
|
66
|
+
command: "--account <id>",
|
|
67
|
+
description: "Use a specific Cloudflare account for preview Worker and preview-resource operations"
|
|
68
|
+
}
|
|
38
69
|
];
|
|
39
70
|
function entry(command, description) {
|
|
40
71
|
return { command, description };
|
|
@@ -69,14 +100,10 @@ function createAccountInventoryPage(subcommand, summary, description, exampleDes
|
|
|
69
100
|
parentPath: "account",
|
|
70
101
|
subcommand,
|
|
71
102
|
summary,
|
|
72
|
-
usage: [
|
|
73
|
-
`devflare account ${subcommand} [--account <id>]`
|
|
74
|
-
],
|
|
103
|
+
usage: [`devflare account ${subcommand} [--account <id>]`],
|
|
75
104
|
description: [description],
|
|
76
105
|
options: [ACCOUNT_OPTION],
|
|
77
|
-
examples: [
|
|
78
|
-
entry(`devflare account ${subcommand}`, exampleDescription)
|
|
79
|
-
],
|
|
106
|
+
examples: [entry(`devflare account ${subcommand}`, exampleDescription)],
|
|
80
107
|
notes: [
|
|
81
108
|
"Omit --account to resolve the account from workspace preferences, CLOUDFLARE_ACCOUNT_ID, devflare.config.*, or the primary authenticated account."
|
|
82
109
|
]
|
|
@@ -96,79 +123,6 @@ function createRemoteSubcommandPage(subcommand, summary, usage, description, exa
|
|
|
96
123
|
var createPreviewSubcommandPage = createOptionedSubcommandHelpPageFactory("previews");
|
|
97
124
|
var createProductionsSubcommandPage = createOptionedSubcommandHelpPageFactory("productions");
|
|
98
125
|
|
|
99
|
-
// src/cli/help-pages/render.ts
|
|
100
|
-
function createHelpPageMap(pages) {
|
|
101
|
-
return new Map(pages.map((page) => [page.path.join(" "), page]));
|
|
102
|
-
}
|
|
103
|
-
function canonicalizeHelpPath(path) {
|
|
104
|
-
const trimmedPath = path.map((segment) => segment.trim()).filter((segment) => segment.length > 0);
|
|
105
|
-
if (trimmedPath.length === 0) {
|
|
106
|
-
return [];
|
|
107
|
-
}
|
|
108
|
-
const [first, ...rest] = trimmedPath;
|
|
109
|
-
return [COMMAND_ALIASES[first] ?? first, ...rest];
|
|
110
|
-
}
|
|
111
|
-
function resolveHelpPage(path, helpPageMap) {
|
|
112
|
-
const canonicalPath = canonicalizeHelpPath(path);
|
|
113
|
-
if (canonicalPath.length === 0) {
|
|
114
|
-
return helpPageMap.get("");
|
|
115
|
-
}
|
|
116
|
-
if (!COMMANDS.includes(canonicalPath[0]) && !(canonicalPath[0] in COMMAND_ALIASES)) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
for (let length = canonicalPath.length;length > 0; length--) {
|
|
120
|
-
const key = canonicalPath.slice(0, length).join(" ");
|
|
121
|
-
const page = helpPageMap.get(key);
|
|
122
|
-
if (page) {
|
|
123
|
-
return page;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
function appendSection(lines, title, sectionLines) {
|
|
129
|
-
if (sectionLines.length === 0) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
if (lines.length > 0 && lines[lines.length - 1] !== "") {
|
|
133
|
-
lines.push("");
|
|
134
|
-
}
|
|
135
|
-
lines.push(title);
|
|
136
|
-
lines.push(...sectionLines);
|
|
137
|
-
}
|
|
138
|
-
function renderEntryList(entries, theme) {
|
|
139
|
-
return entries.map((item) => formatCommand(item.command, item.description, theme));
|
|
140
|
-
}
|
|
141
|
-
function renderBulletList(items, theme) {
|
|
142
|
-
return items.map((item) => formatBullet(item, theme));
|
|
143
|
-
}
|
|
144
|
-
function renderHelpPage(page, theme) {
|
|
145
|
-
const commandLabel = page.path.length === 0 ? "devflare" : `devflare ${page.path.join(" ")}`;
|
|
146
|
-
const lines = [
|
|
147
|
-
"",
|
|
148
|
-
`${cyanBold(commandLabel, theme)} ${dim(page.summary, theme)}`,
|
|
149
|
-
""
|
|
150
|
-
];
|
|
151
|
-
appendSection(lines, dim("usage", theme), page.usage.map((usageLine) => ` ${cyan(usageLine, theme)}`));
|
|
152
|
-
appendSection(lines, dim("overview", theme), renderBulletList(page.description ?? [], theme));
|
|
153
|
-
appendSection(lines, dim("arguments", theme), renderEntryList(page.arguments ?? [], theme));
|
|
154
|
-
appendSection(lines, dim("subcommands", theme), renderEntryList(page.subcommands ?? [], theme));
|
|
155
|
-
appendSection(lines, dim(page.optionSectionTitle ?? "options", theme), renderEntryList(page.options ?? [], theme));
|
|
156
|
-
if (page.aliases && page.aliases.length > 0) {
|
|
157
|
-
appendSection(lines, dim("aliases", theme), page.aliases.map((alias) => ` ${accent(alias, theme, "green")}`));
|
|
158
|
-
}
|
|
159
|
-
appendSection(lines, dim("examples", theme), renderEntryList(page.examples ?? [], theme));
|
|
160
|
-
appendSection(lines, dim("notes", theme), renderBulletList(page.notes ?? [], theme));
|
|
161
|
-
lines.push("");
|
|
162
|
-
return lines.join(`
|
|
163
|
-
`);
|
|
164
|
-
}
|
|
165
|
-
function createThemes(options = {}) {
|
|
166
|
-
return {
|
|
167
|
-
styled: createCliTheme(options),
|
|
168
|
-
plain: { useColor: false }
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
|
|
172
126
|
// src/cli/help-pages/pages/account.ts
|
|
173
127
|
var ACCOUNT_HELP_PAGES = [
|
|
174
128
|
{
|
|
@@ -270,9 +224,7 @@ var ACCOUNT_HELP_PAGES = [
|
|
|
270
224
|
{
|
|
271
225
|
path: ["account", "limits", "enable"],
|
|
272
226
|
summary: "Enable Devflare usage-limit enforcement",
|
|
273
|
-
usage: [
|
|
274
|
-
"devflare account limits enable [--account <id>]"
|
|
275
|
-
],
|
|
227
|
+
usage: ["devflare account limits enable [--account <id>]"],
|
|
276
228
|
description: [
|
|
277
229
|
"Turns on Devflare usage-limit enforcement for the selected account without changing the stored numeric thresholds."
|
|
278
230
|
],
|
|
@@ -287,9 +239,7 @@ var ACCOUNT_HELP_PAGES = [
|
|
|
287
239
|
{
|
|
288
240
|
path: ["account", "limits", "disable"],
|
|
289
241
|
summary: "Disable Devflare usage-limit enforcement",
|
|
290
|
-
usage: [
|
|
291
|
-
"devflare account limits disable [--account <id>]"
|
|
292
|
-
],
|
|
242
|
+
usage: ["devflare account limits disable [--account <id>]"],
|
|
293
243
|
description: [
|
|
294
244
|
"Disables Devflare usage-limit enforcement for the selected account without deleting the stored thresholds."
|
|
295
245
|
],
|
|
@@ -304,15 +254,11 @@ var ACCOUNT_HELP_PAGES = [
|
|
|
304
254
|
{
|
|
305
255
|
path: ["account", "global"],
|
|
306
256
|
summary: "Choose the global default Cloudflare account",
|
|
307
|
-
usage: [
|
|
308
|
-
"devflare account global"
|
|
309
|
-
],
|
|
257
|
+
usage: ["devflare account global"],
|
|
310
258
|
description: [
|
|
311
259
|
"Opens an interactive selector and stores the chosen default account in Devflare preferences."
|
|
312
260
|
],
|
|
313
|
-
examples: [
|
|
314
|
-
entry("devflare account global", "Choose the global default account interactively")
|
|
315
|
-
],
|
|
261
|
+
examples: [entry("devflare account global", "Choose the global default account interactively")],
|
|
316
262
|
notes: [
|
|
317
263
|
"The selected account is written to Devflare preferences and mirrored to cloud KV when available."
|
|
318
264
|
]
|
|
@@ -320,9 +266,7 @@ var ACCOUNT_HELP_PAGES = [
|
|
|
320
266
|
{
|
|
321
267
|
path: ["account", "workspace"],
|
|
322
268
|
summary: "Choose the workspace Cloudflare account",
|
|
323
|
-
usage: [
|
|
324
|
-
"devflare account workspace"
|
|
325
|
-
],
|
|
269
|
+
usage: ["devflare account workspace"],
|
|
326
270
|
description: [
|
|
327
271
|
"Opens an interactive selector and stores the chosen account in the current workspace package metadata."
|
|
328
272
|
],
|
|
@@ -340,9 +284,7 @@ var CORE_HELP_PAGES = [
|
|
|
340
284
|
{
|
|
341
285
|
path: [],
|
|
342
286
|
summary: "Config compiler + CLI orchestrator for Cloudflare Workers",
|
|
343
|
-
usage: [
|
|
344
|
-
"devflare <command> [options]"
|
|
345
|
-
],
|
|
287
|
+
usage: ["devflare <command> [options]"],
|
|
346
288
|
description: [
|
|
347
289
|
"Use `devflare <command> --help` or `devflare help <command>` to see a detailed command guide.",
|
|
348
290
|
"Devflare commands resolve local config first, then bridge that config to Wrangler-compatible Cloudflare workflows."
|
|
@@ -385,19 +327,13 @@ var CORE_HELP_PAGES = [
|
|
|
385
327
|
{
|
|
386
328
|
path: ["init"],
|
|
387
329
|
summary: "Create a new devflare project",
|
|
388
|
-
usage: [
|
|
389
|
-
"devflare init [name] [--template <minimal|api>]"
|
|
390
|
-
],
|
|
330
|
+
usage: ["devflare init [name] [--template <minimal|api>]"],
|
|
391
331
|
description: [
|
|
392
332
|
"Scaffolds a new project directory with a starter `devflare.config.ts`, TypeScript config, and package.json scripts.",
|
|
393
333
|
"Use the `api` template when you want middleware and API routing structure out of the box."
|
|
394
334
|
],
|
|
395
|
-
arguments: [
|
|
396
|
-
|
|
397
|
-
],
|
|
398
|
-
options: [
|
|
399
|
-
entry("--template <minimal|api>", "Pick the starter template to scaffold")
|
|
400
|
-
],
|
|
335
|
+
arguments: [entry("[name]", "Project directory name (defaults to `my-devflare-app`)")],
|
|
336
|
+
options: [entry("--template <minimal|api>", "Pick the starter template to scaffold")],
|
|
401
337
|
examples: [
|
|
402
338
|
entry("devflare init my-app", "Create a minimal starter called `my-app`"),
|
|
403
339
|
entry("devflare init edge-api --template api", "Create the API starter with middleware structure")
|
|
@@ -445,9 +381,7 @@ var CORE_HELP_PAGES = [
|
|
|
445
381
|
{
|
|
446
382
|
path: ["build"],
|
|
447
383
|
summary: "Build production deployment artifacts",
|
|
448
|
-
usage: [
|
|
449
|
-
"devflare build [--config <path>] [--env <name>] [--debug]"
|
|
450
|
-
],
|
|
384
|
+
usage: ["devflare build [--config <path>] [--env <name>] [--debug]"],
|
|
451
385
|
description: [
|
|
452
386
|
"Resolves your Devflare config locally, applies environment overrides, and generates the build artifacts used by deploy flows.",
|
|
453
387
|
"Build preserves named bindings instead of provisioning Cloudflare resources, so it is the safest way to inspect what Devflare will hand to deploy before you actually ship."
|
|
@@ -548,9 +482,7 @@ var CORE_HELP_PAGES = [
|
|
|
548
482
|
{
|
|
549
483
|
path: ["types"],
|
|
550
484
|
summary: "Generate TypeScript bindings from your config",
|
|
551
|
-
usage: [
|
|
552
|
-
"devflare types [--config <path>] [--output <path>] [--debug]"
|
|
553
|
-
],
|
|
485
|
+
usage: ["devflare types [--config <path>] [--output <path>] [--debug]"],
|
|
554
486
|
description: [
|
|
555
487
|
"Generates `env.d.ts`-style bindings for KV, D1, R2, Durable Objects, Queues, service bindings, vars, and secrets.",
|
|
556
488
|
"Devflare also discovers entrypoints and cross-worker Durable Objects so service RPC bindings can stay strongly typed."
|
|
@@ -572,9 +504,7 @@ var CORE_HELP_PAGES = [
|
|
|
572
504
|
{
|
|
573
505
|
path: ["doctor"],
|
|
574
506
|
summary: "Check project configuration",
|
|
575
|
-
usage: [
|
|
576
|
-
"devflare doctor [--config <path>] [--scope <all|local|deploy>]"
|
|
577
|
-
],
|
|
507
|
+
usage: ["devflare doctor [--config <path>] [--scope <all|local|deploy>]"],
|
|
578
508
|
description: [
|
|
579
509
|
"Checks for a loadable devflare config, package.json, TypeScript config, Vite integration, and generated Wrangler artifacts.",
|
|
580
510
|
"Useful when a project feels cursed but not cursed enough to throw a clear error yet."
|
|
@@ -605,9 +535,7 @@ var CORE_HELP_PAGES = [
|
|
|
605
535
|
"Use `--format wrangler` when you want to inspect the exact Wrangler-compatible config Devflare will emit.",
|
|
606
536
|
"Use `--phase local` or `--local` for offline local-runtime inspection without resolving Cloudflare account resource names."
|
|
607
537
|
],
|
|
608
|
-
subcommands: [
|
|
609
|
-
entry("print", "Print the resolved config (default subcommand)")
|
|
610
|
-
],
|
|
538
|
+
subcommands: [entry("print", "Print the resolved config (default subcommand)")],
|
|
611
539
|
options: [
|
|
612
540
|
entry("--config <path>", "Use a specific devflare config file"),
|
|
613
541
|
entry("--env <name>", "Resolve `config.env[name]` before printing"),
|
|
@@ -650,9 +578,7 @@ var CORE_HELP_PAGES = [
|
|
|
650
578
|
{
|
|
651
579
|
path: ["login"],
|
|
652
580
|
summary: "Authenticate with Cloudflare via Wrangler",
|
|
653
|
-
usage: [
|
|
654
|
-
"devflare login [--force]"
|
|
655
|
-
],
|
|
581
|
+
usage: ["devflare login [--force]"],
|
|
656
582
|
description: [
|
|
657
583
|
"Uses Wrangler login under the hood, then reports the resolved primary or configured account context."
|
|
658
584
|
],
|
|
@@ -670,10 +596,7 @@ var CORE_HELP_PAGES = [
|
|
|
670
596
|
{
|
|
671
597
|
path: ["help"],
|
|
672
598
|
summary: "Show command overview or command-specific help",
|
|
673
|
-
usage: [
|
|
674
|
-
"devflare help",
|
|
675
|
-
"devflare help <command> [subcommand]"
|
|
676
|
-
],
|
|
599
|
+
usage: ["devflare help", "devflare help <command> [subcommand]"],
|
|
677
600
|
description: [
|
|
678
601
|
"Prints the root command overview or the detailed help page for a specific command path."
|
|
679
602
|
],
|
|
@@ -689,13 +612,8 @@ var CORE_HELP_PAGES = [
|
|
|
689
612
|
{
|
|
690
613
|
path: ["version"],
|
|
691
614
|
summary: "Show the installed devflare version",
|
|
692
|
-
usage: [
|
|
693
|
-
|
|
694
|
-
"devflare --version"
|
|
695
|
-
],
|
|
696
|
-
description: [
|
|
697
|
-
"Prints the installed package version and exits."
|
|
698
|
-
],
|
|
615
|
+
usage: ["devflare version", "devflare --version"],
|
|
616
|
+
description: ["Prints the installed package version and exits."],
|
|
699
617
|
examples: [
|
|
700
618
|
entry("devflare version", "Show the installed version"),
|
|
701
619
|
entry("devflare --version", "Show the installed version using the global flag")
|
|
@@ -708,16 +626,12 @@ var MISC_HELP_PAGES = [
|
|
|
708
626
|
{
|
|
709
627
|
path: ["worker"],
|
|
710
628
|
summary: "Rename and manage Worker control-plane operations",
|
|
711
|
-
usage: [
|
|
712
|
-
"devflare worker rename <old-name> --to <new-name> [--config <path>] [--account <id>]"
|
|
713
|
-
],
|
|
629
|
+
usage: ["devflare worker rename <old-name> --to <new-name> [--config <path>] [--account <id>]"],
|
|
714
630
|
description: [
|
|
715
631
|
"Currently, `rename` is the supported worker control-plane operation.",
|
|
716
632
|
"Devflare renames the remote Worker when needed and updates the matching local config name when it can resolve it safely."
|
|
717
633
|
],
|
|
718
|
-
subcommands: [
|
|
719
|
-
entry("rename", "Rename a Worker and sync the matching devflare config name")
|
|
720
|
-
],
|
|
634
|
+
subcommands: [entry("rename", "Rename a Worker and sync the matching devflare config name")],
|
|
721
635
|
options: [
|
|
722
636
|
entry("--to <new-name>", "New Worker name for the `rename` subcommand"),
|
|
723
637
|
entry("--config <path>", "Choose the config file to update when multiple configs might match"),
|
|
@@ -733,9 +647,7 @@ var MISC_HELP_PAGES = [
|
|
|
733
647
|
{
|
|
734
648
|
path: ["worker", "rename"],
|
|
735
649
|
summary: "Rename a Worker and sync the matching config",
|
|
736
|
-
usage: [
|
|
737
|
-
"devflare worker rename <old-name> --to <new-name> [--config <path>] [--account <id>]"
|
|
738
|
-
],
|
|
650
|
+
usage: ["devflare worker rename <old-name> --to <new-name> [--config <path>] [--account <id>]"],
|
|
739
651
|
description: [
|
|
740
652
|
"Renames the remote Worker when necessary, updates the top-level `name` field in the selected config, and then warns about any remaining local references to the old Worker name."
|
|
741
653
|
],
|
|
@@ -791,15 +703,9 @@ var MISC_HELP_PAGES = [
|
|
|
791
703
|
{
|
|
792
704
|
path: ["ai"],
|
|
793
705
|
summary: "Show Workers AI pricing information",
|
|
794
|
-
usage: [
|
|
795
|
-
|
|
796
|
-
],
|
|
797
|
-
description: [
|
|
798
|
-
"Prints the built-in Workers AI pricing reference bundled with Devflare."
|
|
799
|
-
],
|
|
800
|
-
examples: [
|
|
801
|
-
entry("devflare ai", "Print the bundled Workers AI pricing reference")
|
|
802
|
-
],
|
|
706
|
+
usage: ["devflare ai"],
|
|
707
|
+
description: ["Prints the built-in Workers AI pricing reference bundled with Devflare."],
|
|
708
|
+
examples: [entry("devflare ai", "Print the bundled Workers AI pricing reference")],
|
|
803
709
|
notes: [
|
|
804
710
|
"This command does not currently query live account state; it prints the pricing table bundled with the current Devflare build."
|
|
805
711
|
]
|
|
@@ -831,32 +737,16 @@ var MISC_HELP_PAGES = [
|
|
|
831
737
|
"`DEVFLARE_REMOTE` can keep remote mode active even after you run `disable`."
|
|
832
738
|
]
|
|
833
739
|
},
|
|
834
|
-
createRemoteSubcommandPage("status", "Show the current effective remote-mode status", [
|
|
835
|
-
"devflare remote status"
|
|
836
|
-
], [
|
|
740
|
+
createRemoteSubcommandPage("status", "Show the current effective remote-mode status", ["devflare remote status"], [
|
|
837
741
|
"Shows whether remote mode is active, where that state came from, and when it expires if it is time-limited."
|
|
838
|
-
], [
|
|
839
|
-
|
|
840
|
-
], [
|
|
841
|
-
"`devflare remote` without a subcommand behaves the same way."
|
|
842
|
-
]),
|
|
843
|
-
createRemoteSubcommandPage("enable", "Enable remote test mode", [
|
|
844
|
-
"devflare remote enable [minutes]"
|
|
845
|
-
], [
|
|
742
|
+
], [entry("devflare remote status", "Inspect the current remote-mode status")], ["`devflare remote` without a subcommand behaves the same way."]),
|
|
743
|
+
createRemoteSubcommandPage("enable", "Enable remote test mode", ["devflare remote enable [minutes]"], [
|
|
846
744
|
"Enables remote test mode for the given duration, defaulting to 30 minutes when the duration is omitted or invalid."
|
|
847
745
|
], [
|
|
848
746
|
entry("devflare remote enable", "Enable remote mode for the default 30 minutes"),
|
|
849
747
|
entry("devflare remote enable 90", "Enable remote mode for 90 minutes")
|
|
850
|
-
], [
|
|
851
|
-
|
|
852
|
-
]),
|
|
853
|
-
createRemoteSubcommandPage("disable", "Disable remote test mode", [
|
|
854
|
-
"devflare remote disable"
|
|
855
|
-
], [
|
|
856
|
-
"Disables the stored remote-mode window immediately."
|
|
857
|
-
], [
|
|
858
|
-
entry("devflare remote disable", "Disable remote mode immediately")
|
|
859
|
-
], [
|
|
748
|
+
], ["Remote tests can incur real Cloudflare costs, so prefer the shortest useful duration."]),
|
|
749
|
+
createRemoteSubcommandPage("disable", "Disable remote test mode", ["devflare remote disable"], ["Disables the stored remote-mode window immediately."], [entry("devflare remote disable", "Disable remote mode immediately")], [
|
|
860
750
|
"If `DEVFLARE_REMOTE` is still set in the environment, effective remote mode may remain active until you unset it."
|
|
861
751
|
])
|
|
862
752
|
];
|
|
@@ -1008,9 +898,7 @@ var PRODUCTION_HELP_PAGES = [
|
|
|
1008
898
|
"`delete` removes the Worker script only. Review KV, D1, R2, queues, and other account resources separately before cleaning them up."
|
|
1009
899
|
]
|
|
1010
900
|
},
|
|
1011
|
-
createProductionsSubcommandPage("list", "List live production Workers and their active deployments", [
|
|
1012
|
-
"devflare productions [--config <path>] [--env <name>] [--account <id>] [--worker <name>]"
|
|
1013
|
-
], [
|
|
901
|
+
createProductionsSubcommandPage("list", "List live production Workers and their active deployments", ["devflare productions [--config <path>] [--env <name>] [--account <id>] [--worker <name>]"], [
|
|
1014
902
|
"Inspects live Cloudflare production deployment state for locally configured Workers, or for one explicitly selected Worker when `--worker` is provided."
|
|
1015
903
|
], [
|
|
1016
904
|
entry("--config <path>", "Use a specific devflare config file"),
|
|
@@ -1020,9 +908,7 @@ var PRODUCTION_HELP_PAGES = [
|
|
|
1020
908
|
], [
|
|
1021
909
|
entry("devflare productions", "Inspect the current package or monorepo production Workers"),
|
|
1022
910
|
entry("devflare productions --worker my-worker", "Inspect one live production Worker directly")
|
|
1023
|
-
], [
|
|
1024
|
-
"This view is read-only and is backed by live Cloudflare production deployment data."
|
|
1025
|
-
]),
|
|
911
|
+
], ["This view is read-only and is backed by live Cloudflare production deployment data."]),
|
|
1026
912
|
createProductionsSubcommandPage("versions", "Show recent stored production versions and the current active version", [
|
|
1027
913
|
"devflare productions versions [--config <path>] [--env <name>] [--account <id>] [--worker <name>]"
|
|
1028
914
|
], [
|
|
@@ -1052,12 +938,8 @@ var PRODUCTION_HELP_PAGES = [
|
|
|
1052
938
|
entry("devflare productions rollback --worker my-worker", "Preview a rollback for `my-worker`"),
|
|
1053
939
|
entry("devflare productions rollback --worker my-worker --apply", "Roll `my-worker` back to the previous production version"),
|
|
1054
940
|
entry("devflare productions rollback --worker my-worker --version-id 1234abcd-... --apply", "Roll `my-worker` back to a specific production version")
|
|
1055
|
-
], [
|
|
1056
|
-
|
|
1057
|
-
]),
|
|
1058
|
-
createProductionsSubcommandPage("delete", "Delete a live production Worker script", [
|
|
1059
|
-
"devflare productions delete [--config <path>] [--account <id>] [--worker <name>] [--apply]"
|
|
1060
|
-
], [
|
|
941
|
+
], ["Without `--apply`, this command is a dry run."]),
|
|
942
|
+
createProductionsSubcommandPage("delete", "Delete a live production Worker script", ["devflare productions delete [--config <path>] [--account <id>] [--worker <name>] [--apply]"], [
|
|
1061
943
|
"Deletes the selected live production Worker script from Cloudflare. This does not automatically remove independent account resources such as KV namespaces or D1 databases."
|
|
1062
944
|
], [
|
|
1063
945
|
entry("--config <path>", "Use a specific devflare config file"),
|
|
@@ -1082,6 +964,75 @@ var HELP_PAGES = [
|
|
|
1082
964
|
...MISC_HELP_PAGES
|
|
1083
965
|
];
|
|
1084
966
|
|
|
967
|
+
// src/cli/help-pages/render.ts
|
|
968
|
+
function createHelpPageMap(pages) {
|
|
969
|
+
return new Map(pages.map((page) => [page.path.join(" "), page]));
|
|
970
|
+
}
|
|
971
|
+
function canonicalizeHelpPath(path) {
|
|
972
|
+
const trimmedPath = path.map((segment) => segment.trim()).filter((segment) => segment.length > 0);
|
|
973
|
+
if (trimmedPath.length === 0) {
|
|
974
|
+
return [];
|
|
975
|
+
}
|
|
976
|
+
const [first, ...rest] = trimmedPath;
|
|
977
|
+
return [COMMAND_ALIASES[first] ?? first, ...rest];
|
|
978
|
+
}
|
|
979
|
+
function resolveHelpPage(path, helpPageMap) {
|
|
980
|
+
const canonicalPath = canonicalizeHelpPath(path);
|
|
981
|
+
if (canonicalPath.length === 0) {
|
|
982
|
+
return helpPageMap.get("");
|
|
983
|
+
}
|
|
984
|
+
if (!COMMANDS.includes(canonicalPath[0]) && !(canonicalPath[0] in COMMAND_ALIASES)) {
|
|
985
|
+
return;
|
|
986
|
+
}
|
|
987
|
+
for (let length = canonicalPath.length;length > 0; length--) {
|
|
988
|
+
const key = canonicalPath.slice(0, length).join(" ");
|
|
989
|
+
const page = helpPageMap.get(key);
|
|
990
|
+
if (page) {
|
|
991
|
+
return page;
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
return;
|
|
995
|
+
}
|
|
996
|
+
function appendSection(lines, title, sectionLines) {
|
|
997
|
+
if (sectionLines.length === 0) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
if (lines.length > 0 && lines[lines.length - 1] !== "") {
|
|
1001
|
+
lines.push("");
|
|
1002
|
+
}
|
|
1003
|
+
lines.push(title);
|
|
1004
|
+
lines.push(...sectionLines);
|
|
1005
|
+
}
|
|
1006
|
+
function renderEntryList(entries, theme) {
|
|
1007
|
+
return entries.map((item) => formatCommand(item.command, item.description, theme));
|
|
1008
|
+
}
|
|
1009
|
+
function renderBulletList(items, theme) {
|
|
1010
|
+
return items.map((item) => formatBullet(item, theme));
|
|
1011
|
+
}
|
|
1012
|
+
function renderHelpPage(page, theme) {
|
|
1013
|
+
const commandLabel = page.path.length === 0 ? "devflare" : `devflare ${page.path.join(" ")}`;
|
|
1014
|
+
const lines = ["", `${cyanBold(commandLabel, theme)} ${dim(page.summary, theme)}`, ""];
|
|
1015
|
+
appendSection(lines, dim("usage", theme), page.usage.map((usageLine) => ` ${cyan(usageLine, theme)}`));
|
|
1016
|
+
appendSection(lines, dim("overview", theme), renderBulletList(page.description ?? [], theme));
|
|
1017
|
+
appendSection(lines, dim("arguments", theme), renderEntryList(page.arguments ?? [], theme));
|
|
1018
|
+
appendSection(lines, dim("subcommands", theme), renderEntryList(page.subcommands ?? [], theme));
|
|
1019
|
+
appendSection(lines, dim(page.optionSectionTitle ?? "options", theme), renderEntryList(page.options ?? [], theme));
|
|
1020
|
+
if (page.aliases && page.aliases.length > 0) {
|
|
1021
|
+
appendSection(lines, dim("aliases", theme), page.aliases.map((alias) => ` ${accent(alias, theme, "green")}`));
|
|
1022
|
+
}
|
|
1023
|
+
appendSection(lines, dim("examples", theme), renderEntryList(page.examples ?? [], theme));
|
|
1024
|
+
appendSection(lines, dim("notes", theme), renderBulletList(page.notes ?? [], theme));
|
|
1025
|
+
lines.push("");
|
|
1026
|
+
return lines.join(`
|
|
1027
|
+
`);
|
|
1028
|
+
}
|
|
1029
|
+
function createThemes(options = {}) {
|
|
1030
|
+
return {
|
|
1031
|
+
styled: createCliTheme(options),
|
|
1032
|
+
plain: { useColor: false }
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1085
1036
|
// src/cli/help.ts
|
|
1086
1037
|
var HELP_PAGE_MAP = createHelpPageMap(HELP_PAGES);
|
|
1087
1038
|
function renderHelp(path, options = {}) {
|
|
@@ -1098,9 +1049,9 @@ function renderHelp(path, options = {}) {
|
|
|
1098
1049
|
}
|
|
1099
1050
|
|
|
1100
1051
|
// src/cli/workspace-build-guard.ts
|
|
1101
|
-
import {
|
|
1102
|
-
import { dirname, join } from "pathe";
|
|
1052
|
+
import { readFile, readdir, stat } from "node:fs/promises";
|
|
1103
1053
|
import { fileURLToPath } from "node:url";
|
|
1054
|
+
import { dirname, join } from "pathe";
|
|
1104
1055
|
function isTruthyEnvFlag(value) {
|
|
1105
1056
|
const normalized = value?.trim().toLowerCase();
|
|
1106
1057
|
return normalized !== undefined && ["1", "true", "yes", "on"].includes(normalized);
|
|
@@ -1316,10 +1267,11 @@ async function runCli(argv, options = {}) {
|
|
|
1316
1267
|
return { exitCode: 1 };
|
|
1317
1268
|
}
|
|
1318
1269
|
switch (parsed.command) {
|
|
1319
|
-
case "version":
|
|
1270
|
+
case "version": {
|
|
1320
1271
|
const version = await getPackageVersion();
|
|
1321
1272
|
logLine(logger, `${cyanBold("devflare", theme)} ${dim(`v${version}`, theme)}`);
|
|
1322
1273
|
return { exitCode: 0, output: version };
|
|
1274
|
+
}
|
|
1323
1275
|
case "init":
|
|
1324
1276
|
return runInit(parsed, logger, options);
|
|
1325
1277
|
case "dev":
|
|
@@ -1358,70 +1310,70 @@ async function runCli(argv, options = {}) {
|
|
|
1358
1310
|
}
|
|
1359
1311
|
}
|
|
1360
1312
|
async function runInit(parsed, logger, options) {
|
|
1361
|
-
const { runInitCommand } = await import("./init-
|
|
1313
|
+
const { runInitCommand } = await import("./init-tb8jqgvr.js");
|
|
1362
1314
|
return runInitCommand(parsed, logger, options);
|
|
1363
1315
|
}
|
|
1364
1316
|
async function runDev(parsed, logger, options) {
|
|
1365
|
-
const { runDevCommand } = await import("./dev-
|
|
1317
|
+
const { runDevCommand } = await import("./dev-9scy9gap.js");
|
|
1366
1318
|
return runDevCommand(parsed, logger, options);
|
|
1367
1319
|
}
|
|
1368
1320
|
async function runBuild(parsed, logger, options) {
|
|
1369
|
-
const { runBuildCommand } = await import("./build-
|
|
1321
|
+
const { runBuildCommand } = await import("./build-8bn7frg8.js");
|
|
1370
1322
|
return runBuildCommand(parsed, logger, options);
|
|
1371
1323
|
}
|
|
1372
1324
|
async function runDeploy(parsed, logger, options) {
|
|
1373
|
-
const { runDeployCommand } = await import("./deploy-
|
|
1325
|
+
const { runDeployCommand } = await import("./deploy-vpcp41fw.js");
|
|
1374
1326
|
return runDeployCommand(parsed, logger, {
|
|
1375
1327
|
...options,
|
|
1376
1328
|
requireExplicitDeployTarget: true
|
|
1377
1329
|
});
|
|
1378
1330
|
}
|
|
1379
1331
|
async function runTypes(parsed, logger, options) {
|
|
1380
|
-
const { runTypesCommand } = await import("./types-
|
|
1332
|
+
const { runTypesCommand } = await import("./types-zekmbebk.js");
|
|
1381
1333
|
return runTypesCommand(parsed, logger, options);
|
|
1382
1334
|
}
|
|
1383
1335
|
async function runDoctor(parsed, logger, options) {
|
|
1384
|
-
const { runDoctorCommand } = await import("./doctor-
|
|
1336
|
+
const { runDoctorCommand } = await import("./doctor-swfeeqny.js");
|
|
1385
1337
|
return runDoctorCommand(parsed, logger, options);
|
|
1386
1338
|
}
|
|
1387
1339
|
async function runConfig(parsed, logger, options) {
|
|
1388
|
-
const { runConfigCommand } = await import("./config-
|
|
1340
|
+
const { runConfigCommand } = await import("./config-gphd6wx7.js");
|
|
1389
1341
|
return runConfigCommand(parsed, logger, options);
|
|
1390
1342
|
}
|
|
1391
1343
|
async function runAccount(parsed, logger, options) {
|
|
1392
|
-
const { runAccountCommand } = await import("./account-
|
|
1344
|
+
const { runAccountCommand } = await import("./account-p9eywryw.js");
|
|
1393
1345
|
return runAccountCommand(parsed, logger, options);
|
|
1394
1346
|
}
|
|
1395
1347
|
async function runLogin(parsed, logger, options) {
|
|
1396
|
-
const { runLoginCommand } = await import("./login-
|
|
1348
|
+
const { runLoginCommand } = await import("./login-7vyzeqy4.js");
|
|
1397
1349
|
return runLoginCommand(parsed, logger, options);
|
|
1398
1350
|
}
|
|
1399
1351
|
async function runPreviews(parsed, logger, options) {
|
|
1400
|
-
const { runPreviewsCommand } = await import("./previews-
|
|
1352
|
+
const { runPreviewsCommand } = await import("./previews-jfbectpc.js");
|
|
1401
1353
|
return runPreviewsCommand(parsed, logger, options);
|
|
1402
1354
|
}
|
|
1403
1355
|
async function runProductions(parsed, logger, options) {
|
|
1404
|
-
const { runProductionsCommand } = await import("./productions-
|
|
1356
|
+
const { runProductionsCommand } = await import("./productions-49ct4kjm.js");
|
|
1405
1357
|
return runProductionsCommand(parsed, logger, options);
|
|
1406
1358
|
}
|
|
1407
1359
|
async function runWorker(parsed, logger, options) {
|
|
1408
|
-
const { runWorkerCommand } = await import("./worker-
|
|
1360
|
+
const { runWorkerCommand } = await import("./worker-706g8qeh.js");
|
|
1409
1361
|
return runWorkerCommand(parsed, logger, options);
|
|
1410
1362
|
}
|
|
1411
1363
|
async function runToken(parsed, logger, options) {
|
|
1412
|
-
const { runTokenCommand } = await import("./token-
|
|
1364
|
+
const { runTokenCommand } = await import("./token-yp1qa70y.js");
|
|
1413
1365
|
return runTokenCommand(parsed, logger, options);
|
|
1414
1366
|
}
|
|
1415
1367
|
async function runSecrets(parsed, logger, options) {
|
|
1416
|
-
const { runSecretsCommand } = await import("./secrets-
|
|
1368
|
+
const { runSecretsCommand } = await import("./secrets-9ne7armr.js");
|
|
1417
1369
|
return runSecretsCommand(parsed, logger, options);
|
|
1418
1370
|
}
|
|
1419
1371
|
async function runAI() {
|
|
1420
|
-
const { runAICommand } = await import("./ai-
|
|
1372
|
+
const { runAICommand } = await import("./ai-r3zqmxan.js");
|
|
1421
1373
|
return runAICommand();
|
|
1422
1374
|
}
|
|
1423
1375
|
async function runRemote(parsed, logger, options) {
|
|
1424
|
-
const { runRemoteCommand } = await import("./remote-
|
|
1376
|
+
const { runRemoteCommand } = await import("./remote-6876k6mz.js");
|
|
1425
1377
|
return runRemoteCommand(parsed, logger, options);
|
|
1426
1378
|
}
|
|
1427
1379
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/cloudflare/remote-config.ts
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
|
|
2
3
|
import { homedir } from "os";
|
|
3
4
|
import { join } from "path";
|
|
4
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from "fs";
|
|
5
5
|
var MIN_MINUTES = 1;
|
|
6
6
|
var MAX_MINUTES = 1440;
|
|
7
7
|
function getConfigDir() {
|
|
@@ -74,7 +74,7 @@ function getEffectiveRemoteModeStatus() {
|
|
|
74
74
|
return {
|
|
75
75
|
isActive: true,
|
|
76
76
|
source: "env",
|
|
77
|
-
remainingMinutes:
|
|
77
|
+
remainingMinutes: Number.POSITIVE_INFINITY,
|
|
78
78
|
expiresAt: null,
|
|
79
79
|
envVarSet: true
|
|
80
80
|
};
|