@tui-sandbox/library 11.7.1 → 11.8.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 (78) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/browser/assets/{index-CQ6TDc4S.js → index-CSykLFiU.js} +1 -1
  3. package/dist/browser/index.html +1 -1
  4. package/dist/src/scripts/commands/commandTuiNeovimExec.js +1 -1
  5. package/dist/src/scripts/commands/commandTuiNeovimExec.js.map +1 -1
  6. package/dist/src/scripts/commands/commandTuiNeovimPrepare.js +1 -1
  7. package/dist/src/scripts/commands/commandTuiNeovimPrepare.js.map +1 -1
  8. package/dist/src/scripts/commands/commandTuiStart.js +1 -1
  9. package/dist/src/scripts/commands/commandTuiStart.js.map +1 -1
  10. package/dist/src/scripts/resolveConfig.test.js +1 -0
  11. package/dist/src/scripts/resolveConfig.test.js.map +1 -1
  12. package/dist/src/server/applications/neovim/api.d.ts +3 -3
  13. package/dist/src/server/applications/neovim/api.js +2 -2
  14. package/dist/src/server/applications/neovim/api.js.map +1 -1
  15. package/dist/src/server/applications/neovim/environment/createTempDir.d.ts +2 -2
  16. package/dist/src/server/applications/neovim/environment/createTempDir.js +6 -6
  17. package/dist/src/server/applications/neovim/environment/createTempDir.js.map +1 -1
  18. package/dist/src/server/applications/neovim/environment/createTempDir.test.js +6 -2
  19. package/dist/src/server/applications/neovim/environment/createTempDir.test.js.map +1 -1
  20. package/dist/src/server/applications/neovim/neovimRouter.d.ts +2 -2
  21. package/dist/src/server/applications/neovim/neovimRouter.js +7 -4
  22. package/dist/src/server/applications/neovim/neovimRouter.js.map +1 -1
  23. package/dist/src/server/applications/neovim/prepareNewTestDirectory.d.ts +2 -2
  24. package/dist/src/server/applications/neovim/prepareNewTestDirectory.js +4 -4
  25. package/dist/src/server/applications/neovim/prepareNewTestDirectory.js.map +1 -1
  26. package/dist/src/server/applications/neovim/prepareNewTestDirectory.test.js +6 -2
  27. package/dist/src/server/applications/neovim/prepareNewTestDirectory.test.js.map +1 -1
  28. package/dist/src/server/applications/terminal/api.d.ts +2 -2
  29. package/dist/src/server/applications/terminal/api.js.map +1 -1
  30. package/dist/src/server/applications/terminal/terminalRouter.d.ts +2 -2
  31. package/dist/src/server/applications/terminal/terminalRouter.js +1 -1
  32. package/dist/src/server/applications/terminal/terminalRouter.js.map +1 -1
  33. package/dist/src/server/config.js +14 -7
  34. package/dist/src/server/config.js.map +1 -1
  35. package/dist/src/server/config.test.d.ts +1 -0
  36. package/dist/src/server/config.test.js +7 -0
  37. package/dist/src/server/config.test.js.map +1 -0
  38. package/dist/src/server/cypress-support/contents.js +2 -1
  39. package/dist/src/server/cypress-support/contents.js.map +1 -1
  40. package/dist/src/server/dirtree/index.d.ts +3 -2
  41. package/dist/src/server/dirtree/index.js +11 -5
  42. package/dist/src/server/dirtree/index.js.map +1 -1
  43. package/dist/src/server/dirtree/index.test.js +110 -4
  44. package/dist/src/server/dirtree/index.test.js.map +1 -1
  45. package/dist/src/server/server.d.ts +2 -2
  46. package/dist/src/server/server.js +1 -1
  47. package/dist/src/server/server.js.map +1 -1
  48. package/dist/src/server/updateTestdirectorySchemaFile.d.ts +15 -1
  49. package/dist/src/server/updateTestdirectorySchemaFile.js +13 -4
  50. package/dist/src/server/updateTestdirectorySchemaFile.js.map +1 -1
  51. package/dist/src/server/updateTestdirectorySchemaFile.test.js +8 -4
  52. package/dist/src/server/updateTestdirectorySchemaFile.test.js.map +1 -1
  53. package/dist/src/server/utilities/Lazy.d.ts +1 -0
  54. package/dist/src/server/utilities/Lazy.js +3 -0
  55. package/dist/src/server/utilities/Lazy.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +4 -4
  58. package/src/scripts/commands/commandTuiNeovimExec.ts +1 -1
  59. package/src/scripts/commands/commandTuiNeovimPrepare.ts +1 -5
  60. package/src/scripts/commands/commandTuiStart.ts +1 -1
  61. package/src/scripts/resolveConfig.test.ts +1 -0
  62. package/src/server/applications/neovim/api.ts +4 -8
  63. package/src/server/applications/neovim/environment/createTempDir.test.ts +9 -3
  64. package/src/server/applications/neovim/environment/createTempDir.ts +8 -8
  65. package/src/server/applications/neovim/neovimRouter.ts +9 -6
  66. package/src/server/applications/neovim/prepareNewTestDirectory.test.ts +9 -3
  67. package/src/server/applications/neovim/prepareNewTestDirectory.ts +6 -6
  68. package/src/server/applications/terminal/api.ts +2 -2
  69. package/src/server/applications/terminal/terminalRouter.ts +3 -3
  70. package/src/server/config.test.ts +7 -0
  71. package/src/server/config.ts +9 -3
  72. package/src/server/cypress-support/contents.ts +2 -1
  73. package/src/server/dirtree/index.test.ts +116 -4
  74. package/src/server/dirtree/index.ts +19 -5
  75. package/src/server/server.ts +3 -4
  76. package/src/server/updateTestdirectorySchemaFile.test.ts +12 -7
  77. package/src/server/updateTestdirectorySchemaFile.ts +29 -7
  78. package/src/server/utilities/Lazy.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import assert from "assert";
