@tui-sandbox/library 11.11.2 → 12.1.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.
Files changed (96) hide show
  1. package/dist/browser/assets/index-BITC1TRH.js +9 -0
  2. package/dist/browser/assets/index-CYUPHpRk.css +1 -0
  3. package/dist/browser/index.html +2 -2
  4. package/dist/src/browser/neovim-client.d.ts +5 -0
  5. package/dist/src/browser/neovim-client.js +4 -0
  6. package/dist/src/browser/neovim-client.js.map +1 -1
  7. package/dist/src/client/clipboard.d.ts +18 -0
  8. package/dist/src/client/clipboard.js +19 -0
  9. package/dist/src/client/clipboard.js.map +1 -0
  10. package/dist/src/client/index.d.ts +2 -0
  11. package/dist/src/client/index.js.map +1 -1
  12. package/dist/src/client/neovim-terminal-client.d.ts +2 -2
  13. package/dist/src/client/neovim-terminal-client.js +5 -2
  14. package/dist/src/client/neovim-terminal-client.js.map +1 -1
  15. package/dist/src/client/startTerminal.d.ts +2 -2
  16. package/dist/src/client/startTerminal.js +18 -15
  17. package/dist/src/client/startTerminal.js.map +1 -1
  18. package/dist/src/client/terminal-terminal-client.d.ts +3 -2
  19. package/dist/src/client/terminal-terminal-client.js +5 -1
  20. package/dist/src/client/terminal-terminal-client.js.map +1 -1
  21. package/dist/src/server/cypress-support/contents.js +38 -11
  22. package/dist/src/server/cypress-support/contents.js.map +1 -1
  23. package/dist/src/server/index.d.ts +4 -0
  24. package/dist/src/server/index.js.map +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +35 -8
  27. package/CHANGELOG.md +0 -941
  28. package/dist/browser/assets/index-BQzArJW3.js +0 -9
  29. package/dist/browser/assets/index-hkmOP7rU.css +0 -1
  30. package/index.html +0 -11
  31. package/src/browser/neovim-client.ts +0 -126
  32. package/src/client/MyNeovimConfigModification.test.ts +0 -25
  33. package/src/client/MyNeovimConfigModification.ts +0 -8
  34. package/src/client/color-utilities.test.ts +0 -10
  35. package/src/client/color-utilities.ts +0 -9
  36. package/src/client/cypress-assertions.ts +0 -35
  37. package/src/client/index.ts +0 -4
  38. package/src/client/neovim-terminal-client.ts +0 -130
  39. package/src/client/public/DejaVuSansMNerdFontMono-Regular.ttf +0 -0
  40. package/src/client/startTerminal.ts +0 -97
  41. package/src/client/style.css +0 -32
  42. package/src/client/terminal-config.ts +0 -25
  43. package/src/client/terminal-terminal-client.ts +0 -106
  44. package/src/client/validateMouseEvent.ts +0 -22
  45. package/src/scripts/commands/commandRun.ts +0 -68
  46. package/src/scripts/commands/commandTuiNeovimExec.ts +0 -36
  47. package/src/scripts/commands/commandTuiNeovimPrepare.ts +0 -12
  48. package/src/scripts/commands/commandTuiStart.ts +0 -36
  49. package/src/scripts/parseArguments.test.ts +0 -28
  50. package/src/scripts/parseArguments.ts +0 -66
  51. package/src/scripts/resolveConfig.test.ts +0 -78
  52. package/src/scripts/resolveTuiConfig.ts +0 -65
  53. package/src/scripts/tui.ts +0 -77
  54. package/src/server/TestServer.ts +0 -73
  55. package/src/server/applications/neovim/NeovimApplication.ts +0 -236
  56. package/src/server/applications/neovim/NeovimJavascriptApiClient.test.ts +0 -48
  57. package/src/server/applications/neovim/NeovimJavascriptApiClient.ts +0 -68
  58. package/src/server/applications/neovim/api.ts +0 -257
  59. package/src/server/applications/neovim/environment/TempDirectory.ts +0 -18
  60. package/src/server/applications/neovim/environment/createTempDir.test.ts +0 -29
  61. package/src/server/applications/neovim/environment/createTempDir.ts +0 -91
  62. package/src/server/applications/neovim/neovimRouter.ts +0 -100
  63. package/src/server/applications/neovim/prepareNewTestDirectory.test.ts +0 -32
  64. package/src/server/applications/neovim/prepareNewTestDirectory.ts +0 -21
  65. package/src/server/applications/terminal/TerminalTestApplication.ts +0 -101
  66. package/src/server/applications/terminal/api.ts +0 -89
  67. package/src/server/applications/terminal/runBlockingShellCommand.test.ts +0 -41
  68. package/src/server/applications/terminal/runBlockingShellCommand.ts +0 -64
  69. package/src/server/applications/terminal/terminalRouter.ts +0 -47
  70. package/src/server/blockingCommandInputSchema.test.ts +0 -24
  71. package/src/server/blockingCommandInputSchema.ts +0 -27
  72. package/src/server/config.test.ts +0 -7
  73. package/src/server/config.ts +0 -18
  74. package/src/server/connection/trpc.ts +0 -3
  75. package/src/server/cypress-support/contents.ts +0 -245
  76. package/src/server/cypress-support/createCypressSupportFile.test.ts +0 -69
  77. package/src/server/cypress-support/createCypressSupportFile.ts +0 -56
  78. package/src/server/dirtree/index.test.ts +0 -352
  79. package/src/server/dirtree/index.ts +0 -144
  80. package/src/server/dirtree/json-to-zod.ts +0 -60
  81. package/src/server/index.ts +0 -6
  82. package/src/server/server.ts +0 -34
  83. package/src/server/types.ts +0 -98
  84. package/src/server/updateTestdirectorySchemaFile.test.ts +0 -49
  85. package/src/server/updateTestdirectorySchemaFile.ts +0 -71
  86. package/src/server/utilities/DisposableSingleApplication.test.ts +0 -92
  87. package/src/server/utilities/DisposableSingleApplication.ts +0 -49
  88. package/src/server/utilities/Lazy.ts +0 -16
  89. package/src/server/utilities/TerminalApplication.ts +0 -100
  90. package/src/server/utilities/generator.test.ts +0 -50
  91. package/src/server/utilities/generator.ts +0 -12
  92. package/src/server/utilities/tabId.ts +0 -4
  93. package/src/server/utilities/timeout.ts +0 -3
  94. package/src/server/utilities/timeoutable.ts +0 -19
  95. package/tsconfig.json +0 -31
  96. package/vite.config.js +0 -27
