@procedures/vite 0.0.0-stage → 0.2.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 (60) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +21 -0
  3. package/README.md +53 -2
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/index.d.ts +8 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +8 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/module.d.ts +19 -0
  10. package/dist/module.d.ts.map +1 -0
  11. package/dist/module.js +85 -0
  12. package/dist/module.js.map +1 -0
  13. package/dist/procedures/vite/build.d.ts +8 -0
  14. package/dist/procedures/vite/build.d.ts.map +1 -0
  15. package/dist/procedures/vite/build.js +39 -0
  16. package/dist/procedures/vite/build.js.map +1 -0
  17. package/dist/procedures/vite/dev.d.ts +6 -0
  18. package/dist/procedures/vite/dev.d.ts.map +1 -0
  19. package/dist/procedures/vite/dev.js +18 -0
  20. package/dist/procedures/vite/dev.js.map +1 -0
  21. package/dist/procedures/vite/index.d.ts +5 -0
  22. package/dist/procedures/vite/index.d.ts.map +1 -0
  23. package/dist/procedures/vite/index.js +5 -0
  24. package/dist/procedures/vite/index.js.map +1 -0
  25. package/dist/procedures/vite/preview.d.ts +6 -0
  26. package/dist/procedures/vite/preview.d.ts.map +1 -0
  27. package/dist/procedures/vite/preview.js +13 -0
  28. package/dist/procedures/vite/preview.js.map +1 -0
  29. package/dist/procedures/vite/stop.d.ts +6 -0
  30. package/dist/procedures/vite/stop.d.ts.map +1 -0
  31. package/dist/procedures/vite/stop.js +10 -0
  32. package/dist/procedures/vite/stop.js.map +1 -0
  33. package/dist/register.d.ts +7 -0
  34. package/dist/register.d.ts.map +1 -0
  35. package/dist/register.js +9 -0
  36. package/dist/register.js.map +1 -0
  37. package/dist/server-manager.d.ts +28 -0
  38. package/dist/server-manager.d.ts.map +1 -0
  39. package/dist/server-manager.js +51 -0
  40. package/dist/server-manager.js.map +1 -0
  41. package/dist/types.d.ts +57 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +61 -0
  44. package/dist/types.js.map +1 -0
  45. package/dist/vite-cli.d.ts +11 -0
  46. package/dist/vite-cli.d.ts.map +1 -0
  47. package/dist/vite-cli.js +34 -0
  48. package/dist/vite-cli.js.map +1 -0
  49. package/package.json +77 -3
  50. package/src/index.ts +9 -0
  51. package/src/module.ts +109 -0
  52. package/src/procedures/vite/build.ts +44 -0
  53. package/src/procedures/vite/dev.ts +19 -0
  54. package/src/procedures/vite/index.ts +4 -0
  55. package/src/procedures/vite/preview.ts +16 -0
  56. package/src/procedures/vite/stop.ts +12 -0
  57. package/src/register.ts +11 -0
  58. package/src/server-manager.ts +61 -0
  59. package/src/types.ts +127 -0
  60. package/src/vite-cli.ts +35 -0
