@prisma/compute-sdk 0.13.0 → 0.15.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 (44) hide show
  1. package/dist/astro-build.d.ts +14 -0
  2. package/dist/astro-build.d.ts.map +1 -0
  3. package/dist/astro-build.js +59 -0
  4. package/dist/astro-build.js.map +1 -0
  5. package/dist/auto-build.d.ts.map +1 -1
  6. package/dist/auto-build.js +6 -0
  7. package/dist/auto-build.js.map +1 -1
  8. package/dist/build-strategy.d.ts +30 -0
  9. package/dist/build-strategy.d.ts.map +1 -1
  10. package/dist/build-strategy.js +101 -1
  11. package/dist/build-strategy.js.map +1 -1
  12. package/dist/errors.d.ts +6 -0
  13. package/dist/errors.d.ts.map +1 -1
  14. package/dist/errors.js +2 -0
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts +6 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +5 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/log-stream.d.ts +40 -0
  21. package/dist/log-stream.d.ts.map +1 -0
  22. package/dist/log-stream.js +151 -0
  23. package/dist/log-stream.js.map +1 -0
  24. package/dist/nextjs-build.d.ts.map +1 -1
  25. package/dist/nextjs-build.js +23 -87
  26. package/dist/nextjs-build.js.map +1 -1
  27. package/dist/nuxt-build.d.ts +14 -0
  28. package/dist/nuxt-build.d.ts.map +1 -0
  29. package/dist/nuxt-build.js +59 -0
  30. package/dist/nuxt-build.js.map +1 -0
  31. package/dist/tanstack-start-build.d.ts +14 -0
  32. package/dist/tanstack-start-build.d.ts.map +1 -0
  33. package/dist/tanstack-start-build.js +55 -0
  34. package/dist/tanstack-start-build.js.map +1 -0
  35. package/package.json +4 -2
  36. package/src/astro-build.ts +76 -0
  37. package/src/auto-build.ts +6 -0
  38. package/src/build-strategy.ts +141 -1
  39. package/src/errors.ts +5 -0
  40. package/src/index.ts +13 -5
  41. package/src/log-stream.ts +218 -0
  42. package/src/nextjs-build.ts +30 -109
  43. package/src/nuxt-build.ts +76 -0
  44. package/src/tanstack-start-build.ts +66 -0
