@withl5e/l5e 0.3.3-alpha.1 → 0.3.3-alpha.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/dist/entry-server.js.map +1 -1
- package/dist/server.js +239 -239
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/src/core/entry-server.ts +16 -4
- package/src/core/server.ts +27 -9
package/dist/server.js
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { existsSync as
|
|
1
|
+
import { existsSync as st } from "fs";
|
|
2
2
|
import D from "node:fs/promises";
|
|
3
|
-
import
|
|
3
|
+
import f from "node:path";
|
|
4
4
|
import { pathToFileURL as N } from "node:url";
|
|
5
|
-
import
|
|
6
|
-
import { a as
|
|
7
|
-
import { c as
|
|
8
|
-
import { createHash as
|
|
9
|
-
import { createRequire as
|
|
10
|
-
import { r as
|
|
11
|
-
let
|
|
12
|
-
function
|
|
13
|
-
return
|
|
14
|
-
const t =
|
|
5
|
+
import Y from "request-ip";
|
|
6
|
+
import { a as rt, s as V } from "./render-CRag-5V7.js";
|
|
7
|
+
import { c as Q, p as ot, a as lt } from "./index-CybB8Tdk.js";
|
|
8
|
+
import { createHash as ut } from "node:crypto";
|
|
9
|
+
import { createRequire as dt } from "node:module";
|
|
10
|
+
import { r as ft } from "./global-style-DFvaBcuR.js";
|
|
11
|
+
let q = null;
|
|
12
|
+
function pt() {
|
|
13
|
+
return q || (q = (async () => {
|
|
14
|
+
const t = dt(import.meta.url), e = t.resolve("vite"), n = t.resolve("rollup", { paths: [f.dirname(e)] });
|
|
15
15
|
return await import(N(n).href);
|
|
16
|
-
})()),
|
|
16
|
+
})()), q;
|
|
17
17
|
}
|
|
18
|
-
const
|
|
19
|
-
function
|
|
20
|
-
const n =
|
|
18
|
+
const K = { hash: "", filename: "", content: "" }, Z = /* @__PURE__ */ new Map(), G = /* @__PURE__ */ new Map();
|
|
19
|
+
function at(t, e) {
|
|
20
|
+
const n = G.get(t);
|
|
21
21
|
if (n)
|
|
22
22
|
return n;
|
|
23
23
|
const s = e().catch((r) => {
|
|
24
|
-
throw
|
|
24
|
+
throw G.delete(t), r;
|
|
25
25
|
});
|
|
26
|
-
return
|
|
26
|
+
return G.set(t, s), s;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
return
|
|
28
|
+
function X(t) {
|
|
29
|
+
return ut("sha256").update(t).digest("hex").substring(0, 16);
|
|
30
30
|
}
|
|
31
31
|
const O = "\0l5e:bundle-entry";
|
|
32
|
-
function
|
|
32
|
+
function ht(t) {
|
|
33
33
|
return {
|
|
34
34
|
name: "l5e-virtual-entry",
|
|
35
35
|
resolveId(e) {
|
|
@@ -40,68 +40,68 @@ function pt(t) {
|
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
function
|
|
44
|
-
const e = (n) => "/" +
|
|
43
|
+
function mt(t) {
|
|
44
|
+
const e = (n) => "/" + f.relative(t, n).replace(/\\/g, "/");
|
|
45
45
|
return {
|
|
46
46
|
name: "vendor-path-rewriter",
|
|
47
47
|
resolveId(n, s) {
|
|
48
|
-
return !n.includes("vendor-") && !n.includes("chunk-") && !n.includes(".global") ? null :
|
|
48
|
+
return !n.includes("vendor-") && !n.includes("chunk-") && !n.includes(".global") ? null : f.isAbsolute(n) ? { id: e(n), external: !0 } : s && n.startsWith(".") ? { id: e(f.resolve(f.dirname(s), n)), external: !0 } : null;
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
async function
|
|
53
|
-
const n = t.map((
|
|
54
|
-
const
|
|
55
|
-
return `import ${JSON.stringify(
|
|
52
|
+
async function wt(t, e) {
|
|
53
|
+
const n = t.map((c) => {
|
|
54
|
+
const T = c.startsWith("/") ? f.join(e, c.substring(1)) : f.join(e, c);
|
|
55
|
+
return `import ${JSON.stringify(T)};`;
|
|
56
56
|
}).join(`
|
|
57
57
|
`), s = {
|
|
58
58
|
input: O,
|
|
59
|
-
plugins: [
|
|
60
|
-
external: (
|
|
59
|
+
plugins: [ht(n), mt(e)],
|
|
60
|
+
external: (c) => !c.startsWith(".") && !f.isAbsolute(c) && c !== O
|
|
61
61
|
}, r = {
|
|
62
62
|
format: "es",
|
|
63
63
|
inlineDynamicImports: !1,
|
|
64
64
|
entryFileNames: "bundle-[hash].js",
|
|
65
65
|
chunkFileNames: "bundle-[hash].js"
|
|
66
|
-
}, { rollup: l } = await
|
|
67
|
-
let
|
|
66
|
+
}, { rollup: l } = await pt(), w = await l(s);
|
|
67
|
+
let p;
|
|
68
68
|
try {
|
|
69
|
-
({ output:
|
|
69
|
+
({ output: p } = await w.generate(r));
|
|
70
70
|
} finally {
|
|
71
71
|
await w.close();
|
|
72
72
|
}
|
|
73
|
-
for (const
|
|
74
|
-
|
|
75
|
-
content:
|
|
76
|
-
hash:
|
|
77
|
-
filename:
|
|
73
|
+
for (const c of p)
|
|
74
|
+
c.type === "chunk" && Z.set(c.fileName, {
|
|
75
|
+
content: c.code || "",
|
|
76
|
+
hash: X(c.code || ""),
|
|
77
|
+
filename: c.fileName,
|
|
78
78
|
mimeType: "application/javascript"
|
|
79
79
|
});
|
|
80
|
-
const o =
|
|
80
|
+
const o = p[0];
|
|
81
81
|
if (o?.type !== "chunk")
|
|
82
82
|
throw new Error("[bundler] rollup produced no entry chunk");
|
|
83
83
|
return {
|
|
84
|
-
hash:
|
|
84
|
+
hash: X(o.code || ""),
|
|
85
85
|
filename: o.fileName,
|
|
86
86
|
content: o.code || ""
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
|
-
async function
|
|
89
|
+
async function gt(t, e) {
|
|
90
90
|
if (t.length === 0)
|
|
91
|
-
return
|
|
91
|
+
return K;
|
|
92
92
|
const n = [...new Set(t)].sort(), s = `scripts:${n.join(",")}`;
|
|
93
93
|
try {
|
|
94
|
-
return await
|
|
94
|
+
return await at(s, () => wt(n, e));
|
|
95
95
|
} catch (r) {
|
|
96
|
-
return console.error("[bundler] Error bundling scripts:", r),
|
|
96
|
+
return console.error("[bundler] Error bundling scripts:", r), K;
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
async function
|
|
99
|
+
async function yt(t, e) {
|
|
100
100
|
const n = [];
|
|
101
101
|
for (const w of t) {
|
|
102
|
-
const
|
|
102
|
+
const p = w.startsWith("/") ? f.join(e, w.substring(1)) : f.join(e, w);
|
|
103
103
|
try {
|
|
104
|
-
const o = await D.readFile(
|
|
104
|
+
const o = await D.readFile(p, "utf-8");
|
|
105
105
|
n.push(`/* ${w} */
|
|
106
106
|
${o}
|
|
107
107
|
`);
|
|
@@ -111,66 +111,66 @@ ${o}
|
|
|
111
111
|
}
|
|
112
112
|
const s = n.join(`
|
|
113
113
|
|
|
114
|
-
`), r =
|
|
115
|
-
return
|
|
114
|
+
`), r = X(s), l = `bundle-${r}.css`;
|
|
115
|
+
return Z.set(l, {
|
|
116
116
|
content: s,
|
|
117
117
|
hash: r,
|
|
118
118
|
filename: l,
|
|
119
119
|
mimeType: "text/css"
|
|
120
120
|
}), { hash: r, filename: l, content: s };
|
|
121
121
|
}
|
|
122
|
-
async function
|
|
122
|
+
async function bt(t, e) {
|
|
123
123
|
if (t.length === 0)
|
|
124
|
-
return
|
|
124
|
+
return K;
|
|
125
125
|
const n = [...new Set(t)].sort(), s = `css:${n.join(",")}`;
|
|
126
126
|
try {
|
|
127
|
-
return await
|
|
127
|
+
return await at(s, () => yt(n, e));
|
|
128
128
|
} catch (r) {
|
|
129
|
-
return console.error("[bundler] Error bundling CSS:", r),
|
|
129
|
+
return console.error("[bundler] Error bundling CSS:", r), K;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
function
|
|
133
|
-
return
|
|
132
|
+
function vt(t) {
|
|
133
|
+
return Z.get(t);
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
const n =
|
|
135
|
+
function St(t, e) {
|
|
136
|
+
const n = rt(e);
|
|
137
137
|
return t.replace(/<html\b([^>]*)>/i, (s, r) => /\blang\s*=/i.test(r) ? s.replace(/lang\s*=\s*"[^"]*"/i, () => `lang="${n}"`) : `<html lang="${n}"${r}>`);
|
|
138
138
|
}
|
|
139
|
-
function
|
|
139
|
+
function xt(t) {
|
|
140
140
|
return new URL(`${t.protocol}://${t.get("host")}${t.originalUrl}`);
|
|
141
141
|
}
|
|
142
142
|
function it(t, e) {
|
|
143
143
|
return `${t.pathname}${t.search}`.replace(e, "") || "/";
|
|
144
144
|
}
|
|
145
|
-
function
|
|
145
|
+
function tt(t) {
|
|
146
146
|
const e = {
|
|
147
147
|
method: t.method,
|
|
148
|
-
headers:
|
|
148
|
+
headers: lt(t)
|
|
149
149
|
};
|
|
150
|
-
return t.method !== "GET" && t.method !== "HEAD" && (e.body = t, e.duplex = "half"), new globalThis.Request(
|
|
150
|
+
return t.method !== "GET" && t.method !== "HEAD" && (e.body = t, e.duplex = "half"), new globalThis.Request(xt(t).href, e);
|
|
151
151
|
}
|
|
152
|
-
function
|
|
153
|
-
const r = new URL(e.url), l = it(r, n), w = l.startsWith("/") ? l : `/${l}`,
|
|
154
|
-
return e.headers.forEach((o,
|
|
155
|
-
|
|
152
|
+
function J(t, e, n, s) {
|
|
153
|
+
const r = new URL(e.url), l = it(r, n), w = l.startsWith("/") ? l : `/${l}`, p = {};
|
|
154
|
+
return e.headers.forEach((o, c) => {
|
|
155
|
+
p[c] = o;
|
|
156
156
|
}), {
|
|
157
157
|
url: r,
|
|
158
158
|
path: w,
|
|
159
159
|
pathname: r.pathname,
|
|
160
160
|
method: e.method,
|
|
161
|
-
headers:
|
|
162
|
-
cookies:
|
|
161
|
+
headers: p,
|
|
162
|
+
cookies: ot(e.headers.get("cookie") ?? void 0),
|
|
163
163
|
query: Object.fromEntries(r.searchParams.entries()),
|
|
164
|
-
ip:
|
|
164
|
+
ip: Y.getClientIp(t) ?? void 0,
|
|
165
165
|
locals: s
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
|
-
function
|
|
168
|
+
function et(t, e, n) {
|
|
169
169
|
return t ? t instanceof globalThis.Request ? t : t instanceof URL ? new globalThis.Request(t.href, e.clone()) : new globalThis.Request(new URL(t, n).href, e.clone()) : e;
|
|
170
170
|
}
|
|
171
|
-
async function
|
|
171
|
+
async function nt(t, e, n) {
|
|
172
172
|
e.status(n.status);
|
|
173
|
-
const s =
|
|
173
|
+
const s = Ct(n.headers);
|
|
174
174
|
if (n.headers.forEach((l, w) => {
|
|
175
175
|
w.toLowerCase() !== "set-cookie" && e.setHeader(w, l);
|
|
176
176
|
}), s.length > 0 && e.setHeader("Set-Cookie", s), t.method === "HEAD") {
|
|
@@ -180,7 +180,7 @@ async function et(t, e, n) {
|
|
|
180
180
|
const r = Buffer.from(await n.arrayBuffer());
|
|
181
181
|
e.send(r);
|
|
182
182
|
}
|
|
183
|
-
function
|
|
183
|
+
function Ct(t) {
|
|
184
184
|
const e = t.getSetCookie;
|
|
185
185
|
if (typeof e == "function")
|
|
186
186
|
return e.call(t);
|
|
@@ -209,7 +209,7 @@ function Rt(t) {
|
|
|
209
209
|
headers: l
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
|
-
async function
|
|
212
|
+
async function jt({
|
|
213
213
|
rendered: t,
|
|
214
214
|
template: e,
|
|
215
215
|
manifest: n,
|
|
@@ -218,9 +218,9 @@ async function Ct({
|
|
|
218
218
|
isProduction: l,
|
|
219
219
|
assetBase: w
|
|
220
220
|
}) {
|
|
221
|
-
const
|
|
222
|
-
if (
|
|
223
|
-
return
|
|
221
|
+
const p = Rt(t);
|
|
222
|
+
if (p)
|
|
223
|
+
return p;
|
|
224
224
|
if (t.redirect)
|
|
225
225
|
return new globalThis.Response(null, {
|
|
226
226
|
status: t.redirect.statusCode,
|
|
@@ -228,119 +228,119 @@ async function Ct({
|
|
|
228
228
|
Location: t.redirect.url
|
|
229
229
|
}
|
|
230
230
|
});
|
|
231
|
-
let o = t.scripts || [],
|
|
232
|
-
const
|
|
233
|
-
let
|
|
231
|
+
let o = t.scripts || [], c = t.styles || [];
|
|
232
|
+
const T = t.islands || [];
|
|
233
|
+
let I = t.cacheTags || [];
|
|
234
234
|
const H = t.maxAge, W = t.sMaxAge, B = t.swr;
|
|
235
|
-
let
|
|
236
|
-
const
|
|
237
|
-
|
|
235
|
+
let a = "";
|
|
236
|
+
const h = /* @__PURE__ */ new Set(), g = (v, u = !1) => {
|
|
237
|
+
h.has(v) || (h.add(v), a += `<link rel="stylesheet"${u ? " crossorigin" : ""} href="${rt(v)}">`);
|
|
238
238
|
};
|
|
239
|
-
let
|
|
240
|
-
const
|
|
239
|
+
let b = [], $ = "";
|
|
240
|
+
const S = ft({
|
|
241
241
|
root: s,
|
|
242
242
|
manifest: n,
|
|
243
243
|
isProduction: l,
|
|
244
244
|
base: w
|
|
245
245
|
});
|
|
246
|
-
|
|
247
|
-
let
|
|
248
|
-
if (t.islandData && t.islandData.length > 0 && (
|
|
246
|
+
S && g(S, l);
|
|
247
|
+
let A = "";
|
|
248
|
+
if (t.islandData && t.islandData.length > 0 && (A = `<script type="application/json" id="_l5e_data_">${V(
|
|
249
249
|
t.islandData,
|
|
250
250
|
{ isJSON: !0 }
|
|
251
251
|
)}<\/script>`), l && n) {
|
|
252
|
-
let
|
|
253
|
-
const
|
|
254
|
-
return
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
const
|
|
258
|
-
|
|
252
|
+
let v = function(i) {
|
|
253
|
+
const m = n[i];
|
|
254
|
+
return m ? (m.css && m.css.forEach((x) => u.add(x)), m.imports && m.imports.forEach((x) => {
|
|
255
|
+
const P = n[x];
|
|
256
|
+
P?.file && d.add(P.file), P?.css && P.css.forEach((U) => u.add(U)), P?.imports && P.imports.forEach((U) => {
|
|
257
|
+
const z = n[U];
|
|
258
|
+
z?.file && d.add(z.file), z?.css && z.css.forEach((ct) => u.add(ct));
|
|
259
259
|
});
|
|
260
|
-
}), { file:
|
|
260
|
+
}), { file: m.file }) : { file: null };
|
|
261
261
|
};
|
|
262
|
-
o = o.filter((
|
|
263
|
-
const
|
|
264
|
-
for (const
|
|
265
|
-
const
|
|
266
|
-
|
|
262
|
+
o = o.filter((i) => !i.includes(".global.")), c = c.filter((i) => !i.includes(".global."));
|
|
263
|
+
const u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(), j = [];
|
|
264
|
+
for (const i of o) {
|
|
265
|
+
const m = i.replace(/^\//, ""), { file: x } = v(m);
|
|
266
|
+
x && j.push(`/${x}`);
|
|
267
267
|
}
|
|
268
|
-
const
|
|
269
|
-
for (const
|
|
270
|
-
const
|
|
271
|
-
|
|
268
|
+
const F = [];
|
|
269
|
+
for (const i of c) {
|
|
270
|
+
const m = i.replace(/^\//, ""), { file: x } = v(m);
|
|
271
|
+
x && (F.push(`/${x}`), u.add(x));
|
|
272
272
|
}
|
|
273
|
-
if (
|
|
274
|
-
const
|
|
275
|
-
o =
|
|
273
|
+
if (j.length > 0) {
|
|
274
|
+
const i = await gt(j, r);
|
|
275
|
+
o = i.filename ? [`/${i.filename}`] : j;
|
|
276
276
|
}
|
|
277
|
-
if (
|
|
278
|
-
const
|
|
279
|
-
|
|
277
|
+
if (F.length > 0) {
|
|
278
|
+
const i = await bt(F, r);
|
|
279
|
+
i.filename && (c = [`/${i.filename}`]);
|
|
280
280
|
}
|
|
281
|
-
const
|
|
282
|
-
if (
|
|
283
|
-
g(`/${
|
|
284
|
-
}),
|
|
285
|
-
const
|
|
286
|
-
for (const
|
|
287
|
-
const
|
|
288
|
-
|
|
281
|
+
const L = n["src/client.global.ts"];
|
|
282
|
+
if (L && (L.css && L.css.length > 0 && L.css.forEach((i) => {
|
|
283
|
+
g(`/${i}`, !0);
|
|
284
|
+
}), L.file && b.push(`/${L.file}`)), T.length > 0) {
|
|
285
|
+
const i = {};
|
|
286
|
+
for (const m of T) {
|
|
287
|
+
const x = n[m.src];
|
|
288
|
+
x?.file && (i[m.key] = `/${x.file}`);
|
|
289
289
|
}
|
|
290
|
-
Object.keys(
|
|
290
|
+
Object.keys(i).length > 0 && ($ = `<script>window.__L5E_ISLANDS__=${V(i)}<\/script>`);
|
|
291
291
|
}
|
|
292
|
-
|
|
292
|
+
c.length > 0 && c.forEach((i) => g(i, !0));
|
|
293
293
|
}
|
|
294
|
-
l || [...new Set(
|
|
295
|
-
let
|
|
294
|
+
l || [...new Set(c)].forEach((v) => g(v));
|
|
295
|
+
let y = [...b, ...o];
|
|
296
296
|
if (!l) {
|
|
297
|
-
const
|
|
298
|
-
if (
|
|
299
|
-
const
|
|
300
|
-
for (const
|
|
301
|
-
|
|
302
|
-
$ = `<script>window.__L5E_ISLANDS__=${
|
|
297
|
+
const v = f.join(s, "src", "client.global.ts");
|
|
298
|
+
if (st(v) && (y = ["/src/client.global.ts", ...y]), y = [...new Set(y)], T.length > 0) {
|
|
299
|
+
const u = {};
|
|
300
|
+
for (const d of T)
|
|
301
|
+
u[d.key] = `/${d.src}`;
|
|
302
|
+
$ = `<script>window.__L5E_ISLANDS__=${V(u)}<\/script>`;
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
|
-
const
|
|
305
|
+
const M = A + $ + y.map((v) => `<script type="module" src="${v}"><\/script>`).join(""), E = t.lang ? St(e, t.lang) : e, _ = t.rawHtml ? t.html || "" : E.replace("<!--app-head-->", () => (t.head ?? "") + a).replace("<!--app-html-->", () => t.html ?? "").replace("<!--app-scripts-->", () => M), C = new Headers({
|
|
306
306
|
"Content-Type": "text/html"
|
|
307
|
-
}), k = [
|
|
308
|
-
return H !== void 0 && k.push(`max-age=${H}`), W !== void 0 &&
|
|
307
|
+
}), k = [], R = [];
|
|
308
|
+
return H !== void 0 && (k.push(`max-age=${H}`), R.push(`max-age=${H}`)), W !== void 0 && R.push(`s-maxage=${W}`), B !== void 0 && R.push(`stale-while-revalidate=${B}`), (k.length > 0 || R.length > 0) && l && (k.push("public"), k.push("must-revalidate"), R.push("public"), C.set("Cache-Control", k.join(", ")), C.set("CDN-Cache-Control", R.join(", "))), process.env.NODE_ENV === "production" && (I = Tt(I)), C.set("Cache-Tag", ["global", ...I].join(",")), new globalThis.Response(_, {
|
|
309
309
|
status: t.statusCode || 200,
|
|
310
|
-
headers:
|
|
310
|
+
headers: C
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
|
-
async function
|
|
314
|
-
const e = t.root || process.cwd(), n = t.base || "/", s = process.env.NODE_ENV === "production", r = t.externalizeIslandProps ?? !0, l = s ? await D.readFile(
|
|
313
|
+
async function At(t = {}) {
|
|
314
|
+
const e = t.root || process.cwd(), n = t.base || "/", s = process.env.NODE_ENV === "production", r = t.externalizeIslandProps ?? !0, l = s ? await D.readFile(f.join(e, "./index.html"), "utf-8") : "", w = (await import("express")).default, p = t.app || w();
|
|
315
315
|
if (t.publicDir) {
|
|
316
|
-
const
|
|
317
|
-
|
|
316
|
+
const a = f.isAbsolute(t.publicDir) ? t.publicDir : f.join(e, t.publicDir);
|
|
317
|
+
st(a) && p.use(w.static(a));
|
|
318
318
|
}
|
|
319
319
|
let o;
|
|
320
|
-
const
|
|
320
|
+
const c = f.join(e, "./dist/client");
|
|
321
321
|
if (s) {
|
|
322
|
-
const
|
|
323
|
-
|
|
322
|
+
const a = (await import("compression")).default, h = (await import("sirv")).default;
|
|
323
|
+
p.use(a()), p.use(n, h(c, { extensions: [] })), p.get(
|
|
324
324
|
`${n === "/" ? "" : n}/bundle-:hash.:ext`,
|
|
325
|
-
async (g,
|
|
325
|
+
async (g, b) => {
|
|
326
326
|
try {
|
|
327
|
-
const { hash: $, ext:
|
|
328
|
-
if (!
|
|
329
|
-
return
|
|
330
|
-
|
|
331
|
-
"Content-Type":
|
|
327
|
+
const { hash: $, ext: S } = g.params, A = `bundle-${$}.${S}`, y = vt(A);
|
|
328
|
+
if (!y)
|
|
329
|
+
return b.status(404).send("Bundled file not found");
|
|
330
|
+
b.set({
|
|
331
|
+
"Content-Type": y.mimeType,
|
|
332
332
|
"Cache-Control": "public, max-age=31536000, immutable"
|
|
333
|
-
}),
|
|
333
|
+
}), b.send(y.content);
|
|
334
334
|
} catch ($) {
|
|
335
|
-
console.error("[server] Error serving bundled file:", $),
|
|
335
|
+
console.error("[server] Error serving bundled file:", $), b.status(500).end("Internal server error");
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
338
|
);
|
|
339
339
|
} else {
|
|
340
|
-
const { createServer:
|
|
341
|
-
o = await
|
|
340
|
+
const { createServer: a } = await import("vite"), h = f.join(e, "vite.config.js");
|
|
341
|
+
o = await a({
|
|
342
342
|
root: e,
|
|
343
|
-
configFile:
|
|
343
|
+
configFile: h,
|
|
344
344
|
server: { middlewareMode: !0 },
|
|
345
345
|
appType: "custom",
|
|
346
346
|
base: n,
|
|
@@ -355,144 +355,144 @@ async function jt(t = {}) {
|
|
|
355
355
|
resolve: {
|
|
356
356
|
conditions: ["development", "default"]
|
|
357
357
|
}
|
|
358
|
-
}),
|
|
358
|
+
}), p.use(o.middlewares);
|
|
359
359
|
}
|
|
360
|
-
|
|
361
|
-
const
|
|
362
|
-
let
|
|
360
|
+
p.use("/_l5e/action", w.json({ limit: "100kb" }));
|
|
361
|
+
const T = /^[a-zA-Z]\w+_[0-9a-f]{1,4}$/;
|
|
362
|
+
let I = null, H = null;
|
|
363
363
|
async function W() {
|
|
364
364
|
if (!s)
|
|
365
365
|
return (await o.ssrLoadModule("virtual:l5e-actions")).actionRegistry || {};
|
|
366
|
-
if (!
|
|
367
|
-
const
|
|
368
|
-
|
|
366
|
+
if (!I) {
|
|
367
|
+
const a = f.join(e, "./dist/server/action-registry.json"), h = await D.readFile(a, "utf-8");
|
|
368
|
+
I = JSON.parse(h);
|
|
369
369
|
}
|
|
370
|
-
return
|
|
370
|
+
return I;
|
|
371
371
|
}
|
|
372
372
|
async function B() {
|
|
373
373
|
if (!s)
|
|
374
374
|
return (await o.ssrLoadModule("virtual:l5e-actions")).viewActions || {};
|
|
375
375
|
if (!H) {
|
|
376
|
-
const
|
|
377
|
-
H = (await import(N(
|
|
376
|
+
const a = f.join(e, "./dist/server/entry-server.js");
|
|
377
|
+
H = (await import(N(a).href)).viewActions || {};
|
|
378
378
|
}
|
|
379
379
|
return H;
|
|
380
380
|
}
|
|
381
|
-
return
|
|
381
|
+
return p.all("/_l5e/action/:actionKey", async (a, h) => {
|
|
382
382
|
try {
|
|
383
|
-
const { actionKey: g } =
|
|
384
|
-
if (!
|
|
385
|
-
return
|
|
383
|
+
const { actionKey: g } = a.params;
|
|
384
|
+
if (!T.test(g))
|
|
385
|
+
return h.status(400).send("Invalid action key");
|
|
386
386
|
const $ = (await W())[g];
|
|
387
387
|
if (!$)
|
|
388
|
-
return
|
|
389
|
-
const { modulePath:
|
|
390
|
-
let
|
|
388
|
+
return h.status(404).send("Action not found");
|
|
389
|
+
const { modulePath: S, actionName: A } = $;
|
|
390
|
+
let y;
|
|
391
391
|
if (s) {
|
|
392
|
-
const
|
|
392
|
+
const i = await B(), m = i[`/src/${S}/actions.tsx`] ? `/src/${S}/actions.tsx` : i[`/src/${S}/actions.ts`] ? `/src/${S}/actions.ts` : null;
|
|
393
393
|
if (!m)
|
|
394
|
-
return
|
|
395
|
-
|
|
394
|
+
return h.status(404).send("Action module not found");
|
|
395
|
+
y = await i[m]();
|
|
396
396
|
} else
|
|
397
397
|
try {
|
|
398
|
-
|
|
398
|
+
y = await o.ssrLoadModule(`/src/${S}/actions.tsx`);
|
|
399
399
|
} catch {
|
|
400
|
-
|
|
400
|
+
y = await o.ssrLoadModule(`/src/${S}/actions.ts`);
|
|
401
401
|
}
|
|
402
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
403
|
-
return
|
|
404
|
-
const
|
|
405
|
-
if (!
|
|
406
|
-
return
|
|
407
|
-
const E = (
|
|
408
|
-
if (
|
|
409
|
-
return
|
|
410
|
-
const
|
|
411
|
-
request:
|
|
412
|
-
locals:
|
|
413
|
-
clientAddress:
|
|
414
|
-
}),
|
|
415
|
-
const m =
|
|
416
|
-
...
|
|
417
|
-
path:
|
|
418
|
-
body:
|
|
419
|
-
},
|
|
402
|
+
if (!Object.prototype.hasOwnProperty.call(y, A))
|
|
403
|
+
return h.status(404).send("Action not found");
|
|
404
|
+
const M = y[A];
|
|
405
|
+
if (!M || !M.handler)
|
|
406
|
+
return h.status(404).send("Action not found");
|
|
407
|
+
const E = (M.method || "GET").toUpperCase();
|
|
408
|
+
if (a.method.toUpperCase() !== E)
|
|
409
|
+
return h.status(405).set("Allow", E).send("Method Not Allowed");
|
|
410
|
+
const _ = f.join(e, "./dist/server/entry-server.js"), C = s ? await import(N(_).href) : await o.ssrLoadModule("@withl5e/l5e/entry-server"), { runInRenderContext: k } = await (s ? import(N(_).href) : o.ssrLoadModule("@withl5e/l5e/jsx-runtime")), { renderJsxToHtmlString: R } = await (s ? import(N(_).href) : o.ssrLoadModule("@withl5e/l5e")), v = {}, u = tt(a), d = Q({
|
|
411
|
+
request: u,
|
|
412
|
+
locals: v,
|
|
413
|
+
clientAddress: Y.getClientIp(a) ?? void 0
|
|
414
|
+
}), j = await C.loadMiddleware?.(), L = await (typeof j == "function" ? j : (i, m) => m())(d, async (i) => {
|
|
415
|
+
const m = et(i, d.request, d.url), x = {
|
|
416
|
+
...J(a, m, n, v),
|
|
417
|
+
path: a.originalUrl,
|
|
418
|
+
body: a.body
|
|
419
|
+
}, P = await k(
|
|
420
420
|
async () => {
|
|
421
|
-
const
|
|
422
|
-
return
|
|
421
|
+
const U = await M.handler(x);
|
|
422
|
+
return R(U);
|
|
423
423
|
},
|
|
424
|
-
|
|
425
|
-
|
|
424
|
+
x,
|
|
425
|
+
S
|
|
426
426
|
);
|
|
427
|
-
return new Response(
|
|
427
|
+
return new Response(P, { headers: { "Content-Type": "text/html" } });
|
|
428
428
|
});
|
|
429
|
-
await
|
|
429
|
+
await nt(a, h, L);
|
|
430
430
|
} catch (g) {
|
|
431
|
-
o?.ssrFixStacktrace?.(g), console.error("[l5e] Action error:", g.stack || g),
|
|
431
|
+
o?.ssrFixStacktrace?.(g), console.error("[l5e] Action error:", g.stack || g), h.status(500).send("Internal server error");
|
|
432
432
|
}
|
|
433
|
-
}),
|
|
433
|
+
}), p.use(async (a, h) => {
|
|
434
434
|
try {
|
|
435
|
-
const g =
|
|
436
|
-
let
|
|
435
|
+
const g = a.originalUrl.replace(n, "");
|
|
436
|
+
let b, $, S, A;
|
|
437
437
|
if (s) {
|
|
438
|
-
|
|
439
|
-
const
|
|
440
|
-
$ =
|
|
441
|
-
const
|
|
442
|
-
|
|
438
|
+
b = l;
|
|
439
|
+
const u = f.join(e, "./dist/server/entry-server.js"), d = await import(N(u).href);
|
|
440
|
+
$ = d.render, S = d.loadMiddleware;
|
|
441
|
+
const j = await D.readFile(
|
|
442
|
+
f.join(e, "./dist/client/.vite/manifest.json"),
|
|
443
443
|
"utf-8"
|
|
444
444
|
);
|
|
445
|
-
|
|
445
|
+
A = JSON.parse(j);
|
|
446
446
|
} else {
|
|
447
|
-
|
|
447
|
+
b = await D.readFile(f.join(e, "./index.html"), "utf-8"), b = await o.transformIndexHtml(g, b), b.includes("@vite/client") || (b = b.replace(
|
|
448
448
|
"</head>",
|
|
449
449
|
'<script type="module" src="/@vite/client"><\/script></head>'
|
|
450
450
|
));
|
|
451
|
-
const
|
|
451
|
+
const u = await o.ssrLoadModule(
|
|
452
452
|
"@withl5e/l5e/entry-server"
|
|
453
453
|
);
|
|
454
|
-
$ =
|
|
454
|
+
$ = u.render, S = u.loadMiddleware;
|
|
455
455
|
}
|
|
456
|
-
const
|
|
457
|
-
request:
|
|
458
|
-
requestInfo:
|
|
456
|
+
const y = await S?.(), M = typeof y == "function" ? y : (u, d) => d(), E = {}, _ = tt(a), C = Q({
|
|
457
|
+
request: _,
|
|
458
|
+
requestInfo: J(a, _, n, E),
|
|
459
459
|
locals: E,
|
|
460
|
-
clientAddress:
|
|
461
|
-
}), k = async (
|
|
462
|
-
const
|
|
460
|
+
clientAddress: Y.getClientIp(a)
|
|
461
|
+
}), k = async (u) => {
|
|
462
|
+
const d = J(a, u, n, E), j = it(d.url, n), F = await $(j, d, {
|
|
463
463
|
externalizeIslandProps: r
|
|
464
464
|
});
|
|
465
|
-
return
|
|
466
|
-
rendered:
|
|
467
|
-
template:
|
|
468
|
-
manifest:
|
|
465
|
+
return jt({
|
|
466
|
+
rendered: F,
|
|
467
|
+
template: b,
|
|
468
|
+
manifest: A,
|
|
469
469
|
root: e,
|
|
470
|
-
distClientDir:
|
|
470
|
+
distClientDir: c,
|
|
471
471
|
isProduction: s,
|
|
472
472
|
assetBase: s ? n : o.config.base
|
|
473
473
|
});
|
|
474
|
-
},
|
|
475
|
-
const
|
|
476
|
-
return
|
|
474
|
+
}, R = async (u) => {
|
|
475
|
+
const d = et(u, C.request, C.url);
|
|
476
|
+
return C.request = d, C.url = new URL(d.url), C.cookies = ot(d.headers.get("cookie") ?? void 0), C.requestInfo = J(a, d, n, E), k(d);
|
|
477
477
|
};
|
|
478
|
-
|
|
479
|
-
const
|
|
480
|
-
await
|
|
478
|
+
C.rewrite = (u) => R(u);
|
|
479
|
+
const v = await M(C, R);
|
|
480
|
+
await nt(a, h, v);
|
|
481
481
|
} catch (g) {
|
|
482
|
-
o?.ssrFixStacktrace?.(g), console.error(g.stack),
|
|
482
|
+
o?.ssrFixStacktrace?.(g), console.error(g.stack), h.status(500).end(s ? "Internal Server Error" : g.stack);
|
|
483
483
|
}
|
|
484
|
-
}), { app:
|
|
484
|
+
}), { app: p, vite: o };
|
|
485
485
|
}
|
|
486
|
-
async function
|
|
486
|
+
async function Ot(t = {}) {
|
|
487
487
|
const e = t.port || 5173, n = (await import("express")).default, s = n();
|
|
488
488
|
t.setupApp && (console.log("setupApp"), await t.setupApp(s));
|
|
489
|
-
const { app: r } = await
|
|
489
|
+
const { app: r } = await At({ ...t, app: s });
|
|
490
490
|
r.listen(e, () => {
|
|
491
491
|
console.log(`Server started at http://localhost:${e}`);
|
|
492
492
|
});
|
|
493
493
|
}
|
|
494
|
-
const
|
|
495
|
-
function
|
|
494
|
+
const Et = 1e3;
|
|
495
|
+
function kt(t) {
|
|
496
496
|
if (t === "global")
|
|
497
497
|
return "global";
|
|
498
498
|
let e = 0;
|
|
@@ -502,14 +502,14 @@ function Et(t) {
|
|
|
502
502
|
}
|
|
503
503
|
return Math.abs(e).toString(36).substring(0, 8);
|
|
504
504
|
}
|
|
505
|
-
function
|
|
506
|
-
return (Array.isArray(t) ? t : [...t]).slice(0,
|
|
505
|
+
function Tt(t) {
|
|
506
|
+
return (Array.isArray(t) ? t : [...t]).slice(0, Et).map(kt);
|
|
507
507
|
}
|
|
508
508
|
export {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
509
|
+
St as applyHtmlLang,
|
|
510
|
+
At as createServer,
|
|
511
|
+
kt as hashTag,
|
|
512
|
+
Tt as optimizeCacheTags,
|
|
513
|
+
Ot as startServer
|
|
514
514
|
};
|
|
515
515
|
//# sourceMappingURL=server.js.map
|