decocms 0.16.0 → 2.135.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.
Files changed (112) hide show
  1. package/README.md +52 -77
  2. package/bin/deco.js +33 -0
  3. package/package.json +29 -60
  4. package/dist/cli.d.ts +0 -3
  5. package/dist/cli.d.ts.map +0 -1
  6. package/dist/cli.js +0 -373
  7. package/dist/cli.js.map +0 -1
  8. package/dist/commands/add/add.d.ts +0 -7
  9. package/dist/commands/add/add.d.ts.map +0 -1
  10. package/dist/commands/add/add.js +0 -90
  11. package/dist/commands/add/add.js.map +0 -1
  12. package/dist/commands/auth/login.d.ts +0 -2
  13. package/dist/commands/auth/login.d.ts.map +0 -1
  14. package/dist/commands/auth/login.js +0 -125
  15. package/dist/commands/auth/login.js.map +0 -1
  16. package/dist/commands/auth/whoami.d.ts +0 -2
  17. package/dist/commands/auth/whoami.d.ts.map +0 -1
  18. package/dist/commands/auth/whoami.js +0 -51
  19. package/dist/commands/auth/whoami.js.map +0 -1
  20. package/dist/commands/config/configure.d.ts +0 -2
  21. package/dist/commands/config/configure.d.ts.map +0 -1
  22. package/dist/commands/config/configure.js +0 -51
  23. package/dist/commands/config/configure.js.map +0 -1
  24. package/dist/commands/create/create.d.ts +0 -3
  25. package/dist/commands/create/create.d.ts.map +0 -1
  26. package/dist/commands/create/create.js +0 -238
  27. package/dist/commands/create/create.js.map +0 -1
  28. package/dist/commands/dev/dev.d.ts +0 -8
  29. package/dist/commands/dev/dev.d.ts.map +0 -1
  30. package/dist/commands/dev/dev.js +0 -64
  31. package/dist/commands/dev/dev.js.map +0 -1
  32. package/dist/commands/dev/link.d.ts +0 -8
  33. package/dist/commands/dev/link.d.ts.map +0 -1
  34. package/dist/commands/dev/link.js +0 -124
  35. package/dist/commands/dev/link.js.map +0 -1
  36. package/dist/commands/gen/gen.d.ts +0 -11
  37. package/dist/commands/gen/gen.d.ts.map +0 -1
  38. package/dist/commands/gen/gen.js +0 -341
  39. package/dist/commands/gen/gen.js.map +0 -1
  40. package/dist/commands/hosting/deploy.d.ts +0 -19
  41. package/dist/commands/hosting/deploy.d.ts.map +0 -1
  42. package/dist/commands/hosting/deploy.js +0 -194
  43. package/dist/commands/hosting/deploy.js.map +0 -1
  44. package/dist/commands/hosting/list.d.ts +0 -6
  45. package/dist/commands/hosting/list.d.ts.map +0 -1
  46. package/dist/commands/hosting/list.js +0 -26
  47. package/dist/commands/hosting/list.js.map +0 -1
  48. package/dist/commands/hosting/promote.d.ts +0 -11
  49. package/dist/commands/hosting/promote.d.ts.map +0 -1
  50. package/dist/commands/hosting/promote.js +0 -153
  51. package/dist/commands/hosting/promote.js.map +0 -1
  52. package/dist/commands/update/update.d.ts +0 -4
  53. package/dist/commands/update/update.d.ts.map +0 -1
  54. package/dist/commands/update/update.js +0 -242
  55. package/dist/commands/update/update.js.map +0 -1
  56. package/dist/commands/update/upgrade.d.ts +0 -4
  57. package/dist/commands/update/upgrade.d.ts.map +0 -1
  58. package/dist/commands/update/upgrade.js +0 -157
  59. package/dist/commands/update/upgrade.js.map +0 -1
  60. package/dist/lib/config.d.ts +0 -309
  61. package/dist/lib/config.d.ts.map +0 -1
  62. package/dist/lib/config.js +0 -262
  63. package/dist/lib/config.js.map +0 -1
  64. package/dist/lib/constants.d.ts +0 -10
  65. package/dist/lib/constants.d.ts.map +0 -1
  66. package/dist/lib/constants.js +0 -16
  67. package/dist/lib/constants.js.map +0 -1
  68. package/dist/lib/fs.d.ts +0 -40
  69. package/dist/lib/fs.d.ts.map +0 -1
  70. package/dist/lib/fs.js +0 -162
  71. package/dist/lib/fs.js.map +0 -1
  72. package/dist/lib/mcp.d.ts +0 -34
  73. package/dist/lib/mcp.d.ts.map +0 -1
  74. package/dist/lib/mcp.js +0 -19
  75. package/dist/lib/mcp.js.map +0 -1
  76. package/dist/lib/parse-binding-tool.d.ts +0 -12
  77. package/dist/lib/parse-binding-tool.d.ts.map +0 -1
  78. package/dist/lib/parse-binding-tool.js +0 -15
  79. package/dist/lib/parse-binding-tool.js.map +0 -1
  80. package/dist/lib/prompt-ide-setup.d.ts +0 -27
  81. package/dist/lib/prompt-ide-setup.d.ts.map +0 -1
  82. package/dist/lib/prompt-ide-setup.js +0 -158
  83. package/dist/lib/prompt-ide-setup.js.map +0 -1
  84. package/dist/lib/prompt-integrations.d.ts +0 -7
  85. package/dist/lib/prompt-integrations.d.ts.map +0 -1
  86. package/dist/lib/prompt-integrations.js +0 -84
  87. package/dist/lib/prompt-integrations.js.map +0 -1
  88. package/dist/lib/prompt-workspace.d.ts +0 -2
  89. package/dist/lib/prompt-workspace.d.ts.map +0 -1
  90. package/dist/lib/prompt-workspace.js +0 -93
  91. package/dist/lib/prompt-workspace.js.map +0 -1
  92. package/dist/lib/runtime.d.ts +0 -5
  93. package/dist/lib/runtime.d.ts.map +0 -1
  94. package/dist/lib/runtime.js +0 -15
  95. package/dist/lib/runtime.js.map +0 -1
  96. package/dist/lib/session.d.ts +0 -39
  97. package/dist/lib/session.d.ts.map +0 -1
  98. package/dist/lib/session.js +0 -124
  99. package/dist/lib/session.js.map +0 -1
  100. package/dist/lib/slugify.d.ts +0 -13
  101. package/dist/lib/slugify.d.ts.map +0 -1
  102. package/dist/lib/slugify.js +0 -27
  103. package/dist/lib/slugify.js.map +0 -1
  104. package/dist/lib/supabase.d.ts +0 -5
  105. package/dist/lib/supabase.d.ts.map +0 -1
  106. package/dist/lib/supabase.js +0 -19
  107. package/dist/lib/supabase.js.map +0 -1
  108. package/dist/lib/wrangler.d.ts +0 -9
  109. package/dist/lib/wrangler.d.ts.map +0 -1
  110. package/dist/lib/wrangler.js +0 -118
  111. package/dist/lib/wrangler.js.map +0 -1
  112. package/dist/rules/deco-chat.mdc +0 -902
