@launchmatic/cli 0.3.0 → 0.3.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 (105) hide show
  1. package/dist/c.js +14185 -260
  2. package/dist/index.js +25203 -46
  3. package/package.json +11 -10
  4. package/dist/api.d.ts +0 -7
  5. package/dist/api.d.ts.map +0 -1
  6. package/dist/api.js +0 -79
  7. package/dist/api.js.map +0 -1
  8. package/dist/c.d.ts +0 -11
  9. package/dist/c.d.ts.map +0 -1
  10. package/dist/c.js.map +0 -1
  11. package/dist/commands/api-key.d.ts +0 -3
  12. package/dist/commands/api-key.d.ts.map +0 -1
  13. package/dist/commands/api-key.js +0 -89
  14. package/dist/commands/api-key.js.map +0 -1
  15. package/dist/commands/browser.d.ts +0 -3
  16. package/dist/commands/browser.d.ts.map +0 -1
  17. package/dist/commands/browser.js +0 -410
  18. package/dist/commands/browser.js.map +0 -1
  19. package/dist/commands/db.d.ts +0 -3
  20. package/dist/commands/db.d.ts.map +0 -1
  21. package/dist/commands/db.js +0 -481
  22. package/dist/commands/db.js.map +0 -1
  23. package/dist/commands/deploy.d.ts +0 -3
  24. package/dist/commands/deploy.d.ts.map +0 -1
  25. package/dist/commands/deploy.js +0 -219
  26. package/dist/commands/deploy.js.map +0 -1
  27. package/dist/commands/deployments.d.ts +0 -3
  28. package/dist/commands/deployments.d.ts.map +0 -1
  29. package/dist/commands/deployments.js +0 -158
  30. package/dist/commands/deployments.js.map +0 -1
  31. package/dist/commands/destroy.d.ts +0 -3
  32. package/dist/commands/destroy.d.ts.map +0 -1
  33. package/dist/commands/destroy.js +0 -53
  34. package/dist/commands/destroy.js.map +0 -1
  35. package/dist/commands/doctor.d.ts +0 -3
  36. package/dist/commands/doctor.d.ts.map +0 -1
  37. package/dist/commands/doctor.js +0 -160
  38. package/dist/commands/doctor.js.map +0 -1
  39. package/dist/commands/domains.d.ts +0 -3
  40. package/dist/commands/domains.d.ts.map +0 -1
  41. package/dist/commands/domains.js +0 -38
  42. package/dist/commands/domains.js.map +0 -1
  43. package/dist/commands/env.d.ts +0 -3
  44. package/dist/commands/env.d.ts.map +0 -1
  45. package/dist/commands/env.js +0 -74
  46. package/dist/commands/env.js.map +0 -1
  47. package/dist/commands/infra.d.ts +0 -3
  48. package/dist/commands/infra.d.ts.map +0 -1
  49. package/dist/commands/infra.js +0 -193
  50. package/dist/commands/infra.js.map +0 -1
  51. package/dist/commands/init.d.ts +0 -3
  52. package/dist/commands/init.d.ts.map +0 -1
  53. package/dist/commands/init.js +0 -239
  54. package/dist/commands/init.js.map +0 -1
  55. package/dist/commands/lightspeed.d.ts +0 -3
  56. package/dist/commands/lightspeed.d.ts.map +0 -1
  57. package/dist/commands/lightspeed.js +0 -175
  58. package/dist/commands/lightspeed.js.map +0 -1
  59. package/dist/commands/login.d.ts +0 -3
  60. package/dist/commands/login.d.ts.map +0 -1
  61. package/dist/commands/login.js +0 -175
  62. package/dist/commands/login.js.map +0 -1
  63. package/dist/commands/logs.d.ts +0 -3
  64. package/dist/commands/logs.d.ts.map +0 -1
  65. package/dist/commands/logs.js +0 -49
  66. package/dist/commands/logs.js.map +0 -1
  67. package/dist/commands/preview.d.ts +0 -3
  68. package/dist/commands/preview.d.ts.map +0 -1
  69. package/dist/commands/preview.js +0 -96
  70. package/dist/commands/preview.js.map +0 -1
  71. package/dist/commands/quicklaunch.d.ts +0 -3
  72. package/dist/commands/quicklaunch.d.ts.map +0 -1
  73. package/dist/commands/quicklaunch.js +0 -452
  74. package/dist/commands/quicklaunch.js.map +0 -1
  75. package/dist/commands/repo.d.ts +0 -3
  76. package/dist/commands/repo.d.ts.map +0 -1
  77. package/dist/commands/repo.js +0 -433
  78. package/dist/commands/repo.js.map +0 -1
  79. package/dist/commands/status.d.ts +0 -3
  80. package/dist/commands/status.d.ts.map +0 -1
  81. package/dist/commands/status.js +0 -77
  82. package/dist/commands/status.js.map +0 -1
  83. package/dist/commands/usage.d.ts +0 -3
  84. package/dist/commands/usage.d.ts.map +0 -1
  85. package/dist/commands/usage.js +0 -95
  86. package/dist/commands/usage.js.map +0 -1
  87. package/dist/config.d.ts +0 -12
  88. package/dist/config.d.ts.map +0 -1
  89. package/dist/config.js +0 -41
  90. package/dist/config.js.map +0 -1
  91. package/dist/connectors.d.ts +0 -16
  92. package/dist/connectors.d.ts.map +0 -1
  93. package/dist/connectors.js +0 -95
  94. package/dist/connectors.js.map +0 -1
  95. package/dist/context.d.ts +0 -10
  96. package/dist/context.d.ts.map +0 -1
  97. package/dist/context.js +0 -32
  98. package/dist/context.js.map +0 -1
  99. package/dist/detect.d.ts +0 -20
  100. package/dist/detect.d.ts.map +0 -1
  101. package/dist/detect.js +0 -281
  102. package/dist/detect.js.map +0 -1
  103. package/dist/index.d.ts +0 -3
  104. package/dist/index.d.ts.map +0 -1
  105. package/dist/index.js.map +0 -1
