@tui-sandbox/library 9.2.0 → 9.3.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 (45) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/browser/assets/{index-BVkLGLTD.js → index-CwXs-hE_.js} +6 -6
  3. package/dist/browser/index.html +1 -1
  4. package/dist/src/browser/neovim-client.d.ts +2 -1
  5. package/dist/src/browser/neovim-client.js.map +1 -1
  6. package/dist/src/client/neovim-terminal-client.d.ts +2 -1
  7. package/dist/src/client/neovim-terminal-client.js.map +1 -1
  8. package/dist/src/client/terminal-terminal-client.d.ts +1 -1
  9. package/dist/src/client/terminal-terminal-client.js.map +1 -1
  10. package/dist/src/server/blockingCommandInputSchema.d.ts +70 -0
  11. package/dist/src/server/blockingCommandInputSchema.js +20 -0
  12. package/dist/src/server/blockingCommandInputSchema.js.map +1 -0
  13. package/dist/src/server/blockingCommandInputSchema.test.d.ts +1 -0
  14. package/dist/src/server/blockingCommandInputSchema.test.js +22 -0
  15. package/dist/src/server/blockingCommandInputSchema.test.js.map +1 -0
  16. package/dist/src/server/cypress-support/contents.js +27 -9
  17. package/dist/src/server/cypress-support/contents.js.map +1 -1
  18. package/dist/src/server/neovim/index.d.ts +2 -1
  19. package/dist/src/server/neovim/index.js +1 -1
  20. package/dist/src/server/neovim/index.js.map +1 -1
  21. package/dist/src/server/server.d.ts +15 -53
  22. package/dist/src/server/server.js +1 -11
  23. package/dist/src/server/server.js.map +1 -1
  24. package/dist/src/server/terminal/index.d.ts +1 -1
  25. package/dist/src/server/terminal/index.js +1 -1
  26. package/dist/src/server/terminal/index.js.map +1 -1
  27. package/dist/src/server/terminal/runBlockingShellCommand.d.ts +10 -3
  28. package/dist/src/server/terminal/runBlockingShellCommand.js +21 -10
  29. package/dist/src/server/terminal/runBlockingShellCommand.js.map +1 -1
  30. package/dist/src/server/terminal/runBlockingShellCommand.test.d.ts +1 -0
  31. package/dist/src/server/terminal/runBlockingShellCommand.test.js +35 -0
  32. package/dist/src/server/terminal/runBlockingShellCommand.test.js.map +1 -0
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +7 -7
  35. package/src/browser/neovim-client.ts +2 -1
  36. package/src/client/neovim-terminal-client.ts +2 -6
  37. package/src/client/terminal-terminal-client.ts +2 -1
  38. package/src/server/blockingCommandInputSchema.test.ts +23 -0
  39. package/src/server/blockingCommandInputSchema.ts +28 -0
  40. package/src/server/cypress-support/contents.ts +27 -9
  41. package/src/server/neovim/index.ts +3 -2
  42. package/src/server/server.ts +1 -16
  43. package/src/server/terminal/index.ts +2 -2
  44. package/src/server/terminal/runBlockingShellCommand.test.ts +40 -0
  45. package/src/server/terminal/runBlockingShellCommand.ts +30 -12
@@ -1,19 +1,24 @@
1
1
  import { exec } from "child_process";
2
2
  import "core-js/proposals/async-explicit-resource-management.js";
3
+ import { join } from "path";
3
4
  import util from "util";
