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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { promises as fs } from "fs";
|
|
3
|
+
import { relative, join, posix } from "path";
|
|
4
|
+
import { walk } from "../../lib/fs.js";
|
|
5
|
+
import { createWorkspaceClient } from "../../lib/mcp.js";
|
|
6
|
+
import { getCurrentEnvVars } from "../../lib/wrangler.js";
|
|
7
|
+
import { Buffer } from "node:buffer";
|
|
8
|
+
import process from "node:process";
|
|
9
|
+
function tryParseJson(text) {
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(text);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function normalizePath(path) {
|
|
18
|
+
// Convert Windows backslashes to Unix forward slashes
|
|
19
|
+
return posix.normalize(path.replace(/\\/g, "/"));
|
|
20
|
+
}
|
|
21
|
+
const WRANGLER_CONFIG_FILES = ["wrangler.toml", "wrangler.json"];
|
|
22
|
+
export const deploy = async ({ cwd, workspace, app: appSlug, local, assetsDirectory, skipConfirmation, force, unlisted = true, dryRun = false, }) => {
|
|
23
|
+
console.log(`\n๐ ${dryRun ? "Preparing" : "Deploying"} '${appSlug}' to '${workspace}'${dryRun ? " (dry run)" : ""}...\n`);
|
|
24
|
+
// Ensure the target directory exists
|
|
25
|
+
try {
|
|
26
|
+
await fs.stat(cwd);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
throw new Error("Target directory not found");
|
|
30
|
+
}
|
|
31
|
+
// 1. Prepare files to upload: all files in dist/ and wrangler.toml (if exists)
|
|
32
|
+
const files = [];
|
|
33
|
+
let hasTsFile = false;
|
|
34
|
+
let foundWranglerConfigInWalk = false;
|
|
35
|
+
let foundWranglerConfigName = "";
|
|
36
|
+
// Recursively walk cwd/ and add all files
|
|
37
|
+
for await (const entry of walk(cwd, {
|
|
38
|
+
includeFiles: true,
|
|
39
|
+
includeDirs: false,
|
|
40
|
+
skip: [
|
|
41
|
+
/node_modules/,
|
|
42
|
+
/\.git/,
|
|
43
|
+
/\.DS_Store/,
|
|
44
|
+
/\.env/,
|
|
45
|
+
/\.env\.local/,
|
|
46
|
+
/\.dev\.vars/,
|
|
47
|
+
],
|
|
48
|
+
exts: [
|
|
49
|
+
"ts",
|
|
50
|
+
"mjs",
|
|
51
|
+
"js",
|
|
52
|
+
"cjs",
|
|
53
|
+
"toml",
|
|
54
|
+
"json",
|
|
55
|
+
"css",
|
|
56
|
+
"html",
|
|
57
|
+
"txt",
|
|
58
|
+
"wasm",
|
|
59
|
+
"sql",
|
|
60
|
+
],
|
|
61
|
+
})) {
|
|
62
|
+
const realPath = normalizePath(relative(cwd, entry.path));
|
|
63
|
+
const content = await fs.readFile(entry.path, "utf-8");
|
|
64
|
+
files.push({ path: realPath, content });
|
|
65
|
+
if (realPath.endsWith(".ts")) {
|
|
66
|
+
hasTsFile = true;
|
|
67
|
+
}
|
|
68
|
+
if (WRANGLER_CONFIG_FILES.some((name) => realPath.includes(name))) {
|
|
69
|
+
foundWranglerConfigInWalk = true;
|
|
70
|
+
foundWranglerConfigName = realPath;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (assetsDirectory) {
|
|
74
|
+
for await (const entry of walk(assetsDirectory, {
|
|
75
|
+
includeFiles: true,
|
|
76
|
+
includeDirs: false,
|
|
77
|
+
skip: [
|
|
78
|
+
/node_modules/,
|
|
79
|
+
/\.git/,
|
|
80
|
+
/\.DS_Store/,
|
|
81
|
+
/\.env/,
|
|
82
|
+
/\.env\.local/,
|
|
83
|
+
/\.dev\.vars/,
|
|
84
|
+
],
|
|
85
|
+
})) {
|
|
86
|
+
const realPath = normalizePath(relative(assetsDirectory, entry.path));
|
|
87
|
+
const content = await fs.readFile(entry.path);
|
|
88
|
+
const base64Content = Buffer.from(content).toString("base64");
|
|
89
|
+
files.push({ path: realPath, content: base64Content, asset: true });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// 2. wrangler.toml/json (optional)
|
|
93
|
+
let wranglerConfigStatus = "";
|
|
94
|
+
if (!foundWranglerConfigInWalk) {
|
|
95
|
+
let found = false;
|
|
96
|
+
for (const configFile of WRANGLER_CONFIG_FILES) {
|
|
97
|
+
const configPath = `${process.cwd()}/${configFile}`;
|
|
98
|
+
try {
|
|
99
|
+
const configContent = await fs.readFile(configPath, "utf-8");
|
|
100
|
+
files.push({ path: configFile, content: configContent });
|
|
101
|
+
wranglerConfigStatus = `${configFile} โ
(found in ${configPath})`;
|
|
102
|
+
found = true;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
catch (_) {
|
|
106
|
+
// not found, try next
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (!found) {
|
|
110
|
+
wranglerConfigStatus = "wrangler.toml/json โ";
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
wranglerConfigStatus = `${foundWranglerConfigName} โ
(found in project files)`;
|
|
115
|
+
}
|
|
116
|
+
// 3. Load envVars from .dev.vars
|
|
117
|
+
const { envVars, envFilepath } = await getCurrentEnvVars(process.cwd());
|
|
118
|
+
const envVarsStatus = `Loaded ${Object.keys(envVars).length} env vars from ${envFilepath}`;
|
|
119
|
+
const manifest = {
|
|
120
|
+
appSlug,
|
|
121
|
+
files,
|
|
122
|
+
envVars,
|
|
123
|
+
envFilepath,
|
|
124
|
+
bundle: hasTsFile,
|
|
125
|
+
unlisted,
|
|
126
|
+
force,
|
|
127
|
+
};
|
|
128
|
+
console.log("๐ Deployment summary:");
|
|
129
|
+
console.log(` App: ${appSlug}`);
|
|
130
|
+
console.log(` Files: ${files.length}`);
|
|
131
|
+
console.log(` ${envVarsStatus}`);
|
|
132
|
+
console.log(` ${wranglerConfigStatus}`);
|
|
133
|
+
if (dryRun) {
|
|
134
|
+
const manifestPath = join(cwd, "deploy-manifest.json");
|
|
135
|
+
await fs.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
|
|
136
|
+
console.log(`\n๐ Dry run complete! Deploy manifest written to:`);
|
|
137
|
+
console.log(` ${manifestPath}`);
|
|
138
|
+
console.log();
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const confirmed = skipConfirmation ||
|
|
142
|
+
(await inquirer.prompt([
|
|
143
|
+
{
|
|
144
|
+
type: "confirm",
|
|
145
|
+
name: "proceed",
|
|
146
|
+
message: "Proceed with deployment?",
|
|
147
|
+
default: true,
|
|
148
|
+
},
|
|
149
|
+
])).proceed;
|
|
150
|
+
if (!confirmed) {
|
|
151
|
+
console.log("โ Deployment cancelled");
|
|
152
|
+
process.exit(0);
|
|
153
|
+
}
|
|
154
|
+
const client = await createWorkspaceClient({ workspace, local });
|
|
155
|
+
const deploy = async (options) => {
|
|
156
|
+
const response = await client.callTool({
|
|
157
|
+
name: "HOSTING_APP_DEPLOY",
|
|
158
|
+
arguments: manifest,
|
|
159
|
+
});
|
|
160
|
+
if (response.isError && Array.isArray(response.content)) {
|
|
161
|
+
console.error("Error deploying: ", response);
|
|
162
|
+
const errorText = response.content[0]?.text;
|
|
163
|
+
const errorTextJson = tryParseJson(errorText ?? "");
|
|
164
|
+
if (errorTextJson?.name === "MCPBreakingChangeError" && !force) {
|
|
165
|
+
console.log("Looks like you have breaking changes in your app.");
|
|
166
|
+
console.log(errorTextJson.message);
|
|
167
|
+
if (skipConfirmation) {
|
|
168
|
+
console.error("Use --force (-f) to deploy with breaking changes");
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
const confirmed = await inquirer.prompt([
|
|
172
|
+
{
|
|
173
|
+
type: "confirm",
|
|
174
|
+
name: "proceed",
|
|
175
|
+
message: "Would you like to retry with the --force flag?",
|
|
176
|
+
default: true,
|
|
177
|
+
},
|
|
178
|
+
]);
|
|
179
|
+
if (!confirmed) {
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
return deploy({ ...options, force: true });
|
|
183
|
+
}
|
|
184
|
+
throw new Error(errorTextJson ?? errorText ?? "Unknown error");
|
|
185
|
+
}
|
|
186
|
+
return response;
|
|
187
|
+
};
|
|
188
|
+
const response = await deploy(manifest);
|
|
189
|
+
const { hosts } = response.structuredContent;
|
|
190
|
+
console.log(`\n๐ Deployed! Available at:`);
|
|
191
|
+
hosts.forEach((host) => console.log(` ${host}`));
|
|
192
|
+
console.log();
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/hosting/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/hosting/list.ts"],"names":[],"mappings":"AAIA,UAAU,OAAO;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,eAAO,MAAM,QAAQ,GAAU,eAAe,OAAO,kBA6BpD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createWorkspaceClient } from "../../lib/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export const listApps = async ({ workspace }) => {
|
|
4
|
+
console.log(`๐ Listing apps in workspace '${workspace}'...`);
|
|
5
|
+
const client = await createWorkspaceClient({ workspace });
|
|
6
|
+
const response = await client.callTool({
|
|
7
|
+
name: "HOSTING_APPS_LIST",
|
|
8
|
+
arguments: {},
|
|
9
|
+
},
|
|
10
|
+
// @ts-expect-error We need to refactor HOSTING_APPS_LIST to stop returning array and use a proper object
|
|
11
|
+
z.any());
|
|
12
|
+
if (response.isError && Array.isArray(response.content)) {
|
|
13
|
+
throw new Error(response.content[0]?.text ?? "Unknown error");
|
|
14
|
+
}
|
|
15
|
+
const apps = response.structuredContent;
|
|
16
|
+
if (apps.length === 0) {
|
|
17
|
+
console.log("๐ญ No apps found in this workspace.");
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log("๐ฑ Apps in workspace:");
|
|
21
|
+
apps.forEach((app) => {
|
|
22
|
+
console.log(` โข ${app.slug} (${app.entrypoint}, Files: ${app.files.length})`);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/hosting/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAE,SAAS,EAAW,EAAE,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,iCAAiC,SAAS,MAAM,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CACpC;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,EAAE;KACd;IACD,yGAAyG;IACzG,CAAC,CAAC,GAAG,EAAE,CACR,CAAC;IAEF,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,eAAe,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAA0B,CAAC;IAEjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CACT,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,UAAU,YAAY,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAClE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
workspace: string;
|
|
3
|
+
appSlug?: string;
|
|
4
|
+
local?: boolean;
|
|
5
|
+
deploymentId?: string;
|
|
6
|
+
routePattern?: string;
|
|
7
|
+
skipConfirmation?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const promoteApp: ({ workspace, local, appSlug, deploymentId, routePattern, skipConfirmation, }: Options) => Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=promote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../../src/commands/hosting/promote.ts"],"names":[],"mappings":"AAGA,UAAU,OAAO;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAmBD,eAAO,MAAM,UAAU,GAAU,8EAO9B,OAAO,kBA6MT,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import { createWorkspaceClient } from "../../lib/mcp.js";
|
|
3
|
+
export const promoteApp = async ({ workspace, local, appSlug, deploymentId, routePattern, skipConfirmation = false, }) => {
|
|
4
|
+
const client = await createWorkspaceClient({ workspace, local });
|
|
5
|
+
// If appSlug is not provided, list published apps and let user select
|
|
6
|
+
let selectedAppSlug = appSlug;
|
|
7
|
+
if (!selectedAppSlug) {
|
|
8
|
+
console.log(`๐ Fetching published apps in workspace '${workspace}'...`);
|
|
9
|
+
const publishedAppsResponse = await client.callTool({
|
|
10
|
+
name: "REGISTRY_LIST_PUBLISHED_APPS",
|
|
11
|
+
arguments: {},
|
|
12
|
+
});
|
|
13
|
+
if (publishedAppsResponse.isError &&
|
|
14
|
+
Array.isArray(publishedAppsResponse.content)) {
|
|
15
|
+
throw new Error(publishedAppsResponse.content[0]?.text ??
|
|
16
|
+
"Failed to list published apps");
|
|
17
|
+
}
|
|
18
|
+
const { apps } = publishedAppsResponse.structuredContent;
|
|
19
|
+
if (apps.length === 0) {
|
|
20
|
+
console.log("๐ญ No published apps found in this workspace.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (apps.length === 1) {
|
|
24
|
+
selectedAppSlug = apps[0].name;
|
|
25
|
+
console.log(`๐ฆ Using app: ${selectedAppSlug} (${apps[0].friendlyName || apps[0].name})`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Show apps for selection
|
|
29
|
+
const appOptions = apps.map((app) => ({
|
|
30
|
+
name: `${app.name}${app.friendlyName ? ` (${app.friendlyName})` : ""}${app.description ? ` - ${app.description}` : ""}`,
|
|
31
|
+
value: app.name,
|
|
32
|
+
}));
|
|
33
|
+
const { selectedApp } = await inquirer.prompt([
|
|
34
|
+
{
|
|
35
|
+
type: "list",
|
|
36
|
+
name: "selectedApp",
|
|
37
|
+
message: "Select app to promote:",
|
|
38
|
+
choices: appOptions,
|
|
39
|
+
},
|
|
40
|
+
]);
|
|
41
|
+
selectedAppSlug = selectedApp;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
console.log(`๐ Promoting deployment for app '${selectedAppSlug}' in workspace '${workspace}'...`);
|
|
45
|
+
// First, get the list of deployments for the app
|
|
46
|
+
const deploymentsResponse = await client.callTool({
|
|
47
|
+
name: "HOSTING_APP_DEPLOYMENTS_LIST",
|
|
48
|
+
arguments: { appSlug: selectedAppSlug },
|
|
49
|
+
});
|
|
50
|
+
if (deploymentsResponse.isError &&
|
|
51
|
+
Array.isArray(deploymentsResponse.content)) {
|
|
52
|
+
throw new Error(deploymentsResponse.content[0]?.text ?? "Failed to list deployments");
|
|
53
|
+
}
|
|
54
|
+
const { deployments, app } = deploymentsResponse.structuredContent;
|
|
55
|
+
if (deployments.length === 0) {
|
|
56
|
+
console.log("๐ญ No deployments found for this app.");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let selectedDeploymentId = deploymentId;
|
|
60
|
+
// If deployment ID not provided, ask user to select one
|
|
61
|
+
if (!selectedDeploymentId) {
|
|
62
|
+
if (deployments.length === 1) {
|
|
63
|
+
selectedDeploymentId = deployments[0].id;
|
|
64
|
+
console.log(`๐ฆ Using deployment: ${selectedDeploymentId} (${deployments[0].entrypoint})`);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Show deployments with creation time
|
|
68
|
+
const deploymentOptions = deployments.map((dep) => ({
|
|
69
|
+
name: `${dep.id} - ${new Date(dep.created_at).toLocaleString()} (${dep.entrypoint})`,
|
|
70
|
+
value: dep.id,
|
|
71
|
+
}));
|
|
72
|
+
const { selectedDeployment } = await inquirer.prompt([
|
|
73
|
+
{
|
|
74
|
+
type: "list",
|
|
75
|
+
name: "selectedDeployment",
|
|
76
|
+
message: "Select deployment to promote:",
|
|
77
|
+
choices: deploymentOptions,
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
selectedDeploymentId = selectedDeployment;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const selectedDeployment = deployments.find((d) => d.id === selectedDeploymentId);
|
|
84
|
+
if (!selectedDeployment) {
|
|
85
|
+
throw new Error(`Deployment ${selectedDeploymentId} not found`);
|
|
86
|
+
}
|
|
87
|
+
let selectedRoutePattern = routePattern;
|
|
88
|
+
// If route pattern not provided, ask user to input it
|
|
89
|
+
if (!selectedRoutePattern) {
|
|
90
|
+
const { routeInput } = await inquirer.prompt([
|
|
91
|
+
{
|
|
92
|
+
type: "input",
|
|
93
|
+
name: "routeInput",
|
|
94
|
+
message: "Enter route pattern to promote to:",
|
|
95
|
+
default: `${selectedAppSlug}.deco.page`,
|
|
96
|
+
validate: (input) => {
|
|
97
|
+
const trimmed = input.trim();
|
|
98
|
+
if (!trimmed)
|
|
99
|
+
return "Route pattern is required";
|
|
100
|
+
return true;
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
]);
|
|
104
|
+
selectedRoutePattern = routeInput;
|
|
105
|
+
}
|
|
106
|
+
// Show confirmation
|
|
107
|
+
if (!skipConfirmation) {
|
|
108
|
+
console.log("\n๐ Promotion Summary:");
|
|
109
|
+
console.log(` App: ${app.slug}`);
|
|
110
|
+
console.log(` Deployment: ${selectedDeploymentId}`);
|
|
111
|
+
console.log(` Entrypoint: ${selectedDeployment.entrypoint}`);
|
|
112
|
+
console.log(` Route Pattern: ${selectedRoutePattern}`);
|
|
113
|
+
const { confirmed } = await inquirer.prompt([
|
|
114
|
+
{
|
|
115
|
+
type: "confirm",
|
|
116
|
+
name: "confirmed",
|
|
117
|
+
message: "Do you want to proceed with the promotion?",
|
|
118
|
+
default: true,
|
|
119
|
+
},
|
|
120
|
+
]);
|
|
121
|
+
if (!confirmed) {
|
|
122
|
+
console.log("โ Promotion cancelled.");
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Perform the promotion
|
|
127
|
+
try {
|
|
128
|
+
const promoteResponse = await client.callTool({
|
|
129
|
+
name: "HOSTING_APPS_PROMOTE",
|
|
130
|
+
arguments: {
|
|
131
|
+
deploymentId: selectedDeploymentId,
|
|
132
|
+
routePattern: selectedRoutePattern,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
if (promoteResponse.isError && Array.isArray(promoteResponse.content)) {
|
|
136
|
+
throw new Error(promoteResponse.content[0]?.text ?? "Failed to promote deployment");
|
|
137
|
+
}
|
|
138
|
+
const result = promoteResponse.structuredContent;
|
|
139
|
+
if (result.success) {
|
|
140
|
+
console.log("โ
Deployment promoted successfully!");
|
|
141
|
+
console.log(`๐ Route updated: ${result.promotedRoute}`);
|
|
142
|
+
console.log("๐งน Route cache purged");
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
throw new Error("Promotion failed");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
console.error("โ Failed to promote deployment:", error);
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=promote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/commands/hosting/promote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/update/update.ts"],"names":[],"mappings":"AAyQA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF7E"}
|