@tui-sandbox/library 12.2.4 → 12.3.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 (26) hide show
  1. package/dist/browser/assets/{index-BiCHXrmL.js → index-DZMdP7t7.js} +25 -25
  2. package/dist/browser/assets/{index-BibnzQaA.css → index-DeHrVVje.css} +1 -1
  3. package/dist/browser/index.html +2 -2
  4. package/dist/src/browser/neovim-client.d.ts +3 -0
  5. package/dist/src/browser/neovim-client.js +7 -5
  6. package/dist/src/browser/neovim-client.js.map +1 -1
  7. package/dist/src/client/neovim/neovim-terminal-client.d.ts +9 -2
  8. package/dist/src/client/neovim/neovim-terminal-client.js +35 -35
  9. package/dist/src/client/neovim/neovim-terminal-client.js.map +1 -1
  10. package/dist/src/client/startTerminal.d.ts +2 -0
  11. package/dist/src/client/startTerminal.js +3 -0
  12. package/dist/src/client/startTerminal.js.map +1 -1
  13. package/dist/src/client/terminal/terminal-config.d.ts +10 -0
  14. package/dist/src/client/terminal/terminal-config.js +22 -0
  15. package/dist/src/client/terminal/terminal-config.js.map +1 -1
  16. package/dist/src/client/terminal/terminal-terminal-client.d.ts +7 -4
  17. package/dist/src/client/terminal/terminal-terminal-client.js +26 -26
  18. package/dist/src/client/terminal/terminal-terminal-client.js.map +1 -1
  19. package/dist/src/server/applications/neovim/api.js +1 -0
  20. package/dist/src/server/applications/neovim/api.js.map +1 -1
  21. package/dist/src/server/cypress-support/contents.js +17 -6
  22. package/dist/src/server/cypress-support/contents.js.map +1 -1
  23. package/dist/src/server/dirtree/index.test.js +2 -0
  24. package/dist/src/server/dirtree/index.test.js.map +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +12 -12
@@ -1 +1 @@
1
- .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000)0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000)6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000)6px 0 6px -6px inset}@font-face{font-family:DejaVuSansMNerdFontMono;src:url(/assets/DejaVuSansMNerdFontMono-Regular-CRJgiq0O.ttf);font-weight:400;font-style:normal}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#000}#app{width:100vw;height:100vh;display:flex}*{font-family:DejaVuSansMNerdFontMono,monospace}.xterm .xterm-viewport{overflow-y:hidden}body{margin:0;overflow:hidden}
1
+ .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}@font-face{font-family:DejaVuSansMNerdFontMono;src:url(/assets/DejaVuSansMNerdFontMono-Regular-CRJgiq0O.ttf);font-weight:400;font-style:normal}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#000}#app{width:100vw;height:100vh;display:flex}*{font-family:DejaVuSansMNerdFontMono,monospace}.xterm .xterm-viewport{overflow-y:hidden}body{margin:0;overflow:hidden}
@@ -3,8 +3,8 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <title>tui-sandbox integration tests</title>
6
- <script type="module" crossorigin src="/assets/index-BiCHXrmL.js"></script>
7
- <link rel="stylesheet" crossorigin href="/assets/index-BibnzQaA.css">
6
+ <script type="module" crossorigin src="/assets/index-DZMdP7t7.js"></script>
7
+ <link rel="stylesheet" crossorigin href="/assets/index-DeHrVVje.css">
8
8
  </head>
9
9
  <body>
10
10
  <div id="app"></div>
@@ -7,6 +7,7 @@ import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput,
7
7
  import type { StartTerminalGenericArguments } from "../server/applications/terminal/TerminalTestApplication.js";
8
8
  import type { BlockingCommandClientInput } from "../server/blockingCommandInputSchema.js";
9
9
  import type { BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory } from "../server/types.js";
