@qwik.dev/router 2.0.0-beta.1 → 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.
Files changed (149) hide show
  1. package/adapters/static/vite.d.ts +1 -1
  2. package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +1 -0
  3. package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +651 -0
  4. package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +6 -0
  5. package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +22 -0
  6. package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +11 -0
  7. package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +1 -0
  8. package/lib/adapters/azure-swa/vite/index.cjs +5 -96
  9. package/lib/adapters/azure-swa/vite/index.d.ts +2 -2
  10. package/lib/adapters/azure-swa/vite/index.mjs +201 -26
  11. package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +1 -0
  12. package/lib/adapters/bun-server/vite/index-CBIchDYq.js +651 -0
  13. package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +6 -0
  14. package/lib/adapters/bun-server/vite/index-CrwlB95_.js +22 -0
  15. package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +11 -0
  16. package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +1 -0
  17. package/lib/adapters/bun-server/vite/index.cjs +5 -50
  18. package/lib/adapters/bun-server/vite/index.d.ts +2 -2
  19. package/lib/adapters/bun-server/vite/index.mjs +196 -12
  20. package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +1 -0
  21. package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +651 -0
  22. package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +6 -0
  23. package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +22 -0
  24. package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +11 -0
  25. package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +1 -0
  26. package/lib/adapters/cloud-run/vite/index.cjs +5 -47
  27. package/lib/adapters/cloud-run/vite/index.d.ts +2 -2
  28. package/lib/adapters/cloud-run/vite/index.mjs +195 -11
  29. package/lib/adapters/cloudflare-pages/vite/index-BIeHg2Cj.cjs +5 -0
  30. package/lib/adapters/cloudflare-pages/vite/index-C455V8_A.cjs +1 -0
  31. package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +6 -0
  32. package/lib/adapters/cloudflare-pages/vite/index-D3HITboM.js +645 -0
  33. package/lib/adapters/cloudflare-pages/vite/index-DKcVHRBy.cjs +11 -0
  34. package/lib/adapters/cloudflare-pages/vite/index-DwovcBp3.js +22 -0
  35. package/lib/adapters/cloudflare-pages/vite/index-bogwy7wh.js +250 -0
  36. package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +1 -0
  37. package/lib/adapters/cloudflare-pages/vite/index.cjs +1 -115
  38. package/lib/adapters/cloudflare-pages/vite/index.d.ts +2 -2
  39. package/lib/adapters/cloudflare-pages/vite/index.mjs +4 -78
  40. package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +1 -0
  41. package/lib/adapters/deno-server/vite/index-CBIchDYq.js +651 -0
  42. package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +6 -0
  43. package/lib/adapters/deno-server/vite/index-CrwlB95_.js +22 -0
  44. package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +11 -0
  45. package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +1 -0
  46. package/lib/adapters/deno-server/vite/index.cjs +5 -62
  47. package/lib/adapters/deno-server/vite/index.d.ts +2 -2
  48. package/lib/adapters/deno-server/vite/index.mjs +198 -14
  49. package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +1 -0
  50. package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +651 -0
  51. package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +6 -0
  52. package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +22 -0
  53. package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +11 -0
  54. package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +1 -0
  55. package/lib/adapters/netlify-edge/vite/index.cjs +6 -129
  56. package/lib/adapters/netlify-edge/vite/index.d.ts +2 -2
  57. package/lib/adapters/netlify-edge/vite/index.mjs +240 -60
  58. package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +1 -0
  59. package/lib/adapters/node-server/vite/index-CBIchDYq.js +651 -0
  60. package/lib/adapters/node-server/vite/index-ClHGw5z1.js +6 -0
  61. package/lib/adapters/node-server/vite/index-CrwlB95_.js +22 -0
  62. package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +11 -0
  63. package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +1 -0
  64. package/lib/adapters/node-server/vite/index.cjs +5 -50
  65. package/lib/adapters/node-server/vite/index.d.ts +2 -2
  66. package/lib/adapters/node-server/vite/index.mjs +196 -12
  67. package/lib/adapters/shared/vite/index-BqUeglYs.cjs +1 -0
  68. package/lib/adapters/shared/vite/index-CBIchDYq.js +651 -0
  69. package/lib/adapters/shared/vite/index-ClHGw5z1.js +6 -0
  70. package/lib/adapters/shared/vite/index-CrwlB95_.js +22 -0
  71. package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +11 -0
  72. package/lib/adapters/shared/vite/index-vQuPcef3.cjs +1 -0
  73. package/lib/adapters/shared/vite/index.cjs +2 -375
  74. package/lib/adapters/shared/vite/index.d.ts +9 -15
  75. package/lib/adapters/shared/vite/index.mjs +155 -292
  76. package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +1 -0
  77. package/lib/adapters/ssg/vite/index-CBIchDYq.js +651 -0
  78. package/lib/adapters/ssg/vite/index-ClHGw5z1.js +6 -0
  79. package/lib/adapters/ssg/vite/index-CrwlB95_.js +22 -0
  80. package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +11 -0
  81. package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +1 -0
  82. package/lib/adapters/ssg/vite/index.cjs +5 -0
  83. package/lib/adapters/ssg/vite/index.d.ts +13 -0
  84. package/lib/adapters/ssg/vite/index.mjs +201 -0
  85. package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +1 -0
  86. package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +651 -0
  87. package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +6 -0
  88. package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +22 -0
  89. package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +11 -0
  90. package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +1 -0
  91. package/lib/adapters/vercel-edge/vite/index.cjs +5 -118
  92. package/lib/adapters/vercel-edge/vite/index.d.ts +2 -2
  93. package/lib/adapters/vercel-edge/vite/index.mjs +230 -51
  94. package/lib/index.d.ts +172 -50
  95. package/lib/index.qwik.cjs +333 -160
  96. package/lib/index.qwik.mjs +335 -162
  97. package/lib/middleware/aws-lambda/index.cjs +1 -0
  98. package/lib/middleware/aws-lambda/index.d.ts +3 -2
  99. package/lib/middleware/aws-lambda/index.mjs +27 -41
  100. package/lib/middleware/azure-swa/index.cjs +1 -0
  101. package/lib/middleware/azure-swa/index.mjs +46 -269
  102. package/lib/middleware/bun/index.cjs +1 -0
  103. package/lib/middleware/bun/index.mjs +68 -120
  104. package/lib/middleware/cloudflare-pages/index.cjs +1 -0
  105. package/lib/middleware/cloudflare-pages/index.mjs +48 -80
  106. package/lib/middleware/deno/index.cjs +1 -0
  107. package/lib/middleware/deno/index.mjs +63 -110
  108. package/lib/middleware/firebase/index.cjs +1 -0
  109. package/lib/middleware/firebase/index.mjs +16 -28
  110. package/lib/middleware/netlify-edge/index.cjs +1 -0
  111. package/lib/middleware/netlify-edge/index.mjs +36 -64
  112. package/lib/middleware/node/index.cjs +1 -314
  113. package/lib/middleware/node/index.mjs +116 -198
  114. package/lib/middleware/request-handler/index.cjs +11 -1607
  115. package/lib/middleware/request-handler/index.d.ts +63 -62
  116. package/lib/middleware/request-handler/index.mjs +879 -1333
  117. package/lib/middleware/vercel-edge/index.cjs +1 -0
  118. package/lib/middleware/vercel-edge/index.mjs +47 -82
  119. package/lib/modules.d.ts +4 -12
  120. package/lib/service-worker.cjs +1 -17
  121. package/lib/service-worker.mjs +5 -15
  122. package/lib/ssg/deno.cjs +1 -0
  123. package/lib/ssg/deno.mjs +6 -0
  124. package/lib/ssg/index-CBIchDYq.js +651 -0
  125. package/lib/ssg/index-ClHGw5z1.js +6 -0
  126. package/lib/ssg/index-DTIOTwZo.cjs +11 -0
  127. package/lib/ssg/index-vQuPcef3.cjs +1 -0
  128. package/lib/ssg/index.cjs +1 -0
  129. package/lib/{static → ssg}/index.d.ts +17 -17
  130. package/lib/ssg/index.mjs +22 -0
  131. package/lib/ssg/node.cjs +11 -0
  132. package/lib/ssg/node.mjs +651 -0
  133. package/lib/vite/index.cjs +28 -27431
  134. package/lib/vite/index.d.ts +16 -0
  135. package/lib/vite/index.mjs +1413 -27227
  136. package/modules.d.ts +4 -12
  137. package/package.json +50 -39
  138. package/ssg.d.ts +2 -0
  139. package/static.d.ts +1 -1
  140. package/lib/adapters/static/vite/index.cjs +0 -368
  141. package/lib/adapters/static/vite/index.d.ts +0 -10
  142. package/lib/adapters/static/vite/index.mjs +0 -331
  143. package/lib/static/deno.mjs +0 -8
  144. package/lib/static/index.cjs +0 -67
  145. package/lib/static/index.mjs +0 -48
  146. package/lib/static/node.cjs +0 -1124
  147. package/lib/static/node.mjs +0 -1086
  148. package/middleware/request-handler/generated/not-found-paths.ts +0 -7
  149. package/middleware/request-handler/generated/static-paths.ts +0 -35
