@prisma/compute-sdk 0.26.0 → 0.27.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 (62) hide show
  1. package/dist/artifact-stage.d.ts +24 -0
  2. package/dist/artifact-stage.d.ts.map +1 -0
  3. package/dist/artifact-stage.js +165 -0
  4. package/dist/artifact-stage.js.map +1 -0
  5. package/dist/astro-build.d.ts +2 -0
  6. package/dist/astro-build.d.ts.map +1 -1
  7. package/dist/astro-build.js +8 -0
  8. package/dist/astro-build.js.map +1 -1
  9. package/dist/auto-build.d.ts +7 -4
  10. package/dist/auto-build.d.ts.map +1 -1
  11. package/dist/auto-build.js +25 -33
  12. package/dist/auto-build.js.map +1 -1
  13. package/dist/build-settings.d.ts +55 -0
  14. package/dist/build-settings.d.ts.map +1 -0
  15. package/dist/build-settings.js +301 -0
  16. package/dist/build-settings.js.map +1 -0
  17. package/dist/build-strategy.d.ts +4 -0
  18. package/dist/build-strategy.d.ts.map +1 -1
  19. package/dist/build-strategy.js +13 -20
  20. package/dist/build-strategy.js.map +1 -1
  21. package/dist/build.d.ts +45 -0
  22. package/dist/build.d.ts.map +1 -0
  23. package/dist/build.js +86 -0
  24. package/dist/build.js.map +1 -0
  25. package/dist/bun-build.d.ts +8 -0
  26. package/dist/bun-build.d.ts.map +1 -1
  27. package/dist/bun-build.js +47 -23
  28. package/dist/bun-build.js.map +1 -1
  29. package/dist/config/frameworks.d.ts +1 -1
  30. package/dist/index.d.ts +4 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/nextjs-build.d.ts +12 -2
  35. package/dist/nextjs-build.d.ts.map +1 -1
  36. package/dist/nextjs-build.js +156 -75
  37. package/dist/nextjs-build.js.map +1 -1
  38. package/dist/nuxt-build.d.ts +2 -0
  39. package/dist/nuxt-build.d.ts.map +1 -1
  40. package/dist/nuxt-build.js +8 -0
  41. package/dist/nuxt-build.js.map +1 -1
  42. package/dist/tanstack-start-build.d.ts +6 -1
  43. package/dist/tanstack-start-build.d.ts.map +1 -1
  44. package/dist/tanstack-start-build.js +35 -15
  45. package/dist/tanstack-start-build.js.map +1 -1
  46. package/dist/workspace.d.ts +90 -0
  47. package/dist/workspace.d.ts.map +1 -0
  48. package/dist/workspace.js +205 -0
  49. package/dist/workspace.js.map +1 -0
  50. package/package.json +4 -3
  51. package/src/artifact-stage.ts +280 -0
  52. package/src/astro-build.ts +11 -1
  53. package/src/auto-build.ts +28 -34
  54. package/src/build-settings.ts +430 -0
  55. package/src/build-strategy.ts +22 -29
  56. package/src/build.ts +124 -0
  57. package/src/bun-build.ts +60 -27
  58. package/src/index.ts +28 -0
  59. package/src/nextjs-build.ts +206 -103
  60. package/src/nuxt-build.ts +11 -1
  61. package/src/tanstack-start-build.ts +44 -18
  62. package/src/workspace.ts +319 -0
package/dist/bun-build.js CHANGED
@@ -1,24 +1,42 @@
1
- import { execFile } from "node:child_process";
2
1
  import { access, mkdir, mkdtemp, readdir, readFile, rm, } from "node:fs/promises";
3
2
  import os from "node:os";
4
3
  import path from "node:path";
5
4
  import { defaultHttpPortForBuildType } from "./config/frameworks.js";
5
+ import { buildCommandEnv, runBuildCommand, runChildProcess, } from "./workspace.js";
6
6
  /**
7
7
  * Build strategy that runs `bun build` CLI and manages its own temp output directory.
8
8
  * Owns entrypoint resolution from explicit arg or package.json main field.
9
+ *
10
+ * When build settings carry a build command (a `package.json` build script),
11
+ * it runs first — so a Bun app can compile assets or generate code before the
12
+ * entrypoint is bundled.
9
13
  */