@@ -0,0 +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 .xterm-scroll-area{visibility:hidden}.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}.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}@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-BQzArJW3.js"></script>
7
- <link rel="stylesheet" crossorigin href="/assets/index-hkmOP7rU.css">
6
+ <script type="module" crossorigin src="/assets/index-BITC1TRH.js"></script>
7
+ <link rel="stylesheet" crossorigin href="/assets/index-CYUPHpRk.css">
8
8
  </head>
9
9
  <body>
10
10
  <div id="app"></div>
@@ -1,5 +1,8 @@
1
1
  import type { Terminal } from "@xterm/xterm";
2
+ import "@xterm/xterm/css/xterm.css";
3
+ import type { InMemoryClipboard } from "../client/clipboard.js";
2
4
  import type { TuiTerminalApi } from "../client/startTerminal.js";
5
+ import "../client/style.css";
3
6
  import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput, RunLuaFileClientInput } from "../server/applications/neovim/neovimRouter.js";
4
7
  import type { StartTerminalGenericArguments } from "../server/applications/terminal/TerminalTestApplication.js";
5
8
  import type { BlockingCommandClientInput } from "../server/blockingCommandInputSchema.js";
@@ -11,6 +14,7 @@ export type GenericNeovimBrowserApi = {
11
14
  waitForLuaCode(input: PollLuaCodeClientInput): Promise<RunLuaCodeOutput>;
12
15
  runExCommand(input: ExCommandClientInput): Promise<RunExCommandOutput>;
13
16
  dir: TestDirectory;
17
+ clipboard: InMemoryClipboard;
14
18
  };