@@ -0,0 +1,14 @@
1
+ import type { BuildArtifact, BuildStrategy } from "./build-strategy.ts";
2
+ /**
3
+ * Build strategy for Astro applications using the @astrojs/node adapter
4
+ * in standalone mode. Runs `astro build` and produces an artifact from `dist/`.
5
+ */
6
+ export declare class AstroBuild implements BuildStrategy {
7
+ #private;
8
+ constructor(options: {
9
+ appPath: string;
10
+ });
11
+ canBuild(): Promise<boolean>;
12
+ execute(): Promise<BuildArtifact>;
13
+ }
14
+ //# sourceMappingURL=astro-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro-build.d.ts","sourceRoot":"","sources":["../src/astro-build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAexE;;;GAGG;AACH,qBAAa,UAAW,YAAW,aAAa;;gBAGlC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIlC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAO5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAuCxC"}
@@ -0,0 +1,59 @@
1
+ import { cp, mkdtemp, rm, stat } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { hasPackageDependency, hasRootFile, runPackageCli, } from "./build-strategy.js";
5
+ const ASTRO_CONFIG_FILENAMES = [
6
+ "astro.config.js",
7
+ "astro.config.mjs",
8
+ "astro.config.cjs",
9
+ "astro.config.ts",
10
+ "astro.config.mts",
11
+ ];
12
+ /**
13
+ * Build strategy for Astro applications using the @astrojs/node adapter
14
+ * in standalone mode. Runs `astro build` and produces an artifact from `dist/`.
15
+ */
16
+ export class AstroBuild {
17
+ #appPath;
18
+ constructor(options) {
19
+ this.#appPath = options.appPath;
20
+ }
21
+ async canBuild() {
22
+ return ((await hasRootFile(this.#appPath, ASTRO_CONFIG_FILENAMES)) ||
23
+ (await hasPackageDependency(this.#appPath, ["astro"])));
24
+ }
25
+ async execute() {
26
+ await runPackageCli({
27
+ appPath: this.#appPath,
28
+ cliName: "astro",
29
+ args: ["build"],
30
+ failurePrefix: "Astro",
31
+ missingMessage: "Could not find the Astro CLI. Install it with `npm install astro` or ensure npx/bunx is available.",
32
+ });
33
+ const distDir = path.join(this.#appPath, "dist");
34
+ const entryPath = path.join(distDir, "server", "entry.mjs");
35
+ const entryStat = await stat(entryPath).catch(() => null);
36
+ if (!entryStat?.isFile()) {
37
+ throw new Error('Astro build did not produce a standalone server entrypoint. Install @astrojs/node and configure it with adapter: node({ mode: "standalone" }) in your astro.config file.');
38
+ }
39
+ const outDir = await mkdtemp(path.join(os.tmpdir(), "compute-build-"));
40
+ try {
41
+ const artifactDir = path.join(outDir, "app");
42
+ await cp(distDir, artifactDir, {
43
+ recursive: true,
44
+ verbatimSymlinks: true,
45
+ });
46
+ return {
47
+ directory: artifactDir,
48
+ entrypoint: "server/entry.mjs",
49
+ defaultPortMapping: { http: 4321 },
50
+ cleanup: () => rm(outDir, { recursive: true, force: true }),
51
+ };
52
+ }
53
+ catch (error) {
54
+ await rm(outDir, { recursive: true, force: true });
55
+ throw error;
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=astro-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro-build.js","sourceRoot":"","sources":["../src/astro-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,UAAU;IACZ,QAAQ,CAAS;IAE1B,YAAY,OAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,CACL,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YAC1D,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,aAAa,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,aAAa,EAAE,OAAO;YACtB,cAAc,EACZ,oGAAoG;SACvG,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,0KAA0K,CAC3K,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE;gBAC7B,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,kBAAkB;gBAC9B,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;gBAClC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-build.d.ts","sourceRoot":"","sources":["../src/auto-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIxE;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;;gBAGjC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAUvD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAQxC"}
1
+ {"version":3,"file":"auto-build.d.ts","sourceRoot":"","sources":["../src/auto-build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMxE;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;;gBAGjC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAavD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAS5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAQxC"}
@@ -1,5 +1,8 @@
1
+ import { AstroBuild } from "./astro-build.js";
1
2
  import { BunBuild } from "./bun-build.js";
2
3
  import { NextjsBuild } from "./nextjs-build.js";
4
+ import { NuxtBuild } from "./nuxt-build.js";
5
+ import { TanstackStartBuild } from "./tanstack-start-build.js";
3
6
  /**
4
7
  * Meta-strategy that auto-detects the appropriate build strategy.
5
8
  * Iterates over candidates and delegates to the first one that can handle the app.
@@ -9,6 +12,9 @@ export class AutoBuild {
9
12
  constructor(options) {
10
13
  this.#strategies = [
11
14
  new NextjsBuild({ appPath: options.appPath }),
15
+ new NuxtBuild({ appPath: options.appPath }),
16
+ new AstroBuild({ appPath: options.appPath }),
17
+ new TanstackStartBuild({ appPath: options.appPath }),
12
18
  new BunBuild({
13
19
  appPath: options.appPath,
14
20
  entrypoint: options.entrypoint,
@@ -1 +1 @@
1
- {"version":3,"file":"auto-build.js","sourceRoot":"","sources":["../src/auto-build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,MAAM,OAAO,SAAS;IACX,WAAW,CAAkB;IAEtC,YAAY,OAAiD;QAC3D,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"auto-build.js","sourceRoot":"","sources":["../src/auto-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;GAGG;AACH,MAAM,OAAO,SAAS;IACX,WAAW,CAAkB;IAEtC,YAAY,OAAiD;QAC3D,IAAI,CAAC,WAAW,GAAG;YACjB,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACpD,IAAI,QAAQ,CAAC;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -40,4 +40,34 @@ export declare class PreBuilt implements BuildStrategy {
40
40
  canBuild(): Promise<boolean>;
41
41
  execute(): Promise<BuildArtifact>;
42
42
  }
43
+ /**
44
+ * True if any of `filenames` exists at the root of `appPath`. Swallows
45
+ * readdir errors (missing/unreadable dir) and returns false.
46
+ */
47
+ export declare function hasRootFile(appPath: string, filenames: readonly string[]): Promise<boolean>;
48
+ /**
49
+ * True if any of `packageNames` is listed in `package.json`'s `dependencies`
50
+ * or `devDependencies`. Swallows missing-file / invalid-JSON errors and
51
+ * returns false.
52
+ */
53
+ export declare function hasPackageDependency(appPath: string, packageNames: readonly string[]): Promise<boolean>;
54
+ /**
55
+ * Run a package's CLI inside `appPath`. Tries the project-local bin first,
56
+ * then `npx <cliName>`, then `bunx <cliName>`. Each candidate that fails
57
+ * with ENOENT is skipped; other failures (e.g., build errors) re-throw
58
+ * with stderr surfaced.
59
+ *
60
+ * Throws with `missingMessage` if none of the launchers is available.
61
+ */
62
+ export declare function runPackageCli(opts: {
63
+ appPath: string;
64
+ /** Executable name, e.g. "astro", "next", "nuxt", "vite". */
65
+ cliName: string;
66
+ /** Args passed to the CLI, e.g. ["build"]. */
67
+ args: string[];
68
+ /** Prefix used when surfacing a build failure, e.g. "Astro". */
69
+ failurePrefix: string;
70
+ /** Thrown when no launcher is available. */
71
+ missingMessage: string;
72
+ }): Promise<void>;
43
73
  //# sourceMappingURL=build-strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-strategy.d.ts","sourceRoot":"","sources":["../src/build-strategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAElB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAEjC;;;;OAIG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,QAAS,YAAW,aAAa;;gBAIhC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAKtD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAwBxC"}
1
+ {"version":3,"file":"build-strategy.d.ts","sourceRoot":"","sources":["../src/build-strategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAElB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAEjC;;;;OAIG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,QAAS,YAAW,aAAa;;gBAIhC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAKtD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAwBxC;AAQD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB"}
@@ -1,4 +1,5 @@
1
- import { stat } from "node:fs/promises";
1
+ import { execFile } from "node:child_process";
2
+ import { readdir, readFile, stat } from "node:fs/promises";
2
3
  import path from "node:path";
3
4
  /**
4
5
  * Reads directly from a pre-built application directory without copying.
@@ -33,4 +34,103 @@ export class PreBuilt {
33
34
  };
34
35
  }
35
36
  }
37
+ // ---------------------------------------------------------------------------
38
+ // Shared helpers used by framework strategies (Next, Nuxt, Astro, TanStack
39
+ // Start). Live here because they're tightly tied to the BuildStrategy surface
40
+ // (framework detection + CLI dispatch) and don't justify their own module.
41
+ // ---------------------------------------------------------------------------
42
+ /**
43
+ * True if any of `filenames` exists at the root of `appPath`. Swallows
44
+ * readdir errors (missing/unreadable dir) and returns false.
45
+ */
46
+ export async function hasRootFile(appPath, filenames) {
47
+ let entries;
48
+ try {
49
+ entries = await readdir(appPath);
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ return entries.some((entry) => filenames.includes(entry));
55
+ }
56
+ /**
57
+ * True if any of `packageNames` is listed in `package.json`'s `dependencies`
58
+ * or `devDependencies`. Swallows missing-file / invalid-JSON errors and
59
+ * returns false.
60
+ */
61
+ export async function hasPackageDependency(appPath, packageNames) {
62
+ let content;
63
+ try {
64
+ content = await readFile(path.join(appPath, "package.json"), "utf-8");
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ let parsed;
70
+ try {
71
+ parsed = JSON.parse(content);
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ const deps = isRecord(parsed.dependencies) ? parsed.dependencies : {};
77
+ const devDeps = isRecord(parsed.devDependencies)
78
+ ? parsed.devDependencies
79
+ : {};
80
+ return packageNames.some((name) => name in deps || name in devDeps);
81
+ }
82
+ /**
83
+ * Run a package's CLI inside `appPath`. Tries the project-local bin first,
84
+ * then `npx <cliName>`, then `bunx <cliName>`. Each candidate that fails
85
+ * with ENOENT is skipped; other failures (e.g., build errors) re-throw
86
+ * with stderr surfaced.
87
+ *
88
+ * Throws with `missingMessage` if none of the launchers is available.
89
+ */
90
+ export async function runPackageCli(opts) {
91
+ const localBin = path.join(opts.appPath, "node_modules", ".bin", opts.cliName);
92
+ const candidates = [
93
+ { command: localBin, args: opts.args },
94
+ { command: "npx", args: [opts.cliName, ...opts.args] },
95
+ { command: "bunx", args: [opts.cliName, ...opts.args] },
96
+ ];
97
+ for (const { command, args } of candidates) {
98
+ try {
99
+ await exec(command, args, opts.appPath, opts.failurePrefix);
100
+ return;
101
+ }
102
+ catch (error) {
103
+ if (isENOENT(error))
104
+ continue;
105
+ throw error;
106
+ }
107
+ }
108
+ throw new Error(opts.missingMessage);
109
+ }
110
+ function isRecord(value) {
111
+ return typeof value === "object" && value !== null;
112
+ }
113
+ function isENOENT(error) {
114
+ return (error instanceof Error &&
115
+ "code" in error &&
116
+ error.code === "ENOENT");
117
+ }
118
+ function exec(command, args, cwd, failurePrefix) {
119
+ return new Promise((resolve, reject) => {
120
+ execFile(command, args, { cwd }, (error, _stdout, stderr) => {
121
+ if (error) {
122
+ if ("code" in error && error.code === "ENOENT") {
123
+ reject(Object.assign(new Error(`${command} not found`), {
124
+ code: "ENOENT",
125
+ }));
126
+ return;
127
+ }
128
+ const message = stderr.trim() || error.message;
129
+ reject(new Error(`${failurePrefix} build failed:\n${message}`));
130
+ return;
131
+ }
132
+ resolve();
133
+ });
134
+ });
135
+ }
36
136
  //# sourceMappingURL=build-strategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-strategy.js","sourceRoot":"","sources":["../src/build-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAoC7B;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACV,QAAQ,CAAS;IACjB,WAAW,CAAS;IAE7B,YAAY,OAAgD;QAC1D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,WAAW,EAAE,CAClE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACjD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"build-strategy.js","sourceRoot":"","sources":["../src/build-strategy.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -107,6 +107,12 @@ declare const InvalidOptionsError_base: import("better-result").TaggedErrorClass
107
107
  }>;
108
108
  export declare class InvalidOptionsError extends InvalidOptionsError_base {
109
109
  }
110
+ declare const LogStreamError_base: import("better-result").TaggedErrorClass<"LogStreamError", {
111
+ statusCode: number;
112
+ message: string;
113
+ }>;
114
+ export declare class LogStreamError extends LogStreamError_base {
115
+ }
110
116
  export type DeployError = AuthenticationError | ApiError | MissingArgumentError | InvalidOptionsError | BuildError | ArtifactError | TimeoutError | VersionFailedError | CancelledError;
111
117
  export type UpdateEnvError = AuthenticationError | ApiError | MissingArgumentError | NoExistingVersionError | TimeoutError | VersionFailedError | CancelledError;
112
118
  export type DestroyVersionError = CancelledError | MissingArgumentError | NoVersionsFoundError | AuthenticationError | ApiError | TimeoutError | VersionFailedError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -63,4 +63,6 @@ export class DestroyAggregateError extends TaggedError("DestroyAggregateError")(
63
63
  }
64
64
  export class InvalidOptionsError extends TaggedError("InvalidOptionsError")() {
65
65
  }
66
+ export class LogStreamError extends TaggedError("LogStreamError")() {
67
+ }
66
68
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,qBAAqB,CAAC,EAGvE;CAAG;AAEP,MAAM,OAAO,QAAS,SAAQ,WAAW,CAAC,UAAU,CAAC,EAOjD;CAAG;AAEP,MAAM,OAAO,oBAAqB,SAAQ,WAAW,CAAC,sBAAsB,CAAC,EAGzE;IACF,YAAY,IAAuB;QACjC,KAAK,CAAC;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,8BAA8B,IAAI,CAAC,KAAK,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,WAAW,CAAC,YAAY,CAAC,EAGrD;CAAG;AAEP,MAAM,OAAO,aAAc,SAAQ,WAAW,CAAC,eAAe,CAAC,EAG3D;CAAG;AAEP,MAAM,OAAO,YAAa,SAAQ,WAAW,CAAC,cAAc,CAAC,EAKzD;IACF,YAAY,IAIX;QACC,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,OAAO,EAAE,iCAAiC,IAAI,CAAC,SAAS,wCAAwC,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;SACnK,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW,CAAC,oBAAoB,CAAC,EAGrE;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,gCAAgC;SACnE,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW,CACrD,wBAAwB,CACzB,EAGG;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,4FAA4F;SAC/H,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW,CAAC,sBAAsB,CAAC,EAGzE;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,kBAAkB;SACrD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,WAAW,CAAC,gBAAgB,CAAC,EAE7D;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW,CACpD,uBAAuB,CACxB,EAKG;IACF,YAAY,IAIX;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,OAAO,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,MAAM,gBAAgB,SAAS,EAAE;SAC9E,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,qBAAqB,CAAC,EAEvE;CAAG"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,qBAAqB,CAAC,EAGvE;CAAG;AAEP,MAAM,OAAO,QAAS,SAAQ,WAAW,CAAC,UAAU,CAAC,EAOjD;CAAG;AAEP,MAAM,OAAO,oBAAqB,SAAQ,WAAW,CAAC,sBAAsB,CAAC,EAGzE;IACF,YAAY,IAAuB;QACjC,KAAK,CAAC;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,8BAA8B,IAAI,CAAC,KAAK,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,WAAW,CAAC,YAAY,CAAC,EAGrD;CAAG;AAEP,MAAM,OAAO,aAAc,SAAQ,WAAW,CAAC,eAAe,CAAC,EAG3D;CAAG;AAEP,MAAM,OAAO,YAAa,SAAQ,WAAW,CAAC,cAAc,CAAC,EAKzD;IACF,YAAY,IAIX;QACC,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,OAAO,EAAE,iCAAiC,IAAI,CAAC,SAAS,wCAAwC,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;SACnK,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW,CAAC,oBAAoB,CAAC,EAGrE;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,gCAAgC;SACnE,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW,CACrD,wBAAwB,CACzB,EAGG;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,4FAA4F;SAC/H,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW,CAAC,sBAAsB,CAAC,EAGzE;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,kBAAkB;SACrD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,WAAW,CAAC,gBAAgB,CAAC,EAE7D;IACF,YAAY,IAA2B;QACrC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW,CACpD,uBAAuB,CACxB,EAKG;IACF,YAAY,IAIX;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,OAAO,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,MAAM,gBAAgB,SAAS,EAAE;SAC9E,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,qBAAqB,CAAC,EAEvE;CAAG;AAEP,MAAM,OAAO,cAAe,SAAQ,WAAW,CAAC,gBAAgB,CAAC,EAG7D;CAAG"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Err, matchError, matchErrorPartial, Ok, type Result, TaggedError, } from "better-result";
2
+ export { AstroBuild } from "./astro-build.ts";
2
3
  export { AutoBuild } from "./auto-build.ts";
3
4
  export type { BuildArtifact, BuildStrategy } from "./build-strategy.ts";
4
5
  export { PreBuilt } from "./build-strategy.ts";
@@ -7,8 +8,12 @@ export type { DeployInteraction, DeployProgress, DestroyServiceProgress, Destroy
7
8
  export type { CreateProjectOptions, CreateServiceOptions, DeleteServiceOptions, DeleteVersionOptions, DeployOptions, DeployResult, DestroyServiceOptions, DestroyServiceResult, DestroyVersionOptions, DestroyVersionResult, ListProjectsOptions, ListServicesOptions, ListVersionsOptions, PromoteOptions, PromoteResult, ShowServiceOptions, ShowVersionOptions, StartVersionOptions, StopVersionOptions, UpdateEnvOptions, UpdateEnvResult, } from "./compute-client.ts";
8
9
  export { ComputeClient } from "./compute-client.ts";
9
10
  export type { ApiRequestError, DeployError, DestroyServiceError, DestroyVersionError, PromoteError, UpdateEnvError, VersionOperationError, } from "./errors.ts";
10
- export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.ts";
11
+ export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, LogStreamError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.ts";
12
+ export type { LogRecord, LogStreamOptions, StreamLogsError, StreamRecord, StreamResult, TerminalRecord, } from "./log-stream.ts";
13
+ export { streamLogs } from "./log-stream.ts";
11
14
  export { NextjsBuild } from "./nextjs-build.ts";
15
+ export { NuxtBuild } from "./nuxt-build.ts";
16
+ export { TanstackStartBuild } from "./tanstack-start-build.ts";
12
17
  export type { CreateProjectResult, DatabaseInfo, PortMapping, ProjectInfo, RegionInfo, ResolvedConfig, ServiceDetail, ServiceInfo, VersionDetail, VersionInfo, } from "./types.ts";
13
18
  export { KNOWN_REGION_IDS, REGIONS } from "./types.ts";
14
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,KAAK,MAAM,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,KAAK,MAAM,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  // Re-export Result utilities so consumers don't need a direct better-result dependency
2
2
  export { Err, matchError, matchErrorPartial, Ok, TaggedError, } from "better-result";
3
+ export { AstroBuild } from "./astro-build.js";
3
4
  export { AutoBuild } from "./auto-build.js";
4
5
  export { PreBuilt } from "./build-strategy.js";
5
6
  export { BunBuild } from "./bun-build.js";
6
- // Core client
7
7
  export { ComputeClient } from "./compute-client.js";
8
- // Errors
9
- export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.js";
8
+ export { ApiError, ArtifactError, AuthenticationError, BuildError, CancelledError, DestroyAggregateError, InvalidOptionsError, LogStreamError, MissingArgumentError, NoExistingVersionError, NoVersionsFoundError, TimeoutError, VersionFailedError, } from "./errors.js";
9
+ export { streamLogs } from "./log-stream.js";
10
10
  export { NextjsBuild } from "./nextjs-build.js";
11
+ export { NuxtBuild } from "./nuxt-build.js";
12
+ export { TanstackStartBuild } from "./tanstack-start-build.js";
11
13
  export { KNOWN_REGION_IDS, REGIONS } from "./types.js";
12
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EAEF,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAkC1C,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUpD,SAAS;AACT,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAchD,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EACL,GAAG,EACH,UAAU,EACV,iBAAiB,EACjB,EAAE,EAEF,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUpD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { Result } from "better-result";
2
+ import { CancelledError, LogStreamError } from "./errors.ts";
3
+ export type LogRecord = {
4
+ type: "log";
5
+ text: string;
6
+ byteStart: number;
7
+ byteEnd: number;
8
+ };
9
+ export type TerminalRecord = {
10
+ type: "terminal";
11
+ kind: "end" | "error";
12
+ code: string;
13
+ message: string;
14
+ retryable: boolean;
15
+ cursor: string | null;
16
+ details?: Record<string, unknown>;
17
+ };
18
+ export type StreamRecord = LogRecord | TerminalRecord;
19
+ export type LogStreamOptions = {
20
+ baseUrl: string;
21
+ token: string;
22
+ versionId: string;
23
+ tail?: number;
24
+ fromStart?: boolean;
25
+ cursor?: string;
26
+ signal?: AbortSignal;
27
+ };
28
+ export type StreamResult = {
29
+ terminal: TerminalRecord | null;
30
+ lastByteEnd: number | null;
31
+ };
32
+ export type StreamLogsError = LogStreamError | CancelledError;
33
+ /**
34
+ * Open a WebSocket to the log-streaming endpoint and deliver records via callback.
35
+ *
36
+ * Returns `Ok` with the stream result on graceful close, or `Err` with a
37
+ * `LogStreamError` (connection/HTTP errors) or `CancelledError` (abort signal).
38
+ */
39
+ export declare function streamLogs(options: LogStreamOptions, onRecord: (record: StreamRecord) => void): Promise<Result<StreamResult, StreamLogsError>>;
40
+ //# sourceMappingURL=log-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-stream.d.ts","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;AA6J9D;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAUhD"}
@@ -0,0 +1,151 @@
1
+ import { Result } from "better-result";
2
+ import WebSocket from "ws";
3
+ import { CancelledError, LogStreamError } from "./errors.js";
4
+ const isBun = "Bun" in globalThis;
5
+ function parseErrorBody(body, statusCode) {
6
+ try {
7
+ const parsed = JSON.parse(body);
8
+ return parsed.error?.message ?? parsed.message ?? `HTTP ${statusCode}`;
9
+ }
10
+ catch {
11
+ return body || `HTTP ${statusCode}`;
12
+ }
13
+ }
14
+ function toError(value) {
15
+ if (value instanceof Error)
16
+ return value;
17
+ // Bun emits ErrorEvent instead of Error on WebSocket failures
18
+ if (typeof value === "object" &&
19
+ value !== null &&
20
+ "message" in value &&
21
+ typeof value.message === "string") {
22
+ return new Error(value.message);
23
+ }
24
+ return new Error(String(value));
25
+ }
26
+ function buildWebSocketUrl(options) {
27
+ const httpUrl = new URL(`/v1/compute-services/versions/${encodeURIComponent(options.versionId)}/logs`, options.baseUrl);
28
+ httpUrl.protocol = httpUrl.protocol === "https:" ? "wss:" : "ws:";
29
+ if (options.tail != null)
30
+ httpUrl.searchParams.set("tail", String(options.tail));
31
+ if (options.fromStart)
32
+ httpUrl.searchParams.set("from_start", "true");
33
+ if (options.cursor)
34
+ httpUrl.searchParams.set("cursor", options.cursor);
35
+ return httpUrl.toString();
36
+ }
37
+ function connectOnce(options, onRecord) {
38
+ return new Promise((resolve, reject) => {
39
+ if (options.signal?.aborted) {
40
+ reject(new CancelledError());
41
+ return;
42
+ }
43
+ const url = buildWebSocketUrl(options);
44
+ const ws = new WebSocket(url, {
45
+ headers: { Authorization: `Bearer ${options.token}` },
46
+ });
47
+ let terminal = null;
48
+ let lastByteEnd = null;
49
+ let settled = false;
50
+ const cleanup = () => {
51
+ options.signal?.removeEventListener("abort", onAbort);
52
+ };
53
+ const onAbort = () => {
54
+ cleanup();
55
+ if (!settled) {
56
+ settled = true;
57
+ ws.close();
58
+ reject(new CancelledError());
59
+ }
60
+ };
61
+ options.signal?.addEventListener("abort", onAbort, { once: true });
62
+ if (options.signal?.aborted) {
63
+ onAbort();
64
+ return;
65
+ }
66
+ // Node.js ws: fires when the server responds with a non-101 status,
67
+ // giving us access to the HTTP response for structured error messages.
68
+ // Bun doesn't implement this event — errors go to the "error" handler.
69
+ if (!isBun) {
70
+ ws.on("unexpected-response", (_req, res) => {
71
+ const chunks = [];
72
+ res.on("data", (chunk) => {
73
+ chunks.push(chunk);
74
+ });
75
+ res.on("end", () => {
76
+ cleanup();
77
+ if (!settled) {
78
+ settled = true;
79
+ const statusCode = res.statusCode ?? 0;
80
+ const body = Buffer.concat(chunks).toString();
81
+ reject(new LogStreamError({
82
+ statusCode,
83
+ message: parseErrorBody(body, statusCode),
84
+ }));
85
+ }
86
+ });
87
+ });
88
+ }
89
+ ws.on("message", (data) => {
90
+ let record;
91
+ try {
92
+ record = JSON.parse(data.toString());
93
+ }
94
+ catch {
95
+ return;
96
+ }
97
+ if (record.type === "log") {
98
+ lastByteEnd = record.byteEnd;
99
+ }
100
+ else if (record.type === "terminal") {
101
+ terminal = record;
102
+ }
103
+ try {
104
+ onRecord(record);
105
+ }
106
+ catch (err) {
107
+ cleanup();
108
+ if (!settled) {
109
+ settled = true;
110
+ ws.close();
111
+ reject(toError(err));
112
+ }
113
+ }
114
+ });
115
+ ws.on("close", () => {
116
+ cleanup();
117
+ if (!settled) {
118
+ settled = true;
119
+ resolve({ terminal, lastByteEnd });
120
+ }
121
+ });
122
+ ws.on("error", (err) => {
123
+ cleanup();
124
+ if (!settled) {
125
+ settled = true;
126
+ const error = toError(err);
127
+ reject(new LogStreamError({ statusCode: 0, message: error.message }));
128
+ }
129
+ });
130
+ });
131
+ }
132
+ /**
133
+ * Open a WebSocket to the log-streaming endpoint and deliver records via callback.
134
+ *
135
+ * Returns `Ok` with the stream result on graceful close, or `Err` with a
136
+ * `LogStreamError` (connection/HTTP errors) or `CancelledError` (abort signal).
137
+ */
138
+ export async function streamLogs(options, onRecord) {
139
+ return Result.tryPromise({
140
+ try: () => connectOnce(options, onRecord),
141
+ catch: (e) => {
142
+ if (CancelledError.is(e))
143
+ return e;
144
+ if (LogStreamError.is(e))
145
+ return e;
146
+ const error = toError(e);
147
+ return new LogStreamError({ statusCode: 0, message: error.message });
148
+ },
149
+ });
150
+ }
151
+ //# sourceMappingURL=log-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../src/log-stream.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs-build.d.ts","sourceRoot":"","sources":["../src/nextjs-build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASxE;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;;gBAGnC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIlC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAkJxC"}
1
+ {"version":3,"file":"nextjs-build.d.ts","sourceRoot":"","sources":["../src/nextjs-build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAcxE;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;;gBAGnC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIlC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAO5B,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;CAuDxC"}