litmus-cli 1.4.26 → 1.4.27

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.
@@ -12,6 +12,10 @@
12
12
  * removes, and phones home nothing. Output is doctor's "Key: value" grammar
13
13
  * and ends with either "Ready" or one sentence naming the fix. Exit 0 when
14
14
  * ready, 1 when something needs the candidate.
15
+ *
16
+ * Long lines wrap under their own indent (ENG-2305): the plain text is
17
+ * wrapped to the terminal width first and painted after, so a red fix line
18
+ * reads as one block instead of spilling to column 0.
15
19
  */
16
20
  export declare function runSetupCheck(opts?: {
17
21
  verbose?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"setup-check.d.ts","sourceRoot":"","sources":["../../src/commands/setup-check.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BnF"}
1
+ {"version":3,"file":"setup-check.d.ts","sourceRoot":"","sources":["../../src/commands/setup-check.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCnF"}
@@ -2,6 +2,7 @@ import chalk from "chalk";
2
2
  import { resolveApiBase } from "../lib/api-base.js";
3
3
  import { CLI_VERSION } from "../lib/version.js";
4
4
  import { runEnvironmentChecks } from "../lib/environment-checks.js";
5
+ import { terminalWidth, wrapIndented } from "../lib/wrap.js";
5
6
  /**
6
7
  * `litmus setup-check` — the command a candidate runs BEFORE they have an
7
8
  * assessment: from the reminder email before a live interview, or from the
@@ -16,10 +17,19 @@ import { runEnvironmentChecks } from "../lib/environment-checks.js";
16
17
  * removes, and phones home nothing. Output is doctor's "Key: value" grammar
17
18
  * and ends with either "Ready" or one sentence naming the fix. Exit 0 when
18
19
  * ready, 1 when something needs the candidate.
20
+ *
21
+ * Long lines wrap under their own indent (ENG-2305): the plain text is
22
+ * wrapped to the terminal width first and painted after, so a red fix line
23
+ * reads as one block instead of spilling to column 0.
19
24
  */
20
25
  export async function runSetupCheck(opts = {}) {
21
26
  const verbose = opts.verbose === true;
22
27
  const apiBase = resolveApiBase(process.env.LITMUS_API_URL);
28
+ const width = terminalWidth();
29
+ const line = (indent, text, paint = (s) => s) => {
30
+ // paint is called per line with ONE argument: chalk accepts variadic args and would join map's index and array in.
31
+ console.log(wrapIndented(text, { indent, width }).split("\n").map((l) => paint(l)).join("\n"));
32
+ };
23
33
  console.log();
24
34
  console.log(chalk.bold(" Litmus setup check"));
25
35
  console.log();
@@ -27,21 +37,21 @@ export async function runSetupCheck(opts = {}) {
27
37
  apiBase,
28
38
  record: (r) => {
29
39
  const paint = r.status === "fail" ? chalk.red : r.status === "warn" ? chalk.yellow : (s) => s;
30
- console.log(` ${paint(r.detail)}`);
40
+ line(" ", r.detail, paint);
31
41
  if (verbose && r.verbose)
32
- console.log(chalk.dim(` ${r.verbose.split("\n").join("\n ")}`));
42
+ line(" ", r.verbose, chalk.dim);
33
43
  },
34
44
  });
35
45
  const problems = results.filter((r) => r.status === "fail");
36
46
  console.log();
37
47
  if (problems.length === 0) {
38
- console.log(chalk.green(" Ready. Your machine can run the Litmus CLI."));
48
+ line(" ", "Ready. Your machine can run the Litmus CLI.", chalk.green);
39
49
  }
40
50
  else {
41
- console.log(chalk.red(` ${problems.length} thing${problems.length === 1 ? "" : "s"} to fix before you start.`));
42
- console.log(chalk.dim(" Copy this whole output into an email to support@litmushiring.com if you need help."));
51
+ line(" ", `${problems.length} thing${problems.length === 1 ? "" : "s"} to fix before you start.`, chalk.red);
52
+ line(" ", "Copy this whole output into an email to support@litmushiring.com if you need help.", chalk.dim);
43
53
  }
44
- console.log(chalk.dim(` setup-check v${CLI_VERSION}: ${results.map((r) => `${r.name}=${r.status}`).join(" ")}`));
54
+ line(" ", `setup-check v${CLI_VERSION}: ${results.map((r) => `${r.name}=${r.status}`).join(" ")}`, chalk.dim);
45
55
  console.log();
46
56
  process.exitCode = problems.length > 0 ? 1 : 0;
47
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup-check.js","sourceRoot":"","sources":["../../src/commands/setup-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAyB,MAAM,8BAA8B,CAAA;AAE1F;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA8B,EAAE;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAA;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAE1D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;QACzC,OAAO;QACP,MAAM,EAAE,CAAC,CAAmB,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAA;YACrG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACrC,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrG,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,SAAS,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAA;QAChH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC,CAAA;IAChH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjH,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"setup-check.js","sourceRoot":"","sources":["../../src/commands/setup-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Terminal word-wrap with a hanging indent (ENG-2305).
3
+ *
4
+ * The CLI prints "Key: value" lines four spaces in. Left to the terminal, a
5
+ * line longer than the window wraps to column 0, so the continuation sits to
6
+ * the LEFT of where the line began and the block reads as two things. This
7
+ * wraps at word boundaries to the terminal width and starts every
8
+ * continuation line under the first character of the text.
9
+ *
10
+ * Two rules from review (Greptile on #2416). **Text that fits is emitted
11
+ * verbatim**, whitespace included: the verbose blocks are raw watcher log
12
+ * lines and exception messages, and collapsing their spacing would make a
13
+ * pasted diagnostic differ from the file it came from. A line that must wrap
14
+ * is SLICED at a space, never split and rejoined, so the spacing inside each
15
+ * piece is untouched too. And **width is measured in terminal columns, not
16
+ * characters**: a CJK glyph or an emoji occupies two cells and a combining
17
+ * mark none, so `String.length` would let a line through that the terminal
18
+ * then wraps to column 0, which is the exact bug this exists to remove.
19
+ *
20
+ * Callers wrap the PLAIN string and paint the colour afterwards: ANSI escape
21
+ * codes have no width on screen but would be measured here.
22
+ */
23
+ /** Width to wrap to, or null when stdout is not a terminal (piped output stays one line per record). */
24
+ export declare function terminalWidth(stream?: {
25
+ isTTY?: boolean;
26
+ columns?: number;
27
+ }): number | null;
28
+ /**
29
+ * Terminal cells a plain string occupies: 0 for combining and zero-width
30
+ * marks, 2 for East Asian wide/fullwidth glyphs and the common emoji blocks,
31
+ * 1 otherwise. Tabs count as 1 (the terminal decides; we cannot know the
32
+ * column). Deliberately dependency-free and approximate at the edges.
33
+ */
34
+ export declare function displayWidth(text: string): number;
35
+ /**
36
+ * Wrap `text` so that every output line, indent included, fits in `width`
37
+ * columns. The first line is prefixed with `indent`; continuation lines with
38
+ * `indent` plus `hang` extra spaces (default 0, i.e. flush with the first
39
+ * line's text). A single word wider than the available room is left whole
40
+ * on its own line rather than broken mid-word, so a URL stays pasteable.
41
+ * `width` null means no wrapping.
42
+ */
43
+ export declare function wrapIndented(text: string, opts: {
44
+ indent: string;
45
+ width: number | null;
46
+ hang?: number;
47
+ }): string;
48
+ //# sourceMappingURL=wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../src/lib/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wGAAwG;AACxG,wBAAgB,aAAa,CAAC,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAmB,GAAG,MAAM,GAAG,IAAI,CAI3G;AAmBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwChH"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Terminal word-wrap with a hanging indent (ENG-2305).
3
+ *
4
+ * The CLI prints "Key: value" lines four spaces in. Left to the terminal, a
5
+ * line longer than the window wraps to column 0, so the continuation sits to
6
+ * the LEFT of where the line began and the block reads as two things. This
7
+ * wraps at word boundaries to the terminal width and starts every
8
+ * continuation line under the first character of the text.
9
+ *
10
+ * Two rules from review (Greptile on #2416). **Text that fits is emitted
11
+ * verbatim**, whitespace included: the verbose blocks are raw watcher log
12
+ * lines and exception messages, and collapsing their spacing would make a
13
+ * pasted diagnostic differ from the file it came from. A line that must wrap
14
+ * is SLICED at a space, never split and rejoined, so the spacing inside each
15
+ * piece is untouched too. And **width is measured in terminal columns, not
16
+ * characters**: a CJK glyph or an emoji occupies two cells and a combining
17
+ * mark none, so `String.length` would let a line through that the terminal
18
+ * then wraps to column 0, which is the exact bug this exists to remove.
19
+ *
20
+ * Callers wrap the PLAIN string and paint the colour afterwards: ANSI escape
21
+ * codes have no width on screen but would be measured here.
22
+ */
23
+ /** Width to wrap to, or null when stdout is not a terminal (piped output stays one line per record). */
24
+ export function terminalWidth(stream = process.stdout) {
25
+ if (!stream.isTTY)
26
+ return null;
27
+ const cols = stream.columns;
28
+ return typeof cols === "number" && cols > 0 ? cols : null;
29
+ }
30
+ const ZERO_WIDTH = /[\u200B-\u200D\uFEFF]|\p{M}/u;
31
+ function isWide(cp) {
32
+ return ((cp >= 0x1100 && cp <= 0x115f) || // Hangul Jamo
33
+ (cp >= 0x2e80 && cp <= 0xa4cf && cp !== 0x303f) || // CJK radicals .. Yi
34
+ (cp >= 0xac00 && cp <= 0xd7a3) || // Hangul syllables
35
+ (cp >= 0xf900 && cp <= 0xfaff) || // CJK compatibility ideographs
36
+ (cp >= 0xfe30 && cp <= 0xfe4f) || // CJK compatibility forms
37
+ (cp >= 0xff00 && cp <= 0xff60) || // fullwidth forms
38
+ (cp >= 0xffe0 && cp <= 0xffe6) ||
39
+ (cp >= 0x1f300 && cp <= 0x1f64f) || // emoji blocks
40
+ (cp >= 0x1f900 && cp <= 0x1f9ff) ||
41
+ (cp >= 0x20000 && cp <= 0x3fffd) // CJK extension B..
42
+ );
43
+ }
44
+ /**
45
+ * Terminal cells a plain string occupies: 0 for combining and zero-width
46
+ * marks, 2 for East Asian wide/fullwidth glyphs and the common emoji blocks,
47
+ * 1 otherwise. Tabs count as 1 (the terminal decides; we cannot know the
48
+ * column). Deliberately dependency-free and approximate at the edges.
49
+ */
50
+ export function displayWidth(text) {
51
+ let w = 0;
52
+ for (const ch of text) {
53
+ if (ZERO_WIDTH.test(ch))
54
+ continue;
55
+ w += isWide(ch.codePointAt(0)) ? 2 : 1;
56
+ }
57
+ return w;
58
+ }
59
+ /**
60
+ * Wrap `text` so that every output line, indent included, fits in `width`
61
+ * columns. The first line is prefixed with `indent`; continuation lines with
62
+ * `indent` plus `hang` extra spaces (default 0, i.e. flush with the first
63
+ * line's text). A single word wider than the available room is left whole
64
+ * on its own line rather than broken mid-word, so a URL stays pasteable.
65
+ * `width` null means no wrapping.
66
+ */
67
+ export function wrapIndented(text, opts) {
68
+ const { indent, width } = opts;
69
+ const contIndent = indent + " ".repeat(opts.hang ?? 0);
70
+ if (width === null)
71
+ return indent + text;
72
+ if (width - displayWidth(indent) < 8)
73
+ return indent + text; // absurdly narrow; wrapping would be worse than overflow
74
+ const out = [];
75
+ for (const paragraph of text.split("\n")) {
76
+ let rest = paragraph;
77
+ let first = true;
78
+ for (;;) {
79
+ const prefix = first ? indent : contIndent;
80
+ const room = width - displayWidth(prefix);
81
+ if (displayWidth(rest) <= room) {
82
+ out.push(prefix + rest); // fits: verbatim, whitespace and all
83
+ break;
84
+ }
85
+ // Longest prefix of `rest` that fits, cut back to the last space in it.
86
+ let cells = 0;
87
+ let fitEnd = 0;
88
+ for (const ch of rest) {
89
+ const w = displayWidth(ch);
90
+ if (cells + w > room)
91
+ break;
92
+ cells += w;
93
+ fitEnd += ch.length;
94
+ }
95
+ let cut = rest.lastIndexOf(" ", fitEnd);
96
+ if (cut <= 0) {
97
+ // No space inside the room: take the whole first word rather than
98
+ // breaking it, so a long URL or path stays intact.
99
+ const nextSpace = rest.indexOf(" ", fitEnd);
100
+ cut = nextSpace === -1 ? rest.length : nextSpace;
101
+ }
102
+ out.push(prefix + rest.slice(0, cut).replace(/ +$/, ""));
103
+ rest = rest.slice(cut).replace(/^ +/, "");
104
+ first = false;
105
+ if (rest.length === 0)
106
+ break;
107
+ }
108
+ }
109
+ return out.join("\n");
110
+ }
111
+ //# sourceMappingURL=wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/lib/wrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "litmus-cli",
3
- "version": "1.4.26",
3
+ "version": "1.4.27",
4
4
  "description": "CLI tool for Litmus engineering assessments",
5
5
  "license": "MIT",
6
6
  "author": "elenazhao",