15
19
  declare global {
16
20
  interface Window {
@@ -21,6 +25,7 @@ declare global {
21
25
  export type GenericTerminalBrowserApi = {
22
26
  dir: TestDirectory;
23
27
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
28
+ clipboard: InMemoryClipboard;
24
29
  };
25
30
  export type BrowserTerminalSettings = {
26
31
  configureTerminal?: (term: {
@@ -1,4 +1,6 @@
1
+ import "@xterm/xterm/css/xterm.css";
1
2
  import { NeovimTerminalClient } from "../client/neovim-terminal-client.js";
3
+ import "../client/style.css";
2
4
  import { TerminalTerminalClient } from "../client/terminal-terminal-client.js";
3
5
  import { Lazy } from "../server/utilities/Lazy.js";
4
6
  const app = document.querySelector("#app");
@@ -35,6 +37,7 @@ window.startNeovim = async function (startArgs) {
35
37
  return neovim.runExCommand(input);
36
38
  },
37
39
  dir: testDirectory,
40
+ clipboard: neovim.clipboard,
38
41
  };
39
42
  return neovimBrowserApi;
40
43
  };
@@ -47,6 +50,7 @@ window.startTerminalApplication = async function (args) {
47
50
  runBlockingShellCommand(input) {
48
51
  return terminal.runBlockingShellCommand(input);
49
52
  },
53
+ clipboard: terminal.clipboard,
50
54
  };
51
55
  return terminalBrowserApi;
52
56
  };
@@ -1 +1 @@
1
- {"version":3,"file":"neovim-client.js","sourceRoot":"","sources":["../../../src/browser/neovim-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAE1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAiB9E,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;AAWtE,+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;KACnB,CAAA;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAwCD,+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;KACF,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,qCAAqC,CAAA;AAE1E,OAAO,qBAAqB,CAAA;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAiB9E,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"}
@@ -0,0 +1,18 @@
1
+ import type { ClipboardSelectionType, IClipboardProvider } from "@xterm/addon-clipboard";
2
+ export type InMemoryClipboard = {
3
+ /**
4
+ * Get the system clipboard contents. This seems to be the default on osx. If
5
+ * you know what other systems use this by default, please open an issue or
6
+ * PR to enhance this documentation!
7
+ */
8
+ system(): string;
9
+ /** Get the primary clipboard contents. */
10
+ primary(): string;
11
+ };
12
+ export declare class InMemoryClipboardProvider implements IClipboardProvider, InMemoryClipboard {
13
+ private clipboardContents;
14
+ system(): string;
15
+ primary(): string;
16
+ readText(selection: ClipboardSelectionType): Promise<string>;
17
+ writeText(selection: ClipboardSelectionType, text: string): Promise<void>;
18
+ }
@@ -0,0 +1,19 @@
1
+ export class InMemoryClipboardProvider {
2
+ clipboardContents = {
3
+ c: "", // SYSTEM
4
+ p: "", // PRIMARY
5
+ };
6
+ system() {
7
+ return this.clipboardContents.c;
8
+ }
9
+ primary() {
10
+ return this.clipboardContents.p;
11
+ }
12
+ async readText(selection) {
13
+ return this.clipboardContents[selection];
14
+ }
15
+ async writeText(selection, text) {
16
+ this.clipboardContents[selection] = text;
17
+ }
18
+ }
19
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../../src/client/clipboard.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,yBAAyB;IAC5B,iBAAiB,GAA2C;QAClE,CAAC,EAAE,EAAE,EAAE,SAAS;QAChB,CAAC,EAAE,EAAE,EAAE,UAAU;KAClB,CAAA;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiC;QAC9C,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiC,EAAE,IAAY;QAC7D,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;IAC1C,CAAC;CACF"}
@@ -1,2 +1,4 @@
1
+ export type { InMemoryClipboard } from "./clipboard.js";
1
2
  export { rgbify } from "./color-utilities.js";
2
3
  export { textIsVisibleWithBackgroundColor, textIsVisibleWithColor } from "./cypress-assertions.js";
4
+ export type { MyNeovimConfigModification } from "./MyNeovimConfigModification.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,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"}
@@ -1,8 +1,7 @@
1
- import "@xterm/xterm/css/xterm.css";
2
1
  import type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput, RunLuaFileClientInput } from "../server/applications/neovim/neovimRouter.js";
3
2
  import type { BlockingCommandClientInput } from "../server/blockingCommandInputSchema.js";
4
3
  import type { BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory } from "../server/types.js";
5
- import "./style.css";
4
+ import type { InMemoryClipboard } from "./clipboard.js";
6
5
  /** Manages the terminal state in the browser as well as the (browser's)
7
6
  * connection to the server side terminal application api. */
8
7
  export declare class NeovimTerminalClient {
@@ -10,6 +9,7 @@ export declare class NeovimTerminalClient {
10
9
  private readonly tabId;
11
10
  private readonly terminal;
12
11
  private readonly trpc;
12
+ readonly clipboard: InMemoryClipboard;
13
13
  constructor(app: HTMLElement);
14
14
  startNeovim(args: StartNeovimGenericArguments): Promise<TestDirectory>;
15
15
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
@@ -1,7 +1,6 @@
1
1
  import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
2
- import "@xterm/xterm/css/xterm.css";
2
+ import { InMemoryClipboardProvider } from "./clipboard.js";
3
3
  import { getTabId, startTerminal } from "./startTerminal.js";
4
- import "./style.css";
5
4
  /** Manages the terminal state in the browser as well as the (browser's)
6
5
  * connection to the server side terminal application api. */
7
6
  export class NeovimTerminalClient {
@@ -9,6 +8,7 @@ export class NeovimTerminalClient {
9
8
  tabId;
10
9
  terminal;
11
10
  trpc;
11
+ clipboard;
12
12
  constructor(app) {
13
13
  const trpc = createTRPCClient({
14
14
  links: [
@@ -26,6 +26,7 @@ export class NeovimTerminalClient {
26
26
  this.trpc = trpc;
27
27
  this.tabId = getTabId();
28
28
  const tabId = this.tabId;
29
+ const clipboard = new InMemoryClipboardProvider();
29
30
  const terminal = startTerminal(app, {
30
31
  onMouseEvent(data) {
31
32
  void trpc.neovim.sendStdin.mutate({ tabId, data }).catch((error) => {
@@ -35,7 +36,9 @@ export class NeovimTerminalClient {
35
36
  onKeyPress(event) {
36
37
  void trpc.neovim.sendStdin.mutate({ tabId, data: event.key });
37
38
  },
39
+ clipboard,
38
40
  });
41
+ this.clipboard = clipboard;
39
42
  this.terminal = terminal;
40
43
  // start listening to Neovim stdout - this will take some (short) amount of
41
44
  // time to complete
@@ -1 +1 @@
1
- {"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../src/client/neovim-terminal-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neovim-terminal-client.js","sourceRoot":"","sources":["../../../src/client/neovim-terminal-client.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { Terminal } from "@xterm/xterm";
2
- import "@xterm/xterm/css/xterm.css";
3
2
  import type { TabId } from "../server/utilities/tabId.ts";
4
- import "./style.css";
3
+ import type { InMemoryClipboardProvider } from "./clipboard.js";
5
4
  export type TuiTerminalApi = {
6
5
  onMouseEvent: (data: string) => void;
7
6
  onKeyPress: (event: {
8
7
  key: string;
9
8
  domEvent: KeyboardEvent;
10
9
  }) => void;
10
+ clipboard: InMemoryClipboardProvider;
11
11
  };
12
12
  export declare function startTerminal(app: HTMLElement, api: TuiTerminalApi): Terminal;
13
13
  /** An identifier unique to a browser tab, so that each tab can have its own
@@ -1,10 +1,9 @@
1
1
  import { flavors } from "@catppuccin/palette";
2
+ import { ClipboardAddon } from "@xterm/addon-clipboard";
2
3
  import { FitAddon } from "@xterm/addon-fit";
3
4
  import { Unicode11Addon } from "@xterm/addon-unicode11";
4
5
  import { Terminal } from "@xterm/xterm";
5
- import "@xterm/xterm/css/xterm.css";
6
6
  import * as z from "zod";
7
- import "./style.css";
8
7
  import { validateMouseEvent } from "./validateMouseEvent.js";
9
8
  export function startTerminal(app, api) {
10
9
  const terminal = new Terminal({
@@ -32,20 +31,24 @@ export function startTerminal(app, api) {
32
31
  white: colors.text.hex,
33
32
  yellow: colors.yellow.hex,
34
33
  };
35
- // The FitAddon makes the terminal fit the size of the container, the entire
36
- // page in this case
37
- const fitAddon = new FitAddon();
38
- terminal.loadAddon(fitAddon);
39
- // The Unicode11Addon fixes emoji rendering issues. Without it, emoji are
40
- // displayed as truncated (partial) images.
41
- const unicode11Addon = new Unicode11Addon();
42
- terminal.loadAddon(unicode11Addon);
43
- terminal.unicode.activeVersion = "11";
44
- terminal.open(app);
45
- fitAddon.fit();
46
- window.addEventListener("resize", () => {
34
+ {
35
+ // The FitAddon makes the terminal fit the size of the container, the entire
36
+ // page in this case
37
+ const fitAddon = new FitAddon();
38
+ terminal.loadAddon(fitAddon);
39
+ // The Unicode11Addon fixes emoji rendering issues. Without it, emoji are
40
+ // displayed as truncated (partial) images.
41
+ const unicode11Addon = new Unicode11Addon();
42
+ terminal.loadAddon(unicode11Addon);
43
+ terminal.unicode.activeVersion = "11";
44
+ terminal.open(app);
47
45
  fitAddon.fit();
48
- });
46
+ window.addEventListener("resize", () => {
47
+ fitAddon.fit();
48
+ });
49
+ const clipboardAddon = new ClipboardAddon(undefined, api.clipboard);
50
+ terminal.loadAddon(clipboardAddon);
51
+ }
49
52
  terminal.onData(data => {
50
53
  data;
51
54
  // Send mouse clicks to the terminal application
@@ -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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"}
@@ -1,7 +1,7 @@
1
- import "@xterm/xterm/css/xterm.css";
2
1
  import type { StartTerminalBrowserArguments } from "../browser/neovim-client.js";
3
2
  import type { BlockingCommandClientInput } from "../server/blockingCommandInputSchema.js";
4
3
  import type { BlockingShellCommandOutput, ServerTestDirectory } from "../server/types.js";
4
+ import type { InMemoryClipboard } from "./clipboard.js";
5
5
  import type { TuiTerminalApi } from "./startTerminal.js";
6
6
  /** Manages the terminal state in the browser as well as the (browser's)
7
7
  * connection to the server side terminal application api. */
@@ -10,7 +10,8 @@ export declare class TerminalTerminalClient {
10
10
  private readonly tabId;
11
11
  private readonly terminal;
12
12
  private readonly trpc;
13
- terminalApi: TuiTerminalApi;
13
+ readonly clipboard: InMemoryClipboard;
14
+ readonly terminalApi: TuiTerminalApi;
14
15
  constructor(app: HTMLElement);
15
16
  startTerminalApplication(args: StartTerminalBrowserArguments): Promise<ServerTestDirectory>;
16
17
  runBlockingShellCommand(input: BlockingCommandClientInput): Promise<BlockingShellCommandOutput>;
@@ -1,5 +1,5 @@
1
1
  import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from "@trpc/client";
2
- import "@xterm/xterm/css/xterm.css";
2
+ import { InMemoryClipboardProvider } from "./clipboard.js";
3
3
  import { getTabId, startTerminal } from "./startTerminal.js";
4
4
  import { supportDA1 } from "./terminal-config.js";
5
5
  /** Manages the terminal state in the browser as well as the (browser's)
@@ -9,6 +9,7 @@ export class TerminalTerminalClient {
9
9
  tabId;
10
10
  terminal;
11
11
  trpc;
12
+ clipboard;
12
13
  terminalApi;
13
14
  constructor(app) {
14
15
  const trpc = createTRPCClient({
@@ -27,6 +28,7 @@ export class TerminalTerminalClient {
27
28
  this.trpc = trpc;
28
29
  this.tabId = getTabId();
29
30
  const tabId = this.tabId;
31
+ const clipboard = new InMemoryClipboardProvider();
30
32
  this.terminalApi = {
31
33
  onMouseEvent(data) {
32
34
  void trpc.terminal.sendStdin.mutate({ tabId, data }).catch((error) => {
@@ -36,7 +38,9 @@ export class TerminalTerminalClient {
36
38
  onKeyPress(event) {
37
39
  void trpc.terminal.sendStdin.mutate({ tabId, data: event.key });
38
40
  },
41
+ clipboard,
39
42
  };
43
+ this.clipboard = clipboard;
40
44
  const terminal = startTerminal(app, this.terminalApi);
41
45
  this.terminal = terminal;
42
46
  // start listening to stdout - this will take some (short) amount of time
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../src/client/terminal-terminal-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-terminal-client.js","sourceRoot":"","sources":["../../../src/client/terminal-terminal-client.ts"],"names":[],"mappings":"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"}
@@ -12,24 +12,22 @@ import type {
12
12
  BrowserTerminalSettings,
13
13
  GenericNeovimBrowserApi,
14
14
  GenericTerminalBrowserApi,
15
- } from "@tui-sandbox/library/dist/src/browser/neovim-client"
15
+ } from "@tui-sandbox/library/browser/neovim-client.js"
16
+ import type { MyNeovimConfigModification } from "@tui-sandbox/library/client"
16
17
  import type {
17
18
  AllKeys,
19
+ BlockingCommandClientInput,
18
20
  BlockingShellCommandOutput,
19
- RunExCommandOutput,
20
- RunLuaCodeOutput,
21
- StartNeovimGenericArguments,
22
- TestDirectory,
23
- } from "@tui-sandbox/library/dist/src/server/types"
24
- import type { MyNeovimConfigModification } from "@tui-sandbox/library/src/client/MyNeovimConfigModification"
25
- import type {
26
21
  ExCommandClientInput,
27
22
  LuaCodeClientInput,
28
23
  PollLuaCodeClientInput,
24
+ RunExCommandOutput,
25
+ RunLuaCodeOutput,
29
26
  RunLuaFileClientInput,
30
- } from "@tui-sandbox/library/src/server/applications/neovim/neovimRouter"
31
- import type { StartTerminalGenericArguments } from "@tui-sandbox/library/src/server/applications/terminal/TerminalTestApplication"
32
- import type { BlockingCommandClientInput } from "@tui-sandbox/library/src/server/blockingCommandInputSchema"
27
+ StartNeovimGenericArguments,
28
+ StartTerminalGenericArguments,
29
+ TestDirectory,
30
+ } from "@tui-sandbox/library/server"
33
31
  import type { OverrideProperties } from "type-fest"
34
32
  import type { MyNeovimAppName, MyTestDirectory, MyTestDirectoryFile } from "../../MyTestDirectory"
35
33
 
@@ -44,6 +42,12 @@ export type TerminalTestApplicationContext = {
44
42
 
45
43
  /** The test directory, providing type-safe access to its file and directory structure */
46
44
  dir: TestDirectory<MyTestDirectory>
45
+
46
+ /** Access to the clipboard of the terminal */
47
+ clipboard: {
48
+ system(): Cypress.Chainable<string>
49
+ primary(): Cypress.Chainable<string>
50
+ }
47
51
  }
48
52
 
49
53
  /** The api that can be used in tests after a Neovim instance has been started. */
@@ -84,6 +88,12 @@ export type NeovimContext = {
84
88
 
85
89
  /** The test directory, providing type-safe access to its file and directory structure */
86
90
  dir: TestDirectory<MyTestDirectory>
91
+
92
+ /** Access to the clipboard of the terminal */
93
+ clipboard: {
94
+ system(): Cypress.Chainable<string>
95
+ primary(): Cypress.Chainable<string>
96
+ }
87
97
  }
88
98
 
89
99
  /** Arguments for starting the neovim server. They are built based on your test
@@ -135,6 +145,15 @@ Cypress.Commands.add("startNeovim", (startArguments?: MyStartNeovimServerArgumen
135
145
  cy.typeIntoTerminal(text, options)
136
146
  },
137
147
  dir: underlyingNeovim.dir as TestDirectory<MyTestDirectory>,
148
+
149
+ clipboard: {
150
+ primary() {
151
+ return cy.then(() => underlyingNeovim.clipboard.primary())
152
+ },
153
+ system() {
154
+ return cy.then(() => underlyingNeovim.clipboard.system())
155
+ },
156
+ },
138
157
  }
139
158
 
140
159
  return api
@@ -171,6 +190,14 @@ Cypress.Commands.add("startTerminalApplication", (args: StartTerminalGenericArgu
171
190
  typeIntoTerminal(text, options) {
172
191
  cy.typeIntoTerminal(text, options)
173
192
  },
193
+ clipboard: {
194
+ primary() {
195
+ return cy.then(() => terminal.clipboard.primary())
196
+ },
197
+ system() {
198
+ return cy.then(() => terminal.clipboard.system())
199
+ },
200
+ },
174
201
  }
175
202
 
176
203
  return api
@@ -1 +1 @@
1
- {"version":3,"file":"contents.js","sourceRoot":"","sources":["../../../../src/server/cypress-support/contents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,gCAAgC;IACpD,uEAAuE;IACvE,2BAA2B;IAC3B,IAAI,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsOZ,CAAA;IAEC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAE/D,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"contents.js","sourceRoot":"","sources":["../../../../src/server/cypress-support/contents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,gCAAgC;IACpD,uEAAuE;IACvE,2BAA2B;IAC3B,IAAI,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiQZ,CAAA;IAEC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAE/D,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,4 +1,8 @@
1
+ export type { ExCommandClientInput, LuaCodeClientInput, PollLuaCodeClientInput, RunLuaFileClientInput, } from "./applications/neovim/neovimRouter.ts";
2
+ export type { StartTerminalGenericArguments } from "./applications/terminal/TerminalTestApplication.ts";
3
+ export type { BlockingCommandClientInput } from "./blockingCommandInputSchema.ts";
1
4
  export { startTestServer } from "./server.js";
5
+ export type { AllKeys, BlockingShellCommandOutput, RunExCommandOutput, RunLuaCodeOutput, StartNeovimGenericArguments, TestDirectory, } from "./types.ts";
2
6
  export { updateTestdirectorySchemaFile } from "./updateTestdirectorySchemaFile.js";
3
7
  export type { TestServerConfig } from "./updateTestdirectorySchemaFile.js";
4
8
  export { Lazy } from "./utilities/Lazy.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAU9E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAS7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA"}