@tui-sandbox/library 12.4.1 → 12.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/src/client/drawTextBox.js +7 -6
  2. package/dist/src/client/drawTextBox.js.map +1 -1
  3. package/dist/src/client/drawTextBox.test.js +41 -0
  4. package/dist/src/client/drawTextBox.test.js.map +1 -1
  5. package/dist/src/client/extractTerminalContent.d.ts +2 -0
  6. package/dist/src/client/extractTerminalContent.js +11 -0
  7. package/dist/src/client/extractTerminalContent.js.map +1 -0
  8. package/dist/src/client/extractTerminalContent.test.d.ts +1 -0
  9. package/dist/src/client/extractTerminalContent.test.js +29 -0
  10. package/dist/src/client/extractTerminalContent.test.js.map +1 -0
  11. package/dist/src/client/index.d.ts +2 -0
  12. package/dist/src/client/index.js +2 -0
  13. package/dist/src/client/index.js.map +1 -1
  14. package/dist/src/client/visualWidth.d.ts +1 -0
  15. package/dist/src/client/visualWidth.js +3 -0
  16. package/dist/src/client/visualWidth.js.map +1 -0
  17. package/dist/src/scripts/resolveTuiConfig.js +1 -1
  18. package/dist/src/scripts/resolveTuiConfig.js.map +1 -1
  19. package/dist/src/server/server.d.ts +0 -2
  20. package/dist/src/server/server.js.map +1 -1
  21. package/dist/src/server/updateTestdirectorySchemaFile.d.ts +0 -9
  22. package/dist/src/server/updateTestdirectorySchemaFile.js.map +1 -1
  23. package/dist/src/server/utilities/DisposableSingleApplication.test.js +2 -3
  24. package/dist/src/server/utilities/DisposableSingleApplication.test.js.map +1 -1
  25. package/dist/src/server/utilities/TerminalApplication.d.ts +0 -1
  26. package/dist/src/server/utilities/TerminalApplication.js +9 -12
  27. package/dist/src/server/utilities/TerminalApplication.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +7 -7
  30. package/src/server/cypress-support/tui-sandbox-template.ts +3 -14
@@ -1,16 +1,17 @@
1
+ import { visualWidth } from "./visualWidth.js";
1
2
  /** Draw a Unicode box around text content with a title in the top border. */
