decocms 0.16.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/README.md +95 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +373 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add/add.d.ts +7 -0
- package/dist/commands/add/add.d.ts.map +1 -0
- package/dist/commands/add/add.js +90 -0
- package/dist/commands/add/add.js.map +1 -0
- package/dist/commands/auth/login.d.ts +2 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +125 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/whoami.d.ts +2 -0
- package/dist/commands/auth/whoami.d.ts.map +1 -0
- package/dist/commands/auth/whoami.js +51 -0
- package/dist/commands/auth/whoami.js.map +1 -0
- package/dist/commands/config/configure.d.ts +2 -0
- package/dist/commands/config/configure.d.ts.map +1 -0
- package/dist/commands/config/configure.js +51 -0
- package/dist/commands/config/configure.js.map +1 -0
- package/dist/commands/create/create.d.ts +3 -0
- package/dist/commands/create/create.d.ts.map +1 -0
- package/dist/commands/create/create.js +238 -0
- package/dist/commands/create/create.js.map +1 -0
- package/dist/commands/dev/dev.d.ts +8 -0
- package/dist/commands/dev/dev.d.ts.map +1 -0
- package/dist/commands/dev/dev.js +64 -0
- package/dist/commands/dev/dev.js.map +1 -0
- package/dist/commands/dev/link.d.ts +8 -0
- package/dist/commands/dev/link.d.ts.map +1 -0
- package/dist/commands/dev/link.js +124 -0
- package/dist/commands/dev/link.js.map +1 -0
- package/dist/commands/gen/gen.d.ts +11 -0
- package/dist/commands/gen/gen.d.ts.map +1 -0
- package/dist/commands/gen/gen.js +341 -0
- package/dist/commands/gen/gen.js.map +1 -0
- package/dist/commands/hosting/deploy.d.ts +19 -0
- package/dist/commands/hosting/deploy.d.ts.map +1 -0
- package/dist/commands/hosting/deploy.js +194 -0
- package/dist/commands/hosting/deploy.js.map +1 -0
- package/dist/commands/hosting/list.d.ts +6 -0
- package/dist/commands/hosting/list.d.ts.map +1 -0
- package/dist/commands/hosting/list.js +26 -0
- package/dist/commands/hosting/list.js.map +1 -0
- package/dist/commands/hosting/promote.d.ts +11 -0
- package/dist/commands/hosting/promote.d.ts.map +1 -0
- package/dist/commands/hosting/promote.js +153 -0
- package/dist/commands/hosting/promote.js.map +1 -0
- package/dist/commands/update/update.d.ts +4 -0
- package/dist/commands/update/update.d.ts.map +1 -0
- package/dist/commands/update/update.js +242 -0
- package/dist/commands/update/update.js.map +1 -0
- package/dist/commands/update/upgrade.d.ts +4 -0
- package/dist/commands/update/upgrade.d.ts.map +1 -0
- package/dist/commands/update/upgrade.js +157 -0
- package/dist/commands/update/upgrade.js.map +1 -0
- package/dist/lib/config.d.ts +309 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +262 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/constants.d.ts +10 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +16 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/fs.d.ts +40 -0
- package/dist/lib/fs.d.ts.map +1 -0
- package/dist/lib/fs.js +162 -0
- package/dist/lib/fs.js.map +1 -0
- package/dist/lib/mcp.d.ts +34 -0
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/lib/mcp.js +19 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/parse-binding-tool.d.ts +12 -0
- package/dist/lib/parse-binding-tool.d.ts.map +1 -0
- package/dist/lib/parse-binding-tool.js +15 -0
- package/dist/lib/parse-binding-tool.js.map +1 -0
- package/dist/lib/prompt-ide-setup.d.ts +27 -0
- package/dist/lib/prompt-ide-setup.d.ts.map +1 -0
- package/dist/lib/prompt-ide-setup.js +158 -0
- package/dist/lib/prompt-ide-setup.js.map +1 -0
- package/dist/lib/prompt-integrations.d.ts +7 -0
- package/dist/lib/prompt-integrations.d.ts.map +1 -0
- package/dist/lib/prompt-integrations.js +84 -0
- package/dist/lib/prompt-integrations.js.map +1 -0
- package/dist/lib/prompt-workspace.d.ts +2 -0
- package/dist/lib/prompt-workspace.d.ts.map +1 -0
- package/dist/lib/prompt-workspace.js +93 -0
- package/dist/lib/prompt-workspace.js.map +1 -0
- package/dist/lib/runtime.d.ts +5 -0
- package/dist/lib/runtime.d.ts.map +1 -0
- package/dist/lib/runtime.js +15 -0
- package/dist/lib/runtime.js.map +1 -0
- package/dist/lib/session.d.ts +39 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +124 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/slugify.d.ts +13 -0
- package/dist/lib/slugify.d.ts.map +1 -0
- package/dist/lib/slugify.js +27 -0
- package/dist/lib/slugify.js.map +1 -0
- package/dist/lib/supabase.d.ts +5 -0
- package/dist/lib/supabase.d.ts.map +1 -0
- package/dist/lib/supabase.js +19 -0
- package/dist/lib/supabase.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 +118 -0
- package/dist/lib/wrangler.js.map +1 -0
- package/dist/rules/deco-chat.mdc +902 -0
- package/package.json +79 -0
package/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Deco CLI Reference
|
|
2
|
+
|
|
3
|
+
The Deco CLI is your interface for managing AI-native projects built with
|
|
4
|
+
[deco.chat](https://deco.chat).
|
|
5
|
+
|
|
6
|
+
Official docs: https://docs.deco.page/
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Authentication
|
|
11
|
+
|
|
12
|
+
| Command | Description |
|
|
13
|
+
| ------------- | ------------------------------------------------------------ |
|
|
14
|
+
| `deco login` | Authenticate and store an API token for subsequent commands. |
|
|
15
|
+
| `deco logout` | Remove local credentials and end the session. |
|
|
16
|
+
| `deco whoami` | Show the currently authenticated user and workspace. |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Project Management
|
|
21
|
+
|
|
22
|
+
| Command | Description |
|
|
23
|
+
| ---------------- | --------------------------------------------------------------------------- |
|
|
24
|
+
| `deco create` | Scaffold a new deco project from an official template. |
|
|
25
|
+
| `deco configure` | Re-run setup for the current directory to change workspace or app settings. |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Development
|
|
30
|
+
|
|
31
|
+
| Command | Description |
|
|
32
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `npm run dev` | Preferred way to run local Worker and React frontend in watch mode. |
|
|
34
|
+
| `deco dev` | (Experimental) Future unified development command. |
|
|
35
|
+
| `deco link [build-command]` | Link your local dev server to a public domain. Supports `-p <port>`. Example: deco link npm run dev. |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Type Generation
|
|
40
|
+
|
|
41
|
+
| Command | Description |
|
|
42
|
+
| --------------- | -------------------------------------------------------------------------- |
|
|
43
|
+
| `deco gen` | Generate types for external integrations (`deco.gen.ts`). |
|
|
44
|
+
| `deco gen:self` | Generate types for your own tools and workflows via local `/mcp` endpoint. |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Hosting & Deployment
|
|
49
|
+
|
|
50
|
+
| Command | Description |
|
|
51
|
+
| ----------------------------- | -------------------------------------------------------------------------- |
|
|
52
|
+
| `npm run deploy` | Builds frontend and invokes `deco deploy`. Recommended for most use cases. |
|
|
53
|
+
| `deco deploy` | Bundle and deploy to Cloudflare Workers. Supports `-w`, `-a`, and `-l`. |
|
|
54
|
+
| `deco hosting list -w <name>` | List deployed apps in a specific workspace. |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Integrations
|
|
59
|
+
|
|
60
|
+
| Command | Description |
|
|
61
|
+
| ---------- | ----------------------------------------- |
|
|
62
|
+
| `deco add` | Add and configure workspace integrations. |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Maintenance
|
|
67
|
+
|
|
68
|
+
| Command | Description |
|
|
69
|
+
| ------------- | ------------------------------------------------ |
|
|
70
|
+
| `deco update` | Upgrade the CLI to the latest published version. |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Getting Help
|
|
75
|
+
|
|
76
|
+
| Command | Description |
|
|
77
|
+
| ------------- | ------------------------------------------------ |
|
|
78
|
+
| `deco --help` | Display the full list of CLI commands and usage. |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Configuration File
|
|
83
|
+
|
|
84
|
+
The CLI uses a local config file to store your workspace and app context. Set or
|
|
85
|
+
update this configuration anytime using: `deco configure`
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Environment Variables
|
|
90
|
+
|
|
91
|
+
| Variable | Purpose |
|
|
92
|
+
| --------------------- | --------------------------------------------------------------------- |
|
|
93
|
+
| `DECO_CHAT_API_TOKEN` | API token for authentication (set by `deco login`). |
|
|
94
|
+
| `DECO_CHAT_API_LOCAL` | Overrides API base URL for local development. |
|
|
95
|
+
| `DECO_SELF_URL` | Local MCP endpoint for `deco gen:self` to introspect workflows/tools. |
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Check Node.js version requirement
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
const MIN_NODE_VERSION = "18.0.0";
|
|
5
|
+
const currentNodeVersion = process.version.slice(1); // Remove 'v' prefix
|
|
6
|
+
function compareVersions(version1, version2) {
|
|
7
|
+
const v1parts = version1.split(".").map(Number);
|
|
8
|
+
const v2parts = version2.split(".").map(Number);
|
|
9
|
+
for (let i = 0; i < Math.max(v1parts.length, v2parts.length); i++) {
|
|
10
|
+
const v1part = v1parts[i] || 0;
|
|
11
|
+
const v2part = v2parts[i] || 0;
|
|
12
|
+
if (v1part < v2part)
|
|
13
|
+
return -1;
|
|
14
|
+
if (v1part > v2part)
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
if (compareVersions(currentNodeVersion, MIN_NODE_VERSION) < 0) {
|
|
20
|
+
console.error(`ā Error: Node.js ${MIN_NODE_VERSION} or higher is required.`);
|
|
21
|
+
console.error(` Current version: ${process.version}`);
|
|
22
|
+
console.error(` Please upgrade Node.js: https://nodejs.org/`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
// Suppress punycode deprecation warning from dependencies
|
|
26
|
+
process.removeAllListeners("warning");
|
|
27
|
+
process.on("warning", (warning) => {
|
|
28
|
+
if (warning.name === "DeprecationWarning" &&
|
|
29
|
+
warning.message.includes("punycode")) {
|
|
30
|
+
return; // Ignore punycode deprecation warnings
|
|
31
|
+
}
|
|
32
|
+
console.warn(warning.message);
|
|
33
|
+
});
|
|
34
|
+
import { Command } from "commander";
|
|
35
|
+
import { readFile, writeFile } from "fs/promises";
|
|
36
|
+
import { dirname, join } from "path";
|
|
37
|
+
import { fileURLToPath } from "url";
|
|
38
|
+
import { spawn } from "child_process";
|
|
39
|
+
import { deleteSession, readSession, setToken } from "./lib/session.js";
|
|
40
|
+
import { DECO_CHAT_API_LOCAL } from "./lib/constants.js";
|
|
41
|
+
import { getAppDomain, getConfig, readWranglerConfig, getLocal, setLocal, } from "./lib/config.js";
|
|
42
|
+
import { loginCommand } from "./commands/auth/login.js";
|
|
43
|
+
import { whoamiCommand } from "./commands/auth/whoami.js";
|
|
44
|
+
import { configureCommand } from "./commands/config/configure.js";
|
|
45
|
+
import { deploy } from "./commands/hosting/deploy.js";
|
|
46
|
+
import { listApps } from "./commands/hosting/list.js";
|
|
47
|
+
import { promoteApp } from "./commands/hosting/promote.js";
|
|
48
|
+
import { createCommand } from "./commands/create/create.js";
|
|
49
|
+
import { devCommand } from "./commands/dev/dev.js";
|
|
50
|
+
import { link } from "./commands/dev/link.js";
|
|
51
|
+
import { genEnv } from "./commands/gen/gen.js";
|
|
52
|
+
import { upgradeCommand } from "./commands/update/upgrade.js";
|
|
53
|
+
import { updateCommand } from "./commands/update/update.js";
|
|
54
|
+
import { addCommand } from "./commands/add/add.js";
|
|
55
|
+
import { detectRuntime } from "./lib/runtime.js";
|
|
56
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
57
|
+
const __dirname = dirname(__filename);
|
|
58
|
+
// Read package.json for version
|
|
59
|
+
const packageJsonPath = join(__dirname, "../package.json");
|
|
60
|
+
const packageJson = JSON.parse(await readFile(packageJsonPath, "utf-8"));
|
|
61
|
+
// Login command implementation
|
|
62
|
+
const login = new Command("login")
|
|
63
|
+
.description("Log in to deco.chat and retrieve tokens for CLI usage.")
|
|
64
|
+
.action(async () => {
|
|
65
|
+
try {
|
|
66
|
+
await loginCommand();
|
|
67
|
+
console.log("ā
Successfully logged in to deco.chat");
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error("ā Login failed:", error instanceof Error ? error.message : String(error));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// Placeholder for logout command implementation
|
|
75
|
+
const logout = new Command("logout")
|
|
76
|
+
.description("Log out of deco.chat and remove local session data.")
|
|
77
|
+
.action(async () => {
|
|
78
|
+
try {
|
|
79
|
+
await deleteSession();
|
|
80
|
+
console.log("Logged out successfully. Session data removed.");
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
if (e instanceof Error) {
|
|
84
|
+
console.error("Failed to log out:", e.message);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
console.error("Failed to log out:", String(e));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
// Whoami command implementation
|
|
92
|
+
const whoami = new Command("whoami")
|
|
93
|
+
.description("Print info about the current session.")
|
|
94
|
+
.action(whoamiCommand);
|
|
95
|
+
// Configure command implementation
|
|
96
|
+
const configure = new Command("configure")
|
|
97
|
+
.alias("config")
|
|
98
|
+
.description("Save configuration options for the current directory.")
|
|
99
|
+
.action(async () => {
|
|
100
|
+
try {
|
|
101
|
+
await configureCommand(getLocal());
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error("ā Configuration failed:", error instanceof Error ? error.message : String(error));
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
const hostingList = new Command("list")
|
|
109
|
+
.description("List all apps in the current workspace.")
|
|
110
|
+
.option("-w, --workspace <workspace>", "Workspace name")
|
|
111
|
+
.action(async (options) => {
|
|
112
|
+
try {
|
|
113
|
+
const session = await readSession();
|
|
114
|
+
const workspace = options.workspace || session?.workspace;
|
|
115
|
+
if (!workspace) {
|
|
116
|
+
console.error("ā No workspace specified. Use -w flag or run 'deco configure' first.");
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
await listApps({ workspace });
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error("ā Failed to list apps:", error instanceof Error ? error.message : String(error));
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
// Hosting deploy command implementation
|
|
127
|
+
const hostingDeploy = new Command("deploy")
|
|
128
|
+
.description("Deploy the current directory into the current workspace.")
|
|
129
|
+
.option("-w, --workspace <workspace>", "Workspace name")
|
|
130
|
+
.option("-a, --app <app>", "App name")
|
|
131
|
+
.option("-y, --yes", "Skip confirmation")
|
|
132
|
+
.option("-p, --public", "Make the app public in the registry")
|
|
133
|
+
.option("-f, --force", "Force the deployment even if there are breaking changes")
|
|
134
|
+
.option("--dry-run", "Write deploy manifest to local filesystem instead of deploying")
|
|
135
|
+
.argument("[cwd]", "Working directory")
|
|
136
|
+
.action(async (cwd, options) => {
|
|
137
|
+
try {
|
|
138
|
+
const config = await getConfig({
|
|
139
|
+
inlineOptions: options,
|
|
140
|
+
});
|
|
141
|
+
const wranglerConfig = await readWranglerConfig();
|
|
142
|
+
const assetsDirectory = wranglerConfig.assets?.directory;
|
|
143
|
+
const app = options.app ??
|
|
144
|
+
(typeof wranglerConfig.name === "string"
|
|
145
|
+
? wranglerConfig.name
|
|
146
|
+
: "my-app");
|
|
147
|
+
await deploy({
|
|
148
|
+
...config,
|
|
149
|
+
app,
|
|
150
|
+
skipConfirmation: options.yes,
|
|
151
|
+
cwd: cwd ?? process.cwd(),
|
|
152
|
+
unlisted: !options.public,
|
|
153
|
+
assetsDirectory,
|
|
154
|
+
force: options.force,
|
|
155
|
+
dryRun: options.dryRun,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.error("ā Deployment failed:", error instanceof Error ? error.message : JSON.stringify(error));
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
// Hosting promote command implementation
|
|
164
|
+
const hostingPromote = new Command("promote")
|
|
165
|
+
.description("Promote a deployment to an existing route pattern.")
|
|
166
|
+
.option("-w, --workspace <workspace>", "Workspace name")
|
|
167
|
+
.option("-a, --app <app>", "App name")
|
|
168
|
+
.option("-d, --deployment <deployment>", "Deployment ID")
|
|
169
|
+
.option("-r, --route <route>", "Route pattern (defaults to appName.deco.page)")
|
|
170
|
+
.option("-y, --yes", "Skip confirmation")
|
|
171
|
+
.action(async (options) => {
|
|
172
|
+
try {
|
|
173
|
+
const config = await getConfig({
|
|
174
|
+
inlineOptions: options,
|
|
175
|
+
});
|
|
176
|
+
let app = options.app;
|
|
177
|
+
if (!app) {
|
|
178
|
+
try {
|
|
179
|
+
const wranglerConfig = await readWranglerConfig();
|
|
180
|
+
app =
|
|
181
|
+
typeof wranglerConfig.name === "string"
|
|
182
|
+
? wranglerConfig.name
|
|
183
|
+
: undefined;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// No wrangler config found, app will remain undefined
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
await promoteApp({
|
|
190
|
+
workspace: config.workspace,
|
|
191
|
+
local: config.local,
|
|
192
|
+
appSlug: app,
|
|
193
|
+
deploymentId: options.deployment,
|
|
194
|
+
routePattern: options.route,
|
|
195
|
+
skipConfirmation: options.yes,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.error("ā Promotion failed:", error instanceof Error ? error.message : String(error));
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
// Link command implementation
|
|
204
|
+
const linkCmd = new Command("link")
|
|
205
|
+
.description("Link the project to be accessed through a remote domain.")
|
|
206
|
+
.option("-p, --port <port>", "Port to link", parseInt)
|
|
207
|
+
.allowUnknownOption()
|
|
208
|
+
.action(async (options, cmd) => {
|
|
209
|
+
try {
|
|
210
|
+
const runCommand = cmd.args;
|
|
211
|
+
await link({
|
|
212
|
+
port: options.port,
|
|
213
|
+
onBeforeRegister: () => {
|
|
214
|
+
if (runCommand.length === 0) {
|
|
215
|
+
console.log("ā ļø No command provided. Tunnel will connect to existing service on port.");
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const [command, ...args] = runCommand;
|
|
219
|
+
console.log(`š Starting command: ${command} ${args.join(" ")}`);
|
|
220
|
+
const childProcess = spawn(command, args, {
|
|
221
|
+
stdio: "inherit",
|
|
222
|
+
shell: true,
|
|
223
|
+
});
|
|
224
|
+
childProcess.on("error", (error) => {
|
|
225
|
+
console.error("ā Failed to start command:", error.message);
|
|
226
|
+
process.exit(1);
|
|
227
|
+
});
|
|
228
|
+
return childProcess;
|
|
229
|
+
},
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
console.error("ā Link failed:", error instanceof Error ? error.message : String(error));
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
const upgrade = new Command("upgrade")
|
|
238
|
+
.description("Upgrade the deco CLI to the latest version.")
|
|
239
|
+
.action(upgradeCommand);
|
|
240
|
+
const update = new Command("update")
|
|
241
|
+
.description("Update Deco dependencies to their latest versions.")
|
|
242
|
+
.option("-y, --yes", "Skip confirmation prompts")
|
|
243
|
+
.action(async (options) => {
|
|
244
|
+
try {
|
|
245
|
+
await updateCommand({ yes: options.yes });
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
console.error("ā Update failed:", error instanceof Error ? error.message : String(error));
|
|
249
|
+
process.exit(1);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
// Dev command implementation
|
|
253
|
+
const dev = new Command("dev")
|
|
254
|
+
.description("Start a development server.")
|
|
255
|
+
.option("--clean-build-dir <directory>", "Clean the build directory before starting the development server", (directory) => {
|
|
256
|
+
return {
|
|
257
|
+
enabled: true,
|
|
258
|
+
directory,
|
|
259
|
+
};
|
|
260
|
+
})
|
|
261
|
+
.action((options) => {
|
|
262
|
+
devCommand({
|
|
263
|
+
cleanBuildDirectory: options.cleanBuildDir,
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
// Create command implementation
|
|
267
|
+
const create = new Command("create")
|
|
268
|
+
.description("Create a new project from a template.")
|
|
269
|
+
.argument("[project-name]", "Name of the project")
|
|
270
|
+
.action(async (projectName) => {
|
|
271
|
+
try {
|
|
272
|
+
const config = await getConfig().catch(() => ({}));
|
|
273
|
+
await createCommand(projectName, config);
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
console.error("ā Project creation failed:", error instanceof Error ? error.message : String(error));
|
|
277
|
+
process.exit(1);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
// Add command implementation
|
|
281
|
+
const add = new Command("add")
|
|
282
|
+
.description("Add integrations to the current project.")
|
|
283
|
+
.option("-w, --workspace <workspace>", "Workspace name")
|
|
284
|
+
.action(async (options) => {
|
|
285
|
+
try {
|
|
286
|
+
await addCommand({
|
|
287
|
+
workspace: options.workspace,
|
|
288
|
+
local: getLocal(),
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
console.error("ā Failed to add integrations:", error instanceof Error ? error.message : String(error));
|
|
293
|
+
process.exit(1);
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
// Hosting parent command
|
|
297
|
+
const hosting = new Command("hosting")
|
|
298
|
+
.description("Manage hosting apps in a workspace.")
|
|
299
|
+
.addCommand(hostingList)
|
|
300
|
+
.addCommand(hostingDeploy)
|
|
301
|
+
.addCommand(hostingPromote);
|
|
302
|
+
const gen = new Command("gen")
|
|
303
|
+
.description("Generate the environment that will be used to run the app.")
|
|
304
|
+
.option("-s, --self <url>", "Useful to generate a SELF binding for own types based on local mcp server.")
|
|
305
|
+
.option("-o, --output <path>", "Output path for the generated environment file.")
|
|
306
|
+
.action(async (options) => {
|
|
307
|
+
try {
|
|
308
|
+
const wranglerConfig = await readWranglerConfig();
|
|
309
|
+
const config = await getConfig({});
|
|
310
|
+
const env = await genEnv({
|
|
311
|
+
workspace: config.workspace,
|
|
312
|
+
local: config.local,
|
|
313
|
+
bindings: config.bindings,
|
|
314
|
+
selfUrl: options.self ??
|
|
315
|
+
`https://${getAppDomain(config.workspace, wranglerConfig.name ?? "my-app")}/mcp`,
|
|
316
|
+
});
|
|
317
|
+
if (options.output) {
|
|
318
|
+
await writeFile(options.output, env);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
console.log(env);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
console.error("ā Failed to generate environment:", error instanceof Error ? error.message : String(error));
|
|
326
|
+
process.exit(1);
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
// Main CLI program
|
|
330
|
+
const program = new Command()
|
|
331
|
+
.name(packageJson.name)
|
|
332
|
+
.version(packageJson.version)
|
|
333
|
+
.description(packageJson.description)
|
|
334
|
+
.configureOutput({
|
|
335
|
+
writeOut: (str) => {
|
|
336
|
+
// Customize version output to include runtime info
|
|
337
|
+
if (str.includes(packageJson.version) &&
|
|
338
|
+
str.trim() === packageJson.version) {
|
|
339
|
+
const runtime = detectRuntime();
|
|
340
|
+
process.stdout.write(`${packageJson.version} (${runtime})\n`);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
process.stdout.write(str);
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
writeErr: (str) => process.stderr.write(str),
|
|
347
|
+
})
|
|
348
|
+
.option("-t, --token <token>", "Authentication token to use for API requests", (token) => {
|
|
349
|
+
setToken(token);
|
|
350
|
+
})
|
|
351
|
+
.option("-l, --local", `Deploy the app locally (Needs deco.chat running at ${DECO_CHAT_API_LOCAL})`, () => {
|
|
352
|
+
setLocal(true);
|
|
353
|
+
})
|
|
354
|
+
.addHelpText("after", () => {
|
|
355
|
+
const runtime = detectRuntime();
|
|
356
|
+
return `\nRuntime: ${runtime}`;
|
|
357
|
+
})
|
|
358
|
+
.addCommand(login)
|
|
359
|
+
.addCommand(logout)
|
|
360
|
+
.addCommand(whoami)
|
|
361
|
+
.addCommand(hosting)
|
|
362
|
+
.addCommand(hostingDeploy)
|
|
363
|
+
.addCommand(hostingPromote)
|
|
364
|
+
.addCommand(dev)
|
|
365
|
+
.addCommand(configure)
|
|
366
|
+
.addCommand(add)
|
|
367
|
+
.addCommand(upgrade)
|
|
368
|
+
.addCommand(update)
|
|
369
|
+
.addCommand(linkCmd)
|
|
370
|
+
.addCommand(gen)
|
|
371
|
+
.addCommand(create);
|
|
372
|
+
program.parse();
|
|
373
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,oCAAoC;AACpC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;AAEzE,SAAS,eAAe,CAAC,QAAgB,EAAE,QAAgB;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,MAAM,GAAG,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QAC/B,IAAI,MAAM,GAAG,MAAM;YAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,IAAI,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,oBAAoB,gBAAgB,yBAAyB,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,0DAA0D;AAC1D,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACtC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;IAChC,IACE,OAAO,CAAC,IAAI,KAAK,oBAAoB;QACrC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EACpC,CAAC;QACD,OAAO,CAAC,uCAAuC;IACjD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,gCAAgC;AAChC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzE,+BAA+B;AAC/B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC/B,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,iBAAiB,EACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gDAAgD;AAChD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACjC,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACjC,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,mCAAmC;AACnC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACvC,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,yBAAyB,EACzB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACpC,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,SAAS,CAAC;QAE1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,sEAAsE,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,wBAAwB,EACxB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,wCAAwC;AACxC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;KACrC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,cAAc,EAAE,qCAAqC,CAAC;KAC7D,MAAM,CACL,aAAa,EACb,yDAAyD,CAC1D;KACA,MAAM,CACL,WAAW,EACX,gEAAgE,CACjE;KACA,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;QACzD,MAAM,GAAG,GACP,OAAO,CAAC,GAAG;YACX,CAAC,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ;gBACtC,CAAC,CAAC,cAAc,CAAC,IAAI;gBACrB,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEhB,MAAM,MAAM,CAAC;YACX,GAAG,MAAM;YACT,GAAG;YACH,gBAAgB,EAAE,OAAO,CAAC,GAAG;YAC7B,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;YACzB,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM;YACzB,eAAe;YACf,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,sBAAsB,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAC/D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC1C,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;KACrC,MAAM,CAAC,+BAA+B,EAAE,eAAe,CAAC;KACxD,MAAM,CACL,qBAAqB,EACrB,+CAA+C,CAChD;KACA,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAClD,GAAG;oBACD,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ;wBACrC,CAAC,CAAC,cAAc,CAAC,IAAI;wBACrB,CAAC,CAAC,SAAS,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,sDAAsD;YACxD,CAAC;QACH,CAAC;QAED,MAAM,UAAU,CAAC;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,GAAG;YACZ,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,YAAY,EAAE,OAAO,CAAC,KAAK;YAC3B,gBAAgB,EAAE,OAAO,CAAC,GAAG;SAC9B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,qBAAqB,EACrB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,8BAA8B;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAChC,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC;KACrD,kBAAkB,EAAE;KACpB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;QAE5B,MAAM,IAAI,CAAC;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,gBAAgB,EAAE,GAAG,EAAE;gBACrB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CACT,2EAA2E,CAC5E,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEjE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;oBACxC,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;oBACxC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,OAAO,YAAY,CAAC;YACtB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,gBAAgB,EAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACnC,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACjC,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,kBAAkB,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KAC3B,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CACL,+BAA+B,EAC/B,kEAAkE,EAClE,CAAC,SAAS,EAAE,EAAE;IACZ,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS;KACV,CAAC;AACJ,CAAC,CACF;KACA,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,UAAU,CAAC;QACT,mBAAmB,EAAE,OAAO,CAAC,aAAa;KAC3C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gCAAgC;AAChC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACjC,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KAC3B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,6BAA6B,EAAE,gBAAgB,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,UAAU,CAAC;YACf,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,+BAA+B,EAC/B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACnC,WAAW,CAAC,qCAAqC,CAAC;KAClD,UAAU,CAAC,WAAW,CAAC;KACvB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,cAAc,CAAC,CAAC;AAE9B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KAC3B,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CACL,kBAAkB,EAClB,4EAA4E,CAC7E;KACA,MAAM,CACL,qBAAqB,EACrB,iDAAiD,CAClD;KACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EACL,OAAO,CAAC,IAAI;gBACZ,WAAW,YAAY,CACrB,MAAM,CAAC,SAAS,EAChB,cAAc,CAAC,IAAI,IAAI,QAAQ,CAChC,MAAM;SACV,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,mCAAmC,EACnC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;KACtB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;KACpC,eAAe,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QAChB,mDAAmD;QACnD,IACE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;YACjC,GAAG,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,OAAO,EAClC,CAAC;YACD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;CAC7C,CAAC;KACD,MAAM,CACL,qBAAqB,EACrB,8CAA8C,EAC9C,CAAC,KAAK,EAAE,EAAE;IACR,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC,CACF;KACA,MAAM,CACL,aAAa,EACb,sDAAsD,mBAAmB,GAAG,EAC5E,GAAG,EAAE;IACH,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC,CACF;KACA,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;IACzB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO,cAAc,OAAO,EAAE,CAAC;AACjC,CAAC,CAAC;KACD,UAAU,CAAC,KAAK,CAAC;KACjB,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,cAAc,CAAC;KAC1B,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,SAAS,CAAC;KACrB,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,MAAM,CAAC;KAClB,UAAU,CAAC,OAAO,CAAC;KACnB,UAAU,CAAC,GAAG,CAAC;KACf,UAAU,CAAC,MAAM,CAAC,CAAC;AAEtB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/add/add.ts"],"names":[],"mappings":"AAWA,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,iBAAiB,iBA0GvE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { getConfig, readWranglerConfig, writeConfigFile, } from "../../lib/config.js";
|
|
3
|
+
import { promptIntegrations } from "../../lib/prompt-integrations.js";
|
|
4
|
+
import { readSession } from "../../lib/session.js";
|
|
5
|
+
import process from "node:process";
|
|
6
|
+
export async function addCommand({ workspace, local }) {
|
|
7
|
+
try {
|
|
8
|
+
// Check if user has a session
|
|
9
|
+
const session = await readSession();
|
|
10
|
+
if (!session) {
|
|
11
|
+
console.error("ā No session found. Please run 'deco login' first.");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Get current config
|
|
15
|
+
const config = await getConfig({
|
|
16
|
+
inlineOptions: { workspace, local },
|
|
17
|
+
}).catch(() => ({
|
|
18
|
+
workspace: workspace || session.workspace || "default",
|
|
19
|
+
bindings: [],
|
|
20
|
+
local: local || false,
|
|
21
|
+
enable_workflows: true,
|
|
22
|
+
}));
|
|
23
|
+
console.log(`š Using workspace: ${config.workspace}`);
|
|
24
|
+
console.log("š Fetching available integrations...");
|
|
25
|
+
// Prompt user to select integrations
|
|
26
|
+
const selectedBindings = await promptIntegrations(config.local, config.workspace);
|
|
27
|
+
if (selectedBindings.length === 0) {
|
|
28
|
+
console.log("ā¹ļø No integrations selected. Nothing to add.");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(`ā
Selected ${selectedBindings.length} integration(s)`);
|
|
32
|
+
// Prompt for binding names for each integration
|
|
33
|
+
const newBindings = [];
|
|
34
|
+
for (const binding of selectedBindings) {
|
|
35
|
+
// Cast to the proper type since promptIntegrations always returns with integration_id
|
|
36
|
+
const integrationBinding = binding;
|
|
37
|
+
const { bindingName } = await inquirer.prompt([
|
|
38
|
+
{
|
|
39
|
+
type: "input",
|
|
40
|
+
name: "bindingName",
|
|
41
|
+
message: `Enter binding name for integration "${integrationBinding.integration_id}":`,
|
|
42
|
+
default: integrationBinding.name,
|
|
43
|
+
validate: (value) => {
|
|
44
|
+
if (!value.trim()) {
|
|
45
|
+
return "Binding name cannot be empty";
|
|
46
|
+
}
|
|
47
|
+
if (!/^[A-Z_][A-Z0-9_]*$/.test(value)) {
|
|
48
|
+
return "Binding name must be uppercase with underscores (e.g., MY_INTEGRATION)";
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
]);
|
|
54
|
+
newBindings.push({
|
|
55
|
+
name: bindingName,
|
|
56
|
+
type: "mcp",
|
|
57
|
+
integration_id: integrationBinding.integration_id,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
// Read current wrangler config and get existing bindings
|
|
61
|
+
const currentWranglerConfig = await readWranglerConfig();
|
|
62
|
+
const currentBindings = (currentWranglerConfig.deco?.bindings ||
|
|
63
|
+
[]);
|
|
64
|
+
// Simply concat arrays (no deduplication)
|
|
65
|
+
const allBindings = [...currentBindings, ...newBindings];
|
|
66
|
+
// Update config with new bindings
|
|
67
|
+
const updatedConfig = {
|
|
68
|
+
...config,
|
|
69
|
+
bindings: allBindings,
|
|
70
|
+
};
|
|
71
|
+
// Write updated config
|
|
72
|
+
await writeConfigFile(updatedConfig);
|
|
73
|
+
console.log(`ā
Added ${newBindings.length} integration(s) successfully!`);
|
|
74
|
+
newBindings.forEach((binding) => {
|
|
75
|
+
const id = "integration_id" in binding
|
|
76
|
+
? binding.integration_id
|
|
77
|
+
: "integration_name" in binding
|
|
78
|
+
? binding.integration_name
|
|
79
|
+
: "unknown";
|
|
80
|
+
console.log(` - ${binding.name} (${id})`);
|
|
81
|
+
});
|
|
82
|
+
console.log("\nš” Run 'deco gen' to update your environment types.");
|
|
83
|
+
console.log("š Your integrations are ready to use!");
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.error("ā Failed to add integrations:", error instanceof Error ? error.message : String(error));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/add/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,qBAkJxB,CAAC"}
|