@qwik.dev/router 2.0.0-beta.10 → 2.0.0-beta.13

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 (140) hide show
  1. package/lib/adapters/azure-swa/vite/index.cjs +61 -5
  2. package/lib/adapters/azure-swa/vite/index.mjs +26 -201
  3. package/lib/adapters/bun-server/vite/index.cjs +27 -5
  4. package/lib/adapters/bun-server/vite/index.mjs +14 -196
  5. package/lib/adapters/cloud-run/vite/index.cjs +24 -5
  6. package/lib/adapters/cloud-run/vite/index.mjs +13 -195
  7. package/lib/adapters/cloudflare-pages/vite/index.cjs +65 -1
  8. package/lib/adapters/cloudflare-pages/vite/index.mjs +63 -4
  9. package/lib/adapters/deno-server/vite/index.cjs +39 -5
  10. package/lib/adapters/deno-server/vite/index.mjs +16 -198
  11. package/lib/adapters/netlify-edge/vite/index.cjs +88 -6
  12. package/lib/adapters/netlify-edge/vite/index.mjs +56 -240
  13. package/lib/adapters/node-server/vite/index.cjs +27 -5
  14. package/lib/adapters/node-server/vite/index.mjs +14 -196
  15. package/lib/adapters/shared/vite/index.cjs +303 -2
  16. package/lib/adapters/shared/vite/index.d.ts +4 -4
  17. package/lib/adapters/shared/vite/index.mjs +248 -143
  18. package/lib/adapters/ssg/vite/index.cjs +19 -5
  19. package/lib/adapters/ssg/vite/index.mjs +11 -193
  20. package/lib/adapters/vercel-edge/vite/index.cjs +81 -5
  21. package/lib/adapters/vercel-edge/vite/index.d.ts +1 -1
  22. package/lib/adapters/vercel-edge/vite/index.mjs +48 -229
  23. package/lib/chunks/error-handler.cjs +58 -0
  24. package/lib/chunks/error-handler.mjs +59 -0
  25. package/lib/chunks/format-error.cjs +136 -0
  26. package/lib/chunks/format-error.mjs +137 -0
  27. package/lib/chunks/fs.cjs +274 -0
  28. package/lib/chunks/fs.mjs +275 -0
  29. package/lib/chunks/index.cjs +877 -0
  30. package/lib/chunks/index.mjs +876 -0
  31. package/lib/chunks/mime-types.cjs +52 -0
  32. package/lib/chunks/mime-types.mjs +53 -0
  33. package/lib/chunks/routing.qwik.cjs +452 -0
  34. package/lib/chunks/routing.qwik.mjs +453 -0
  35. package/lib/chunks/types.qwik.cjs +24 -0
  36. package/lib/chunks/types.qwik.mjs +25 -0
  37. package/lib/index.d.ts +9 -3
  38. package/lib/index.qwik.cjs +543 -1001
  39. package/lib/index.qwik.mjs +512 -972
  40. package/lib/middleware/aws-lambda/index.cjs +52 -1
  41. package/lib/middleware/aws-lambda/index.mjs +37 -26
  42. package/lib/middleware/azure-swa/index.cjs +92 -1
  43. package/lib/middleware/azure-swa/index.mjs +64 -46
  44. package/lib/middleware/bun/index.cjs +143 -1
  45. package/lib/middleware/bun/index.mjs +103 -117
  46. package/lib/middleware/cloudflare-pages/index.cjs +96 -1
  47. package/lib/middleware/cloudflare-pages/index.mjs +68 -47
  48. package/lib/middleware/deno/index.cjs +130 -1
  49. package/lib/middleware/deno/index.mjs +93 -112
  50. package/lib/middleware/firebase/index.cjs +33 -1
  51. package/lib/middleware/firebase/index.mjs +25 -16
  52. package/lib/middleware/netlify-edge/index.cjs +71 -1
  53. package/lib/middleware/netlify-edge/index.mjs +52 -36
  54. package/lib/middleware/node/index.cjs +219 -1
  55. package/lib/middleware/node/index.mjs +178 -165
  56. package/lib/middleware/request-handler/index.cjs +1488 -18
  57. package/lib/middleware/request-handler/index.d.ts +20 -2
  58. package/lib/middleware/request-handler/index.mjs +1225 -873
  59. package/lib/middleware/vercel-edge/index.cjs +98 -1
  60. package/lib/middleware/vercel-edge/index.mjs +71 -47
  61. package/lib/service-worker/index.cjs +5 -0
  62. package/lib/service-worker/index.mjs +5 -0
  63. package/lib/ssg/index.cjs +15 -1
  64. package/lib/ssg/index.mjs +12 -19
  65. package/lib/vite/index.cjs +2006 -27
  66. package/lib/vite/index.d.ts +9 -9
  67. package/lib/vite/index.mjs +1597 -1216
  68. package/package.json +9 -8
  69. package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +0 -1
  70. package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +0 -651
  71. package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +0 -6
  72. package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +0 -22
  73. package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +0 -11
  74. package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +0 -1
  75. package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +0 -1
  76. package/lib/adapters/bun-server/vite/index-CBIchDYq.js +0 -651
  77. package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +0 -6
  78. package/lib/adapters/bun-server/vite/index-CrwlB95_.js +0 -22
  79. package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +0 -11
  80. package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +0 -1
  81. package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +0 -1
  82. package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +0 -651
  83. package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +0 -6
  84. package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +0 -22
  85. package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +0 -11
  86. package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +0 -1
  87. package/lib/adapters/cloudflare-pages/vite/index-BIeHg2Cj.cjs +0 -5
  88. package/lib/adapters/cloudflare-pages/vite/index-C455V8_A.cjs +0 -1
  89. package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +0 -6
  90. package/lib/adapters/cloudflare-pages/vite/index-D3HITboM.js +0 -645
  91. package/lib/adapters/cloudflare-pages/vite/index-DKcVHRBy.cjs +0 -11
  92. package/lib/adapters/cloudflare-pages/vite/index-DwovcBp3.js +0 -22
  93. package/lib/adapters/cloudflare-pages/vite/index-bogwy7wh.js +0 -250
  94. package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +0 -1
  95. package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +0 -1
  96. package/lib/adapters/deno-server/vite/index-CBIchDYq.js +0 -651
  97. package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +0 -6
  98. package/lib/adapters/deno-server/vite/index-CrwlB95_.js +0 -22
  99. package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +0 -11
  100. package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +0 -1
  101. package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +0 -1
  102. package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +0 -651
  103. package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +0 -6
  104. package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +0 -22
  105. package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +0 -11
  106. package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +0 -1
  107. package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +0 -1
  108. package/lib/adapters/node-server/vite/index-CBIchDYq.js +0 -651
  109. package/lib/adapters/node-server/vite/index-ClHGw5z1.js +0 -6
  110. package/lib/adapters/node-server/vite/index-CrwlB95_.js +0 -22
  111. package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +0 -11
  112. package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +0 -1
  113. package/lib/adapters/shared/vite/index-BqUeglYs.cjs +0 -1
  114. package/lib/adapters/shared/vite/index-CBIchDYq.js +0 -651
  115. package/lib/adapters/shared/vite/index-ClHGw5z1.js +0 -6
  116. package/lib/adapters/shared/vite/index-CrwlB95_.js +0 -22
  117. package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +0 -11
  118. package/lib/adapters/shared/vite/index-vQuPcef3.cjs +0 -1
  119. package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +0 -1
  120. package/lib/adapters/ssg/vite/index-CBIchDYq.js +0 -651
  121. package/lib/adapters/ssg/vite/index-ClHGw5z1.js +0 -6
  122. package/lib/adapters/ssg/vite/index-CrwlB95_.js +0 -22
  123. package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +0 -11
  124. package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +0 -1
  125. package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +0 -1
  126. package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +0 -651
  127. package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +0 -6
  128. package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +0 -22
  129. package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +0 -11
  130. package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +0 -1
  131. package/lib/service-worker.cjs +0 -1
  132. package/lib/service-worker.mjs +0 -5
  133. package/lib/ssg/deno.cjs +0 -1
  134. package/lib/ssg/deno.mjs +0 -6
  135. package/lib/ssg/index-CBIchDYq.js +0 -651
  136. package/lib/ssg/index-ClHGw5z1.js +0 -6
  137. package/lib/ssg/index-DTIOTwZo.cjs +0 -11
  138. package/lib/ssg/index-vQuPcef3.cjs +0 -1
  139. package/lib/ssg/node.cjs +0 -11
  140. package/lib/ssg/node.mjs +0 -651
