@buoy-design/cli 0.4.1 → 0.6.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 +50 -21
- package/dist/cloud/config.d.ts +12 -0
- package/dist/cloud/config.d.ts.map +1 -1
- package/dist/cloud/config.js.map +1 -1
- package/dist/commands/ahoy.d.ts.map +1 -1
- package/dist/commands/ahoy.js +3 -1
- package/dist/commands/ahoy.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +14 -0
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/ignore.d.ts +7 -3
- package/dist/commands/ignore.d.ts.map +1 -1
- package/dist/commands/ignore.js +81 -78
- package/dist/commands/ignore.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +136 -34
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/rescue.d.ts +3 -0
- package/dist/commands/rescue.d.ts.map +1 -0
- package/dist/commands/rescue.js +147 -0
- package/dist/commands/rescue.js.map +1 -0
- package/dist/commands/telemetry.d.ts +9 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/commands/telemetry.js +51 -0
- package/dist/commands/telemetry.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/rescue/report.d.ts +9 -0
- package/dist/rescue/report.d.ts.map +1 -0
- package/dist/rescue/report.js +107 -0
- package/dist/rescue/report.js.map +1 -0
- package/dist/rescue/store.d.ts +9 -0
- package/dist/rescue/store.d.ts.map +1 -0
- package/dist/rescue/store.js +50 -0
- package/dist/rescue/store.js.map +1 -0
- package/dist/rescue/types.d.ts +76 -0
- package/dist/rescue/types.d.ts.map +1 -0
- package/dist/rescue/types.js +2 -0
- package/dist/rescue/types.js.map +1 -0
- package/dist/rescue/workflow.d.ts +37 -0
- package/dist/rescue/workflow.d.ts.map +1 -0
- package/dist/rescue/workflow.js +355 -0
- package/dist/rescue/workflow.js.map +1 -0
- package/dist/services/drift-analysis.d.ts +3 -1
- package/dist/services/drift-analysis.d.ts.map +1 -1
- package/dist/services/drift-analysis.js +179 -98
- package/dist/services/drift-analysis.js.map +1 -1
- package/dist/telemetry/index.d.ts +53 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +117 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/utils/upgrade-hints.d.ts +13 -2
- package/dist/utils/upgrade-hints.d.ts.map +1 -1
- package/dist/utils/upgrade-hints.js +45 -7
- package/dist/utils/upgrade-hints.js.map +1 -1
- package/package.json +3 -3
package/dist/commands/ignore.js
CHANGED
|
@@ -2,7 +2,9 @@ import { Command } from "commander";
|
|
|
2
2
|
import { readFile, writeFile, mkdir } from "fs/promises";
|
|
3
3
|
import { existsSync } from "fs";
|
|
4
4
|
import { join, dirname } from "path";
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
5
6
|
import { loadConfig } from "../config/loader.js";
|
|
7
|
+
import { DriftAnalysisService } from "../services/drift-analysis.js";
|
|
6
8
|
import { spinner, success, error, info, warning, header, keyValue, newline, setJsonMode, } from "../output/reporters.js";
|
|
7
9
|
import { formatJson } from "../output/formatters.js";
|
|
8
10
|
const IGNORE_DIR = ".buoy";
|
|
@@ -45,22 +47,49 @@ export async function saveIgnoreList(ignoreList, projectRoot = process.cwd()) {
|
|
|
45
47
|
/**
|
|
46
48
|
* Create ignore list from current drift signals
|
|
47
49
|
*/
|
|
48
|
-
export function
|
|
50
|
+
export function fingerprintDrift(drift) {
|
|
51
|
+
const location = (drift.source.location || "")
|
|
52
|
+
.replace(/:\d+(?::\d+)?$/, "")
|
|
53
|
+
.replaceAll("\\", "/");
|
|
54
|
+
const details = drift.details || {};
|
|
55
|
+
const suggestions = Array.isArray(details.suggestions)
|
|
56
|
+
? [...details.suggestions].map(String).sort()
|
|
57
|
+
: [];
|
|
58
|
+
const identity = JSON.stringify({
|
|
59
|
+
type: drift.type,
|
|
60
|
+
file: location,
|
|
61
|
+
entityType: drift.source.entityType,
|
|
62
|
+
entityName: drift.source.entityName,
|
|
63
|
+
actual: details.actual ?? null,
|
|
64
|
+
expected: details.expected ?? null,
|
|
65
|
+
suggestions,
|
|
66
|
+
message: details.actual == null &&
|
|
67
|
+
details.expected == null &&
|
|
68
|
+
suggestions.length === 0
|
|
69
|
+
? drift.message.replace(/\s+/g, " ").trim()
|
|
70
|
+
: null,
|
|
71
|
+
});
|
|
72
|
+
return createHash("sha256").update(identity).digest("hex").slice(0, 24);
|
|
73
|
+
}
|
|
74
|
+
export function createIgnoreList(drifts, reason, createdBy) {
|
|
49
75
|
const now = new Date().toISOString();
|
|
76
|
+
const fingerprints = drifts.map(fingerprintDrift);
|
|
50
77
|
// Create per-drift entries with the reason
|
|
51
78
|
const entries = {};
|
|
52
|
-
for (const
|
|
53
|
-
entries[
|
|
79
|
+
for (const fingerprint of fingerprints) {
|
|
80
|
+
entries[fingerprint] = {
|
|
54
81
|
reason,
|
|
55
82
|
createdAt: now,
|
|
83
|
+
createdBy,
|
|
56
84
|
};
|
|
57
85
|
}
|
|
58
86
|
return {
|
|
59
|
-
version:
|
|
87
|
+
version: 2,
|
|
60
88
|
createdAt: now,
|
|
61
89
|
updatedAt: now,
|
|
62
90
|
reason,
|
|
63
91
|
driftIds: drifts.map((d) => d.id),
|
|
92
|
+
fingerprints,
|
|
64
93
|
entries,
|
|
65
94
|
summary: {
|
|
66
95
|
critical: drifts.filter((d) => d.severity === "critical").length,
|
|
@@ -77,11 +106,22 @@ export function filterIgnored(drifts, ignoreList) {
|
|
|
77
106
|
if (!ignoreList) {
|
|
78
107
|
return { newDrifts: drifts, ignoredCount: 0 };
|
|
79
108
|
}
|
|
80
|
-
const ignoreSet = new Set(ignoreList.driftIds);
|
|
81
|
-
const
|
|
109
|
+
const ignoreSet = new Set(ignoreList.driftIds || []);
|
|
110
|
+
const fingerprintSet = new Set(ignoreList.fingerprints || []);
|
|
111
|
+
const newDrifts = drifts.filter((d) => !ignoreSet.has(d.id) && !fingerprintSet.has(fingerprintDrift(d)));
|
|
82
112
|
const ignoredCount = drifts.length - newDrifts.length;
|
|
83
113
|
return { newDrifts, ignoredCount };
|
|
84
114
|
}
|
|
115
|
+
export function preserveIgnoreEntries(next, existing, currentDrifts) {
|
|
116
|
+
if (!next.entries || !existing.entries)
|
|
117
|
+
return;
|
|
118
|
+
const fingerprintById = new Map(currentDrifts.map((drift) => [drift.id, fingerprintDrift(drift)]));
|
|
119
|
+
for (const [key, entry] of Object.entries(existing.entries)) {
|
|
120
|
+
const migratedKey = existing.version === 1 ? fingerprintById.get(key) || key : key;
|
|
121
|
+
if (next.entries[migratedKey])
|
|
122
|
+
next.entries[migratedKey] = entry;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
85
125
|
export function createIgnoreCommand() {
|
|
86
126
|
const cmd = new Command("ignore").description("Manage ignored drift signals for existing projects");
|
|
87
127
|
// ignore all
|
|
@@ -90,6 +130,7 @@ export function createIgnoreCommand() {
|
|
|
90
130
|
.description("Ignore all current drift signals (hides existing issues)")
|
|
91
131
|
.option("--json", "Output as JSON")
|
|
92
132
|
.option("-f, --force", "Overwrite existing ignore list without prompting")
|
|
133
|
+
.option("--actor <name>", "Person or team accepting the baseline")
|
|
93
134
|
.requiredOption("-r, --reason <reason>", "Reason for ignoring these drift signals (required)")
|
|
94
135
|
.action(async (options) => {
|
|
95
136
|
if (options.json) {
|
|
@@ -97,9 +138,10 @@ export function createIgnoreCommand() {
|
|
|
97
138
|
}
|
|
98
139
|
const spin = spinner("Loading configuration...");
|
|
99
140
|
try {
|
|
100
|
-
const { config } = await loadConfig();
|
|
141
|
+
const { config, configPath } = await loadConfig();
|
|
142
|
+
const projectRoot = configPath ? dirname(configPath) : process.cwd();
|
|
101
143
|
// Check for existing ignore list
|
|
102
|
-
const existing = await loadIgnoreList();
|
|
144
|
+
const existing = await loadIgnoreList(projectRoot);
|
|
103
145
|
if (existing && !options.force) {
|
|
104
146
|
spin.stop();
|
|
105
147
|
warning(`Ignore list already exists with ${existing.summary.total} drifts.`);
|
|
@@ -107,34 +149,17 @@ export function createIgnoreCommand() {
|
|
|
107
149
|
return;
|
|
108
150
|
}
|
|
109
151
|
spin.text = "Scanning for current drift...";
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
spin.text = "Scanning React components...";
|
|
117
|
-
const scanner = new ReactComponentScanner({
|
|
118
|
-
projectRoot: process.cwd(),
|
|
119
|
-
include: config.sources.react.include,
|
|
120
|
-
exclude: config.sources.react.exclude,
|
|
121
|
-
designSystemPackage: config.sources.react.designSystemPackage,
|
|
122
|
-
});
|
|
123
|
-
const result = await scanner.scan();
|
|
124
|
-
components.push(...result.items);
|
|
125
|
-
}
|
|
126
|
-
spin.text = "Analyzing drift...";
|
|
127
|
-
// Run analysis
|
|
128
|
-
const engine = new SemanticDiffEngine();
|
|
129
|
-
const diffResult = engine.analyzeComponents(components, {
|
|
130
|
-
checkDeprecated: true,
|
|
131
|
-
checkNaming: true,
|
|
132
|
-
checkDocumentation: true,
|
|
152
|
+
const service = new DriftAnalysisService(config, projectRoot);
|
|
153
|
+
const result = await service.analyze({
|
|
154
|
+
includeIgnored: true,
|
|
155
|
+
onProgress: (message) => {
|
|
156
|
+
spin.text = message;
|
|
157
|
+
},
|
|
133
158
|
});
|
|
134
|
-
const drifts =
|
|
159
|
+
const drifts = result.drifts;
|
|
135
160
|
// Create and save ignore list
|
|
136
|
-
const ignoreList = createIgnoreList(drifts, options.reason);
|
|
137
|
-
await saveIgnoreList(ignoreList);
|
|
161
|
+
const ignoreList = createIgnoreList(drifts, options.reason, options.actor);
|
|
162
|
+
await saveIgnoreList(ignoreList, projectRoot);
|
|
138
163
|
spin.stop();
|
|
139
164
|
if (options.json) {
|
|
140
165
|
console.log(formatJson({
|
|
@@ -151,7 +176,7 @@ export function createIgnoreCommand() {
|
|
|
151
176
|
keyValue("Warning", String(ignoreList.summary.warning));
|
|
152
177
|
keyValue("Info", String(ignoreList.summary.info));
|
|
153
178
|
newline();
|
|
154
|
-
success(`Ignore list saved to ${
|
|
179
|
+
success(`Ignore list saved to ${getIgnorePath(projectRoot)}`);
|
|
155
180
|
info("Future drift checks will only show NEW issues not in this ignore list.");
|
|
156
181
|
info("Tip: Add .buoy/ to .gitignore or commit it to share with your team.");
|
|
157
182
|
}
|
|
@@ -172,7 +197,9 @@ export function createIgnoreCommand() {
|
|
|
172
197
|
setJsonMode(true);
|
|
173
198
|
}
|
|
174
199
|
try {
|
|
175
|
-
const
|
|
200
|
+
const { configPath } = await loadConfig();
|
|
201
|
+
const projectRoot = configPath ? dirname(configPath) : process.cwd();
|
|
202
|
+
const ignoreList = await loadIgnoreList(projectRoot);
|
|
176
203
|
if (options.json) {
|
|
177
204
|
console.log(formatJson({ ignoreList }));
|
|
178
205
|
return;
|
|
@@ -194,7 +221,7 @@ export function createIgnoreCommand() {
|
|
|
194
221
|
keyValue("Warning", String(ignoreList.summary.warning));
|
|
195
222
|
keyValue("Info", String(ignoreList.summary.info));
|
|
196
223
|
newline();
|
|
197
|
-
info(`Ignore file: ${getIgnorePath()}`);
|
|
224
|
+
info(`Ignore file: ${getIgnorePath(projectRoot)}`);
|
|
198
225
|
}
|
|
199
226
|
catch (err) {
|
|
200
227
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -207,6 +234,7 @@ export function createIgnoreCommand() {
|
|
|
207
234
|
.command("add")
|
|
208
235
|
.description("Add current drift signals to the ignore list")
|
|
209
236
|
.option("--json", "Output as JSON")
|
|
237
|
+
.option("--actor <name>", "Person or team accepting the baseline")
|
|
210
238
|
.requiredOption("-r, --reason <reason>", "Reason for ignoring these drift signals (required)")
|
|
211
239
|
.action(async (options) => {
|
|
212
240
|
if (options.json) {
|
|
@@ -214,52 +242,25 @@ export function createIgnoreCommand() {
|
|
|
214
242
|
}
|
|
215
243
|
const spin = spinner("Loading configuration...");
|
|
216
244
|
try {
|
|
217
|
-
const { config } = await loadConfig();
|
|
218
|
-
const
|
|
245
|
+
const { config, configPath } = await loadConfig();
|
|
246
|
+
const projectRoot = configPath ? dirname(configPath) : process.cwd();
|
|
247
|
+
const existing = await loadIgnoreList(projectRoot);
|
|
219
248
|
spin.text = "Scanning for current drift...";
|
|
220
|
-
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
spin.text = "Scanning React components...";
|
|
227
|
-
const scanner = new ReactComponentScanner({
|
|
228
|
-
projectRoot: process.cwd(),
|
|
229
|
-
include: config.sources.react.include,
|
|
230
|
-
exclude: config.sources.react.exclude,
|
|
231
|
-
designSystemPackage: config.sources.react.designSystemPackage,
|
|
232
|
-
});
|
|
233
|
-
const result = await scanner.scan();
|
|
234
|
-
components.push(...result.items);
|
|
235
|
-
}
|
|
236
|
-
spin.text = "Analyzing drift...";
|
|
237
|
-
// Run analysis
|
|
238
|
-
const engine = new SemanticDiffEngine();
|
|
239
|
-
const diffResult = engine.analyzeComponents(components, {
|
|
240
|
-
checkDeprecated: true,
|
|
241
|
-
checkNaming: true,
|
|
242
|
-
checkDocumentation: true,
|
|
249
|
+
const service = new DriftAnalysisService(config, projectRoot);
|
|
250
|
+
const result = await service.analyze({
|
|
251
|
+
includeIgnored: true,
|
|
252
|
+
onProgress: (message) => {
|
|
253
|
+
spin.text = message;
|
|
254
|
+
},
|
|
243
255
|
});
|
|
244
|
-
const drifts =
|
|
256
|
+
const drifts = result.drifts;
|
|
245
257
|
// Create updated ignore list, preserving existing entries
|
|
246
|
-
const ignoreList = createIgnoreList(drifts, options.reason);
|
|
258
|
+
const ignoreList = createIgnoreList(drifts, options.reason, options.actor);
|
|
247
259
|
if (existing) {
|
|
248
260
|
ignoreList.createdAt = existing.createdAt;
|
|
249
|
-
|
|
250
|
-
if (existing.entries) {
|
|
251
|
-
for (const [id, entry] of Object.entries(existing.entries)) {
|
|
252
|
-
if (ignoreList.entries && !ignoreList.entries[id]) {
|
|
253
|
-
// This drift was removed, don't preserve
|
|
254
|
-
}
|
|
255
|
-
else if (ignoreList.entries && existing.driftIds.includes(id)) {
|
|
256
|
-
// Preserve original entry for existing drifts
|
|
257
|
-
ignoreList.entries[id] = entry;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
+
preserveIgnoreEntries(ignoreList, existing, drifts);
|
|
261
262
|
}
|
|
262
|
-
await saveIgnoreList(ignoreList);
|
|
263
|
+
await saveIgnoreList(ignoreList, projectRoot);
|
|
263
264
|
spin.stop();
|
|
264
265
|
const added = existing
|
|
265
266
|
? ignoreList.summary.total - existing.summary.total
|
|
@@ -300,7 +301,9 @@ export function createIgnoreCommand() {
|
|
|
300
301
|
}
|
|
301
302
|
try {
|
|
302
303
|
const { unlink } = await import("fs/promises");
|
|
303
|
-
const
|
|
304
|
+
const { configPath } = await loadConfig();
|
|
305
|
+
const projectRoot = configPath ? dirname(configPath) : process.cwd();
|
|
306
|
+
const ignorePath = getIgnorePath(projectRoot);
|
|
304
307
|
if (!existsSync(ignorePath)) {
|
|
305
308
|
if (options.json) {
|
|
306
309
|
console.log(formatJson({ action: "cleared", existed: false }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/commands/ignore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/commands/ignore.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { createDockCommand } from "./dock.js";
|
|
|
4
4
|
export { createAhoyCommand } from "./ahoy.js";
|
|
5
5
|
export { createDesignMdCommand } from "./designmd/index.js";
|
|
6
6
|
export { createSystemCommand } from "./system.js";
|
|
7
|
+
export { createRescueCommand } from "./rescue.js";
|
|
7
8
|
export { createCheckCommand } from "./check.js";
|
|
8
9
|
export { createIgnoreCommand, loadIgnoreList, filterIgnored, } from "./ignore.js";
|
|
9
10
|
export { createFixCommand } from "./fix.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { createDockCommand } from "./dock.js";
|
|
|
4
4
|
export { createAhoyCommand } from "./ahoy.js";
|
|
5
5
|
export { createDesignMdCommand } from "./designmd/index.js";
|
|
6
6
|
export { createSystemCommand } from "./system.js";
|
|
7
|
+
export { createRescueCommand } from "./rescue.js";
|
|
7
8
|
// Re-exports for internal use (subcommands within groups)
|
|
8
9
|
export { createCheckCommand } from "./check.js";
|
|
9
10
|
export { createIgnoreCommand, loadIgnoreList, filterIgnored, } from "./ignore.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,0DAA0D;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,0DAA0D;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+IpC,wBAAgB,kBAAkB,IAAI,OAAO,CAsI5C"}
|
package/dist/commands/login.js
CHANGED
|
@@ -7,8 +7,11 @@ import { Command } from 'commander';
|
|
|
7
7
|
import { createInterface } from 'readline';
|
|
8
8
|
import { exec } from 'child_process';
|
|
9
9
|
import { promisify } from 'util';
|
|
10
|
+
import { createServer } from 'http';
|
|
11
|
+
import { hostname } from 'os';
|
|
10
12
|
import { updateCloudConfig, isLoggedIn, getApiEndpoint, readCloudConfig, } from '../cloud/config.js';
|
|
11
|
-
import { getMe } from '../cloud/client.js';
|
|
13
|
+
import { getMe, getGitHubInstallUrl, listGitHubInstallations } from '../cloud/client.js';
|
|
14
|
+
import { sendTelemetry } from '../telemetry/index.js';
|
|
12
15
|
import { spinner, error, info, warning, keyValue, newline } from '../output/reporters.js';
|
|
13
16
|
const execAsync = promisify(exec);
|
|
14
17
|
/**
|
|
@@ -29,21 +32,6 @@ async function openBrowser(url) {
|
|
|
29
32
|
}
|
|
30
33
|
await execAsync(command);
|
|
31
34
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Prompt for input
|
|
34
|
-
*/
|
|
35
|
-
function prompt(question) {
|
|
36
|
-
const rl = createInterface({
|
|
37
|
-
input: process.stdin,
|
|
38
|
-
output: process.stdout,
|
|
39
|
-
});
|
|
40
|
-
return new Promise((resolve) => {
|
|
41
|
-
rl.question(question, (answer) => {
|
|
42
|
-
rl.close();
|
|
43
|
-
resolve(answer.trim());
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
35
|
/**
|
|
48
36
|
* Validate API token by fetching user info
|
|
49
37
|
*/
|
|
@@ -63,6 +51,86 @@ async function validateToken(token) {
|
|
|
63
51
|
account: result.data.account,
|
|
64
52
|
};
|
|
65
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Listen on a random loopback port for the dashboard to POST the token.
|
|
56
|
+
* Resolves with the token, or null if the server could not start.
|
|
57
|
+
*/
|
|
58
|
+
function waitForTokenOnLoopback() {
|
|
59
|
+
let resolveToken = () => { };
|
|
60
|
+
const token = new Promise((resolve) => { resolveToken = resolve; });
|
|
61
|
+
const server = createServer((req, res) => {
|
|
62
|
+
// Only the dashboard origin should be talking to us; answer preflight so
|
|
63
|
+
// the browser allows the cross-origin POST from app.buoy.design.
|
|
64
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
65
|
+
res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
|
|
66
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
67
|
+
if (req.method === 'OPTIONS') {
|
|
68
|
+
res.writeHead(204);
|
|
69
|
+
res.end();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (req.method !== 'POST' || req.url !== '/token') {
|
|
73
|
+
res.writeHead(404);
|
|
74
|
+
res.end();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
let body = '';
|
|
78
|
+
req.on('data', (chunk) => { body += chunk; if (body.length > 4096)
|
|
79
|
+
req.destroy(); });
|
|
80
|
+
req.on('end', () => {
|
|
81
|
+
try {
|
|
82
|
+
const parsed = JSON.parse(body);
|
|
83
|
+
if (parsed.token && parsed.token.startsWith('buoy_')) {
|
|
84
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
85
|
+
res.end('{"ok":true}');
|
|
86
|
+
resolveToken(parsed.token);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch { /* fall through */ }
|
|
91
|
+
res.writeHead(400);
|
|
92
|
+
res.end();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
let url = null;
|
|
96
|
+
try {
|
|
97
|
+
server.listen(0, '127.0.0.1');
|
|
98
|
+
const addr = server.address();
|
|
99
|
+
if (addr && typeof addr === 'object')
|
|
100
|
+
url = `http://127.0.0.1:${addr.port}/token`;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
url = null;
|
|
104
|
+
}
|
|
105
|
+
return { url, token, close: () => { try {
|
|
106
|
+
server.close();
|
|
107
|
+
}
|
|
108
|
+
catch { /* ignore */ } } };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Race a terminal prompt against the loopback listener. Whichever supplies a
|
|
112
|
+
* token first wins; the readline prompt is closed either way.
|
|
113
|
+
*/
|
|
114
|
+
function promptOrLoopback(question, loopbackToken) {
|
|
115
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
116
|
+
return new Promise((resolve) => {
|
|
117
|
+
let done = false;
|
|
118
|
+
const finish = (value) => {
|
|
119
|
+
if (done)
|
|
120
|
+
return;
|
|
121
|
+
done = true;
|
|
122
|
+
rl.close();
|
|
123
|
+
resolve(value.trim());
|
|
124
|
+
};
|
|
125
|
+
rl.question(question, finish);
|
|
126
|
+
loopbackToken.then((t) => {
|
|
127
|
+
if (!done) {
|
|
128
|
+
process.stdout.write('\n');
|
|
129
|
+
finish(t);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
}
|
|
66
134
|
export function createLoginCommand() {
|
|
67
135
|
const cmd = new Command('login');
|
|
68
136
|
cmd
|
|
@@ -87,34 +155,43 @@ export function createLoginCommand() {
|
|
|
87
155
|
token = options.token;
|
|
88
156
|
}
|
|
89
157
|
else {
|
|
90
|
-
// Interactive login/signup flow
|
|
158
|
+
// Interactive login/signup flow. The dashboard's /cli-auth page mints
|
|
159
|
+
// an API key and POSTs it back to a loopback listener, so pasting is
|
|
160
|
+
// only the fallback.
|
|
161
|
+
await sendTelemetry('cli_login_started');
|
|
91
162
|
const endpoint = getApiEndpoint();
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
const
|
|
163
|
+
const appOrigin = endpoint.replace('api.', 'app.');
|
|
164
|
+
const listener = waitForTokenOnLoopback();
|
|
165
|
+
const params = new URLSearchParams({ host: hostname() });
|
|
166
|
+
if (listener.url)
|
|
167
|
+
params.set('callback', listener.url);
|
|
168
|
+
const cliAuthPath = `/cli-auth?${params.toString()}`;
|
|
169
|
+
const authUrl = options.signup
|
|
170
|
+
? `${appOrigin}/sign-up?redirect_url=${encodeURIComponent(cliAuthPath)}`
|
|
171
|
+
: `${appOrigin}${cliAuthPath}`;
|
|
95
172
|
newline();
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
info('Opening browser to authenticate with Buoy Cloud...');
|
|
102
|
-
}
|
|
173
|
+
info(options.signup
|
|
174
|
+
? 'Opening browser to create your Buoy account...'
|
|
175
|
+
: 'Opening browser to connect the CLI to Buoy Cloud...');
|
|
103
176
|
newline();
|
|
104
177
|
if (options.browser !== false) {
|
|
105
178
|
try {
|
|
106
179
|
await openBrowser(authUrl);
|
|
107
|
-
info('Browser opened.
|
|
180
|
+
info('Browser opened. Approve the key there and this terminal will continue.');
|
|
108
181
|
}
|
|
109
182
|
catch {
|
|
110
183
|
warning('Could not open browser automatically.');
|
|
111
184
|
}
|
|
112
185
|
}
|
|
113
186
|
newline();
|
|
114
|
-
info(`If browser didn't open, visit: ${authUrl}`);
|
|
187
|
+
info(`If the browser didn't open, visit: ${authUrl}`);
|
|
115
188
|
newline();
|
|
116
|
-
|
|
117
|
-
|
|
189
|
+
try {
|
|
190
|
+
token = await promptOrLoopback('Waiting for the browser (or paste the key here): ', listener.token);
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
listener.close();
|
|
194
|
+
}
|
|
118
195
|
if (!token) {
|
|
119
196
|
error('No token provided. Login cancelled.');
|
|
120
197
|
process.exit(1);
|
|
@@ -141,11 +218,36 @@ export function createLoginCommand() {
|
|
|
141
218
|
keyValue('Account', validation.account?.name || 'Unknown');
|
|
142
219
|
keyValue('Email', validation.user?.email || 'Unknown');
|
|
143
220
|
keyValue('Plan', validation.account?.plan || 'free');
|
|
221
|
+
// Collapse the two-step funnel: most people who log in from a drift
|
|
222
|
+
// hint want PR reviews, so offer the GitHub App install right here.
|
|
223
|
+
let hasInstall = false;
|
|
224
|
+
try {
|
|
225
|
+
const installs = await listGitHubInstallations();
|
|
226
|
+
hasInstall = !!installs.ok && (installs.data?.installations || []).length > 0;
|
|
227
|
+
}
|
|
228
|
+
catch { /* treat as no install */ }
|
|
229
|
+
if (!hasInstall && options.browser !== false && process.stdin.isTTY) {
|
|
230
|
+
newline();
|
|
231
|
+
const answer = await promptOrLoopback('Set up the GitHub PR bot now so every pull request gets reviewed? [Y/n] ', new Promise(() => { }));
|
|
232
|
+
if (answer === '' || /^y/i.test(answer)) {
|
|
233
|
+
const installUrl = getGitHubInstallUrl(getApiEndpoint());
|
|
234
|
+
try {
|
|
235
|
+
await openBrowser(installUrl);
|
|
236
|
+
info('Browser opened. Choose the repositories Buoy should review.');
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
info(`Open this URL to install the GitHub App: ${installUrl}`);
|
|
240
|
+
}
|
|
241
|
+
newline();
|
|
242
|
+
info('After installing, run `buoy ahoy status` to verify.');
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
144
246
|
newline();
|
|
145
247
|
info('You can now use:');
|
|
146
|
-
info(' buoy
|
|
147
|
-
info(' buoy
|
|
148
|
-
info(' buoy logout
|
|
248
|
+
info(' buoy ahoy github - Set up the GitHub PR bot');
|
|
249
|
+
info(' buoy ahoy status - Show current account');
|
|
250
|
+
info(' buoy ahoy logout - Sign out');
|
|
149
251
|
});
|
|
150
252
|
return cmd;
|
|
151
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rescue.d.ts","sourceRoot":"","sources":["../../src/commands/rescue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,mBAAmB,IAAI,OAAO,CA8L7C"}
|