@supacloud/lite 0.7.1 → 0.7.3
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/CHANGELOG.md +15 -0
- package/dist/cli.js +53 -43
- package/dist/index.js +46 -36
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/node/bundle-function.d.ts.map +1 -1
- package/dist/runtime/node/load-functions.d.ts +3 -2
- package/dist/runtime/node/load-functions.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.3](https://github.com/zuohuadong/supacloud/compare/supacloud-lite-v0.7.2...supacloud-lite-v0.7.3) (2026-08-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **lite:** load fetch-object edge functions ([#897](https://github.com/zuohuadong/supacloud/issues/897)) ([149e430](https://github.com/zuohuadong/supacloud/commit/149e4300ab17c0627e2f89990aabed9b7605b7cf))
|
|
9
|
+
* **lite:** skip request log for auth health probe ([#898](https://github.com/zuohuadong/supacloud/issues/898)) ([618d31c](https://github.com/zuohuadong/supacloud/commit/618d31c652ed1ec7b1ec6a9462e468ce1b7aa7b3))
|
|
10
|
+
|
|
11
|
+
## [0.7.2](https://github.com/zuohuadong/supacloud/compare/supacloud-lite-v0.7.1...supacloud-lite-v0.7.2) (2026-08-14)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **lite:** expose auth health probe ([#895](https://github.com/zuohuadong/supacloud/issues/895)) ([2a2930d](https://github.com/zuohuadong/supacloud/commit/2a2930d75acdcd44216bb60e89701b092e4fd352))
|
|
17
|
+
|
|
3
18
|
## [0.7.1](https://github.com/zuohuadong/supacloud/compare/supacloud-lite-v0.7.0...supacloud-lite-v0.7.1) (2026-08-11)
|
|
4
19
|
|
|
5
20
|
|
package/dist/cli.js
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
var __require = import.meta.require;
|
|
4
4
|
|
|
5
5
|
// src/cli.ts
|
|
6
|
-
import { mkdir as mkdir7, rm as
|
|
7
|
-
import { dirname as
|
|
6
|
+
import { mkdir as mkdir7, rm as rm5, writeFile as writeFile6 } from "fs/promises";
|
|
7
|
+
import { dirname as dirname6, join as join9, resolve as resolve4 } from "path";
|
|
8
8
|
// package.json
|
|
9
9
|
var package_default = {
|
|
10
10
|
name: "@supacloud/lite",
|
|
11
|
-
version: "0.7.
|
|
11
|
+
version: "0.7.3",
|
|
12
12
|
description: "Bun-native, single-project Supabase-compatible backend powered by PGlite",
|
|
13
13
|
type: "module",
|
|
14
14
|
license: "Apache-2.0",
|
|
@@ -8737,7 +8737,7 @@ ${msg.text}` : `[mail] to=${msg.to} subject="${msg.subject}"`));
|
|
|
8737
8737
|
headers: { "content-type": "application/json" }
|
|
8738
8738
|
}));
|
|
8739
8739
|
}
|
|
8740
|
-
if ((path === "/auth/v1/verify" || path === "/auth/v1/authorize" || path === "/auth/v1/callback") && (req.method === "GET" || req.method === "POST")) {
|
|
8740
|
+
if (path === "/auth/v1/health" && req.method === "GET" || (path === "/auth/v1/verify" || path === "/auth/v1/authorize" || path === "/auth/v1/callback") && (req.method === "GET" || req.method === "POST")) {
|
|
8741
8741
|
return withCors(await auth.handle(req, { role: "anon", claims: null }, url));
|
|
8742
8742
|
}
|
|
8743
8743
|
if (path.startsWith("/auth/v1/")) {
|
|
@@ -8794,7 +8794,7 @@ ${msg.text}` : `[mail] to=${msg.to} subject="${msg.subject}"`));
|
|
|
8794
8794
|
const res = await safeHandle(req);
|
|
8795
8795
|
try {
|
|
8796
8796
|
const p = new URL(req.url).pathname;
|
|
8797
|
-
if (p !== "/health" && p !== "/") {
|
|
8797
|
+
if (p !== "/health" && p !== "/" && p !== "/auth/v1/health") {
|
|
8798
8798
|
const level = res.status >= 500 ? "error" : res.status >= 400 ? "warn" : "info";
|
|
8799
8799
|
logs.push(`${req.method} ${p} \u2192 ${res.status}`, level);
|
|
8800
8800
|
}
|
|
@@ -8992,7 +8992,7 @@ function isNotFound(error) {
|
|
|
8992
8992
|
|
|
8993
8993
|
// src/project-runtime.ts
|
|
8994
8994
|
import { chmod, link, lstat, mkdir as mkdir5, readFile as readFile6, realpath as realpath2, unlink as unlink3, writeFile as writeFile4 } from "fs/promises";
|
|
8995
|
-
import { dirname as
|
|
8995
|
+
import { dirname as dirname4, isAbsolute, join as join7, parse, relative, resolve as resolve2 } from "path";
|
|
8996
8996
|
|
|
8997
8997
|
// src/runtime/node/bun-server.ts
|
|
8998
8998
|
async function serveBun(backend, opts = {}) {
|
|
@@ -9461,13 +9461,13 @@ function readFunctions(root) {
|
|
|
9461
9461
|
}
|
|
9462
9462
|
|
|
9463
9463
|
// src/runtime/node/load-functions.ts
|
|
9464
|
-
import { readdir as readdir2, readFile as readFile5, realpath, rm as
|
|
9465
|
-
import { join as join6 } from "path";
|
|
9464
|
+
import { readdir as readdir2, readFile as readFile5, realpath, rm as rm3, stat } from "fs/promises";
|
|
9465
|
+
import { dirname as dirname3, join as join6 } from "path";
|
|
9466
9466
|
import { pathToFileURL } from "url";
|
|
9467
9467
|
|
|
9468
9468
|
// src/runtime/node/bundle-function.ts
|
|
9469
9469
|
import { createHash } from "crypto";
|
|
9470
|
-
import { mkdir as mkdir4, readFile as readFile4, writeFile as writeFile3 } from "fs/promises";
|
|
9470
|
+
import { mkdir as mkdir4, readFile as readFile4, rm as rm2, writeFile as writeFile3 } from "fs/promises";
|
|
9471
9471
|
import { existsSync } from "fs";
|
|
9472
9472
|
import { tmpdir } from "os";
|
|
9473
9473
|
import { join as join5 } from "path";
|
|
@@ -9512,21 +9512,30 @@ function remotePlugin() {
|
|
|
9512
9512
|
};
|
|
9513
9513
|
}
|
|
9514
9514
|
async function bundleFunction(entryPath, name) {
|
|
9515
|
-
const outDir = join5(tmpdir(), "supacloud-lite-fn-bundle");
|
|
9515
|
+
const outDir = join5(tmpdir(), "supacloud-lite-fn-bundle", name);
|
|
9516
9516
|
await mkdir4(outDir, { recursive: true });
|
|
9517
|
-
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
|
|
9521
|
-
|
|
9522
|
-
|
|
9523
|
-
|
|
9524
|
-
|
|
9525
|
-
|
|
9526
|
-
|
|
9517
|
+
try {
|
|
9518
|
+
const buildOutput = await Bun.build({
|
|
9519
|
+
entrypoints: [entryPath],
|
|
9520
|
+
format: "esm",
|
|
9521
|
+
target: "bun",
|
|
9522
|
+
outdir: outDir,
|
|
9523
|
+
naming: `${name}-[hash].[ext]`,
|
|
9524
|
+
plugins: [remotePlugin()]
|
|
9525
|
+
});
|
|
9526
|
+
if (!buildOutput.success || buildOutput.outputs.length === 0) {
|
|
9527
|
+
throw new Error(buildOutput.logs.map((item) => item.message).join(`
|
|
9527
9528
|
`) || `failed to bundle ${entryPath}`);
|
|
9529
|
+
}
|
|
9530
|
+
return buildOutput.outputs[0].path;
|
|
9531
|
+
} catch (buildError) {
|
|
9532
|
+
try {
|
|
9533
|
+
await rm2(outDir, { recursive: true, force: true });
|
|
9534
|
+
} catch (cleanupError) {
|
|
9535
|
+
throw new AggregateError([buildError, cleanupError], `failed to clean function bundle directory ${outDir}`);
|
|
9536
|
+
}
|
|
9537
|
+
throw buildError;
|
|
9528
9538
|
}
|
|
9529
|
-
return result.outputs[0].path;
|
|
9530
9539
|
}
|
|
9531
9540
|
|
|
9532
9541
|
// src/runtime/node/load-functions.ts
|
|
@@ -9609,11 +9618,12 @@ async function loadFunctionsUnlocked(projectDir, options) {
|
|
|
9609
9618
|
resetCapturedHandler();
|
|
9610
9619
|
const mod = await import(importUrl);
|
|
9611
9620
|
const denoHandler = takeCapturedHandler();
|
|
9612
|
-
const
|
|
9621
|
+
const defaultExport = mod.default;
|
|
9622
|
+
const handler = typeof defaultExport === "function" ? defaultExport : defaultExport && typeof defaultExport.fetch === "function" ? defaultExport.fetch.bind(defaultExport) : denoHandler ? (req) => denoHandler(req) : undefined;
|
|
9613
9623
|
if (handler) {
|
|
9614
9624
|
functions.set(name, handler);
|
|
9615
9625
|
} else {
|
|
9616
|
-
console.warn(` warning: function "${name}" has no default
|
|
9626
|
+
console.warn(` warning: function "${name}" has no default function, fetch object, or Deno.serve() handler, skipped`);
|
|
9617
9627
|
}
|
|
9618
9628
|
} catch (e) {
|
|
9619
9629
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -9624,7 +9634,7 @@ async function loadFunctionsUnlocked(projectDir, options) {
|
|
|
9624
9634
|
}
|
|
9625
9635
|
} finally {
|
|
9626
9636
|
if (bundledPath)
|
|
9627
|
-
await
|
|
9637
|
+
await rm3(dirname3(bundledPath), { recursive: true, force: true }).catch(() => {});
|
|
9628
9638
|
}
|
|
9629
9639
|
break;
|
|
9630
9640
|
}
|
|
@@ -9793,7 +9803,7 @@ async function assertResetTargetCanonical(stateDir, canonicalStateDir, target, l
|
|
|
9793
9803
|
if (error.code !== "ENOENT")
|
|
9794
9804
|
throw error;
|
|
9795
9805
|
}
|
|
9796
|
-
const parent =
|
|
9806
|
+
const parent = dirname4(current);
|
|
9797
9807
|
if (parent === current)
|
|
9798
9808
|
throw new Error(`refusing to reset ${label} path outside the state directory: ${target}`);
|
|
9799
9809
|
current = parent;
|
|
@@ -9815,7 +9825,7 @@ async function nearestExistingAncestor(target) {
|
|
|
9815
9825
|
if (error.code !== "ENOENT")
|
|
9816
9826
|
throw error;
|
|
9817
9827
|
}
|
|
9818
|
-
const parent =
|
|
9828
|
+
const parent = dirname4(current);
|
|
9819
9829
|
if (parent === current)
|
|
9820
9830
|
throw new Error(`unable to resolve an existing ancestor for ${target}`);
|
|
9821
9831
|
current = parent;
|
|
@@ -10036,8 +10046,8 @@ async function findEphemeralPort(host = "127.0.0.1") {
|
|
|
10036
10046
|
}
|
|
10037
10047
|
|
|
10038
10048
|
// src/snapshot.ts
|
|
10039
|
-
import { chmod as chmod2, copyFile, lstat as lstat2, mkdir as mkdir6, mkdtemp, readdir as readdir3, readFile as readFile7, rename as rename2, rm as
|
|
10040
|
-
import { dirname as
|
|
10049
|
+
import { chmod as chmod2, copyFile, lstat as lstat2, mkdir as mkdir6, mkdtemp, readdir as readdir3, readFile as readFile7, rename as rename2, rm as rm4, writeFile as writeFile5 } from "fs/promises";
|
|
10050
|
+
import { dirname as dirname5, join as join8, parse as parse2, relative as relative2, resolve as resolve3, sep as sep2 } from "path";
|
|
10041
10051
|
import { create as createTar, extract as extractTar } from "tar";
|
|
10042
10052
|
var SNAPSHOT_FORMAT = "supacloud-lite-snapshot";
|
|
10043
10053
|
var SNAPSHOT_VERSION = 1;
|
|
@@ -10058,8 +10068,8 @@ async function createSnapshot(options) {
|
|
|
10058
10068
|
const output = resolve3(options.output);
|
|
10059
10069
|
if (await existingInfo(output))
|
|
10060
10070
|
throw new Error(`snapshot output already exists: ${output}`);
|
|
10061
|
-
await mkdir6(
|
|
10062
|
-
const stagingRoot = await mkdtemp(join8(
|
|
10071
|
+
await mkdir6(dirname5(output), { recursive: true });
|
|
10072
|
+
const stagingRoot = await mkdtemp(join8(dirname5(output), ".supacloud-lite-snapshot-"));
|
|
10063
10073
|
try {
|
|
10064
10074
|
await writeFile5(join8(stagingRoot, "manifest.json"), `${JSON.stringify(manifest, null, 2)}
|
|
10065
10075
|
`);
|
|
@@ -10078,17 +10088,17 @@ async function createSnapshot(options) {
|
|
|
10078
10088
|
await chmod2(output, 384);
|
|
10079
10089
|
return manifest;
|
|
10080
10090
|
} catch (error) {
|
|
10081
|
-
await
|
|
10091
|
+
await rm4(output, { force: true });
|
|
10082
10092
|
throw error;
|
|
10083
10093
|
} finally {
|
|
10084
|
-
await
|
|
10094
|
+
await rm4(stagingRoot, { recursive: true, force: true });
|
|
10085
10095
|
}
|
|
10086
10096
|
}
|
|
10087
10097
|
async function restoreSnapshot(options) {
|
|
10088
10098
|
const paths = normalizePaths(options.paths);
|
|
10089
10099
|
await assertSnapshotPaths(paths, { requireSecrets: false, allowMissingState: true });
|
|
10090
10100
|
await assertNoDataDirectoryLock(paths);
|
|
10091
|
-
const stagingRoot = await mkdtemp(join8(
|
|
10101
|
+
const stagingRoot = await mkdtemp(join8(dirname5(paths.stateDir), ".supacloud-lite-restore-"));
|
|
10092
10102
|
const payloadRoot = join8(stagingRoot, "payload");
|
|
10093
10103
|
const rollbackId = crypto.randomUUID();
|
|
10094
10104
|
const rollbackPaths = [];
|
|
@@ -10166,7 +10176,7 @@ async function restoreSnapshot(options) {
|
|
|
10166
10176
|
} catch (error) {
|
|
10167
10177
|
throw error instanceof Error ? error : new Error(String(error));
|
|
10168
10178
|
} finally {
|
|
10169
|
-
await
|
|
10179
|
+
await rm4(stagingRoot, { recursive: true, force: true });
|
|
10170
10180
|
}
|
|
10171
10181
|
}
|
|
10172
10182
|
function normalizePaths(paths) {
|
|
@@ -10260,7 +10270,7 @@ async function stageDirectory(root, destination) {
|
|
|
10260
10270
|
await walk(root, destination);
|
|
10261
10271
|
}
|
|
10262
10272
|
async function stageFile(source, target) {
|
|
10263
|
-
await mkdir6(
|
|
10273
|
+
await mkdir6(dirname5(target), { recursive: true });
|
|
10264
10274
|
await copyFile(source, target);
|
|
10265
10275
|
}
|
|
10266
10276
|
async function readManifest(payloadRoot) {
|
|
@@ -10331,14 +10341,14 @@ async function applyDirectorySwap(source, target, force, rollbackId, swaps) {
|
|
|
10331
10341
|
if (!force) {
|
|
10332
10342
|
if (await directoryHasEntries(target))
|
|
10333
10343
|
throw new Error(`restore target is not empty: ${target}; pass --force to replace it`);
|
|
10334
|
-
await
|
|
10344
|
+
await rm4(target, { recursive: true, force: true });
|
|
10335
10345
|
} else {
|
|
10336
|
-
swap.rollbackPath = join8(
|
|
10346
|
+
swap.rollbackPath = join8(dirname5(target), `.${target.split(sep2).pop() ?? "state"}.restore-${rollbackId}`);
|
|
10337
10347
|
await rename2(target, swap.rollbackPath);
|
|
10338
10348
|
}
|
|
10339
10349
|
}
|
|
10340
10350
|
try {
|
|
10341
|
-
await mkdir6(
|
|
10351
|
+
await mkdir6(dirname5(target), { recursive: true });
|
|
10342
10352
|
await rename2(source, target);
|
|
10343
10353
|
swaps.push(swap);
|
|
10344
10354
|
} catch (error) {
|
|
@@ -10349,7 +10359,7 @@ async function applyDirectorySwap(source, target, force, rollbackId, swaps) {
|
|
|
10349
10359
|
}
|
|
10350
10360
|
async function rollbackDirectorySwaps(swaps) {
|
|
10351
10361
|
for (const swap of [...swaps].reverse()) {
|
|
10352
|
-
await
|
|
10362
|
+
await rm4(swap.target, { recursive: true, force: true });
|
|
10353
10363
|
if (swap.rollbackPath)
|
|
10354
10364
|
await rename2(swap.rollbackPath, swap.target);
|
|
10355
10365
|
}
|
|
@@ -10372,7 +10382,7 @@ async function copyEntry(source, target) {
|
|
|
10372
10382
|
for (const entry of await readdir3(source))
|
|
10373
10383
|
await copyEntry(join8(source, entry), join8(target, entry));
|
|
10374
10384
|
} else if (info.isFile()) {
|
|
10375
|
-
await mkdir6(
|
|
10385
|
+
await mkdir6(dirname5(target), { recursive: true });
|
|
10376
10386
|
await Bun.write(target, Bun.file(source));
|
|
10377
10387
|
} else
|
|
10378
10388
|
throw new Error(`snapshot refuses unsupported filesystem entry: ${source}`);
|
|
@@ -10538,7 +10548,7 @@ ${privilegedKey}
|
|
|
10538
10548
|
try {
|
|
10539
10549
|
const source = await generateTypes(project2.backend.db, "public");
|
|
10540
10550
|
if (options.output) {
|
|
10541
|
-
await mkdir7(
|
|
10551
|
+
await mkdir7(dirname6(options.output), { recursive: true });
|
|
10542
10552
|
await writeFile6(options.output, source);
|
|
10543
10553
|
await writeStandardOutput(`Wrote ${options.output}
|
|
10544
10554
|
`);
|
|
@@ -10616,8 +10626,8 @@ async function runDbCommand(options) {
|
|
|
10616
10626
|
}
|
|
10617
10627
|
await assertResetPathsSafe(paths);
|
|
10618
10628
|
if (paths.dataDir)
|
|
10619
|
-
await
|
|
10620
|
-
await
|
|
10629
|
+
await rm5(paths.dataDir, { recursive: true, force: true });
|
|
10630
|
+
await rm5(paths.storageDir, { recursive: true, force: true });
|
|
10621
10631
|
const project2 = await createProjectBackend({
|
|
10622
10632
|
...options,
|
|
10623
10633
|
includeFunctions: false,
|
package/dist/index.js
CHANGED
|
@@ -85,7 +85,7 @@ function randomToken(bytes = 32) {
|
|
|
85
85
|
// package.json
|
|
86
86
|
var package_default = {
|
|
87
87
|
name: "@supacloud/lite",
|
|
88
|
-
version: "0.7.
|
|
88
|
+
version: "0.7.3",
|
|
89
89
|
description: "Bun-native, single-project Supabase-compatible backend powered by PGlite",
|
|
90
90
|
type: "module",
|
|
91
91
|
license: "Apache-2.0",
|
|
@@ -8581,7 +8581,7 @@ ${msg.text}` : `[mail] to=${msg.to} subject="${msg.subject}"`));
|
|
|
8581
8581
|
headers: { "content-type": "application/json" }
|
|
8582
8582
|
}));
|
|
8583
8583
|
}
|
|
8584
|
-
if ((path === "/auth/v1/verify" || path === "/auth/v1/authorize" || path === "/auth/v1/callback") && (req.method === "GET" || req.method === "POST")) {
|
|
8584
|
+
if (path === "/auth/v1/health" && req.method === "GET" || (path === "/auth/v1/verify" || path === "/auth/v1/authorize" || path === "/auth/v1/callback") && (req.method === "GET" || req.method === "POST")) {
|
|
8585
8585
|
return withCors(await auth.handle(req, { role: "anon", claims: null }, url));
|
|
8586
8586
|
}
|
|
8587
8587
|
if (path.startsWith("/auth/v1/")) {
|
|
@@ -8638,7 +8638,7 @@ ${msg.text}` : `[mail] to=${msg.to} subject="${msg.subject}"`));
|
|
|
8638
8638
|
const res = await safeHandle(req);
|
|
8639
8639
|
try {
|
|
8640
8640
|
const p = new URL(req.url).pathname;
|
|
8641
|
-
if (p !== "/health" && p !== "/") {
|
|
8641
|
+
if (p !== "/health" && p !== "/" && p !== "/auth/v1/health") {
|
|
8642
8642
|
const level = res.status >= 500 ? "error" : res.status >= 400 ? "warn" : "info";
|
|
8643
8643
|
logs.push(`${req.method} ${p} \u2192 ${res.status}`, level);
|
|
8644
8644
|
}
|
|
@@ -8872,7 +8872,7 @@ async function serveBun(backend, opts = {}) {
|
|
|
8872
8872
|
}
|
|
8873
8873
|
// src/project-runtime.ts
|
|
8874
8874
|
import { chmod, link, lstat, mkdir as mkdir4, readFile as readFile6, realpath as realpath2, unlink as unlink3, writeFile as writeFile3 } from "fs/promises";
|
|
8875
|
-
import { dirname as
|
|
8875
|
+
import { dirname as dirname4, isAbsolute, join as join6, parse, relative, resolve as resolve2 } from "path";
|
|
8876
8876
|
|
|
8877
8877
|
// src/runtime/node/config-toml.ts
|
|
8878
8878
|
import { readFileSync } from "fs";
|
|
@@ -9248,13 +9248,13 @@ function readFunctions(root) {
|
|
|
9248
9248
|
}
|
|
9249
9249
|
|
|
9250
9250
|
// src/runtime/node/load-functions.ts
|
|
9251
|
-
import { readdir, readFile as readFile4, realpath, rm as
|
|
9252
|
-
import { join as join4 } from "path";
|
|
9251
|
+
import { readdir, readFile as readFile4, realpath, rm as rm3, stat } from "fs/promises";
|
|
9252
|
+
import { dirname as dirname3, join as join4 } from "path";
|
|
9253
9253
|
import { pathToFileURL } from "url";
|
|
9254
9254
|
|
|
9255
9255
|
// src/runtime/node/bundle-function.ts
|
|
9256
9256
|
import { createHash } from "crypto";
|
|
9257
|
-
import { mkdir as mkdir3, readFile as readFile3, writeFile as writeFile2 } from "fs/promises";
|
|
9257
|
+
import { mkdir as mkdir3, readFile as readFile3, rm as rm2, writeFile as writeFile2 } from "fs/promises";
|
|
9258
9258
|
import { existsSync } from "fs";
|
|
9259
9259
|
import { tmpdir } from "os";
|
|
9260
9260
|
import { join as join3 } from "path";
|
|
@@ -9299,21 +9299,30 @@ function remotePlugin() {
|
|
|
9299
9299
|
};
|
|
9300
9300
|
}
|
|
9301
9301
|
async function bundleFunction(entryPath, name) {
|
|
9302
|
-
const outDir = join3(tmpdir(), "supacloud-lite-fn-bundle");
|
|
9302
|
+
const outDir = join3(tmpdir(), "supacloud-lite-fn-bundle", name);
|
|
9303
9303
|
await mkdir3(outDir, { recursive: true });
|
|
9304
|
-
|
|
9305
|
-
|
|
9306
|
-
|
|
9307
|
-
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9304
|
+
try {
|
|
9305
|
+
const buildOutput = await Bun.build({
|
|
9306
|
+
entrypoints: [entryPath],
|
|
9307
|
+
format: "esm",
|
|
9308
|
+
target: "bun",
|
|
9309
|
+
outdir: outDir,
|
|
9310
|
+
naming: `${name}-[hash].[ext]`,
|
|
9311
|
+
plugins: [remotePlugin()]
|
|
9312
|
+
});
|
|
9313
|
+
if (!buildOutput.success || buildOutput.outputs.length === 0) {
|
|
9314
|
+
throw new Error(buildOutput.logs.map((item) => item.message).join(`
|
|
9314
9315
|
`) || `failed to bundle ${entryPath}`);
|
|
9316
|
+
}
|
|
9317
|
+
return buildOutput.outputs[0].path;
|
|
9318
|
+
} catch (buildError) {
|
|
9319
|
+
try {
|
|
9320
|
+
await rm2(outDir, { recursive: true, force: true });
|
|
9321
|
+
} catch (cleanupError) {
|
|
9322
|
+
throw new AggregateError([buildError, cleanupError], `failed to clean function bundle directory ${outDir}`);
|
|
9323
|
+
}
|
|
9324
|
+
throw buildError;
|
|
9315
9325
|
}
|
|
9316
|
-
return result.outputs[0].path;
|
|
9317
9326
|
}
|
|
9318
9327
|
|
|
9319
9328
|
// src/runtime/node/load-functions.ts
|
|
@@ -9396,11 +9405,12 @@ async function loadFunctionsUnlocked(projectDir, options) {
|
|
|
9396
9405
|
resetCapturedHandler();
|
|
9397
9406
|
const mod = await import(importUrl);
|
|
9398
9407
|
const denoHandler = takeCapturedHandler();
|
|
9399
|
-
const
|
|
9408
|
+
const defaultExport = mod.default;
|
|
9409
|
+
const handler = typeof defaultExport === "function" ? defaultExport : defaultExport && typeof defaultExport.fetch === "function" ? defaultExport.fetch.bind(defaultExport) : denoHandler ? (req) => denoHandler(req) : undefined;
|
|
9400
9410
|
if (handler) {
|
|
9401
9411
|
functions.set(name, handler);
|
|
9402
9412
|
} else {
|
|
9403
|
-
console.warn(` warning: function "${name}" has no default
|
|
9413
|
+
console.warn(` warning: function "${name}" has no default function, fetch object, or Deno.serve() handler, skipped`);
|
|
9404
9414
|
}
|
|
9405
9415
|
} catch (e) {
|
|
9406
9416
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -9411,7 +9421,7 @@ async function loadFunctionsUnlocked(projectDir, options) {
|
|
|
9411
9421
|
}
|
|
9412
9422
|
} finally {
|
|
9413
9423
|
if (bundledPath)
|
|
9414
|
-
await
|
|
9424
|
+
await rm3(dirname3(bundledPath), { recursive: true, force: true }).catch(() => {});
|
|
9415
9425
|
}
|
|
9416
9426
|
break;
|
|
9417
9427
|
}
|
|
@@ -9692,8 +9702,8 @@ async function findEphemeralPort(host = "127.0.0.1") {
|
|
|
9692
9702
|
return port;
|
|
9693
9703
|
}
|
|
9694
9704
|
// src/snapshot.ts
|
|
9695
|
-
import { chmod as chmod2, copyFile, lstat as lstat2, mkdir as mkdir5, mkdtemp, readdir as readdir3, readFile as readFile7, rename as rename2, rm as
|
|
9696
|
-
import { dirname as
|
|
9705
|
+
import { chmod as chmod2, copyFile, lstat as lstat2, mkdir as mkdir5, mkdtemp, readdir as readdir3, readFile as readFile7, rename as rename2, rm as rm4, writeFile as writeFile4 } from "fs/promises";
|
|
9706
|
+
import { dirname as dirname5, join as join7, parse as parse2, relative as relative2, resolve as resolve3, sep as sep2 } from "path";
|
|
9697
9707
|
import { create as createTar, extract as extractTar } from "tar";
|
|
9698
9708
|
var SNAPSHOT_FORMAT = "supacloud-lite-snapshot";
|
|
9699
9709
|
var SNAPSHOT_VERSION = 1;
|
|
@@ -9714,8 +9724,8 @@ async function createSnapshot(options) {
|
|
|
9714
9724
|
const output = resolve3(options.output);
|
|
9715
9725
|
if (await existingInfo(output))
|
|
9716
9726
|
throw new Error(`snapshot output already exists: ${output}`);
|
|
9717
|
-
await mkdir5(
|
|
9718
|
-
const stagingRoot = await mkdtemp(join7(
|
|
9727
|
+
await mkdir5(dirname5(output), { recursive: true });
|
|
9728
|
+
const stagingRoot = await mkdtemp(join7(dirname5(output), ".supacloud-lite-snapshot-"));
|
|
9719
9729
|
try {
|
|
9720
9730
|
await writeFile4(join7(stagingRoot, "manifest.json"), `${JSON.stringify(manifest, null, 2)}
|
|
9721
9731
|
`);
|
|
@@ -9734,17 +9744,17 @@ async function createSnapshot(options) {
|
|
|
9734
9744
|
await chmod2(output, 384);
|
|
9735
9745
|
return manifest;
|
|
9736
9746
|
} catch (error) {
|
|
9737
|
-
await
|
|
9747
|
+
await rm4(output, { force: true });
|
|
9738
9748
|
throw error;
|
|
9739
9749
|
} finally {
|
|
9740
|
-
await
|
|
9750
|
+
await rm4(stagingRoot, { recursive: true, force: true });
|
|
9741
9751
|
}
|
|
9742
9752
|
}
|
|
9743
9753
|
async function restoreSnapshot(options) {
|
|
9744
9754
|
const paths = normalizePaths(options.paths);
|
|
9745
9755
|
await assertSnapshotPaths(paths, { requireSecrets: false, allowMissingState: true });
|
|
9746
9756
|
await assertNoDataDirectoryLock(paths);
|
|
9747
|
-
const stagingRoot = await mkdtemp(join7(
|
|
9757
|
+
const stagingRoot = await mkdtemp(join7(dirname5(paths.stateDir), ".supacloud-lite-restore-"));
|
|
9748
9758
|
const payloadRoot = join7(stagingRoot, "payload");
|
|
9749
9759
|
const rollbackId = crypto.randomUUID();
|
|
9750
9760
|
const rollbackPaths = [];
|
|
@@ -9822,7 +9832,7 @@ async function restoreSnapshot(options) {
|
|
|
9822
9832
|
} catch (error) {
|
|
9823
9833
|
throw error instanceof Error ? error : new Error(String(error));
|
|
9824
9834
|
} finally {
|
|
9825
|
-
await
|
|
9835
|
+
await rm4(stagingRoot, { recursive: true, force: true });
|
|
9826
9836
|
}
|
|
9827
9837
|
}
|
|
9828
9838
|
function normalizePaths(paths) {
|
|
@@ -9916,7 +9926,7 @@ async function stageDirectory(root, destination) {
|
|
|
9916
9926
|
await walk(root, destination);
|
|
9917
9927
|
}
|
|
9918
9928
|
async function stageFile(source, target) {
|
|
9919
|
-
await mkdir5(
|
|
9929
|
+
await mkdir5(dirname5(target), { recursive: true });
|
|
9920
9930
|
await copyFile(source, target);
|
|
9921
9931
|
}
|
|
9922
9932
|
async function readManifest(payloadRoot) {
|
|
@@ -9987,14 +9997,14 @@ async function applyDirectorySwap(source, target, force, rollbackId, swaps) {
|
|
|
9987
9997
|
if (!force) {
|
|
9988
9998
|
if (await directoryHasEntries(target))
|
|
9989
9999
|
throw new Error(`restore target is not empty: ${target}; pass --force to replace it`);
|
|
9990
|
-
await
|
|
10000
|
+
await rm4(target, { recursive: true, force: true });
|
|
9991
10001
|
} else {
|
|
9992
|
-
swap.rollbackPath = join7(
|
|
10002
|
+
swap.rollbackPath = join7(dirname5(target), `.${target.split(sep2).pop() ?? "state"}.restore-${rollbackId}`);
|
|
9993
10003
|
await rename2(target, swap.rollbackPath);
|
|
9994
10004
|
}
|
|
9995
10005
|
}
|
|
9996
10006
|
try {
|
|
9997
|
-
await mkdir5(
|
|
10007
|
+
await mkdir5(dirname5(target), { recursive: true });
|
|
9998
10008
|
await rename2(source, target);
|
|
9999
10009
|
swaps.push(swap);
|
|
10000
10010
|
} catch (error) {
|
|
@@ -10005,7 +10015,7 @@ async function applyDirectorySwap(source, target, force, rollbackId, swaps) {
|
|
|
10005
10015
|
}
|
|
10006
10016
|
async function rollbackDirectorySwaps(swaps) {
|
|
10007
10017
|
for (const swap of [...swaps].reverse()) {
|
|
10008
|
-
await
|
|
10018
|
+
await rm4(swap.target, { recursive: true, force: true });
|
|
10009
10019
|
if (swap.rollbackPath)
|
|
10010
10020
|
await rename2(swap.rollbackPath, swap.target);
|
|
10011
10021
|
}
|
|
@@ -10028,7 +10038,7 @@ async function copyEntry(source, target) {
|
|
|
10028
10038
|
for (const entry of await readdir3(source))
|
|
10029
10039
|
await copyEntry(join7(source, entry), join7(target, entry));
|
|
10030
10040
|
} else if (info.isFile()) {
|
|
10031
|
-
await mkdir5(
|
|
10041
|
+
await mkdir5(dirname5(target), { recursive: true });
|
|
10032
10042
|
await Bun.write(target, Bun.file(source));
|
|
10033
10043
|
} else
|
|
10034
10044
|
throw new Error(`snapshot refuses unsupported filesystem entry: ${source}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-function.d.ts","sourceRoot":"","sources":["../../../src/runtime/node/bundle-function.ts"],"names":[],"mappings":"AAgBA,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI3D;AAsCD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"bundle-function.d.ts","sourceRoot":"","sources":["../../../src/runtime/node/bundle-function.ts"],"names":[],"mappings":"AAgBA,yEAAyE;AACzE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI3D;AAsCD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBrF"}
|
|
@@ -17,8 +17,9 @@ export interface LoadFunctionOptions {
|
|
|
17
17
|
* directory name. Dirs starting with `_` or `.` are skipped (shared code), as
|
|
18
18
|
* are functions disabled in config.toml. Each function is bundled with esbuild
|
|
19
19
|
* when available (falling back to a plain import), then its handler is taken
|
|
20
|
-
* from a default export
|
|
21
|
-
* and skip rather than throwing, so one
|
|
20
|
+
* from a default function export, a default `{ fetch() }` export, or a captured
|
|
21
|
+
* `Deno.serve()` call. Load failures warn and skip rather than throwing, so one
|
|
22
|
+
* broken function can't block startup.
|
|
22
23
|
*/
|
|
23
24
|
export declare function loadFunctions(projectDir: string, options?: Record<string, LoadFunctionOptions>): Promise<Map<string, EdgeFunction>>;
|
|
24
25
|
//# sourceMappingURL=load-functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-functions.d.ts","sourceRoot":"","sources":["../../../src/runtime/node/load-functions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBzF;AAED,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAID
|
|
1
|
+
{"version":3,"file":"load-functions.d.ts","sourceRoot":"","sources":["../../../src/runtime/node/load-functions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBzF;AAED,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAID;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAM,GAChD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAYpC"}
|