@@ -1,156 +1,142 @@
1
- import { setServerPlatform as x } from "@qwik.dev/core/server";
2
- import { _TextEncoderStream_polyfill as w, mergeHeadersCookies as C, requestHandler as R, isStaticPath as p, getNotFound as y } from "@qwik.dev/router/middleware/request-handler";
3
- import { join as s, extname as b } from "node:path";
4
- const T = {
5
- "3gp": "video/3gpp",
6
- "3gpp": "video/3gpp",
7
- asf: "video/x-ms-asf",
8
- asx: "video/x-ms-asf",
9
- avi: "video/x-msvideo",
10
- avif: "image/avif",
11
- bmp: "image/x-ms-bmp",
12
- css: "text/css",
13
- flv: "video/x-flv",
14
- gif: "image/gif",
15
- htm: "text/html",
16
- html: "text/html",
17
- ico: "image/x-icon",
18
- jng: "image/x-jng",
19
- jpeg: "image/jpeg",
20
- jpg: "image/jpeg",
21
- js: "application/javascript",
22
- json: "application/json",
23
- kar: "audio/midi",
24
- m4a: "audio/x-m4a",
25
- m4v: "video/x-m4v",
26
- mid: "audio/midi",
27
- midi: "audio/midi",
28
- mng: "video/x-mng",
29
- mov: "video/quicktime",
30
- mp3: "audio/mpeg",
31
- mp4: "video/mp4",
32
- mpeg: "video/mpeg",
33
- mpg: "video/mpeg",
34
- ogg: "audio/ogg",
35
- pdf: "application/pdf",
36
- png: "image/png",
37
- rar: "application/x-rar-compressed",
38
- shtml: "text/html",
39
- svg: "image/svg+xml",
40
- svgz: "image/svg+xml",
41
- tif: "image/tiff",
42
- tiff: "image/tiff",
43
- ts: "video/mp2t",
44
- txt: "text/plain",
45
- wbmp: "image/vnd.wap.wbmp",
46
- webm: "video/webm",
47
- webp: "image/webp",
48
- wmv: "video/x-ms-wmv",
49
- woff: "font/woff",
50
- woff2: "font/woff2",
51
- xml: "text/xml",
52
- zip: "application/zip"
53
- };
54
- function S(i) {
55
- i.qwikCityPlan && !i.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), i.qwikRouterConfig = i.qwikCityPlan), globalThis.TextEncoderStream ||= w, i.manifest && x(i.manifest);
56
- const m = i.static?.root ?? s(Bun.fileURLToPath(import.meta.url), "..", "..", "dist");
57
- async function d(t) {
1
+ import { setServerPlatform } from "@qwik.dev/core/server";
2
+ import { _TextEncoderStream_polyfill, isStaticPath, getNotFound, mergeHeadersCookies, requestHandler } from "@qwik.dev/router/middleware/request-handler";
3
+ import { join, extname } from "node:path";
4
+ import { M as MIME_TYPES } from "../../chunks/mime-types.mjs";
5
+ function createQwikRouter(opts) {
6
+ if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
7
+ console.warn("qwikCityPlan is deprecated. Simply remove it.");
8
+ opts.qwikRouterConfig = opts.qwikCityPlan;
9
+ }
10
+ globalThis.TextEncoderStream || (globalThis.TextEncoderStream = _TextEncoderStream_polyfill);
11
+ if (opts.manifest) {
12
+ setServerPlatform(opts.manifest);
13
+ }
14
+ const staticFolder = opts.static?.root ?? join(Bun.fileURLToPath(import.meta.url), "..", "..", "dist");
15
+ async function router(request) {
58
16
  try {
59
- const a = {
17
+ const url = new URL(request.url);
18
+ const serverRequestEv = {
60
19
  mode: "server",
61
20
  locale: void 0,
62
- url: new URL(t.url),
21
+ url,
63
22
  env: {
64
- get(o) {
65
- return Bun.env[o];
23
+ get(key) {
24
+ return Bun.env[key];
66
25
  }
67
26
  },
68
- request: t,
69
- getWritableStream: (o, r, l, c) => {
70
- const { readable: g, writable: h } = new TransformStream(), v = new Response(g, {
71
- status: o,
72
- headers: C(r, l)
27
+ request,
28
+ getWritableStream: (status, headers, cookies, resolve) => {
29
+ const { readable, writable } = new TransformStream();
30
+ const response = new Response(readable, {
31
+ status,
32
+ headers: mergeHeadersCookies(headers, cookies)
73
33
  });
74
- return c(v), h;
34
+ resolve(response);
35
+ return writable;
75
36
  },
76
37
  platform: {
77
- ssr: !0
38
+ ssr: true
78
39
  },
79
- getClientConn: () => i.getClientConn ? i.getClientConn(t) : {}
80
- }, n = await R(a, i);
81
- if (n) {
82
- n.completion.then((r) => {
83
- r && console.error(r);
40
+ getClientConn: () => {
41
+ return opts.getClientConn ? opts.getClientConn(request) : {};
42
+ }
43
+ };
44
+ const handledResponse = await requestHandler(serverRequestEv, opts);
45
+ if (handledResponse) {
46
+ handledResponse.completion.then((v) => {
47
+ if (v) {
48
+ console.error(v);
49
+ }
84
50
  });
85
- const o = await n.response;
86
- if (o) {
87
- const r = o.status, l = o.headers.get("Location");
88
- return r >= 301 && r <= 308 && l ? new Response(null, o) : o;
51
+ const response = await handledResponse.response;
52
+ if (response) {
53
+ const status = response.status;
54
+ const location = response.headers.get("Location");
55
+ const isRedirect = status >= 301 && status <= 308 && location;
56
+ if (isRedirect) {
57
+ return new Response(null, response);
58
+ }
59
+ return response;
89
60
  }
90
61
  }
91
62
  return null;
92
63
  } catch (e) {
93
- return console.error(e), new Response(String(e || "Error"), {
64
+ console.error(e);
65
+ return new Response(String(e || "Error"), {
94
66
  status: 500,
95
67
  headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
96
68
  });
97
69
  }
98
70
  }
99
- const u = async (t) => {
71
+ const notFound = async (request) => {
100
72
  try {
101
- const e = new URL(t.url), a = !t.headers.get("accept")?.includes("text/html") || p(t.method || "GET", e) ? "Not Found" : y(e.pathname);
102
- return new Response(a, {
73
+ const url = new URL(request.url);
74
+ const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
75
+ return new Response(notFoundHtml, {
103
76
  status: 404,
104
- headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": e.pathname }
77
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
105
78
  });
106
79
  } catch (e) {
107
- return console.error(e), new Response(String(e || "Error"), {
80
+ console.error(e);
81
+ return new Response(String(e || "Error"), {
108
82
  status: 500,
109
83
  headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
110
84
  });
111
85
  }
112
- }, f = async (t) => {
113
- const e = t.pathname, a = e.slice(t.pathname.lastIndexOf("/"));
114
- let n;
115
- return a.includes(".") ? n = s(m, e) : globalThis.__NO_TRAILING_SLASH__ ? n = s(m, e, "index.html") : n = s(m, e + "index.html"), {
116
- filePath: n,
117
- content: Bun.file(n)
86
+ };
87
+ const openStaticFile = async (url) => {
88
+ const pathname = url.pathname;
89
+ const fileName = pathname.slice(url.pathname.lastIndexOf("/"));
90
+ let filePath;
91
+ if (fileName.includes(".")) {
92
+ filePath = join(staticFolder, pathname);
93
+ } else if (!globalThis.__NO_TRAILING_SLASH__) {
94
+ filePath = join(staticFolder, pathname + "index.html");
95
+ } else {
96
+ filePath = join(staticFolder, pathname, "index.html");
97
+ }
98
+ return {
99
+ filePath,
100
+ content: Bun.file(filePath)
118
101
  };
119
102
  };
120
- return {
121
- router: d,
122
- notFound: u,
123
- staticFile: async (t) => {
124
- try {
125
- const e = new URL(t.url);
126
- if (p(t.method || "GET", e)) {
127
- const { filePath: a, content: n } = await f(e);
128
- if (!await n.exists())
129
- return new Response("Not Found", {
130
- status: 404,
131
- headers: { "Content-Type": "text/plain; charset=utf-8", "X-Not-Found": e.pathname }
132
- });
133
- const o = b(a).replace(/^\./, "");
134
- return new Response(await n.stream(), {
135
- status: 200,
136
- headers: {
137
- "content-type": T[o] || "text/plain; charset=utf-8",
138
- "Cache-Control": i.static?.cacheControl || "max-age=3600"
139
- }
103
+ const staticFile = async (request) => {
104
+ try {
105
+ const url = new URL(request.url);
106
+ if (isStaticPath(request.method || "GET", url)) {
107
+ const { filePath, content } = await openStaticFile(url);
108
+ if (!await content.exists()) {
109
+ return new Response("Not Found", {
110
+ status: 404,
111
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Not-Found": url.pathname }
140
112
  });
141
113
  }
142
- return null;
143
- } catch (e) {
144
- return console.error(e), new Response(String(e || "Error"), {
145
- status: 500,
146
- headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
114
+ const ext = extname(filePath).replace(/^\./, "");
115
+ return new Response(await content.stream(), {
116
+ status: 200,
117
+ headers: {
118
+ "content-type": MIME_TYPES[ext] || "text/plain; charset=utf-8",
119
+ "Cache-Control": opts.static?.cacheControl || "max-age=3600"
120
+ }
147
121
  });
148
122
  }
123
+ return null;
124
+ } catch (e) {
125
+ console.error(e);
126
+ return new Response(String(e || "Error"), {
127
+ status: 500,
128
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "bun-server" }
129
+ });
149
130
  }
150
131
  };
132
+ return {
133
+ router,
134
+ notFound,
135
+ staticFile
136
+ };
151
137
  }
152
- const P = S;
138
+ const createQwikCity = createQwikRouter;
153
139
  export {
154
- P as createQwikCity,
155
- S as createQwikRouter
140
+ createQwikCity,
141
+ createQwikRouter
156
142
  };
@@ -1 +1,96 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("@qwik.dev/core/server"),o=require("@qwik.dev/router/middleware/request-handler");function u(r){r.qwikCityPlan&&!r.qwikRouterConfig&&(console.warn("qwikCityPlan is deprecated. Simply remove it."),r.qwikRouterConfig=r.qwikCityPlan);try{new globalThis.TextEncoderStream}catch{globalThis.TextEncoderStream=o._TextEncoderStream_polyfill}r.manifest&&k.setServerPlatform(r.manifest);async function d(n,c,l){try{const e=new URL(n.url);if(o.isStaticPath(n.method,e))return c.ASSETS.fetch(n);const m=e.hostname!=="127.0.0.1"&&e.hostname!=="localhost"&&e.port===""&&n.method==="GET",h=new Request(e.href,n),a=m?await caches.open("custom:qwikrouter"):null;if(a){const t=await a.match(h);if(t)return t}const f={mode:"server",locale:void 0,url:e,request:n,env:{get(t){return c[t]}},getWritableStream:(t,i,p,C)=>{const{readable:g,writable:y}=new TransformStream,S=new Response(g,{status:t,headers:o.mergeHeadersCookies(i,p)});return C(S),y},getClientConn:()=>({ip:n.headers.get("CF-connecting-ip")||"",country:n.headers.get("CF-IPCountry")||""}),platform:{request:n,env:c,ctx:l}},s=await o.requestHandler(f,r);if(s){s.completion.then(i=>{i&&console.error(i)});const t=await s.response;if(t)return t.ok&&a&&t.headers.has("Cache-Control")&&l.waitUntil(a.put(h,t.clone())),t}const w=!n.headers.get("accept")?.includes("text/html")||o.isStaticPath(n.method||"GET",e)?"Not Found":o.getNotFound(e.pathname);return new Response(w,{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":"cloudflare-pages"}})}}return d}const R=u;exports.createQwikCity=R;exports.createQwikRouter=u;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const server = require("@qwik.dev/core/server");
4
+ const requestHandler = require("@qwik.dev/router/middleware/request-handler");
5
+ function createQwikRouter(opts) {
6
+ if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
7
+ console.warn("qwikCityPlan is deprecated. Simply remove it.");
8
+ opts.qwikRouterConfig = opts.qwikCityPlan;
9
+ }
10
+ try {
11
+ new globalThis.TextEncoderStream();
12
+ } catch {
13
+ globalThis.TextEncoderStream = requestHandler._TextEncoderStream_polyfill;
14
+ }
15
+ if (opts.manifest) {
16
+ server.setServerPlatform(opts.manifest);
17
+ }
18
+ async function onCloudflarePagesFetch(request, env, ctx) {
19
+ try {
20
+ const url = new URL(request.url);
21
+ if (requestHandler.isStaticPath(request.method, url)) {
22
+ return env.ASSETS.fetch(request);
23
+ }
24
+ const useCache = url.hostname !== "127.0.0.1" && url.hostname !== "localhost" && url.port === "" && request.method === "GET";
25
+ const cacheKey = new Request(url.href, request);
26
+ const cache = useCache ? await caches.open("custom:qwikrouter") : null;
27
+ if (cache) {
28
+ const cachedResponse = await cache.match(cacheKey);
29
+ if (cachedResponse) {
30
+ return cachedResponse;
31
+ }
32
+ }
33
+ const serverRequestEv = {
34
+ mode: "server",
35
+ locale: void 0,
36
+ url,
37
+ request,
38
+ env: {
39
+ get(key) {
40
+ return env[key];
41
+ }
42
+ },
43
+ getWritableStream: (status, headers, cookies, resolve) => {
44
+ const { readable, writable } = new TransformStream();
45
+ const response = new Response(readable, {
46
+ status,
47
+ headers: requestHandler.mergeHeadersCookies(headers, cookies)
48
+ });
49
+ resolve(response);
50
+ return writable;
51
+ },
52
+ getClientConn: () => {
53
+ return {
54
+ ip: request.headers.get("CF-connecting-ip") || "",
55
+ country: request.headers.get("CF-IPCountry") || ""
56
+ };
57
+ },
58
+ platform: {
59
+ request,
60
+ env,
61
+ ctx
62
+ }
63
+ };
64
+ const handledResponse = await requestHandler.requestHandler(serverRequestEv, opts);
65
+ if (handledResponse) {
66
+ handledResponse.completion.then((v) => {
67
+ if (v) {
68
+ console.error(v);
69
+ }
70
+ });
71
+ const response = await handledResponse.response;
72
+ if (response) {
73
+ if (response.ok && cache && response.headers.has("Cache-Control")) {
74
+ ctx.waitUntil(cache.put(cacheKey, response.clone()));
75
+ }
76
+ return response;
77
+ }
78
+ }
79
+ const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || requestHandler.isStaticPath(request.method || "GET", url) ? "Not Found" : requestHandler.getNotFound(url.pathname);
80
+ return new Response(notFoundHtml, {
81
+ status: 404,
82
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
83
+ });
84
+ } catch (e) {
85
+ console.error(e);
86
+ return new Response(String(e || "Error"), {
87
+ status: 500,
88
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "cloudflare-pages" }
89
+ });
90
+ }
91
+ }
92
+ return onCloudflarePagesFetch;
93
+ }
94
+ const createQwikCity = createQwikRouter;
95
+ exports.createQwikCity = createQwikCity;
96
+ exports.createQwikRouter = createQwikRouter;
@@ -1,75 +1,96 @@
1
- import { setServerPlatform as y } from "@qwik.dev/core/server";
2
- import { _TextEncoderStream_polyfill as R, isStaticPath as h, mergeHeadersCookies as S, requestHandler as T, getNotFound as k } from "@qwik.dev/router/middleware/request-handler";
3
- function E(r) {
4
- r.qwikCityPlan && !r.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), r.qwikRouterConfig = r.qwikCityPlan);
1
+ import { setServerPlatform } from "@qwik.dev/core/server";
2
+ import { _TextEncoderStream_polyfill, isStaticPath, mergeHeadersCookies, requestHandler, getNotFound } from "@qwik.dev/router/middleware/request-handler";
3
+ function createQwikRouter(opts) {
4
+ if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
5
+ console.warn("qwikCityPlan is deprecated. Simply remove it.");
6
+ opts.qwikRouterConfig = opts.qwikCityPlan;
7
+ }
5
8
  try {
6
9
  new globalThis.TextEncoderStream();
7
10
  } catch {
8
- globalThis.TextEncoderStream = R;
11
+ globalThis.TextEncoderStream = _TextEncoderStream_polyfill;
12
+ }
13
+ if (opts.manifest) {
14
+ setServerPlatform(opts.manifest);
9
15
  }
10
- r.manifest && y(r.manifest);
11
- async function m(n, s, i) {
16
+ async function onCloudflarePagesFetch(request, env, ctx) {
12
17
  try {
13
- const e = new URL(n.url);
14
- if (h(n.method, e))
15
- return s.ASSETS.fetch(n);
16
- const d = e.hostname !== "127.0.0.1" && e.hostname !== "localhost" && e.port === "" && n.method === "GET", l = new Request(e.href, n), o = d ? await caches.open("custom:qwikrouter") : null;
17
- if (o) {
18
- const t = await o.match(l);
19
- if (t)
20
- return t;
18
+ const url = new URL(request.url);
19
+ if (isStaticPath(request.method, url)) {
20
+ return env.ASSETS.fetch(request);
21
+ }
22
+ const useCache = url.hostname !== "127.0.0.1" && url.hostname !== "localhost" && url.port === "" && request.method === "GET";
23
+ const cacheKey = new Request(url.href, request);
24
+ const cache = useCache ? await caches.open("custom:qwikrouter") : null;
25
+ if (cache) {
26
+ const cachedResponse = await cache.match(cacheKey);
27
+ if (cachedResponse) {
28
+ return cachedResponse;
29
+ }
21
30
  }
22
- const c = await T({
31
+ const serverRequestEv = {
23
32
  mode: "server",
24
33
  locale: void 0,
25
- url: e,
26
- request: n,
34
+ url,
35
+ request,
27
36
  env: {
28
- get(t) {
29
- return s[t];
37
+ get(key) {
38
+ return env[key];
30
39
  }
31
40
  },
32
- getWritableStream: (t, a, f, p) => {
33
- const { readable: w, writable: C } = new TransformStream(), g = new Response(w, {
34
- status: t,
35
- headers: S(a, f)
41
+ getWritableStream: (status, headers, cookies, resolve) => {
42
+ const { readable, writable } = new TransformStream();
43
+ const response = new Response(readable, {
44
+ status,
45
+ headers: mergeHeadersCookies(headers, cookies)
36
46
  });
37
- return p(g), C;
47
+ resolve(response);
48
+ return writable;
49
+ },
50
+ getClientConn: () => {
51
+ return {
52
+ ip: request.headers.get("CF-connecting-ip") || "",
53
+ country: request.headers.get("CF-IPCountry") || ""
54
+ };
38
55
  },
39
- getClientConn: () => ({
40
- ip: n.headers.get("CF-connecting-ip") || "",
41
- country: n.headers.get("CF-IPCountry") || ""
42
- }),
43
56
  platform: {
44
- request: n,
45
- env: s,
46
- ctx: i
57
+ request,
58
+ env,
59
+ ctx
47
60
  }
48
- }, r);
49
- if (c) {
50
- c.completion.then((a) => {
51
- a && console.error(a);
61
+ };
62
+ const handledResponse = await requestHandler(serverRequestEv, opts);
63
+ if (handledResponse) {
64
+ handledResponse.completion.then((v) => {
65
+ if (v) {
66
+ console.error(v);
67
+ }
52
68
  });
53
- const t = await c.response;
54
- if (t)
55
- return t.ok && o && t.headers.has("Cache-Control") && i.waitUntil(o.put(l, t.clone())), t;
69
+ const response = await handledResponse.response;
70
+ if (response) {
71
+ if (response.ok && cache && response.headers.has("Cache-Control")) {
72
+ ctx.waitUntil(cache.put(cacheKey, response.clone()));
73
+ }
74
+ return response;
75
+ }
56
76
  }
57
- const u = !n.headers.get("accept")?.includes("text/html") || h(n.method || "GET", e) ? "Not Found" : k(e.pathname);
58
- return new Response(u, {
77
+ const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
78
+ return new Response(notFoundHtml, {
59
79
  status: 404,
60
- headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": e.pathname }
80
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
61
81
  });
62
82
  } catch (e) {
63
- return console.error(e), new Response(String(e || "Error"), {
83
+ console.error(e);
84
+ return new Response(String(e || "Error"), {
64
85
  status: 500,
65
86
  headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "cloudflare-pages" }
66
87
  });
67
88
  }
68
89
  }
69
- return m;
90
+ return onCloudflarePagesFetch;
70
91
  }
71
- const x = E;
92
+ const createQwikCity = createQwikRouter;
72
93
  export {
73
- x as createQwikCity,
74
- E as createQwikRouter
94
+ createQwikCity,
95
+ createQwikRouter
75
96
  };
@@ -1 +1,130 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@qwik.dev/core/server"),s=require("@qwik.dev/router/middleware/request-handler"),o=require("https://deno.land/std/path/mod.ts");var d=typeof document<"u"?document.currentScript:null;const R={"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 p(n){n.qwikCityPlan&&!n.qwikRouterConfig&&(console.warn("qwikCityPlan is deprecated. Simply remove it."),n.qwikRouterConfig=n.qwikCityPlan),n.manifest&&y.setServerPlatform(n.manifest);const l=n.static?.root??o.join(o.fromFileUrl(typeof document>"u"?require("url").pathToFileURL(__filename).href:d&&d.tagName.toUpperCase()==="SCRIPT"&&d.src||new URL("index.cjs",document.baseURI).href),"..","..","dist");async function u(t,e){try{const r={mode:"server",locale:void 0,url:new URL(t.url),env:Deno.env,request:t,getWritableStream:(m,c,h,v)=>{const{readable:w,writable:x}=new TransformStream,C=new Response(w,{status:m,headers:s.mergeHeadersCookies(c,h)});return v(C),x},platform:{ssr:!0},getClientConn:()=>n.getClientConn?n.getClientConn(t,e):{ip:e.remoteAddr.hostname}},a=await s.requestHandler(r,n);if(a){a.completion.then(c=>{c&&console.error(c)});const m=await a.response;if(m)return m}return null}catch(i){return console.error(i),new Response(String(i||"Error"),{status:500,headers:{"Content-Type":"text/plain; charset=utf-8","X-Error":"deno-server"}})}}const f=async t=>{try{const e=new URL(t.url),i=!t.headers.get("accept")?.includes("text/html")||s.isStaticPath(t.method||"GET",e)?"Not Found":s.getNotFound(e.pathname);return new Response(i,{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":"deno-server"}})}},g=async t=>{const e=t.pathname,i=e.slice(t.pathname.lastIndexOf("/"));let r;return i.includes(".")?r=o.join(l,e):globalThis.__NO_TRAILING_SLASH__?r=o.join(l,e,"index.html"):r=o.join(l,e+"index.html"),{filePath:r,content:await Deno.open(r,{read:!0})}};return{router:u,notFound:f,staticFile:async t=>{try{const e=new URL(t.url);if(s.isStaticPath(t.method||"GET",e)){const{filePath:i,content:r}=await g(e),a=o.extname(i).replace(/^\./,"");return new Response(r.readable,{status:200,headers:{"content-type":R[a]||"text/plain; charset=utf-8","Cache-Control":n.static?.cacheControl||"max-age=3600"}})}return null}catch(e){return console.error(e),new Response(String(e||"Error"),{status:500,headers:{"Content-Type":"text/plain; charset=utf-8","X-Error":"deno-server"}})}}}}const S=p;exports.createQwikCity=S;exports.createQwikRouter=p;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const server = require("@qwik.dev/core/server");
4
+ const requestHandler = require("@qwik.dev/router/middleware/request-handler");
5
+ const mimeTypes = require("../../chunks/mime-types.cjs");
6
+ const mod_ts = require("https://deno.land/std/path/mod.ts");
7
+ var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
8
+ function createQwikRouter(opts) {
9
+ if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
10
+ console.warn("qwikCityPlan is deprecated. Simply remove it.");
11
+ opts.qwikRouterConfig = opts.qwikCityPlan;
12
+ }
13
+ if (opts.manifest) {
14
+ server.setServerPlatform(opts.manifest);
15
+ }
16
+ const staticFolder = opts.static?.root ?? mod_ts.join(mod_ts.fromFileUrl(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("middleware/deno/index.cjs", document.baseURI).href), "..", "..", "dist");
17
+ async function router(request, info) {
18
+ try {
19
+ const url = new URL(request.url);
20
+ const serverRequestEv = {
21
+ mode: "server",
22
+ locale: void 0,
23
+ url,
24
+ // @ts-ignore
25
+ env: Deno.env,
26
+ request,
27
+ getWritableStream: (status, headers, cookies, resolve) => {
28
+ const { readable, writable } = new TransformStream();
29
+ const response = new Response(readable, {
30
+ status,
31
+ headers: requestHandler.mergeHeadersCookies(headers, cookies)
32
+ });
33
+ resolve(response);
34
+ return writable;
35
+ },
36
+ platform: {
37
+ ssr: true
38
+ },
39
+ getClientConn: () => {
40
+ return opts.getClientConn ? opts.getClientConn(request, info) : {
41
+ ip: info.remoteAddr.hostname
42
+ };
43
+ }
44
+ };
45
+ const handledResponse = await requestHandler.requestHandler(serverRequestEv, opts);
46
+ if (handledResponse) {
47
+ handledResponse.completion.then((v) => {
48
+ if (v) {
49
+ console.error(v);
50
+ }
51
+ });
52
+ const response = await handledResponse.response;
53
+ if (response) {
54
+ return response;
55
+ }
56
+ }
57
+ return null;
58
+ } catch (e) {
59
+ console.error(e);
60
+ return new Response(String(e || "Error"), {
61
+ status: 500,
62
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
63
+ });
64
+ }
65
+ }
66
+ const notFound = async (request) => {
67
+ try {
68
+ const url = new URL(request.url);
69
+ const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || requestHandler.isStaticPath(request.method || "GET", url) ? "Not Found" : requestHandler.getNotFound(url.pathname);
70
+ return new Response(notFoundHtml, {
71
+ status: 404,
72
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
73
+ });
74
+ } catch (e) {
75
+ console.error(e);
76
+ return new Response(String(e || "Error"), {
77
+ status: 500,
78
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
79
+ });
80
+ }
81
+ };
82
+ const openStaticFile = async (url) => {
83
+ const pathname = url.pathname;
84
+ const fileName = pathname.slice(url.pathname.lastIndexOf("/"));
85
+ let filePath;
86
+ if (fileName.includes(".")) {
87
+ filePath = mod_ts.join(staticFolder, pathname);
88
+ } else if (!globalThis.__NO_TRAILING_SLASH__) {
89
+ filePath = mod_ts.join(staticFolder, pathname + "index.html");
90
+ } else {
91
+ filePath = mod_ts.join(staticFolder, pathname, "index.html");
92
+ }
93
+ return {
94
+ filePath,
95
+ // @ts-ignore
96
+ content: await Deno.open(filePath, { read: true })
97
+ };
98
+ };
99
+ const staticFile = async (request) => {
100
+ try {
101
+ const url = new URL(request.url);
102
+ if (requestHandler.isStaticPath(request.method || "GET", url)) {
103
+ const { filePath, content } = await openStaticFile(url);
104
+ const ext = mod_ts.extname(filePath).replace(/^\./, "");
105
+ return new Response(content.readable, {
106
+ status: 200,
107
+ headers: {
108
+ "content-type": mimeTypes.MIME_TYPES[ext] || "text/plain; charset=utf-8",
109
+ "Cache-Control": opts.static?.cacheControl || "max-age=3600"
110
+ }
111
+ });
112
+ }
113
+ return null;
114
+ } catch (e) {
115
+ console.error(e);
116
+ return new Response(String(e || "Error"), {
117
+ status: 500,
118
+ headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "deno-server" }
119
+ });
120
+ }
121
+ };
122
+ return {
123
+ router,
124
+ notFound,
125
+ staticFile
126
+ };
127
+ }
128
+ const createQwikCity = createQwikRouter;
129
+ exports.createQwikCity = createQwikCity;
130
+ exports.createQwikRouter = createQwikRouter;