2
2
  import path from "path";
3
3
  import { describe, expect, it } from "vitest";
4
+ import { createDefaultConfig } from "../config.js";
4
5
  import { Lazy } from "../utilities/Lazy.js";
5
6
  import { buildSchemaForDirectoryTree, getDirectoryTree } from "./index.js";
6
7
  describe("dirtree", () => {
@@ -13,7 +14,15 @@ describe("dirtree", () => {
13
14
  expect(result[0].relativePath).toBeTruthy();
14
15
  });
15
16
  it("should be able to build a typescript type for the tree", async () => {
16
- const result = await buildSchemaForDirectoryTree(output.get(), "MyDirectoryTree");
17
+ const config = {
18
+ ...createDefaultConfig("/my/root/path", {}),
19
+ integrations: {
20
+ neovim: {
21
+ NVIM_APPNAMEs: ["nvim", "nvim_alt"],
22
+ },
23
+ },
24
+ };
25
+ const result = await buildSchemaForDirectoryTree(output.get(), "MyDirectoryTree", config);
17
26
  expect(result).toMatchInlineSnapshot(`
18
27
  "
19
28
  // Note: This file is autogenerated. Do not edit it directly.
@@ -194,12 +203,14 @@ describe("dirtree", () => {
194
203
  "symlink-test",
195
204
  "."
196
205
  ])
197
- export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>"
206
+ export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>
207
+ export type MyNeovimAppName = "nvim" | "nvim_alt""
198
208
  `);
199
209
  });
200
210
  it("creates an empty schema when the directory cannot be read", async () => {
211
+ const config = createDefaultConfig("/my/root/path", {});
201
212
  const tree = getDirectoryTree("nonexistent");
202
- const result = await buildSchemaForDirectoryTree(tree, "MyDirectoryTree");
213
+ const result = await buildSchemaForDirectoryTree(tree, "MyDirectoryTree", config);
203
214
  expect(result).toMatchInlineSnapshot(`
204
215
  "
205
216
  // Note: This file is autogenerated. Do not edit it directly.
@@ -226,8 +237,103 @@ describe("dirtree", () => {
226
237
  export type MyDirectoryTree = MyDirectoryTreeContentsSchemaType["contents"]
227
238
 
228
239
  export const testDirectoryFiles = z.enum([])
229
- export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>"
240
+ export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>
241
+ export type MyNeovimAppName = "nvim""
230
242
  `);
231
243
  });
244
+ describe("provides type-safe access to NVIM_APPNAMEs", () => {
245
+ // the user can configure the NVIM_APPNAMEs they are using in their
246
+ // configuration. These should be available for them in a type-safe manner so
247
+ // that they have the least possible friction when coding.
248
+ //
249
+ const smallDirectory = path.resolve(__dirname, "../../../../integration-tests/test-environment/other-subdirectory/");
250
+ it("when there is a single name", async () => {
251
+ const config = createDefaultConfig("/my/root/path", {});
252
+ assert(config.integrations.neovim.NVIM_APPNAMEs.length === 1);
253
+ const tinytree = getDirectoryTree(smallDirectory);
254
+ const result = await buildSchemaForDirectoryTree(tinytree, "MyDirectoryTree", config);
255
+ expect(result).toMatchInlineSnapshot(`
256
+ "
257
+ // Note: This file is autogenerated. Do not edit it directly.
258
+ //
259
+ // Describes the contents of the test directory, which is a blueprint for
260
+ // files and directories. Tests can create a unique, safe environment for
261
+ // interacting with the contents of such a directory.
262
+ //
263
+ // Having strong typing for the test directory contents ensures that tests can
264
+ // be written with confidence that the files and directories they expect are
265
+ // actually found. Otherwise the tests are brittle and can break easily.
266
+
267
+ import * as z from "zod"
268
+
269
+ export const MyDirectoryTreeSchema = z.object({
270
+ name: z.literal("other-subdirectory/"),
271
+ type: z.literal("directory"),
272
+ contents: z.object({
273
+ "other-sub-file.txt": z.object({ name: z.literal("other-sub-file.txt"), type: z.literal("file") }),
274
+ }),
275
+ })
276
+
277
+ export const MyDirectoryTreeContentsSchema = MyDirectoryTreeSchema.shape.contents
278
+ export type MyDirectoryTreeContentsSchemaType = z.infer<typeof MyDirectoryTreeSchema>
279
+
280
+ export type MyDirectoryTree = MyDirectoryTreeContentsSchemaType["contents"]
281
+
282
+ export const testDirectoryFiles = z.enum([
283
+ "other-sub-file.txt",
284
+ "."
285
+ ])
286
+ export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>
287
+ export type MyNeovimAppName = "nvim""
288
+ `);
289
+ // 👆🏻 from the default config
290
+ });
291
+ it("when there are multiple names", async () => {
292
+ const config = {
293
+ ...createDefaultConfig("/my/root/path", {}),
294
+ integrations: {
295
+ neovim: {
296
+ NVIM_APPNAMEs: ["nvim", "nvim_alt"],
297
+ },
298
+ },
299
+ };
300
+ const tinytree = getDirectoryTree(smallDirectory);
301
+ const result = await buildSchemaForDirectoryTree(tinytree, "MyDirectoryTree", config);
302
+ expect(result).toMatchInlineSnapshot(`
303
+ "
304
+ // Note: This file is autogenerated. Do not edit it directly.
305
+ //
306
+ // Describes the contents of the test directory, which is a blueprint for
307
+ // files and directories. Tests can create a unique, safe environment for
308
+ // interacting with the contents of such a directory.
309
+ //
310
+ // Having strong typing for the test directory contents ensures that tests can
311
+ // be written with confidence that the files and directories they expect are
312
+ // actually found. Otherwise the tests are brittle and can break easily.
313
+
314
+ import * as z from "zod"
315
+
316
+ export const MyDirectoryTreeSchema = z.object({
317
+ name: z.literal("other-subdirectory/"),
318
+ type: z.literal("directory"),
319
+ contents: z.object({
320
+ "other-sub-file.txt": z.object({ name: z.literal("other-sub-file.txt"), type: z.literal("file") }),
321
+ }),
322
+ })
323
+
324
+ export const MyDirectoryTreeContentsSchema = MyDirectoryTreeSchema.shape.contents
325
+ export type MyDirectoryTreeContentsSchemaType = z.infer<typeof MyDirectoryTreeSchema>
326
+
327
+ export type MyDirectoryTree = MyDirectoryTreeContentsSchemaType["contents"]
328
+
329
+ export const testDirectoryFiles = z.enum([
330
+ "other-sub-file.txt",
331
+ "."
332
+ ])
333
+ export type MyTestDirectoryFile = z.infer<typeof testDirectoryFiles>
334
+ export type MyNeovimAppName = "nvim" | "nvim_alt""
335
+ `);
336
+ });
337
+ });
232
338
  });
