@hs-x/cli 0.1.2 → 0.2.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/dist/account-store.d.ts +45 -22
- package/dist/account-store.d.ts.map +1 -1
- package/dist/account-store.js +73 -16
- package/dist/account-store.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +170 -13
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/kit.d.ts +1 -1
- package/dist/cli/kit.d.ts.map +1 -1
- package/dist/cli/kit.js.map +1 -1
- package/dist/commands/account.d.ts +6 -6
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +25 -23
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/api.d.ts +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +6 -4
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/connect.d.ts +16 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +143 -17
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/control-plane-read.d.ts +3 -3
- package/dist/commands/control-plane-read.d.ts.map +1 -1
- package/dist/commands/control-plane-read.js +21 -33
- package/dist/commands/control-plane-read.js.map +1 -1
- package/dist/commands/deploy-promote.d.ts +1 -1
- package/dist/commands/deploy-promote.d.ts.map +1 -1
- package/dist/commands/deploy-promote.js +3 -3
- package/dist/commands/deploy-promote.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +39 -2
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +11 -0
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/flags.d.ts +1 -1
- package/dist/commands/flags.d.ts.map +1 -1
- package/dist/commands/flags.js +59 -35
- package/dist/commands/flags.js.map +1 -1
- package/dist/commands/help-command.d.ts +14 -0
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +274 -20
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/init.d.ts +11 -8
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +435 -246
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/link.d.ts +1 -26
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +11 -236
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/login.d.ts +4 -12
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +196 -390
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/migrate.d.ts +2 -7
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +84 -201
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/rollback.d.ts +1 -20
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +6 -275
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/unlink.d.ts +1 -21
- package/dist/commands/unlink.d.ts.map +1 -1
- package/dist/commands/unlink.js +12 -94
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/update.js +7 -7
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts +2 -2
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +1 -1
- package/dist/commands/validate.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +5 -1
- package/dist/constants.js.map +1 -1
- package/dist/control-plane-fetch.d.ts.map +1 -1
- package/dist/control-plane-fetch.js +2 -2
- package/dist/control-plane-fetch.js.map +1 -1
- package/dist/control-plane-loader.d.ts +1 -1
- package/dist/control-plane-loader.js +1 -1
- package/dist/errors-registry.js +1 -1
- package/dist/errors-registry.js.map +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +3 -2
- package/dist/help.js.map +1 -1
- package/dist/init/templates.d.ts +11 -3
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +96 -25
- package/dist/init/templates.js.map +1 -1
- package/dist/project-binding.d.ts +17 -0
- package/dist/project-binding.d.ts.map +1 -0
- package/dist/project-binding.js +30 -0
- package/dist/project-binding.js.map +1 -0
- package/dist/prompt.d.ts +21 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +186 -50
- package/dist/prompt.js.map +1 -1
- package/dist/reporter/human.d.ts +5 -0
- package/dist/reporter/human.d.ts.map +1 -1
- package/dist/reporter/human.js +48 -18
- package/dist/reporter/human.js.map +1 -1
- package/dist/reporter/json.d.ts +6 -0
- package/dist/reporter/json.d.ts.map +1 -1
- package/dist/reporter/json.js +16 -0
- package/dist/reporter/json.js.map +1 -1
- package/dist/reporter/style.d.ts +1 -1
- package/dist/reporter/style.d.ts.map +1 -1
- package/dist/reporter/style.js +10 -3
- package/dist/reporter/style.js.map +1 -1
- package/dist/reporter/types.d.ts +9 -0
- package/dist/reporter/types.d.ts.map +1 -1
- package/dist/reporter/types.js.map +1 -1
- package/dist/services/account-store.d.ts +9 -4
- package/dist/services/account-store.d.ts.map +1 -1
- package/dist/services/account-store.js +46 -22
- package/dist/services/account-store.js.map +1 -1
- package/dist/services/control-plane.js +3 -2
- package/dist/services/control-plane.js.map +1 -1
- package/dist/services/live.d.ts +1 -1
- package/dist/services/reporter.d.ts +3 -0
- package/dist/services/reporter.d.ts.map +1 -1
- package/dist/services/reporter.js +2 -0
- package/dist/services/reporter.js.map +1 -1
- package/package.json +11 -8
package/dist/reporter/human.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { detectColor, detectUnicode, makeStyle, renderBanner, renderInline, symbolsFor, } from './style.js';
|
|
2
|
+
// Erase the current line and move the cursor to its start: up one row, clear.
|
|
3
|
+
const ERASE_LINE_ABOVE = '\x1b[1A\x1b[2K';
|
|
2
4
|
export class HumanReporter {
|
|
3
5
|
mode;
|
|
4
6
|
command;
|
|
@@ -11,6 +13,10 @@ export class HumanReporter {
|
|
|
11
13
|
quiet;
|
|
12
14
|
entry;
|
|
13
15
|
startedAt = Date.now();
|
|
16
|
+
// True while a step's in-progress "…" line is the last thing on screen, so
|
|
17
|
+
// its resolution (ok/fail/warn) can erase and replace it in place. Any other
|
|
18
|
+
// output clears the flag, leaving the "…" line intact above the new content.
|
|
19
|
+
pendingStep = false;
|
|
14
20
|
constructor(opts) {
|
|
15
21
|
this.mode = opts.mode;
|
|
16
22
|
this.command = opts.command;
|
|
@@ -27,12 +33,22 @@ export class HumanReporter {
|
|
|
27
33
|
this.style = makeStyle(color, unicode);
|
|
28
34
|
this.sym = symbolsFor(unicode);
|
|
29
35
|
}
|
|
36
|
+
// All output funnels through these so any write clears a pending step's
|
|
37
|
+
// erase-in-place opportunity (its "…" line is no longer the last line).
|
|
38
|
+
emit(s) {
|
|
39
|
+
this.pendingStep = false;
|
|
40
|
+
this.stderr.write(s);
|
|
41
|
+
}
|
|
42
|
+
emitOut(s) {
|
|
43
|
+
this.pendingStep = false;
|
|
44
|
+
this.stdout.write(s);
|
|
45
|
+
}
|
|
30
46
|
banner() {
|
|
31
47
|
if (this.quiet)
|
|
32
48
|
return;
|
|
33
49
|
if (!this.entry)
|
|
34
50
|
return;
|
|
35
|
-
this.
|
|
51
|
+
this.emit(`\n${renderBanner(this.style)}\n\n`);
|
|
36
52
|
}
|
|
37
53
|
header(subject) {
|
|
38
54
|
if (this.quiet)
|
|
@@ -40,7 +56,7 @@ export class HumanReporter {
|
|
|
40
56
|
const mark = this.style.orange(this.sym.square);
|
|
41
57
|
const cmd = this.style.bold(this.command);
|
|
42
58
|
const tail = subject ? ` ${this.style.dim(this.sym.bullet)} ${subject}` : '';
|
|
43
|
-
this.
|
|
59
|
+
this.emit(` ${mark} hs-x ${cmd}${tail}\n\n`);
|
|
44
60
|
}
|
|
45
61
|
step(label) {
|
|
46
62
|
if (this.quiet) {
|
|
@@ -50,11 +66,19 @@ export class HumanReporter {
|
|
|
50
66
|
warn: () => { },
|
|
51
67
|
};
|
|
52
68
|
}
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
// The in-progress line is only worth showing on an interactive terminal,
|
|
70
|
+
// where its resolution erases it. In plain/CI output skip it so logs carry
|
|
71
|
+
// just the resolved line rather than a redundant "… X" / "✓ X" pair.
|
|
72
|
+
if (this.style.color) {
|
|
73
|
+
this.stderr.write(` ${this.style.dim('…')} ${label}\n`);
|
|
74
|
+
this.pendingStep = true;
|
|
75
|
+
}
|
|
55
76
|
const finish = (symbol, color, detail) => {
|
|
56
77
|
const right = detail ? ` ${this.style.dim(detail)}` : '';
|
|
57
|
-
|
|
78
|
+
// Replace the "…" line in place when it's still the last thing on screen.
|
|
79
|
+
const prefix = this.pendingStep ? ERASE_LINE_ABOVE : '';
|
|
80
|
+
this.pendingStep = false;
|
|
81
|
+
this.stderr.write(`${prefix} ${color(symbol)} ${label}${right}\n`);
|
|
58
82
|
};
|
|
59
83
|
return {
|
|
60
84
|
ok: (detail) => finish(this.sym.ok, this.style.green, detail),
|
|
@@ -65,36 +89,36 @@ export class HumanReporter {
|
|
|
65
89
|
info(msg) {
|
|
66
90
|
if (this.quiet)
|
|
67
91
|
return;
|
|
68
|
-
this.
|
|
92
|
+
this.emit(` ${this.style.dim(this.sym.bullet)} ${renderInline(msg, this.style)}\n`);
|
|
69
93
|
}
|
|
70
94
|
block(text) {
|
|
71
95
|
for (const line of text.split('\n')) {
|
|
72
|
-
this.
|
|
96
|
+
this.emit(` ${this.style.dim(line)}\n`);
|
|
73
97
|
}
|
|
74
98
|
}
|
|
75
99
|
warn(code, msg) {
|
|
76
100
|
if (this.quiet)
|
|
77
101
|
return;
|
|
78
|
-
this.
|
|
102
|
+
this.emit(` ${this.style.yellow(this.sym.warn)} ${renderInline(msg, this.style)} ${this.style.dim(code)}\n`);
|
|
79
103
|
}
|
|
80
104
|
error(code, msg, ctx) {
|
|
81
105
|
const codeLabel = this.style.dim(code);
|
|
82
|
-
this.
|
|
106
|
+
this.emit(` ${this.style.red(this.sym.fail)} ${this.style.bold(renderInline(msg, this.style))} ${codeLabel}\n`);
|
|
83
107
|
if (ctx?.hint) {
|
|
84
|
-
this.
|
|
108
|
+
this.emit(` ${this.sym.arrow} ${renderInline(ctx.hint, this.style)}\n`);
|
|
85
109
|
}
|
|
86
110
|
if (this.verbose && ctx?.cause) {
|
|
87
|
-
this.
|
|
111
|
+
this.emit(` ${this.style.dim(`cause: ${ctx.cause}`)}\n`);
|
|
88
112
|
}
|
|
89
113
|
if (this.debug && ctx?.wire !== undefined) {
|
|
90
|
-
this.
|
|
114
|
+
this.emit(` ${this.style.dim('wire:')}\n`);
|
|
91
115
|
const dump = typeof ctx.wire === 'string' ? ctx.wire : JSON.stringify(ctx.wire, null, 2);
|
|
92
116
|
for (const line of dump.split('\n')) {
|
|
93
|
-
this.
|
|
117
|
+
this.emit(` ${this.style.dim(line)}\n`);
|
|
94
118
|
}
|
|
95
119
|
}
|
|
96
120
|
if (ctx?.docs_url) {
|
|
97
|
-
this.
|
|
121
|
+
this.emit(` ${this.style.dim(this.style.link(ctx.docs_url, ctx.docs_url))}\n`);
|
|
98
122
|
}
|
|
99
123
|
}
|
|
100
124
|
event(name, data) {
|
|
@@ -103,16 +127,22 @@ export class HumanReporter {
|
|
|
103
127
|
if (!this.debug)
|
|
104
128
|
return;
|
|
105
129
|
const payload = data ? ` ${JSON.stringify(data)}` : '';
|
|
106
|
-
this.
|
|
130
|
+
this.emit(` ${this.style.dim(`[${name}]${payload}`)}\n`);
|
|
131
|
+
}
|
|
132
|
+
raw(text) {
|
|
133
|
+
this.emitOut(text);
|
|
134
|
+
}
|
|
135
|
+
rawErr(text) {
|
|
136
|
+
this.emit(text);
|
|
107
137
|
}
|
|
108
138
|
data(payload) {
|
|
109
139
|
if (payload === undefined || payload === null)
|
|
110
140
|
return;
|
|
111
141
|
if (typeof payload === 'string') {
|
|
112
|
-
this.
|
|
142
|
+
this.emitOut(payload.endsWith('\n') ? payload : `${payload}\n`);
|
|
113
143
|
return;
|
|
114
144
|
}
|
|
115
|
-
this.
|
|
145
|
+
this.emitOut(`${JSON.stringify(payload, null, 2)}\n`);
|
|
116
146
|
}
|
|
117
147
|
done(summary, _exitCode = 0) {
|
|
118
148
|
if (this.quiet)
|
|
@@ -120,7 +150,7 @@ export class HumanReporter {
|
|
|
120
150
|
const ms = Date.now() - this.startedAt;
|
|
121
151
|
const elapsed = ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`;
|
|
122
152
|
const text = summary ? `${summary} in ${elapsed}` : `Done in ${elapsed}`;
|
|
123
|
-
this.
|
|
153
|
+
this.emit(`\n ${this.style.dim(text)}\n`);
|
|
124
154
|
}
|
|
125
155
|
}
|
|
126
156
|
//# sourceMappingURL=human.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human.js","sourceRoot":"","sources":["../../src/reporter/human.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,MAAM,OAAO,aAAa;IACf,IAAI,CAAe;IACnB,OAAO,CAAS;IACR,MAAM,CAAwB;IAC9B,MAAM,CAAwB;IAC9B,KAAK,CAAQ;IACb,GAAG,CAAU;IACb,OAAO,CAAU;IACjB,KAAK,CAAU;IACf,KAAK,CAAU;IACf,KAAK,CAAU;IACf,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"human.js","sourceRoot":"","sources":["../../src/reporter/human.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter/json.d.ts
CHANGED
|
@@ -7,12 +7,15 @@ export declare class JsonReporter implements Reporter {
|
|
|
7
7
|
private err;
|
|
8
8
|
private readonly warnings;
|
|
9
9
|
private emitted;
|
|
10
|
+
private readonly stderr;
|
|
10
11
|
constructor(opts: ReporterOptions);
|
|
11
12
|
banner(): void;
|
|
12
13
|
header(): void;
|
|
13
14
|
step(): StepHandle;
|
|
14
15
|
info(): void;
|
|
15
16
|
block(): void;
|
|
17
|
+
raw(text: string): void;
|
|
18
|
+
rawErr(text: string): void;
|
|
16
19
|
warn(code: string, message: string): void;
|
|
17
20
|
error(code: string, message: string, ctx?: ErrorContext): void;
|
|
18
21
|
event(): void;
|
|
@@ -23,10 +26,13 @@ export declare class NdjsonReporter implements Reporter {
|
|
|
23
26
|
readonly mode: ReporterMode;
|
|
24
27
|
readonly command: string;
|
|
25
28
|
private readonly stdout;
|
|
29
|
+
private readonly stderr;
|
|
26
30
|
private readonly runId;
|
|
27
31
|
private startEmitted;
|
|
28
32
|
private doneEmitted;
|
|
29
33
|
constructor(opts: ReporterOptions);
|
|
34
|
+
raw(text: string): void;
|
|
35
|
+
rawErr(text: string): void;
|
|
30
36
|
private emit;
|
|
31
37
|
private ensureStart;
|
|
32
38
|
banner(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAU;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAU;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,IAAI,EAAE,eAAe;IAMjC,MAAM,IAAI,IAAI;IACd,MAAM,IAAI,IAAI;IACd,IAAI,IAAI,UAAU;IAGlB,IAAI,IAAI,IAAI;IACZ,KAAK,IAAI,IAAI;IACb,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI;IAW9D,KAAK,IAAI,IAAI;IAEb,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI;CAa5C;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAY;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE,eAAe;IAOjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,WAAW;IAMnB,MAAM,IAAI,IAAI;IACd,MAAM,IAAI,IAAI;IAId,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAe/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKvB,KAAK,IAAI,IAAI;IAEb,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI;IAY1D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKzD,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK5B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI;CAS3C"}
|
package/dist/reporter/json.js
CHANGED
|
@@ -12,9 +12,11 @@ export class JsonReporter {
|
|
|
12
12
|
err;
|
|
13
13
|
warnings = [];
|
|
14
14
|
emitted = false;
|
|
15
|
+
stderr;
|
|
15
16
|
constructor(opts) {
|
|
16
17
|
this.command = opts.command;
|
|
17
18
|
this.stdout = opts.stdout ?? process.stdout;
|
|
19
|
+
this.stderr = opts.stderr ?? process.stderr;
|
|
18
20
|
}
|
|
19
21
|
banner() { }
|
|
20
22
|
header() { }
|
|
@@ -23,6 +25,12 @@ export class JsonReporter {
|
|
|
23
25
|
}
|
|
24
26
|
info() { }
|
|
25
27
|
block() { }
|
|
28
|
+
raw(text) {
|
|
29
|
+
this.stdout.write(text);
|
|
30
|
+
}
|
|
31
|
+
rawErr(text) {
|
|
32
|
+
this.stderr.write(text);
|
|
33
|
+
}
|
|
26
34
|
warn(code, message) {
|
|
27
35
|
this.warnings.push({ code, message });
|
|
28
36
|
}
|
|
@@ -62,14 +70,22 @@ export class NdjsonReporter {
|
|
|
62
70
|
mode = 'ndjson';
|
|
63
71
|
command;
|
|
64
72
|
stdout;
|
|
73
|
+
stderr;
|
|
65
74
|
runId;
|
|
66
75
|
startEmitted = false;
|
|
67
76
|
doneEmitted = false;
|
|
68
77
|
constructor(opts) {
|
|
69
78
|
this.command = opts.command;
|
|
70
79
|
this.stdout = opts.stdout ?? process.stdout;
|
|
80
|
+
this.stderr = opts.stderr ?? process.stderr;
|
|
71
81
|
this.runId = opts.runId ?? `r_${Date.now().toString(36)}`;
|
|
72
82
|
}
|
|
83
|
+
raw(text) {
|
|
84
|
+
this.stdout.write(text);
|
|
85
|
+
}
|
|
86
|
+
rawErr(text) {
|
|
87
|
+
this.stderr.write(text);
|
|
88
|
+
}
|
|
73
89
|
emit(level, event, data) {
|
|
74
90
|
const line = {
|
|
75
91
|
ts: new Date().toISOString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,GAEf,MAAM,YAAY,CAAC;AAWpB,MAAM,SAAS,GAAe;IAC5B,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;IACZ,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;CACf,CAAC;AAEF,MAAM,OAAO,YAAY;IACd,IAAI,GAAiB,MAAM,CAAC;IAC5B,OAAO,CAAS;IACR,MAAM,CAAwB;IACvC,OAAO,GAAY,SAAS,CAAC;IAC7B,GAAG,CAA4B;IACtB,QAAQ,GAA6C,EAAE,CAAC;IACjE,OAAO,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporter/json.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter/style.d.ts
CHANGED
|
@@ -30,5 +30,5 @@ export declare function detectMode(opts: {
|
|
|
30
30
|
export declare function makeStyle(color: boolean, unicode: boolean): Style;
|
|
31
31
|
export declare function symbolsFor(unicode: boolean): Symbols;
|
|
32
32
|
export declare function renderInline(text: string, style: Style): string;
|
|
33
|
-
export declare function renderBanner(style: Style): string;
|
|
33
|
+
export declare function renderBanner(style: Style, version?: string): string;
|
|
34
34
|
//# sourceMappingURL=style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/reporter/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAoBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAI7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,GAAG,YAAY,CAOf;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/reporter/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAoBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK3E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAI7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,GAAG,YAAY,CAOf;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAmBjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEpD;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAK/D;AAwBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CASnE"}
|
package/dist/reporter/style.js
CHANGED
|
@@ -57,7 +57,11 @@ export function makeStyle(color, unicode) {
|
|
|
57
57
|
red: (s) => wrap('31', s),
|
|
58
58
|
yellow: (s) => wrap('33', s),
|
|
59
59
|
green: (s) => wrap('32', s),
|
|
60
|
-
link: (label, href) => color
|
|
60
|
+
link: (label, href) => color
|
|
61
|
+
? `\x1b]8;;${href}\x1b\\${label}\x1b]8;;\x1b\\`
|
|
62
|
+
: label === href
|
|
63
|
+
? href
|
|
64
|
+
: `${label} (${href})`,
|
|
61
65
|
};
|
|
62
66
|
}
|
|
63
67
|
export function symbolsFor(unicode) {
|
|
@@ -87,11 +91,14 @@ const BANNER_ASCII = [
|
|
|
87
91
|
['+----------+', ''],
|
|
88
92
|
];
|
|
89
93
|
const TAGLINE = 'The platform layer HubSpot never shipped.';
|
|
90
|
-
export function renderBanner(style) {
|
|
94
|
+
export function renderBanner(style, version) {
|
|
91
95
|
const rows = style.unicode ? BANNER_UNICODE : BANNER_ASCII;
|
|
92
96
|
const body = rows
|
|
93
97
|
.map(([orange, rest]) => ` ${style.orange(orange)}${style.bold(rest)}`)
|
|
94
98
|
.join('\n');
|
|
95
|
-
|
|
99
|
+
const tagline = version
|
|
100
|
+
? `${style.dim(TAGLINE)} ${style.dim(version)}`
|
|
101
|
+
: style.dim(TAGLINE);
|
|
102
|
+
return `${body}\n\n ${tagline}`;
|
|
96
103
|
}
|
|
97
104
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/reporter/style.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/reporter/style.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter/types.d.ts
CHANGED
|
@@ -22,6 +22,15 @@ export interface Reporter {
|
|
|
22
22
|
error(code: string, msg: string, ctx?: ErrorContext): void;
|
|
23
23
|
event(name: string, data?: Record<string, unknown>): void;
|
|
24
24
|
data(payload: unknown): void;
|
|
25
|
+
/**
|
|
26
|
+
* Write pre-formatted text verbatim to stdout (`raw`) or stderr (`rawErr`).
|
|
27
|
+
* The escape hatch for commands whose `--json` payloads don't fit the
|
|
28
|
+
* `JsonReporter` envelope — it keeps the exact bytes while moving the actual
|
|
29
|
+
* `process.std*` write into the reporter (the sanctioned I/O edge), so command
|
|
30
|
+
* handlers stay free of `process.*`.
|
|
31
|
+
*/
|
|
32
|
+
raw(text: string): void;
|
|
33
|
+
rawErr(text: string): void;
|
|
25
34
|
done(summary?: string, exitCode?: number): void;
|
|
26
35
|
}
|
|
27
36
|
export interface ReporterOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reporter/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reporter/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B;;;;;;OAMG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,cAAc,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/reporter/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/reporter/types.ts"],"names":[],"mappings":"AAsDA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileSystem, Path } from '@effect/platform';
|
|
2
2
|
import { Context, Effect, Layer } from 'effect';
|
|
3
3
|
import { type CliError } from '../cli-error.js';
|
|
4
|
-
import type
|
|
4
|
+
import { type HsxAccountSession, type HsxAccountStore, type HsxStoredAccount } from '../account-store.js';
|
|
5
5
|
import { AppPaths } from './app-paths.js';
|
|
6
6
|
/**
|
|
7
7
|
* The account store as an Effect service: bearer session + linked accounts
|
|
@@ -14,8 +14,13 @@ export interface AccountStoreApi {
|
|
|
14
14
|
readonly load: Effect.Effect<HsxAccountStore>;
|
|
15
15
|
readonly isLinked: Effect.Effect<boolean>;
|
|
16
16
|
readonly save: (store: HsxAccountStore) => Effect.Effect<void, CliError>;
|
|
17
|
-
|
|
18
|
-
readonly
|
|
17
|
+
/** Store an API token against a specific HS-X account, creating it if needed. */
|
|
18
|
+
readonly setAccountSession: (accountId: string, session: HsxAccountSession, options?: {
|
|
19
|
+
readonly displayName?: string;
|
|
20
|
+
readonly makeDefault?: boolean;
|
|
21
|
+
}) => Effect.Effect<HsxAccountStore, CliError>;
|
|
22
|
+
/** Clear the API token from one account (defaults to the active account). */
|
|
23
|
+
readonly clearAccountSession: (accountId?: string) => Effect.Effect<HsxAccountStore, CliError>;
|
|
19
24
|
readonly addAccount: (account: Omit<HsxStoredAccount, 'createdAt'>, options?: {
|
|
20
25
|
readonly makeDefault?: boolean;
|
|
21
26
|
}) => Effect.Effect<HsxAccountStore, CliError>;
|
|
@@ -25,7 +30,7 @@ export interface AccountStoreApi {
|
|
|
25
30
|
declare const AccountStore_base: Context.TagClass<AccountStore, "cli/AccountStore", AccountStoreApi>;
|
|
26
31
|
export declare class AccountStore extends AccountStore_base {
|
|
27
32
|
}
|
|
28
|
-
export declare function isActiveUserSession(session:
|
|
33
|
+
export declare function isActiveUserSession(session: HsxAccountSession | undefined, nowMs: number): boolean;
|
|
29
34
|
export declare const layer: Layer.Layer<AccountStore, never, FileSystem.FileSystem | Path.Path | AppPaths>;
|
|
30
35
|
export {};
|
|
31
36
|
//# sourceMappingURL=account-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-store.d.ts","sourceRoot":"","sources":["../../src/services/account-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"account-store.d.ts","sourceRoot":"","sources":["../../src/services/account-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzE,iFAAiF;IACjF,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KACxE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,QAAQ,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC/F,QAAQ,CAAC,UAAU,EAAE,CACnB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAC5C,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KACzC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9E,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;CAClF;;AAED,qBAAa,YAAa,SAAQ,iBAG/B;CAAG;AA6BN,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIlG;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,YAAY,EACZ,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CA8J7C,CAAC"}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
import { FileSystem, Path } from '@effect/platform';
|
|
2
2
|
import { Clock, Context, Effect, Layer, Option } from 'effect';
|
|
3
3
|
import { cliError } from '../cli-error.js';
|
|
4
|
+
import { activeSession, migrateLegacySession, } from '../account-store.js';
|
|
4
5
|
import { AppPaths } from './app-paths.js';
|
|
5
6
|
export class AccountStore extends Context.Tag('cli/AccountStore')() {
|
|
6
7
|
}
|
|
7
8
|
const EMPTY_STORE = { schemaVersion: 1, accounts: {} };
|
|
8
|
-
function
|
|
9
|
-
if (!value || typeof value !== 'object')
|
|
10
|
-
return false;
|
|
11
|
-
const v = value;
|
|
12
|
-
return (typeof v.id === 'string' &&
|
|
13
|
-
typeof v.displayName === 'string' &&
|
|
14
|
-
typeof v.hubspotPortalId === 'number' &&
|
|
15
|
-
(v.source === 'connect' || v.source === 'imported') &&
|
|
16
|
-
typeof v.createdAt === 'string');
|
|
17
|
-
}
|
|
18
|
-
function isUserSession(value) {
|
|
9
|
+
function isSession(value) {
|
|
19
10
|
if (!value || typeof value !== 'object')
|
|
20
11
|
return false;
|
|
21
12
|
const v = value;
|
|
@@ -25,6 +16,17 @@ function isUserSession(value) {
|
|
|
25
16
|
typeof v.userId === 'string' &&
|
|
26
17
|
(v.accountId === undefined || typeof v.accountId === 'string'));
|
|
27
18
|
}
|
|
19
|
+
function isStoredAccount(value) {
|
|
20
|
+
if (!value || typeof value !== 'object')
|
|
21
|
+
return false;
|
|
22
|
+
const v = value;
|
|
23
|
+
return (typeof v.id === 'string' &&
|
|
24
|
+
typeof v.displayName === 'string' &&
|
|
25
|
+
(v.hubspotPortalId === undefined || typeof v.hubspotPortalId === 'number') &&
|
|
26
|
+
(v.source === 'connect' || v.source === 'imported') &&
|
|
27
|
+
typeof v.createdAt === 'string' &&
|
|
28
|
+
(v.session === undefined || isSession(v.session)));
|
|
29
|
+
}
|
|
28
30
|
export function isActiveUserSession(session, nowMs) {
|
|
29
31
|
if (!session)
|
|
30
32
|
return false;
|
|
@@ -40,6 +42,7 @@ export const layer = Layer.effect(AccountStore, Effect.gen(function* () {
|
|
|
40
42
|
const raw = yield* fs.readFileString(storePath()).pipe(Effect.option);
|
|
41
43
|
if (Option.isNone(raw))
|
|
42
44
|
return EMPTY_STORE;
|
|
45
|
+
const nowMs = yield* Clock.currentTimeMillis;
|
|
43
46
|
return yield* Effect.try(() => {
|
|
44
47
|
const parsed = JSON.parse(raw.value);
|
|
45
48
|
const accounts = {};
|
|
@@ -49,11 +52,11 @@ export const layer = Layer.effect(AccountStore, Effect.gen(function* () {
|
|
|
49
52
|
accounts[id] = value;
|
|
50
53
|
}
|
|
51
54
|
}
|
|
55
|
+
const migrated = migrateLegacySession(accounts, parsed.defaultAccountId, isSession(parsed.userSession) ? parsed.userSession : undefined, () => new Date(nowMs).toISOString());
|
|
52
56
|
return {
|
|
53
57
|
schemaVersion: 1,
|
|
54
|
-
...(
|
|
55
|
-
accounts,
|
|
56
|
-
...(isUserSession(parsed.userSession) ? { userSession: parsed.userSession } : {}),
|
|
58
|
+
...(migrated.defaultAccountId ? { defaultAccountId: migrated.defaultAccountId } : {}),
|
|
59
|
+
accounts: migrated.accounts,
|
|
57
60
|
};
|
|
58
61
|
}).pipe(Effect.orElseSucceed(() => EMPTY_STORE));
|
|
59
62
|
});
|
|
@@ -67,19 +70,40 @@ export const layer = Layer.effect(AccountStore, Effect.gen(function* () {
|
|
|
67
70
|
const isLinked = Effect.gen(function* () {
|
|
68
71
|
const store = yield* load;
|
|
69
72
|
const nowMs = yield* Clock.currentTimeMillis;
|
|
70
|
-
return isActiveUserSession(store
|
|
73
|
+
return isActiveUserSession(activeSession(store), nowMs);
|
|
71
74
|
});
|
|
72
|
-
const
|
|
75
|
+
const setAccountSession = (accountId, session, options = {}) => Effect.gen(function* () {
|
|
73
76
|
const store = yield* load;
|
|
74
|
-
const
|
|
77
|
+
const nowMs = yield* Clock.currentTimeMillis;
|
|
78
|
+
const existing = store.accounts[accountId];
|
|
79
|
+
const account = existing
|
|
80
|
+
? {
|
|
81
|
+
...existing,
|
|
82
|
+
session,
|
|
83
|
+
...(options.displayName ? { displayName: options.displayName } : {}),
|
|
84
|
+
}
|
|
85
|
+
: {
|
|
86
|
+
id: accountId,
|
|
87
|
+
displayName: options.displayName ?? (session.email || accountId),
|
|
88
|
+
source: 'connect',
|
|
89
|
+
createdAt: new Date(nowMs).toISOString(),
|
|
90
|
+
session,
|
|
91
|
+
};
|
|
92
|
+
const accounts = { ...store.accounts, [accountId]: account };
|
|
93
|
+
const defaultAccountId = options.makeDefault || !store.defaultAccountId ? accountId : store.defaultAccountId;
|
|
94
|
+
const next = { schemaVersion: 1, defaultAccountId, accounts };
|
|
75
95
|
yield* save(next);
|
|
76
96
|
return next;
|
|
77
97
|
});
|
|
78
|
-
const
|
|
98
|
+
const clearAccountSession = (accountId) => Effect.gen(function* () {
|
|
79
99
|
const store = yield* load;
|
|
80
|
-
const
|
|
100
|
+
const id = accountId ?? store.defaultAccountId;
|
|
101
|
+
if (!id || !store.accounts[id])
|
|
102
|
+
return store;
|
|
103
|
+
const { session: _drop, ...rest } = store.accounts[id];
|
|
81
104
|
void _drop;
|
|
82
|
-
const
|
|
105
|
+
const accounts = { ...store.accounts, [id]: rest };
|
|
106
|
+
const next = { ...store, accounts };
|
|
83
107
|
yield* save(next);
|
|
84
108
|
return next;
|
|
85
109
|
});
|
|
@@ -125,8 +149,8 @@ export const layer = Layer.effect(AccountStore, Effect.gen(function* () {
|
|
|
125
149
|
load,
|
|
126
150
|
isLinked,
|
|
127
151
|
save,
|
|
128
|
-
|
|
129
|
-
|
|
152
|
+
setAccountSession,
|
|
153
|
+
clearAccountSession,
|
|
130
154
|
addAccount,
|
|
131
155
|
setDefault,
|
|
132
156
|
removeAccount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-store.js","sourceRoot":"","sources":["../../src/services/account-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"account-store.js","sourceRoot":"","sources":["../../src/services/account-store.ts"],"names":[],"mappings":"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"}
|