@@ -1,238 +0,0 @@
1
- import inquirer from "inquirer";
2
- import { promises as fs } from "fs";
3
- import { spawn } from "child_process";
4
- import { dirname, join } from "path";
5
- import { fileURLToPath } from "url";
6
- import { copy, ensureDir } from "../../lib/fs.js";
7
- import { readWranglerConfig, writeWranglerConfig, } from "../../lib/config.js";
8
- import { slugify } from "../../lib/slugify.js";
9
- import { promptWorkspace } from "../../lib/prompt-workspace.js";
10
- import { genEnv } from "../gen/gen.js";
11
- import { promptIDESetup, writeIDEConfig } from "../../lib/prompt-ide-setup.js";
12
- import process from "node:process";
13
- const __filename = fileURLToPath(import.meta.url);
14
- const __dirname = dirname(__filename);
15
- const DEFAULT_TEMPLATE = {
16
- name: "Deco MCP app",
17
- description: "A Deco MCP app",
18
- repo: "deco-cx/deco-create",
19
- branch: "main",
20
- wranglerRoot: "server",
21
- pathsToIgnore: [".cursorindexingignore", ".specstory", "plans"],
22
- };
23
- function runCommand(command, args, cwd) {
24
- return new Promise((resolve) => {
25
- const process = spawn(command, args, {
26
- cwd,
27
- stdio: "pipe",
28
- });
29
- process.on("close", (code) => {
30
- resolve(code === 0);
31
- });
32
- process.on("error", () => {
33
- resolve(false);
34
- });
35
- });
36
- }
37
- const PATHS_TO_IGNORE_ALWAYS = [".git"];
38
- async function downloadTemplate(template, targetDir) {
39
- // For the base template, use the local copy
40
- if (template.name === "base") {
41
- const templatePath = join(__dirname, "../../../template/base");
42
- await ensureDir(targetDir);
43
- await copy(templatePath, targetDir, { overwrite: true });
44
- console.log(`✅ Template '${template.name}' copied successfully!`);
45
- return;
46
- }
47
- // For remote templates, use git clone
48
- const tempDir = join(process.cwd(), `.temp-${Date.now()}`);
49
- try {
50
- const success = await runCommand("git", [
51
- "clone",
52
- "--depth",
53
- "1",
54
- "--branch",
55
- template.branch || "main",
56
- `https://github.com/${template.repo}.git`,
57
- tempDir,
58
- ]);
59
- if (!success) {
60
- throw new Error(`Failed to clone template repository: ${template.repo}`);
61
- }
62
- const pathsToIgnore = [
63
- ...(template.pathsToIgnore || []),
64
- ...PATHS_TO_IGNORE_ALWAYS,
65
- ];
66
- for (const path of pathsToIgnore) {
67
- const pathToRemove = join(tempDir, path);
68
- const isDirectory = await fs
69
- .stat(pathToRemove)
70
- .then((stat) => stat.isDirectory());
71
- await fs
72
- .rm(pathToRemove, isDirectory ? { recursive: true, force: true } : { force: true })
73
- .catch(() => {
74
- console.warn(`Failed to remove ${path} from the original template: ${pathToRemove}`);
75
- });
76
- }
77
- const templatePath = join(tempDir, template.path || "");
78
- try {
79
- await fs.access(templatePath);
80
- }
81
- catch {
82
- throw new Error(`Template '${template.name}' not found in repository`);
83
- }
84
- await ensureDir(targetDir);
85
- await copy(templatePath, targetDir, { overwrite: true });
86
- console.log(`✅ Template '${template.name}' downloaded successfully!`);
87
- }
88
- finally {
89
- await fs.rm(tempDir, { recursive: true, force: true }).catch(() => { });
90
- }
91
- }
92
- async function customizeTemplate({ targetDir, projectName, workspace, wranglerRoot, }) {
93
- const packageJsonPath = join(targetDir, "package.json");
94
- try {
95
- const packageJsonContent = await fs.readFile(packageJsonPath, "utf-8");
96
- const packageJson = JSON.parse(packageJsonContent);
97
- packageJson.name = projectName;
98
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
99
- }
100
- catch (error) {
101
- console.warn("⚠️ Could not customize package.json:", error instanceof Error ? error.message : String(error));
102
- }
103
- // Write config file with project name and workspace
104
- if (workspace) {
105
- try {
106
- // Read current config from target directory
107
- const currentConfig = await readWranglerConfig(wranglerRoot || targetDir);
108
- // For now, use empty bindings - we can enhance this later with prompt integrations
109
- const bindings = [];
110
- // Merge with new project name and workspace - preserve all existing config
111
- const newConfig = {
112
- ...currentConfig,
113
- name: projectName,
114
- scope: workspace,
115
- deco: {
116
- ...currentConfig.deco,
117
- workspace,
118
- bindings,
119
- },
120
- };
121
- // Write the new config file
122
- await writeWranglerConfig(newConfig, wranglerRoot || targetDir);
123
- // Generate environment variables file
124
- const envContent = await genEnv({
125
- workspace: workspace,
126
- local: false,
127
- bindings: newConfig.deco.bindings || [],
128
- });
129
- const outputPath = join(wranglerRoot || targetDir, "deco.gen.ts");
130
- await fs.writeFile(outputPath, envContent);
131
- console.log(`✅ Environment types written to: ${outputPath}`);
132
- }
133
- catch (error) {
134
- console.warn("⚠️ Could not update config file:", error instanceof Error ? error.message : String(error));
135
- }
136
- }
137
- }
138
- export async function createCommand(projectName, config = {}) {
139
- try {
140
- const selectedTemplate = DEFAULT_TEMPLATE;
141
- const finalProjectName = slugify(projectName ||
142
- (await inquirer.prompt([
143
- {
144
- type: "input",
145
- name: "projectName",
146
- message: "Enter project name:",
147
- validate: (value) => {
148
- if (!value.trim()) {
149
- return "Project name cannot be empty";
150
- }
151
- if (!/^[a-z0-9-]+$/.test(value)) {
152
- return "Project name can only contain lowercase letters, numbers, and hyphens";
153
- }
154
- return true;
155
- },
156
- },
157
- ])).projectName);
158
- // Prompt user to select workspace
159
- let workspace = config?.workspace;
160
- try {
161
- workspace = await promptWorkspace(config?.local, workspace);
162
- console.log(`📁 Selected workspace: ${workspace}`);
163
- }
164
- catch (error) {
165
- console.error(error);
166
- console.warn("⚠️ Could not select workspace. Please run 'deco login' to authenticate for a better experience.");
167
- // Continue without workspace
168
- }
169
- const targetDir = join(process.cwd(), finalProjectName);
170
- try {
171
- await fs.access(targetDir);
172
- const { overwrite } = await inquirer.prompt([
173
- {
174
- type: "list",
175
- name: "overwrite",
176
- message: `Directory '${finalProjectName}' already exists. Overwrite?`,
177
- choices: ["No", "Yes"],
178
- },
179
- ]);
180
- if (overwrite === "No") {
181
- console.log("❌ Project creation cancelled.");
182
- return;
183
- }
184
- await fs.rm(targetDir, { recursive: true });
185
- }
186
- catch {
187
- // Directory doesn't exist, that's fine
188
- }
189
- const wranglerRoot = join(targetDir, selectedTemplate.wranglerRoot || "");
190
- const { initGit } = await inquirer.prompt([
191
- {
192
- type: "list",
193
- name: "initGit",
194
- message: "Initialize a git repository?",
195
- choices: ["No", "Yes"],
196
- },
197
- ]);
198
- // Prompt user to install MCP configuration for IDE
199
- const mcpResult = workspace
200
- ? await promptIDESetup({ workspace, app: finalProjectName }, targetDir)
201
- : null;
202
- console.log(`📦 Downloading template '${selectedTemplate.name}'...`);
203
- await downloadTemplate(selectedTemplate, targetDir);
204
- if (mcpResult) {
205
- await writeIDEConfig(mcpResult);
206
- }
207
- await customizeTemplate({
208
- targetDir,
209
- projectName: finalProjectName,
210
- workspace,
211
- wranglerRoot,
212
- });
213
- if (initGit === "Yes") {
214
- try {
215
- const success = await runCommand("git", ["init"], targetDir);
216
- if (success) {
217
- console.log(`✅ Git repository initialized in '${finalProjectName}'`);
218
- }
219
- else {
220
- console.warn("⚠️ Failed to initialize git repository");
221
- }
222
- }
223
- catch (error) {
224
- console.warn("⚠️ Could not initialize git repository:", error instanceof Error ? error.message : String(error));
225
- }
226
- }
227
- console.log(`\n🎉 Project '${finalProjectName}' created successfully!`);
228
- console.log(`\nNext steps:`);
229
- console.log(` cd ${finalProjectName}`);
230
- console.log(` npm install`);
231
- console.log(` npm run dev`);
232
- }
233
- catch (error) {
234
- console.error("❌ Failed to create project:", error instanceof Error ? error.message : String(error));
235
- process.exit(1);
236
- }
237
- }
238
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/create/create.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export interface StartDevServerOptions {
2
- cleanBuildDirectory?: {
3
- enabled: boolean;
4
- directory: string;
5
- };
6
- }
7
- export declare function devCommand(opts: StartDevServerOptions): Promise<void>;
8
- //# sourceMappingURL=dev.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,CAAC,EAAE;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE3E"}
@@ -1,64 +0,0 @@
1
- import { spawn } from "child_process";
2
- import { getConfig, readWranglerConfig } from "../../lib/config.js";
3
- import { ensureDevEnvironment } from "../../lib/wrangler.js";
4
- import { link } from "./link.js";
5
- import process from "node:process";
6
- export async function devCommand(opts) {
7
- try {
8
- // 1. Ensure development environment is set up
9
- console.log("🔧 Setting up development environment...");
10
- await ensureDevEnvironment(opts);
11
- // 2. Get configuration
12
- const _config = await getConfig().catch(() => ({
13
- workspace: "default",
14
- bindings: [],
15
- local: false,
16
- enable_workflows: true,
17
- }));
18
- const wranglerConfig = await readWranglerConfig();
19
- const app = typeof wranglerConfig.name === "string" ? wranglerConfig.name : "my-app";
20
- console.log(`📦 Starting development server for '${app}'...`);
21
- // 3. TODO: Check/setup MCP configuration when we port those utilities
22
- // const latest = await hasMCPPreferences(config.workspace, app);
23
- // if (!latest) {
24
- // const mcpConfig = await promptIDESetup({
25
- // workspace: config.workspace,
26
- // app,
27
- // });
28
- // if (mcpConfig) {
29
- // await writeIDEConfig(mcpConfig);
30
- // }
31
- // }
32
- // 4. Start development server with tunnel integration
33
- console.log("🚀 Starting development server with tunnel...");
34
- // Use link command with wrangler dev as subprocess
35
- await link({
36
- port: 8787,
37
- onBeforeRegister: () => {
38
- console.log("🔗 Starting Wrangler development server...");
39
- const wranglerProcess = spawn("npx", ["wrangler", "dev"], {
40
- stdio: "inherit",
41
- shell: true,
42
- });
43
- // Handle process termination
44
- const cleanup = () => {
45
- console.log("\n⏹️ Stopping development server...");
46
- wranglerProcess.kill("SIGINT");
47
- process.exit(0);
48
- };
49
- process.on("SIGINT", cleanup);
50
- process.on("SIGTERM", cleanup);
51
- wranglerProcess.on("error", (error) => {
52
- console.error("❌ Failed to start Wrangler:", error.message);
53
- process.exit(1);
54
- });
55
- return wranglerProcess;
56
- },
57
- });
58
- }
59
- catch (error) {
60
- console.error("❌ Development server failed:", error instanceof Error ? error.message : String(error));
61
- process.exit(1);
62
- }
63
- }
64
- //# sourceMappingURL=dev.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AASnC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA2B;IAC1D,IAAI,CAAC;QACH,8CAA8C;QAC9C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEjC,uBAAuB;QACvB,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,KAAK;YACZ,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAClD,MAAM,GAAG,GACP,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,OAAO,CAAC,GAAG,CAAC,uCAAuC,GAAG,MAAM,CAAC,CAAC;QAE9D,sEAAsE;QACtE,iEAAiE;QACjE,iBAAiB;QACjB,6CAA6C;QAC7C,mCAAmC;QACnC,WAAW;QACX,QAAQ;QACR,qBAAqB;QACrB,uCAAuC;QACvC,MAAM;QACN,IAAI;QAEJ,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAE7D,mDAAmD;QACnD,MAAM,IAAI,CAAC;YACT,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,GAAG,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAE1D,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;oBACxD,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBAEH,6BAA6B;gBAC7B,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;oBACpD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC;gBAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAE/B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACpC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,OAAO,eAAe,CAAC;YACzB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,8BAA8B,EAC9B,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"}
@@ -1,8 +0,0 @@
1
- import { ChildProcess } from "child_process";
2
- interface LinkOptions {
3
- port?: number;
4
- onBeforeRegister?: () => void | ChildProcess;
5
- }
6
- export declare const link: ({ port, onBeforeRegister, }?: LinkOptions) => Promise<void>;
7
- export {};
8
- //# sourceMappingURL=link.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;AAWpD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,YAAY,CAAC;CAC9C;AA6ID,eAAO,MAAM,IAAI,GAAU,8BAGxB,WAAgB,kBAWlB,CAAC"}
@@ -1,124 +0,0 @@
1
- import { spawn } from "child_process";
2
- import { connect } from "@deco-cx/warp-node";
3
- import chalk from "chalk";
4
- import { getAppDomain, getConfig, readWranglerConfig, } from "../../lib/config.js";
5
- import { createServer } from "net";
6
- import process from "node:process";
7
- function copyToClipboard(text) {
8
- try {
9
- let command;
10
- let args = [];
11
- switch (process.platform) {
12
- case "darwin":
13
- command = "pbcopy";
14
- break;
15
- case "win32":
16
- command = "clip";
17
- break;
18
- case "linux":
19
- command = "xclip";
20
- args = ["-selection", "clipboard"];
21
- break;
22
- default:
23
- return Promise.resolve(false);
24
- }
25
- return new Promise((resolve) => {
26
- const clipProcess = spawn(command, args, { stdio: "pipe" });
27
- clipProcess.stdin.write(text);
28
- clipProcess.stdin.end();
29
- clipProcess.on("close", (code) => {
30
- resolve(code === 0);
31
- });
32
- clipProcess.on("error", () => {
33
- resolve(false);
34
- });
35
- });
36
- }
37
- catch {
38
- return Promise.resolve(false);
39
- }
40
- }
41
- async function findRunningAddr(port) {
42
- const LOCALHOST_ENDPOINTS = ["localhost", "127.0.0.1", "0.0.0.0"];
43
- for (const endpoint of LOCALHOST_ENDPOINTS) {
44
- try {
45
- const server = createServer();
46
- await new Promise((resolve, reject) => {
47
- server.listen(port, endpoint, () => {
48
- server.close();
49
- resolve();
50
- });
51
- server.on("error", reject);
52
- });
53
- // Port is available on this endpoint, continue checking others
54
- }
55
- catch {
56
- // Port is in use on this endpoint
57
- return endpoint;
58
- }
59
- }
60
- // Port is available on all endpoints
61
- return null;
62
- }
63
- async function waitForPort(port) {
64
- let addr = await findRunningAddr(port);
65
- if (addr) {
66
- return addr;
67
- }
68
- console.log(chalk.yellow(`Waiting for port ${port} to become available...`));
69
- while (!addr) {
70
- await new Promise((resolve) => setTimeout(resolve, 1000));
71
- addr = await findRunningAddr(port);
72
- }
73
- console.log(chalk.green(`Port ${port} is now available!`));
74
- return addr;
75
- }
76
- async function monitorPortAvailability(port) {
77
- while (true) {
78
- const isAvailable = await findRunningAddr(port);
79
- if (!isAvailable) {
80
- console.log(chalk.red(`⚠️ Warning: Port ${port} is no longer available!`));
81
- }
82
- await new Promise((resolve) => setTimeout(resolve, 2000)); // Check every 2 seconds
83
- }
84
- }
85
- async function register(port, domain, onBeforeRegister) {
86
- const server = `wss://${domain}`;
87
- try {
88
- // Start port monitoring in the background
89
- monitorPortAvailability(port).catch((err) => {
90
- console.error("Port monitoring error:", err);
91
- });
92
- onBeforeRegister?.();
93
- // Wait for port to become available before connecting
94
- const host = await waitForPort(port);
95
- const localAddr = `http://${host}:${port}`;
96
- const tunnel = await connect({
97
- domain,
98
- localAddr,
99
- server,
100
- apiKey: process.env.DECO_TUNNEL_SERVER_TOKEN ??
101
- "c309424a-2dc4-46fe-bfc7-a7c10df59477",
102
- });
103
- await tunnel.registered;
104
- const serverUrl = `https://${domain}`;
105
- const copied = await copyToClipboard(serverUrl);
106
- console.log(`\nTunnel started \n -> 🌐 ${chalk.bold("Preview")}: ${chalk.cyan(serverUrl)}${copied ? chalk.dim(" (copied to clipboard)") : ""}`);
107
- await tunnel.closed;
108
- }
109
- catch (err) {
110
- console.log("Tunnel connection error, retrying in 500ms...", err);
111
- await new Promise((resolve) => setTimeout(resolve, 500));
112
- return register(port, domain);
113
- }
114
- }
115
- export const link = async ({ port = 8787, onBeforeRegister, } = {}) => {
116
- // Get config to extract workspace and app
117
- const config = await getConfig({});
118
- const wranglerConfig = await readWranglerConfig();
119
- const app = typeof wranglerConfig.name === "string" ? wranglerConfig.name : "my-app";
120
- // Generate app domain based on workspace and app name
121
- const appDomain = getAppDomain(config.workspace, app);
122
- await register(port, appDomain, onBeforeRegister);
123
- };
124
- //# sourceMappingURL=link.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/commands/dev/link.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { type DecoBinding } from "../../lib/config.js";
2
- interface Options {
3
- workspace: string;
4
- local?: boolean;
5
- bindings: DecoBinding[];
6
- selfUrl?: string;
7
- }
8
- export declare function format(content: string): Promise<string>;
9
- export declare const genEnv: ({ workspace, local, bindings, selfUrl, }: Options) => Promise<string>;
10
- export {};
11
- //# sourceMappingURL=gen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../../src/commands/gen/gen.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAI3E,UAAU,OAAO;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8BD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvD;AAoID,eAAO,MAAM,MAAM,GAAU,0CAK1B,OAAO,oBAiPT,CAAC"}