233
339
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE1E,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAC3B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CACxG,CAAA;IAED,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAA;QAEpC,MAAM,CAAC,MAAM,CAAC,CAAA;QACd,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAEjF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqLpC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QACzE,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BpC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/server/dirtree/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { inferRouterInputs } from "@trpc/server";
2
- import type { DirectoriesConfig, TestServerConfig } from "./updateTestdirectorySchemaFile.js";
2
+ import type { TestServerConfig } from "./updateTestdirectorySchemaFile.js";
3
3
  /** @private */
4
- export declare function createAppRouter(config: DirectoriesConfig): Promise<import("@trpc/server").TRPCBuiltRouter<{
4
+ export declare function createAppRouter(config: TestServerConfig): Promise<import("@trpc/server").TRPCBuiltRouter<{
5
5
  ctx: object;
6
6
  meta: object;
7
7
  errorShape: import("@trpc/server").TRPCDefaultErrorShape;
@@ -16,7 +16,7 @@ export async function startTestServer(config) {
16
16
  const testServer = new TestServer({
17
17
  port: config.port,
18
18
  });
19
- const appRouter = await createAppRouter(config.directories);
19
+ const appRouter = await createAppRouter(config);
20
20
  await testServer.startAndRun(appRouter);
21
21
  }
22
22
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,eAAe;AACf,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAyB;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC;QAEtC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACnC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE3D,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,eAAe;AACf,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACnC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAwB;IAC5D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QAChD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
@@ -1,12 +1,26 @@
1
1
  import * as z from "zod";
2
2
  export type DirectoriesConfig = TestServerConfig["directories"];
3
3
  export type TestServerConfig = z.output<typeof testServerConfigSchema>;
4
+ export type Dictionary = Record<string, string>;
5
+ export type CustomizeEnv = (env: Dictionary) => Promise<Dictionary>;
6
+ export type CustomizeMiseEnvironmentVariables = (env: Dictionary, defaultImplementation: CustomizeEnv) => Promise<Record<string, string>>;
7
+ export type NeovimIntegrationDefaultAppName = "nvim";
8
+ declare const neovimIntegration: z.ZodObject<{
9
+ NVIM_APPNAMEs: z.ZodDefault<z.ZodArray<z.ZodString>>;
10
+ }, z.core.$strict>;
11
+ export type NeovimIntegrationConfig = z.output<typeof neovimIntegration>;
4
12
  export declare const testServerConfigSchema: z.ZodObject<{
5
13
  directories: z.ZodObject<{
6
14
  testEnvironmentPath: z.ZodString;
7
15
  outputFilePath: z.ZodString;
8
16
  }, z.core.$strip>;
9
17
  port: z.ZodNumber;
18
+ integrations: z.ZodObject<{
19
+ neovim: z.ZodObject<{
20
+ NVIM_APPNAMEs: z.ZodDefault<z.ZodArray<z.ZodString>>;
21
+ }, z.core.$strict>;
22
+ }, z.core.$strict>;
10
23
  }, z.core.$strict>;
11
24
  export type UpdateTestdirectorySchemaFileResult = "updated" | "did-nothing";
12
- export declare function updateTestdirectorySchemaFile({ testEnvironmentPath, outputFilePath, }: DirectoriesConfig): Promise<UpdateTestdirectorySchemaFileResult>;
25
+ export declare function updateTestdirectorySchemaFile(config: TestServerConfig): Promise<UpdateTestdirectorySchemaFileResult>;
26
+ export {};
@@ -3,18 +3,27 @@ import { debuglog } from "util";
3
3
  import * as z from "zod";
4
4
  import { buildTestDirectorySchema } from "./dirtree/index.js";
5
5
  const log = debuglog(`tui-sandbox.${updateTestdirectorySchemaFile.name}`);
6
+ const neovimIntegration = z.strictObject({
7
+ NVIM_APPNAMEs: z
8
+ .array(z.string())
9
+ .min(1)
10
+ .default(["nvim"]),
11
+ });
6
12
  export const testServerConfigSchema = z.strictObject({
7
13
  directories: z.object({
8
14
  testEnvironmentPath: z.string(),
9
15
  outputFilePath: z.string(),
10
16
  }),
11
17
  port: z.number().int().min(1).max(65535),
18
+ integrations: z.strictObject({
19
+ neovim: neovimIntegration,
20
+ }),
12
21
  });
13
- export async function updateTestdirectorySchemaFile({ testEnvironmentPath, outputFilePath, }) {
14
- const newSchema = await buildTestDirectorySchema(testEnvironmentPath);
22
+ export async function updateTestdirectorySchemaFile(config) {
23
+ const newSchema = await buildTestDirectorySchema(config);
15
24
  let oldSchema = "";
16
25
  try {
17
- oldSchema = readFileSync(outputFilePath, "utf-8");
26
+ oldSchema = readFileSync(config.directories.outputFilePath, "utf-8");
18
27
  }
19
28
  catch (error) {
20
29
  log("No existing schema file found, creating a new one");
@@ -23,7 +32,7 @@ export async function updateTestdirectorySchemaFile({ testEnvironmentPath, outpu
23
32
  // it's important to not write the file if the schema hasn't changed
24
33
  // because file watchers will trigger on file changes and we don't want to
25
34
  // trigger a build if the schema hasn't changed
26
- writeFileSync(outputFilePath, newSchema);
35
+ writeFileSync(config.directories.outputFilePath, newSchema);
27
36
  return "updated";
28
37
  }
29
38
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAA;AAKzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;KAC3B,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;CACzC,CAAC,CAAA;AAIF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,EAClD,mBAAmB,EACnB,cAAc,GACI;IAClB,MAAM,SAAS,GAAW,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,CAAA;IAC7E,IAAI,SAAS,GAAG,EAAE,CAAA;IAElB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"updateTestdirectorySchemaFile.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAA;AAgBzE,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAC;IACvC,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,MAAgD,CAAC,CAAC;CAC/D,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,YAAY,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;KAC3B,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC;QAC3B,MAAM,EAAE,iBAAiB;KAC1B,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAAwB;IAExB,MAAM,SAAS,GAAW,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAChE,IAAI,SAAS,GAAG,EAAE,CAAA;IAElB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,0EAA0E;QAC1E,+CAA+C;QAC/C,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAA;IACtB,CAAC;AACH,CAAC"}
@@ -15,8 +15,10 @@ describe("when the schema has not changed", () => {
15
15
  mock.buildTestDirectorySchema.mockResolvedValue("schema");
16
16
  mock.readFileSync.mockImplementation(() => "schema");
17
17
  const result = await updateTestdirectorySchemaFile({
18
- testEnvironmentPath: "path",
19
- outputFilePath: "path",
18
+ directories: {
19
+ testEnvironmentPath: "path",
20
+ outputFilePath: "path",
21
+ },
20
22
  });
21
23
  expect(result).toBe("did-nothing");
22
24
  });
@@ -26,8 +28,10 @@ describe("when the schema has changed", () => {
26
28
  mock.buildTestDirectorySchema.mockResolvedValue("new schema");
27
29
  mock.readFileSync.mockImplementation(() => "old schema");
28
30
  const result = await updateTestdirectorySchemaFile({
29
- testEnvironmentPath: "path",
30
- outputFilePath: "path",
31
+ directories: {
32
+ testEnvironmentPath: "path",
33
+ outputFilePath: "path",
34
+ },
31
35
  });
32
36
  expect(result).toBe("updated");
33
37
  expect(mock.writeFileSync).toHaveBeenCalledWith("path", "new schema");
@@ -1 +1 @@
1
- {"version":3,"file":"updateTestdirectorySchemaFile.test.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACb,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACpB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAEpD,MAAM,IAAI,GAAG;IACX,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACvC,wBAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;CAC9D,CAAA;AAED,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;QAEpD,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC;YACjD,mBAAmB,EAAE,MAAM;YAC3B,cAAc,EAAE,MAAM;SACvB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAA2D,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC7D,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC;YACjD,mBAAmB,EAAE,MAAM;YAC3B,cAAc,EAAE,MAAM;SACvB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAuD,CAAC,CAAA;QAC5E,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"updateTestdirectorySchemaFile.test.js","sourceRoot":"","sources":["../../../src/server/updateTestdirectorySchemaFile.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAElF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACb,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACpB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAEpD,MAAM,IAAI,GAAG;IACX,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACvC,wBAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;CAC9D,CAAA;AAED,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;QAEpD,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC;YACjD,WAAW,EAAE;gBACX,mBAAmB,EAAE,MAAM;gBAC3B,cAAc,EAAE,MAAM;aACvB;SAC0D,CAAC,CAAA;QAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAA2D,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC7D,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC;YACjD,WAAW,EAAE;gBACX,mBAAmB,EAAE,MAAM;gBAC3B,cAAc,EAAE,MAAM;aACvB;SAC0D,CAAC,CAAA;QAE9D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAuD,CAAC,CAAA;QAC5E,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -3,4 +3,5 @@ export declare class Lazy<T> {
3
3
  private value?;
4
4
  constructor(factory: () => T);
5
5
  get(): T;
6
+ set(value: T): void;
6
7
  }
@@ -10,5 +10,8 @@ export class Lazy {
10
10
  }
11
11
  return this.value;
12
12
  }
13
+ set(value) {
14
+ this.value = value;
15
+ }
13
16
  }
14
17
  //# sourceMappingURL=Lazy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../../src/server/utilities/Lazy.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAGc;IAFrB,KAAK,CAAI;IAEjB,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../../../../src/server/utilities/Lazy.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAGc;IAFrB,KAAK,CAAI;IAEjB,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF"}