@prisma/compute-sdk 0.30.0 → 0.31.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.
@@ -11,5 +11,5 @@ export { COMPUTE_CONFIG_FILENAME, COMPUTE_CONFIG_FILENAMES, ComputeConfigAmbiguo
11
11
  export { ComputeConfigInvalidError, type ComputeConfigTargetError, ComputeConfigTargetRequiredError, ComputeConfigTargetUnknownError, type ComputeDeployTarget, type ComputeDeployTargetBuild, computeTargetAppDir, inferComputeTargetFromCwd, type LoadedComputeConfig, normalizeComputeConfig, selectComputeDeployTarget, } from "./normalize.ts";
12
12
  export { serializeComputeConfig } from "./serialize.ts";
13
13
  export { resolveSourceRoot, sourceRootLineage } from "./source-root.ts";
14
- export { COMPUTE_FRAMEWORKS, type ComputeAppConfig, type ComputeBuildConfig, type ComputeConfig, type ComputeEnvConfig, type ComputeFramework, defineComputeConfig, } from "./types.ts";
14
+ export { COMPUTE_FRAMEWORKS, COMPUTE_REGIONS, type ComputeAppConfig, type ComputeBuildConfig, type ComputeConfig, type ComputeConfigDefaults, type ComputeEnvConfig, type ComputeFramework, type ComputeRegion, defineComputeConfig, } from "./types.ts";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -11,5 +11,5 @@ export { COMPUTE_CONFIG_FILENAME, COMPUTE_CONFIG_FILENAMES, ComputeConfigAmbiguo
11
11
  export { ComputeConfigInvalidError, ComputeConfigTargetRequiredError, ComputeConfigTargetUnknownError, computeTargetAppDir, inferComputeTargetFromCwd, normalizeComputeConfig, selectComputeDeployTarget, } from "./normalize.js";
12
12
  export { serializeComputeConfig } from "./serialize.js";
13
13
  export { resolveSourceRoot, sourceRootLineage } from "./source-root.js";
14
- export { COMPUTE_FRAMEWORKS, defineComputeConfig, } from "./types.js";
14
+ export { COMPUTE_FRAMEWORKS, COMPUTE_REGIONS, defineComputeConfig, } from "./types.js";
15
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EAEzB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,UAAU,EAGV,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAE3B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EAEzB,gCAAgC,EAChC,+BAA+B,EAG/B,mBAAmB,EACnB,yBAAyB,EAEzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,kBAAkB,EAMlB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EAEzB,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,EACd,UAAU,EAGV,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAE3B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EAEzB,gCAAgC,EAChC,+BAA+B,EAG/B,mBAAmB,EACnB,yBAAyB,EAEzB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,eAAe,EAQf,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Result } from "better-result";
2
- import { type ComputeFramework } from "./types.ts";
2
+ import { type ComputeFramework, type ComputeRegion } from "./types.ts";
3
3
  export interface ComputeDeployTargetBuild {
4
4
  /** Build command, null to skip the build step, undefined when not configured. */
5
5
  command: string | null | undefined;
@@ -15,6 +15,8 @@ export interface ComputeDeployTarget {
15
15
  /** `apps` map key, or null for a single-app `app` config. */
16
16
  key: string | null;
17
17
  name: string | null;
18
+ /** Region used when creating a new app, or null to use the consumer default. */
19
+ region: ComputeRegion | null;
18
20
  /** Normalized app directory relative to the config file, or null for the config directory. */
19
21
  root: string | null;
20
22
  framework: ComputeFramework | null;
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/config/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,iFAAiF;IACjF,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,sFAAsF;IACtF,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,8FAA8F;IAC9F,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,oGAAoG;IACpG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0EAA0E;IAC1E,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;;aAKU,MAAM;gBACH,MAAM;YACV,MAAM,EAAE;;AALlB,qBAAa,yBAA0B,SAAQ,8BAM3C;gBACU,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAOjD;;aAKU,MAAM;gBACH,MAAM;sBACA,MAAM,EAAE;;AAL5B,qBAAa,gCAAiC,SAAQ,qCAMlD;gBACU,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE;CAO3D;;aAKU,MAAM;gBACH,MAAM;qBACD,MAAM;sBACL,MAAM,EAAE;;AAN5B,qBAAa,+BAAgC,SAAQ,oCAOjD;gBAEA,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EAAE;CAS7B;AAED,MAAM,MAAM,wBAAwB,GAChC,gCAAgC,GAChC,+BAA+B,CAAC;AAcpC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAoExD;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CA6CvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CA4BpB"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/config/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAGpD,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,wBAAwB;IACvC,iFAAiF;IACjF,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,sFAAsF;IACtF,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gFAAgF;IAChF,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,8FAA8F;IAC9F,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,oGAAoG;IACpG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0EAA0E;IAC1E,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;;aAKU,MAAM;gBACH,MAAM;YACV,MAAM,EAAE;;AALlB,qBAAa,yBAA0B,SAAQ,8BAM3C;gBACU,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAOjD;;aAKU,MAAM;gBACH,MAAM;sBACA,MAAM,EAAE;;AAL5B,qBAAa,gCAAiC,SAAQ,qCAMlD;gBACU,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE;CAO3D;;aAKU,MAAM;gBACH,MAAM;qBACD,MAAM;sBACL,MAAM,EAAE;;AAN5B,qBAAa,+BAAgC,SAAQ,oCAOjD;gBAEA,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EAAE;CAS7B;AAED,MAAM,MAAM,wBAAwB,GAChC,gCAAgC,GAChC,+BAA+B,CAAC;AAgBpC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAsFxD;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,GAC1B,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CA6CvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CA4BpB"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { Result, TaggedError } from "better-result";
3
3
  import { frameworkByKey } from "./frameworks.js";
4
- import { COMPUTE_FRAMEWORKS } from "./types.js";
4
+ import { COMPUTE_FRAMEWORKS, COMPUTE_REGIONS, } from "./types.js";
5
5
  export class ComputeConfigInvalidError extends TaggedError("ComputeConfigInvalidError")() {
6
6
  constructor(configPath, issues) {
7
7
  super({
@@ -32,6 +32,7 @@ export class ComputeConfigTargetUnknownError extends TaggedError("ComputeConfigT
32
32
  }
33
33
  const KNOWN_APP_KEYS = [
34
34
  "name",
35
+ "region",
35
36
  "root",
36
37
  "framework",
37
38
  "entry",
@@ -39,6 +40,7 @@ const KNOWN_APP_KEYS = [
39
40
  "env",
40
41
  "build",
41
42
  ];
43
+ const KNOWN_TOP_LEVEL_KEYS = ["app", "apps", "region"];
42
44
  const KNOWN_ENV_KEYS = ["file", "vars"];
43
45
  const KNOWN_BUILD_KEYS = ["command", "outputDirectory", "entrypoint"];
44
46
  /**
@@ -49,22 +51,24 @@ export function normalizeComputeConfig(exported, configPath) {
49
51
  const issues = [];
50
52
  const targets = [];
51
53
  let kind = "single";
54
+ let projectRegion = null;
52
55
  if (!isPlainObject(exported)) {
53
56
  issues.push("The config must `export default defineComputeConfig({ ... })` with an object value.");
54
57
  }
55
58
  else {
56
59
  const hasApp = exported.app !== undefined;
57
60
  const hasApps = exported.apps !== undefined;
61
+ projectRegion = readOptionalComputeRegion(exported.region, "region", issues);
58
62
  for (const key of Object.keys(exported)) {
59
- if (key !== "app" && key !== "apps") {
60
- issues.push(`Unknown top-level key "${key}". Expected "app" or "apps".`);
63
+ if (!KNOWN_TOP_LEVEL_KEYS.includes(key)) {
64
+ issues.push(`Unknown top-level key "${key}". Expected one of: ${KNOWN_TOP_LEVEL_KEYS.join(", ")}.`);
61
65
  }
62
66
  }
63
67
  if (hasApp && hasApps) {
64
68
  issues.push("Use either `app` (single app) or `apps` (multi-app), not both.");
65
69
  }
66
70
  else if (hasApp) {
67
- const target = normalizeAppEntry(exported.app, "app", null, issues);
71
+ const target = normalizeAppEntry(exported.app, "app", null, projectRegion, issues);
68
72
  if (target) {
69
73
  targets.push(target);
70
74
  }
@@ -84,7 +88,7 @@ export function normalizeComputeConfig(exported, configPath) {
84
88
  issues.push("`apps` keys must be non-empty target names.");
85
89
  continue;
86
90
  }
87
- const target = normalizeAppEntry(value, `apps.${key}`, key, issues);
91
+ const target = normalizeAppEntry(value, `apps.${key}`, key, projectRegion, issues);
88
92
  if (target) {
89
93
  targets.push(target);
90
94
  }
@@ -171,7 +175,7 @@ export function inferComputeTargetFromCwd(config, cwd) {
171
175
  }
172
176
  return bestIsTied ? undefined : bestKey;
173
177
  }
174
- function normalizeAppEntry(value, label, key, issues) {
178
+ function normalizeAppEntry(value, label, key, projectRegion, issues) {
175
179
  if (!isPlainObject(value)) {
176
180
  issues.push(`\`${label}\` must be an object.`);
177
181
  return null;
@@ -182,6 +186,8 @@ function normalizeAppEntry(value, label, key, issues) {
182
186
  }
183
187
  }
184
188
  const name = readOptionalNonEmptyString(value.name, `${label}.name`, issues);
189
+ const appRegion = readOptionalComputeRegion(value.region, `${label}.region`, issues);
190
+ const region = appRegion ?? projectRegion;
185
191
  const entry = readOptionalNonEmptyString(value.entry, `${label}.entry`, issues);
186
192
  let root = null;
187
193
  if (value.root !== undefined) {
@@ -252,6 +258,7 @@ function normalizeAppEntry(value, label, key, issues) {
252
258
  return {
253
259
  key,
254
260
  name,
261
+ region,
255
262
  root,
256
263
  framework,
257
264
  entry: entry ??
@@ -382,6 +389,17 @@ function readOptionalNonEmptyString(value, label, issues) {
382
389
  }
383
390
  return value.trim();
384
391
  }
392
+ function readOptionalComputeRegion(value, label, issues) {
393
+ if (value === undefined) {
394
+ return null;
395
+ }
396
+ const region = typeof value === "string" ? value.trim() : "";
397
+ if (!COMPUTE_REGIONS.includes(region)) {
398
+ issues.push(`\`${label}\` must be one of: ${COMPUTE_REGIONS.join(", ")}.`);
399
+ return null;
400
+ }
401
+ return region;
402
+ }
385
403
  function isPlainObject(value) {
386
404
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
387
405
  }
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/config/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/config/normalize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/config/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE;IACR,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,MAAM,CAaR"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/config/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAQlE;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE;IACR,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,MAAM,CAUR"}
@@ -5,9 +5,7 @@
5
5
  */
6
6
  export function serializeComputeConfig(config, options) {
7
7
  const importFrom = options?.importFrom ?? "@prisma/compute-sdk/config";
8
- const body = "app" in config && config.app !== undefined
9
- ? `{\n app: ${renderValue(config.app, 1)},\n}`
10
- : `{\n apps: ${renderValue(config.apps, 1)},\n}`;
8
+ const body = renderValue(serializableComputeConfig(config), 0);
11
9
  return [
12
10
  `import { defineComputeConfig } from ${JSON.stringify(importFrom)};`,
13
11
  "",
@@ -15,6 +13,31 @@ export function serializeComputeConfig(config, options) {
15
13
  "",
16
14
  ].join("\n");
17
15
  }
16
+ function serializableComputeConfig(config) {
17
+ const serializable = {};
18
+ if (config.region !== undefined) {
19
+ serializable.region = config.region;
20
+ }
21
+ if ("app" in config && config.app !== undefined) {
22
+ serializable.app = serializableComputeAppConfig(config.app);
23
+ }
24
+ else {
25
+ serializable.apps = Object.fromEntries(Object.entries(config.apps).map(([key, app]) => [key, serializableComputeAppConfig(app)]));
26
+ }
27
+ return serializable;
28
+ }
29
+ function serializableComputeAppConfig(app) {
30
+ return {
31
+ name: app.name,
32
+ region: app.region,
33
+ root: app.root,
34
+ framework: app.framework,
35
+ entry: app.entry,
36
+ httpPort: app.httpPort,
37
+ env: app.env,
38
+ build: app.build,
39
+ };
40
+ }
18
41
  const IDENTIFIER_KEY = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
19
42
  function renderValue(value, depth) {
20
43
  if (value === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/config/serialize.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,OAGC;IAED,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,4BAA4B,CAAC;IACvE,MAAM,IAAI,GACR,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;QACzC,CAAC,CAAC,aAAa,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;QAC/C,CAAC,CAAC,cAAc,WAAW,CAAE,MAAqD,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAEtG,OAAO;QACL,uCAAuC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG;QACpE,EAAE;QACF,sCAAsC,IAAI,IAAI;QAC9C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAEpD,SAAS,WAAW,CAAC,KAAc,EAAE,KAAa;IAChD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,QAAQ;YACX,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CACb,sBAAsB,OAAO,KAAK,6BAA6B,CAChE,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,MAAM,CACrE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CACnC,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5C,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,WAAW,GACf,GAAG,KAAK,WAAW;YACjB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,MAAM,GAAG,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,aAAa,GAAG,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/config/serialize.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@
7
7
  */
8
8
  export declare const COMPUTE_FRAMEWORKS: readonly ["nextjs", "nuxt", "astro", "hono", "nestjs", "tanstack-start", "custom", "bun"];
9
9
  export type ComputeFramework = (typeof COMPUTE_FRAMEWORKS)[number];
10
+ /** Supported Compute region identifiers. */
11
+ export declare const COMPUTE_REGIONS: readonly ["us-east-1", "us-west-1", "eu-west-3", "eu-central-1", "ap-northeast-1", "ap-southeast-1"];
12
+ export type ComputeRegion = (typeof COMPUTE_REGIONS)[number];
10
13
  export interface ComputeEnvConfig {
11
14
  /** Dotenv file path(s) resolved relative to the config file directory. */
12
15
  file?: string | string[];
@@ -28,6 +31,8 @@ export interface ComputeBuildConfig {
28
31
  export interface ComputeAppConfig {
29
32
  /** Deployed app name. Defaults to the `apps` key, then consumer-side inference. */
30
33
  name?: string;
34
+ /** App region override. Defaults to the project region, then consumer-side inference. */
35
+ region?: ComputeRegion;
31
36
  /** App directory relative to the config file. Defaults to the config file directory. */
32
37
  root?: string;
33
38
  /** Framework to deploy. Defaults to detection from the app directory. */
@@ -41,19 +46,26 @@ export interface ComputeAppConfig {
41
46
  /** Build settings. When present, these own the app's build configuration. */
42
47
  build?: ComputeBuildConfig;
43
48
  }
49
+ /**
50
+ * Project-level defaults for every app in the config.
51
+ */
52
+ export interface ComputeConfigDefaults {
53
+ /** Default region used when creating new apps. Existing apps keep their current region. */
54
+ region?: ComputeRegion;
55
+ }
44
56
  /**
45
57
  * `prisma.compute.ts` accepts exactly one of:
46
58
  *
47
59
  * - `app` — a repository that deploys a single app
48
60
  * - `apps` — a monorepo or multi-app repository, keyed by deploy target
49
61
  */
50
- export type ComputeConfig = {
62
+ export type ComputeConfig = (ComputeConfigDefaults & {
51
63
  app: ComputeAppConfig;
52
64
  apps?: never;
53
- } | {
65
+ }) | (ComputeConfigDefaults & {
54
66
  apps: Record<string, ComputeAppConfig>;
55
67
  app?: never;
56
- };
68
+ });
57
69
  /**
58
70
  * Identity helper that gives `prisma.compute.ts` full type checking:
59
71
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,2FASrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAChC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,GAAG,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE5D;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAExE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,2FASrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,4CAA4C;AAC5C,eAAO,MAAM,eAAe,sGAOjB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAChC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB,CAAC,qBAAqB,GAAG;IAAE,GAAG,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GACjE,CAAC,qBAAqB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC;CACb,CAAC,CAAC;AAEP;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAExE"}
@@ -15,6 +15,15 @@ export const COMPUTE_FRAMEWORKS = [
15
15
  "custom",
16
16
  "bun",
17
17
  ];
18
+ /** Supported Compute region identifiers. */
19
+ export const COMPUTE_REGIONS = Object.freeze([
20
+ "us-east-1",
21
+ "us-west-1",
22
+ "eu-west-3",
23
+ "eu-central-1",
24
+ "ap-northeast-1",
25
+ "ap-southeast-1",
26
+ ]);
18
27
  /**
19
28
  * Identity helper that gives `prisma.compute.ts` full type checking:
20
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,KAAK;CACG,CAAC;AAmDX;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,KAAK;CACG,CAAC;AAIX,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACR,CAAC,CAAC;AAgEZ;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC"}
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";
@@ -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;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
+ {"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[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,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,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,sGAOnB,CAAC;AAEX,eAAO,MAAM,OAAO,EAAE,UAAU,EAG7B,CAAC"}
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;AA6DH,iFAAiF;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,WAAW;IACX,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,gBAAgB;CACR,CAAC;AAEX,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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/compute-sdk",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "TypeScript SDK for deploying and managing applications on Prisma Compute",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "prisma/project-compute",
@@ -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";
@@ -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 { COMPUTE_FRAMEWORKS, type ComputeFramework } from "./types.ts";
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 (key !== "app" && key !== "apps") {
151
+ if (!(KNOWN_TOP_LEVEL_KEYS as readonly string[]).includes(key)) {
137
152
  issues.push(
138
- `Unknown top-level key "${key}". Expected "app" or "apps".`,
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(exported.app, "app", null, issues);
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(value, `apps.${key}`, key, issues);
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
  }
@@ -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 {
@@ -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
- | { apps: Record<string, ComputeAppConfig>; app?: never };
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:
package/src/index.ts CHANGED
@@ -120,6 +120,7 @@ export { TanstackStartBuild } from "./tanstack-start-build.ts";
120
120
  export type {
121
121
  AppDetail,
122
122
  AppInfo,
123
+ ComputeRegion,
123
124
  CreateProjectResult,
124
125
  DatabaseInfo,
125
126
  DeploymentDetail,
package/src/types.ts CHANGED
@@ -2,6 +2,8 @@
2
2
  * Domain types for the Compute SDK.
3
3
  */
4
4
 
5
+ import { COMPUTE_REGIONS } from "./config/types.ts";
6
+
5
7
  export interface PortMapping {
6
8
  http?: number | null;
7
9
  }
@@ -61,16 +63,10 @@ export interface ResolvedConfig {
61
63
  portMapping?: PortMapping;
62
64
  }
63
65
 
64
- /** Known compute region identifiers, used by the CLI for interactive prompts. */
65
- export const KNOWN_REGION_IDS = [
66
- "us-east-1",
67
- "us-west-1",
68
- "eu-west-3",
69
- "eu-central-1",
70
- "ap-northeast-1",
71
- "ap-southeast-1",
72
- ] as const;
66
+ export type { ComputeRegion } from "./config/types.ts";
73
67
 
68
+ /** Known compute region identifiers, used by the CLI for interactive prompts. */
69
+ export const KNOWN_REGION_IDS = COMPUTE_REGIONS;
74
70
  export const REGIONS: RegionInfo[] = KNOWN_REGION_IDS.map((id) => ({
75
71
  id,
76
72
  displayName: id,