@qwik.dev/router 2.0.0-alpha.9 → 2.0.0-beta.10
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 +1 -1
- package/adapters/static/vite.d.ts +1 -1
- package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/azure-swa/vite/index.cjs +5 -96
- package/lib/adapters/azure-swa/vite/index.d.ts +13 -13
- package/lib/adapters/azure-swa/vite/index.mjs +201 -26
- package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/bun-server/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/bun-server/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/bun-server/vite/index.cjs +5 -50
- package/lib/adapters/bun-server/vite/index.d.ts +14 -14
- package/lib/adapters/bun-server/vite/index.mjs +196 -12
- package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/cloud-run/vite/index.cjs +5 -47
- package/lib/adapters/cloud-run/vite/index.d.ts +13 -13
- package/lib/adapters/cloud-run/vite/index.mjs +195 -11
- package/lib/adapters/cloudflare-pages/vite/index-BIeHg2Cj.cjs +5 -0
- package/lib/adapters/cloudflare-pages/vite/index-C455V8_A.cjs +1 -0
- package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/cloudflare-pages/vite/index-D3HITboM.js +645 -0
- package/lib/adapters/cloudflare-pages/vite/index-DKcVHRBy.cjs +11 -0
- package/lib/adapters/cloudflare-pages/vite/index-DwovcBp3.js +22 -0
- package/lib/adapters/cloudflare-pages/vite/index-bogwy7wh.js +250 -0
- package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/cloudflare-pages/vite/index.cjs +1 -115
- package/lib/adapters/cloudflare-pages/vite/index.d.ts +27 -27
- package/lib/adapters/cloudflare-pages/vite/index.mjs +4 -78
- package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/deno-server/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/deno-server/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/deno-server/vite/index.cjs +5 -62
- package/lib/adapters/deno-server/vite/index.d.ts +14 -14
- package/lib/adapters/deno-server/vite/index.mjs +198 -14
- package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/netlify-edge/vite/index.cjs +6 -129
- package/lib/adapters/netlify-edge/vite/index.d.ts +44 -44
- package/lib/adapters/netlify-edge/vite/index.mjs +240 -60
- package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/node-server/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/node-server/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/node-server/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/node-server/vite/index.cjs +5 -50
- package/lib/adapters/node-server/vite/index.d.ts +14 -14
- package/lib/adapters/node-server/vite/index.mjs +196 -12
- package/lib/adapters/shared/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/shared/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/shared/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/shared/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/shared/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/shared/vite/index.cjs +5 -371
- package/lib/adapters/shared/vite/index.d.ts +108 -114
- package/lib/adapters/shared/vite/index.mjs +158 -288
- package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/ssg/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/ssg/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/ssg/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/ssg/vite/index.cjs +5 -0
- package/lib/adapters/ssg/vite/index.d.ts +13 -0
- package/lib/adapters/ssg/vite/index.mjs +201 -0
- package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +1 -0
- package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +651 -0
- package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +6 -0
- package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +22 -0
- package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +11 -0
- package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +1 -0
- package/lib/adapters/vercel-edge/vite/index.cjs +5 -118
- package/lib/adapters/vercel-edge/vite/index.d.ts +45 -45
- package/lib/adapters/vercel-edge/vite/index.mjs +230 -51
- package/lib/index.d.ts +1000 -810
- package/lib/index.qwik.cjs +438 -203
- package/lib/index.qwik.mjs +440 -205
- package/lib/middleware/aws-lambda/index.cjs +1 -0
- package/lib/middleware/aws-lambda/index.d.ts +49 -48
- package/lib/middleware/aws-lambda/index.mjs +27 -41
- package/lib/middleware/azure-swa/index.cjs +1 -0
- package/lib/middleware/azure-swa/index.d.ts +28 -28
- package/lib/middleware/azure-swa/index.mjs +46 -269
- package/lib/middleware/bun/index.cjs +1 -0
- package/lib/middleware/bun/index.d.ts +35 -35
- package/lib/middleware/bun/index.mjs +68 -120
- package/lib/middleware/cloudflare-pages/index.cjs +1 -0
- package/lib/middleware/cloudflare-pages/index.d.ts +35 -35
- package/lib/middleware/cloudflare-pages/index.mjs +48 -80
- package/lib/middleware/deno/index.cjs +1 -0
- package/lib/middleware/deno/index.d.ts +47 -47
- package/lib/middleware/deno/index.mjs +63 -110
- package/lib/middleware/firebase/index.cjs +1 -0
- package/lib/middleware/firebase/index.d.ts +26 -26
- package/lib/middleware/firebase/index.mjs +16 -28
- package/lib/middleware/netlify-edge/index.cjs +1 -0
- package/lib/middleware/netlify-edge/index.d.ts +27 -27
- package/lib/middleware/netlify-edge/index.mjs +36 -64
- package/lib/middleware/node/index.cjs +1 -314
- package/lib/middleware/node/index.d.ts +64 -64
- package/lib/middleware/node/index.mjs +116 -198
- package/lib/middleware/request-handler/index.cjs +11 -1538
- package/lib/middleware/request-handler/index.d.ts +711 -676
- package/lib/middleware/request-handler/index.mjs +895 -1281
- package/lib/middleware/vercel-edge/index.cjs +1 -0
- package/lib/middleware/vercel-edge/index.d.ts +26 -26
- package/lib/middleware/vercel-edge/index.mjs +47 -82
- package/lib/modules.d.ts +4 -12
- package/lib/service-worker.cjs +1 -267
- package/lib/service-worker.d.ts +15 -4
- package/lib/service-worker.mjs +3 -263
- package/lib/ssg/deno.cjs +1 -0
- package/lib/ssg/deno.mjs +6 -0
- package/lib/ssg/index-CBIchDYq.js +651 -0
- package/lib/ssg/index-ClHGw5z1.js +6 -0
- package/lib/ssg/index-DTIOTwZo.cjs +11 -0
- package/lib/ssg/index-vQuPcef3.cjs +1 -0
- package/lib/ssg/index.cjs +1 -0
- package/lib/{static → ssg}/index.d.ts +96 -96
- package/lib/ssg/index.mjs +22 -0
- package/lib/ssg/node.cjs +11 -0
- package/lib/ssg/node.mjs +651 -0
- package/lib/vite/index.cjs +29 -27484
- package/lib/vite/index.d.ts +170 -154
- package/lib/vite/index.mjs +1422 -27288
- package/modules.d.ts +4 -12
- package/package.json +51 -40
- package/ssg.d.ts +2 -0
- package/static.d.ts +1 -1
- package/lib/adapters/static/vite/index.cjs +0 -361
- package/lib/adapters/static/vite/index.d.ts +0 -10
- package/lib/adapters/static/vite/index.mjs +0 -324
- package/lib/static/deno.mjs +0 -8
- package/lib/static/index.cjs +0 -67
- package/lib/static/index.mjs +0 -48
- package/lib/static/node.cjs +0 -1124
- package/lib/static/node.mjs +0 -1086
- package/middleware/request-handler/generated/not-found-paths.ts +0 -7
- package/middleware/request-handler/generated/static-paths.ts +0 -35
|
@@ -1,314 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// packages/qwik-router/src/middleware/node/index.ts
|
|
21
|
-
var node_exports = {};
|
|
22
|
-
__export(node_exports, {
|
|
23
|
-
createQwikCity: () => createQwikCity,
|
|
24
|
-
createQwikRouter: () => createQwikRouter
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(node_exports);
|
|
27
|
-
var import_qwik_router_not_found_paths = require("@qwik-router-not-found-paths");
|
|
28
|
-
var import_qwik_router_static_paths = require("@qwik-router-static-paths");
|
|
29
|
-
var import_internal = require("@qwik.dev/core/internal");
|
|
30
|
-
var import_server = require("@qwik.dev/core/server");
|
|
31
|
-
var import_request_handler = require("../request-handler/index.cjs");
|
|
32
|
-
var import_node_fs = require("node:fs");
|
|
33
|
-
var import_node_path = require("node:path");
|
|
34
|
-
var import_node_url = require("node:url");
|
|
35
|
-
|
|
36
|
-
// packages/qwik-router/src/middleware/request-handler/mime-types.ts
|
|
37
|
-
var MIME_TYPES = {
|
|
38
|
-
"3gp": "video/3gpp",
|
|
39
|
-
"3gpp": "video/3gpp",
|
|
40
|
-
asf: "video/x-ms-asf",
|
|
41
|
-
asx: "video/x-ms-asf",
|
|
42
|
-
avi: "video/x-msvideo",
|
|
43
|
-
avif: "image/avif",
|
|
44
|
-
bmp: "image/x-ms-bmp",
|
|
45
|
-
css: "text/css",
|
|
46
|
-
flv: "video/x-flv",
|
|
47
|
-
gif: "image/gif",
|
|
48
|
-
htm: "text/html",
|
|
49
|
-
html: "text/html",
|
|
50
|
-
ico: "image/x-icon",
|
|
51
|
-
jng: "image/x-jng",
|
|
52
|
-
jpeg: "image/jpeg",
|
|
53
|
-
jpg: "image/jpeg",
|
|
54
|
-
js: "application/javascript",
|
|
55
|
-
json: "application/json",
|
|
56
|
-
kar: "audio/midi",
|
|
57
|
-
m4a: "audio/x-m4a",
|
|
58
|
-
m4v: "video/x-m4v",
|
|
59
|
-
mid: "audio/midi",
|
|
60
|
-
midi: "audio/midi",
|
|
61
|
-
mng: "video/x-mng",
|
|
62
|
-
mov: "video/quicktime",
|
|
63
|
-
mp3: "audio/mpeg",
|
|
64
|
-
mp4: "video/mp4",
|
|
65
|
-
mpeg: "video/mpeg",
|
|
66
|
-
mpg: "video/mpeg",
|
|
67
|
-
ogg: "audio/ogg",
|
|
68
|
-
pdf: "application/pdf",
|
|
69
|
-
png: "image/png",
|
|
70
|
-
rar: "application/x-rar-compressed",
|
|
71
|
-
shtml: "text/html",
|
|
72
|
-
svg: "image/svg+xml",
|
|
73
|
-
svgz: "image/svg+xml",
|
|
74
|
-
tif: "image/tiff",
|
|
75
|
-
tiff: "image/tiff",
|
|
76
|
-
ts: "video/mp2t",
|
|
77
|
-
txt: "text/plain",
|
|
78
|
-
wbmp: "image/vnd.wap.wbmp",
|
|
79
|
-
webm: "video/webm",
|
|
80
|
-
webp: "image/webp",
|
|
81
|
-
wmv: "video/x-ms-wmv",
|
|
82
|
-
woff: "font/woff",
|
|
83
|
-
woff2: "font/woff2",
|
|
84
|
-
xml: "text/xml",
|
|
85
|
-
zip: "application/zip"
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// packages/qwik-router/src/middleware/node/http.ts
|
|
89
|
-
var import_node_http2 = require("node:http2");
|
|
90
|
-
function computeOrigin(req, opts) {
|
|
91
|
-
var _a;
|
|
92
|
-
return ((_a = opts == null ? void 0 : opts.getOrigin) == null ? void 0 : _a.call(opts, req)) ?? (opts == null ? void 0 : opts.origin) ?? process.env.ORIGIN ?? fallbackOrigin(req);
|
|
93
|
-
}
|
|
94
|
-
function fallbackOrigin(req) {
|
|
95
|
-
const { PROTOCOL_HEADER, HOST_HEADER } = process.env;
|
|
96
|
-
const headers = req.headers;
|
|
97
|
-
const protocol = PROTOCOL_HEADER && headers[PROTOCOL_HEADER] || (req.socket.encrypted || req.connection.encrypted ? "https" : "http");
|
|
98
|
-
const hostHeader = HOST_HEADER ?? (req instanceof import_node_http2.Http2ServerRequest ? ":authority" : "host");
|
|
99
|
-
const host = headers[hostHeader];
|
|
100
|
-
return `${protocol}://${host}`;
|
|
101
|
-
}
|
|
102
|
-
function getUrl(req, origin) {
|
|
103
|
-
return normalizeUrl(req.originalUrl || req.url || "/", origin);
|
|
104
|
-
}
|
|
105
|
-
function isIgnoredError(message = "") {
|
|
106
|
-
const ignoredErrors = ["The stream has been destroyed", "write after end"];
|
|
107
|
-
return ignoredErrors.some((ignored) => message.includes(ignored));
|
|
108
|
-
}
|
|
109
|
-
var invalidHeadersPattern = /^:(method|scheme|authority|path)$/i;
|
|
110
|
-
function normalizeUrl(url, base) {
|
|
111
|
-
const DOUBLE_SLASH_REG = /\/\/|\\\\/g;
|
|
112
|
-
return new URL(url.replace(DOUBLE_SLASH_REG, "/"), base);
|
|
113
|
-
}
|
|
114
|
-
async function fromNodeHttp(url, req, res, mode, getClientConn) {
|
|
115
|
-
const requestHeaders = new Headers();
|
|
116
|
-
const nodeRequestHeaders = req.headers;
|
|
117
|
-
try {
|
|
118
|
-
for (const [key, value] of Object.entries(nodeRequestHeaders)) {
|
|
119
|
-
if (invalidHeadersPattern.test(key)) {
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
if (typeof value === "string") {
|
|
123
|
-
requestHeaders.set(key, value);
|
|
124
|
-
} else if (Array.isArray(value)) {
|
|
125
|
-
for (const v of value) {
|
|
126
|
-
requestHeaders.append(key, v);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
} catch (err) {
|
|
131
|
-
console.error(err);
|
|
132
|
-
}
|
|
133
|
-
const getRequestBody = async function* () {
|
|
134
|
-
for await (const chunk of req) {
|
|
135
|
-
yield chunk;
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
const body = req.method === "HEAD" || req.method === "GET" ? void 0 : getRequestBody();
|
|
139
|
-
const controller = new AbortController();
|
|
140
|
-
const options = {
|
|
141
|
-
method: req.method,
|
|
142
|
-
headers: requestHeaders,
|
|
143
|
-
body,
|
|
144
|
-
signal: controller.signal,
|
|
145
|
-
duplex: "half"
|
|
146
|
-
};
|
|
147
|
-
res.on("close", () => {
|
|
148
|
-
controller.abort();
|
|
149
|
-
});
|
|
150
|
-
const serverRequestEv = {
|
|
151
|
-
mode,
|
|
152
|
-
url,
|
|
153
|
-
request: new Request(url.href, options),
|
|
154
|
-
env: {
|
|
155
|
-
get(key) {
|
|
156
|
-
return process.env[key];
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
getWritableStream: (status, headers, cookies) => {
|
|
160
|
-
res.statusCode = status;
|
|
161
|
-
try {
|
|
162
|
-
for (const [key, value] of headers) {
|
|
163
|
-
if (invalidHeadersPattern.test(key)) {
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
res.setHeader(key, value);
|
|
167
|
-
}
|
|
168
|
-
const cookieHeaders = cookies.headers();
|
|
169
|
-
if (cookieHeaders.length > 0) {
|
|
170
|
-
res.setHeader("Set-Cookie", cookieHeaders);
|
|
171
|
-
}
|
|
172
|
-
} catch (err) {
|
|
173
|
-
console.error(err);
|
|
174
|
-
}
|
|
175
|
-
return new WritableStream({
|
|
176
|
-
write(chunk) {
|
|
177
|
-
if (res.closed || res.destroyed) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
res.write(chunk, (error) => {
|
|
181
|
-
if (error && !isIgnoredError(error.message)) {
|
|
182
|
-
console.error(error);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
},
|
|
186
|
-
close() {
|
|
187
|
-
res.end();
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
},
|
|
191
|
-
getClientConn: () => {
|
|
192
|
-
return getClientConn ? getClientConn(req) : {
|
|
193
|
-
ip: req.socket.remoteAddress
|
|
194
|
-
};
|
|
195
|
-
},
|
|
196
|
-
platform: {
|
|
197
|
-
ssr: true,
|
|
198
|
-
incomingMessage: req,
|
|
199
|
-
node: process.versions.node
|
|
200
|
-
// Weirdly needed to make typecheck of insights happy
|
|
201
|
-
},
|
|
202
|
-
locale: void 0
|
|
203
|
-
};
|
|
204
|
-
return serverRequestEv;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// packages/qwik-router/src/middleware/node/index.ts
|
|
208
|
-
var import_meta = {};
|
|
209
|
-
function createQwikRouter(opts) {
|
|
210
|
-
var _a;
|
|
211
|
-
if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
|
|
212
|
-
console.warn("qwikCityPlan is deprecated. Use qwikRouterConfig instead.");
|
|
213
|
-
opts.qwikRouterConfig = opts.qwikCityPlan;
|
|
214
|
-
} else if (!opts.qwikRouterConfig) {
|
|
215
|
-
throw new Error("qwikRouterConfig is required.");
|
|
216
|
-
}
|
|
217
|
-
const qwikSerializer = {
|
|
218
|
-
_deserialize: import_internal._deserialize,
|
|
219
|
-
_serialize: import_internal._serialize,
|
|
220
|
-
_verifySerializable: import_internal._verifySerializable
|
|
221
|
-
};
|
|
222
|
-
if (opts.manifest) {
|
|
223
|
-
(0, import_server.setServerPlatform)(opts.manifest);
|
|
224
|
-
}
|
|
225
|
-
const staticFolder = ((_a = opts.static) == null ? void 0 : _a.root) ?? (0, import_node_path.join)((0, import_node_url.fileURLToPath)(import_meta.url), "..", "..", "dist");
|
|
226
|
-
const router = async (req, res, next) => {
|
|
227
|
-
try {
|
|
228
|
-
const origin = computeOrigin(req, opts);
|
|
229
|
-
const serverRequestEv = await fromNodeHttp(
|
|
230
|
-
getUrl(req, origin),
|
|
231
|
-
req,
|
|
232
|
-
res,
|
|
233
|
-
"server",
|
|
234
|
-
opts.getClientConn
|
|
235
|
-
);
|
|
236
|
-
const handled = await (0, import_request_handler.requestHandler)(serverRequestEv, opts, qwikSerializer);
|
|
237
|
-
if (handled) {
|
|
238
|
-
const err = await handled.completion;
|
|
239
|
-
if (err) {
|
|
240
|
-
throw err;
|
|
241
|
-
}
|
|
242
|
-
if (handled.requestEv.headersSent) {
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
next();
|
|
247
|
-
} catch (e) {
|
|
248
|
-
console.error(e);
|
|
249
|
-
next(e);
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
const notFound = async (req, res, next) => {
|
|
253
|
-
try {
|
|
254
|
-
if (!res.headersSent) {
|
|
255
|
-
const origin = computeOrigin(req, opts);
|
|
256
|
-
const url = getUrl(req, origin);
|
|
257
|
-
const notFoundHtml = (0, import_qwik_router_static_paths.isStaticPath)(req.method || "GET", url) ? "Not Found" : (0, import_qwik_router_not_found_paths.getNotFound)(url.pathname);
|
|
258
|
-
res.writeHead(404, {
|
|
259
|
-
"Content-Type": "text/html; charset=utf-8",
|
|
260
|
-
"X-Not-Found": url.pathname
|
|
261
|
-
});
|
|
262
|
-
res.end(notFoundHtml);
|
|
263
|
-
}
|
|
264
|
-
} catch (e) {
|
|
265
|
-
console.error(e);
|
|
266
|
-
next(e);
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
const staticFile = async (req, res, next) => {
|
|
270
|
-
var _a2;
|
|
271
|
-
try {
|
|
272
|
-
const origin = computeOrigin(req, opts);
|
|
273
|
-
const url = getUrl(req, origin);
|
|
274
|
-
if ((0, import_qwik_router_static_paths.isStaticPath)(req.method || "GET", url)) {
|
|
275
|
-
const pathname = url.pathname;
|
|
276
|
-
let filePath;
|
|
277
|
-
if ((0, import_node_path.basename)(pathname).includes(".")) {
|
|
278
|
-
filePath = (0, import_node_path.join)(staticFolder, pathname);
|
|
279
|
-
} else if (opts.qwikRouterConfig.trailingSlash) {
|
|
280
|
-
filePath = (0, import_node_path.join)(staticFolder, pathname + "index.html");
|
|
281
|
-
} else {
|
|
282
|
-
filePath = (0, import_node_path.join)(staticFolder, pathname, "index.html");
|
|
283
|
-
}
|
|
284
|
-
const ext = (0, import_node_path.extname)(filePath).replace(/^\./, "");
|
|
285
|
-
const stream = (0, import_node_fs.createReadStream)(filePath);
|
|
286
|
-
stream.on("error", next);
|
|
287
|
-
const contentType = MIME_TYPES[ext];
|
|
288
|
-
if (contentType) {
|
|
289
|
-
res.setHeader("Content-Type", contentType);
|
|
290
|
-
}
|
|
291
|
-
if ((_a2 = opts.static) == null ? void 0 : _a2.cacheControl) {
|
|
292
|
-
res.setHeader("Cache-Control", opts.static.cacheControl);
|
|
293
|
-
}
|
|
294
|
-
stream.pipe(res);
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
return next();
|
|
298
|
-
} catch (e) {
|
|
299
|
-
console.error(e);
|
|
300
|
-
next(e);
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
return {
|
|
304
|
-
router,
|
|
305
|
-
notFound,
|
|
306
|
-
staticFile
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
var createQwikCity = createQwikRouter;
|
|
310
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
311
|
-
0 && (module.exports = {
|
|
312
|
-
createQwikCity,
|
|
313
|
-
createQwikRouter
|
|
314
|
-
});
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@qwik.dev/core/server"),w=require("@qwik.dev/router/middleware/request-handler"),k=require("node:fs"),g=require("node:path"),E=require("node:url"),_=require("node:http2");var y=typeof document<"u"?document.currentScript:null;const j={"3gp":"video/3gpp","3gpp":"video/3gpp",asf:"video/x-ms-asf",asx:"video/x-ms-asf",avi:"video/x-msvideo",avif:"image/avif",bmp:"image/x-ms-bmp",css:"text/css",flv:"video/x-flv",gif:"image/gif",htm:"text/html",html:"text/html",ico:"image/x-icon",jng:"image/x-jng",jpeg:"image/jpeg",jpg:"image/jpeg",js:"application/javascript",json:"application/json",kar:"audio/midi",m4a:"audio/x-m4a",m4v:"video/x-m4v",mid:"audio/midi",midi:"audio/midi",mng:"video/x-mng",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",ogg:"audio/ogg",pdf:"application/pdf",png:"image/png",rar:"application/x-rar-compressed",shtml:"text/html",svg:"image/svg+xml",svgz:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",txt:"text/plain",wbmp:"image/vnd.wap.wbmp",webm:"video/webm",webp:"image/webp",wmv:"video/x-ms-wmv",woff:"font/woff",woff2:"font/woff2",xml:"text/xml",zip:"application/zip"};function x(e,t){return t?.getOrigin?.(e)??t?.origin??process.env.ORIGIN??T(e)}function T(e){const{PROTOCOL_HEADER:t,HOST_HEADER:i}=process.env,h=e.headers,v=t&&h[t]||(e.socket.encrypted||e.connection.encrypted?"https":"http"),o=i??(e instanceof _.Http2ServerRequest?":authority":"host"),r=h[o];return`${v}://${r}`}function R(e,t){return O(e.originalUrl||e.url||"/",t)}function P(e=""){return["The stream has been destroyed","write after end"].some(i=>e.includes(i))}const C=/^:(method|scheme|authority|path)$/i;function O(e,t){const i=/\/\/|\\\\/g;return new URL(e.replace(i,"/"),t)}async function A(e,t,i,h,v){const o=new Headers,r=t.headers;try{for(const[a,l]of Object.entries(r))if(!C.test(a)){if(typeof l=="string")o.set(a,l);else if(Array.isArray(l))for(const u of l)o.append(a,u)}}catch(a){console.error(a)}const d=async function*(){for await(const a of t)yield a},n=t.method==="HEAD"||t.method==="GET"?void 0:d(),c=new AbortController,s={method:t.method,headers:o,body:n,signal:c.signal,duplex:"half"};return i.on("close",()=>{c.abort()}),{mode:h,url:e,request:new Request(e.href,s),env:{get(a){return process.env[a]}},getWritableStream:(a,l,u)=>{i.statusCode=a;try{for(const[p,S]of l)C.test(p)||i.setHeader(p,S);const f=u.headers();f.length>0&&i.setHeader("Set-Cookie",f)}catch(f){console.error(f)}return new WritableStream({write(f){i.closed||i.destroyed||i.write(f,p=>{p&&!P(p.message)&&console.error(p)})},close(){i.end()}})},getClientConn:()=>v?v(t):{ip:t.socket.remoteAddress},platform:{ssr:!0,incomingMessage:t,node:process.versions.node},locale:void 0}}function H(e){e.qwikCityPlan&&!e.qwikRouterConfig&&(console.warn("qwikCityPlan is deprecated. Simply remove it."),e.qwikRouterConfig=e.qwikCityPlan),e.manifest&&b.setServerPlatform(e.manifest);const t=e.static?.root??g.join(E.fileURLToPath(typeof document>"u"?require("url").pathToFileURL(__filename).href:y&&y.tagName.toUpperCase()==="SCRIPT"&&y.src||new URL("index.cjs",document.baseURI).href),"..","..","dist");return{router:async(o,r,d)=>{try{const n=x(o,e),c=await A(R(o,n),o,r,"server",e.getClientConn),s=await w.requestHandler(c,e);if(s){const m=await s.completion;if(m)throw m;if(s.requestEv.headersSent)return}d()}catch(n){console.error(n),d(n)}},notFound:async(o,r,d)=>{try{if(!r.headersSent){const n=x(o,e),c=R(o,n),s=!o.headers.accept?.includes("text/html")||w.isStaticPath(o.method||"GET",c)?"Not Found":w.getNotFound(c.pathname);r.writeHead(404,{"Content-Type":"text/html; charset=utf-8","X-Not-Found":c.pathname}),r.end(s)}}catch(n){console.error(n),d(n)}},staticFile:async(o,r,d)=>{try{const n=x(o,e),c=R(o,n);if(w.isStaticPath(o.method||"GET",c)){const s=c.pathname;let m;g.basename(s).includes(".")?m=g.join(t,s):globalThis.__NO_TRAILING_SLASH__?m=g.join(t,s,"index.html"):m=g.join(t,s+"index.html");const a=g.extname(m).replace(/^\./,""),l=k.createReadStream(m);l.on("error",d);const u=j[a];u&&r.setHeader("Content-Type",u),e.static?.cacheControl&&r.setHeader("Cache-Control",e.static.cacheControl),l.pipe(r);return}return d()}catch(n){console.error(n),d(n)}}}}const F=H;exports.createQwikCity=F;exports.createQwikRouter=H;
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import type { ClientConn } from '@qwik.dev/router/middleware/request-handler';
|
|
2
|
-
import type { Http2ServerRequest } from 'node:http2';
|
|
3
|
-
import type { IncomingMessage } from 'node:http';
|
|
4
|
-
import type { ServerRenderOptions } from '@qwik.dev/router/middleware/request-handler';
|
|
5
|
-
import type { ServerResponse } from 'node:http';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use `createQwikRouter` instead. Will be removed in V3
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
export declare const createQwikCity: typeof createQwikRouter;
|
|
12
|
-
|
|
13
|
-
/** @public */
|
|
14
|
-
export declare function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNodeRequestOptions): {
|
|
15
|
-
router: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: NodeRequestNextFunction) => Promise<void>;
|
|
16
|
-
notFound: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: (e: any) => void) => Promise<void>;
|
|
17
|
-
staticFile: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: (e?: any) => void) => Promise<void>;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/** @public */
|
|
21
|
-
export declare interface NodeRequestNextFunction {
|
|
22
|
-
(err?: any): void;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** @public */
|
|
26
|
-
export declare interface PlatformNode {
|
|
27
|
-
ssr?: true;
|
|
28
|
-
incomingMessage?: IncomingMessage | Http2ServerRequest;
|
|
29
|
-
node?: string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* @deprecated Use `QwikRouterNodeRequestOptions` instead. Will be removed in V3
|
|
34
|
-
* @public
|
|
35
|
-
*/
|
|
36
|
-
export declare type QwikCityNodeRequestOptions = QwikRouterNodeRequestOptions;
|
|
37
|
-
|
|
38
|
-
/** @public */
|
|
39
|
-
export declare interface QwikRouterNodeRequestOptions extends ServerRenderOptions {
|
|
40
|
-
/** Options for serving static files */
|
|
41
|
-
static?: {
|
|
42
|
-
/** The root folder for statics files. Defaults to /dist */
|
|
43
|
-
root?: string;
|
|
44
|
-
/** Set the Cache-Control header for all static files */
|
|
45
|
-
cacheControl?: string;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Provide a function that computes the origin of the server, used to resolve relative URLs and
|
|
49
|
-
* validate the request origin against CSRF attacks.
|
|
50
|
-
*
|
|
51
|
-
* When not specified, it defaults to the `ORIGIN` environment variable (if set).
|
|
52
|
-
*
|
|
53
|
-
* If `ORIGIN` is not set, it's derived from the incoming request, which is not recommended for
|
|
54
|
-
* production use. You can specify the `PROTOCOL_HEADER`, `HOST_HEADER` to `X-Forwarded-Proto` and
|
|
55
|
-
* `X-Forwarded-Host` respectively to override the default behavior.
|
|
56
|
-
*/
|
|
57
|
-
getOrigin?: (req: IncomingMessage | Http2ServerRequest) => string | null;
|
|
58
|
-
/** Provide a function that returns a `ClientConn` for the given request. */
|
|
59
|
-
getClientConn?: (req: IncomingMessage | Http2ServerRequest) => ClientConn;
|
|
60
|
-
/** @deprecated Use `getOrigin` instead. Will be removed in V3 */
|
|
61
|
-
origin?: string;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export { }
|
|
1
|
+
import type { ClientConn } from '@qwik.dev/router/middleware/request-handler';
|
|
2
|
+
import type { Http2ServerRequest } from 'node:http2';
|
|
3
|
+
import type { IncomingMessage } from 'node:http';
|
|
4
|
+
import type { ServerRenderOptions } from '@qwik.dev/router/middleware/request-handler';
|
|
5
|
+
import type { ServerResponse } from 'node:http';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `createQwikRouter` instead. Will be removed in V3
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export declare const createQwikCity: typeof createQwikRouter;
|
|
12
|
+
|
|
13
|
+
/** @public */
|
|
14
|
+
export declare function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNodeRequestOptions): {
|
|
15
|
+
router: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: NodeRequestNextFunction) => Promise<void>;
|
|
16
|
+
notFound: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: (e: any) => void) => Promise<void>;
|
|
17
|
+
staticFile: (req: IncomingMessage | Http2ServerRequest, res: ServerResponse, next: (e?: any) => void) => Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/** @public */
|
|
21
|
+
export declare interface NodeRequestNextFunction {
|
|
22
|
+
(err?: any): void;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** @public */
|
|
26
|
+
export declare interface PlatformNode {
|
|
27
|
+
ssr?: true;
|
|
28
|
+
incomingMessage?: IncomingMessage | Http2ServerRequest;
|
|
29
|
+
node?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Use `QwikRouterNodeRequestOptions` instead. Will be removed in V3
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare type QwikCityNodeRequestOptions = QwikRouterNodeRequestOptions;
|
|
37
|
+
|
|
38
|
+
/** @public */
|
|
39
|
+
export declare interface QwikRouterNodeRequestOptions extends ServerRenderOptions {
|
|
40
|
+
/** Options for serving static files */
|
|
41
|
+
static?: {
|
|
42
|
+
/** The root folder for statics files. Defaults to /dist */
|
|
43
|
+
root?: string;
|
|
44
|
+
/** Set the Cache-Control header for all static files */
|
|
45
|
+
cacheControl?: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Provide a function that computes the origin of the server, used to resolve relative URLs and
|
|
49
|
+
* validate the request origin against CSRF attacks.
|
|
50
|
+
*
|
|
51
|
+
* When not specified, it defaults to the `ORIGIN` environment variable (if set).
|
|
52
|
+
*
|
|
53
|
+
* If `ORIGIN` is not set, it's derived from the incoming request, which is not recommended for
|
|
54
|
+
* production use. You can specify the `PROTOCOL_HEADER`, `HOST_HEADER` to `X-Forwarded-Proto` and
|
|
55
|
+
* `X-Forwarded-Host` respectively to override the default behavior.
|
|
56
|
+
*/
|
|
57
|
+
getOrigin?: (req: IncomingMessage | Http2ServerRequest) => string | null;
|
|
58
|
+
/** Provide a function that returns a `ClientConn` for the given request. */
|
|
59
|
+
getClientConn?: (req: IncomingMessage | Http2ServerRequest) => ClientConn;
|
|
60
|
+
/** @deprecated Use `getOrigin` instead. Will be removed in V3 */
|
|
61
|
+
origin?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { }
|