@edge-base/cli 0.1.1
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/README.md +182 -0
- package/dist/commands/admin.d.ts +10 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +307 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/backup.d.ts +148 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +1247 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +168 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/create-plugin.d.ts +3 -0
- package/dist/commands/create-plugin.d.ts.map +1 -0
- package/dist/commands/create-plugin.js +208 -0
- package/dist/commands/create-plugin.js.map +1 -0
- package/dist/commands/deploy.d.ts +146 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +1823 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/describe.d.ts +45 -0
- package/dist/commands/describe.d.ts.map +1 -0
- package/dist/commands/describe.js +114 -0
- package/dist/commands/describe.js.map +1 -0
- package/dist/commands/destroy.d.ts +13 -0
- package/dist/commands/destroy.d.ts.map +1 -0
- package/dist/commands/destroy.js +642 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/dev.d.ts +80 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +1131 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docker.d.ts +22 -0
- package/dist/commands/docker.d.ts.map +1 -0
- package/dist/commands/docker.js +373 -0
- package/dist/commands/docker.js.map +1 -0
- package/dist/commands/export.d.ts +15 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +142 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +506 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/keys.d.ts +23 -0
- package/dist/commands/keys.d.ts.map +1 -0
- package/dist/commands/keys.js +347 -0
- package/dist/commands/keys.js.map +1 -0
- package/dist/commands/logs.d.ts +17 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +104 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/migrate.d.ts +29 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +302 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/migration.d.ts +18 -0
- package/dist/commands/migration.d.ts.map +1 -0
- package/dist/commands/migration.js +114 -0
- package/dist/commands/migration.js.map +1 -0
- package/dist/commands/neon.d.ts +66 -0
- package/dist/commands/neon.d.ts.map +1 -0
- package/dist/commands/neon.js +600 -0
- package/dist/commands/neon.js.map +1 -0
- package/dist/commands/plugins.d.ts +9 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +295 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/realtime.d.ts +3 -0
- package/dist/commands/realtime.d.ts.map +1 -0
- package/dist/commands/realtime.js +71 -0
- package/dist/commands/realtime.js.map +1 -0
- package/dist/commands/secret.d.ts +7 -0
- package/dist/commands/secret.d.ts.map +1 -0
- package/dist/commands/secret.js +180 -0
- package/dist/commands/secret.js.map +1 -0
- package/dist/commands/seed.d.ts +21 -0
- package/dist/commands/seed.d.ts.map +1 -0
- package/dist/commands/seed.js +325 -0
- package/dist/commands/seed.js.map +1 -0
- package/dist/commands/telemetry.d.ts +12 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +57 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/commands/typegen.d.ts +26 -0
- package/dist/commands/typegen.d.ts.map +1 -0
- package/dist/commands/typegen.js +212 -0
- package/dist/commands/typegen.js.map +1 -0
- package/dist/commands/upgrade.d.ts +29 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +265 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/webhook-test.d.ts +3 -0
- package/dist/commands/webhook-test.d.ts.map +1 -0
- package/dist/commands/webhook-test.js +133 -0
- package/dist/commands/webhook-test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +183 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-contract.d.ts +36 -0
- package/dist/lib/agent-contract.d.ts.map +1 -0
- package/dist/lib/agent-contract.js +78 -0
- package/dist/lib/agent-contract.js.map +1 -0
- package/dist/lib/cf-auth.d.ts +76 -0
- package/dist/lib/cf-auth.d.ts.map +1 -0
- package/dist/lib/cf-auth.js +321 -0
- package/dist/lib/cf-auth.js.map +1 -0
- package/dist/lib/cli-context.d.ts +23 -0
- package/dist/lib/cli-context.d.ts.map +1 -0
- package/dist/lib/cli-context.js +40 -0
- package/dist/lib/cli-context.js.map +1 -0
- package/dist/lib/cloudflare-deploy-manifest.d.ts +26 -0
- package/dist/lib/cloudflare-deploy-manifest.d.ts.map +1 -0
- package/dist/lib/cloudflare-deploy-manifest.js +107 -0
- package/dist/lib/cloudflare-deploy-manifest.js.map +1 -0
- package/dist/lib/cloudflare-wrangler-resources.d.ts +32 -0
- package/dist/lib/cloudflare-wrangler-resources.d.ts.map +1 -0
- package/dist/lib/cloudflare-wrangler-resources.js +59 -0
- package/dist/lib/cloudflare-wrangler-resources.js.map +1 -0
- package/dist/lib/config-editor.d.ts +139 -0
- package/dist/lib/config-editor.d.ts.map +1 -0
- package/dist/lib/config-editor.js +1188 -0
- package/dist/lib/config-editor.js.map +1 -0
- package/dist/lib/deploy-shared.d.ts +55 -0
- package/dist/lib/deploy-shared.d.ts.map +1 -0
- package/dist/lib/deploy-shared.js +183 -0
- package/dist/lib/deploy-shared.js.map +1 -0
- package/dist/lib/dev-sidecar.d.ts +31 -0
- package/dist/lib/dev-sidecar.d.ts.map +1 -0
- package/dist/lib/dev-sidecar.js +1058 -0
- package/dist/lib/dev-sidecar.js.map +1 -0
- package/dist/lib/fetch-with-timeout.d.ts +14 -0
- package/dist/lib/fetch-with-timeout.d.ts.map +1 -0
- package/dist/lib/fetch-with-timeout.js +29 -0
- package/dist/lib/fetch-with-timeout.js.map +1 -0
- package/dist/lib/function-registry.d.ts +56 -0
- package/dist/lib/function-registry.d.ts.map +1 -0
- package/dist/lib/function-registry.js +210 -0
- package/dist/lib/function-registry.js.map +1 -0
- package/dist/lib/load-config.d.ts +24 -0
- package/dist/lib/load-config.d.ts.map +1 -0
- package/dist/lib/load-config.js +263 -0
- package/dist/lib/load-config.js.map +1 -0
- package/dist/lib/local-secrets.d.ts +2 -0
- package/dist/lib/local-secrets.d.ts.map +1 -0
- package/dist/lib/local-secrets.js +60 -0
- package/dist/lib/local-secrets.js.map +1 -0
- package/dist/lib/managed-resource-names.d.ts +4 -0
- package/dist/lib/managed-resource-names.d.ts.map +1 -0
- package/dist/lib/managed-resource-names.js +19 -0
- package/dist/lib/managed-resource-names.js.map +1 -0
- package/dist/lib/migrator.d.ts +57 -0
- package/dist/lib/migrator.d.ts.map +1 -0
- package/dist/lib/migrator.js +321 -0
- package/dist/lib/migrator.js.map +1 -0
- package/dist/lib/neon.d.ts +41 -0
- package/dist/lib/neon.d.ts.map +1 -0
- package/dist/lib/neon.js +325 -0
- package/dist/lib/neon.js.map +1 -0
- package/dist/lib/node-tools.d.ts +10 -0
- package/dist/lib/node-tools.d.ts.map +1 -0
- package/dist/lib/node-tools.js +32 -0
- package/dist/lib/node-tools.js.map +1 -0
- package/dist/lib/npm.d.ts +8 -0
- package/dist/lib/npm.d.ts.map +1 -0
- package/dist/lib/npm.js +10 -0
- package/dist/lib/npm.js.map +1 -0
- package/dist/lib/npx.d.ts +9 -0
- package/dist/lib/npx.d.ts.map +1 -0
- package/dist/lib/npx.js +11 -0
- package/dist/lib/npx.js.map +1 -0
- package/dist/lib/project-runtime.d.ts +38 -0
- package/dist/lib/project-runtime.d.ts.map +1 -0
- package/dist/lib/project-runtime.js +122 -0
- package/dist/lib/project-runtime.js.map +1 -0
- package/dist/lib/prompts.d.ts +28 -0
- package/dist/lib/prompts.d.ts.map +1 -0
- package/dist/lib/prompts.js +85 -0
- package/dist/lib/prompts.js.map +1 -0
- package/dist/lib/rate-limit-bindings.d.ts +11 -0
- package/dist/lib/rate-limit-bindings.d.ts.map +1 -0
- package/dist/lib/rate-limit-bindings.js +52 -0
- package/dist/lib/rate-limit-bindings.js.map +1 -0
- package/dist/lib/realtime-provision.d.ts +22 -0
- package/dist/lib/realtime-provision.d.ts.map +1 -0
- package/dist/lib/realtime-provision.js +246 -0
- package/dist/lib/realtime-provision.js.map +1 -0
- package/dist/lib/resolve-options.d.ts +42 -0
- package/dist/lib/resolve-options.d.ts.map +1 -0
- package/dist/lib/resolve-options.js +98 -0
- package/dist/lib/resolve-options.js.map +1 -0
- package/dist/lib/runtime-scaffold.d.ts +17 -0
- package/dist/lib/runtime-scaffold.d.ts.map +1 -0
- package/dist/lib/runtime-scaffold.js +366 -0
- package/dist/lib/runtime-scaffold.js.map +1 -0
- package/dist/lib/schema-check.d.ts +79 -0
- package/dist/lib/schema-check.d.ts.map +1 -0
- package/dist/lib/schema-check.js +347 -0
- package/dist/lib/schema-check.js.map +1 -0
- package/dist/lib/spinner.d.ts +20 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +42 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/telemetry.d.ts +37 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +98 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/lib/turnstile-provision.d.ts +27 -0
- package/dist/lib/turnstile-provision.d.ts.map +1 -0
- package/dist/lib/turnstile-provision.js +144 -0
- package/dist/lib/turnstile-provision.js.map +1 -0
- package/dist/lib/update-check.d.ts +13 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +110 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/wrangler-secrets.d.ts +3 -0
- package/dist/lib/wrangler-secrets.d.ts.map +1 -0
- package/dist/lib/wrangler-secrets.js +32 -0
- package/dist/lib/wrangler-secrets.js.map +1 -0
- package/dist/lib/wrangler.d.ts +9 -0
- package/dist/lib/wrangler.d.ts.map +1 -0
- package/dist/lib/wrangler.js +84 -0
- package/dist/lib/wrangler.js.map +1 -0
- package/dist/templates/plugin/README.md.tmpl +91 -0
- package/dist/templates/plugin/client/js/package.json.tmpl +23 -0
- package/dist/templates/plugin/client/js/src/index.ts.tmpl +68 -0
- package/dist/templates/plugin/client/js/tsconfig.json.tmpl +14 -0
- package/dist/templates/plugin/server/package.json.tmpl +19 -0
- package/dist/templates/plugin/server/src/index.ts.tmpl +59 -0
- package/dist/templates/plugin/server/tsconfig.json.tmpl +14 -0
- package/llms.txt +94 -0
- package/package.json +60 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command, CommanderError } from 'commander';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { initCommand } from './commands/init.js';
|
|
7
|
+
import { devCommand } from './commands/dev.js';
|
|
8
|
+
import { deployCommand } from './commands/deploy.js';
|
|
9
|
+
import { destroyCommand } from './commands/destroy.js';
|
|
10
|
+
import { secretCommand } from './commands/secret.js';
|
|
11
|
+
import { keysCommand } from './commands/keys.js';
|
|
12
|
+
import { backupCommand } from './commands/backup.js';
|
|
13
|
+
import { exportCommand } from './commands/export.js';
|
|
14
|
+
import { typegenCommand } from './commands/typegen.js';
|
|
15
|
+
import { logsCommand } from './commands/logs.js';
|
|
16
|
+
import { migrationCommand } from './commands/migration.js';
|
|
17
|
+
import { migrateCommand } from './commands/migrate.js';
|
|
18
|
+
import { upgradeCommand } from './commands/upgrade.js';
|
|
19
|
+
import { seedCommand } from './commands/seed.js';
|
|
20
|
+
import { adminCommand } from './commands/admin.js';
|
|
21
|
+
import { neonCommand } from './commands/neon.js';
|
|
22
|
+
import { dockerCommand } from './commands/docker.js';
|
|
23
|
+
import { pluginsCommand } from './commands/plugins.js';
|
|
24
|
+
import { createPluginCommand } from './commands/create-plugin.js';
|
|
25
|
+
import { webhookTestCommand } from './commands/webhook-test.js';
|
|
26
|
+
import { completionCommand } from './commands/completion.js';
|
|
27
|
+
import { telemetryCommand } from './commands/telemetry.js';
|
|
28
|
+
import { realtimeCommand } from './commands/realtime.js';
|
|
29
|
+
import { describeCommand } from './commands/describe.js';
|
|
30
|
+
import { setContext } from './lib/cli-context.js';
|
|
31
|
+
import { isCliStructuredError, renderStructuredIssue } from './lib/agent-contract.js';
|
|
32
|
+
import { checkForUpdates } from './lib/update-check.js';
|
|
33
|
+
import { recordEvent, showTelemetryNoticeOnce } from './lib/telemetry.js';
|
|
34
|
+
// ─── Dynamic version from package.json ───
|
|
35
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
36
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
37
|
+
const program = new Command();
|
|
38
|
+
function hasRawFlag(rawArgs, longFlag, shortFlag) {
|
|
39
|
+
return rawArgs.some((arg) => {
|
|
40
|
+
if (arg === longFlag)
|
|
41
|
+
return true;
|
|
42
|
+
if (!shortFlag || !arg.startsWith('-') || arg.startsWith('--'))
|
|
43
|
+
return false;
|
|
44
|
+
return arg.slice(1).includes(shortFlag.slice(1));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
program
|
|
48
|
+
.name('edgebase')
|
|
49
|
+
.description('EdgeBase CLI — Serverless BaaS on Cloudflare Edge')
|
|
50
|
+
.version(pkg.version)
|
|
51
|
+
.option('-v, --verbose', 'Show detailed output')
|
|
52
|
+
.option('-q, --quiet', 'Suppress non-essential output')
|
|
53
|
+
.option('--json', 'Output results as JSON')
|
|
54
|
+
.option('--non-interactive', 'Disable prompts and return structured input/user-action requirements');
|
|
55
|
+
// ─── First-run telemetry notice ───
|
|
56
|
+
const rawArgs = process.argv.slice(2);
|
|
57
|
+
setContext({
|
|
58
|
+
verbose: hasRawFlag(rawArgs, '--verbose', '-v'),
|
|
59
|
+
quiet: hasRawFlag(rawArgs, '--quiet', '-q'),
|
|
60
|
+
json: hasRawFlag(rawArgs, '--json'),
|
|
61
|
+
nonInteractive: hasRawFlag(rawArgs, '--non-interactive'),
|
|
62
|
+
});
|
|
63
|
+
showTelemetryNoticeOnce({
|
|
64
|
+
suppressOutput: hasRawFlag(rawArgs, '--json')
|
|
65
|
+
|| hasRawFlag(rawArgs, '--quiet', '-q'),
|
|
66
|
+
});
|
|
67
|
+
// ─── Global hooks ───
|
|
68
|
+
let _startTime = Date.now();
|
|
69
|
+
let _telemetryCommandPath = null;
|
|
70
|
+
function buildCommandPath(command) {
|
|
71
|
+
const names = [];
|
|
72
|
+
let current = command;
|
|
73
|
+
while (current) {
|
|
74
|
+
names.push(current.name());
|
|
75
|
+
current = current.parent;
|
|
76
|
+
}
|
|
77
|
+
return names.reverse().join(' ');
|
|
78
|
+
}
|
|
79
|
+
function resolveCommandPath(actionCommand, rawArgs = process.argv.slice(2)) {
|
|
80
|
+
if (actionCommand) {
|
|
81
|
+
return buildCommandPath(actionCommand);
|
|
82
|
+
}
|
|
83
|
+
const path = [program.name()];
|
|
84
|
+
let current = program;
|
|
85
|
+
for (const token of rawArgs) {
|
|
86
|
+
if (!token || token === '--')
|
|
87
|
+
break;
|
|
88
|
+
if (token.startsWith('-'))
|
|
89
|
+
continue;
|
|
90
|
+
const next = current.commands.find((candidate) => candidate.name() === token || candidate.aliases().includes(token));
|
|
91
|
+
if (!next) {
|
|
92
|
+
path.push(token);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
path.push(next.name());
|
|
96
|
+
current = next;
|
|
97
|
+
}
|
|
98
|
+
return path.join(' ');
|
|
99
|
+
}
|
|
100
|
+
program.exitOverride();
|
|
101
|
+
program.hook('preAction', (thisCommand, actionCommand) => {
|
|
102
|
+
const opts = thisCommand.opts();
|
|
103
|
+
setContext({
|
|
104
|
+
verbose: !!opts.verbose,
|
|
105
|
+
quiet: !!opts.quiet,
|
|
106
|
+
json: !!opts.json,
|
|
107
|
+
nonInteractive: !!opts.nonInteractive,
|
|
108
|
+
});
|
|
109
|
+
_startTime = Date.now();
|
|
110
|
+
_telemetryCommandPath = resolveCommandPath(actionCommand);
|
|
111
|
+
});
|
|
112
|
+
program.hook('postAction', (_thisCommand, actionCommand) => {
|
|
113
|
+
_telemetryCommandPath = resolveCommandPath(actionCommand);
|
|
114
|
+
recordEvent(_telemetryCommandPath, true, Date.now() - _startTime);
|
|
115
|
+
});
|
|
116
|
+
// ─── Core ───
|
|
117
|
+
program.addCommand(initCommand);
|
|
118
|
+
program.addCommand(devCommand);
|
|
119
|
+
program.addCommand(deployCommand);
|
|
120
|
+
program.addCommand(destroyCommand);
|
|
121
|
+
program.addCommand(logsCommand);
|
|
122
|
+
program.addCommand(upgradeCommand);
|
|
123
|
+
// ─── Database ───
|
|
124
|
+
program.addCommand(migrationCommand);
|
|
125
|
+
program.addCommand(migrateCommand);
|
|
126
|
+
program.addCommand(seedCommand);
|
|
127
|
+
program.addCommand(backupCommand);
|
|
128
|
+
program.addCommand(exportCommand);
|
|
129
|
+
program.addCommand(typegenCommand);
|
|
130
|
+
program.addCommand(neonCommand);
|
|
131
|
+
// ─── Security ───
|
|
132
|
+
program.addCommand(secretCommand);
|
|
133
|
+
program.addCommand(keysCommand);
|
|
134
|
+
program.addCommand(adminCommand);
|
|
135
|
+
// ─── Plugins & Tools ───
|
|
136
|
+
program.addCommand(pluginsCommand);
|
|
137
|
+
program.addCommand(createPluginCommand);
|
|
138
|
+
program.addCommand(dockerCommand);
|
|
139
|
+
program.addCommand(webhookTestCommand);
|
|
140
|
+
program.addCommand(completionCommand);
|
|
141
|
+
program.addCommand(describeCommand);
|
|
142
|
+
program.addCommand(telemetryCommand);
|
|
143
|
+
program.addCommand(realtimeCommand);
|
|
144
|
+
// ─── Help Text Grouping ───
|
|
145
|
+
program.addHelpText('after', `
|
|
146
|
+
Commands by category:
|
|
147
|
+
Core: init, dev (dv), deploy (dp), destroy, logs (l), upgrade (up)
|
|
148
|
+
Database: migration (mg), migrate, seed, backup (bk), export, typegen (tg), neon
|
|
149
|
+
Security: secret, keys, admin
|
|
150
|
+
Plugins: plugins, create-plugin, docker, webhook-test
|
|
151
|
+
Utilities: completion, describe, telemetry, realtime
|
|
152
|
+
|
|
153
|
+
Environment variables:
|
|
154
|
+
NO_COLOR=1 Disable colored output
|
|
155
|
+
EDGEBASE_SERVICE_KEY Service Key for backup/export/admin commands
|
|
156
|
+
EDGEBASE_URL Default server URL for remote commands
|
|
157
|
+
`);
|
|
158
|
+
let parseFailed = false;
|
|
159
|
+
try {
|
|
160
|
+
await program.parseAsync(process.argv);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
const commandPath = _telemetryCommandPath ?? resolveCommandPath(undefined, process.argv.slice(2));
|
|
164
|
+
recordEvent(commandPath, false, Date.now() - _startTime);
|
|
165
|
+
if (error instanceof CommanderError) {
|
|
166
|
+
parseFailed = true;
|
|
167
|
+
process.exitCode = error.exitCode;
|
|
168
|
+
}
|
|
169
|
+
else if (isCliStructuredError(error)) {
|
|
170
|
+
parseFailed = true;
|
|
171
|
+
process.exitCode = error.exitCode;
|
|
172
|
+
renderStructuredIssue(error.payload);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// ─── Post-run update check (non-blocking) ───
|
|
179
|
+
const currentCommand = process.argv[2];
|
|
180
|
+
if (!parseFailed && !['init', 'dev', 'dv'].includes(currentCommand ?? '')) {
|
|
181
|
+
checkForUpdates(pkg.version);
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface CliChoice {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
hint?: string;
|
|
5
|
+
args?: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface CliUserAction {
|
|
8
|
+
type: 'open_browser' | 'confirm' | 'rerun_with_flags';
|
|
9
|
+
title?: string;
|
|
10
|
+
message: string;
|
|
11
|
+
command?: string;
|
|
12
|
+
args?: string[];
|
|
13
|
+
instructions?: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface CliStructuredIssue {
|
|
16
|
+
status: 'needs_input' | 'needs_user_action' | 'error';
|
|
17
|
+
code: string;
|
|
18
|
+
message: string;
|
|
19
|
+
field?: string;
|
|
20
|
+
hint?: string;
|
|
21
|
+
retryable?: boolean;
|
|
22
|
+
details?: Record<string, unknown> | unknown[];
|
|
23
|
+
choices?: CliChoice[];
|
|
24
|
+
action?: CliUserAction;
|
|
25
|
+
}
|
|
26
|
+
export declare class CliStructuredError extends Error {
|
|
27
|
+
readonly payload: CliStructuredIssue;
|
|
28
|
+
readonly exitCode: number;
|
|
29
|
+
constructor(payload: CliStructuredIssue, exitCode?: number);
|
|
30
|
+
}
|
|
31
|
+
export declare function isCliStructuredError(error: unknown): error is CliStructuredError;
|
|
32
|
+
export declare function raiseNeedsInput(payload: Omit<CliStructuredIssue, 'status'>): never;
|
|
33
|
+
export declare function raiseNeedsUserAction(payload: Omit<CliStructuredIssue, 'status'>): never;
|
|
34
|
+
export declare function raiseCliError(payload: Omit<CliStructuredIssue, 'status'>, exitCode?: number): never;
|
|
35
|
+
export declare function renderStructuredIssue(issue: CliStructuredIssue): void;
|
|
36
|
+
//# sourceMappingURL=agent-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-contract.d.ts","sourceRoot":"","sources":["../../src/lib/agent-contract.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,kBAAkB,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,GAAG,mBAAmB,GAAG,OAAO,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;IAC9C,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,kBAAkB,EAAE,QAAQ,SAAI;CAMtD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,KAAK,CAMlF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,KAAK,CAMvF;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,EAC3C,QAAQ,SAAI,GACX,KAAK,CAMP;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CA+CrE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { isJson } from './cli-context.js';
|
|
3
|
+
export class CliStructuredError extends Error {
|
|
4
|
+
payload;
|
|
5
|
+
exitCode;
|
|
6
|
+
constructor(payload, exitCode = 2) {
|
|
7
|
+
super(payload.message);
|
|
8
|
+
this.name = 'CliStructuredError';
|
|
9
|
+
this.payload = payload;
|
|
10
|
+
this.exitCode = exitCode;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function isCliStructuredError(error) {
|
|
14
|
+
return error instanceof CliStructuredError;
|
|
15
|
+
}
|
|
16
|
+
export function raiseNeedsInput(payload) {
|
|
17
|
+
throw new CliStructuredError({
|
|
18
|
+
retryable: true,
|
|
19
|
+
...payload,
|
|
20
|
+
status: 'needs_input',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function raiseNeedsUserAction(payload) {
|
|
24
|
+
throw new CliStructuredError({
|
|
25
|
+
retryable: true,
|
|
26
|
+
...payload,
|
|
27
|
+
status: 'needs_user_action',
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export function raiseCliError(payload, exitCode = 1) {
|
|
31
|
+
throw new CliStructuredError({
|
|
32
|
+
retryable: false,
|
|
33
|
+
...payload,
|
|
34
|
+
status: 'error',
|
|
35
|
+
}, exitCode);
|
|
36
|
+
}
|
|
37
|
+
export function renderStructuredIssue(issue) {
|
|
38
|
+
if (isJson()) {
|
|
39
|
+
console.log(JSON.stringify(issue));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const icon = issue.status === 'error'
|
|
43
|
+
? chalk.red('✗')
|
|
44
|
+
: chalk.yellow('⚠');
|
|
45
|
+
console.error(icon, issue.message);
|
|
46
|
+
if (issue.field) {
|
|
47
|
+
console.error(chalk.dim(` Field: ${issue.field}`));
|
|
48
|
+
}
|
|
49
|
+
if (issue.hint) {
|
|
50
|
+
console.error(chalk.dim(` Hint: ${issue.hint}`));
|
|
51
|
+
}
|
|
52
|
+
if (issue.details && !Array.isArray(issue.details) && Object.keys(issue.details).length > 0) {
|
|
53
|
+
console.error(chalk.dim(` Details: ${JSON.stringify(issue.details)}`));
|
|
54
|
+
}
|
|
55
|
+
if (issue.choices && issue.choices.length > 0) {
|
|
56
|
+
console.error(chalk.dim(' Choices:'));
|
|
57
|
+
for (const choice of issue.choices) {
|
|
58
|
+
const argsText = choice.args && choice.args.length > 0
|
|
59
|
+
? ` (${choice.args.join(' ')})`
|
|
60
|
+
: '';
|
|
61
|
+
const hintText = choice.hint ? ` — ${choice.hint}` : '';
|
|
62
|
+
console.error(chalk.dim(` • ${choice.label}${argsText}${hintText}`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (issue.action) {
|
|
66
|
+
if (issue.action.title) {
|
|
67
|
+
console.error(chalk.dim(` Action: ${issue.action.title}`));
|
|
68
|
+
}
|
|
69
|
+
console.error(chalk.dim(` ${issue.action.message}`));
|
|
70
|
+
if (issue.action.command) {
|
|
71
|
+
console.error(chalk.dim(` Command: ${issue.action.command}`));
|
|
72
|
+
}
|
|
73
|
+
for (const line of issue.action.instructions ?? []) {
|
|
74
|
+
console.error(chalk.dim(` ${line}`));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=agent-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-contract.js","sourceRoot":"","sources":["../../src/lib/agent-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA8B1C,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,OAAO,CAAqB;IAC5B,QAAQ,CAAS;IAE1B,YAAY,OAA2B,EAAE,QAAQ,GAAG,CAAC;QACnD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,KAAK,YAAY,kBAAkB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA2C;IACzE,MAAM,IAAI,kBAAkB,CAAC;QAC3B,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;QACV,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA2C;IAC9E,MAAM,IAAI,kBAAkB,CAAC;QAC3B,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;QACV,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAA2C,EAC3C,QAAQ,GAAG,CAAC;IAEZ,MAAM,IAAI,kBAAkB,CAAC;QAC3B,SAAS,EAAE,KAAK;QAChB,GAAG,OAAO;QACV,MAAM,EAAE,OAAO;KAChB,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,IAAI,MAAM,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,OAAO;QACnC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAChB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEtB,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACpD,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBAC/B,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export interface CloudflareAuth {
|
|
2
|
+
accountId: string;
|
|
3
|
+
accountName: string;
|
|
4
|
+
authMethod: 'oauth' | 'api_token';
|
|
5
|
+
}
|
|
6
|
+
export interface CloudflareAccount {
|
|
7
|
+
name: string;
|
|
8
|
+
id: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Full Auth Gate: check auth → login if needed → extract account_id.
|
|
12
|
+
* Returns CloudflareAuth or exits the process on failure.
|
|
13
|
+
*
|
|
14
|
+
* Resolution order for account_id:
|
|
15
|
+
* 1. CLOUDFLARE_ACCOUNT_ID env var
|
|
16
|
+
* 2. .edgebase/cloudflare.json cache
|
|
17
|
+
* 3. wrangler.toml account_id field
|
|
18
|
+
* 4. wrangler whoami output
|
|
19
|
+
*/
|
|
20
|
+
export declare function ensureCloudflareAuth(projectDir: string, isTTY: boolean): Promise<CloudflareAuth>;
|
|
21
|
+
/**
|
|
22
|
+
* Check if user is authenticated via `wrangler whoami`.
|
|
23
|
+
* Returns parsed account info or null if not authenticated.
|
|
24
|
+
*
|
|
25
|
+
* Checks in order:
|
|
26
|
+
* 1. CLOUDFLARE_ACCOUNT_ID env (+ verify via whoami if possible)
|
|
27
|
+
* 2. Cached .edgebase/cloudflare.json
|
|
28
|
+
* 3. wrangler.toml account_id
|
|
29
|
+
* 4. wrangler whoami output
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkWranglerAuth(projectDir: string): CloudflareAuth | null;
|
|
32
|
+
/**
|
|
33
|
+
* Parse `wrangler whoami` table output to extract account names and IDs.
|
|
34
|
+
*
|
|
35
|
+
* Wrangler outputs a pipe-delimited table like:
|
|
36
|
+
* ┌──────────────────┬──────────────────────────────────┐
|
|
37
|
+
* │ Account Name │ Account ID │
|
|
38
|
+
* ├──────────────────┼──────────────────────────────────┤
|
|
39
|
+
* │ John's Account │ abcdef1234567890abcdef1234567890 │
|
|
40
|
+
* └──────────────────┴──────────────────────────────────┘
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseWhoamiOutput(output: string): CloudflareAccount[];
|
|
43
|
+
/**
|
|
44
|
+
* Trigger `wrangler login` (browser OAuth flow).
|
|
45
|
+
* Only works in interactive terminals. Blocks until complete.
|
|
46
|
+
*/
|
|
47
|
+
export declare function triggerWranglerLogin(projectDir: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Ensure wrangler.toml exists at project root with account_id.
|
|
50
|
+
* - If exists: inject/update account_id
|
|
51
|
+
* - If missing: create minimal template
|
|
52
|
+
*
|
|
53
|
+
* Returns the path to wrangler.toml.
|
|
54
|
+
*/
|
|
55
|
+
export declare function ensureWranglerToml(projectDir: string, accountId: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Load cached account_id from .edgebase/cloudflare.json.
|
|
58
|
+
*/
|
|
59
|
+
export declare function loadCachedAccountId(projectDir: string): string | null;
|
|
60
|
+
/**
|
|
61
|
+
* Save account_id to .edgebase/cloudflare.json.
|
|
62
|
+
*/
|
|
63
|
+
export declare function saveCachedAccountId(projectDir: string, accountId: string, accountName: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Read the OAuth token from wrangler's local config file.
|
|
66
|
+
*/
|
|
67
|
+
export declare function readWranglerOauthToken(): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Resolve a Cloudflare API token from env var or wrangler OAuth login.
|
|
70
|
+
* Used by deploy (to store as Worker secret) and realtime provisioning.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveApiToken(): {
|
|
73
|
+
token: string;
|
|
74
|
+
source: 'env' | 'wrangler_oauth';
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=cf-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cf-auth.d.ts","sourceRoot":"","sources":["../../src/lib/cf-auth.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,GAAG,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAID;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,CAAC,CAiEzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA+E3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAiBrE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAiBhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAuChF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,IAAI,CAcN;AAkBD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAUtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,GAAG,gBAAgB,CAAA;CAAE,CAarF"}
|