10
14
  export class BunBuild {
11
15
  #appPath;
12
16
  #entrypoint;
17
+ #buildSettings;
18
+ #io;
13
19
  constructor(options) {
14
20
  this.#appPath = options.appPath;
15
21
  this.#entrypoint = options.entrypoint;
22
+ this.#buildSettings = options.buildSettings;
23
+ this.#io = options.io;
16
24
  }
17
25
  async canBuild(_signal) {
18
26
  return true;
19
27
  }
20
28
  async execute(signal) {
21
29
  signal?.throwIfAborted();
30
+ if (this.#buildSettings?.buildCommand) {
31
+ await runBuildCommand({
32
+ appPath: this.#appPath,
33
+ command: this.#buildSettings.buildCommand,
34
+ failurePrefix: "Bun",
35
+ env: this.#io?.env,
36
+ onOutput: this.#io?.onOutput,
37
+ signal,
38
+ });
39
+ }
22
40
  const entrypoint = await this.#resolveEntrypoint(signal);
23
41
  const outDir = await mkdtemp(path.join(os.tmpdir(), "compute-build-"));
24
42
  const bundleDir = path.join(outDir, "bundle");
@@ -90,29 +108,35 @@ export class BunBuild {
90
108
  }
91
109
  return typeof parsed.main === "string" ? parsed.main : undefined;
92
110
  }
93
- #runBuild(absoluteEntrypoint, bundleDir, signal) {
94
- return new Promise((resolve, reject) => {
95
- execFile("bun", [
96
- "build",
97
- absoluteEntrypoint,
98
- "--outdir",
99
- bundleDir,
100
- "--target",
101
- "bun",
102
- "--sourcemap=external",
103
- ], { signal }, (error, _stdout, stderr) => {
104
- if (error) {
105
- if ("code" in error && error.code === "ENOENT") {
106
- reject(new Error("Bun is required to build the application but was not found. Install it from https://bun.sh"));
107
- return;
108
- }
109
- const message = stderr.trim() || error.message;
110
- reject(new Error(`Bun build failed:\n${message}`));
111
- return;
112
- }
113
- resolve();
111
+ async #runBuild(absoluteEntrypoint, bundleDir, signal) {
112
+ const env = await buildCommandEnv(this.#appPath, { ...process.env, ...this.#io?.env }, signal);
113
+ try {
114
+ await runChildProcess({
115
+ command: "bun",
116
+ args: [
117
+ "build",
118
+ absoluteEntrypoint,
119
+ "--outdir",
120
+ bundleDir,
121
+ "--target",
122
+ "bun",
123
+ "--sourcemap=external",
124
+ ],
125
+ cwd: this.#appPath,
126
+ env,
127
+ failurePrefix: "Bun",
128
+ onOutput: this.#io?.onOutput,
129
+ signal,
114
130
  });
115
- });
131
+ }
132
+ catch (error) {
133
+ if (error instanceof Error &&
134
+ "code" in error &&
135
+ error.code === "ENOENT") {
136
+ throw new Error("Bun is required to build the application but was not found. Install it from https://bun.sh");
137
+ }
138
+ throw error;
139
+ }
116
140
  }
117
141
  #selectRuntimeEntrypoint(outputPaths, bundleDir, absoluteEntrypoint) {
118
142
  const jsOutputs = outputPaths.filter((output) => output.endsWith(".js"));
@@ -1 +1 @@
1
- {"version":3,"file":"bun-build.js","sourceRoot":"","sources":["../src/bun-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bun-build.js","sourceRoot":"","sources":["../src/bun-build.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export declare const NEXT_CONFIG_FILENAMES: readonly ["next.config.js", "next.co
30
30
  export declare const NUXT_CONFIG_FILENAMES: readonly ["nuxt.config.js", "nuxt.config.mjs", "nuxt.config.cjs", "nuxt.config.ts", "nuxt.config.mts"];
31
31
  export declare const ASTRO_CONFIG_FILENAMES: readonly ["astro.config.js", "astro.config.mjs", "astro.config.cjs", "astro.config.ts", "astro.config.mts"];
32
32
  export declare const FRAMEWORKS: readonly FrameworkDescriptor[];
33
- export declare const FRAMEWORK_KEYS: ("nextjs" | "nuxt" | "astro" | "hono" | "tanstack-start" | "bun")[];
33
+ export declare const FRAMEWORK_KEYS: ("bun" | "nextjs" | "nuxt" | "astro" | "hono" | "tanstack-start")[];
34
34
  /**
35
35
  * Build types whose preview build consumes committed build settings. The
36
36
  * others (nuxt, astro) run their framework CLI and stage fixed output, so a
package/dist/index.d.ts CHANGED
@@ -3,8 +3,11 @@ export type { ApplyMigrationsOptions, ApplyMigrationsResult, } from "./apply-mig
3
3
  export { applyMigrations } from "./apply-migrations.ts";
4
4
  export { createArchive } from "./archive.ts";
5
5
  export { normalizeArtifactSymlinks } from "./artifact-postprocess.ts";
6
+ export { hoistIsolatedStoreDependencies, stageStandaloneArtifact, } from "./artifact-stage.ts";
6
7
  export { AstroBuild } from "./astro-build.ts";
7
8
  export { AutoBuild } from "./auto-build.ts";
9
+ export { type BuildStrategyHooks, type BuildType, createBuildStrategy, resolveBuildStrategy, } from "./build.ts";
10
+ export { type BuildSettings, joinPosix, nextOutputRootFromStandaloneDirectory, readStaticNextConfig, resolveBuildSettings, resolveConfiguredBuildSettings, } from "./build-settings.ts";
8
11
  export type { BuildArtifact, BuildStrategy } from "./build-strategy.ts";
9
12
  export { PreBuilt } from "./build-strategy.ts";
10
13
  export { BunBuild } from "./bun-build.ts";
@@ -23,4 +26,5 @@ export { TanstackStartBuild } from "./tanstack-start-build.ts";
23
26
  export type { CreateProjectResult, DatabaseInfo, PortMapping, ProjectInfo, RegionInfo, ResolvedConfig, ServiceDetail, ServiceInfo, VersionDetail, VersionInfo, } from "./types.ts";
24
27
  export { KNOWN_REGION_IDS, REGIONS } from "./types.ts";
25
28
  export { uploadArtifact } from "./upload-artifact.ts";
29
+ export { type BuildCommandIo, buildCommandEnv, type PackageManager, type PackageManifest, readBuildScript, readPackageManifest, resolvePackageManager, runBuildCommand, } from "./workspace.ts";
26
30
  //# 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,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,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,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,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;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,8 +3,11 @@ export { Err, matchError, matchErrorPartial, Ok, TaggedError, } from "better-res
3
3
  export { applyMigrations } from "./apply-migrations.js";
4
4
  export { createArchive } from "./archive.js";
5
5
  export { normalizeArtifactSymlinks } from "./artifact-postprocess.js";
6
+ export { hoistIsolatedStoreDependencies, stageStandaloneArtifact, } from "./artifact-stage.js";
6
7
  export { AstroBuild } from "./astro-build.js";
7
8
  export { AutoBuild } from "./auto-build.js";
9
+ export { createBuildStrategy, resolveBuildStrategy, } from "./build.js";
10
+ export { joinPosix, nextOutputRootFromStandaloneDirectory, readStaticNextConfig, resolveBuildSettings, resolveConfiguredBuildSettings, } from "./build-settings.js";
8
11
  export { PreBuilt } from "./build-strategy.js";
9
12
  export { BunBuild } from "./bun-build.js";
10
13
  export { ComputeClient } from "./compute-client.js";
@@ -16,4 +19,5 @@ export { NuxtBuild } from "./nuxt-build.js";
16
19
  export { TanstackStartBuild } from "./tanstack-start-build.js";
17
20
  export { KNOWN_REGION_IDS, REGIONS } from "./types.js";
18
21
  export { uploadArtifact } from "./upload-artifact.js";
22
+ export { buildCommandEnv, readBuildScript, readPackageManifest, resolvePackageManager, runBuildCommand, } from "./workspace.js";
19
23
  //# 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;AAKvB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,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;AASpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,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;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,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;AAKvB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAGL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,SAAS,EACT,qCAAqC,EACrC,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAiC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,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;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAEL,eAAe,EAGf,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
@@ -1,12 +1,22 @@
1
+ import { type BuildSettings } from "./build-settings.ts";
1
2
  import type { BuildArtifact, BuildStrategy } from "./build-strategy.ts";
3
+ import { type BuildCommandIo } from "./workspace.ts";
2
4
  /**
3
- * Build strategy for Next.js applications using standalone output mode.
4
- * Runs `next build` and produces an artifact from `.next/standalone`.
5
+ * Build strategy for Next.js applications. Runs the resolved build command
6
+ * (the user's `package.json` build script, or `next build`), then stages the
7
+ * `output: "standalone"` tree — materializing workspace symlinks and hoisting
8
+ * isolated-store dependencies. Apps built without standalone output fall back
9
+ * to packaging the full tree and serving with `next start`, unless
10
+ * `requireStandalone` is set (a disk-limited deploy target opts out of that).
5
11
  */
6
12
  export declare class NextjsBuild implements BuildStrategy {
7
13
  #private;
8
14
  constructor(options: {
9
15
  appPath: string;
16
+ buildSettings?: BuildSettings;
17
+ io?: BuildCommandIo;
18
+ /** Fail instead of falling back to the full-tree `next start` artifact. */
19
+ requireStandalone?: boolean;
10
20
  });
11
21
  canBuild(signal?: AbortSignal): Promise<boolean>;
12
22
  execute(signal?: AbortSignal): Promise<BuildArtifact>;
@@ -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;AAexE;;;GAGG;AACH,qBAAa,WAAY,YAAW,aAAa;;gBAGnC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIlC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhD,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CA2E5D"}
1
+ {"version":3,"file":"nextjs-build.d.ts","sourceRoot":"","sources":["../src/nextjs-build.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,gBAAgB,CAAC;AAStE;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,aAAa;;gBAMnC,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,EAAE,CAAC,EAAE,cAAc,CAAC;QACpB,2EAA2E;QAC3E,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B;IAOK,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhD,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAiE5D"}
@@ -1,9 +1,11 @@
1
- import { cp, mkdtemp, readdir, rm, stat } from "node:fs/promises";
1
+ import { cp, mkdtemp, readdir, rm, stat, writeFile } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import { normalizeArtifactSymlinks } from "./artifact-postprocess.js";
5
- import { hasPackageDependency, hasRootFile, runPackageCli, } from "./build-strategy.js";
4
+ import { stageStandaloneArtifact } from "./artifact-stage.js";
5
+ import { nextOutputRootFromStandaloneDirectory, resolveBuildSettings, } from "./build-settings.js";
6
+ import { hasPackageDependency, hasRootFile } from "./build-strategy.js";
6
7
  import { defaultHttpPortForBuildType } from "./config/frameworks.js";
8
+ import { runBuildCommand } from "./workspace.js";
7
9
  const NEXT_CONFIG_FILENAMES = [
8
10
  "next.config.js",
9
11
  "next.config.mjs",
@@ -11,13 +13,23 @@ const NEXT_CONFIG_FILENAMES = [
11
13
  "next.config.mts",
12
14
  ];
13
15
  /**
14
- * Build strategy for Next.js applications using standalone output mode.
15
- * Runs `next build` and produces an artifact from `.next/standalone`.
16
+ * Build strategy for Next.js applications. Runs the resolved build command
17
+ * (the user's `package.json` build script, or `next build`), then stages the
18
+ * `output: "standalone"` tree — materializing workspace symlinks and hoisting
19
+ * isolated-store dependencies. Apps built without standalone output fall back
20
+ * to packaging the full tree and serving with `next start`, unless
21
+ * `requireStandalone` is set (a disk-limited deploy target opts out of that).
16
22
  */
17
23
  export class NextjsBuild {
18
24
  #appPath;
25
+ #buildSettings;
26
+ #io;
27
+ #requireStandalone;
19
28
  constructor(options) {
20
29
  this.#appPath = options.appPath;
30
+ this.#buildSettings = options.buildSettings;
31
+ this.#io = options.io;
32
+ this.#requireStandalone = options.requireStandalone ?? false;
21
33
  }
22
34
  async canBuild(signal) {
23
35
  return ((await hasRootFile(this.#appPath, NEXT_CONFIG_FILENAMES, signal)) ||
@@ -25,53 +37,50 @@ export class NextjsBuild {
25
37
  }
26
38
  async execute(signal) {
27
39
  signal?.throwIfAborted();
28
- await runPackageCli({
29
- appPath: this.#appPath,
30
- cliName: "next",
31
- args: ["build"],
32
- failurePrefix: "Next.js",
33
- missingMessage: "Could not find the Next.js CLI. Install it with `npm install next` or ensure npx/bunx is available.",
34
- signal,
35
- });
36
- const standaloneDir = path.join(this.#appPath, ".next", "standalone");
37
- const standaloneStat = await stat(standaloneDir).catch(() => null);
38
- if (!standaloneStat?.isDirectory()) {
39
- throw new Error('Next.js build did not produce standalone output. Add output: "standalone" to your next.config file.');
40
+ const settings = this.#buildSettings ??
41
+ (await resolveBuildSettings({
42
+ appPath: this.#appPath,
43
+ buildType: "nextjs",
44
+ signal,
45
+ }));
46
+ if (settings.buildCommand) {
47
+ await runBuildCommand({
48
+ appPath: this.#appPath,
49
+ command: settings.buildCommand,
50
+ failurePrefix: "Next.js",
51
+ env: this.#io?.env,
52
+ onOutput: this.#io?.onOutput,
53
+ signal,
54
+ });
55
+ }
56
+ const standaloneDir = path.join(this.#appPath, settings.outputDirectory);
57
+ if (!(await directoryExists(standaloneDir))) {
58
+ if (this.#requireStandalone) {
59
+ throw new Error(`Next.js build did not produce standalone output at ${settings.outputDirectory}. ` +
60
+ 'Set output: "standalone" in your next.config; this deploy target requires it.');
61
+ }
62
+ // No `output: "standalone"` in next.config: the build succeeded, so
63
+ // package the full tree and serve with `next start`. Bigger artifact,
64
+ // same running app.
65
+ return stageFullTreeFallbackArtifact(this.#appPath, signal);
40
66
  }
41
67
  const outDir = await mkdtemp(path.join(os.tmpdir(), "compute-build-"));
42
68
  try {
43
69
  const artifactDir = path.join(outDir, "app");
44
- await cp(standaloneDir, artifactDir, {
45
- recursive: true,
46
- verbatimSymlinks: true,
70
+ await stageStandaloneArtifact({
71
+ standaloneDir,
72
+ artifactDir,
73
+ appPath: this.#appPath,
74
+ signal,
75
+ });
76
+ const entrypoint = await findStandaloneEntrypoint(artifactDir);
77
+ await copyStaticAssets({
78
+ appPath: this.#appPath,
79
+ artifactDir,
80
+ outputRoot: nextOutputRootFromStandaloneDirectory(settings.outputDirectory),
81
+ entrypoint,
82
+ signal,
47
83
  });
48
- // In monorepos, Next preserves the workspace-relative path from the
49
- // workspace root down to the app, so server.js lands at e.g.
50
- // .next/standalone/apps/web/server.js, not at the standalone root.
51
- // The runtime needs the correct entrypoint, and Next expects public/
52
- // and .next/static/ to be siblings of server.js.
53
- const serverSubpath = await findServerSubpath(artifactDir);
54
- const serverDir = serverSubpath === undefined
55
- ? artifactDir
56
- : path.join(artifactDir, serverSubpath);
57
- const publicDir = path.join(this.#appPath, "public");
58
- if (await directoryExists(publicDir)) {
59
- await cp(publicDir, path.join(serverDir, "public"), {
60
- recursive: true,
61
- verbatimSymlinks: true,
62
- });
63
- }
64
- const staticDir = path.join(this.#appPath, ".next", "static");
65
- if (await directoryExists(staticDir)) {
66
- await cp(staticDir, path.join(serverDir, ".next", "static"), {
67
- recursive: true,
68
- verbatimSymlinks: true,
69
- });
70
- }
71
- const entrypoint = serverSubpath === undefined
72
- ? "server.js"
73
- : path.posix.join(serverSubpath, "server.js");
74
- await normalizeArtifactSymlinks(artifactDir, this.#appPath, signal);
75
84
  return {
76
85
  directory: artifactDir,
77
86
  entrypoint,
@@ -85,44 +94,116 @@ export class NextjsBuild {
85
94
  }
86
95
  }
87
96
  }
88
- async function directoryExists(dirPath) {
89
- const s = await stat(dirPath).catch(() => null);
90
- return s?.isDirectory() ?? false;
97
+ const FULL_TREE_ENTRYPOINT = "prisma-next-start.cjs";
98
+ // Bootstrap for apps built without `output: "standalone"`. Entering through
99
+ // the CLI bin (not `next/dist/server/lib/start-server`) keeps Next in charge
100
+ // of config loading, which is the part that drifts across Next majors.
101
+ const FULL_TREE_START_SOURCE = [
102
+ // The runtime unpacks us at the artifact root, but `next start` resolves
103
+ // `.next` from cwd.
104
+ "process.chdir(__dirname);",
105
+ 'process.env.NODE_ENV = "production";',
106
+ 'process.argv.push("start", "-p", process.env.PORT ?? "3000");',
107
+ 'require("next/dist/bin/next");',
108
+ "",
109
+ ].join("\n");
110
+ async function stageFullTreeFallbackArtifact(appPath, signal) {
111
+ const outDir = await mkdtemp(path.join(os.tmpdir(), "compute-build-"));
112
+ try {
113
+ const artifactDir = path.join(outDir, "app");
114
+ // node_modules ships on purpose: without standalone output the artifact
115
+ // must carry the full runtime dependency tree for `next start`.
116
+ signal?.throwIfAborted();
117
+ await cp(appPath, artifactDir, {
118
+ recursive: true,
119
+ // Keep relative symlinks relative (node_modules/.bin/*): the default
120
+ // rewrites them to absolute paths into the source tree, which the
121
+ // archiver rejects as escaping the artifact root.
122
+ verbatimSymlinks: true,
123
+ filter: (source) => !isExcludedFromFullTree(path.basename(source)),
124
+ });
125
+ signal?.throwIfAborted();
126
+ await writeFile(path.join(artifactDir, FULL_TREE_ENTRYPOINT), FULL_TREE_START_SOURCE);
127
+ return {
128
+ directory: artifactDir,
129
+ entrypoint: FULL_TREE_ENTRYPOINT,
130
+ defaultPortMapping: { http: defaultHttpPortForBuildType("nextjs") },
131
+ cleanup: () => rm(outDir, { recursive: true, force: true }),
132
+ };
133
+ }
134
+ catch (error) {
135
+ await rm(outDir, { recursive: true, force: true });
136
+ throw error;
137
+ }
138
+ }
139
+ /** Excludes VCS internals and dotenv files (local secrets, superseded by the deploy env). */
140
+ function isExcludedFromFullTree(basename) {
141
+ return (basename === ".git" || basename === ".env" || basename.startsWith(".env."));
142
+ }
143
+ async function copyStaticAssets(options) {
144
+ const serverSubpath = serverSubpathOf(options.entrypoint);
145
+ const serverDir = serverSubpath
146
+ ? path.join(options.artifactDir, serverSubpath)
147
+ : options.artifactDir;
148
+ const publicDir = path.join(options.appPath, "public");
149
+ if (await directoryExists(publicDir)) {
150
+ options.signal?.throwIfAborted();
151
+ await cp(publicDir, path.join(serverDir, "public"), {
152
+ recursive: true,
153
+ verbatimSymlinks: true,
154
+ });
155
+ }
156
+ const staticDir = path.join(options.appPath, options.outputRoot, "static");
157
+ if (await directoryExists(staticDir)) {
158
+ options.signal?.throwIfAborted();
159
+ await cp(staticDir, path.join(serverDir, options.outputRoot, "static"), {
160
+ recursive: true,
161
+ verbatimSymlinks: true,
162
+ });
163
+ }
91
164
  }
92
165
  /**
93
- * Scan the Next.js standalone output to find the directory that contains
94
- * server.js, relative to the standalone root. Returns undefined when
95
- * server.js is at the root (single-app repos) and a posix-joined subpath
96
- * like "apps/web" for monorepos. node_modules is skipped because
97
- * third-party packages may ship a file named server.js.
166
+ * Locates `server.js` in the staged standalone output. In monorepos Next
167
+ * preserves the workspace-relative path (e.g. `apps/web/server.js`), so the
168
+ * entrypoint is the shallowest match. `node_modules` is skipped because
169
+ * third-party packages may ship their own `server.js`.
98
170
  */
99
- async function findServerSubpath(standaloneDir) {
100
- const matches = [];
101
- async function walk(currentDir, relative) {
102
- const entries = await readdir(currentDir, { withFileTypes: true });
171
+ async function findStandaloneEntrypoint(artifactDir) {
172
+ const rootStat = await stat(path.join(artifactDir, "server.js")).catch(() => null);
173
+ if (rootStat?.isFile()) {
174
+ return "server.js";
175
+ }
176
+ const candidates = [];
177
+ await walk(artifactDir);
178
+ candidates.sort((left, right) => left.split("/").length - right.split("/").length ||
179
+ left.localeCompare(right));
180
+ const selected = candidates[0];
181
+ if (!selected) {
182
+ throw new Error(`Next.js standalone output did not contain server.js in ${artifactDir}`);
183
+ }
184
+ return selected;
185
+ async function walk(directory) {
186
+ const entries = await readdir(directory, { withFileTypes: true });
103
187
  for (const entry of entries) {
104
- if (entry.name === "node_modules")
188
+ if (entry.name === "node_modules") {
105
189
  continue;
106
- const fullPath = path.join(currentDir, entry.name);
190
+ }
191
+ const fullPath = path.join(directory, entry.name);
107
192
  if (entry.isDirectory()) {
108
- const nextRelative = relative === undefined
109
- ? entry.name
110
- : path.posix.join(relative, entry.name);
111
- await walk(fullPath, nextRelative);
193
+ await walk(fullPath);
112
194
  }
113
195
  else if (entry.isFile() && entry.name === "server.js") {
114
- matches.push(relative);
196
+ candidates.push(path.relative(artifactDir, fullPath).split(path.sep).join("/"));
115
197
  }
116
198
  }
117
199
  }
118
- await walk(standaloneDir, undefined);
119
- if (matches.length > 1) {
120
- const locations = matches.map((m) => m ?? "<root>").join(", ");
121
- throw new Error(`Next.js standalone output has multiple server.js files (${locations}). Cannot determine the application entrypoint.`);
122
- }
123
- if (matches.length === 0) {
124
- throw new Error("Next.js standalone output is missing server.js. The build may not have completed successfully.");
125
- }
126
- return matches[0];
200
+ }
201
+ function serverSubpathOf(entrypoint) {
202
+ const dir = path.posix.dirname(entrypoint);
203
+ return dir === "." ? "" : dir;
204
+ }
205
+ async function directoryExists(dirPath) {
206
+ const s = await stat(dirPath).catch(() => null);
207
+ return s?.isDirectory() ?? false;
127
208
  }
128
209
  //# sourceMappingURL=nextjs-build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs-build.js","sourceRoot":"","sources":["../src/nextjs-build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextjs-build.js","sourceRoot":"","sources":["../src/nextjs-build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAEL,qCAAqC,EACrC,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAuB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,qBAAqB,GAAG;IAC5B,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,WAAW;IACb,QAAQ,CAAS;IACjB,cAAc,CAAiB;IAC/B,GAAG,CAAkB;IACrB,kBAAkB,CAAU;IAErC,YAAY,OAMX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAoB;QACjC,OAAO,CACL,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC;YACjE,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,QAAQ,GACZ,IAAI,CAAC,cAAc;YACnB,CAAC,MAAM,oBAAoB,CAAC;gBAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,SAAS,EAAE,QAAQ;gBACnB,MAAM;aACP,CAAC,CAAC,CAAC;QACN,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC1B,MAAM,eAAe,CAAC;gBACpB,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,OAAO,EAAE,QAAQ,CAAC,YAAY;gBAC9B,aAAa,EAAE,SAAS;gBACxB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG;gBAClB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ;gBAC5B,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,sDAAsD,QAAQ,CAAC,eAAe,IAAI;oBAChF,+EAA+E,CAClF,CAAC;YACJ,CAAC;YACD,oEAAoE;YACpE,sEAAsE;YACtE,oBAAoB;YACpB,OAAO,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,uBAAuB,CAAC;gBAC5B,aAAa;gBACb,WAAW;gBACX,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,MAAM;aACP,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,gBAAgB,CAAC;gBACrB,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,WAAW;gBACX,UAAU,EAAE,qCAAqC,CAC/C,QAAQ,CAAC,eAAe,CACzB;gBACD,UAAU;gBACV,MAAM;aACP,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS,EAAE,WAAW;gBACtB,UAAU;gBACV,kBAAkB,EAAE,EAAE,IAAI,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EAAE;gBACnE,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;AAED,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,4EAA4E;AAC5E,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,sBAAsB,GAAG;IAC7B,yEAAyE;IACzE,oBAAoB;IACpB,2BAA2B;IAC3B,sCAAsC;IACtC,+DAA+D;IAC/D,gCAAgC;IAChC,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,KAAK,UAAU,6BAA6B,CAC1C,OAAe,EACf,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE;YAC7B,SAAS,EAAE,IAAI;YACf,qEAAqE;YACrE,kEAAkE;YAClE,kDAAkD;YAClD,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACnE,CAAC,CAAC;QACH,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAC5C,sBAAsB,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,oBAAoB;YAChC,kBAAkB,EAAE,EAAE,IAAI,EAAE,2BAA2B,CAAC,QAAQ,CAAC,EAAE;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,OAAO,CACL,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAC3E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAM/B;IACC,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC;QAC/C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;YAClD,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3E,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QACjC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACtE,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CAAC,WAAmB;IACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CACpE,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;IACF,IAAI,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,UAAU,CAAC,IAAI,CACb,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM;QAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC5B,CAAC;IAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;IAEhB,KAAK,UAAU,IAAI,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACxD,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAe;IAC5C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,CAAC;AACnC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { BuildArtifact, BuildStrategy } from "./build-strategy.ts";
2
+ import type { BuildCommandIo } from "./workspace.ts";
2
3
  /**
3
4
  * Build strategy for Nuxt applications using the Nitro `node-server` preset
4
5
  * (the default). Runs `nuxt build` and produces an artifact from `.output/`.
@@ -7,6 +8,7 @@ export declare class NuxtBuild implements BuildStrategy {
7
8
  #private;
8
9
  constructor(options: {
9
10
  appPath: string;
11
+ io?: BuildCommandIo;
10
12
  });
11
13
  canBuild(signal?: AbortSignal): Promise<boolean>;
12
14
  execute(signal?: AbortSignal): Promise<BuildArtifact>;
@@ -1 +1 @@
1
- {"version":3,"file":"nuxt-build.d.ts","sourceRoot":"","sources":["../src/nuxt-build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgBxE;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;;gBAGjC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAIlC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhD,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAyC5D"}
1
+ {"version":3,"file":"nuxt-build.d.ts","sourceRoot":"","sources":["../src/nuxt-build.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUrD;;;GAGG;AACH,qBAAa,SAAU,YAAW,aAAa;;gBAIjC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,cAAc,CAAA;KAAE;IAKvD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhD,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CA8C5D"}
@@ -1,6 +1,7 @@
1
1
  import { cp, mkdtemp, rm, stat } from "node:fs/promises";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
+ import { normalizeArtifactSymlinks } from "./artifact-postprocess.js";
4
5
  import { hasPackageDependency, hasRootFile, runPackageCli, } from "./build-strategy.js";
5
6
  import { defaultHttpPortForBuildType } from "./config/frameworks.js";
6
7
  const NUXT_CONFIG_FILENAMES = [
@@ -16,8 +17,10 @@ const NUXT_CONFIG_FILENAMES = [
16
17
  */
17
18
  export class NuxtBuild {
18
19
  #appPath;
20
+ #io;
19
21
  constructor(options) {
20
22
  this.#appPath = options.appPath;
23
+ this.#io = options.io;
21
24
  }
22
25
  async canBuild(signal) {
23
26
  return ((await hasRootFile(this.#appPath, NUXT_CONFIG_FILENAMES, signal)) ||
@@ -31,6 +34,8 @@ export class NuxtBuild {
31
34
  args: ["build"],
32
35
  failurePrefix: "Nuxt",
33
36
  missingMessage: "Could not find the Nuxt CLI. Install it with `npm install nuxt` or ensure npx/bunx is available.",
37
+ env: this.#io?.env,
38
+ onOutput: this.#io?.onOutput,
34
39
  signal,
35
40
  });
36
41
  const outputDir = path.join(this.#appPath, ".output");
@@ -46,6 +51,9 @@ export class NuxtBuild {
46
51
  recursive: true,
47
52
  verbatimSymlinks: true,
48
53
  });
54
+ // Materialize any symlinks into the app/workspace node_modules so the
55
+ // artifact is self-contained once unpacked elsewhere.
56
+ await normalizeArtifactSymlinks(artifactDir, this.#appPath, signal);
49
57
  return {
50
58
  directory: artifactDir,
51
59
  entrypoint: "server/index.mjs",