package/dist/module.js ADDED
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Module (no side effects): the procedures of this package as data, for `createRegistry()`.
3
+ *
4
+ * Procedure Registration for Vite dev server management
5
+ */
6
+ import { createProcedure, zodAdapter, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
7
+ import { viteDev } from "./procedures/vite/dev.js";
8
+ import { viteBuild } from "./procedures/vite/build.js";
9
+ import { vitePreview } from "./procedures/vite/preview.js";
10
+ import { viteStop } from "./procedures/vite/stop.js";
11
+ import { ViteDevInputSchema, ViteBuildInputSchema, VitePreviewInputSchema, ViteStopInputSchema, ViteDevOutputSchema, ViteBuildOutputSchema, VitePreviewOutputSchema, ViteStopOutputSchema, } from "./types.js";
12
+ const viteDevProcedure = createProcedure()
13
+ .path(["vite", "dev"])
14
+ .input(zodAdapter(ViteDevInputSchema))
15
+ .output(zodAdapter(ViteDevOutputSchema))
16
+ .meta({
17
+ description: "Start Vite dev server",
18
+ // vite runs the config and the plugins of the project, and the server listens on a port
19
+ effects: { reads: ["fs"], writes: ["network", "process", "server"] },
20
+ args: ["cwd"],
21
+ shorts: { port: "p", host: "h" },
22
+ output: "json",
23
+ })
24
+ .handler(async (input) => viteDev(input))
25
+ .build();
26
+ const viteBuildProcedure = createProcedure()
27
+ .path(["vite", "build"])
28
+ .input(zodAdapter(ViteBuildInputSchema))
29
+ .output(zodAdapter(ViteBuildOutputSchema))
30
+ .meta({
31
+ description: "Build for production",
32
+ // vite runs the config and the plugins of the project, and writes the output folder
33
+ effects: { reads: ["fs"], writes: ["fs", "process"] },
34
+ args: ["cwd"],
35
+ shorts: { outDir: "o", mode: "m" },
36
+ output: "json",
37
+ })
38
+ .handler(async (input, ctx) => viteBuild(input, ctx))
39
+ .build();
40
+ const vitePreviewProcedure = createProcedure()
41
+ .path(["vite", "preview"])
42
+ .input(zodAdapter(VitePreviewInputSchema))
43
+ .output(zodAdapter(VitePreviewOutputSchema))
44
+ .meta({
45
+ description: "Preview production build",
46
+ effects: { reads: ["fs"], writes: ["network", "process", "server"] },
47
+ args: ["cwd"],
48
+ shorts: { port: "p" },
49
+ output: "json",
50
+ })
51
+ .handler(async (input) => vitePreview(input))
52
+ .build();
53
+ const viteStopProcedure = createProcedure()
54
+ .path(["vite", "stop"])
55
+ .input(zodAdapter(ViteStopInputSchema))
56
+ .output(zodAdapter(ViteStopOutputSchema))
57
+ .meta({
58
+ description: "Stop a running Vite server",
59
+ effects: { reads: ["server"], writes: ["server"], idempotent: true },
60
+ args: ["serverId"],
61
+ shorts: {},
62
+ output: "json",
63
+ })
64
+ .handler(async (input) => viteStop(input))
65
+ .build();
66
+ /**
67
+ * The module of this package, for `createRegistry()`: its procedures as data. Importing this
68
+ * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
69
+ */
70
+ export const viteModule = defineModule("@procedures/vite", [
71
+ viteDevProcedure,
72
+ viteBuildProcedure,
73
+ vitePreviewProcedure,
74
+ viteStopProcedure,
75
+ ]);
76
+ export default viteModule;
77
+ /**
78
+ * This function registers the procedures of @procedures/vite, and of the modules that it requires, in
79
+ * a registry. The default is the global registry. Importing this file registers nothing: the
80
+ * `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
81
+ */
82
+ export function registerViteProcedures(registry = PROCEDURE_REGISTRY) {
83
+ registerModules(registry, [viteModule]);
84
+ }
85
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * vite.build procedure - Build for production
3
+ */
4
+ import type { ViteBuildInput, ViteBuildOutput } from "../../types.js";
5
+ export declare function viteBuild(input: ViteBuildInput, ctx?: {
6
+ signal?: AbortSignal | undefined;
7
+ }): Promise<ViteBuildOutput>;
8
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/procedures/vite/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GACzC,OAAO,CAAC,eAAe,CAAC,CA+B1B"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * vite.build procedure - Build for production
3
+ */
4
+ import { resolve } from "node:path";
5
+ import { runCommand } from "@procedures/shell/command";
6
+ import { resolveViteCli, viteArg } from "../../vite-cli.js";
7
+ export async function viteBuild(input, ctx) {
8
+ const { outDir, mode } = input;
9
+ // Without cwd, the build runs in the current folder. (Before, `resolve(undefined, ...)` threw.)
10
+ const cwd = input.cwd ?? process.cwd();
11
+ // The project's own vite, run with Node and an argument list: no shell (deep dive WRP-8)
12
+ const args = [resolveViteCli(cwd), "build"];
13
+ if (outDir)
14
+ args.push("--outDir", viteArg("outDir", outDir));
15
+ if (mode)
16
+ args.push("--mode", viteArg("mode", mode));
17
+ // The signal kills vite and the processes that it started (roadmap 2.2)
18
+ const result = await runCommand(process.execPath, {
19
+ args,
20
+ cwd,
21
+ env: { NO_COLOR: "1" },
22
+ signal: ctx?.signal,
23
+ keep: "tail",
24
+ maxOutputBytes: 1024 * 1024,
25
+ });
26
+ if (result.aborted) {
27
+ const error = new Error("vite.build was aborted");
28
+ error.name = "AbortError";
29
+ throw error;
30
+ }
31
+ if (!result.success) {
32
+ throw new Error(`Build failed with code ${result.exitCode}: ${result.error ?? result.stderr}`);
33
+ }
34
+ return {
35
+ success: true,
36
+ outDir: resolve(cwd, outDir ?? "dist"),
37
+ };
38
+ }
39
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/procedures/vite/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAqB,EACrB,GAA0C;IAE1C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/B,gGAAgG;IAChG,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEvC,yFAAyF;IACzF,MAAM,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAErD,wEAAwE;IACxE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;QAChD,IAAI;QACJ,GAAG;QACH,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QACtB,MAAM,EAAE,GAAG,EAAE,MAAM;QACnB,IAAI,EAAE,MAAM;QACZ,cAAc,EAAE,IAAI,GAAG,IAAI;KAC5B,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,IAAI,MAAM,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * vite.dev procedure - Start Vite dev server
3
+ */
4
+ import type { ViteDevInput, ViteDevOutput } from "../../types.js";
5
+ export declare function viteDev(input: ViteDevInput): Promise<ViteDevOutput>;
6
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/procedures/vite/dev.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGlE,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAUzE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * vite.dev procedure - Start Vite dev server
3
+ */
4
+ import { viteArg } from "../../vite-cli.js";
5
+ import { serverManager } from "../../server-manager.js";
6
+ export async function viteDev(input) {
7
+ const { cwd, port, host, open } = input;
8
+ // The project's own vite, run with Node and an argument list: no shell (deep dive WRP-8)
9
+ const args = [];
10
+ if (port)
11
+ args.push("--port", String(port));
12
+ if (host)
13
+ args.push("--host", viteArg("host", host));
14
+ if (open)
15
+ args.push("--open");
16
+ return serverManager.start(args, cwd);
17
+ }
18
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/procedures/vite/dev.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAmB;IAC/C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAExC,yFAAyF;IACzF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9B,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { viteDev } from "./dev.js";
2
+ export { viteBuild } from "./build.js";
3
+ export { vitePreview } from "./preview.js";
4
+ export { viteStop } from "./stop.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { viteDev } from "./dev.js";
2
+ export { viteBuild } from "./build.js";
3
+ export { vitePreview } from "./preview.js";
4
+ export { viteStop } from "./stop.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * vite.preview procedure - Preview production build
3
+ */
4
+ import type { VitePreviewInput, VitePreviewOutput } from "../../types.js";
5
+ export declare function vitePreview(input: VitePreviewInput): Promise<VitePreviewOutput>;
6
+ //# sourceMappingURL=preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/procedures/vite/preview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG1E,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQrF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * vite.preview procedure - Preview production build
3
+ */
4
+ import { serverManager } from "../../server-manager.js";
5
+ export async function vitePreview(input) {
6
+ const { cwd, port } = input;
7
+ // The project's own vite, run with Node and an argument list: no shell (deep dive WRP-8)
8
+ const args = ["preview"];
9
+ if (port)
10
+ args.push("--port", String(port));
11
+ return serverManager.start(args, cwd);
12
+ }
13
+ //# sourceMappingURL=preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/procedures/vite/preview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE5B,yFAAyF;IACzF,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5C,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * vite.stop procedure - Stop a running server
3
+ */
4
+ import type { ViteStopInput, ViteStopOutput } from "../../types.js";
5
+ export declare function viteStop(input: ViteStopInput): Promise<ViteStopOutput>;
6
+ //# sourceMappingURL=stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/procedures/vite/stop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGpE,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAI5E"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * vite.stop procedure - Stop a running server
3
+ */
4
+ import { serverManager } from "../../server-manager.js";
5
+ export async function viteStop(input) {
6
+ const { serverId } = input;
7
+ const success = await serverManager.stop(serverId);
8
+ return { success };
9
+ }
10
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/procedures/vite/stop.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB;IACjD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Importing this file registers the procedures of @procedures/vite, and of the modules that it
3
+ * requires, in the global registry: `import "@procedures/vite/register"`. The package root and the
4
+ * `./module` entry register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
5
+ */
6
+ export * from "./module.js";
7
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Importing this file registers the procedures of @procedures/vite, and of the modules that it
3
+ * requires, in the global registry: `import "@procedures/vite/register"`. The package root and the
4
+ * `./module` entry register nothing (ARCHITECTURE-PROPOSALS-2026-10, P9).
5
+ */
6
+ import { registerViteProcedures } from "./module.js";
7
+ export * from "./module.js";
8
+ registerViteProcedures();
9
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,cAAc,aAAa,CAAC;AAE5B,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Vite Server Manager - Manages running Vite servers
3
+ *
4
+ * The manager is a view of the process registry of client-shell, for the group "vite"
5
+ * (deep dive WRP-4, WRP-10): `stop` ends the whole process tree (vite and esbuild), the registry
6
+ * reads the output of each server, and the servers end when the host ends.
7
+ */
8
+ /** The group of the vite servers in the process registry. */
9
+ export declare const VITE_GROUP = "vite";
10
+ export interface StartedServer {
11
+ serverId: string;
12
+ url: string;
13
+ pid: number;
14
+ }
15
+ declare class ServerManager {
16
+ /**
17
+ * Start `vite <args>` with the project's own vite and no shell, and wait for its URL.
18
+ * When the server does not get ready, the manager stops it and throws.
19
+ */
20
+ start(args: string[], cwd: string | undefined, timeout?: number): Promise<StartedServer>;
21
+ /** True when the server has a record and is running. */
22
+ running(serverId: string): boolean;
23
+ /** Stop a server and the processes that it started, and wait for its end. */
24
+ stop(serverId: string): Promise<boolean>;
25
+ }
26
+ export declare const serverManager: ServerManager;
27
+ export {};
28
+ //# sourceMappingURL=server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,6DAA6D;AAC7D,eAAO,MAAM,UAAU,SAAS,CAAC;AAKjC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,cAAM,aAAa;IACjB;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,SAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAiB5F;IAED,wDAAwD;IACxD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGjC;IAED,6EAA6E;IACvE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7C;CACF;AAED,eAAO,MAAM,aAAa,EAAE,aAAmC,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Vite Server Manager - Manages running Vite servers
3
+ *
4
+ * The manager is a view of the process registry of client-shell, for the group "vite"
5
+ * (deep dive WRP-4, WRP-10): `stop` ends the whole process tree (vite and esbuild), the registry
6
+ * reads the output of each server, and the servers end when the host ends.
7
+ */
8
+ import { processes } from "@procedures/shell/command";
9
+ import { resolveViteCli } from "./vite-cli.js";
10
+ /** The group of the vite servers in the process registry. */
11
+ export const VITE_GROUP = "vite";
12
+ /** The line where vite prints the URL of a server that is ready. */
13
+ const READY = /Local:\s+(https?:\/\/\S+)/;
14
+ class ServerManager {
15
+ /**
16
+ * Start `vite <args>` with the project's own vite and no shell, and wait for its URL.
17
+ * When the server does not get ready, the manager stops it and throws.
18
+ */
19
+ async start(args, cwd, timeout = 30000) {
20
+ const root = cwd ?? process.cwd();
21
+ const started = processes.start(process.execPath, {
22
+ args: [resolveViteCli(root), ...args],
23
+ cwd: root,
24
+ // No colors: the output stays plain text for the readers of the registry
25
+ env: { NO_COLOR: "1" },
26
+ group: VITE_GROUP,
27
+ label: `vite ${args.join(" ")}`.trim(),
28
+ });
29
+ try {
30
+ const match = await processes.waitFor(started.id, READY, timeout);
31
+ return { serverId: started.id, url: match[1], pid: started.pid };
32
+ }
33
+ catch (error) {
34
+ await processes.stop(started.id);
35
+ throw error;
36
+ }
37
+ }
38
+ /** True when the server has a record and is running. */
39
+ running(serverId) {
40
+ const info = processes.get(serverId);
41
+ return info?.group === VITE_GROUP && info.status === "running";
42
+ }
43
+ /** Stop a server and the processes that it started, and wait for its end. */
44
+ async stop(serverId) {
45
+ if (!this.running(serverId))
46
+ return false;
47
+ return (await processes.stop(serverId)).stopped;
48
+ }
49
+ }
50
+ export const serverManager = new ServerManager();
51
+ //# sourceMappingURL=server-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AAEjC,oEAAoE;AACpE,MAAM,KAAK,GAAG,2BAA2B,CAAC;AAQ1C,MAAM,aAAa;IACjB;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,IAAc,EAAE,GAAuB,EAAE,OAAO,GAAG,KAAK;QAClE,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChD,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACrC,GAAG,EAAE,IAAI;YACT,yEAAyE;YACzE,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;YACtB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;SACvC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,QAAgB;QACtB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,EAAE,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACjE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,OAAO,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAClD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Type definitions for client-vite procedures
3
+ */
4
+ import { z } from "zod";
5
+ export declare const ViteDevInputSchema: z.ZodObject<{
6
+ cwd: z.ZodOptional<z.ZodString>;
7
+ port: z.ZodOptional<z.ZodNumber>;
8
+ host: z.ZodOptional<z.ZodString>;
9
+ open: z.ZodOptional<z.ZodBoolean>;
10
+ }>;
11
+ export type ViteDevInput = z.infer<typeof ViteDevInputSchema>;
12
+ export interface ViteDevOutput {
13
+ /** Server identifier for management */
14
+ serverId: string;
15
+ /** Server URL */
16
+ url: string;
17
+ /** Process ID */
18
+ pid: number;
19
+ }
20
+ export declare const ViteBuildInputSchema: z.ZodObject<{
21
+ cwd: z.ZodOptional<z.ZodString>;
22
+ outDir: z.ZodOptional<z.ZodString>;
23
+ mode: z.ZodOptional<z.ZodString>;
24
+ }>;
25
+ export type ViteBuildInput = z.infer<typeof ViteBuildInputSchema>;
26
+ export interface ViteBuildOutput {
27
+ /** Whether build succeeded */
28
+ success: boolean;
29
+ /** Output directory path */
30
+ outDir: string;
31
+ }
32
+ export declare const VitePreviewInputSchema: z.ZodObject<{
33
+ cwd: z.ZodOptional<z.ZodString>;
34
+ port: z.ZodOptional<z.ZodNumber>;
35
+ }>;
36
+ export type VitePreviewInput = z.infer<typeof VitePreviewInputSchema>;
37
+ export interface VitePreviewOutput {
38
+ /** Server identifier */
39
+ serverId: string;
40
+ /** Server URL */
41
+ url: string;
42
+ /** Process ID */
43
+ pid: number;
44
+ }
45
+ export declare const ViteStopInputSchema: z.ZodObject<{
46
+ serverId: z.ZodString;
47
+ }>;
48
+ export type ViteStopInput = z.infer<typeof ViteStopInputSchema>;
49
+ export interface ViteStopOutput {
50
+ /** Whether stop succeeded */
51
+ success: boolean;
52
+ }
53
+ export declare const ViteDevOutputSchema: z.ZodType<ViteDevOutput>;
54
+ export declare const VitePreviewOutputSchema: z.ZodType<VitePreviewOutput>;
55
+ export declare const ViteBuildOutputSchema: z.ZodType<ViteBuildOutput>;
56
+ export declare const ViteStopOutputSchema: z.ZodType<ViteStopOutput>;
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;CACnC,CASC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAMD,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC;IAC7C,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAClC,CAOC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,SAAS,CAAC;IAC/C,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAClC,CAKC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAMD,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC;CACvB,CAGC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAWD,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAA+B,CAAC;AAEzF,eAAO,MAAM,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAA+B,CAAC;AAEjG,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAG3D,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAEzD,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Type definitions for client-vite procedures
3
+ */
4
+ import { z } from "zod";
5
+ // ============================================================================
6
+ // vite.dev - Start Vite dev server
7
+ // ============================================================================
8
+ export const ViteDevInputSchema = z.object({
9
+ /** Working directory containing vite config (default: the current folder) */
10
+ cwd: z.string().optional().describe("Working directory containing vite config (default: the current folder)"),
11
+ /** Port to run on */
12
+ port: z.number().optional().describe("Port to run on"),
13
+ /** Host to bind to */
14
+ host: z.string().optional().describe("Host to bind to"),
15
+ /** Open browser automatically */
16
+ open: z.boolean().optional().describe("Open browser automatically"),
17
+ });
18
+ // ============================================================================
19
+ // vite.build - Build for production
20
+ // ============================================================================
21
+ export const ViteBuildInputSchema = z.object({
22
+ /** Working directory containing vite config (default: the current folder) */
23
+ cwd: z.string().optional().describe("Working directory containing vite config (default: the current folder)"),
24
+ /** Output directory */
25
+ outDir: z.string().optional().describe("Output directory"),
26
+ /** Build mode */
27
+ mode: z.string().optional().describe("Build mode"),
28
+ });
29
+ // ============================================================================
30
+ // vite.preview - Preview production build
31
+ // ============================================================================
32
+ export const VitePreviewInputSchema = z.object({
33
+ /** Working directory containing built output (default: the current folder) */
34
+ cwd: z.string().optional().describe("Working directory containing built output (default: the current folder)"),
35
+ /** Port to run on */
36
+ port: z.number().optional().describe("Port to run on"),
37
+ });
38
+ // ============================================================================
39
+ // vite.stop - Stop a running server
40
+ // ============================================================================
41
+ export const ViteStopInputSchema = z.object({
42
+ /** Server ID to stop */
43
+ serverId: z.string().describe("Server ID to stop"),
44
+ });
45
+ // Output schemas (roadmap 2.1). Loose objects: a field that a schema does not name stays in the
46
+ // result (a strict schema would remove it when the output is validated).
47
+ const serverFields = {
48
+ serverId: z.string().describe("The id of the server: vite.stop takes it"),
49
+ url: z.string().describe("The URL of the server"),
50
+ pid: z.number().describe("The process id of vite"),
51
+ };
52
+ export const ViteDevOutputSchema = z.looseObject(serverFields);
53
+ export const VitePreviewOutputSchema = z.looseObject(serverFields);
54
+ export const ViteBuildOutputSchema = z.looseObject({
55
+ success: z.boolean().describe("True when the build succeeded"),
56
+ outDir: z.string().describe("The output folder of the build"),
57
+ });
58
+ export const ViteStopOutputSchema = z.looseObject({
59
+ success: z.boolean().describe("True when the server stopped"),
60
+ });
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAK1B,CAAC,CAAC,MAAM,CAAC;IACZ,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IAC7G,qBAAqB;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACtD,sBAAsB;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACvD,iCAAiC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACpE,CAAC,CAAC;AAaH,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAI5B,CAAC,CAAC,MAAM,CAAC;IACZ,6EAA6E;IAC7E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IAC7G,uBAAuB;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,iBAAiB;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;CACnD,CAAC,CAAC;AAWH,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E,MAAM,CAAC,MAAM,sBAAsB,GAG9B,CAAC,CAAC,MAAM,CAAC;IACZ,8EAA8E;IAC9E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IAC9G,qBAAqB;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CACvD,CAAC,CAAC;AAaH,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAE3B,CAAC,CAAC,MAAM,CAAC;IACZ,wBAAwB;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CACnD,CAAC,CAAC;AASH,gGAAgG;AAChG,yEAAyE;AAEzE,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,uBAAuB,GAAiC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,qBAAqB,GAA+B,CAAC,CAAC,WAAW,CAAC;IAC7E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA8B,CAAC,CAAC,WAAW,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC9D,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Locate the vite CLI of a project.
3
+ *
4
+ * The procedures run vite as `node <vite.js> ...args` with no shell. Before, they ran
5
+ * `npx vite` with `shell: true`: `host`, `mode` and `outDir` reached the shell unescaped
6
+ * (deep dive WRP-8), and npx could download vite when the project did not have it.
7
+ */
8
+ export declare function resolveViteCli(cwd: string): string;
9
+ /** A value that vite reads as an argument (a mode, a folder, a host): it must not start with "-". */
10
+ export declare function viteArg(name: string, value: string): string;
11
+ //# sourceMappingURL=vite-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-cli.d.ts","sourceRoot":"","sources":["../src/vite-cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAclD;AAED,qGAAqG;AACrG,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK3D"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Locate the vite CLI of a project.
3
+ *
4
+ * The procedures run vite as `node <vite.js> ...args` with no shell. Before, they ran
5
+ * `npx vite` with `shell: true`: `host`, `mode` and `outDir` reached the shell unescaped
6
+ * (deep dive WRP-8), and npx could download vite when the project did not have it.
7
+ */
8
+ import { readFileSync } from "node:fs";
9
+ import { createRequire } from "node:module";
10
+ import { dirname, join, resolve } from "node:path";
11
+ export function resolveViteCli(cwd) {
12
+ const require = createRequire(join(resolve(cwd), "package.json"));
13
+ let packageJsonPath;
14
+ try {
15
+ packageJsonPath = require.resolve("vite/package.json");
16
+ }
17
+ catch {
18
+ throw new Error(`vite is not installed for ${cwd}. Add it as a devDependency.`);
19
+ }
20
+ const pkg = JSON.parse(readFileSync(packageJsonPath, "utf8"));
21
+ const bin = typeof pkg.bin === "string" ? pkg.bin : pkg.bin?.["vite"];
22
+ if (!bin) {
23
+ throw new Error(`The vite package at ${dirname(packageJsonPath)} has no "vite" bin.`);
24
+ }
25
+ return join(dirname(packageJsonPath), bin);
26
+ }
27
+ /** A value that vite reads as an argument (a mode, a folder, a host): it must not start with "-". */
28
+ export function viteArg(name, value) {
29
+ if (value.startsWith("-")) {
30
+ throw new Error(`Invalid ${name} (starts with "-"): ${value}`);
31
+ }
32
+ return value;
33
+ }
34
+ //# sourceMappingURL=vite-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-cli.js","sourceRoot":"","sources":["../src/vite-cli.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAClE,IAAI,eAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,8BAA8B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAA8C,CAAC;IAC3G,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAa;IACjD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uBAAuB,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}