run402 1.60.0 → 1.60.2

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/README.md CHANGED
@@ -88,7 +88,7 @@ jobs:
88
88
  steps:
89
89
  - uses: actions/checkout@v4
90
90
  - name: Deploy to run402
91
- run: npx --yes run402@1.54.4 deploy apply --manifest 'run402.deploy.json' --project 'prj_...'
91
+ run: npx --yes run402@1.60.0 deploy apply --manifest 'run402.deploy.json' --project 'prj_...'
92
92
  ```
93
93
 
94
94
  CI deploys can ship `site`, `functions`, and `database` changes. Keep secrets, domains, subdomains, routes, checks, and non-current base changes in a local `run402 deploy apply` where the full allowance-backed authority is present.
package/lib/deploy-v2.mjs CHANGED
@@ -24,8 +24,8 @@
24
24
  */
25
25
 
26
26
  import { readFileSync } from "node:fs";
27
- import { resolve, dirname, isAbsolute, join } from "node:path";
28
- import { githubActionsCredentials } from "#sdk/node";
27
+ import { resolve, dirname, isAbsolute } from "node:path";
28
+ import { githubActionsCredentials, normalizeDeployManifest } from "#sdk/node";
29
29
  import { getSdk } from "./sdk.mjs";
30
30
  import { reportSdkError, fail } from "./sdk-errors.mjs";
31
31
  import { API, allowanceAuthHeaders, getActiveProjectId, resolveProjectId } from "./config.mjs";
@@ -206,11 +206,12 @@ async function applyCmd(args) {
206
206
  }
207
207
 
208
208
  let raw;
209
+ let manifestPath = null;
209
210
  if (opts.spec) {
210
211
  raw = opts.spec;
211
212
  } else if (opts.manifest) {
212
213
  try {
213
- const manifestPath = isAbsolute(opts.manifest) ? opts.manifest : resolve(process.cwd(), opts.manifest);
214
+ manifestPath = isAbsolute(opts.manifest) ? opts.manifest : resolve(process.cwd(), opts.manifest);
214
215
  raw = readFileSync(manifestPath, "utf-8");
215
216
  } catch (err) {
216
217
  fail({
@@ -235,7 +236,7 @@ async function applyCmd(args) {
235
236
  }
236
237
  rejectLegacySecretManifest(spec, {
237
238
  source: opts.manifest ? "manifest" : opts.spec ? "spec" : "stdin",
238
- ...(opts.manifest ? { path: resolve(opts.manifest) } : {}),
239
+ ...(manifestPath ? { path: manifestPath } : {}),
239
240
  });
240
241
 
241
242
  // GH-232: Reject empty specs client-side. Without this guard,
@@ -269,38 +270,44 @@ async function applyCmd(args) {
269
270
  hint: "Did you mean to write a 'site.replace' or 'database.migrations' block? See https://run402.com/schemas/manifest.v1.json",
270
271
  details: {
271
272
  field: opts.manifest ? "manifest" : opts.spec ? "spec" : "stdin",
272
- ...(opts.manifest ? { path: resolve(opts.manifest) } : {}),
273
+ ...(manifestPath ? { path: manifestPath } : {}),
273
274
  meaningful_keys: meaningful,
274
275
  },
275
276
  });
276
277
  }
277
278
 
278
- if (opts.manifest) resolveFileDataPaths(spec, dirname(resolve(opts.manifest)));
279
-
280
- if (opts.project && spec.project_id && spec.project_id !== opts.project) {
279
+ const manifestProject = spec.project ?? spec.project_id;
280
+ if (opts.project && manifestProject && manifestProject !== opts.project) {
281
281
  fail({
282
282
  code: "BAD_USAGE",
283
- message: `project_id conflict: spec.project_id=${spec.project_id} but --project=${opts.project}`,
284
- details: { spec_project_id: spec.project_id, flag_project_id: opts.project },
283
+ message: `project_id conflict: manifest project=${manifestProject} but --project=${opts.project}`,
284
+ details: { spec_project_id: manifestProject, flag_project_id: opts.project },
285
285
  });
286
286
  }
287
- if (opts.project) spec.project_id = opts.project;
288
287
  const useGithubActionsOidc = hasGithubActionsOidcEnv();
289
- if (!spec.project_id) {
290
- spec.project_id = useGithubActionsOidc ? resolveCiProjectId() : resolveProjectId(null);
288
+ let defaultProject;
289
+ if (!opts.project && !manifestProject) {
290
+ defaultProject = useGithubActionsOidc ? resolveCiProjectId() : resolveProjectId(null);
291
+ }
292
+
293
+ let normalizedManifest;
294
+ try {
295
+ normalizedManifest = await normalizeDeployManifest(spec, {
296
+ baseDir: manifestPath ? dirname(manifestPath) : process.cwd(),
297
+ ...(opts.project ? { project: opts.project } : {}),
298
+ ...(defaultProject ? { defaultProject } : {}),
299
+ });
300
+ } catch (err) {
301
+ reportSdkError(err);
291
302
  }
292
303
 
293
- // Translate { project_id, ... } envelope → ReleaseSpec ({ project, ... })
294
- // The SDK ReleaseSpec uses `project` rather than `project_id`; both shapes
295
- // are accepted at the manifest layer (project_id is friendlier for agents
296
- // sharing JSON manifests with the MCP tool).
297
- const releaseSpec = mapManifestToReleaseSpec(spec);
298
- const idempotencyKey = spec.idempotency_key;
304
+ const releaseSpec = normalizedManifest.spec;
305
+ const idempotencyKey = normalizedManifest.idempotencyKey;
299
306
 
300
307
  let sdkOpts;
301
308
  if (useGithubActionsOidc) {
302
309
  sdkOpts = {
303
- credentials: githubActionsCredentials({ projectId: spec.project_id, apiBase: API }),
310
+ credentials: githubActionsCredentials({ projectId: releaseSpec.project, apiBase: API }),
304
311
  disablePaidFetch: true,
305
312
  };
306
313
  } else {
@@ -668,174 +675,3 @@ function parsePositiveInt(value, flag) {
668
675
  }
669
676
  return parsed;
670
677
  }
671
-
672
- // ─── Manifest → ReleaseSpec ──────────────────────────────────────────────────
673
-
674
- function mapManifestToReleaseSpec(spec) {
675
- const out = { project: spec.project_id };
676
- if (spec.base !== undefined) out.base = spec.base;
677
- if (spec.subdomains !== undefined) out.subdomains = spec.subdomains;
678
- if (spec.secrets !== undefined) out.secrets = spec.secrets;
679
- if (spec.routes !== undefined) out.routes = spec.routes;
680
- if (spec.checks !== undefined) out.checks = spec.checks;
681
-
682
- if (spec.database) {
683
- out.database = {};
684
- if (spec.database.expose !== undefined) out.database.expose = spec.database.expose;
685
- if (spec.database.zero_downtime !== undefined) out.database.zero_downtime = spec.database.zero_downtime;
686
- if (spec.database.migrations) {
687
- out.database.migrations = spec.database.migrations.map((m) => {
688
- const mm = { id: m.id };
689
- if (m.sql !== undefined) mm.sql = m.sql;
690
- if (m.sql_ref !== undefined) mm.sql_ref = m.sql_ref;
691
- if (m.checksum !== undefined) mm.checksum = m.checksum;
692
- if (m.transaction !== undefined) mm.transaction = m.transaction;
693
- return mm;
694
- });
695
- }
696
- }
697
-
698
- if (spec.functions) {
699
- out.functions = {};
700
- if (spec.functions.replace) out.functions.replace = mapFunctionMap(spec.functions.replace);
701
- if (spec.functions.patch) {
702
- out.functions.patch = {};
703
- if (spec.functions.patch.set) out.functions.patch.set = mapFunctionMap(spec.functions.patch.set);
704
- if (spec.functions.patch.delete) out.functions.patch.delete = spec.functions.patch.delete;
705
- }
706
- }
707
-
708
- if (spec.site) {
709
- if (spec.site.replace) {
710
- out.site = { replace: mapFileMap(spec.site.replace) };
711
- } else if (spec.site.patch) {
712
- const patch = {};
713
- if (spec.site.patch.put) patch.put = mapFileMap(spec.site.patch.put);
714
- if (spec.site.patch.delete) patch.delete = spec.site.patch.delete;
715
- out.site = { patch };
716
- }
717
- }
718
-
719
- return out;
720
- }
721
-
722
- function mapFunctionMap(map) {
723
- const out = {};
724
- for (const [name, fn] of Object.entries(map)) {
725
- const f = {};
726
- if (fn.runtime) f.runtime = fn.runtime;
727
- if (fn.source !== undefined) f.source = fileEntryToContentSource(fn.source);
728
- if (fn.files) f.files = mapFileMap(fn.files);
729
- if (fn.entrypoint !== undefined) f.entrypoint = fn.entrypoint;
730
- if (fn.config !== undefined) f.config = fn.config;
731
- if (fn.schedule !== undefined) f.schedule = fn.schedule;
732
- out[name] = f;
733
- }
734
- return out;
735
- }
736
-
737
- function mapFileMap(map) {
738
- const out = {};
739
- for (const [path, entry] of Object.entries(map)) {
740
- out[path] = fileEntryToContentSource(entry);
741
- }
742
- return out;
743
- }
744
-
745
- function fileEntryToContentSource(entry) {
746
- if (entry === null || entry === undefined) return entry;
747
- if (typeof entry === "string") return entry;
748
- if (entry instanceof Uint8Array) return entry;
749
- if (typeof entry === "object") {
750
- if (entry.encoding === "base64" && typeof entry.data === "string") {
751
- const bytes = Buffer.from(entry.data, "base64");
752
- const u8 = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
753
- return entry.contentType ? { data: u8, contentType: entry.contentType } : u8;
754
- }
755
- if (typeof entry.data === "string") {
756
- return entry.contentType ? { data: entry.data, contentType: entry.contentType } : entry.data;
757
- }
758
- // Pre-resolved ContentRef shape — pass through.
759
- if (typeof entry.sha256 === "string" && typeof entry.size === "number") {
760
- return entry;
761
- }
762
- }
763
- return entry;
764
- }
765
-
766
- /**
767
- * Resolve any `{ "path": "..." }` entries in the manifest to inline data.
768
- * Mirrors the legacy deploy.mjs behavior so `run402 deploy apply` accepts
769
- * the same files-with-paths shape that `run402 deploy` does today.
770
- */
771
- function resolveFileDataPaths(spec, baseDir) {
772
- // Site files
773
- if (spec.site?.replace) resolveMap(spec.site.replace, baseDir);
774
- if (spec.site?.patch?.put) resolveMap(spec.site.patch.put, baseDir);
775
- // Function files
776
- const visitFns = (fnMap) => {
777
- if (!fnMap) return;
778
- for (const fn of Object.values(fnMap)) {
779
- if (fn.source && typeof fn.source === "object" && fn.source.path) {
780
- const resolved = readFileEntry(fn.source, baseDir);
781
- if (resolved) fn.source = resolved;
782
- }
783
- if (fn.files) resolveMap(fn.files, baseDir);
784
- }
785
- };
786
- visitFns(spec.functions?.replace);
787
- visitFns(spec.functions?.patch?.set);
788
- // Migration sql_path / sql_file
789
- if (spec.database?.migrations) {
790
- for (const m of spec.database.migrations) {
791
- if (!m.sql && m.sql_path) {
792
- try {
793
- const p = isAbsolute(m.sql_path) ? m.sql_path : join(baseDir, m.sql_path);
794
- m.sql = readFileSync(p, "utf-8");
795
- delete m.sql_path;
796
- } catch (err) {
797
- fail({
798
- code: "BAD_USAGE",
799
- message: `Failed to read migration sql_path '${m.sql_path}': ${err.message}`,
800
- details: { migration_id: m.id, sql_path: m.sql_path },
801
- });
802
- }
803
- }
804
- }
805
- }
806
- }
807
-
808
- function resolveMap(map, baseDir) {
809
- for (const [key, entry] of Object.entries(map)) {
810
- if (entry && typeof entry === "object" && typeof entry.path === "string" && entry.data === undefined) {
811
- const resolved = readFileEntry(entry, baseDir);
812
- if (resolved) map[key] = resolved;
813
- }
814
- }
815
- }
816
-
817
- function readFileEntry(entry, baseDir) {
818
- try {
819
- const p = isAbsolute(entry.path) ? entry.path : join(baseDir, entry.path);
820
- const buf = readFileSync(p);
821
- const out = {};
822
- // Detect text vs binary via simple UTF-8 round-trip; mirrors the bundle
823
- // deploy behavior. Image/font types get base64; HTML/CSS/JS stay UTF-8.
824
- const looksTextual = !entry.contentType?.match(/^(image|font|application\/(pdf|wasm|octet-stream|zip))/);
825
- if (looksTextual) {
826
- out.data = buf.toString("utf-8");
827
- out.encoding = "utf-8";
828
- } else {
829
- out.data = buf.toString("base64");
830
- out.encoding = "base64";
831
- }
832
- if (entry.contentType) out.contentType = entry.contentType;
833
- return out;
834
- } catch (err) {
835
- fail({
836
- code: "BAD_USAGE",
837
- message: `Failed to read file '${entry.path}': ${err.message}`,
838
- details: { path: entry.path },
839
- });
840
- }
841
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402",
3
- "version": "1.60.0",
3
+ "version": "1.60.2",
4
4
  "description": "CLI for Run402 — provision Postgres databases, deploy static sites, generate images, and manage wallets via x402 and MPP micropayments.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,80 @@
1
+ import type { ContentRef, ContentSource, DatabaseSpec, FunctionSpec, ReleaseSpec } from "../namespaces/deploy.types.js";
2
+ export type DeployManifestFileEntry = ContentSource | {
3
+ path: string;
4
+ contentType?: string;
5
+ data?: never;
6
+ } | {
7
+ data: string | ContentSource;
8
+ encoding?: "utf-8" | "base64";
9
+ contentType?: string;
10
+ };
11
+ export type DeployManifestFileSet = Record<string, DeployManifestFileEntry>;
12
+ export interface DeployManifestMigrationSpec {
13
+ id: string;
14
+ checksum?: string;
15
+ sql?: string;
16
+ sql_ref?: ContentRef;
17
+ sql_path?: string;
18
+ sql_file?: string;
19
+ transaction?: "required" | "none";
20
+ }
21
+ export interface DeployManifestDatabaseSpec {
22
+ migrations?: DeployManifestMigrationSpec[];
23
+ expose?: DatabaseSpec["expose"];
24
+ zero_downtime?: boolean;
25
+ }
26
+ export interface DeployManifestFunctionSpec extends Omit<FunctionSpec, "source" | "files"> {
27
+ source?: DeployManifestFileEntry;
28
+ files?: DeployManifestFileSet;
29
+ }
30
+ export interface DeployManifestFunctionsSpec {
31
+ replace?: Record<string, DeployManifestFunctionSpec>;
32
+ patch?: {
33
+ set?: Record<string, DeployManifestFunctionSpec>;
34
+ delete?: string[];
35
+ };
36
+ }
37
+ export type DeployManifestSiteSpec = {
38
+ replace: DeployManifestFileSet;
39
+ } | {
40
+ patch: {
41
+ put?: DeployManifestFileSet;
42
+ delete?: string[];
43
+ };
44
+ };
45
+ export interface DeployManifestInput extends Omit<ReleaseSpec, "project" | "database" | "functions" | "site"> {
46
+ /** SDK-native project field. `project_id` is also accepted for MCP/CLI parity. */
47
+ project?: string;
48
+ /** MCP/CLI-friendly project field, normalized to `ReleaseSpec.project`. */
49
+ project_id?: string;
50
+ database?: DeployManifestDatabaseSpec;
51
+ functions?: DeployManifestFunctionsSpec;
52
+ site?: DeployManifestSiteSpec;
53
+ /** CLI/MCP manifest idempotency key, returned separately for deploy options. */
54
+ idempotency_key?: string;
55
+ /** JS-friendly alias for `idempotency_key`. */
56
+ idempotencyKey?: string;
57
+ }
58
+ export interface NormalizeDeployManifestOptions {
59
+ /** Base directory for relative `{ path }`, `sql_path`, and `sql_file` entries. Defaults to `process.cwd()`. */
60
+ baseDir?: string;
61
+ /** Explicit project override, equivalent to CLI `--project`. Conflicts with a different manifest project. */
62
+ project?: string;
63
+ /** Fallback project used only when the manifest omits both `project` and `project_id`. */
64
+ defaultProject?: string;
65
+ }
66
+ export interface LoadDeployManifestOptions extends Omit<NormalizeDeployManifestOptions, "baseDir"> {
67
+ }
68
+ export interface NormalizedDeployManifest {
69
+ /** SDK-native deploy spec ready for `r.deploy.apply(spec, opts)`. */
70
+ spec: ReleaseSpec;
71
+ /** Optional idempotency key from `idempotency_key` / `idempotencyKey`. */
72
+ idempotencyKey?: string;
73
+ /** Parsed manifest object supplied by the caller or loaded from disk. */
74
+ manifest: DeployManifestInput;
75
+ /** Absolute path when produced by `loadDeployManifest(path)`. */
76
+ manifestPath?: string;
77
+ }
78
+ export declare function loadDeployManifest(path: string, opts?: LoadDeployManifestOptions): Promise<NormalizedDeployManifest>;
79
+ export declare function normalizeDeployManifest(input: DeployManifestInput, opts?: NormalizeDeployManifestOptions): Promise<NormalizedDeployManifest>;
80
+ //# sourceMappingURL=deploy-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/node/deploy-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,293 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { dirname, isAbsolute, resolve as resolvePath, } from "node:path";
3
+ import { LocalError } from "../errors.js";
4
+ const CONTEXT = "normalizing deploy manifest";
5
+ export async function loadDeployManifest(path, opts = {}) {
6
+ const manifestPath = isAbsolute(path) ? path : resolvePath(process.cwd(), path);
7
+ let raw;
8
+ try {
9
+ raw = await readFile(manifestPath, "utf-8");
10
+ }
11
+ catch (err) {
12
+ throw new LocalError(`Failed to read deploy manifest '${path}': ${err.message}`, "loading deploy manifest", err);
13
+ }
14
+ let parsed;
15
+ try {
16
+ parsed = JSON.parse(raw);
17
+ }
18
+ catch (err) {
19
+ throw new LocalError(`Deploy manifest is not valid JSON: ${err.message}`, "parsing deploy manifest", err);
20
+ }
21
+ const normalized = await normalizeDeployManifest(parsed, {
22
+ ...opts,
23
+ baseDir: dirname(manifestPath),
24
+ });
25
+ return { ...normalized, manifestPath };
26
+ }
27
+ export async function normalizeDeployManifest(input, opts = {}) {
28
+ assertPlainRecord(input, "Deploy manifest");
29
+ const manifest = input;
30
+ const project = resolveProject(manifest, opts);
31
+ const spec = { project };
32
+ if (manifest.base !== undefined)
33
+ spec.base = manifest.base;
34
+ if (manifest.subdomains !== undefined)
35
+ spec.subdomains = manifest.subdomains;
36
+ if (manifest.secrets !== undefined)
37
+ spec.secrets = manifest.secrets;
38
+ if (manifest.routes !== undefined)
39
+ spec.routes = manifest.routes;
40
+ if (manifest.checks !== undefined)
41
+ spec.checks = manifest.checks;
42
+ if (manifest.database !== undefined) {
43
+ spec.database = await mapDatabase(manifest.database, opts);
44
+ }
45
+ if (manifest.functions !== undefined) {
46
+ spec.functions = mapFunctions(manifest.functions, opts);
47
+ }
48
+ if (manifest.site !== undefined) {
49
+ spec.site = mapSite(manifest.site, opts);
50
+ }
51
+ const idempotencyKey = resolveIdempotencyKey(manifest);
52
+ return idempotencyKey === undefined
53
+ ? { spec, manifest }
54
+ : { spec, idempotencyKey, manifest };
55
+ }
56
+ function resolveProject(manifest, opts) {
57
+ if (manifest.project !== undefined &&
58
+ manifest.project_id !== undefined &&
59
+ manifest.project !== manifest.project_id) {
60
+ throw new LocalError(`project conflict: manifest.project=${manifest.project} but manifest.project_id=${manifest.project_id}`, CONTEXT);
61
+ }
62
+ const manifestProject = manifest.project ?? manifest.project_id;
63
+ if (opts.project !== undefined &&
64
+ manifestProject !== undefined &&
65
+ opts.project !== manifestProject) {
66
+ throw new LocalError(`project conflict: manifest project=${manifestProject} but override project=${opts.project}`, CONTEXT);
67
+ }
68
+ const project = opts.project ?? manifestProject ?? opts.defaultProject;
69
+ if (!project) {
70
+ throw new LocalError("Deploy manifest requires project_id (or project). Pass a project override or set a default project before normalizing.", CONTEXT);
71
+ }
72
+ return project;
73
+ }
74
+ function resolveIdempotencyKey(manifest) {
75
+ if (manifest.idempotency_key !== undefined &&
76
+ manifest.idempotencyKey !== undefined &&
77
+ manifest.idempotency_key !== manifest.idempotencyKey) {
78
+ throw new LocalError("idempotency key conflict: idempotency_key and idempotencyKey differ", CONTEXT);
79
+ }
80
+ return manifest.idempotency_key ?? manifest.idempotencyKey;
81
+ }
82
+ async function mapDatabase(database, opts) {
83
+ const out = {};
84
+ if (database.expose !== undefined)
85
+ out.expose = database.expose;
86
+ if (database.zero_downtime !== undefined) {
87
+ out.zero_downtime = database.zero_downtime;
88
+ }
89
+ if (database.migrations !== undefined) {
90
+ if (!Array.isArray(database.migrations)) {
91
+ throw new LocalError("Deploy manifest database.migrations must be an array", CONTEXT);
92
+ }
93
+ out.migrations = [];
94
+ for (const migration of database.migrations) {
95
+ out.migrations.push(await mapMigration(migration, opts));
96
+ }
97
+ }
98
+ return out;
99
+ }
100
+ async function mapMigration(migration, opts) {
101
+ assertPlainRecord(migration, "Deploy manifest database.migrations[]");
102
+ const out = {
103
+ id: migration.id,
104
+ };
105
+ if (migration.sql !== undefined)
106
+ out.sql = migration.sql;
107
+ if (migration.sql_ref !== undefined)
108
+ out.sql_ref = migration.sql_ref;
109
+ if (migration.checksum !== undefined)
110
+ out.checksum = migration.checksum;
111
+ if (migration.transaction !== undefined)
112
+ out.transaction = migration.transaction;
113
+ const sqlPath = migration.sql_path ?? migration.sql_file;
114
+ if (migration.sql_path !== undefined &&
115
+ migration.sql_file !== undefined &&
116
+ migration.sql_path !== migration.sql_file) {
117
+ throw new LocalError(`Migration ${migration.id} has both sql_path and sql_file with different values`, CONTEXT);
118
+ }
119
+ if (out.sql === undefined && sqlPath !== undefined) {
120
+ const field = migration.sql_path !== undefined ? "sql_path" : "sql_file";
121
+ const abs = resolveLocalPath(sqlPath, opts.baseDir);
122
+ try {
123
+ out.sql = await readFile(abs, "utf-8");
124
+ }
125
+ catch (err) {
126
+ throw new LocalError(`Failed to read migration ${field} '${sqlPath}': ${err.message}`, CONTEXT, err);
127
+ }
128
+ }
129
+ return out;
130
+ }
131
+ function mapFunctions(functions, opts) {
132
+ assertPlainRecord(functions, "Deploy manifest functions");
133
+ const out = {};
134
+ const replace = functions.replace;
135
+ if (replace !== undefined) {
136
+ assertPlainRecord(replace, "Deploy manifest functions.replace");
137
+ out.replace = mapFunctionMap(replace, opts);
138
+ }
139
+ const patch = functions.patch;
140
+ if (patch !== undefined) {
141
+ assertPlainRecord(patch, "Deploy manifest functions.patch");
142
+ out.patch = {};
143
+ if (patch.set !== undefined) {
144
+ assertPlainRecord(patch.set, "Deploy manifest functions.patch.set");
145
+ out.patch.set = mapFunctionMap(patch.set, opts);
146
+ }
147
+ if (patch.delete !== undefined) {
148
+ if (!Array.isArray(patch.delete)) {
149
+ throw new LocalError("Deploy manifest functions.patch.delete must be an array", CONTEXT);
150
+ }
151
+ out.patch.delete = patch.delete;
152
+ }
153
+ }
154
+ return out;
155
+ }
156
+ function mapFunctionMap(map, opts) {
157
+ const out = {};
158
+ for (const [name, fn] of Object.entries(map)) {
159
+ out[name] = mapFunction(fn, opts);
160
+ }
161
+ return out;
162
+ }
163
+ function mapFunction(fn, opts) {
164
+ assertPlainRecord(fn, "Deploy manifest function entry");
165
+ const raw = fn;
166
+ const out = {};
167
+ if (raw.runtime !== undefined)
168
+ out.runtime = raw.runtime;
169
+ if (raw.source !== undefined) {
170
+ out.source = fileEntryToContentSource(raw.source, opts, "functions.source");
171
+ }
172
+ if (raw.files !== undefined)
173
+ out.files = mapFileSet(raw.files, opts);
174
+ if (raw.entrypoint !== undefined)
175
+ out.entrypoint = raw.entrypoint;
176
+ if (raw.config !== undefined)
177
+ out.config = raw.config;
178
+ if (raw.schedule !== undefined)
179
+ out.schedule = raw.schedule;
180
+ return out;
181
+ }
182
+ function mapSite(site, opts) {
183
+ assertPlainRecord(site, "Deploy manifest site");
184
+ const raw = site;
185
+ if (Object.prototype.hasOwnProperty.call(raw, "replace")) {
186
+ if (raw.replace === undefined) {
187
+ throw new LocalError("Deploy manifest site.replace is undefined", CONTEXT);
188
+ }
189
+ return { replace: mapFileSet(raw.replace, opts) };
190
+ }
191
+ const patch = {};
192
+ if (Object.prototype.hasOwnProperty.call(raw, "patch")) {
193
+ assertPlainRecord(raw.patch, "Deploy manifest site.patch");
194
+ const rawPatch = raw.patch;
195
+ if (rawPatch.put !== undefined) {
196
+ patch.put = mapFileSet(rawPatch.put, opts);
197
+ }
198
+ if (rawPatch.delete !== undefined) {
199
+ if (!Array.isArray(rawPatch.delete)) {
200
+ throw new LocalError("Deploy manifest site.patch.delete must be an array", CONTEXT);
201
+ }
202
+ patch.delete = rawPatch.delete;
203
+ }
204
+ return { patch };
205
+ }
206
+ throw new LocalError("Deploy manifest site must include replace or patch", CONTEXT);
207
+ }
208
+ function mapFileSet(map, opts) {
209
+ assertPlainRecord(map, "Deploy manifest file map");
210
+ const out = {};
211
+ for (const [path, entry] of Object.entries(map)) {
212
+ out[path] = fileEntryToContentSource(entry, opts, path);
213
+ }
214
+ return out;
215
+ }
216
+ function fileEntryToContentSource(entry, opts, label) {
217
+ if (typeof entry === "string")
218
+ return entry;
219
+ if (entry instanceof Uint8Array)
220
+ return entry;
221
+ if (entry instanceof ArrayBuffer)
222
+ return entry;
223
+ if (typeof Blob !== "undefined" && entry instanceof Blob)
224
+ return entry;
225
+ if (isReadableStream(entry))
226
+ return entry;
227
+ if (isContentRef(entry))
228
+ return { ...entry };
229
+ if (!isRecord(entry) || Array.isArray(entry)) {
230
+ return entry;
231
+ }
232
+ const rec = entry;
233
+ const encoding = rec.encoding;
234
+ if (encoding !== undefined &&
235
+ encoding !== "utf-8" &&
236
+ encoding !== "base64") {
237
+ throw new LocalError(`Unsupported encoding for ${label}: ${String(encoding)}`, CONTEXT);
238
+ }
239
+ if (typeof rec.path === "string" &&
240
+ !Object.prototype.hasOwnProperty.call(rec, "data")) {
241
+ const source = {
242
+ __source: "fs-file",
243
+ path: resolveLocalPath(rec.path, opts.baseDir),
244
+ };
245
+ return typeof entry.contentType === "string"
246
+ ? { ...source, contentType: entry.contentType }
247
+ : source;
248
+ }
249
+ if (encoding === "base64") {
250
+ if (typeof rec.data !== "string") {
251
+ throw new LocalError(`Base64 file entry for ${label} must use a string data field`, CONTEXT);
252
+ }
253
+ const bytes = base64ToBytes(rec.data);
254
+ return typeof entry.contentType === "string"
255
+ ? { data: bytes, contentType: entry.contentType }
256
+ : bytes;
257
+ }
258
+ if (Object.prototype.hasOwnProperty.call(rec, "data")) {
259
+ if (rec.data === undefined) {
260
+ throw new LocalError(`File entry for ${label} is missing data`, CONTEXT);
261
+ }
262
+ const data = rec.data;
263
+ return typeof entry.contentType === "string"
264
+ ? { data, contentType: entry.contentType }
265
+ : data;
266
+ }
267
+ return entry;
268
+ }
269
+ function base64ToBytes(value) {
270
+ const buf = Buffer.from(value, "base64");
271
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
272
+ }
273
+ function resolveLocalPath(path, baseDir = process.cwd()) {
274
+ return isAbsolute(path) ? path : resolvePath(baseDir, path);
275
+ }
276
+ function isContentRef(value) {
277
+ return (isRecord(value) &&
278
+ typeof value.sha256 === "string" &&
279
+ typeof value.size === "number");
280
+ }
281
+ function isReadableStream(value) {
282
+ return (typeof ReadableStream !== "undefined" &&
283
+ value instanceof ReadableStream);
284
+ }
285
+ function isRecord(value) {
286
+ return value !== null && typeof value === "object";
287
+ }
288
+ function assertPlainRecord(value, label) {
289
+ if (!isRecord(value) || Array.isArray(value)) {
290
+ throw new LocalError(`${label} must be a JSON object`, CONTEXT);
291
+ }
292
+ }
293
+ //# sourceMappingURL=deploy-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-manifest.js","sourceRoot":"","sources":["../../src/node/deploy-manifest.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,8 @@ export { NodeSites } from "./sites-node.js";
58
58
  export type { DeployDirOptions, DeployEvent as DeployDirEvent, LegacyDeployEvent as LegacyDeployDirEvent, } from "./sites-node.js";
59
59
  export { fileSetFromDir, normalizeRelPath } from "./files.js";
60
60
  export type { FileSetFromDirOptions } from "./files.js";
61
+ export { loadDeployManifest, normalizeDeployManifest } from "./deploy-manifest.js";
62
+ export type { DeployManifestDatabaseSpec, DeployManifestFileEntry, DeployManifestFileSet, DeployManifestFunctionsSpec, DeployManifestFunctionSpec, DeployManifestInput, DeployManifestMigrationSpec, DeployManifestSiteSpec, LoadDeployManifestOptions, NormalizedDeployManifest, NormalizeDeployManifestOptions, } from "./deploy-manifest.js";
61
63
  export { signCiDelegation } from "./ci.js";
62
64
  export type { SignCiDelegationOptions } from "./ci.js";
63
65
  export { NodeCredentialsProvider } from "./credentials.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mGAAmG;IACnG,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAqB/D;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtE,mBAAmB,aAAa,CAAC;AAEjC,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,sBAAsB,EACtB,MAAM,EACN,KAAK,EACL,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mGAAmG;IACnG,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,UAAU,CAqB/D;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,iBAAiB,IAAI,oBAAoB,GAC1C,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtE,mBAAmB,aAAa,CAAC;AAEjC,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,sBAAsB,EACtB,MAAM,EACN,KAAK,EACL,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC"}
@@ -55,6 +55,7 @@ export function run402(opts = {}) {
55
55
  }
56
56
  export { NodeSites } from "./sites-node.js";
57
57
  export { fileSetFromDir, normalizeRelPath } from "./files.js";
58
+ export { loadDeployManifest, normalizeDeployManifest } from "./deploy-manifest.js";
58
59
  export { signCiDelegation } from "./ci.js";
59
60
  export { NodeCredentialsProvider } from "./credentials.js";
60
61
  export { setupPaidFetch, createLazyPaidFetch } from "./paid-fetch.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuB5C;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,OAA0B,EAAE;IACjD,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,uBAAuB,CAAC;YAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,KAAK,EACH,IAAI,CAAC,KAAK;YACV,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;KACtF,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjC,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,MAAM,GAAI,IAAI,CAAC,KAAuC,CAAC,MAAM,CAAC;IACnE,IAAwC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IAExE,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,6EAA6E;AAC7E,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,sBAAsB,EACtB,MAAM,EACN,KAAK,EACL,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuB5C;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAC,OAA0B,EAAE;IACjD,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,uBAAuB,CAAC;YAC3D,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,KAAK,EACH,IAAI,CAAC,KAAK;YACV,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;KACtF,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjC,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,MAAM,GAAI,IAAI,CAAC,KAAuC,CAAC,MAAM,CAAC;IACnE,IAAwC,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IAExE,OAAO,IAA6B,CAAC;AACvC,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAcnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,6EAA6E;AAC7E,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,EAAE,EACF,sBAAsB,EACtB,MAAM,EACN,KAAK,EACL,WAAW,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAC"}