4
- export async function executeBlockingShellCommand(input, signal, allowFailure, env) {
5
+ export async function executeBlockingShellCommand(testDirectory, input, signal, allowFailure, env) {
5
6
  const execPromise = util.promisify(exec);
6
- const cwd = input.cwd ?? env["HOME"];
7
- const processPromise = execPromise(input.command, {
8
- signal: signal,
9
- shell: input.shell,
10
- uid: input.uid,
11
- gid: input.gid,
12
- cwd: cwd,
13
- env,
7
+ const cwd = getCwd({
8
+ rootPathAbsolute: testDirectory.rootPathAbsolute,
9
+ cwdRelative: input.cwdRelative,
10
+ cwdAbsolute: input.cwd,
11
+ home: testDirectory.rootPathAbsolute,
14
12
  });
15
13
  try {
16
- const result = await processPromise;
14
+ const result = await execPromise(input.command, {
15
+ signal: signal,
16
+ shell: input.shell,
17
+ uid: input.uid,
18
+ gid: input.gid,
19
+ cwd,
20
+ env,
21
+ });
17
22
  console.log(`Successfully ran shell blockingCommand (${input.command}) with stdout: ${result.stdout}, stderr: ${result.stderr}`);
18
23
  return {
19
24
  type: "success",
@@ -31,4 +36,10 @@ export async function executeBlockingShellCommand(input, signal, allowFailure, e
31
36
  throw new Error(`Error running shell blockingCommand (${input.command})`, { cause: e });
32
37
  }
33
38
  }
39
+ export function getCwd(args) {
40
+ if (args.cwdRelative) {
41
+ return join(args.rootPathAbsolute, args.cwdRelative);
42
+ }
43
+ return args.cwdAbsolute ?? args.home;
44
+ }
34
45
  //# sourceMappingURL=runBlockingShellCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../src/server/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,KAA2B,EAC3B,MAA+B,EAC/B,YAAqB,EACrB,GAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,EAAE,GAAG;QACR,GAAG;KACJ,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAA;QACnC,OAAO,CAAC,GAAG,CACT,2CAA2C,KAAK,CAAC,OAAO,kBAAkB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CACpH,CAAA;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACe,CAAA;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,QAAQ;aACf,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runBlockingShellCommand.js","sourceRoot":"","sources":["../../../../src/server/terminal/runBlockingShellCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,yDAAyD,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,aAA4B,EAC5B,KAA2B,EAC3B,MAA+B,EAC/B,YAAqB,EACrB,GAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAExC,MAAM,GAAG,GAAG,MAAM,CAAC;QACjB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;QAChD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,WAAW,EAAE,KAAK,CAAC,GAAG;QACtB,IAAI,EAAE,aAAa,CAAC,gBAAgB;KACrC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG;YACH,GAAG;SACJ,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CACT,2CAA2C,KAAK,CAAC,OAAO,kBAAkB,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CACpH,CAAA;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACe,CAAA;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,QAAQ;aACf,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,MAAM,CAAC,IAAqB;IAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAA;AACtC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { getCwd } from "./runBlockingShellCommand.js";
2
+ describe("getCwd", () => {
3
+ it("prefers cwdRelative if it is defined", () => {
4
+ // in many cases this is what the user wants to do, so prefer that
5
+ const result = getCwd({
6
+ rootPathAbsolute: "/root-absolute",
7
+ cwdRelative: "test-cwd-relative",
8
+ cwdAbsolute: "/test-cwd",
9
+ home: "/test-home",
10
+ });
11
+ expect(result).toEqual("/root-absolute/test-cwd-relative");
12
+ });
13
+ it("falls back to cwd if cwdRelative is not defined", () => {
14
+ // this is used when the user wants to use absolute paths
15
+ const result = getCwd({
16
+ rootPathAbsolute: "/root-absolute",
17
+ cwdRelative: undefined,
18
+ cwdAbsolute: "/test-cwd",
19
+ home: "/test-home",
20
+ });
21
+ expect(result).toEqual("/test-cwd");
22
+ });
23
+ it("falls back to HOME if neither cwdRelative nor cwd are defined", () => {
24
+ // if the user doesn't specify anything, we default to the home directory
25
+ // because a directory must be present when running the command
26
+ const result = getCwd({
27
+ rootPathAbsolute: "/root-absolute",
28
+ cwdRelative: undefined,
29
+ cwdAbsolute: undefined,
30
+ home: "/test-home",
31
+ });
32
+ expect(result).toEqual("/test-home");
33
+ });
34
+ });
35
+ //# sourceMappingURL=runBlockingShellCommand.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBlockingShellCommand.test.js","sourceRoot":"","sources":["../../../../src/server/terminal/runBlockingShellCommand.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,kEAAkE;QAElE,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,yDAAyD;QAEzD,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,yEAAyE;QACzE,+DAA+D;QAE/D,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}