@@ -1,36 +1,24 @@
1
- // packages/qwik-router/src/middleware/firebase/index.ts
2
- import { createQwikRouter as createQwikRouterNode } from "@qwik.dev/router/middleware/node";
3
- function createQwikRouter(opts) {
4
- if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
5
- console.warn("qwikCityPlan is deprecated. Use qwikRouterConfig instead.");
6
- opts.qwikRouterConfig = opts.qwikCityPlan;
7
- } else if (!opts.qwikRouterConfig) {
8
- throw new Error("qwikRouterConfig is required.");
9
- }
10
- const { staticFile, notFound, router } = createQwikRouterNode({
11
- render: opts.render,
12
- manifest: opts.manifest,
13
- qwikRouterConfig: opts.qwikRouterConfig,
1
+ import { createQwikRouter as a } from "@qwik.dev/router/middleware/node";
2
+ function c(e) {
3
+ e.qwikCityPlan && !e.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), e.qwikRouterConfig = e.qwikCityPlan);
4
+ const { staticFile: r, notFound: n, router: o } = a({
5
+ render: e.render,
6
+ manifest: e.manifest,
7
+ qwikRouterConfig: e.qwikRouterConfig,
14
8
  static: {
15
9
  cacheControl: "public, max-age=31557600"
16
10
  },
17
- getOrigin(req) {
18
- if (process.env.IS_OFFLINE) {
19
- return `http://${req.headers.host}`;
20
- }
21
- return null;
11
+ getOrigin(i) {
12
+ return process.env.IS_OFFLINE ? `http://${i.headers.host}` : null;
22
13
  }
23
14
  });
24
- const qwikApp = (req, res) => {
25
- return staticFile(req, res, () => {
26
- router(req, res, () => notFound(req, res, () => {
27
- }));
28
- });
29
- };
30
- return qwikApp;
15
+ return (i, t) => r(i, t, () => {
16
+ o(i, t, () => n(i, t, () => {
17
+ }));
18
+ });
31
19
  }
32
- var createQwikCity = createQwikRouter;
20
+ const k = c;
33
21
  export {
34
- createQwikCity,
35
- createQwikRouter
22
+ k as createQwikCity,
23
+ c as createQwikRouter
36
24
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@qwik.dev/core/server"),n=require("@qwik.dev/router/middleware/request-handler");function c(t){t.qwikCityPlan&&!t.qwikRouterConfig&&(console.warn("qwikCityPlan is deprecated. Simply remove it."),t.qwikRouterConfig=t.qwikCityPlan),t.manifest&&p.setServerPlatform(t.manifest);async function l(r,o){try{const e=new URL(r.url);if(n.isStaticPath(r.method,e)||e.pathname.startsWith("/.netlify"))return o.next();const u={mode:"server",locale:void 0,url:e,env:Deno.env,request:r,getWritableStream:(i,a,f,m)=>{const{readable:h,writable:w}=new TransformStream,y=new Response(h,{status:i,headers:n.mergeHeadersCookies(a,f)});return m(y),w},getClientConn:()=>({ip:o.ip,country:o.geo.country?.code}),platform:o},s=await n.requestHandler(u,t);if(s){s.completion.then(a=>{a&&console.error(a)});const i=await s.response;if(i)return i}const d=!r.headers.get("accept")?.includes("text/html")||n.isStaticPath(r.method||"GET",e)?"Not Found":n.getNotFound(e.pathname);return new Response(d,{status:404,headers:{"Content-Type":"text/html; charset=utf-8","X-Not-Found":e.pathname}})}catch(e){return console.error(e),new Response(String(e||"Error"),{status:500,headers:{"Content-Type":"text/plain; charset=utf-8","X-Error":"netlify-edge"}})}}return l}const g=c;exports.createQwikCity=g;exports.createQwikRouter=c;
@@ -1,83 +1,55 @@
1
- // packages/qwik-router/src/middleware/netlify-edge/index.ts
2
- import { getNotFound } from "@qwik-router-not-found-paths";
3
- import { isStaticPath } from "@qwik-router-static-paths";
4
- import { _deserialize, _serialize, _verifySerializable } from "@qwik.dev/core/internal";
5
- import { setServerPlatform } from "@qwik.dev/core/server";
6
- import { mergeHeadersCookies, requestHandler } from "../request-handler/index.mjs";
7
- function createQwikRouter(opts) {
8
- if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
9
- console.warn("qwikCityPlan is deprecated. Use qwikRouterConfig instead.");
10
- opts.qwikRouterConfig = opts.qwikCityPlan;
11
- } else if (!opts.qwikRouterConfig) {
12
- throw new Error("qwikRouterConfig is required.");
13
- }
14
- const qwikSerializer = {
15
- _deserialize,
16
- _serialize,
17
- _verifySerializable
18
- };
19
- if (opts.manifest) {
20
- setServerPlatform(opts.manifest);
21
- }
22
- async function onNetlifyEdgeRequest(request, context) {
1
+ import { setServerPlatform as w } from "@qwik.dev/core/server";
2
+ import { isStaticPath as s, mergeHeadersCookies as y, requestHandler as g, getNotFound as C } from "@qwik.dev/router/middleware/request-handler";
3
+ function R(t) {
4
+ t.qwikCityPlan && !t.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), t.qwikRouterConfig = t.qwikCityPlan), t.manifest && w(t.manifest);
5
+ async function l(n, r) {
23
6
  try {
24
- const url = new URL(request.url);
25
- if (isStaticPath(request.method, url) || url.pathname.startsWith("/.netlify")) {
26
- return context.next();
27
- }
28
- const serverRequestEv = {
7
+ const e = new URL(n.url);
8
+ if (s(n.method, e) || e.pathname.startsWith("/.netlify"))
9
+ return r.next();
10
+ const c = {
29
11
  mode: "server",
30
12
  locale: void 0,
31
- url,
13
+ url: e,
32
14
  env: Deno.env,
33
- request,
34
- getWritableStream: (status, headers, cookies, resolve) => {
35
- const { readable, writable } = new TransformStream();
36
- const response = new Response(readable, {
37
- status,
38
- headers: mergeHeadersCookies(headers, cookies)
15
+ request: n,
16
+ getWritableStream: (o, a, u, d) => {
17
+ const { readable: f, writable: h } = new TransformStream(), p = new Response(f, {
18
+ status: o,
19
+ headers: y(a, u)
39
20
  });
40
- resolve(response);
41
- return writable;
42
- },
43
- getClientConn: () => {
44
- var _a;
45
- return {
46
- ip: context.ip,
47
- country: (_a = context.geo.country) == null ? void 0 : _a.code
48
- };
21
+ return d(p), h;
49
22
  },
50
- platform: context
51
- };
52
- const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer);
53
- if (handledResponse) {
54
- handledResponse.completion.then((v) => {
55
- if (v) {
56
- console.error(v);
57
- }
23
+ getClientConn: () => ({
24
+ ip: r.ip,
25
+ country: r.geo.country?.code
26
+ }),
27
+ platform: r
28
+ }, i = await g(c, t);
29
+ if (i) {
30
+ i.completion.then((a) => {
31
+ a && console.error(a);
58
32
  });
59
- const response = await handledResponse.response;
60
- if (response) {
61
- return response;
62
- }
33
+ const o = await i.response;
34
+ if (o)
35
+ return o;
63
36
  }
64
- const notFoundHtml = isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
65
- return new Response(notFoundHtml, {
37
+ const m = !n.headers.get("accept")?.includes("text/html") || s(n.method || "GET", e) ? "Not Found" : C(e.pathname);
38
+ return new Response(m, {
66
39
  status: 404,
67
- headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
40
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": e.pathname }
68
41
  });
69
42
  } catch (e) {
70
- console.error(e);
71
- return new Response(String(e || "Error"), {
43
+ return console.error(e), new Response(String(e || "Error"), {
72
44
  status: 500,
73
45
  headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "netlify-edge" }
74
46
  });
75
47
  }
76
48
  }
77
- return onNetlifyEdgeRequest;
49
+ return l;
78
50
  }
79
- var createQwikCity = createQwikRouter;
51
+ const S = R;
80
52
  export {
81
- createQwikCity,
82
- createQwikRouter
53
+ S as createQwikCity,
54
+ R as createQwikRouter
83
55
  };
@@ -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 index_exports = {};
22
- __export(index_exports, {
23
- createQwikCity: () => createQwikCity,
24
- createQwikRouter: () => createQwikRouter
25
- });
26
- module.exports = __toCommonJS(index_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;