@@ -1,452 +0,0 @@
1
- import { execFileSync } from "node:child_process";
2
- import { basename } from "node:path";
3
- import chalk from "chalk";
4
- import ora from "ora";
5
- import WebSocket from "ws";
6
- import { api, getWsToken } from "../api.js";
7
- import { isLoggedIn, getApiUrl } from "../config.js";
8
- import { contextExists, writeContext, readContext } from "../context.js";
9
- import { detectLocal, getGitInfo } from "../detect.js";
10
- import { detectEnvVars, getConnector, formatConnectorLine } from "../connectors.js";
11
- import readline from "node:readline";
12
- import { execFile } from "node:child_process";
13
- function toSlug(name) {
14
- return name
15
- .toLowerCase()
16
- .replace(/[^a-z0-9]+/g, "-")
17
- .replace(/^-|-$/g, "");
18
- }
19
- function askInput(question) {
20
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
21
- return new Promise((resolve) => {
22
- rl.question(question, (answer) => { rl.close(); resolve(answer.trim()); });
23
- });
24
- }
25
- function openBrowser(url) {
26
- const cmd = process.platform === "win32" ? "cmd" : process.platform === "darwin" ? "open" : "xdg-open";
27
- const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
28
- execFile(cmd, args, () => { });
29
- }
30
- export function registerQuicklaunch(program) {
31
- program
32
- .command("quicklaunch")
33
- .alias("ql")
34
- .description("Detect, configure, and deploy in one command")
35
- .option("-n, --name <name>", "Service name (for multi-service projects)")
36
- .option("-r, --root-dir <dir>", "Root directory within the repo (e.g. apps/api)")
37
- .action(async (opts) => {
38
- if (!isLoggedIn()) {
39
- console.error(chalk.red('Not logged in. Run "lm login" first.'));
40
- process.exitCode = 1;
41
- return;
42
- }
43
- const cwd = process.cwd();
44
- try {
45
- // ── 1. Detect ────────────────────────────────────
46
- const detection = detectLocal(cwd);
47
- let gitInfo = getGitInfo(cwd);
48
- const runtimeLabel = detection.framework
49
- ? `${detection.runtime} (${detection.framework})`
50
- : detection.runtime;
51
- console.log(chalk.dim(`\nDetected: ${runtimeLabel} on port ${detection.port}`));
52
- // ── 2. Init if needed ────────────────────────────
53
- let ctx;
54
- if (contextExists()) {
55
- ctx = readContext();
56
- console.log(chalk.dim("Using existing .launchmatic.json"));
57
- // If service exists but no repo, create one now
58
- if (!gitInfo.hasRemote) {
59
- const repoSpinner = ora("Creating GitHub repository...").start();
60
- try {
61
- try {
62
- execFileSync("git", ["rev-parse", "--git-dir"], {
63
- cwd,
64
- stdio: ["pipe", "pipe", "pipe"],
65
- });
66
- }
67
- catch {
68
- execFileSync("git", ["init"], { cwd, stdio: ["pipe", "pipe", "pipe"] });
69
- }
70
- const { data: repoData } = await api(`/api/services/${ctx.serviceId}/create-repo`, {
71
- method: "POST",
72
- body: JSON.stringify({}),
73
- });
74
- try {
75
- execFileSync("git", ["remote", "add", "origin", repoData.cloneUrl], {
76
- cwd, stdio: ["pipe", "pipe", "pipe"],
77
- });
78
- }
79
- catch {
80
- try {
81
- execFileSync("git", ["remote", "set-url", "origin", repoData.cloneUrl], {
82
- cwd, stdio: ["pipe", "pipe", "pipe"],
83
- });
84
- }
85
- catch { }
86
- }
87
- repoSpinner.succeed(`Repository: ${chalk.dim(repoData.repoFullName)} (private)`);
88
- gitInfo = getGitInfo(cwd);
89
- }
90
- catch (err) {
91
- repoSpinner.warn(`Could not create repo: ${err instanceof Error ? err.message : "Unknown error"}`);
92
- }
93
- }
94
- }
95
- else {
96
- // Auto-select team (first one)
97
- const teamSpinner = ora("Setting up...").start();
98
- const { data: teams } = await api("/api/teams");
99
- if (teams.length === 0) {
100
- teamSpinner.fail("No teams found");
101
- process.exitCode = 1;
102
- return;
103
- }
104
- const teamId = teams[0].id;
105
- // Auto-create project named after directory
106
- const dirName = basename(cwd);
107
- const projectName = dirName.charAt(0).toUpperCase() + dirName.slice(1);
108
- const projectSlug = toSlug(dirName);
109
- let projectId;
110
- try {
111
- const { data: project } = await api("/api/projects", {
112
- method: "POST",
113
- body: JSON.stringify({ name: projectName, slug: projectSlug, teamId }),
114
- });
115
- projectId = project.id;
116
- }
117
- catch (err) {
118
- // Project may already exist with this slug — find it
119
- if (err.message?.includes("409") || err.message?.includes("already")) {
120
- const { data: projects } = await api(`/api/projects?teamId=${teamId}`);
121
- const existing = projects.find((p) => p.slug === projectSlug);
122
- if (existing) {
123
- projectId = existing.id;
124
- }
125
- else {
126
- throw err;
127
- }
128
- }
129
- else {
130
- throw err;
131
- }
132
- }
133
- // Create service (or reuse existing one with same repo/slug)
134
- const serviceName = opts.name || gitInfo.repoName || dirName;
135
- const serviceSlug = toSlug(serviceName);
136
- const rootDir = opts.rootDir || "/";
137
- const servicePayload = {
138
- projectId,
139
- name: serviceName,
140
- slug: serviceSlug,
141
- rootDir,
142
- ...(gitInfo.repoOwner && gitInfo.repoName
143
- ? {
144
- repoOwner: gitInfo.repoOwner,
145
- repoName: gitInfo.repoName,
146
- repoBranch: gitInfo.repoBranch,
147
- }
148
- : {}),
149
- ...(detection.framework ? { framework: detection.framework } : {}),
150
- ...(detection.buildCmd ? { buildCmd: detection.buildCmd } : {}),
151
- ...(detection.startCmd ? { startCmd: detection.startCmd } : {}),
152
- port: detection.port,
153
- };
154
- let serviceId;
155
- try {
156
- const { data: service } = await api("/api/services", {
157
- method: "POST",
158
- body: JSON.stringify(servicePayload),
159
- });
160
- serviceId = service.id;
161
- }
162
- catch (err) {
163
- // Service may already exist (subdomain conflict) — find it by slug or repo
164
- const { data: existingServices } = await api(`/api/services?projectId=${projectId}`);
165
- const existing = existingServices.find((s) => s.slug === serviceSlug || (gitInfo.repoName && s.repoName === gitInfo.repoName));
166
- if (existing) {
167
- serviceId = existing.id;
168
- teamSpinner.succeed(`Using existing service: ${existing.name}`);
169
- }
170
- else {
171
- throw err;
172
- }
173
- }
174
- ctx = { projectId, serviceId, teamId };
175
- writeContext(ctx);
176
- if (!teamSpinner.isSpinning) {
177
- // Already succeeded with "Using existing service" message
178
- }
179
- else {
180
- teamSpinner.succeed("Project and service created");
181
- }
182
- // Create repo if needed
183
- if (!gitInfo.hasRemote) {
184
- const repoSpinner = ora("Creating GitHub repository...").start();
185
- try {
186
- // Ensure git is initialized
187
- try {
188
- execFileSync("git", ["rev-parse", "--git-dir"], {
189
- cwd,
190
- stdio: ["pipe", "pipe", "pipe"],
191
- });
192
- }
193
- catch {
194
- execFileSync("git", ["init"], {
195
- cwd,
196
- stdio: ["pipe", "pipe", "pipe"],
197
- });
198
- }
199
- const { data: repoData } = await api(`/api/services/${serviceId}/create-repo`, {
200
- method: "POST",
201
- body: JSON.stringify({}),
202
- });
203
- // Set remote
204
- try {
205
- execFileSync("git", ["remote", "add", "origin", repoData.cloneUrl], {
206
- cwd,
207
- stdio: ["pipe", "pipe", "pipe"],
208
- });
209
- }
210
- catch {
211
- try {
212
- execFileSync("git", ["remote", "set-url", "origin", repoData.cloneUrl], {
213
- cwd,
214
- stdio: ["pipe", "pipe", "pipe"],
215
- });
216
- }
217
- catch {
218
- // user can set manually
219
- }
220
- }
221
- repoSpinner.succeed(`Repository: ${chalk.dim(repoData.repoFullName)} (private)`);
222
- gitInfo = getGitInfo(cwd);
223
- }
224
- catch (err) {
225
- repoSpinner.warn(`Could not create repo: ${err instanceof Error ? err.message : "Unknown error"}`);
226
- }
227
- }
228
- }
229
- // ── 3. Push code ─────────────────────────────────
230
- gitInfo = getGitInfo(cwd);
231
- if (!gitInfo.hasRemote) {
232
- console.error(chalk.red("No git remote found. Add a GitHub remote and push your code."));
233
- process.exitCode = 1;
234
- return;
235
- }
236
- // Auto-commit if there are uncommitted changes
237
- if (gitInfo.hasUncommitted) {
238
- const commitSpinner = ora("Committing changes...").start();
239
- try {
240
- execFileSync("git", ["add", "-A"], { cwd, stdio: ["pipe", "pipe", "pipe"] });
241
- execFileSync("git", ["commit", "-m", "quicklaunch: initial deploy"], {
242
- cwd,
243
- stdio: ["pipe", "pipe", "pipe"],
244
- });
245
- commitSpinner.succeed("Changes committed");
246
- gitInfo = getGitInfo(cwd);
247
- }
248
- catch {
249
- commitSpinner.warn("Could not auto-commit — deploying existing commits");
250
- }
251
- }
252
- // Auto-push
253
- if (gitInfo.hasUnpushed || !gitInfo.commitSha) {
254
- const pushSpinner = ora("Pushing to remote...").start();
255
- try {
256
- execFileSync("git", ["push", "-u", "origin", gitInfo.repoBranch], {
257
- cwd,
258
- stdio: ["pipe", "pipe", "pipe"],
259
- });
260
- pushSpinner.succeed("Code pushed");
261
- gitInfo = getGitInfo(cwd);
262
- }
263
- catch (err) {
264
- pushSpinner.fail(`Push failed: ${err instanceof Error ? err.message : "unknown"}`);
265
- process.exitCode = 1;
266
- return;
267
- }
268
- }
269
- // ── 4. Patch service with latest detection ───────
270
- const patch = {};
271
- if (gitInfo.repoOwner)
272
- patch.repoOwner = gitInfo.repoOwner;
273
- if (gitInfo.repoName)
274
- patch.repoName = gitInfo.repoName;
275
- if (gitInfo.repoBranch)
276
- patch.repoBranch = gitInfo.repoBranch;
277
- if (gitInfo.repoOwner && gitInfo.repoName) {
278
- patch.repoUrl = `https://github.com/${gitInfo.repoOwner}/${gitInfo.repoName}.git`;
279
- }
280
- if (detection.buildCmd)
281
- patch.buildCmd = detection.buildCmd;
282
- if (detection.startCmd)
283
- patch.startCmd = detection.startCmd;
284
- if (detection.port)
285
- patch.port = detection.port;
286
- if (detection.framework)
287
- patch.framework = detection.framework;
288
- if (Object.keys(patch).length > 0) {
289
- try {
290
- await api(`/api/services/${ctx.serviceId}`, {
291
- method: "PATCH",
292
- body: JSON.stringify(patch),
293
- });
294
- }
295
- catch {
296
- // Best-effort
297
- }
298
- }
299
- // ── 5. Detect env vars and prompt with connectors ──
300
- const envKeys = detectEnvVars(cwd);
301
- if (envKeys.length > 0) {
302
- console.log();
303
- console.log(chalk.bold.cyan(" Requirements detected:"));
304
- console.log();
305
- const envVars = {};
306
- const serviceName = toSlug(basename(cwd));
307
- for (const key of envKeys) {
308
- const connector = getConnector(key, serviceName);
309
- console.log(formatConnectorLine(key, connector));
310
- if (connector?.autoValue) {
311
- // Auto-fill internal resources
312
- envVars[key] = connector.autoValue;
313
- }
314
- else if (connector?.url) {
315
- // Third-party — open browser and prompt
316
- openBrowser(connector.url);
317
- const value = await askInput(chalk.cyan(` Paste ${connector.service} value: `));
318
- if (value)
319
- envVars[key] = value;
320
- }
321
- else {
322
- // Unknown — just prompt
323
- const value = await askInput(chalk.yellow(` Enter value: `));
324
- if (value)
325
- envVars[key] = value;
326
- }
327
- }
328
- // Set env vars on the service
329
- const envEntries = Object.entries(envVars).filter(([_, v]) => v && v !== "auto-provisioned");
330
- if (envEntries.length > 0) {
331
- const envSpinner = ora("Setting environment variables...").start();
332
- try {
333
- for (const [key, value] of envEntries) {
334
- await api(`/api/services/${ctx.serviceId}/env`, {
335
- method: "POST",
336
- body: JSON.stringify({ key, value }),
337
- });
338
- }
339
- envSpinner.succeed(`Set ${envEntries.length} environment variable${envEntries.length > 1 ? "s" : ""}`);
340
- }
341
- catch {
342
- envSpinner.warn("Could not set some env vars — you can set them in the dashboard");
343
- }
344
- }
345
- console.log();
346
- }
347
- // ── 6. Deploy ────────────────────────────────────
348
- const deploySpinner = ora("Deploying...").start();
349
- const { data: deployment } = await api("/api/deployments", {
350
- method: "POST",
351
- body: JSON.stringify({
352
- serviceId: ctx.serviceId,
353
- branch: gitInfo.repoBranch,
354
- commitSha: gitInfo.commitSha || "",
355
- }),
356
- });
357
- // Stream status via WebSocket
358
- const apiUrl = getApiUrl();
359
- const wsUrl = apiUrl.replace(/^http/, "ws");
360
- const wsToken = await getWsToken();
361
- await new Promise((resolve, reject) => {
362
- let done = false;
363
- const logWs = new WebSocket(`${wsUrl}/ws/logs/${deployment.id}?token=${wsToken}`);
364
- logWs.on("message", (data) => {
365
- try {
366
- const parsed = JSON.parse(data.toString());
367
- const line = parsed.message || parsed.line || data.toString();
368
- deploySpinner.stop();
369
- console.log(chalk.dim(line));
370
- deploySpinner.start();
371
- }
372
- catch {
373
- deploySpinner.stop();
374
- console.log(chalk.dim(data.toString()));
375
- deploySpinner.start();
376
- }
377
- });
378
- logWs.on("error", (err) => {
379
- if (process.env.DEBUG)
380
- console.error(chalk.dim(`Log stream error: ${err.message}`));
381
- });
382
- const statusWs = new WebSocket(`${wsUrl}/ws/status/${deployment.id}?token=${wsToken}`);
383
- statusWs.on("message", (data) => {
384
- try {
385
- const parsed = JSON.parse(data.toString());
386
- if (parsed.status === "BUILDING")
387
- deploySpinner.text = "Building...";
388
- else if (parsed.status === "DEPLOYING")
389
- deploySpinner.text = "Deploying...";
390
- else if (parsed.status === "ACTIVE" && !done) {
391
- done = true;
392
- logWs.close();
393
- statusWs.close();
394
- const url = parsed.subdomain || deployment.subdomain || "your service";
395
- deploySpinner.succeed(chalk.green(`Live → ${chalk.bold(`https://${url}`)}`));
396
- resolve();
397
- }
398
- else if (parsed.status === "FAILED" && !done) {
399
- done = true;
400
- logWs.close();
401
- statusWs.close();
402
- deploySpinner.fail(chalk.red(parsed.error || "Deployment failed"));
403
- reject(new Error("Deployment failed"));
404
- }
405
- }
406
- catch { }
407
- });
408
- statusWs.on("error", (err) => {
409
- if (!done) {
410
- done = true;
411
- logWs.close();
412
- deploySpinner.fail(chalk.red("Lost connection to deployment status"));
413
- reject(err);
414
- }
415
- });
416
- statusWs.on("close", () => {
417
- if (!done) {
418
- done = true;
419
- logWs.close();
420
- pollStatus(deployment.id, deploySpinner).then(resolve).catch(reject);
421
- }
422
- });
423
- });
424
- }
425
- catch (err) {
426
- const msg = err instanceof Error ? err.message : "Unknown error";
427
- console.error(chalk.red(`\nQuicklaunch failed: ${msg}`));
428
- process.exitCode = 1;
429
- }
430
- });
431
- }
432
- async function pollStatus(deploymentId, spinner) {
433
- for (let i = 0; i < 120; i++) {
434
- await new Promise((r) => setTimeout(r, 5000));
435
- try {
436
- const { data } = await api(`/api/deployments/${deploymentId}`);
437
- if (data.status === "ACTIVE") {
438
- spinner.succeed(chalk.green(`Live → ${chalk.bold(`https://${data.subdomain || "your service"}`)}`));
439
- return;
440
- }
441
- if (data.status === "FAILED") {
442
- spinner.fail(chalk.red("Deployment failed"));
443
- process.exitCode = 1;
444
- return;
445
- }
446
- }
447
- catch { }
448
- }
449
- spinner.fail(chalk.red("Deployment timed out"));
450
- process.exitCode = 1;
451
- }
452
- //# sourceMappingURL=quicklaunch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quicklaunch.js","sourceRoot":"","sources":["../../src/commands/quicklaunch.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function registerRepo(program: Command): void;
3
- //# sourceMappingURL=repo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../src/commands/repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsZnD"}