@tui-sandbox/library 13.0.0 → 13.0.2

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 (21) hide show
  1. package/dist/src/scripts/resolveConfig.test.js +12 -6
  2. package/dist/src/scripts/resolveConfig.test.js.map +1 -1
  3. package/dist/src/server/applications/neovim/NeovimApplication.js +5 -1
  4. package/dist/src/server/applications/neovim/NeovimApplication.js.map +1 -1
  5. package/dist/src/server/applications/neovim/environment/TempDirectory.d.ts +2 -2
  6. package/dist/src/server/applications/neovim/environment/TempDirectory.js +3 -2
  7. package/dist/src/server/applications/neovim/environment/TempDirectory.js.map +1 -1
  8. package/dist/src/server/applications/neovim/environment/XdgRuntimeDirectory.test.js +9 -7
  9. package/dist/src/server/applications/neovim/environment/XdgRuntimeDirectory.test.js.map +1 -1
  10. package/dist/src/server/applications/neovim/environment/createTempDir.test.js +4 -2
  11. package/dist/src/server/applications/neovim/environment/createTempDir.test.js.map +1 -1
  12. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.d.ts +29 -0
  13. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.js +52 -0
  14. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.js.map +1 -0
  15. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.d.ts +1 -0
  16. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.js +44 -0
  17. package/dist/src/server/applications/neovim/environment/resolveMiseBinPaths.test.js.map +1 -0
  18. package/dist/src/server/applications/terminal/TerminalTestApplication.js +5 -1
  19. package/dist/src/server/applications/terminal/TerminalTestApplication.js.map +1 -1
  20. package/dist/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +1 -1
