@glubean/cli 0.1.49 → 0.1.51

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glubean/cli",
3
- "version": "0.1.49",
3
+ "version": "0.1.51",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "glubean": "./bin/gb.js"
@@ -27,10 +27,10 @@
27
27
  "dotenv": "^16.4.0",
28
28
  "yaml": "^2.7.0",
29
29
  "tsx": "^4.19.0",
30
- "@glubean/sdk": "0.1.22",
31
- "@glubean/runner": "0.1.30",
32
- "@glubean/scanner": "0.1.20",
33
- "@glubean/redaction": "0.1.16"
30
+ "@glubean/sdk": "0.1.24",
31
+ "@glubean/runner": "0.1.32",
32
+ "@glubean/redaction": "0.1.16",
33
+ "@glubean/scanner": "0.1.21"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^22.0.0",
@@ -1,13 +0,0 @@
1
- /**
2
- * Sync command - packages and uploads test files to the Glubean cloud registry.
3
- */
4
- export interface SyncOptions {
5
- project?: string;
6
- version?: string;
7
- dir?: string;
8
- dryRun?: boolean;
9
- apiUrl?: string;
10
- token?: string;
11
- }
12
- export declare function syncCommand(options?: SyncOptions): Promise<void>;
13
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuMD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJ1E"}
@@ -1,252 +0,0 @@
1
- /**
2
- * Sync command - packages and uploads test files to the Glubean cloud registry.
3
- */
4
- import { join, relative, resolve } from "node:path";
5
- import { readdir, readFile, stat, rm } from "node:fs/promises";
6
- import archiver from "archiver";
7
- import { createWriteStream } from "node:fs";
8
- import { scan } from "@glubean/scanner";
9
- import { buildMetadata } from "../metadata.js";
10
- import { CLI_VERSION } from "../version.js";
11
- import { resolveApiUrl, resolveProjectId, resolveToken } from "../lib/auth.js";
12
- import { loadConfig } from "../lib/config.js";
13
- import { loadProjectEnv } from "../lib/env.js";
14
- const colors = {
15
- reset: "\x1b[0m",
16
- bold: "\x1b[1m",
17
- dim: "\x1b[2m",
18
- green: "\x1b[32m",
19
- yellow: "\x1b[33m",
20
- blue: "\x1b[34m",
21
- red: "\x1b[31m",
22
- cyan: "\x1b[36m",
23
- };
24
- const DEFAULT_SKIP_DIRS = [
25
- "node_modules",
26
- ".git",
27
- ".glubean",
28
- "dist",
29
- "build",
30
- ];
31
- function parseIgnorePatterns(content) {
32
- const patterns = [];
33
- for (const raw of content.split("\n")) {
34
- const line = raw.trim();
35
- if (!line || line.startsWith("#"))
36
- continue;
37
- let pattern = line;
38
- if (pattern.startsWith("/"))
39
- pattern = pattern.slice(1);
40
- if (pattern.endsWith("/"))
41
- pattern = pattern.slice(0, -1);
42
- pattern = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&");
43
- pattern = pattern
44
- .replace(/\*\*/g, "{{GLOBSTAR}}")
45
- .replace(/\*/g, "[^/]*")
46
- .replace(/\?/g, "[^/]")
47
- .replace(/\{\{GLOBSTAR\}\}/g, ".*");
48
- patterns.push(new RegExp(`(^|/)${pattern}(/|$)`));
49
- }
50
- return patterns;
51
- }
52
- async function walkForFiles(dir, skipPatterns) {
53
- const files = [];
54
- const entries = await readdir(dir, { withFileTypes: true });
55
- for (const entry of entries) {
56
- if (entry.name.startsWith(".") && entry.name !== ".env" && entry.name !== ".glubeanignore") {
57
- // Skip hidden files except .env and .glubeanignore
58
- }
59
- const full = join(dir, entry.name);
60
- if (entry.isDirectory()) {
61
- if (DEFAULT_SKIP_DIRS.includes(entry.name))
62
- continue;
63
- files.push(...await walkForFiles(full, skipPatterns));
64
- }
65
- else if (entry.isFile()) {
66
- files.push(full);
67
- }
68
- }
69
- return files;
70
- }
71
- async function collectBundleFiles(dir) {
72
- const skipPatterns = DEFAULT_SKIP_DIRS.map((d) => new RegExp(`(^|/)${d}(/|$)`));
73
- const ignorePath = join(dir, ".glubeanignore");
74
- try {
75
- const content = await readFile(ignorePath, "utf-8");
76
- skipPatterns.push(...parseIgnorePatterns(content));
77
- }
78
- catch {
79
- // No .glubeanignore
80
- }
81
- const allFiles = await walkForFiles(dir, skipPatterns);
82
- const files = [];
83
- for (const file of allFiles) {
84
- const rel = relative(dir, file);
85
- if (rel.startsWith(".glubean-bundle-"))
86
- continue;
87
- // Apply skip patterns
88
- if (skipPatterns.some((p) => p.test(rel)))
89
- continue;
90
- files.push(rel);
91
- }
92
- return files.sort();
93
- }
94
- async function createBundleTar(dir, metadata, outputPath) {
95
- const bundleFiles = await collectBundleFiles(dir);
96
- return new Promise((resolve, reject) => {
97
- const output = createWriteStream(outputPath);
98
- const archive = archiver("tar");
99
- output.on("close", () => resolve(bundleFiles.length));
100
- archive.on("error", (err) => reject(err));
101
- archive.pipe(output);
102
- // Add metadata.json
103
- const metadataContent = JSON.stringify(metadata, null, 2);
104
- archive.append(metadataContent, { name: "metadata.json" });
105
- // Add all project files
106
- for (const filePath of bundleFiles) {
107
- const srcPath = join(dir, filePath);
108
- archive.file(srcPath, { name: filePath });
109
- }
110
- archive.finalize();
111
- });
112
- }
113
- async function initSync(projectId, version, apiUrl, token) {
114
- const headers = {
115
- "Content-Type": "application/json",
116
- };
117
- if (token)
118
- headers["Authorization"] = `Bearer ${token}`;
119
- const response = await fetch(`${apiUrl}/projects/${projectId}/bundles/sync/init`, {
120
- method: "POST",
121
- headers,
122
- body: JSON.stringify({ version }),
123
- });
124
- if (!response.ok) {
125
- const error = await response.text();
126
- throw new Error(`Init sync failed: ${response.status} - ${error}`);
127
- }
128
- return response.json();
129
- }
130
- async function uploadToS3(tarPath, uploadUrl) {
131
- const tarContent = await readFile(tarPath);
132
- const response = await fetch(uploadUrl, {
133
- method: "PUT",
134
- headers: { "Content-Type": "application/x-tar" },
135
- body: tarContent,
136
- });
137
- if (!response.ok) {
138
- const error = await response.text();
139
- throw new Error(`S3 upload failed: ${response.status} - ${error}`);
140
- }
141
- }
142
- async function completeSync(projectId, bundleId, timestamp, files, apiUrl, token) {
143
- const headers = {
144
- "Content-Type": "application/json",
145
- };
146
- if (token)
147
- headers["Authorization"] = `Bearer ${token}`;
148
- const response = await fetch(`${apiUrl}/projects/${projectId}/bundles/sync/complete`, {
149
- method: "POST",
150
- headers,
151
- body: JSON.stringify({ bundleId, timestamp, files }),
152
- });
153
- if (!response.ok) {
154
- const error = await response.text();
155
- throw new Error(`Complete sync failed: ${response.status} - ${error}`);
156
- }
157
- return response.json();
158
- }
159
- export async function syncCommand(options = {}) {
160
- console.log(`\n${colors.bold}${colors.blue}☁️ Glubean Sync${colors.reset}\n`);
161
- const dir = options.dir ? resolve(options.dir) : process.cwd();
162
- const config = await loadConfig(dir);
163
- const envFileVars = await loadProjectEnv(dir, config.run.envFile);
164
- const sources = { envFileVars, cloudConfig: config.cloud };
165
- const authOpts = {
166
- token: options.token,
167
- project: options.project,
168
- apiUrl: options.apiUrl,
169
- };
170
- const projectId = await resolveProjectId(authOpts, sources);
171
- if (!projectId) {
172
- console.log(`${colors.red}✗ Error: No project ID found.${colors.reset}`);
173
- console.log(`${colors.dim} Use --project, set GLUBEAN_PROJECT_ID, add to .env, or configure in package.json glubean.cloud.${colors.reset}\n`);
174
- process.exit(1);
175
- }
176
- const version = options.version ||
177
- new Date().toISOString().replace(/[:.]/g, "-");
178
- const apiUrl = (await resolveApiUrl(authOpts, sources)).replace(/\/$/, "");
179
- const token = await resolveToken(authOpts, sources);
180
- console.log(`${colors.dim}Project: ${colors.reset}${projectId}`);
181
- console.log(`${colors.dim}Version: ${colors.reset}${version}`);
182
- console.log(`${colors.dim}Directory: ${colors.reset}${dir}`);
183
- console.log();
184
- console.log(`${colors.cyan}→ Scanning test files...${colors.reset}`);
185
- const scanResult = await scan(dir);
186
- if (scanResult.fileCount === 0) {
187
- console.log(`${colors.yellow}⚠️ No test files found.${colors.reset}`);
188
- console.log(`${colors.dim} Make sure your test files import from @glubean/sdk and export test().${colors.reset}\n`);
189
- return;
190
- }
191
- const metadata = await buildMetadata(scanResult, {
192
- generatedBy: `@glubean/cli@${CLI_VERSION}`,
193
- projectId,
194
- version,
195
- });
196
- const files = metadata.files;
197
- const testCount = metadata.testCount;
198
- const fileCount = metadata.fileCount;
199
- console.log(`${colors.green}✓ Found ${testCount} test(s) in ${fileCount} file(s)${colors.reset}`);
200
- for (const [path, meta] of Object.entries(files)) {
201
- console.log(`${colors.dim} • ${path}${colors.reset}`);
202
- for (const exp of meta.exports) {
203
- const tagStr = exp.tags ? ` [${exp.tags.join(", ")}]` : "";
204
- console.log(`${colors.dim} - ${exp.id}${tagStr}${colors.reset}`);
205
- }
206
- }
207
- console.log();
208
- console.log(`${colors.cyan}→ Generating metadata.json...${colors.reset}`);
209
- console.log(`${colors.green}✓ Metadata generated${colors.reset}\n`);
210
- const syncTimestamp = Date.now();
211
- const tarPath = join(process.cwd(), `.glubean-bundle-${version}.tar`);
212
- console.log(`${colors.cyan}→ Bundling project files...${colors.reset}`);
213
- const bundledFileCount = await createBundleTar(dir, metadata, tarPath);
214
- const tarStat = await stat(tarPath);
215
- const sizeKB = (tarStat.size / 1024).toFixed(2);
216
- const dataFileCount = bundledFileCount - fileCount;
217
- const breakdown = dataFileCount > 0 ? ` (${fileCount} test + ${dataFileCount} data/support)` : "";
218
- console.log(`${colors.green}✓ Bundle created: ${bundledFileCount} files${breakdown}, ${sizeKB} KB${colors.reset}\n`);
219
- if (options.dryRun) {
220
- console.log(`${colors.yellow}🔍 Dry run - skipping upload${colors.reset}`);
221
- console.log(`${colors.dim} Bundle saved to: ${tarPath}${colors.reset}`);
222
- console.log(`${colors.dim} Metadata:${colors.reset}`);
223
- console.log(JSON.stringify(metadata, null, 2));
224
- console.log(`\n${colors.green}${colors.bold}✓ Sync complete (dry run)!${colors.reset}\n`);
225
- return;
226
- }
227
- try {
228
- console.log(`${colors.cyan}→ Initializing sync...${colors.reset}`);
229
- const initResult = await initSync(projectId, version, apiUrl, token ?? undefined);
230
- console.log(`${colors.green}✓ Bundle ID: ${initResult.bundleId}${colors.reset}`);
231
- console.log(`${colors.cyan}→ Uploading to cloud storage...${colors.reset}`);
232
- await uploadToS3(tarPath, initResult.uploadUrl);
233
- console.log(`${colors.green}✓ Upload complete${colors.reset}`);
234
- console.log(`${colors.cyan}→ Finalizing sync...${colors.reset}`);
235
- const completeResult = await completeSync(projectId, initResult.bundleId, syncTimestamp, metadata.files, apiUrl, token ?? undefined);
236
- console.log(`${colors.green}✓ Sync finalized${colors.reset}`);
237
- console.log();
238
- console.log(`${colors.bold}Bundle Summary:${colors.reset}`);
239
- console.log(`${colors.dim} ID: ${colors.reset}${completeResult.bundleId}`);
240
- console.log(`${colors.dim} Version: ${colors.reset}${completeResult.version}`);
241
- console.log(`${colors.dim} Tests: ${colors.reset}${completeResult.testCount}`);
242
- console.log(`${colors.dim} Files: ${colors.reset}${completeResult.fileCount}`);
243
- await rm(tarPath).catch(() => { });
244
- }
245
- catch (error) {
246
- console.log(`${colors.red}✗ Sync failed: ${error instanceof Error ? error.message : error}${colors.reset}`);
247
- console.log(`${colors.dim} Bundle saved locally: ${tarPath}${colors.reset}`);
248
- process.exit(1);
249
- }
250
- console.log(`\n${colors.green}${colors.bold}✓ Sync complete!${colors.reset}\n`);
251
- }
252
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Trigger command - triggers a remote run on Glubean Cloud.
3
- */
4
- export interface TriggerOptions {
5
- project?: string;
6
- bundle?: string;
7
- job?: string;
8
- apiUrl?: string;
9
- token?: string;
10
- follow?: boolean;
11
- }
12
- export declare function triggerCommand(options?: TriggerOptions): Promise<void>;
13
- //# sourceMappingURL=trigger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA8LD,wBAAsB,cAAc,CAClC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkHf"}
@@ -1,213 +0,0 @@
1
- /**
2
- * Trigger command - triggers a remote run on Glubean Cloud.
3
- */
4
- import { resolveApiUrl, resolveProjectId, resolveToken } from "../lib/auth.js";
5
- import { loadConfig } from "../lib/config.js";
6
- import { loadProjectEnv } from "../lib/env.js";
7
- const colors = {
8
- reset: "\x1b[0m",
9
- bold: "\x1b[1m",
10
- dim: "\x1b[2m",
11
- green: "\x1b[32m",
12
- yellow: "\x1b[33m",
13
- blue: "\x1b[34m",
14
- red: "\x1b[31m",
15
- cyan: "\x1b[36m",
16
- };
17
- async function createRun(projectId, apiUrl, token, bundleId, jobId) {
18
- const headers = {
19
- "Content-Type": "application/json",
20
- };
21
- if (token)
22
- headers["Authorization"] = `Bearer ${token}`;
23
- const body = { projectId };
24
- if (bundleId)
25
- body.bundleId = bundleId;
26
- if (jobId)
27
- body.jobId = jobId;
28
- const response = await fetch(`${apiUrl}/data-plane/runs`, {
29
- method: "POST",
30
- headers,
31
- body: JSON.stringify(body),
32
- });
33
- if (!response.ok) {
34
- const error = await response.text();
35
- throw new Error(`Failed to create run: ${response.status} - ${error}`);
36
- }
37
- return response.json();
38
- }
39
- async function getRunStatus(runId, apiUrl, token) {
40
- const headers = {};
41
- if (token)
42
- headers["Authorization"] = `Bearer ${token}`;
43
- const response = await fetch(`${apiUrl}/data-plane/runs/${runId}`, {
44
- method: "GET",
45
- headers,
46
- });
47
- if (!response.ok) {
48
- const error = await response.text();
49
- throw new Error(`Failed to get run status: ${response.status} - ${error}`);
50
- }
51
- return response.json();
52
- }
53
- async function getRunEvents(runId, apiUrl, token, afterSeq) {
54
- const headers = {};
55
- if (token)
56
- headers["Authorization"] = `Bearer ${token}`;
57
- const params = new URLSearchParams();
58
- if (afterSeq !== undefined)
59
- params.set("afterSeq", String(afterSeq));
60
- params.set("limit", "100");
61
- const url = `${apiUrl}/data-plane/runs/${runId}/events?${params.toString()}`;
62
- const response = await fetch(url, { method: "GET", headers });
63
- if (!response.ok) {
64
- const error = await response.text();
65
- throw new Error(`Failed to get run events: ${response.status} - ${error}`);
66
- }
67
- return response.json();
68
- }
69
- function formatEvent(event) {
70
- switch (event.type) {
71
- case "log":
72
- return `${colors.dim}${event.message}${colors.reset}`;
73
- case "assertion": {
74
- const icon = event.passed ? `${colors.green}✓${colors.reset}` : `${colors.red}✗${colors.reset}`;
75
- let line = `${icon} ${event.message}`;
76
- if (!event.passed &&
77
- (event.expected !== undefined || event.actual !== undefined)) {
78
- if (event.expected !== undefined) {
79
- line += `\n ${colors.dim}Expected: ${JSON.stringify(event.expected)}${colors.reset}`;
80
- }
81
- if (event.actual !== undefined) {
82
- line += `\n ${colors.dim}Actual: ${JSON.stringify(event.actual)}${colors.reset}`;
83
- }
84
- }
85
- return line;
86
- }
87
- case "trace": {
88
- const data = event.data;
89
- if (data) {
90
- return `${colors.cyan}→ ${data.method} ${data.url} → ${data.status} (${data.duration}ms)${colors.reset}`;
91
- }
92
- return null;
93
- }
94
- case "step_start":
95
- return `${colors.blue}▶ ${event.message || "Step started"}${colors.reset}`;
96
- case "step_end":
97
- return `${colors.blue}◼ ${event.message || "Step ended"}${colors.reset}`;
98
- case "error":
99
- return `${colors.red}✗ Error: ${event.message}${colors.reset}`;
100
- default:
101
- return null;
102
- }
103
- }
104
- async function tailEvents(runId, apiUrl, token) {
105
- let cursor = undefined;
106
- const terminalStatuses = ["passed", "failed", "cancelled", "exhausted"];
107
- while (true) {
108
- try {
109
- const { events, nextCursor } = await getRunEvents(runId, apiUrl, token, cursor);
110
- for (const event of events) {
111
- const formatted = formatEvent(event);
112
- if (formatted) {
113
- console.log(` ${formatted}`);
114
- }
115
- }
116
- if (nextCursor !== undefined) {
117
- cursor = nextCursor;
118
- }
119
- }
120
- catch {
121
- console.log(`${colors.dim} (polling...)${colors.reset}`);
122
- }
123
- const status = await getRunStatus(runId, apiUrl, token);
124
- if (terminalStatuses.includes(status.status)) {
125
- return status;
126
- }
127
- await new Promise((resolve) => setTimeout(resolve, 2000));
128
- }
129
- }
130
- export async function triggerCommand(options = {}) {
131
- console.log(`\n${colors.bold}${colors.blue}🚀 Glubean Trigger${colors.reset}\n`);
132
- const rootDir = process.cwd();
133
- const config = await loadConfig(rootDir);
134
- const envFileVars = await loadProjectEnv(rootDir, config.run.envFile);
135
- const sources = { envFileVars, cloudConfig: config.cloud };
136
- const authOpts = {
137
- token: options.token,
138
- project: options.project,
139
- apiUrl: options.apiUrl,
140
- };
141
- const projectId = await resolveProjectId(authOpts, sources);
142
- if (!projectId) {
143
- console.log(`${colors.red}✗ Error: No project ID found.${colors.reset}`);
144
- console.log(`${colors.dim} Use --project, set GLUBEAN_PROJECT_ID, add to .env, or configure in package.json glubean.cloud.${colors.reset}\n`);
145
- process.exit(1);
146
- }
147
- const apiUrl = (await resolveApiUrl(authOpts, sources)).replace(/\/$/, "");
148
- const appUrl = apiUrl.replace("api.", "app.").replace(/\/$/, "");
149
- const token = await resolveToken(authOpts, sources);
150
- console.log(`${colors.dim}Project: ${colors.reset}${projectId}`);
151
- if (options.bundle) {
152
- console.log(`${colors.dim}Bundle: ${colors.reset}${options.bundle}`);
153
- }
154
- else {
155
- console.log(`${colors.dim}Bundle: ${colors.reset}(latest)`);
156
- }
157
- if (options.job) {
158
- console.log(`${colors.dim}Job: ${colors.reset}${options.job}`);
159
- }
160
- console.log();
161
- try {
162
- console.log(`${colors.cyan}→ Creating run...${colors.reset}`);
163
- const result = await createRun(projectId, apiUrl, token ?? undefined, options.bundle, options.job);
164
- console.log(`${colors.green}✓ Run created${colors.reset}`);
165
- console.log(`${colors.dim} Run ID: ${colors.reset}${result.runId}`);
166
- console.log(`${colors.dim} Bundle ID: ${colors.reset}${result.bundleId}`);
167
- console.log();
168
- const runUrl = `${appUrl}/runs/${result.runId}`;
169
- console.log(`${colors.bold}View in browser:${colors.reset}`);
170
- console.log(` ${colors.cyan}${runUrl}${colors.reset}`);
171
- console.log();
172
- if (options.follow) {
173
- console.log(`${colors.bold}Live output:${colors.reset}`);
174
- console.log(`${colors.dim}─────────────────────────────────────${colors.reset}`);
175
- const finalStatus = await tailEvents(result.runId, apiUrl, token ?? undefined);
176
- console.log(`${colors.dim}─────────────────────────────────────${colors.reset}`);
177
- console.log();
178
- const statusColor = finalStatus.status === "passed" ? colors.green : colors.red;
179
- console.log(`${colors.bold}Result:${colors.reset} ${statusColor}${finalStatus.status.toUpperCase()}${colors.reset}`);
180
- if (finalStatus.summary) {
181
- const s = finalStatus.summary;
182
- const parts = [];
183
- if (s.passed !== undefined) {
184
- parts.push(`${colors.green}${s.passed} passed${colors.reset}`);
185
- }
186
- if (s.failed !== undefined) {
187
- parts.push(`${colors.red}${s.failed} failed${colors.reset}`);
188
- }
189
- if (s.skipped !== undefined) {
190
- parts.push(`${colors.yellow}${s.skipped} skipped${colors.reset}`);
191
- }
192
- if (parts.length > 0) {
193
- console.log(`${colors.bold}Tests:${colors.reset} ${parts.join(", ")}`);
194
- }
195
- if (s.durationMs !== undefined) {
196
- console.log(`${colors.bold}Time:${colors.reset} ${s.durationMs}ms`);
197
- }
198
- }
199
- console.log();
200
- if (finalStatus.status !== "passed") {
201
- process.exit(1);
202
- }
203
- }
204
- else {
205
- console.log(`${colors.dim}Tip: Use --follow to tail logs in real-time${colors.reset}\n`);
206
- }
207
- }
208
- catch (error) {
209
- console.log(`${colors.red}✗ ${error instanceof Error ? error.message : error}${colors.reset}`);
210
- process.exit(1);
211
- }
212
- }
213
- //# sourceMappingURL=trigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/commands/trigger.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Worker command — self-hosted worker management.
3
- * Stub: full implementation deferred to future work.
4
- */
5
- export interface WorkerOptions {
6
- instances?: number | "auto";
7
- config?: string;
8
- apiUrl?: string;
9
- token?: string;
10
- logLevel?: string;
11
- workerId?: string;
12
- }
13
- export declare function workerCommand(subcommand: string, _options?: WorkerOptions): Promise<void>;
14
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,aAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Worker command — self-hosted worker management.
3
- * Stub: full implementation deferred to future work.
4
- */
5
- export async function workerCommand(subcommand, _options = {}) {
6
- console.error(`Worker command "${subcommand}" is not yet implemented in the Node.js CLI.\n` +
7
- "Self-hosted worker support is coming in a future release.");
8
- process.exit(1);
9
- }
10
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/commands/worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,WAA0B,EAAE;IAE5B,OAAO,CAAC,KAAK,CACX,mBAAmB,UAAU,gDAAgD;QAC3E,2DAA2D,CAC9D,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}