2
3
  export const drawTextBox = (title, content, minWidth = 88) => {
3
4
  const header = ` ${title} `;
5
+ const headerWidth = visualWidth(header);
4
6
  const contentLines = content.split("\n");
5
- // The box must be wide enough for the header and all content lines
6
- const maxContentWidth = Math.max(...contentLines.map(line => line.length));
7
- const width = Math.max(minWidth, maxContentWidth + 4, header.length + 2);
7
+ const maxContentWidth = Math.max(...contentLines.map(line => visualWidth(line)));
8
+ const width = Math.max(minWidth, maxContentWidth + 4, headerWidth + 2);
8
9
  const innerWidth = width - 2;
9
- const topBorder = `┌${header}${"─".repeat(innerWidth - header.length)}┐`;
10
+ const topBorder = `┌${header}${"─".repeat(innerWidth - headerWidth)}┐`;
10
11
  const bottomBorder = `└${"─".repeat(innerWidth)}┘`;
11
12
  const lines = contentLines.map(line => {
12
- const padded = line.padEnd(innerWidth - 2);
13
- return `│ ${padded} │`;
13
+ const padding = " ".repeat(innerWidth - 2 - visualWidth(line));
14
+ return `│ ${line}${padding} │`;
14
15
  });
15
16
  return `${topBorder}\n${lines.join("\n")}\n${bottomBorder}`;
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"drawTextBox.js","sourceRoot":"","sources":["../../../src/client/drawTextBox.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,QAAQ,GAAG,EAAE,EAAU,EAAE;IACnF,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,CAAA;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAExC,mEAAmE;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAExE,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAA;IAC5B,MAAM,SAAS,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA;IACxE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAA;IAClD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;QAC1C,OAAO,KAAK,MAAM,IAAI,CAAA;IACxB,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,EAAE,CAAA;AAC7D,CAAC,CAAA"}
1
+ {"version":3,"file":"drawTextBox.js","sourceRoot":"","sources":["../../../src/client/drawTextBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,QAAQ,GAAG,EAAE,EAAU,EAAE;IACnF,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,CAAA;IAC3B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAA;IAEtE,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAA;IAC5B,MAAM,SAAS,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAA;IACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAA;IAClD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,OAAO,KAAK,IAAI,GAAG,OAAO,IAAI,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,YAAY,EAAE,CAAA;AAC7D,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { drawTextBox } from "./drawTextBox.js";
3
+ import { visualWidth } from "./visualWidth.js";
3
4
  describe("drawTextBox", () => {
4
5
  it("draws a box around terminal content", () => {
5
6
  const content = [
@@ -28,5 +29,45 @@ describe("drawTextBox", () => {
28
29
  const lengths = lines.map(line => line.length);
29
30
  expect(new Set(lengths).size).toBe(1);
30
31
  });
32
+ it("right-aligns the border when content contains wide CJK characters", () => {
33
+ // "日本" is 4 cells (2 wide chars at 2 cells each); "abcd" is also 4
34
+ // cells. JS .length differs (2 vs 4) but visual width must match across
35
+ // all box lines so the right border lines up.
36
+ const content = ["日本", "abcd"].join("\n");
37
+ const lines = drawTextBox("Title", content).split("\n");
38
+ const widths = lines.map(visualWidth);
39
+ expect(new Set(widths).size).toBe(1);
40
+ });
41
+ it("right-aligns the border when the title contains wide characters", () => {
42
+ const lines = drawTextBox("日本語タイトル", "content").split("\n");
43
+ const widths = lines.map(visualWidth);
44
+ expect(new Set(widths).size).toBe(1);
45
+ });
46
+ it("right-aligns the border for emoji content", () => {
47
+ const content = ["🎉🎉", "ab"].join("\n");
48
+ const lines = drawTextBox("Title", content).split("\n");
49
+ const widths = lines.map(visualWidth);
50
+ expect(new Set(widths).size).toBe(1);
51
+ });
52
+ it("right-aligns the border for ZWJ-joined emoji clusters", () => {
53
+ // 👨‍👩‍👧‍👦 is one grapheme (2 cells) built from 4 code points + ZWJs
54
+ // (11 JS chars total). Naive .length math would over-pad by 9.
55
+ const content = ["👨‍👩‍👧‍👦", "ab"].join("\n");
56
+ const lines = drawTextBox("Title", content).split("\n");
57
+ const widths = lines.map(visualWidth);
58
+ expect(new Set(widths).size).toBe(1);
59
+ });
60
+ it("renders a tight box around CJK content", () => {
61
+ // Snapshot — verifies the right border `│` actually lines up visually
62
+ // when the file is viewed in a monospace context. minWidth=20 forces
63
+ // the box to be sized by content rather than the default minimum.
64
+ const content = ["日本", "abcd"].join("\n");
65
+ expect(drawTextBox("T", content, 20)).toMatchInlineSnapshot(`
66
+ "┌ T ───────────────┐
67
+ │ 日本 │
68
+ │ abcd │
69
+ └──────────────────┘"
70
+ `);
71
+ });
31
72
  }); // describe
32
73
  //# sourceMappingURL=drawTextBox.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawTextBox.test.js","sourceRoot":"","sources":["../../../src/client/drawTextBox.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG;YACd,EAAE;YACF,2CAA2C;YAC3C,mEAAmE;YACnE,uEAAuE;YACvE,cAAc;SACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,CAAC,WAAW,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;GAQnF,CAAC,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,QAAQ,GACZ,gIAAgI,CAAA;QAClI,MAAM,OAAO,GAAG,CAAC,wCAAwC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpF,MAAM,MAAM,GAAG,WAAW,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEhC,4CAA4C;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA,CAAC,WAAW"}
1
+ {"version":3,"file":"drawTextBox.test.js","sourceRoot":"","sources":["../../../src/client/drawTextBox.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG;YACd,EAAE;YACF,2CAA2C;YAC3C,mEAAmE;YACnE,uEAAuE;YACvE,cAAc;SACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,CAAC,WAAW,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;GAQnF,CAAC,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,QAAQ,GACZ,gIAAgI,CAAA;QAClI,MAAM,OAAO,GAAG,CAAC,wCAAwC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEpF,MAAM,MAAM,GAAG,WAAW,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEhC,4CAA4C;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,mEAAmE;QACnE,wEAAwE;QACxE,8CAA8C;QAC9C,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,sEAAsE;QACtE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;KAK3D,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA,CAAC,WAAW"}
@@ -0,0 +1,2 @@
1
+ /** Join row text into a snapshot, dropping trailing blank rows. */
2
+ export declare const extractTerminalContent: (rowTexts: ReadonlyArray<string>) => string | undefined;
@@ -0,0 +1,11 @@
1
+ /** Join row text into a snapshot, dropping trailing blank rows. */
2
+ export const extractTerminalContent = (rowTexts) => {
3
+ if (rowTexts.length === 0)
4
+ return undefined;
5
+ const lines = [...rowTexts];
6
+ while (lines.length > 0 && lines[lines.length - 1]?.trim() === "") {
7
+ lines.pop();
8
+ }
9
+ return lines.length > 0 ? lines.join("\n") : undefined;
10
+ };
11
+ //# sourceMappingURL=extractTerminalContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractTerminalContent.js","sourceRoot":"","sources":["../../../src/client/extractTerminalContent.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAA+B,EAAsB,EAAE;IAC5F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE3C,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;IAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAClE,KAAK,CAAC,GAAG,EAAE,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { extractTerminalContent } from "./extractTerminalContent.js";
3
+ describe("extractTerminalContent", () => {
4
+ it("works with basic cases", () => {
5
+ expect(extractTerminalContent([]), "returns undefined for an empty rows array").toBeUndefined();
6
+ expect(extractTerminalContent(["", " ", "\t"]), "returns undefined when every row is blank").toBeUndefined();
7
+ expect(extractTerminalContent(["a", "b", "c"]), "returns undefined when every row is blank").toBe("a\nb\nc");
8
+ expect(extractTerminalContent(["hello", "world", "", " "]), "returns undefined when every row is blank").toBe("hello\nworld");
9
+ expect(extractTerminalContent(["", "hello"]), "returns undefined when every row is blank").toBe("\nhello");
10
+ });
11
+ describe("multi-byte / Unicode", () => {
12
+ it("preserves CJK wide characters", () => {
13
+ expect(extractTerminalContent(["你好世界"])).toBe("你好世界");
14
+ });
15
+ it("preserves emoji surrogate pairs", () => {
16
+ expect(extractTerminalContent(["🎉 Done!"])).toBe("🎉 Done!");
17
+ });
18
+ it("preserves precomposed and decomposed diacritics", () => {
19
+ expect(extractTerminalContent(["café"])).toBe("café");
20
+ expect(extractTerminalContent(["café"])).toBe("café");
21
+ });
22
+ it("treats ideographic space as blank when trimming trailing rows", () => {
23
+ // String.prototype.trim() removes U+3000 per spec, so a row containing
24
+ // only ideographic spaces is dropped from the trailing tail.
25
+ expect(extractTerminalContent(["text", " "])).toBe("text");
26
+ });
27
+ });
28
+ });
29
+ //# sourceMappingURL=extractTerminalContent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractTerminalContent.test.js","sourceRoot":"","sources":["../../../src/client/extractTerminalContent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,2CAA2C,CAAC,CAAC,aAAa,EAAE,CAAA;QAC/F,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,2CAA2C,CAAC,CAAC,aAAa,EAAE,CAAA;QAC7G,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5G,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAC5G,cAAc,CACf,CAAA;QACD,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5G,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,uEAAuE;YACvE,6DAA6D;YAC7D,MAAM,CAAC,sBAAsB,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -2,4 +2,6 @@ export type { InMemoryClipboard } from "./clipboard.js";
2
2
  export { rgbify } from "./color-utilities.js";
3
3
  export { textIsVisibleWithBackgroundColor, textIsVisibleWithColor } from "./cypress-assertions.js";
4
4
  export { drawTextBox } from "./drawTextBox.js";
5
+ export { extractTerminalContent } from "./extractTerminalContent.js";
5
6
  export type { MyNeovimConfigModification } from "./neovim/MyNeovimConfigModification.ts";
7
+ export { visualWidth } from "./visualWidth.js";
@@ -2,4 +2,6 @@
2
2
  export { rgbify } from "./color-utilities.js";
3
3
  export { textIsVisibleWithBackgroundColor, textIsVisibleWithColor } from "./cypress-assertions.js";
4
4
  export { drawTextBox } from "./drawTextBox.js";
5
+ export { extractTerminalContent } from "./extractTerminalContent.js";
6
+ export { visualWidth } from "./visualWidth.js";
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const visualWidth: (s: string) => number;
@@ -0,0 +1,3 @@
1
+ import stringWidth from "string-width";
2
+ export const visualWidth = (s) => stringWidth(s);
3
+ //# sourceMappingURL=visualWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualWidth.js","sourceRoot":"","sources":["../../../src/client/visualWidth.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA"}
@@ -16,7 +16,7 @@ export const resolveTuiConfig = async (cwd) => {
16
16
  log(`Found configuration file in ${url.pathname}:`, JSON.stringify(file, null, 2));
17
17
  }
18
18
  catch (e) {
19
- console.log("Using the default configuration.");
19
+ console.log(`Using the default configuration. If you want to add a custom config, add it to ${url.pathname}`);
20
20
  log("Config load error:", e);
21
21
  return {
22
22
  id: "no-config-found",
@@ -1 +1 @@
1
- {"version":3,"file":"resolveTuiConfig.js","sourceRoot":"","sources":["../../../src/scripts/resolveTuiConfig.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAiC,MAAM,4CAA4C,CAAA;AAElH,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAejD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAmC,EAAE;IACrF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAE3D,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAEhE,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,4DAA4D;QAC5D,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,GAAG,CAAC,+BAA+B,GAAG,CAAC,QAAQ,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAC/C,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;QAE5B,OAAO;YACL,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE;gBACN,MAAM,EAAE,aAAa;gBACrB,cAAc,EAAE,GAAG,CAAC,QAAQ;aAC7B;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;gBAChC,cAAc,EAAE,GAAG,CAAC,QAAQ;aAC7B;SACF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;YACzC,cAAc,EAAE,GAAG,CAAC,QAAQ;YAC5B,OAAO,EAAE,iCAAiC;SAC3C,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"resolveTuiConfig.js","sourceRoot":"","sources":["../../../src/scripts/resolveTuiConfig.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAiC,MAAM,4CAA4C,CAAA;AAElH,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAejD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAmC,EAAE;IACrF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAE3D,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAEhE,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,4DAA4D;QAC5D,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,GAAG,CAAC,+BAA+B,GAAG,CAAC,QAAQ,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kFAAkF,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC7G,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;QAE5B,OAAO;YACL,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE;gBACN,MAAM,EAAE,aAAa;gBACrB,cAAc,EAAE,GAAG,CAAC,QAAQ;aAC7B;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,kBAAkB,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM;gBAChC,cAAc,EAAE,GAAG,CAAC,QAAQ;aAC7B;SACF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC;YACzC,cAAc,EAAE,GAAG,CAAC,QAAQ;YAC5B,OAAO,EAAE,iCAAiC;SAC3C,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import type { inferRouterInputs } from "@trpc/server";
2
1
  import type { TestServerConfig } from "./updateTestdirectorySchemaFile.js";
3
2
  /** @private */
4
3
  export declare function createAppRouter(config: TestServerConfig): Promise<import("@trpc/server").TRPCBuiltRouter<{
@@ -177,5 +176,4 @@ export declare function createAppRouter(config: TestServerConfig): Promise<impor
177
176
  }>>;
178
177
  }>>>;
179
178
  export type AppRouter = Awaited<ReturnType<typeof createAppRouter>>;
180
- export type RouterInput = inferRouterInputs<AppRouter>;
181
179
  export declare function startTestServer(config: TestServerConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,eAAe;AACf,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACnC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,eAAe;AACf,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACnC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -1,18 +1,10 @@
1
1
  import * as z from "zod";
2
- export type DirectoriesConfig = TestServerConfig["directories"];
3
2
  export type TestServerConfig = z.output<typeof testServerConfigSchema>;
4
3
  export type TestServerConfigMetadata = {
5
4
  configFilePath: string;
6
5
  config: TestServerConfig;
7
6
  };
8
- export type Dictionary = Record<string, string>;
9
- export type CustomizeEnv = (env: Dictionary) => Promise<Dictionary>;
10
- export type CustomizeMiseEnvironmentVariables = (env: Dictionary, defaultImplementation: CustomizeEnv) => Promise<Record<string, string>>;
11
7
  export type NeovimIntegrationDefaultAppName = "nvim";
12
- declare const neovimIntegration: z.ZodObject<{
13
- NVIM_APPNAMEs: z.ZodDefault<z.ZodArray<z.ZodString>>;
14
- }, z.core.$strict>;
15
- export type NeovimIntegrationConfig = z.output<typeof neovimIntegration>;
16
8
  export declare const testServerConfigSchema: z.ZodObject<{
17
9
  directories: z.ZodObject<{
18
10
  testEnvironmentPath: z.ZodString;
@@ -28,4 +20,3 @@ export declare const testServerConfigSchema: z.ZodObject<{
28
20
  }, z.core.$strict>;
29
21
  export type UpdateTestdirectorySchemaFileResult = "updated" | "did-nothing";
30
22
  export declare function updateTestdirectorySchemaFile(config: TestServerConfig): Promise<UpdateTestdirectorySchemaFileResult>;
31
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAA;AAqBzE,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,MAAgD,CAAC,CAAC;CAC/D,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC3D,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE,iBAAiB;KAC1B,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAwB;IAExB,MAAM,SAAS,GAAW,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAChE,IAAI,SAAS,GAAG,EAAE,CAAA;IAElB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAA;AAUzE,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,MAAgD,CAAC,CAAC;CAC/D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC3D,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE,iBAAiB;KAC1B,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAwB;IAExB,MAAM,SAAS,GAAW,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAChE,IAAI,SAAS,GAAG,EAAE,CAAA;IAElB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
@@ -10,7 +10,7 @@ const fakeApp = {
10
10
  processId: 123,
11
11
  write: vi.fn(),
12
12
  killAndWait: vi.fn(),
13
- untilExit: Promise.resolve({ exitCode: 0, signal: undefined }),
13
+ untilExit: Promise.resolve({ exitCode: 0 }),
14
14
  };
15
15
  describe("DisposableSingleApplication", () => {
16
16
  it("has no application when created", () => {
@@ -40,10 +40,9 @@ describe("DisposableSingleApplication", () => {
40
40
  it("successful exit works", async () => {
41
41
  const app = new TestDisposableSingleApplication();
42
42
  await app.startNextAndKillCurrent(async () => fakeApp);
43
- fakeApp.untilExit = Promise.resolve({ exitCode: 1, signal: 9 });
43
+ fakeApp.untilExit = Promise.resolve({ exitCode: 1 });
44
44
  await expect(app.untilExit()).resolves.toStrictEqual({
45
45
  exitCode: 1,
46
- signal: 9,
47
46
  });
48
47
  });
49
48
  it("when the application throws an error, the error is propagated", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"DisposableSingleApplication.test.js","sourceRoot":"","sources":["../../../../src/server/utilities/DisposableSingleApplication.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisposableSingleApplication.test.js","sourceRoot":"","sources":["../../../../src/server/utilities/DisposableSingleApplication.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import type { ITerminalDimensions } from "@xterm/addon-fit";
3
3
  import type { StartableApplication } from "./DisposableSingleApplication.js";
4
4
  export type ExitInfo = {
5
5
  exitCode: number;
6
- signal: number | undefined;
7
6
  };
8
7
  export declare class TerminalApplication implements StartableApplication {
9
8
  private readonly subProcess;
@@ -48,18 +48,15 @@ export class TerminalApplication {
48
48
  if (!processId) {
49
49
  throw new Error("Failed to spawn child process");
50
50
  }
51
- const untilExit = new Promise(resolve => {
52
- // Keep the Node.js event loop alive until the exit callback fires.
53
- // When the child process exits, zigpty's internal tty.ReadStream on the
54
- // PTY fd is destroyed. If that was the last active handle, Node.js would
55
- // exit before the native waitpid() callback can post the exit event back
56
- // to the event loop.
57
- // oxlint-disable-next-line no-empty-function
58
- const keepAlive = setInterval(() => { }, 60_000);
59
- ptyProcess.onExit(({ exitCode, signal }) => {
60
- clearInterval(keepAlive);
61
- resolve({ exitCode, signal });
62
- });
51
+ // Keep the Node.js event loop alive until the process exits. When the
52
+ // child exits, zigpty destroys its internal tty.ReadStream if that was
53
+ // the last active handle, Node.js would exit before the native waitpid()
54
+ // callback can resolve the `exited` promise.
55
+ // oxlint-disable-next-line no-empty-function
56
+ const keepAlive = setInterval(() => { }, 60_000);
57
+ const untilExit = ptyProcess.exited.then(exitCode => {
58
+ clearInterval(keepAlive);
59
+ return { exitCode };
63
60
  });
64
61
  return new TerminalApplication(ptyProcess, onStdoutOrStderr, untilExit, command);
65
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/TerminalApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TerminalApplication.js","sourceRoot":"","sources":["../../../../src/server/utilities/TerminalApplication.ts"],"names":[],"mappings":"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"}