@prisma/compute-sdk 0.30.0 → 0.32.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.
- package/dist/artifact-stage.d.ts +19 -0
- package/dist/artifact-stage.d.ts.map +1 -1
- package/dist/artifact-stage.js +24 -10
- package/dist/artifact-stage.js.map +1 -1
- package/dist/astro-build.d.ts.map +1 -1
- package/dist/astro-build.js +1 -0
- package/dist/astro-build.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/normalize.d.ts +3 -1
- package/dist/config/normalize.d.ts.map +1 -1
- package/dist/config/normalize.js +24 -6
- package/dist/config/normalize.js.map +1 -1
- package/dist/config/serialize.d.ts.map +1 -1
- package/dist/config/serialize.js +26 -3
- package/dist/config/serialize.js.map +1 -1
- package/dist/config/types.d.ts +15 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +9 -0
- package/dist/config/types.js.map +1 -1
- package/dist/configured-artifact-trace.d.ts +15 -0
- package/dist/configured-artifact-trace.d.ts.map +1 -0
- package/dist/configured-artifact-trace.js +58 -0
- package/dist/configured-artifact-trace.js.map +1 -0
- package/dist/configured-artifact.d.ts +1 -0
- package/dist/configured-artifact.d.ts.map +1 -1
- package/dist/configured-artifact.js +10 -0
- package/dist/configured-artifact.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -8
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/src/artifact-stage.ts +38 -18
- package/src/astro-build.ts +1 -0
- package/src/config/index.ts +3 -0
- package/src/config/normalize.ts +58 -5
- package/src/config/serialize.ts +39 -4
- package/src/config/types.ts +27 -2
- package/src/configured-artifact-trace.ts +98 -0
- package/src/configured-artifact.ts +11 -0
- package/src/index.ts +1 -0
- package/src/types.ts +5 -9
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { realpath } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { nodeFileTrace } from "@vercel/nft";
|
|
4
|
+
import { copyPathMaterializingSymlinks, hoistIsolatedStoreDependencies, isPathWithin, } from "./artifact-stage.js";
|
|
5
|
+
import { resolveSourceRoot } from "./config/source-root.js";
|
|
6
|
+
/**
|
|
7
|
+
* Configured artifacts copy an output directory's contents to the artifact
|
|
8
|
+
* root. Runtime dependencies traced from that output need the same relocation:
|
|
9
|
+
* app-local node_modules become artifact-root node_modules, while hoisted
|
|
10
|
+
* workspace deps and workspace packages keep enough source-root layout for
|
|
11
|
+
* bare imports and package symlinks to resolve after unpacking.
|
|
12
|
+
*/
|
|
13
|
+
export async function stageConfiguredArtifactDependencies(options) {
|
|
14
|
+
const [appRoot, outputRoot] = await Promise.all([
|
|
15
|
+
realpath(path.resolve(options.appPath)),
|
|
16
|
+
realpath(path.resolve(options.outputDirectory)),
|
|
17
|
+
]);
|
|
18
|
+
const sourceRoot = await resolveSourceRoot(appRoot, options.signal);
|
|
19
|
+
const entrypointPath = path.join(outputRoot, options.entrypoint);
|
|
20
|
+
options.signal?.throwIfAborted();
|
|
21
|
+
const { fileList } = await nodeFileTrace([entrypointPath], {
|
|
22
|
+
base: sourceRoot,
|
|
23
|
+
});
|
|
24
|
+
for (const relativePath of fileList) {
|
|
25
|
+
options.signal?.throwIfAborted();
|
|
26
|
+
const sourcePath = path.join(sourceRoot, relativePath);
|
|
27
|
+
if (isPathWithin(outputRoot, sourcePath)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
await copyPathMaterializingSymlinks(sourcePath, path.join(options.artifactDir, artifactRelativePathForTrace(sourcePath, {
|
|
31
|
+
appRoot,
|
|
32
|
+
sourceRoot,
|
|
33
|
+
})), {
|
|
34
|
+
appRoot,
|
|
35
|
+
sourceRoot,
|
|
36
|
+
allowedSymlinkTargetRoots: [appRoot, sourceRoot],
|
|
37
|
+
ignoreMissingSource: true,
|
|
38
|
+
signal: options.signal,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
await hoistIsolatedStoreDependencies(path.join(options.artifactDir, "node_modules"), options.signal);
|
|
42
|
+
}
|
|
43
|
+
function artifactRelativePathForTrace(sourcePath, options) {
|
|
44
|
+
const resolvedSource = path.resolve(sourcePath);
|
|
45
|
+
const appNodeModules = path.join(options.appRoot, "node_modules");
|
|
46
|
+
const sourceNodeModules = path.join(options.sourceRoot, "node_modules");
|
|
47
|
+
if (isPathWithin(appNodeModules, resolvedSource)) {
|
|
48
|
+
return path.join("node_modules", path.relative(appNodeModules, resolvedSource));
|
|
49
|
+
}
|
|
50
|
+
if (isPathWithin(options.appRoot, resolvedSource)) {
|
|
51
|
+
return path.relative(options.appRoot, resolvedSource);
|
|
52
|
+
}
|
|
53
|
+
if (isPathWithin(sourceNodeModules, resolvedSource)) {
|
|
54
|
+
return path.join("node_modules", path.relative(sourceNodeModules, resolvedSource));
|
|
55
|
+
}
|
|
56
|
+
return path.relative(options.sourceRoot, resolvedSource);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=configured-artifact-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured-artifact-trace.js","sourceRoot":"","sources":["../src/configured-artifact-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare function stageConfiguredArtifact(options: {
|
|
|
7
7
|
buildType: FrameworkBuildType;
|
|
8
8
|
label: string;
|
|
9
9
|
missingEntrypointMessage?: string;
|
|
10
|
+
traceDependencies?: boolean;
|
|
10
11
|
signal?: AbortSignal;
|
|
11
12
|
}): Promise<BuildArtifact>;
|
|
12
13
|
export declare function resolveConfiguredArtifactEntrypoint(options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configured-artifact.d.ts","sourceRoot":"","sources":["../src/configured-artifact.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"configured-artifact.d.ts","sourceRoot":"","sources":["../src/configured-artifact.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkEzB;AAED,wBAAsB,mCAAmC,CAAC,OAAO,EAAE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;AAED,wBAAgB,qCAAqC,CACnD,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,MAAM,CAoBR"}
|
|
@@ -3,6 +3,7 @@ import os from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { normalizeArtifactSymlinks } from "./artifact-postprocess.js";
|
|
5
5
|
import { defaultHttpPortForBuildType, } from "./config/frameworks.js";
|
|
6
|
+
import { stageConfiguredArtifactDependencies } from "./configured-artifact-trace.js";
|
|
6
7
|
export async function stageConfiguredArtifact(options) {
|
|
7
8
|
options.signal?.throwIfAborted();
|
|
8
9
|
const outputDir = resolvePathInside(options.appPath, options.outputDirectory, `${options.label} build output directory must be a relative path inside the app directory`);
|
|
@@ -32,6 +33,15 @@ export async function stageConfiguredArtifact(options) {
|
|
|
32
33
|
verbatimSymlinks: true,
|
|
33
34
|
});
|
|
34
35
|
await normalizeArtifactSymlinks(artifactDir, options.appPath, options.signal);
|
|
36
|
+
if (options.traceDependencies) {
|
|
37
|
+
await stageConfiguredArtifactDependencies({
|
|
38
|
+
appPath: realAppPath,
|
|
39
|
+
artifactDir,
|
|
40
|
+
outputDirectory: realOutputDir,
|
|
41
|
+
entrypoint,
|
|
42
|
+
signal: options.signal,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
35
45
|
return {
|
|
36
46
|
directory: artifactDir,
|
|
37
47
|
entrypoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configured-artifact.js","sourceRoot":"","sources":["../src/configured-artifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EACL,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"configured-artifact.js","sourceRoot":"","sources":["../src/configured-artifact.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export { NestjsBuild } from "./nestjs-build.ts";
|
|
|
25
25
|
export { NextjsBuild } from "./nextjs-build.ts";
|
|
26
26
|
export { NuxtBuild } from "./nuxt-build.ts";
|
|
27
27
|
export { TanstackStartBuild } from "./tanstack-start-build.ts";
|
|
28
|
-
export type { AppDetail, AppInfo, CreateProjectResult, DatabaseInfo, DeploymentDetail, DeploymentInfo, PortMapping, ProjectInfo, RegionInfo, ResolvedConfig, } from "./types.ts";
|
|
28
|
+
export type { AppDetail, AppInfo, ComputeRegion, CreateProjectResult, DatabaseInfo, DeploymentDetail, DeploymentInfo, PortMapping, ProjectInfo, RegionInfo, ResolvedConfig, } from "./types.ts";
|
|
29
29
|
export { KNOWN_REGION_IDS, REGIONS } from "./types.ts";
|
|
30
30
|
export { uploadArtifact } from "./upload-artifact.ts";
|
|
31
31
|
export { type BuildCommandIo, buildCommandEnv, type PackageManager, type PackageManifest, readBuildScript, readPackageManifest, resolvePackageManager, runBuildCommand, } from "./workspace.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
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,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;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,GACb,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,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;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,GACb,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,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,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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ export interface ResolvedConfig {
|
|
|
50
50
|
region: string;
|
|
51
51
|
portMapping?: PortMapping;
|
|
52
52
|
}
|
|
53
|
+
export type { ComputeRegion } from "./config/types.ts";
|
|
53
54
|
/** Known compute region identifiers, used by the CLI for interactive prompts. */
|
|
54
55
|
export declare const KNOWN_REGION_IDS: readonly ["us-east-1", "us-west-1", "eu-west-3", "eu-central-1", "ap-northeast-1", "ap-southeast-1"];
|
|
55
56
|
export declare const REGIONS: RegionInfo[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,sGAAkB,CAAC;AAChD,eAAO,MAAM,OAAO,EAAE,UAAU,EAG7B,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Domain types for the Compute SDK.
|
|
3
3
|
*/
|
|
4
|
+
import { COMPUTE_REGIONS } from "./config/types.js";
|
|
4
5
|
/** Known compute region identifiers, used by the CLI for interactive prompts. */
|
|
5
|
-
export const KNOWN_REGION_IDS =
|
|
6
|
-
"us-east-1",
|
|
7
|
-
"us-west-1",
|
|
8
|
-
"eu-west-3",
|
|
9
|
-
"eu-central-1",
|
|
10
|
-
"ap-northeast-1",
|
|
11
|
-
"ap-southeast-1",
|
|
12
|
-
];
|
|
6
|
+
export const KNOWN_REGION_IDS = COMPUTE_REGIONS;
|
|
13
7
|
export const REGIONS = KNOWN_REGION_IDS.map((id) => ({
|
|
14
8
|
id,
|
|
15
9
|
displayName: id,
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA+DpD,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAChD,MAAM,CAAC,MAAM,OAAO,GAAiB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjE,EAAE;IACF,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/artifact-stage.ts
CHANGED
|
@@ -45,13 +45,20 @@ export async function stageStandaloneArtifact(options: {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/** Options shared by the symlink-materializing copy walk. */
|
|
48
|
-
interface MaterializeOptions {
|
|
48
|
+
export interface MaterializeOptions {
|
|
49
49
|
/** Root of the standalone output being copied (for fallback resolution). */
|
|
50
|
-
standaloneRoot
|
|
50
|
+
standaloneRoot?: string;
|
|
51
51
|
/** The app directory; symlink targets here are materialized. */
|
|
52
52
|
appRoot: string;
|
|
53
53
|
/** The workspace/source root; targets in its node_modules are materialized. */
|
|
54
54
|
sourceRoot: string;
|
|
55
|
+
/**
|
|
56
|
+
* Roots a symlink may resolve into. Defaults to the app root and workspace
|
|
57
|
+
* node_modules, matching standalone framework artifacts.
|
|
58
|
+
*/
|
|
59
|
+
allowedSymlinkTargetRoots?: readonly string[];
|
|
60
|
+
/** Ignore a missing source path instead of throwing. Useful for trace lists. */
|
|
61
|
+
ignoreMissingSource?: boolean;
|
|
55
62
|
signal?: AbortSignal;
|
|
56
63
|
}
|
|
57
64
|
|
|
@@ -138,13 +145,21 @@ function storeMaterializeOptions(
|
|
|
138
145
|
};
|
|
139
146
|
}
|
|
140
147
|
|
|
141
|
-
async function copyPathMaterializingSymlinks(
|
|
148
|
+
export async function copyPathMaterializingSymlinks(
|
|
142
149
|
sourcePath: string,
|
|
143
150
|
destinationPath: string,
|
|
144
151
|
options: MaterializeOptions,
|
|
145
152
|
): Promise<void> {
|
|
146
153
|
options.signal?.throwIfAborted();
|
|
147
|
-
const sourceStat = await lstat(sourcePath)
|
|
154
|
+
const sourceStat = await lstat(sourcePath).catch((error) => {
|
|
155
|
+
if (options.ignoreMissingSource && isENOENT(error)) {
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
throw error;
|
|
159
|
+
});
|
|
160
|
+
if (!sourceStat) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
148
163
|
|
|
149
164
|
if (sourceStat.isSymbolicLink()) {
|
|
150
165
|
const resolvedTarget = await resolveSymlinkTarget(sourcePath, options);
|
|
@@ -188,10 +203,11 @@ async function resolveSymlinkTarget(
|
|
|
188
203
|
const resolvedTarget = path.resolve(path.dirname(symlinkPath), linkTarget);
|
|
189
204
|
|
|
190
205
|
if (await pathExists(resolvedTarget, options.signal)) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
206
|
+
const allowedRoots = options.allowedSymlinkTargetRoots ?? [
|
|
207
|
+
options.appRoot,
|
|
208
|
+
path.join(options.sourceRoot, "node_modules"),
|
|
209
|
+
];
|
|
210
|
+
if (!allowedRoots.some((root) => isPathWithin(root, resolvedTarget))) {
|
|
195
211
|
throw new Error(
|
|
196
212
|
`Build artifact symlink escapes the app directory: ${resolvedTarget}`,
|
|
197
213
|
);
|
|
@@ -199,7 +215,10 @@ async function resolveSymlinkTarget(
|
|
|
199
215
|
return resolvedTarget;
|
|
200
216
|
}
|
|
201
217
|
|
|
202
|
-
if (
|
|
218
|
+
if (
|
|
219
|
+
options.standaloneRoot &&
|
|
220
|
+
isPathWithin(options.standaloneRoot, resolvedTarget)
|
|
221
|
+
) {
|
|
203
222
|
const fallbackTarget = path.join(
|
|
204
223
|
options.appRoot,
|
|
205
224
|
path.relative(options.standaloneRoot, resolvedTarget),
|
|
@@ -218,7 +237,7 @@ async function resolveSymlinkTarget(
|
|
|
218
237
|
}
|
|
219
238
|
|
|
220
239
|
throw new Error(
|
|
221
|
-
`
|
|
240
|
+
`Build artifact symlink target is missing: ${symlinkPath} -> ${linkTarget} (resolved to ${resolvedTarget})`,
|
|
222
241
|
);
|
|
223
242
|
}
|
|
224
243
|
|
|
@@ -232,7 +251,7 @@ function isPnpmHoistLink(symlinkPath: string): boolean {
|
|
|
232
251
|
return false;
|
|
233
252
|
}
|
|
234
253
|
|
|
235
|
-
function isPathWithin(rootPath: string, candidatePath: string): boolean {
|
|
254
|
+
export function isPathWithin(rootPath: string, candidatePath: string): boolean {
|
|
236
255
|
const relativePath = path.relative(rootPath, candidatePath);
|
|
237
256
|
return (
|
|
238
257
|
relativePath === "" ||
|
|
@@ -242,13 +261,6 @@ function isPathWithin(rootPath: string, candidatePath: string): boolean {
|
|
|
242
261
|
);
|
|
243
262
|
}
|
|
244
263
|
|
|
245
|
-
function isPathWithinWorkspaceDependency(
|
|
246
|
-
sourceRoot: string,
|
|
247
|
-
candidatePath: string,
|
|
248
|
-
): boolean {
|
|
249
|
-
return isPathWithin(path.join(sourceRoot, "node_modules"), candidatePath);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
264
|
async function readEntries(directory: string, signal?: AbortSignal) {
|
|
253
265
|
signal?.throwIfAborted();
|
|
254
266
|
return readdir(directory, { withFileTypes: true });
|
|
@@ -267,6 +279,14 @@ async function pathExists(
|
|
|
267
279
|
}
|
|
268
280
|
}
|
|
269
281
|
|
|
282
|
+
function isENOENT(error: unknown): boolean {
|
|
283
|
+
return (
|
|
284
|
+
error instanceof Error &&
|
|
285
|
+
"code" in error &&
|
|
286
|
+
(error as { code?: string }).code === "ENOENT"
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
|
|
270
290
|
async function directoryExists(
|
|
271
291
|
targetPath: string,
|
|
272
292
|
signal?: AbortSignal,
|
package/src/astro-build.ts
CHANGED
|
@@ -76,6 +76,7 @@ export class AstroBuild implements BuildStrategy {
|
|
|
76
76
|
missingEntrypointMessage: settings.entrypoint
|
|
77
77
|
? undefined
|
|
78
78
|
: '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.',
|
|
79
|
+
traceDependencies: true,
|
|
79
80
|
signal,
|
|
80
81
|
});
|
|
81
82
|
}
|
package/src/config/index.ts
CHANGED
|
@@ -51,10 +51,13 @@ export { serializeComputeConfig } from "./serialize.ts";
|
|
|
51
51
|
export { resolveSourceRoot, sourceRootLineage } from "./source-root.ts";
|
|
52
52
|
export {
|
|
53
53
|
COMPUTE_FRAMEWORKS,
|
|
54
|
+
COMPUTE_REGIONS,
|
|
54
55
|
type ComputeAppConfig,
|
|
55
56
|
type ComputeBuildConfig,
|
|
56
57
|
type ComputeConfig,
|
|
58
|
+
type ComputeConfigDefaults,
|
|
57
59
|
type ComputeEnvConfig,
|
|
58
60
|
type ComputeFramework,
|
|
61
|
+
type ComputeRegion,
|
|
59
62
|
defineComputeConfig,
|
|
60
63
|
} from "./types.ts";
|
package/src/config/normalize.ts
CHANGED
|
@@ -3,7 +3,12 @@ import path from "node:path";
|
|
|
3
3
|
import { Result, TaggedError } from "better-result";
|
|
4
4
|
|
|
5
5
|
import { frameworkByKey } from "./frameworks.ts";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
COMPUTE_FRAMEWORKS,
|
|
8
|
+
COMPUTE_REGIONS,
|
|
9
|
+
type ComputeFramework,
|
|
10
|
+
type ComputeRegion,
|
|
11
|
+
} from "./types.ts";
|
|
7
12
|
|
|
8
13
|
export interface ComputeDeployTargetBuild {
|
|
9
14
|
/** Build command, null to skip the build step, undefined when not configured. */
|
|
@@ -21,6 +26,8 @@ export interface ComputeDeployTarget {
|
|
|
21
26
|
/** `apps` map key, or null for a single-app `app` config. */
|
|
22
27
|
key: string | null;
|
|
23
28
|
name: string | null;
|
|
29
|
+
/** Region used when creating a new app, or null to use the consumer default. */
|
|
30
|
+
region: ComputeRegion | null;
|
|
24
31
|
/** Normalized app directory relative to the config file, or null for the config directory. */
|
|
25
32
|
root: string | null;
|
|
26
33
|
framework: ComputeFramework | null;
|
|
@@ -102,6 +109,7 @@ export type ComputeConfigTargetError =
|
|
|
102
109
|
|
|
103
110
|
const KNOWN_APP_KEYS = [
|
|
104
111
|
"name",
|
|
112
|
+
"region",
|
|
105
113
|
"root",
|
|
106
114
|
"framework",
|
|
107
115
|
"entry",
|
|
@@ -109,6 +117,7 @@ const KNOWN_APP_KEYS = [
|
|
|
109
117
|
"env",
|
|
110
118
|
"build",
|
|
111
119
|
] as const;
|
|
120
|
+
const KNOWN_TOP_LEVEL_KEYS = ["app", "apps", "region"] as const;
|
|
112
121
|
const KNOWN_ENV_KEYS = ["file", "vars"] as const;
|
|
113
122
|
const KNOWN_BUILD_KEYS = ["command", "outputDirectory", "entrypoint"] as const;
|
|
114
123
|
|
|
@@ -123,6 +132,7 @@ export function normalizeComputeConfig(
|
|
|
123
132
|
const issues: string[] = [];
|
|
124
133
|
const targets: ComputeDeployTarget[] = [];
|
|
125
134
|
let kind: LoadedComputeConfig["kind"] = "single";
|
|
135
|
+
let projectRegion: ComputeRegion | null = null;
|
|
126
136
|
|
|
127
137
|
if (!isPlainObject(exported)) {
|
|
128
138
|
issues.push(
|
|
@@ -131,11 +141,16 @@ export function normalizeComputeConfig(
|
|
|
131
141
|
} else {
|
|
132
142
|
const hasApp = exported.app !== undefined;
|
|
133
143
|
const hasApps = exported.apps !== undefined;
|
|
144
|
+
projectRegion = readOptionalComputeRegion(
|
|
145
|
+
exported.region,
|
|
146
|
+
"region",
|
|
147
|
+
issues,
|
|
148
|
+
);
|
|
134
149
|
|
|
135
150
|
for (const key of Object.keys(exported)) {
|
|
136
|
-
if (
|
|
151
|
+
if (!(KNOWN_TOP_LEVEL_KEYS as readonly string[]).includes(key)) {
|
|
137
152
|
issues.push(
|
|
138
|
-
`Unknown top-level key "${key}". Expected
|
|
153
|
+
`Unknown top-level key "${key}". Expected one of: ${KNOWN_TOP_LEVEL_KEYS.join(", ")}.`,
|
|
139
154
|
);
|
|
140
155
|
}
|
|
141
156
|
}
|
|
@@ -145,7 +160,13 @@ export function normalizeComputeConfig(
|
|
|
145
160
|
"Use either `app` (single app) or `apps` (multi-app), not both.",
|
|
146
161
|
);
|
|
147
162
|
} else if (hasApp) {
|
|
148
|
-
const target = normalizeAppEntry(
|
|
163
|
+
const target = normalizeAppEntry(
|
|
164
|
+
exported.app,
|
|
165
|
+
"app",
|
|
166
|
+
null,
|
|
167
|
+
projectRegion,
|
|
168
|
+
issues,
|
|
169
|
+
);
|
|
149
170
|
if (target) {
|
|
150
171
|
targets.push(target);
|
|
151
172
|
}
|
|
@@ -163,7 +184,13 @@ export function normalizeComputeConfig(
|
|
|
163
184
|
issues.push("`apps` keys must be non-empty target names.");
|
|
164
185
|
continue;
|
|
165
186
|
}
|
|
166
|
-
const target = normalizeAppEntry(
|
|
187
|
+
const target = normalizeAppEntry(
|
|
188
|
+
value,
|
|
189
|
+
`apps.${key}`,
|
|
190
|
+
key,
|
|
191
|
+
projectRegion,
|
|
192
|
+
issues,
|
|
193
|
+
);
|
|
167
194
|
if (target) {
|
|
168
195
|
targets.push(target);
|
|
169
196
|
}
|
|
@@ -294,6 +321,7 @@ function normalizeAppEntry(
|
|
|
294
321
|
value: unknown,
|
|
295
322
|
label: string,
|
|
296
323
|
key: string | null,
|
|
324
|
+
projectRegion: ComputeRegion | null,
|
|
297
325
|
issues: string[],
|
|
298
326
|
): ComputeDeployTarget | null {
|
|
299
327
|
if (!isPlainObject(value)) {
|
|
@@ -310,6 +338,12 @@ function normalizeAppEntry(
|
|
|
310
338
|
}
|
|
311
339
|
|
|
312
340
|
const name = readOptionalNonEmptyString(value.name, `${label}.name`, issues);
|
|
341
|
+
const appRegion = readOptionalComputeRegion(
|
|
342
|
+
value.region,
|
|
343
|
+
`${label}.region`,
|
|
344
|
+
issues,
|
|
345
|
+
);
|
|
346
|
+
const region = appRegion ?? projectRegion;
|
|
313
347
|
const entry = readOptionalNonEmptyString(
|
|
314
348
|
value.entry,
|
|
315
349
|
`${label}.entry`,
|
|
@@ -414,6 +448,7 @@ function normalizeAppEntry(
|
|
|
414
448
|
return {
|
|
415
449
|
key,
|
|
416
450
|
name,
|
|
451
|
+
region,
|
|
417
452
|
root,
|
|
418
453
|
framework,
|
|
419
454
|
entry:
|
|
@@ -601,6 +636,24 @@ function readOptionalNonEmptyString(
|
|
|
601
636
|
return value.trim();
|
|
602
637
|
}
|
|
603
638
|
|
|
639
|
+
function readOptionalComputeRegion(
|
|
640
|
+
value: unknown,
|
|
641
|
+
label: string,
|
|
642
|
+
issues: string[],
|
|
643
|
+
): ComputeRegion | null {
|
|
644
|
+
if (value === undefined) {
|
|
645
|
+
return null;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
const region = typeof value === "string" ? value.trim() : "";
|
|
649
|
+
if (!(COMPUTE_REGIONS as readonly string[]).includes(region)) {
|
|
650
|
+
issues.push(`\`${label}\` must be one of: ${COMPUTE_REGIONS.join(", ")}.`);
|
|
651
|
+
return null;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
return region as ComputeRegion;
|
|
655
|
+
}
|
|
656
|
+
|
|
604
657
|
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
605
658
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
606
659
|
}
|
package/src/config/serialize.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { ComputeAppConfig, ComputeConfig } from "./types.ts";
|
|
2
2
|
|
|
3
|
+
type SerializableComputeConfig = {
|
|
4
|
+
region?: ComputeConfig["region"];
|
|
5
|
+
app?: ComputeAppConfig;
|
|
6
|
+
apps?: Record<string, ComputeAppConfig>;
|
|
7
|
+
};
|
|
8
|
+
|
|
3
9
|
/**
|
|
4
10
|
* Renders a `prisma.compute.ts` source file for a config — the scaffolding
|
|
5
11
|
* counterpart of `loadComputeConfig`. Output round-trips through
|
|
@@ -13,10 +19,7 @@ export function serializeComputeConfig(
|
|
|
13
19
|
},
|
|
14
20
|
): string {
|
|
15
21
|
const importFrom = options?.importFrom ?? "@prisma/compute-sdk/config";
|
|
16
|
-
const body =
|
|
17
|
-
"app" in config && config.app !== undefined
|
|
18
|
-
? `{\n app: ${renderValue(config.app, 1)},\n}`
|
|
19
|
-
: `{\n apps: ${renderValue((config as { apps: Record<string, ComputeAppConfig> }).apps, 1)},\n}`;
|
|
22
|
+
const body = renderValue(serializableComputeConfig(config), 0);
|
|
20
23
|
|
|
21
24
|
return [
|
|
22
25
|
`import { defineComputeConfig } from ${JSON.stringify(importFrom)};`,
|
|
@@ -26,6 +29,38 @@ export function serializeComputeConfig(
|
|
|
26
29
|
].join("\n");
|
|
27
30
|
}
|
|
28
31
|
|
|
32
|
+
function serializableComputeConfig(
|
|
33
|
+
config: ComputeConfig,
|
|
34
|
+
): SerializableComputeConfig {
|
|
35
|
+
const serializable: SerializableComputeConfig = {};
|
|
36
|
+
if (config.region !== undefined) {
|
|
37
|
+
serializable.region = config.region;
|
|
38
|
+
}
|
|
39
|
+
if ("app" in config && config.app !== undefined) {
|
|
40
|
+
serializable.app = serializableComputeAppConfig(config.app);
|
|
41
|
+
} else {
|
|
42
|
+
serializable.apps = Object.fromEntries(
|
|
43
|
+
Object.entries(
|
|
44
|
+
(config as { apps: Record<string, ComputeAppConfig> }).apps,
|
|
45
|
+
).map(([key, app]) => [key, serializableComputeAppConfig(app)]),
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
return serializable;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function serializableComputeAppConfig(app: ComputeAppConfig): ComputeAppConfig {
|
|
52
|
+
return {
|
|
53
|
+
name: app.name,
|
|
54
|
+
region: app.region,
|
|
55
|
+
root: app.root,
|
|
56
|
+
framework: app.framework,
|
|
57
|
+
entry: app.entry,
|
|
58
|
+
httpPort: app.httpPort,
|
|
59
|
+
env: app.env,
|
|
60
|
+
build: app.build,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
29
64
|
const IDENTIFIER_KEY = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
30
65
|
|
|
31
66
|
function renderValue(value: unknown, depth: number): string {
|
package/src/config/types.ts
CHANGED
|
@@ -19,6 +19,18 @@ export const COMPUTE_FRAMEWORKS = [
|
|
|
19
19
|
|
|
20
20
|
export type ComputeFramework = (typeof COMPUTE_FRAMEWORKS)[number];
|
|
21
21
|
|
|
22
|
+
/** Supported Compute region identifiers. */
|
|
23
|
+
export const COMPUTE_REGIONS = Object.freeze([
|
|
24
|
+
"us-east-1",
|
|
25
|
+
"us-west-1",
|
|
26
|
+
"eu-west-3",
|
|
27
|
+
"eu-central-1",
|
|
28
|
+
"ap-northeast-1",
|
|
29
|
+
"ap-southeast-1",
|
|
30
|
+
] as const);
|
|
31
|
+
|
|
32
|
+
export type ComputeRegion = (typeof COMPUTE_REGIONS)[number];
|
|
33
|
+
|
|
22
34
|
export interface ComputeEnvConfig {
|
|
23
35
|
/** Dotenv file path(s) resolved relative to the config file directory. */
|
|
24
36
|
file?: string | string[];
|
|
@@ -42,6 +54,8 @@ export interface ComputeBuildConfig {
|
|
|
42
54
|
export interface ComputeAppConfig {
|
|
43
55
|
/** Deployed app name. Defaults to the `apps` key, then consumer-side inference. */
|
|
44
56
|
name?: string;
|
|
57
|
+
/** App region override. Defaults to the project region, then consumer-side inference. */
|
|
58
|
+
region?: ComputeRegion;
|
|
45
59
|
/** App directory relative to the config file. Defaults to the config file directory. */
|
|
46
60
|
root?: string;
|
|
47
61
|
/** Framework to deploy. Defaults to detection from the app directory. */
|
|
@@ -56,6 +70,14 @@ export interface ComputeAppConfig {
|
|
|
56
70
|
build?: ComputeBuildConfig;
|
|
57
71
|
}
|
|
58
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Project-level defaults for every app in the config.
|
|
75
|
+
*/
|
|
76
|
+
export interface ComputeConfigDefaults {
|
|
77
|
+
/** Default region used when creating new apps. Existing apps keep their current region. */
|
|
78
|
+
region?: ComputeRegion;
|
|
79
|
+
}
|
|
80
|
+
|
|
59
81
|
/**
|
|
60
82
|
* `prisma.compute.ts` accepts exactly one of:
|
|
61
83
|
*
|
|
@@ -63,8 +85,11 @@ export interface ComputeAppConfig {
|
|
|
63
85
|
* - `apps` — a monorepo or multi-app repository, keyed by deploy target
|
|
64
86
|
*/
|
|
65
87
|
export type ComputeConfig =
|
|
66
|
-
| { app: ComputeAppConfig; apps?: never }
|
|
67
|
-
|
|
|
88
|
+
| (ComputeConfigDefaults & { app: ComputeAppConfig; apps?: never })
|
|
89
|
+
| (ComputeConfigDefaults & {
|
|
90
|
+
apps: Record<string, ComputeAppConfig>;
|
|
91
|
+
app?: never;
|
|
92
|
+
});
|
|
68
93
|
|
|
69
94
|
/**
|
|
70
95
|
* Identity helper that gives `prisma.compute.ts` full type checking:
|