@demiurgejs/core 0.2.0-beta.2 → 0.2.0-beta.4
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 +13 -11
- package/bin/demiurge.mjs +30 -12
- package/dist/adapter/testing.js.map +1 -1
- package/dist/browser/file-router.d.ts +388 -5
- package/dist/browser/file-router.d.ts.map +1 -1
- package/dist/browser/focus.d.ts +20 -0
- package/dist/browser/focus.d.ts.map +1 -0
- package/dist/browser/index.d.ts +7 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/mutation-action.d.ts +81 -0
- package/dist/browser/mutation-action.d.ts.map +1 -0
- package/dist/chunks/document-shell-CpJnFtSC.js +36 -0
- package/dist/chunks/document-shell-CpJnFtSC.js.map +1 -0
- package/dist/chunks/env-startup-DOBYWlZD.js +257 -0
- package/dist/chunks/env-startup-DOBYWlZD.js.map +1 -0
- package/dist/chunks/{image-codec-BGTx_t5K.js → image-codec-BmzWnH6W.js} +2 -2
- package/dist/chunks/{image-codec-BGTx_t5K.js.map → image-codec-BmzWnH6W.js.map} +1 -1
- package/dist/chunks/{images-B9MqcjSA.js → images-BQ80950B.js} +99 -91
- package/dist/chunks/images-BQ80950B.js.map +1 -0
- package/dist/chunks/index-BVk9zWbe.js +832 -0
- package/dist/chunks/index-BVk9zWbe.js.map +1 -0
- package/dist/chunks/manifest-vO6c0G0W.js +19 -0
- package/dist/chunks/manifest-vO6c0G0W.js.map +1 -0
- package/dist/chunks/plugin-BQgMiHxa.js +1827 -0
- package/dist/chunks/plugin-BQgMiHxa.js.map +1 -0
- package/dist/chunks/session-store-ChModVcq.js +92 -0
- package/dist/chunks/session-store-ChModVcq.js.map +1 -0
- package/dist/chunks/static-files-ehaD1kE7.js +51 -0
- package/dist/chunks/static-files-ehaD1kE7.js.map +1 -0
- package/dist/chunks/{streaming-BQ1bykDo.js → streaming-BEbPN7Uk.js} +163 -163
- package/dist/chunks/streaming-BEbPN7Uk.js.map +1 -0
- package/dist/chunks/testing-DueXbMo4.js +4167 -0
- package/dist/chunks/testing-DueXbMo4.js.map +1 -0
- package/dist/chunks/vite-DO70kZA6.js +259 -0
- package/dist/chunks/vite-DO70kZA6.js.map +1 -0
- package/dist/cli.d.ts +17 -25
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +159 -124
- package/dist/cli.js.map +1 -1
- package/dist/config/define.d.ts +3 -0
- package/dist/config/define.d.ts.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +78 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/load.d.ts +12 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/types.d.ts +64 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/validate.d.ts +9 -0
- package/dist/config/validate.d.ts.map +1 -0
- package/dist/config/vite.d.ts +12 -0
- package/dist/config/vite.d.ts.map +1 -0
- package/dist/data/cache.d.ts +10 -0
- package/dist/data/cache.d.ts.map +1 -1
- package/dist/data/idempotency.d.ts.map +1 -1
- package/dist/data/index.d.ts +3 -1
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/testing.d.ts.map +1 -1
- package/dist/data/testing.js +94 -72
- package/dist/data/testing.js.map +1 -1
- package/dist/data/tiered.d.ts +7 -0
- package/dist/data/tiered.d.ts.map +1 -0
- package/dist/deployment/testing.d.ts +25 -0
- package/dist/deployment/testing.d.ts.map +1 -0
- package/dist/deployment/testing.js +171 -0
- package/dist/deployment/testing.js.map +1 -0
- package/dist/document/deferred-scripts.d.ts.map +1 -1
- package/dist/document/hydration.d.ts +9 -0
- package/dist/document/hydration.d.ts.map +1 -1
- package/dist/document/index.d.ts +5 -2
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/metadata.d.ts +8 -0
- package/dist/document/metadata.d.ts.map +1 -1
- package/dist/document/navigation.d.ts +28 -0
- package/dist/document/navigation.d.ts.map +1 -0
- package/dist/document/render.d.ts +3 -1
- package/dist/document/render.d.ts.map +1 -1
- package/dist/document/seo.d.ts.map +1 -1
- package/dist/document/trusted-types.d.ts +10 -0
- package/dist/document/trusted-types.d.ts.map +1 -0
- package/dist/edge/assets.d.ts.map +1 -1
- package/dist/edge/index.js +55 -73
- package/dist/edge/index.js.map +1 -1
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2078 -573
- package/dist/index.js.map +1 -1
- package/dist/internal/testing.js +11 -11
- package/dist/kv/index.d.ts +4 -0
- package/dist/kv/index.d.ts.map +1 -1
- package/dist/kv/index.js +180 -60
- package/dist/kv/index.js.map +1 -1
- package/dist/kv/rate-limit-store.d.ts +8 -0
- package/dist/kv/rate-limit-store.d.ts.map +1 -0
- package/dist/kv/session-store.d.ts +20 -0
- package/dist/kv/session-store.d.ts.map +1 -0
- package/dist/kv/store.d.ts.map +1 -1
- package/dist/manifest.d.ts +10 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/node/http.d.ts.map +1 -1
- package/dist/node/image.d.ts.map +1 -1
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +251 -178
- package/dist/node/index.js.map +1 -1
- package/dist/node/serve.d.ts +47 -0
- package/dist/node/serve.d.ts.map +1 -0
- package/dist/node/static.d.ts.map +1 -1
- package/dist/node/streaming.d.ts.map +1 -1
- package/dist/platform/fonts.d.ts.map +1 -1
- package/dist/platform/image-url.d.ts.map +1 -1
- package/dist/platform/images.d.ts.map +1 -1
- package/dist/platform/index.d.ts +5 -1
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/observability.d.ts +2 -1
- package/dist/platform/observability.d.ts.map +1 -1
- package/dist/platform/url.d.ts +19 -0
- package/dist/platform/url.d.ts.map +1 -0
- package/dist/platform/web-vitals-client.d.ts +32 -0
- package/dist/platform/web-vitals-client.d.ts.map +1 -0
- package/dist/platform/web-vitals.d.ts +78 -0
- package/dist/platform/web-vitals.d.ts.map +1 -0
- package/dist/redis/index.d.ts +4 -0
- package/dist/redis/index.d.ts.map +1 -1
- package/dist/redis/index.js +209 -54
- package/dist/redis/index.js.map +1 -1
- package/dist/redis/rate-limit-store.d.ts +8 -0
- package/dist/redis/rate-limit-store.d.ts.map +1 -0
- package/dist/redis/session-store.d.ts +9 -0
- package/dist/redis/session-store.d.ts.map +1 -0
- package/dist/redis/store.d.ts.map +1 -1
- package/dist/route/index.d.ts +2 -2
- package/dist/route/index.d.ts.map +1 -1
- package/dist/route/middleware.d.ts.map +1 -1
- package/dist/route/mutation.d.ts +97 -0
- package/dist/route/mutation.d.ts.map +1 -0
- package/dist/route/response.d.ts.map +1 -1
- package/dist/route/types.d.ts +6 -1
- package/dist/route/types.d.ts.map +1 -1
- package/dist/router/index.d.ts +1 -1
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/manifest.d.ts +9 -0
- package/dist/router/manifest.d.ts.map +1 -1
- package/dist/router/navigation-data.d.ts +9 -1
- package/dist/router/navigation-data.d.ts.map +1 -1
- package/dist/routing/generate.d.ts +3 -0
- package/dist/routing/generate.d.ts.map +1 -1
- package/dist/routing/index.d.ts +3 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/locale.d.ts +43 -0
- package/dist/routing/locale.d.ts.map +1 -0
- package/dist/routing/types.d.ts +12 -0
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/security/cookie-session.d.ts +43 -0
- package/dist/security/cookie-session.d.ts.map +1 -0
- package/dist/security/cookies.d.ts +26 -0
- package/dist/security/cookies.d.ts.map +1 -0
- package/dist/security/csrf.d.ts +1 -1
- package/dist/security/csrf.d.ts.map +1 -1
- package/dist/security/env-startup.d.ts +15 -0
- package/dist/security/env-startup.d.ts.map +1 -0
- package/dist/security/env.d.ts +25 -6
- package/dist/security/env.d.ts.map +1 -1
- package/dist/security/fetch-metadata.d.ts +29 -0
- package/dist/security/fetch-metadata.d.ts.map +1 -0
- package/dist/security/index.d.ts +14 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/policy.d.ts.map +1 -1
- package/dist/security/rate-limit.d.ts +6 -3
- package/dist/security/rate-limit.d.ts.map +1 -1
- package/dist/security/report.d.ts.map +1 -1
- package/dist/security/request.d.ts.map +1 -1
- package/dist/security/session-manager.d.ts +32 -0
- package/dist/security/session-manager.d.ts.map +1 -0
- package/dist/security/session-store.d.ts +51 -0
- package/dist/security/session-store.d.ts.map +1 -0
- package/dist/security/testing.d.ts +10 -0
- package/dist/security/testing.d.ts.map +1 -0
- package/dist/security/testing.js +145 -0
- package/dist/security/testing.js.map +1 -0
- package/dist/security/types.d.ts +73 -3
- package/dist/security/types.d.ts.map +1 -1
- package/dist/server/document-shell.d.ts.map +1 -1
- package/dist/server/errors.d.ts +1 -0
- package/dist/server/errors.d.ts.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/not-found.d.ts +1 -0
- package/dist/server/not-found.d.ts.map +1 -1
- package/dist/server/render-tree.d.ts.map +1 -1
- package/dist/server/request-handler.d.ts +10 -2
- package/dist/server/request-handler.d.ts.map +1 -1
- package/dist/server/request-metadata.d.ts +1 -0
- package/dist/server/request-metadata.d.ts.map +1 -1
- package/dist/server/ssr.d.ts +2 -0
- package/dist/server/ssr.d.ts.map +1 -1
- package/dist/static/index.d.ts +2 -0
- package/dist/static/index.d.ts.map +1 -1
- package/dist/static/index.js +380 -363
- package/dist/static/index.js.map +1 -1
- package/dist/static/preview.d.ts.map +1 -1
- package/dist/static/vercel.d.ts +11 -2
- package/dist/static/vercel.d.ts.map +1 -1
- package/dist/static-files.d.ts +12 -0
- package/dist/static-files.d.ts.map +1 -1
- package/dist/type-guards.d.ts +19 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/vite/env-boundary.d.ts +14 -0
- package/dist/vite/env-boundary.d.ts.map +1 -0
- package/dist/vite/index.d.ts +8 -3
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +22 -1196
- package/dist/vite/index.js.map +1 -1
- package/dist/vite/plugin.d.ts +8 -1
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/vite/policy-verification.d.ts.map +1 -1
- package/dist/vite/route-audit.d.ts +50 -0
- package/dist/vite/route-audit.d.ts.map +1 -0
- package/package.json +19 -6
- package/dist/chunks/document-shell-D1xo6cEA.js +0 -35
- package/dist/chunks/document-shell-D1xo6cEA.js.map +0 -1
- package/dist/chunks/images-B9MqcjSA.js.map +0 -1
- package/dist/chunks/request-metadata-D5NrT8ks.js +0 -642
- package/dist/chunks/request-metadata-D5NrT8ks.js.map +0 -1
- package/dist/chunks/static-files-DUjHw-4H.js +0 -11
- package/dist/chunks/static-files-DUjHw-4H.js.map +0 -1
- package/dist/chunks/streaming-BQ1bykDo.js.map +0 -1
- package/dist/chunks/testing-B_iMFYz_.js +0 -3321
- package/dist/chunks/testing-B_iMFYz_.js.map +0 -1
- package/dist/route/action.d.ts +0 -33
- package/dist/route/action.d.ts.map +0 -1
package/dist/node/index.js
CHANGED
|
@@ -1,95 +1,79 @@
|
|
|
1
|
-
import { createServer as
|
|
2
|
-
import { d as
|
|
3
|
-
import { v, t as
|
|
4
|
-
import { c as
|
|
1
|
+
import { createServer as H } from "node:http";
|
|
2
|
+
import { d as I } from "../chunks/index-BVk9zWbe.js";
|
|
3
|
+
import { r as C, v as L, t as x, U as A, w as F, a as M, b as k } from "../chunks/streaming-BEbPN7Uk.js";
|
|
4
|
+
import { c as _e, d as je, e as Be, f as ze } from "../chunks/streaming-BEbPN7Uk.js";
|
|
5
5
|
import { constants as S } from "node:fs";
|
|
6
|
-
import { realpath as T, open as
|
|
7
|
-
import { resolve as
|
|
6
|
+
import { realpath as T, open as W, lstat as D, readFile as $ } from "node:fs/promises";
|
|
7
|
+
import { resolve as P, sep as y, extname as U, relative as _, join as O } from "node:path";
|
|
8
8
|
import { Readable as N } from "node:stream";
|
|
9
|
-
import { I as
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
".jpg": "image/jpeg",
|
|
18
|
-
".js": "text/javascript; charset=utf-8",
|
|
19
|
-
".json": "application/json; charset=utf-8",
|
|
20
|
-
".mjs": "text/javascript; charset=utf-8",
|
|
21
|
-
".png": "image/png",
|
|
22
|
-
".svg": "image/svg+xml",
|
|
23
|
-
".txt": "text/plain; charset=utf-8",
|
|
24
|
-
".webmanifest": "application/manifest+json",
|
|
25
|
-
".webp": "image/webp",
|
|
26
|
-
".woff": "font/woff",
|
|
27
|
-
".woff2": "font/woff2"
|
|
28
|
-
}, G = /* @__PURE__ */ new Set(["demiurge-manifest.json", "index.html"]);
|
|
29
|
-
function V(e) {
|
|
30
|
-
const t = x(e.root), n = T(t), r = te(e.prefix), o = e.exclude ?? re, i = e.immutable ?? ne;
|
|
31
|
-
return async function(s) {
|
|
32
|
-
if (s.method !== "GET" && s.method !== "HEAD")
|
|
9
|
+
import { I as j, R as B, i as z, c as G } from "../chunks/static-files-ehaD1kE7.js";
|
|
10
|
+
import { fileURLToPath as V } from "node:url";
|
|
11
|
+
import { p as q } from "../chunks/manifest-vO6c0G0W.js";
|
|
12
|
+
const Y = /* @__PURE__ */ new Set(["demiurge-manifest.json", "index.html"]);
|
|
13
|
+
function J(e) {
|
|
14
|
+
const t = P(e.root), n = T(t), r = ae(e.prefix), o = e.exclude ?? se, a = e.immutable ?? ie;
|
|
15
|
+
return async function(c) {
|
|
16
|
+
if (c.method !== "GET" && c.method !== "HEAD")
|
|
33
17
|
return null;
|
|
34
|
-
const m =
|
|
18
|
+
const m = ee(
|
|
35
19
|
t,
|
|
36
20
|
r,
|
|
37
|
-
new URL(
|
|
21
|
+
new URL(c.url).pathname
|
|
38
22
|
);
|
|
39
|
-
if (!m || o(
|
|
23
|
+
if (!m || o(ce(t, m)))
|
|
40
24
|
return null;
|
|
41
|
-
const g = await
|
|
25
|
+
const g = await ne(t, await te(n), m);
|
|
42
26
|
if (!g)
|
|
43
27
|
return null;
|
|
44
|
-
const { file: h, stats:
|
|
28
|
+
const { file: h, stats: i } = g, s = K(i.size, i.mtimeMs), f = i.mtime.toUTCString(), l = new Headers({
|
|
45
29
|
"accept-ranges": "bytes",
|
|
46
|
-
"cache-control":
|
|
47
|
-
"content-length": String(
|
|
48
|
-
"content-type":
|
|
30
|
+
"cache-control": a(le(m)) ? j : B,
|
|
31
|
+
"content-length": String(i.size),
|
|
32
|
+
"content-type": ue(m),
|
|
49
33
|
"cross-origin-resource-policy": "same-origin",
|
|
50
|
-
etag:
|
|
34
|
+
etag: s,
|
|
51
35
|
"last-modified": f,
|
|
52
36
|
"x-content-type-options": "nosniff"
|
|
53
37
|
});
|
|
54
|
-
if (
|
|
55
|
-
return await h.close(),
|
|
56
|
-
const
|
|
57
|
-
if (
|
|
58
|
-
return await h.close(),
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
return
|
|
38
|
+
if (Q(c, s, i.mtimeMs))
|
|
39
|
+
return await h.close(), l.delete("content-length"), l.delete("content-type"), new Response(null, { headers: l, status: 304 });
|
|
40
|
+
const u = Z(c, i.mtimeMs) ? X(c.headers.get("range"), i.size) : null;
|
|
41
|
+
if (u === "unsatisfiable")
|
|
42
|
+
return await h.close(), l.delete("content-length"), l.delete("content-type"), l.set("content-range", `bytes */${i.size}`), new Response(null, { headers: l, status: 416 });
|
|
43
|
+
if (u) {
|
|
44
|
+
const w = u.end - u.start + 1;
|
|
45
|
+
return l.set("content-length", String(w)), l.set("content-range", `bytes ${u.start}-${u.end}/${i.size}`), c.method === "HEAD" ? (await h.close(), new Response(null, { headers: l, status: 206 })) : new Response(
|
|
62
46
|
N.toWeb(
|
|
63
|
-
h.createReadStream({ end:
|
|
47
|
+
h.createReadStream({ end: u.end, start: u.start })
|
|
64
48
|
),
|
|
65
|
-
{ headers:
|
|
49
|
+
{ headers: l, status: 206 }
|
|
66
50
|
);
|
|
67
51
|
}
|
|
68
|
-
return
|
|
52
|
+
return c.method === "HEAD" ? (await h.close(), new Response(null, { headers: l })) : new Response(
|
|
69
53
|
N.toWeb(h.createReadStream()),
|
|
70
|
-
{ headers:
|
|
54
|
+
{ headers: l }
|
|
71
55
|
);
|
|
72
56
|
};
|
|
73
57
|
}
|
|
74
|
-
function
|
|
58
|
+
function K(e, t) {
|
|
75
59
|
return `W/"${e.toString(16)}-${Math.trunc(t).toString(16)}"`;
|
|
76
60
|
}
|
|
77
|
-
function
|
|
61
|
+
function Q(e, t, n) {
|
|
78
62
|
const r = e.headers.get("if-none-match");
|
|
79
63
|
if (r !== null)
|
|
80
64
|
return r.trim() === "*" || r.split(",").some(
|
|
81
|
-
(
|
|
65
|
+
(d) => E(d) === E(t)
|
|
82
66
|
);
|
|
83
67
|
const o = e.headers.get("if-modified-since");
|
|
84
68
|
if (o === null)
|
|
85
69
|
return !1;
|
|
86
|
-
const
|
|
87
|
-
return Number.isFinite(
|
|
70
|
+
const a = Date.parse(o);
|
|
71
|
+
return Number.isFinite(a) && Math.floor(n / 1e3) * 1e3 <= a;
|
|
88
72
|
}
|
|
89
73
|
function E(e) {
|
|
90
74
|
return e.trim().replace(/^W\//i, "");
|
|
91
75
|
}
|
|
92
|
-
function
|
|
76
|
+
function X(e, t) {
|
|
93
77
|
if (e === null)
|
|
94
78
|
return null;
|
|
95
79
|
const n = /^bytes=(\d*)-(\d*)$/.exec(e.trim());
|
|
@@ -98,13 +82,13 @@ function Y(e, t) {
|
|
|
98
82
|
if (t === 0)
|
|
99
83
|
return "unsatisfiable";
|
|
100
84
|
if (!n[1]) {
|
|
101
|
-
const
|
|
102
|
-
return !Number.isSafeInteger(
|
|
85
|
+
const a = Number(n[2]);
|
|
86
|
+
return !Number.isSafeInteger(a) || a <= 0 ? null : { start: Math.max(0, t - a), end: t - 1 };
|
|
103
87
|
}
|
|
104
88
|
const r = Number(n[1]), o = n[2] ? Number(n[2]) : t - 1;
|
|
105
89
|
return !Number.isSafeInteger(r) || !Number.isSafeInteger(o) ? null : r >= t ? "unsatisfiable" : n[2] && o < r ? null : { start: r, end: Math.min(o, t - 1) };
|
|
106
90
|
}
|
|
107
|
-
function
|
|
91
|
+
function Z(e, t) {
|
|
108
92
|
const n = e.headers.get("if-range");
|
|
109
93
|
if (n === null)
|
|
110
94
|
return !0;
|
|
@@ -113,7 +97,7 @@ function J(e, t) {
|
|
|
113
97
|
const r = Date.parse(n);
|
|
114
98
|
return Number.isFinite(r) && Math.floor(t / 1e3) * 1e3 <= r;
|
|
115
99
|
}
|
|
116
|
-
function
|
|
100
|
+
function ee(e, t, n) {
|
|
117
101
|
let r;
|
|
118
102
|
try {
|
|
119
103
|
r = decodeURIComponent(n);
|
|
@@ -129,18 +113,18 @@ function K(e, t, n) {
|
|
|
129
113
|
}
|
|
130
114
|
if (r.endsWith("/"))
|
|
131
115
|
return null;
|
|
132
|
-
const o =
|
|
133
|
-
return o.startsWith(`${e}${
|
|
116
|
+
const o = P(e, `.${r}`);
|
|
117
|
+
return o.startsWith(`${e}${y}`) ? o : null;
|
|
134
118
|
}
|
|
135
|
-
async function
|
|
119
|
+
async function te(e) {
|
|
136
120
|
try {
|
|
137
121
|
return await e;
|
|
138
122
|
} catch {
|
|
139
123
|
return null;
|
|
140
124
|
}
|
|
141
125
|
}
|
|
142
|
-
async function
|
|
143
|
-
if (!t || !await
|
|
126
|
+
async function ne(e, t, n) {
|
|
127
|
+
if (!t || !await re(e, n))
|
|
144
128
|
return null;
|
|
145
129
|
let r;
|
|
146
130
|
try {
|
|
@@ -148,56 +132,120 @@ async function X(e, t, n) {
|
|
|
148
132
|
} catch {
|
|
149
133
|
return null;
|
|
150
134
|
}
|
|
151
|
-
if (!
|
|
135
|
+
if (!oe(t, r))
|
|
152
136
|
return null;
|
|
153
137
|
const o = typeof S.O_NOFOLLOW == "number" ? S.O_NOFOLLOW : 0;
|
|
154
|
-
let
|
|
138
|
+
let a;
|
|
155
139
|
try {
|
|
156
|
-
|
|
140
|
+
a = await W(n, S.O_RDONLY | o);
|
|
157
141
|
} catch {
|
|
158
142
|
return null;
|
|
159
143
|
}
|
|
160
144
|
try {
|
|
161
|
-
const
|
|
162
|
-
return
|
|
145
|
+
const d = await a.stat();
|
|
146
|
+
return d.isFile() ? { file: a, stats: d } : (await a.close(), null);
|
|
163
147
|
} catch {
|
|
164
|
-
return await
|
|
148
|
+
return await a.close(), null;
|
|
165
149
|
}
|
|
166
150
|
}
|
|
167
|
-
async function
|
|
168
|
-
const n =
|
|
151
|
+
async function re(e, t) {
|
|
152
|
+
const n = _(e, t).split(y);
|
|
169
153
|
let r = e;
|
|
170
154
|
try {
|
|
171
155
|
for (const o of n)
|
|
172
|
-
if (r =
|
|
156
|
+
if (r = O(r, o), (await D(r)).isSymbolicLink())
|
|
173
157
|
return !1;
|
|
174
158
|
} catch {
|
|
175
159
|
return !1;
|
|
176
160
|
}
|
|
177
161
|
return !0;
|
|
178
162
|
}
|
|
179
|
-
function
|
|
180
|
-
return t.startsWith(`${e}${
|
|
163
|
+
function oe(e, t) {
|
|
164
|
+
return t.startsWith(`${e}${y}`);
|
|
181
165
|
}
|
|
182
|
-
function
|
|
166
|
+
function ae(e) {
|
|
183
167
|
return !e || e === "/" ? "" : `/${e.replace(/^\/|\/$/g, "")}/`;
|
|
184
168
|
}
|
|
185
|
-
function
|
|
186
|
-
return
|
|
169
|
+
function ie(e) {
|
|
170
|
+
return z(e);
|
|
187
171
|
}
|
|
188
|
-
function
|
|
189
|
-
return
|
|
172
|
+
function se(e) {
|
|
173
|
+
return Y.has(e);
|
|
190
174
|
}
|
|
191
|
-
function
|
|
192
|
-
return t.slice(e.length + 1).split(
|
|
175
|
+
function ce(e, t) {
|
|
176
|
+
return t.slice(e.length + 1).split(y).join("/");
|
|
193
177
|
}
|
|
194
|
-
function
|
|
195
|
-
return e.slice(e.lastIndexOf(
|
|
178
|
+
function le(e) {
|
|
179
|
+
return e.slice(e.lastIndexOf(y) + 1);
|
|
196
180
|
}
|
|
197
|
-
function
|
|
198
|
-
return
|
|
181
|
+
function ue(e) {
|
|
182
|
+
return G(U(e));
|
|
183
|
+
}
|
|
184
|
+
const de = "dist/client", fe = "/.well-known/ready";
|
|
185
|
+
async function We(e) {
|
|
186
|
+
const t = e.env ?? process.env, n = V(
|
|
187
|
+
new URL(e.clientDir ?? de, e.base)
|
|
188
|
+
), r = q(
|
|
189
|
+
await $(O(n, "demiurge-manifest.json"), "utf8")
|
|
190
|
+
), o = e.host ?? t.HOST ?? "127.0.0.1", a = me(t.PORT, e.port), d = he(
|
|
191
|
+
e.allowedHosts,
|
|
192
|
+
t.ALLOWED_HOSTS,
|
|
193
|
+
o
|
|
194
|
+
), c = e.name ?? "Demiurge Node server", m = e.readyPath === !1 ? void 0 : e.readyPath ?? fe, g = [], h = {
|
|
195
|
+
page: {
|
|
196
|
+
clientEntry: r.clientEntry,
|
|
197
|
+
renderPage: C,
|
|
198
|
+
styles: r.styles
|
|
199
|
+
},
|
|
200
|
+
root: n,
|
|
201
|
+
waitUntil(u) {
|
|
202
|
+
g.push(u);
|
|
203
|
+
}
|
|
204
|
+
}, i = await e.createHandler(h), s = Se({
|
|
205
|
+
allowedHosts: d,
|
|
206
|
+
handler: i,
|
|
207
|
+
onError: e.onError,
|
|
208
|
+
readyPath: m,
|
|
209
|
+
shutdown: e.shutdown,
|
|
210
|
+
static: ge(e.static, h),
|
|
211
|
+
timeouts: e.timeouts,
|
|
212
|
+
trustProxy: e.trustProxy
|
|
213
|
+
});
|
|
214
|
+
h.waitUntil = (u) => {
|
|
215
|
+
s.waitUntil(u);
|
|
216
|
+
};
|
|
217
|
+
for (const u of g)
|
|
218
|
+
s.waitUntil(u);
|
|
219
|
+
await new Promise((u, w) => {
|
|
220
|
+
s.once("error", w), s.listen(a, o, () => {
|
|
221
|
+
s.off("error", w), u();
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
const f = s.address(), l = typeof f == "object" && f ? f.port : a;
|
|
225
|
+
return e.onListen ? e.onListen({ host: o, port: l, server: s }) : console.log(`${c} listening on http://${o}:${l}`), s;
|
|
226
|
+
}
|
|
227
|
+
function me(e, t) {
|
|
228
|
+
const n = e ?? String(t ?? 4173), r = Number(n);
|
|
229
|
+
if (!Number.isSafeInteger(r) || r < 0 || r > 65535)
|
|
230
|
+
throw new Error("Demiurge Node PORT must be an integer from 0 through 65535.");
|
|
231
|
+
return r;
|
|
232
|
+
}
|
|
233
|
+
function he(e, t, n) {
|
|
234
|
+
return e || (t ? t.split(",").map((r) => r.trim()).filter(Boolean) : n === "localhost" ? [n] : [n, "localhost"]);
|
|
235
|
+
}
|
|
236
|
+
function ge(e, t) {
|
|
237
|
+
if (!e)
|
|
238
|
+
return { root: t.root };
|
|
239
|
+
if (typeof e != "function")
|
|
240
|
+
return e;
|
|
241
|
+
const n = e(t);
|
|
242
|
+
if (n instanceof Promise)
|
|
243
|
+
throw new TypeError(
|
|
244
|
+
"The `static` option must be a StaticFileHandlerOptions object or a factory `(context) => StaticFileHandler | StaticFileHandlerOptions`. It looks like a StaticFileHandler was passed directly. Wrap it: `static: () => yourHandler`."
|
|
245
|
+
);
|
|
246
|
+
return n;
|
|
199
247
|
}
|
|
200
|
-
const
|
|
248
|
+
const De = I({
|
|
201
249
|
name: "node",
|
|
202
250
|
capabilities: {
|
|
203
251
|
backgroundLifetime: !0,
|
|
@@ -205,47 +253,47 @@ const Te = O({
|
|
|
205
253
|
nonceInjection: !0,
|
|
206
254
|
streaming: !0
|
|
207
255
|
}
|
|
208
|
-
}),
|
|
256
|
+
}), we = {
|
|
209
257
|
headersTimeout: 66e3,
|
|
210
258
|
keepAliveTimeout: 65e3,
|
|
211
259
|
requestTimeout: 3e5
|
|
212
|
-
},
|
|
213
|
-
function
|
|
214
|
-
|
|
215
|
-
const t =
|
|
216
|
-
return function(
|
|
217
|
-
const
|
|
218
|
-
r(
|
|
219
|
-
|
|
220
|
-
}).finally(
|
|
260
|
+
}, ye = 3e4;
|
|
261
|
+
function pe(e) {
|
|
262
|
+
L(e);
|
|
263
|
+
const t = Pe(e.static), n = e.onError ?? p;
|
|
264
|
+
return function(a, d) {
|
|
265
|
+
const c = be(a, d);
|
|
266
|
+
r(a, d, c.signal).catch((m) => {
|
|
267
|
+
c.signal.aborted || (n(m, a), Oe(d));
|
|
268
|
+
}).finally(c.cleanup);
|
|
221
269
|
};
|
|
222
|
-
async function r(o,
|
|
223
|
-
let
|
|
270
|
+
async function r(o, a, d) {
|
|
271
|
+
let c;
|
|
224
272
|
try {
|
|
225
|
-
|
|
273
|
+
c = x(o, {
|
|
226
274
|
allowedHosts: e.allowedHosts,
|
|
227
|
-
signal:
|
|
275
|
+
signal: d,
|
|
228
276
|
trustProxy: e.trustProxy
|
|
229
277
|
});
|
|
230
278
|
} catch (g) {
|
|
231
|
-
if (g instanceof
|
|
232
|
-
|
|
279
|
+
if (g instanceof A) {
|
|
280
|
+
F(a);
|
|
233
281
|
return;
|
|
234
282
|
}
|
|
235
|
-
if (g instanceof
|
|
236
|
-
|
|
283
|
+
if (g instanceof M) {
|
|
284
|
+
Re(a);
|
|
237
285
|
return;
|
|
238
286
|
}
|
|
239
287
|
throw g;
|
|
240
288
|
}
|
|
241
|
-
const m = await t?.(
|
|
289
|
+
const m = await t?.(c);
|
|
242
290
|
await k(
|
|
243
|
-
|
|
244
|
-
m ?? await e.handler(
|
|
291
|
+
a,
|
|
292
|
+
m ?? await e.handler(c)
|
|
245
293
|
);
|
|
246
294
|
}
|
|
247
295
|
}
|
|
248
|
-
function
|
|
296
|
+
function be(e, t) {
|
|
249
297
|
const n = new AbortController(), r = () => {
|
|
250
298
|
n.signal.aborted || n.abort(new DOMException("Client disconnected.", "AbortError"));
|
|
251
299
|
}, o = () => {
|
|
@@ -258,16 +306,38 @@ function ue(e, t) {
|
|
|
258
306
|
signal: n.signal
|
|
259
307
|
};
|
|
260
308
|
}
|
|
261
|
-
function
|
|
309
|
+
function Re(e) {
|
|
262
310
|
e.statusCode = 421, e.setHeader("content-type", "text/plain; charset=utf-8"), e.end("Misdirected Request");
|
|
263
311
|
}
|
|
264
|
-
function
|
|
265
|
-
const t =
|
|
266
|
-
|
|
312
|
+
function Se(e) {
|
|
313
|
+
const t = Ee(e.timeouts), n = Ne(e.readyPath), r = n ? async (a) => {
|
|
314
|
+
if (new URL(a.url).pathname !== n)
|
|
315
|
+
return e.handler(a);
|
|
316
|
+
const d = o.isReady();
|
|
317
|
+
return new Response(d ? "ready" : "draining", {
|
|
318
|
+
headers: {
|
|
319
|
+
"cache-control": "no-store",
|
|
320
|
+
"content-type": "text/plain; charset=utf-8"
|
|
321
|
+
},
|
|
322
|
+
status: d ? 200 : 503
|
|
323
|
+
});
|
|
324
|
+
} : e.handler, o = H(
|
|
325
|
+
pe({ ...e, handler: r })
|
|
326
|
+
);
|
|
327
|
+
return o.keepAliveTimeout = t.keepAliveTimeout, o.headersTimeout = t.headersTimeout, o.requestTimeout = t.requestTimeout, Te(o, e.shutdown);
|
|
328
|
+
}
|
|
329
|
+
function Ne(e) {
|
|
330
|
+
if (e !== void 0) {
|
|
331
|
+
if (!e.startsWith("/") || e.includes("?"))
|
|
332
|
+
throw new Error(
|
|
333
|
+
"Demiurge Node readyPath must be an absolute path without a query string."
|
|
334
|
+
);
|
|
335
|
+
return e;
|
|
336
|
+
}
|
|
267
337
|
}
|
|
268
|
-
function
|
|
338
|
+
function Ee(e) {
|
|
269
339
|
const t = {
|
|
270
|
-
...
|
|
340
|
+
...we,
|
|
271
341
|
...e
|
|
272
342
|
};
|
|
273
343
|
for (const [n, r] of Object.entries(t))
|
|
@@ -281,87 +351,87 @@ function de(e) {
|
|
|
281
351
|
);
|
|
282
352
|
return t;
|
|
283
353
|
}
|
|
284
|
-
function
|
|
285
|
-
const n = t?.gracePeriod ??
|
|
354
|
+
function Te(e, t) {
|
|
355
|
+
const n = t?.gracePeriod ?? ye;
|
|
286
356
|
if (!Number.isSafeInteger(n) || n < 0)
|
|
287
357
|
throw new Error(
|
|
288
358
|
"Demiurge Node shutdown gracePeriod must be a non-negative integer in milliseconds."
|
|
289
359
|
);
|
|
290
|
-
let r = !1, o,
|
|
291
|
-
const
|
|
292
|
-
e.on("connection", (
|
|
293
|
-
|
|
294
|
-
}), e.on("request", (
|
|
295
|
-
const f =
|
|
360
|
+
let r = !1, o, a;
|
|
361
|
+
const d = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Set();
|
|
362
|
+
e.on("connection", (i) => {
|
|
363
|
+
c.set(i, 0), i.once("close", () => c.delete(i));
|
|
364
|
+
}), e.on("request", (i, s) => {
|
|
365
|
+
const f = s.socket;
|
|
296
366
|
if (!f)
|
|
297
367
|
return;
|
|
298
|
-
|
|
299
|
-
let
|
|
300
|
-
const
|
|
301
|
-
if (
|
|
368
|
+
c.set(f, (c.get(f) ?? 0) + 1);
|
|
369
|
+
let l = !1;
|
|
370
|
+
const u = () => {
|
|
371
|
+
if (l)
|
|
302
372
|
return;
|
|
303
|
-
|
|
304
|
-
const
|
|
305
|
-
|
|
373
|
+
l = !0;
|
|
374
|
+
const w = Math.max(0, (c.get(f) ?? 1) - 1);
|
|
375
|
+
c.set(f, w), r && w === 0 && f.destroy();
|
|
306
376
|
};
|
|
307
|
-
|
|
308
|
-
}), e.isReady = () => e.listening && !r, e.waitUntil = (
|
|
309
|
-
const
|
|
377
|
+
s.once("finish", u), s.once("close", u);
|
|
378
|
+
}), e.isReady = () => e.listening && !r, e.waitUntil = (i) => {
|
|
379
|
+
const s = Promise.resolve(i).catch((f) => {
|
|
310
380
|
try {
|
|
311
|
-
(t?.onBackgroundError ??
|
|
312
|
-
} catch (
|
|
313
|
-
|
|
381
|
+
(t?.onBackgroundError ?? p)(f);
|
|
382
|
+
} catch (l) {
|
|
383
|
+
p(l);
|
|
314
384
|
}
|
|
315
385
|
}).then(() => {
|
|
316
386
|
}).finally(() => {
|
|
317
|
-
m.delete(
|
|
387
|
+
m.delete(s), a?.();
|
|
318
388
|
});
|
|
319
|
-
m.add(
|
|
320
|
-
}, e.shutdown = () => o || (r = !0, t?.onStateChange?.("draining"), o = new Promise((
|
|
321
|
-
let f,
|
|
322
|
-
const
|
|
323
|
-
|
|
389
|
+
m.add(s);
|
|
390
|
+
}, e.shutdown = () => o || (r = !0, t?.onStateChange?.("draining"), o = new Promise((i, s) => {
|
|
391
|
+
let f, l = !1, u = !1, w = !1;
|
|
392
|
+
const v = setTimeout(() => {
|
|
393
|
+
l = !0, e.closeAllConnections(), b();
|
|
324
394
|
}, n);
|
|
325
395
|
e.close((R) => {
|
|
326
|
-
R && R.code !== "ERR_SERVER_NOT_RUNNING" && (f = R),
|
|
396
|
+
R && R.code !== "ERR_SERVER_NOT_RUNNING" && (f = R), u = !0, b();
|
|
327
397
|
}), e.closeIdleConnections(), h(), setImmediate(() => {
|
|
328
398
|
e.closeIdleConnections(), h();
|
|
329
|
-
}),
|
|
330
|
-
function
|
|
331
|
-
if (!(
|
|
332
|
-
if (
|
|
333
|
-
|
|
399
|
+
}), a = b;
|
|
400
|
+
function b() {
|
|
401
|
+
if (!(w || !u || !l && m.size > 0)) {
|
|
402
|
+
if (w = !0, a = void 0, clearTimeout(v), g(), t?.onStateChange?.("stopped"), f) {
|
|
403
|
+
s(f);
|
|
334
404
|
return;
|
|
335
405
|
}
|
|
336
|
-
|
|
406
|
+
i();
|
|
337
407
|
}
|
|
338
408
|
}
|
|
339
409
|
}), o), e.on("listening", () => t?.onStateChange?.("ready"));
|
|
340
|
-
for (const
|
|
341
|
-
const
|
|
342
|
-
e.shutdown().catch(
|
|
410
|
+
for (const i of new Set(t?.signals ?? [])) {
|
|
411
|
+
const s = () => {
|
|
412
|
+
e.shutdown().catch(p);
|
|
343
413
|
};
|
|
344
|
-
|
|
414
|
+
d.set(i, s), process.once(i, s);
|
|
345
415
|
}
|
|
346
416
|
return e.once("close", g), e;
|
|
347
417
|
function g() {
|
|
348
|
-
for (const [
|
|
349
|
-
process.off(
|
|
350
|
-
|
|
418
|
+
for (const [i, s] of d)
|
|
419
|
+
process.off(i, s);
|
|
420
|
+
d.clear();
|
|
351
421
|
}
|
|
352
422
|
function h() {
|
|
353
|
-
for (const [
|
|
354
|
-
|
|
423
|
+
for (const [i, s] of c)
|
|
424
|
+
s === 0 && i.destroy();
|
|
355
425
|
}
|
|
356
426
|
}
|
|
357
|
-
function
|
|
427
|
+
function Pe(e) {
|
|
358
428
|
if (e)
|
|
359
|
-
return typeof e == "function" ? e :
|
|
429
|
+
return typeof e == "function" ? e : J(e);
|
|
360
430
|
}
|
|
361
|
-
function
|
|
431
|
+
function p(e) {
|
|
362
432
|
console.error(e);
|
|
363
433
|
}
|
|
364
|
-
function
|
|
434
|
+
function Oe(e) {
|
|
365
435
|
if (e.headersSent) {
|
|
366
436
|
e.destroy();
|
|
367
437
|
return;
|
|
@@ -369,20 +439,23 @@ function he(e) {
|
|
|
369
439
|
e.statusCode = 500, e.setHeader("content-type", "text/plain; charset=utf-8"), e.end("Internal Server Error");
|
|
370
440
|
}
|
|
371
441
|
export {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
442
|
+
A as UnsupportedMethodError,
|
|
443
|
+
M as UntrustedHostError,
|
|
444
|
+
_e as createFontAssetHandler,
|
|
445
|
+
je as createImageOptimizer,
|
|
446
|
+
pe as createNodeRequestListener,
|
|
447
|
+
Se as createNodeServer,
|
|
448
|
+
J as createStaticFileHandler,
|
|
449
|
+
de as defaultNodeBuildClientDir,
|
|
450
|
+
fe as defaultNodeBuildReadyPath,
|
|
451
|
+
we as defaultNodeServerTimeouts,
|
|
452
|
+
De as nodeAdapter,
|
|
453
|
+
C as renderNodePageResponse,
|
|
454
|
+
Be as renderStreamingPageResponse,
|
|
455
|
+
We as serveNodeBuild,
|
|
456
|
+
ze as toHeaders,
|
|
457
|
+
x as toWebRequest,
|
|
458
|
+
L as validateNodeOriginPolicy,
|
|
386
459
|
k as writeWebResponse
|
|
387
460
|
};
|
|
388
461
|
//# sourceMappingURL=index.js.map
|