@@ -65,7 +65,7 @@ it("defaults to the default configuration if no config file is found", async ()
65
65
  it("loads a custom configuration file if it exists", async () => {
66
66
  const env_1 = { stack: [], error: void 0, hasError: false };
67
67
  try {
68
- const dir = __addDisposableResource(env_1, TempDirectory.create(), false);
68
+ const dir = __addDisposableResource(env_1, TempDirectory.create(), true);
69
69
  const filename = `${dir.path}/tui-sandbox.config.ts`;
70
70
  const customConfig = {
71
71
  directories: {
@@ -95,13 +95,15 @@ it("loads a custom configuration file if it exists", async () => {
95
95
  env_1.hasError = true;
96
96
  }
97
97
  finally {
98
- __disposeResources(env_1);
98
+ const result_1 = __disposeResources(env_1);
99
+ if (result_1)
100
+ await result_1;
99
101
  }
100
102
  });
101
103
  it("uses the default configuration file if the config has invalid contents", async () => {
102
104
  const env_2 = { stack: [], error: void 0, hasError: false };
103
105
  try {
104
- const dir = __addDisposableResource(env_2, TempDirectory.create(), false);
106
+ const dir = __addDisposableResource(env_2, TempDirectory.create(), true);
105
107
  {
106
108
  const customConfig = {
107
109
  // @ts-expect-error testing an invalid config on purpose
@@ -122,13 +124,15 @@ it("uses the default configuration file if the config has invalid contents", asy
122
124
  env_2.hasError = true;
123
125
  }
124
126
  finally {
125
- __disposeResources(env_2);
127
+ const result_2 = __disposeResources(env_2);
128
+ if (result_2)
129
+ await result_2;
126
130
  }
127
131
  });
128
132
  it("fails if the config has not been exported from the config file", async () => {
129
133
  const env_3 = { stack: [], error: void 0, hasError: false };
130
134
  try {
131
- const dir = __addDisposableResource(env_3, TempDirectory.create(), false);
135
+ const dir = __addDisposableResource(env_3, TempDirectory.create(), true);
132
136
  {
133
137
  const filename = `${dir.path}/tui-sandbox.config.ts`;
134
138
  const contents = ``;
@@ -144,7 +148,9 @@ it("fails if the config has not been exported from the config file", async () =>
144
148
  env_3.hasError = true;
145
149
  }
146
150
  finally {
147
- __disposeResources(env_3);
151
+ const result_3 = __disposeResources(env_3);
152
+ if (result_3)
153
+ await result_3;
148
154
  }
149
155
  });
150
156
  //# sourceMappingURL=resolveConfig.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveConfig.test.js","sourceRoot":"","sources":["../../../src/scripts/resolveConfig.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveConfig.test.js","sourceRoot":"","sources":["../../../src/scripts/resolveConfig.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import path, { join } from "path";
7
7
  import { debuglog } from "util";
8
8
  import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
9
9
  import { TerminalApplication } from "../../utilities/TerminalApplication.js";
10
+ import { prependMiseBinPathsToPath, resolveMiseBinPaths } from "./environment/resolveMiseBinPaths.js";
10
11
  import { resolveMiseStateDirectory } from "./environment/resolveMiseStateDirectory.js";
11
12
  import { XdgRuntimeDirectory } from "./environment/XdgRuntimeDirectory.js";
12
13
  import { connectNeovimApi } from "./NeovimJavascriptApiClient.js";
@@ -92,7 +93,7 @@ export class NeovimApplication {
92
93
  log(`🚀 Started Neovim instance ${processId} (NVIM_APPNAME: ${startArgs.NVIM_APPNAME})`);
93
94
  }
94
95
  static getEnvironmentVariables(config, testDirectory, xdgRuntimeDir, NVIM_APPNAME, additionalEnvironmentVariables) {
95
- const env = {
96
+ let env = {
96
97
  ...process.env,
97
98
  ...{
98
99
  HOME: testDirectory.rootPathAbsolute,
@@ -109,6 +110,9 @@ export class NeovimApplication {
109
110
  ...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
110
111
  MISE_OFFLINE: "1",
111
112
  });
113
+ // put mise-managed tools' real install dirs on PATH so they are
114
+ // invocable in the isolated env (shims can't re-resolve there)
115
+ env = prependMiseBinPathsToPath(env, resolveMiseBinPaths());
112
116
  }
113
117
  Object.assign(env, additionalEnvironmentVariables ?? {});
114
118
  return env;
@@ -1 +1 @@
1
- {"version":3,"file":"NeovimApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NeovimApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/neovim/NeovimApplication.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export type TestTempDirPrefix = "test-temp-dir-";
2
- export declare class TempDirectory implements Disposable {
2
+ export declare class TempDirectory implements AsyncDisposable {
3
3
  readonly path: string;
4
4
  private constructor();
5
5
  static create(prefix?: `${string}-`): TempDirectory;
6
- [Symbol.dispose](): void;
6
+ [Symbol.asyncDispose](): Promise<void>;
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import fs from "fs";
2
+ import fsPromises from "fs/promises";
2
3
  import nodePath from "path";
3
4
  export class TempDirectory {
4
5
  path;
@@ -10,8 +11,8 @@ export class TempDirectory {
10
11
  const absolutePath = nodePath.resolve(tmp);
11
12
  return new TempDirectory(absolutePath);
12
13
  }
13
- [Symbol.dispose]() {
14
- fs.rmdirSync(this.path, { recursive: true, maxRetries: 5 });
14
+ async [Symbol.asyncDispose]() {
15
+ await fsPromises.rm(this.path, { recursive: true, force: true });
15
16
  }
16
17
  }
17
18
  //# sourceMappingURL=TempDirectory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TempDirectory.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/TempDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,QAAQ,MAAM,MAAM,CAAA;AAI3B,MAAM,OAAO,aAAa;IACY;IAApC,YAAoC,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,MAAM,CAAC,MAAM,CAAC,SAAuB,gBAA4C;QACtF,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"TempDirectory.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/TempDirectory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,UAAU,MAAM,aAAa,CAAA;AACpC,OAAO,QAAQ,MAAM,MAAM,CAAA;AAI3B,MAAM,OAAO,aAAa;IACY;IAApC,YAAoC,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,MAAM,CAAC,MAAM,CAAC,SAAuB,gBAA4C;QACtF,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC;CACF"}
@@ -71,7 +71,7 @@ const symlinkFileExists = (path) => {
71
71
  it("creates a uniquely named directory under the system temp dir", async () => {
72
72
  const env_1 = { stack: [], error: void 0, hasError: false };
73
73
  try {
74
- const testDir = __addDisposableResource(env_1, newTestDir(), false);
74
+ const testDir = __addDisposableResource(env_1, newTestDir(), true);
75
75
  const dir = __addDisposableResource(env_1, await XdgRuntimeDirectory.create(testDir.path), true);
76
76
  expect(existsSync(dir.path)).toBe(true);
77
77
  expect(dir.path).toContain("tui-xdg-");
@@ -89,7 +89,7 @@ it("creates a uniquely named directory under the system temp dir", async () => {
89
89
  it("removes the directory and the symlink when disposed", async () => {
90
90
  const env_2 = { stack: [], error: void 0, hasError: false };
91
91
  try {
92
- const testDir = __addDisposableResource(env_2, newTestDir(), false);
92
+ const testDir = __addDisposableResource(env_2, newTestDir(), true);
93
93
  let createdPath;
94
94
  let createdSymlinkPath;
95
95
  {
@@ -121,7 +121,9 @@ it("removes the directory and the symlink when disposed", async () => {
121
121
  env_2.hasError = true;
122
122
  }
123
123
  finally {
124
- __disposeResources(env_2);
124
+ const result_3 = __disposeResources(env_2);
125
+ if (result_3)
126
+ await result_3;
125
127
  }
126
128
  });
127
129
  it("rejects (and does not leak a temp dir) when the symlink cannot be created", async () => {
@@ -136,7 +138,7 @@ it("stays well under the OS Unix-socket path limit (this is the reason it exists
136
138
  // `/yazi+<uid>/.dds.sock`). The full socket path must fit in `sun_path`
137
139
  // (~104 bytes on macOS, ~108 on Linux), so the directory itself must leave
138
140
  // ample room.
139
- const testDir = __addDisposableResource(env_4, newTestDir(), false);
141
+ const testDir = __addDisposableResource(env_4, newTestDir(), true);
140
142
  const dir = __addDisposableResource(env_4, await XdgRuntimeDirectory.create(testDir.path), true);
141
143
  const exampleSocketPath = join(dir.path, "yazi+1000", ".dds.sock");
142
144
  // Use the stricter macOS limit as the bound so it holds on both platforms.
@@ -147,9 +149,9 @@ it("stays well under the OS Unix-socket path limit (this is the reason it exists
147
149
  env_4.hasError = true;
148
150
  }
149
151
  finally {
150
- const result_3 = __disposeResources(env_4);
151
- if (result_3)
152
- await result_3;
152
+ const result_4 = __disposeResources(env_4);
153
+ if (result_4)
154
+ await result_4;
153
155
  }
154
156
  });
155
157
  //# sourceMappingURL=XdgRuntimeDirectory.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XdgRuntimeDirectory.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/XdgRuntimeDirectory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XdgRuntimeDirectory.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/XdgRuntimeDirectory.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AAE1D;;iFAEiF;AACjF,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE;IAClD,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;;;QAC5E,MAAY,OAAO,kCAAG,UAAU,EAAE,OAAA,CAAA;QAClC,MAAY,GAAG,kCAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAA,CAAA;QAEhE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAwC,CAAC,CAAA;;;;;;;;;;;CACrE,CAAC,CAAA;AAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;;;QACnE,MAAY,OAAO,kCAAG,UAAU,EAAE,OAAA,CAAA;QAElC,IAAI,WAAmB,CAAA;QACvB,IAAI,kBAA0B,CAAA;QAC9B,CAAC;;;gBACC,MAAY,GAAG,kCAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAA,CAAA;gBAChE,WAAW,GAAG,GAAG,CAAC,IAAI,CAAA;gBACtB,kBAAkB,GAAG,GAAG,CAAC,WAAW,CAAA;gBACpC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;SACzD;QAED,6EAA6E;QAC7E,yEAAyE;QACzE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3C,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;CAC1D,CAAC,CAAA;AAEF,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IACzF,kEAAkE;IAClE,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAA;IACxE,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;AAC5E,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;;;QAC7F,6DAA6D;QAC7D,wEAAwE;QACxE,2EAA2E;QAC3E,cAAc;QACd,MAAY,OAAO,kCAAG,UAAU,EAAE,OAAA,CAAA;QAClC,MAAY,GAAG,kCAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAA,CAAA;QAEhE,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;QAClE,2EAA2E;QAC3E,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;CACnD,CAAC,CAAA"}
@@ -60,7 +60,7 @@ it("should create a temp dir with no contents", async () => {
60
60
  const env_1 = { stack: [], error: void 0, hasError: false };
61
61
  try {
62
62
  // typically the user will want to have contents, but this should not be an error
63
- const dir = __addDisposableResource(env_1, TempDirectory.create(), false);
63
+ const dir = __addDisposableResource(env_1, TempDirectory.create(), true);
64
64
  const result = await createTempDir({
65
65
  ...createDefaultConfig("cwd", {}),
66
66
  directories: {
@@ -79,7 +79,9 @@ it("should create a temp dir with no contents", async () => {
79
79
  env_1.hasError = true;
80
80
  }
81
81
  finally {
82
- __disposeResources(env_1);
82
+ const result_1 = __disposeResources(env_1);
83
+ if (result_1)
84
+ await result_1;
83
85
  }
84
86
  });
85
87
  //# sourceMappingURL=createTempDir.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTempDir.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/createTempDir.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAEpD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;;QACzD,iFAAiF;QACjF,MAAM,GAAG,kCAAG,aAAa,CAAC,MAAM,EAAE,QAAA,CAAA;QAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC;YACjC,WAAW,EAAE;gBACX,mBAAmB,EAAE,GAAG,CAAC,IAAI;gBAC7B,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAC7D,iBAAiB,EAAE,QAAQ;aAC5B;SACsC,CAAC,CAAA;QAE1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAA4C,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACtG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,QAAQ,CAAC,UAAiC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;;;;;;;;;CACpG,CAAC,CAAA"}
1
+ {"version":3,"file":"createTempDir.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/createTempDir.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAEpD,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;;QACzD,iFAAiF;QACjF,MAAY,GAAG,kCAAG,aAAa,CAAC,MAAM,EAAE,OAAA,CAAA;QACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC;YACjC,WAAW,EAAE;gBACX,mBAAmB,EAAE,GAAG,CAAC,IAAI;gBAC7B,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC;gBAC7D,iBAAiB,EAAE,QAAQ;aAC5B;SACsC,CAAC,CAAA;QAE1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,gBAA4C,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACtG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,QAAQ,CAAC,UAAiC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;;;;;;;;;;;CACpG,CAAC,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Resolves the bin directories of the currently active, installed mise tools.
3
+ *
4
+ * IMPORTANT: resolve this from the *real* server environment, never from the
5
+ * isolated terminal env.
6
+ *
7
+ * NOTE: the selection of tools is assumed stable for the lifetime of the
8
+ * server process - if you change the mise toolset, you must restart the server
9
+ * to pick up new bin paths.
10
+ *
11
+ * Issue:
12
+ *
13
+ * The test terminal runs in a lightly-isolated environment, where a mise
14
+ * *shim* cannot reliably re-resolve a tool -> version -> backend, so invoking
15
+ * e.g. `lazygit` through its shim fails with "lazygit is not a valid shim" /
16
+ * "No version is set for shim".
17
+ *
18
+ * Solution:
19
+ *
20
+ * Put the tools' real install dirs directly on `$PATH` so they become plain
21
+ * executables, working around the issue.
22
+ */
23
+ export type RunMiseBinPaths = (cwd: string, environment: NodeJS.ProcessEnv) => string;
24
+ /** Parses the newline-separated output of `mise bin-paths`. */
25
+ export declare const parseMiseBinPaths: (stdout: string) => string[];
26
+ export declare const resolveMiseBinPaths: (cwd?: string, environment?: NodeJS.ProcessEnv, run?: RunMiseBinPaths) => string[];
27
+ /** @private Test-only: forget memoized results so each test resolves fresh. */
28
+ export declare const clearMiseBinPathsCache: () => void;
29
+ export declare const prependMiseBinPathsToPath: (env: Record<string, string>, binPaths: string[]) => Record<string, string>;
@@ -0,0 +1,52 @@
1
+ import { execFileSync } from "child_process";
2
+ import path from "path";
3
+ import { debuglog } from "util";
4
+ const log = debuglog("tui-sandbox.mise");
5
+ const runMiseBinPaths = (cwd, environment) => execFileSync("mise", ["bin-paths"], {
6
+ cwd,
7
+ env: environment,
8
+ encoding: "utf8",
9
+ stdio: ["ignore", "pipe", "pipe"],
10
+ });
11
+ /** Parses the newline-separated output of `mise bin-paths`. */
12
+ export const parseMiseBinPaths = (stdout) => stdout
13
+ .split("\n")
14
+ .map(line => line.trim())
15
+ .filter(line => line.length > 0);
16
+ // `mise bin-paths` is stable for the lifetime of the server process. Memoize
17
+ // per working directory to avoid shelling out when starting every test.
18
+ const cache = new Map();
19
+ export const resolveMiseBinPaths = (cwd = process.cwd(), environment = process.env, run = runMiseBinPaths) => {
20
+ const cached = cache.get(cwd);
21
+ if (cached)
22
+ return cached;
23
+ let paths;
24
+ try {
25
+ paths = run(cwd, environment);
26
+ }
27
+ catch (err) {
28
+ // Support cases where mise is used for local development but not installed
29
+ // in CI.
30
+ log(`Failed to resolve mise bin paths from ${cwd}`, err);
31
+ console.warn(`Failed to resolve mise bin paths from ${cwd}: ${JSON.stringify(err)}`);
32
+ paths = "";
33
+ }
34
+ const binPaths = parseMiseBinPaths(paths);
35
+ log(`Resolved ${binPaths.length} mise bin path(s) from ${cwd}`);
36
+ cache.set(cwd, binPaths);
37
+ return binPaths;
38
+ };
39
+ /** @private Test-only: forget memoized results so each test resolves fresh. */
40
+ export const clearMiseBinPathsCache = () => {
41
+ cache.clear();
42
+ };
43
+ export const prependMiseBinPathsToPath = (env, binPaths) => {
44
+ if (binPaths.length === 0)
45
+ return env;
46
+ const existing = env["PATH"] ?? "";
47
+ return {
48
+ ...env,
49
+ PATH: [...binPaths, ...(existing ? [existing] : [])].join(path.delimiter),
50
+ };
51
+ };
52
+ //# sourceMappingURL=resolveMiseBinPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMiseBinPaths.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/resolveMiseBinPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AA0BxC,MAAM,eAAe,GAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAC5D,YAAY,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;IAClC,GAAG;IACH,GAAG,EAAE,WAAW;IAChB,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;CAClC,CAAC,CAAA;AAEJ,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAY,EAAE,CAC5D,MAAM;KACH,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAEpC,6EAA6E;AAC7E,wEAAwE;AACxE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAA;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,cAAiC,OAAO,CAAC,GAAG,EAC5C,MAAuB,eAAe,EAC5B,EAAE;IACZ,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC;QACH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2EAA2E;QAC3E,SAAS;QACT,GAAG,CAAC,yCAAyC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,yCAAyC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpF,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC;IACD,MAAM,QAAQ,GAAa,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACnD,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC,CAAA;IAC/D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACxB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAS,EAAE;IAC/C,KAAK,CAAC,KAAK,EAAE,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAA2B,EAAE,QAAkB,EAA0B,EAAE;IACnH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAClC,OAAO;QACL,GAAG,GAAG;QACN,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;KAC1E,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { afterEach, expect, it } from "vitest";
2
+ import { clearMiseBinPathsCache, parseMiseBinPaths, prependMiseBinPathsToPath, resolveMiseBinPaths, } from "./resolveMiseBinPaths.js";
3
+ afterEach(() => {
4
+ clearMiseBinPathsCache();
5
+ });
6
+ it("parses newline-separated bin paths and ignores blank lines", () => {
7
+ expect(parseMiseBinPaths("/a/bin\n/b/bin\n\n /c/bin \n")).toEqual(["/a/bin", "/b/bin", "/c/bin"]);
8
+ });
9
+ it("resolves the parsed output of `mise bin-paths`", () => {
10
+ const binPaths = resolveMiseBinPaths("/repo", {}, () => "/a/bin\n/b/bin\n");
11
+ expect(binPaths).toEqual(["/a/bin", "/b/bin"]);
12
+ });
13
+ it("memoizes per working directory (only shells out once)", () => {
14
+ let calls = 0;
15
+ const run = () => {
16
+ calls++;
17
+ return "/a/bin\n";
18
+ };
19
+ resolveMiseBinPaths("/repo", {}, run);
20
+ resolveMiseBinPaths("/repo", {}, run);
21
+ expect(calls).toBe(1);
22
+ });
23
+ it("no-ops when mise is not installed", () => {
24
+ // Support cases where mise is used for local development but not installed
25
+ // in CI.
26
+ expect(resolveMiseBinPaths("/repo", {}, () => {
27
+ throw Object.assign(new Error("(test) spawn mise ENOENT"), { code: "ENOENT" });
28
+ })).toEqual([]);
29
+ });
30
+ it("prepends bin paths so mise-managed tools win over system copies", () => {
31
+ const env = prependMiseBinPathsToPath({ PATH: "/usr/bin:/bin" }, ["/mise/lazygit/bin", "/mise/delta/bin"]);
32
+ expect(env["PATH"]).toBe("/mise/lazygit/bin:/mise/delta/bin:/usr/bin:/bin");
33
+ });
34
+ it("leaves the env untouched when there are no bin paths", () => {
35
+ const original = { PATH: "/usr/bin", HOME: "/home/user" };
36
+ expect(prependMiseBinPathsToPath(original, [])).toEqual(original);
37
+ });
38
+ it("handles a missing PATH", () => {
39
+ expect(prependMiseBinPathsToPath({ HOME: "/home/user" }, ["/mise/lazygit/bin"])).toEqual({
40
+ HOME: "/home/user",
41
+ PATH: "/mise/lazygit/bin",
42
+ });
43
+ });
44
+ //# sourceMappingURL=resolveMiseBinPaths.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveMiseBinPaths.test.js","sourceRoot":"","sources":["../../../../../../src/server/applications/neovim/environment/resolveMiseBinPaths.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE9C,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,SAAS,CAAC,GAAG,EAAE;IACb,sBAAsB,EAAE,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACpE,MAAM,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AACrG,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;IACxD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAA;IAC3E,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAChD,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;IAC/D,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,GAAG,GAAG,GAAW,EAAE;QACvB,KAAK,EAAE,CAAA;QACP,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IACD,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACrC,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,2EAA2E;IAC3E,SAAS;IACT,MAAM,CACJ,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IAChF,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACf,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;IACzE,MAAM,GAAG,GAAG,yBAAyB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAC1G,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;IAC9D,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IACzD,MAAM,CAAC,yBAAyB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACnE,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAChC,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,mBAAmB;KAC1B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -5,6 +5,7 @@ import { join } from "path";
5
5
  import { debuglog } from "util";
6
6
  import { DisposableSingleApplication } from "../../utilities/DisposableSingleApplication.js";
7
7
  import { TerminalApplication } from "../../utilities/TerminalApplication.js";
8
+ import { prependMiseBinPathsToPath, resolveMiseBinPaths } from "../neovim/environment/resolveMiseBinPaths.js";
8
9
  import { resolveMiseStateDirectory } from "../neovim/environment/resolveMiseStateDirectory.js";
9
10
  import { XdgRuntimeDirectory } from "../neovim/environment/XdgRuntimeDirectory.js";
10
11
  const log = debuglog("tui-sandbox.terminal.TerminalTestApplication");
@@ -48,7 +49,7 @@ export default class TerminalTestApplication {
48
49
  }
49
50
  getEnvironmentVariables(config, testDirectory, xdgRuntimeDir, additionalEnvironmentVariables) {
50
51
  const miseStateDirectory = resolveMiseStateDirectory();
51
- const env = {
52
+ let env = {
52
53
  ...process.env,
53
54
  HOME: testDirectory.rootPathAbsolute,
54
55
  XDG_CONFIG_HOME: join(testDirectory.rootPathAbsolute, ".config"),
@@ -61,6 +62,9 @@ export default class TerminalTestApplication {
61
62
  ...(miseStateDirectory ? { MISE_STATE_DIR: miseStateDirectory } : {}),
62
63
  MISE_OFFLINE: "1",
63
64
  });
65
+ // put mise-managed tools' real install dirs on PATH so they are
66
+ // invocable in the isolated env (shims can't re-resolve there)
67
+ env = prependMiseBinPathsToPath(env, resolveMiseBinPaths());
64
68
  }
65
69
  Object.assign(env, additionalEnvironmentVariables ?? {});
66
70
  return env;
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalTestApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/TerminalTestApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TerminalTestApplication.js","sourceRoot":"","sources":["../../../../../src/server/applications/terminal/TerminalTestApplication.ts"],"names":[],"mappings":"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"}