10
+ import { Lazy } from "../server/utilities/Lazy.js";
10
11
  export type GenericNeovimBrowserApi = {
11
12
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
12
13
  runLuaCode(input: LuaCodeClientInput): Promise<RunLuaCodeOutput>;
@@ -15,6 +16,7 @@ export type GenericNeovimBrowserApi = {
15
16
  runExCommand(input: ExCommandClientInput): Promise<RunExCommandOutput>;
16
17
  dir: TestDirectory;
17
18
  clipboard: InMemoryClipboard;
19
+ title: Lazy<string>;
18
20
  };
19
21
  declare global {
20
22
  interface Window {
@@ -26,6 +28,7 @@ export type GenericTerminalBrowserApi = {
26
28
  dir: TestDirectory;
27
29
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
28
30
  clipboard: InMemoryClipboard;
31
+ title: Lazy<string>;
29
32
  };
30
33
  export type BrowserTerminalSettings = {
31
34
  configureTerminal?: (term: {
@@ -8,11 +8,11 @@ if (!app) {
8
8
  throw new Error("No app element found");
9
9
  }
10
10
  // limitation: right now only one client can be used in the same test
11
- const neovimClient = new Lazy(() => new NeovimTerminalClient(app));
12
- const terminalClient = new Lazy(() => new TerminalTerminalClient(app));
11
+ const neovimClient = new Lazy(() => NeovimTerminalClient.create(app));
12
+ const terminalClient = new Lazy(() => TerminalTerminalClient.create(app));
13
13
  /** Entrypoint for the test runner (cypress) */
14
14
  window.startNeovim = async function (startArgs) {
15
- const neovim = neovimClient.get();
15
+ const neovim = await neovimClient.get();
16
16
  const testDirectory = await neovim.startNeovim({
17
17
  additionalEnvironmentVariables: startArgs?.additionalEnvironmentVariables,
18
18
  filename: startArgs?.filename ?? "initial-file.txt",
@@ -38,19 +38,21 @@ window.startNeovim = async function (startArgs) {
38
38
  },
39
39
  dir: testDirectory,
40
40
  clipboard: neovim.clipboard,
41
+ title: neovim.terminalApi.title,
41
42
  };
42
43
  return neovimBrowserApi;
43
44
  };
44
45
  /** Entrypoint for the test runner (cypress) */
45
46
  window.startTerminalApplication = async function (args) {
46
- const terminal = terminalClient.get();
47
+ const terminal = await terminalClient.get();
47
48
  const testDirectory = await terminal.startTerminalApplication(args);
48
49
  const terminalBrowserApi = {
49
50
  dir: testDirectory,
50
51
  runBlockingShellCommand(input) {
51
52
  return terminal.runBlockingShellCommand(input);
52
53
  },
53
- clipboard: terminal.clipboard,
54
+ clipboard: terminal.terminalApi.clipboard,
55
+ title: terminal.terminalApi.title,
54
56
  };
55
57
  return terminalBrowserApi;
56
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"neovim-client.js","sourceRoot":"","sources":["../../../src/browser/neovim-client.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAiBvF,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAElD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAc,MAAM,CAAC,CAAA;AACvD,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAA;AAClE,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAA;AAYtE,+CAA+C;AAC/C,MAAM,CAAC,WAAW,GAAG,KAAK,WAAW,SAAuC;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,CAAA;IACjC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QAC7C,8BAA8B,EAAE,SAAS,EAAE,8BAA8B;QACzE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,kBAAkB;QACnD,0BAA0B,EAAE,SAAS,EAAE,0BAA0B,IAAI,EAAE;QACvE,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS,EAAE,YAAY;KACS,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAA4B;QAChD,uBAAuB,CAAC,KAAiC;YACvD,OAAO,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,UAAU,CAAC,KAAK;YACd,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,CAAC,KAAK;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,cAAc,CAAC,KAAK;YAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAyCD,+CAA+C;AAC/C,MAAM,CAAC,wBAAwB,GAAG,KAAK,WACrC,IAAmC;IAEnC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CAAA;IACrC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAEnE,MAAM,kBAAkB,GAA8B;QACpD,GAAG,EAAE,aAAa;QAClB,uBAAuB,CAAC,KAAK;YAC3B,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC;QACD,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAA;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"neovim-client.js","sourceRoot":"","sources":["../../../src/browser/neovim-client.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AAEjF,OAAO,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAA;AAiBvF,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAElD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAc,MAAM,CAAC,CAAA;AACvD,IAAI,CAAC,GAAG,EAAE,CAAC;IACT,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACrE,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAazE,+CAA+C;AAC/C,MAAM,CAAC,WAAW,GAAG,KAAK,WAAW,SAAuC;IAC1E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAA;IACvC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QAC7C,8BAA8B,EAAE,SAAS,EAAE,8BAA8B;QACzE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,kBAAkB;QACnD,0BAA0B,EAAE,SAAS,EAAE,0BAA0B,IAAI,EAAE;QACvE,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS,EAAE,YAAY;KACS,CAAC,CAAA;IAEjD,MAAM,gBAAgB,GAA4B;QAChD,uBAAuB,CAAC,KAAiC;YACvD,OAAO,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QACD,UAAU,CAAC,KAAK;YACd,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,CAAC,KAAK;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,cAAc,CAAC,KAAK;YAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,CAAC;QACD,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;KAChC,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AA0CD,+CAA+C;AAC/C,MAAM,CAAC,wBAAwB,GAAG,KAAK,WACrC,IAAmC;IAEnC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAEnE,MAAM,kBAAkB,GAA8B;QACpD,GAAG,EAAE,aAAa;QAClB,uBAAuB,CAAC,KAAK;YAC3B,OAAO,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC;QACD,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;QACzC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK;KAClC,CAAA;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA"}
@@ -1,17 +1,24 @@
1
+ import { createTRPCClient } from "@trpc/client";
2
+ import type { Terminal } from "@xterm/xterm";
1
3
  import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput, RunLuaFileClientInput } from "../..//server/applications/neovim/neovimRouter.js";
4
+ import type { AppRouter } from "../..//server/server.js";
2
5
  import type { BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory } from "../..//server/types.js";
3
6
  import type { BlockingCommandClientInput } from "../../server/blockingCommandInputSchema.js";
7
+ import type { TabId } from "../../server/utilities/tabId.js";
8
+ import { BatchedAsyncQueue, type TerminalInputEvent } from "../BatchedAsyncQueue.js";
4
9
  import type { InMemoryClipboard } from "../clipboard.js";
10
+ import { type TuiTerminalApi } from "../startTerminal.js";
5
11
  /** Manages the terminal state in the browser as well as the (browser's)
6
12
  * connection to the server side terminal application api. */
7
13
  export declare class NeovimTerminalClient {
8
- private readonly ready;
9
14
  private readonly tabId;
10
15
  private readonly terminal;
11
16
  private readonly trpc;
12
17
  readonly clipboard: InMemoryClipboard;
13
18
  private readonly inputQueue;
14
- constructor(app: HTMLElement);
19
+ readonly terminalApi: TuiTerminalApi;
20
+ constructor(tabId: TabId, terminal: Terminal, trpc: ReturnType<typeof createTRPCClient<AppRouter>>, clipboard: InMemoryClipboard, inputQueue: BatchedAsyncQueue<TerminalInputEvent>, terminalApi: TuiTerminalApi);
21
+ static create(app: HTMLElement): Promise<NeovimTerminalClient>;
15
22
  startNeovim(args: StartNeovimGenericArguments): Promise<TestDirectory>;
16
23
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
17
24
  runLuaCode(input: LuaCodeClientInput): Promise<RunLuaCodeOutput>;
@@ -1,64 +1,69 @@
1
1
  import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
2
+ import { Lazy } from "../../server/utilities/Lazy.js";
2
3
  import { BatchedAsyncQueue } from "../BatchedAsyncQueue.js";
3
4
  import { InMemoryClipboardProvider } from "../clipboard.js";
4
5
  import { getTabId, startTerminal } from "../startTerminal.js";
6
+ import { supportDSR } from "../terminal/terminal-config.js";
5
7
  /** Manages the terminal state in the browser as well as the (browser's)
6
8
  * connection to the server side terminal application api. */
7
9
  export class NeovimTerminalClient {
8
- ready;
9
10
  tabId;
10
11
  terminal;
11
12
  trpc;
12
13
  clipboard;
13
14
  inputQueue;
14
- constructor(app) {
15
+ terminalApi;
16
+ constructor(tabId, terminal, trpc, clipboard, inputQueue, terminalApi) {
17
+ this.tabId = tabId;
18
+ this.terminal = terminal;
19
+ this.trpc = trpc;
20
+ this.clipboard = clipboard;
21
+ this.inputQueue = inputQueue;
22
+ this.terminalApi = terminalApi;
23
+ }
24
+ static async create(app) {
15
25
  const trpc = createTRPCClient({
16
26
  links: [
17
27
  splitLink({
18
28
  condition: operation => operation.type === "subscription",
19
- true: httpSubscriptionLink({
20
- url: "/trpc",
21
- }),
22
- false: httpBatchLink({
23
- url: "/trpc",
24
- }),
29
+ true: httpSubscriptionLink({ url: "/trpc" }),
30
+ false: httpBatchLink({ url: "/trpc" }),
25
31
  }),
26
32
  ],
27
33
  });
28
- this.trpc = trpc;
29
- this.tabId = getTabId();
30
- const tabId = this.tabId;
31
- {
32
- const controller = new AbortController();
33
- window.addEventListener("pagehide", () => {
34
- controller.abort();
35
- });
36
- this.inputQueue = new BatchedAsyncQueue(async (events) => {
37
- const keys = events.join("");
38
- await trpc.neovim.sendStdin.mutate({ tabId: this.tabId, data: keys });
39
- }, controller.signal);
40
- }
34
+ const tabId = getTabId();
35
+ const controller = new AbortController();
36
+ window.addEventListener("pagehide", () => {
37
+ controller.abort();
38
+ });
39
+ const inputQueue = new BatchedAsyncQueue(async (events) => {
40
+ const keys = events.join("");
41
+ await trpc.neovim.sendStdin.mutate({ tabId, data: keys });
42
+ }, controller.signal);
41
43
  const clipboard = new InMemoryClipboardProvider();
42
- const terminal = startTerminal(app, {
44
+ const terminalApi = {
43
45
  onMouseEvent: (data) => {
44
- this.inputQueue.enqueue(data);
46
+ inputQueue.enqueue(data);
45
47
  },
46
48
  onKeyPress: (event) => {
47
- this.inputQueue.enqueue(event.key);
49
+ inputQueue.enqueue(event.key);
48
50
  },
49
51
  clipboard,
50
- });
51
- this.clipboard = clipboard;
52
- this.terminal = terminal;
52
+ title: new Lazy(() => "title not set yet"),
53
+ };
54
+ const terminal = startTerminal(app, terminalApi);
55
+ // Neovim sends a DSR query during startup to detect terminal capabilities.
56
+ // Without a response, it waits 100ms and warns about slower startup.
57
+ supportDSR(terminal, terminalApi);
53
58
  // start listening to Neovim stdout - this will take some (short) amount of
54
59
  // time to complete
55
- this.ready = new Promise(resolve => {
60
+ await new Promise(resolve => {
56
61
  console.log("Subscribing to stdout");
57
62
  trpc.neovim.onStdout.subscribe({ client: tabId }, {
58
63
  onStarted() {
59
64
  resolve();
60
65
  },
61
- onData(data) {
66
+ onData: (data) => {
62
67
  terminal.write(data);
63
68
  },
64
69
  onError(err) {
@@ -66,9 +71,9 @@ export class NeovimTerminalClient {
66
71
  },
67
72
  });
68
73
  });
74
+ return new NeovimTerminalClient(tabId, terminal, trpc, clipboard, inputQueue, terminalApi);
69
75
  }
70
76
  async startNeovim(args) {
71
- await this.ready;
72
77
  const testDirectory = await this.trpc.neovim.start.mutate({
73
78
  startNeovimArguments: {
74
79
  filename: args.filename,
@@ -86,15 +91,12 @@ export class NeovimTerminalClient {
86
91
  return testDirectory;
87
92
  }
88
93
  async runBlockingShellCommand(input) {
89
- await this.ready;
90
94
  return this.trpc.neovim.runBlockingShellCommand.mutate({ ...input, tabId: this.tabId });
91
95
  }
92
96
  async runLuaCode(input) {
93
- await this.ready;
94
97
  return this.trpc.neovim.runLuaCode.mutate({ ...input, tabId: this.tabId });
95
98
  }
96
99
  async doFile(input) {
97
- await this.ready;
98
100
  return this.trpc.neovim.runExCommand.mutate({
99
101
  ...input,
100
102
  tabId: this.tabId,
@@ -102,11 +104,9 @@ export class NeovimTerminalClient {
102
104
  });
103
105
  }
104
106
  async waitForLuaCode(input) {
105
- await this.ready;
106
107
  return this.trpc.neovim.waitForLuaCode.mutate({ ...input, tabId: this.tabId });
107
108
  }
108
109
  async runExCommand(input) {
109
- await this.ready;
110
110
  return this.trpc.neovim.runExCommand.mutate({ ...input, tabId: this.tabId });
111
111
  }
112
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/neovim/neovim-terminal-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/neovim/neovim-terminal-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Terminal } from "@xterm/xterm";
2
+ import type { Lazy } from "../server/index.js";
2
3
  import type { TabId } from "../server/utilities/tabId.ts";
3
4
  import type { InMemoryClipboardProvider } from "./clipboard.js";
4
5
  export type TuiTerminalApi = {
@@ -8,6 +9,7 @@ export type TuiTerminalApi = {
8
9
  domEvent: KeyboardEvent;
9
10
  }) => void;
10
11
  clipboard: InMemoryClipboardProvider;
12
+ title: Lazy<string>;
11
13
  };
12
14
  export declare function startTerminal(app: HTMLElement, api: TuiTerminalApi): Terminal;
13
15
  /** An identifier unique to a browser tab, so that each tab can have its own
@@ -12,6 +12,9 @@ export function startTerminal(app, api) {
12
12
  convertEol: true,
13
13
  fontSize: 13,
14
14
  });
15
+ terminal.onTitleChange(title => {
16
+ api.title.set(title);
17
+ });
15
18
  const colors = flavors.macchiato.colors;
16
19
  terminal.options.theme = {
17
20
  background: colors.base.hex,
@@ -1 +1 @@
1
- {"version":3,"file":"startTerminal.js","sourceRoot":"","sources":["../../../src/client/startTerminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startTerminal.js","sourceRoot":"","sources":["../../../src/client/startTerminal.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,13 @@ import type { TuiTerminalApi } from "../startTerminal.js";
11
11
  */
12
12
  export declare function supportDA1(terminal: Terminal, api: TuiTerminalApi): void;
13
13
  export type FakeDA1Response = "[?1;2c";
14
+ /** DSR—Device Status Report
15
+ * The terminal application sends ESC[5n to ask "are you OK?"
16
+ * The terminal responds with ESC[0n meaning "terminal ready, no malfunction."
17
+ * https://vt100.net/docs/vt510-rm/DSR.html
18
+ *
19
+ * Neovim uses this during startup to detect terminal capabilities faster.
20
+ * Without a DSR response, Neovim waits 100ms and logs a warning about slower
21
+ * startup.
22
+ */
23
+ export declare function supportDSR(terminal: Terminal, api: TuiTerminalApi): void;
@@ -18,4 +18,26 @@ export function supportDA1(terminal, api) {
18
18
  return true; // prevent default handling
19
19
  });
20
20
  }
21
+ /** DSR—Device Status Report
22
+ * The terminal application sends ESC[5n to ask "are you OK?"
23
+ * The terminal responds with ESC[0n meaning "terminal ready, no malfunction."
24
+ * https://vt100.net/docs/vt510-rm/DSR.html
25
+ *
26
+ * Neovim uses this during startup to detect terminal capabilities faster.
27
+ * Without a DSR response, Neovim waits 100ms and logs a warning about slower
28
+ * startup.
29
+ */
30
+ export function supportDSR(terminal, api) {
31
+ terminal.parser.registerCsiHandler({ final: "n" }, params => {
32
+ if (params[0] === 5) {
33
+ // Respond with ESC[0n (terminal OK)
34
+ api.onKeyPress({
35
+ key: "\x1b[0n",
36
+ domEvent: new KeyboardEvent("keydown", { key: "Escape" }),
37
+ });
38
+ return true;
39
+ }
40
+ return false; // let other 'n' handlers run
41
+ });
42
+ }
21
43
  //# sourceMappingURL=terminal-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-config.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-config.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;QACtD,4CAA4C;QAC5C,GAAG,CAAC,UAAU,CAAC;YACb,GAAG,EAAE,MAAM,GAAI,QAAmC;YAClD,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC1D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA,CAAC,2BAA2B;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"terminal-config.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-config.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;QACtD,4CAA4C;QAC5C,GAAG,CAAC,UAAU,CAAC;YACb,GAAG,EAAE,MAAM,GAAI,QAAmC;YAClD,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC1D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA,CAAC,2BAA2B;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAID;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,QAAkB,EAAE,GAAmB;IAChE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE;QAC1D,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,oCAAoC;YACpC,GAAG,CAAC,UAAU,CAAC;gBACb,GAAG,EAAE,SAAS;gBACd,QAAQ,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aAC1D,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA,CAAC,6BAA6B;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,19 +1,22 @@
1
+ import { createTRPCClient } from "@trpc/client";
2
+ import type { Terminal } from "@xterm/xterm";
1
3
  import type { StartTerminalBrowserArguments } from "../../browser/neovim-client.js";
2
4
  import type { BlockingCommandClientInput } from "../../server/blockingCommandInputSchema.js";
5
+ import type { AppRouter } from "../../server/server.js";
3
6
  import type { BlockingShellCommandOutput, ServerTestDirectory } from "../../server/types.js";
4
- import type { InMemoryClipboard } from "../clipboard.js";
7
+ import type { TabId } from "../../server/utilities/tabId.js";
8
+ import { BatchedAsyncQueue, type TerminalInputEvent } from "../BatchedAsyncQueue.js";
5
9
  import type { TuiTerminalApi } from "../startTerminal.js";
6
10
  /** Manages the terminal state in the browser as well as the (browser's)
7
11
  * connection to the server side terminal application api. */
8
12
  export declare class TerminalTerminalClient {
9
- private readonly ready;
10
13
  private readonly tabId;
11
14
  private readonly terminal;
12
15
  private readonly trpc;
13
16
  private readonly inputQueue;
14
- readonly clipboard: InMemoryClipboard;
15
17
  readonly terminalApi: TuiTerminalApi;
16
- constructor(app: HTMLElement);
18
+ constructor(tabId: TabId, terminal: Terminal, trpc: ReturnType<typeof createTRPCClient<AppRouter>>, inputQueue: BatchedAsyncQueue<TerminalInputEvent>, terminalApi: TuiTerminalApi);
19
+ static create(app: HTMLElement): Promise<TerminalTerminalClient>;
17
20
  startTerminalApplication(args: StartTerminalBrowserArguments): Promise<ServerTestDirectory>;
18
21
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
19
22
  }
@@ -1,4 +1,5 @@
1
1
  import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
2
+ import { Lazy } from "../../server/utilities/Lazy.js";
2
3
  import { BatchedAsyncQueue } from "../BatchedAsyncQueue.js";
3
4
  import { InMemoryClipboardProvider } from "../clipboard.js";
4
5
  import { getTabId, startTerminal } from "../startTerminal.js";
@@ -6,14 +7,19 @@ import { supportDA1 } from "./terminal-config.js";
6
7
  /** Manages the terminal state in the browser as well as the (browser's)
7
8
  * connection to the server side terminal application api. */
8
9
  export class TerminalTerminalClient {
9
- ready;
10
10
  tabId;
11
11
  terminal;
12
12
  trpc;
13
13
  inputQueue;
14
- clipboard;
15
14
  terminalApi;
16
- constructor(app) {
15
+ constructor(tabId, terminal, trpc, inputQueue, terminalApi) {
16
+ this.tabId = tabId;
17
+ this.terminal = terminal;
18
+ this.trpc = trpc;
19
+ this.inputQueue = inputQueue;
20
+ this.terminalApi = terminalApi;
21
+ }
22
+ static async create(app) {
17
23
  const trpc = createTRPCClient({
18
24
  links: [
19
25
  splitLink({
@@ -27,41 +33,36 @@ export class TerminalTerminalClient {
27
33
  }),
28
34
  ],
29
35
  });
30
- this.trpc = trpc;
31
- this.tabId = getTabId();
32
- const tabId = this.tabId;
33
- {
34
- const controller = new AbortController();
35
- window.addEventListener("pagehide", () => {
36
- controller.abort();
37
- });
38
- this.inputQueue = new BatchedAsyncQueue(async (events) => {
39
- const keys = events.join("");
40
- await trpc.terminal.sendStdin.mutate({ tabId: this.tabId, data: keys });
41
- }, controller.signal);
42
- }
36
+ const tabId = getTabId();
37
+ const controller = new AbortController();
38
+ window.addEventListener("pagehide", () => {
39
+ controller.abort();
40
+ });
41
+ const inputQueue = new BatchedAsyncQueue(async (events) => {
42
+ const keys = events.join("");
43
+ await trpc.terminal.sendStdin.mutate({ tabId, data: keys });
44
+ }, controller.signal);
43
45
  const clipboard = new InMemoryClipboardProvider();
44
- this.terminalApi = {
46
+ const terminalApi = {
45
47
  onMouseEvent: (data) => {
46
- this.inputQueue.enqueue(data);
48
+ inputQueue.enqueue(data);
47
49
  },
48
50
  onKeyPress: (event) => {
49
- this.inputQueue.enqueue(event.key);
51
+ inputQueue.enqueue(event.key);
50
52
  },
51
53
  clipboard,
54
+ title: new Lazy(() => "title not set yet"),
52
55
  };
53
- this.clipboard = clipboard;
54
- const terminal = startTerminal(app, this.terminalApi);
55
- this.terminal = terminal;
56
+ const terminal = startTerminal(app, terminalApi);
56
57
  // start listening to stdout - this will take some (short) amount of time
57
58
  // to complete
58
- this.ready = new Promise(resolve => {
59
+ await new Promise(resolve => {
59
60
  console.log("Subscribing to stdout");
60
61
  trpc.terminal.onStdout.subscribe({ client: tabId }, {
61
62
  onStarted() {
62
63
  resolve();
63
64
  },
64
- onData(data) {
65
+ onData: (data) => {
65
66
  terminal.write(data);
66
67
  },
67
68
  onError(err) {
@@ -69,9 +70,9 @@ export class TerminalTerminalClient {
69
70
  },
70
71
  });
71
72
  });
73
+ return new TerminalTerminalClient(tabId, terminal, trpc, inputQueue, terminalApi);
72
74
  }
73
75
  async startTerminalApplication(args) {
74
- await this.ready;
75
76
  args.browserSettings.configureTerminal?.({
76
77
  terminal: this.terminal,
77
78
  api: this.terminalApi,
@@ -96,7 +97,6 @@ export class TerminalTerminalClient {
96
97
  return testDirectory;
97
98
  }
98
99
  async runBlockingShellCommand(input) {
99
- await this.ready;
100
100
  return this.trpc.terminal.runBlockingShellCommand.mutate({ ...input, tabId: this.tabId });
101
101
  }
102
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-terminal-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../../src/client/terminal/terminal-terminal-client.ts"],"names":[],"mappings":"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"}
@@ -187,6 +187,7 @@ export async function waitForLuaCode(options, signal) {
187
187
  };
188
188
  const maxIterations = 100;
189
189
  for (let iteration = 1; iteration <= maxIterations; iteration++) {
190
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- modified by AbortSignal
190
191
  if (!running) {
191
192
  reportFailure();
192
193
  throw new Error(`Polling Lua code: '${options.luaAssertion}' was aborted after ${iteration} iterations`);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/api.ts"],"names":[],"mappings":"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"}