@qwik.dev/router 2.0.0-beta.11 → 2.0.0-beta.14

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 (132) hide show
  1. package/lib/adapters/azure-swa/vite/index.mjs +28 -207
  2. package/lib/adapters/bun-server/vite/index.mjs +16 -202
  3. package/lib/adapters/cloud-run/vite/index.mjs +15 -201
  4. package/lib/adapters/cloudflare-pages/vite/index.mjs +65 -6
  5. package/lib/adapters/deno-server/vite/index.mjs +18 -204
  6. package/lib/adapters/netlify-edge/vite/index.mjs +58 -246
  7. package/lib/adapters/node-server/vite/index.mjs +16 -202
  8. package/lib/adapters/shared/vite/index.d.ts +4 -4
  9. package/lib/adapters/shared/vite/index.mjs +250 -149
  10. package/lib/adapters/ssg/vite/index.mjs +12 -199
  11. package/lib/adapters/vercel-edge/vite/index.d.ts +1 -1
  12. package/lib/adapters/vercel-edge/vite/index.mjs +50 -235
  13. package/lib/chunks/error-handler.mjs +57 -0
  14. package/lib/chunks/format-error.mjs +137 -0
  15. package/lib/chunks/fs.mjs +254 -0
  16. package/lib/chunks/index.mjs +884 -0
  17. package/lib/chunks/mime-types.mjs +52 -0
  18. package/lib/chunks/routing.qwik.mjs +429 -0
  19. package/lib/chunks/types.qwik.mjs +22 -0
  20. package/lib/index.d.ts +11 -4
  21. package/lib/index.qwik.mjs +533 -1019
  22. package/lib/middleware/aws-lambda/index.mjs +38 -28
  23. package/lib/middleware/azure-swa/index.mjs +65 -48
  24. package/lib/middleware/bun/index.mjs +104 -119
  25. package/lib/middleware/cloudflare-pages/index.mjs +69 -49
  26. package/lib/middleware/deno/index.mjs +94 -114
  27. package/lib/middleware/firebase/index.mjs +26 -18
  28. package/lib/middleware/netlify-edge/index.mjs +53 -38
  29. package/lib/middleware/node/index.mjs +184 -167
  30. package/lib/middleware/request-handler/index.d.ts +22 -4
  31. package/lib/middleware/request-handler/index.mjs +1203 -877
  32. package/lib/middleware/vercel-edge/index.mjs +72 -49
  33. package/lib/service-worker/index.mjs +4 -0
  34. package/lib/ssg/index.mjs +14 -22
  35. package/lib/vite/index.d.ts +13 -7
  36. package/lib/vite/index.mjs +1609 -1217
  37. package/package.json +27 -44
  38. package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +0 -1
  39. package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +0 -651
  40. package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +0 -6
  41. package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +0 -22
  42. package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +0 -11
  43. package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +0 -1
  44. package/lib/adapters/azure-swa/vite/index.cjs +0 -5
  45. package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +0 -1
  46. package/lib/adapters/bun-server/vite/index-CBIchDYq.js +0 -651
  47. package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +0 -6
  48. package/lib/adapters/bun-server/vite/index-CrwlB95_.js +0 -22
  49. package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +0 -11
  50. package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +0 -1
  51. package/lib/adapters/bun-server/vite/index.cjs +0 -5
  52. package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +0 -1
  53. package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +0 -651
  54. package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +0 -6
  55. package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +0 -22
  56. package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +0 -11
  57. package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +0 -1
  58. package/lib/adapters/cloud-run/vite/index.cjs +0 -5
  59. package/lib/adapters/cloudflare-pages/vite/index-Bg_9YkM5.js +0 -22
  60. package/lib/adapters/cloudflare-pages/vite/index-C1aDmh1S.cjs +0 -1
  61. package/lib/adapters/cloudflare-pages/vite/index-CHT9Y93A.js +0 -254
  62. package/lib/adapters/cloudflare-pages/vite/index-Ck7KvpK1.cjs +0 -11
  63. package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +0 -6
  64. package/lib/adapters/cloudflare-pages/vite/index-Cp1cjAds.js +0 -645
  65. package/lib/adapters/cloudflare-pages/vite/index-D9RL9dvJ.cjs +0 -5
  66. package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +0 -1
  67. package/lib/adapters/cloudflare-pages/vite/index.cjs +0 -1
  68. package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +0 -1
  69. package/lib/adapters/deno-server/vite/index-CBIchDYq.js +0 -651
  70. package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +0 -6
  71. package/lib/adapters/deno-server/vite/index-CrwlB95_.js +0 -22
  72. package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +0 -11
  73. package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +0 -1
  74. package/lib/adapters/deno-server/vite/index.cjs +0 -5
  75. package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +0 -1
  76. package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +0 -651
  77. package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +0 -6
  78. package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +0 -22
  79. package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +0 -11
  80. package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +0 -1
  81. package/lib/adapters/netlify-edge/vite/index.cjs +0 -6
  82. package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +0 -1
  83. package/lib/adapters/node-server/vite/index-CBIchDYq.js +0 -651
  84. package/lib/adapters/node-server/vite/index-ClHGw5z1.js +0 -6
  85. package/lib/adapters/node-server/vite/index-CrwlB95_.js +0 -22
  86. package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +0 -11
  87. package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +0 -1
  88. package/lib/adapters/node-server/vite/index.cjs +0 -5
  89. package/lib/adapters/shared/vite/index-BqUeglYs.cjs +0 -1
  90. package/lib/adapters/shared/vite/index-CBIchDYq.js +0 -651
  91. package/lib/adapters/shared/vite/index-ClHGw5z1.js +0 -6
  92. package/lib/adapters/shared/vite/index-CrwlB95_.js +0 -22
  93. package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +0 -11
  94. package/lib/adapters/shared/vite/index-vQuPcef3.cjs +0 -1
  95. package/lib/adapters/shared/vite/index.cjs +0 -5
  96. package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +0 -1
  97. package/lib/adapters/ssg/vite/index-CBIchDYq.js +0 -651
  98. package/lib/adapters/ssg/vite/index-ClHGw5z1.js +0 -6
  99. package/lib/adapters/ssg/vite/index-CrwlB95_.js +0 -22
  100. package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +0 -11
  101. package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +0 -1
  102. package/lib/adapters/ssg/vite/index.cjs +0 -5
  103. package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +0 -1
  104. package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +0 -651
  105. package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +0 -6
  106. package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +0 -22
  107. package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +0 -11
  108. package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +0 -1
  109. package/lib/adapters/vercel-edge/vite/index.cjs +0 -5
  110. package/lib/index.qwik.cjs +0 -2126
  111. package/lib/middleware/aws-lambda/index.cjs +0 -1
  112. package/lib/middleware/azure-swa/index.cjs +0 -1
  113. package/lib/middleware/bun/index.cjs +0 -1
  114. package/lib/middleware/cloudflare-pages/index.cjs +0 -1
  115. package/lib/middleware/deno/index.cjs +0 -1
  116. package/lib/middleware/firebase/index.cjs +0 -1
  117. package/lib/middleware/netlify-edge/index.cjs +0 -1
  118. package/lib/middleware/node/index.cjs +0 -1
  119. package/lib/middleware/request-handler/index.cjs +0 -18
  120. package/lib/middleware/vercel-edge/index.cjs +0 -1
  121. package/lib/service-worker.cjs +0 -1
  122. package/lib/service-worker.mjs +0 -5
  123. package/lib/ssg/deno.cjs +0 -1
  124. package/lib/ssg/deno.mjs +0 -6
  125. package/lib/ssg/index-CBIchDYq.js +0 -651
  126. package/lib/ssg/index-ClHGw5z1.js +0 -6
  127. package/lib/ssg/index-DTIOTwZo.cjs +0 -11
  128. package/lib/ssg/index-vQuPcef3.cjs +0 -1
  129. package/lib/ssg/index.cjs +0 -1
  130. package/lib/ssg/node.cjs +0 -11
  131. package/lib/ssg/node.mjs +0 -651
  132. package/lib/vite/index.cjs +0 -42
@@ -1,74 +1,97 @@
1
- import { setServerPlatform as C } from "@qwik.dev/core/server";
2
- import { isStaticPath as c, mergeHeadersCookies as _, requestHandler as w, getNotFound as g } from "@qwik.dev/router/middleware/request-handler";
3
- const v = "x-vercel-ip-country", y = "x-real-ip", L = "__vdpl", N = "VERCEL_SKEW_PROTECTION_ENABLED", S = "VERCEL_DEPLOYMENT_ID", T = "BASE_URL";
4
- function O(n) {
5
- n.qwikCityPlan && !n.qwikRouterConfig && (console.warn("qwikCityPlan is deprecated. Simply remove it."), n.qwikRouterConfig = n.qwikCityPlan), n.manifest && C(n.manifest);
6
- async function l(e) {
1
+ import { setServerPlatform } from '@qwik.dev/core/server';
2
+ import { isStaticPath, mergeHeadersCookies, requestHandler, getNotFound } from '@qwik.dev/router/middleware/request-handler';
3
+
4
+ const COUNTRY_HEADER_NAME = "x-vercel-ip-country";
5
+ const IP_HEADER_NAME = "x-real-ip";
6
+ const VERCEL_COOKIE = "__vdpl";
7
+ const VERCEL_SKEW_PROTECTION_ENABLED = "VERCEL_SKEW_PROTECTION_ENABLED";
8
+ const VERCEL_DEPLOYMENT_ID = "VERCEL_DEPLOYMENT_ID";
9
+ const BASE_URL = "BASE_URL";
10
+ function createQwikRouter(opts) {
11
+ if (opts.qwikCityPlan && !opts.qwikRouterConfig) {
12
+ console.warn("qwikCityPlan is deprecated. Simply remove it.");
13
+ opts.qwikRouterConfig = opts.qwikCityPlan;
14
+ }
15
+ if (opts.manifest) {
16
+ setServerPlatform(opts.manifest);
17
+ }
18
+ async function onVercelEdgeRequest(request) {
7
19
  try {
8
- const t = new URL(e.url);
9
- if (c(e.method, t))
20
+ const url = new URL(request.url);
21
+ if (isStaticPath(request.method, url)) {
10
22
  return new Response(null, {
11
23
  headers: {
12
24
  "x-middleware-next": "1"
13
25
  }
14
26
  });
15
- const E = globalThis.process, o = {
27
+ }
28
+ const p = (() => globalThis.process)();
29
+ const serverRequestEv = {
16
30
  mode: "server",
17
31
  locale: void 0,
18
- url: t,
19
- request: e,
32
+ url,
33
+ request,
20
34
  env: {
21
- get(r) {
22
- return E.env[r];
35
+ get(key) {
36
+ return p.env[key];
23
37
  }
24
38
  },
25
- getWritableStream: (r, s, i, u) => {
26
- const { readable: m, writable: h } = new TransformStream();
27
- if (o.env.get(N)) {
28
- const R = o.env.get(S) || "", f = o.env.get(T) || "/";
29
- e.headers.has("Sec-Fetch-Dest") && i.set(L, R, {
30
- path: f,
31
- secure: !0,
32
- sameSite: !0,
33
- httpOnly: !0
34
- });
39
+ getWritableStream: (status, headers, cookies, resolve) => {
40
+ const { readable, writable } = new TransformStream();
41
+ if (serverRequestEv.env.get(VERCEL_SKEW_PROTECTION_ENABLED)) {
42
+ const deploymentId = serverRequestEv.env.get(VERCEL_DEPLOYMENT_ID) || "";
43
+ const baseUrl = serverRequestEv.env.get(BASE_URL) || "/";
44
+ if (request.headers.has("Sec-Fetch-Dest")) {
45
+ cookies.set(VERCEL_COOKIE, deploymentId, {
46
+ path: baseUrl,
47
+ secure: true,
48
+ sameSite: true,
49
+ httpOnly: true
50
+ });
51
+ }
35
52
  }
36
- const p = new Response(m, {
37
- status: r,
38
- headers: _(s, i)
53
+ const response = new Response(readable, {
54
+ status,
55
+ headers: mergeHeadersCookies(headers, cookies)
39
56
  });
40
- return u(p), h;
57
+ resolve(response);
58
+ return writable;
41
59
  },
42
60
  platform: {},
43
- getClientConn: () => ({
44
- ip: e.headers.get(y) ?? void 0,
45
- country: e.headers.get(v) ?? void 0
46
- })
47
- }, a = await w(o, n);
48
- if (a) {
49
- a.completion.then((s) => {
50
- s && console.error(s);
61
+ getClientConn: () => {
62
+ return {
63
+ ip: request.headers.get(IP_HEADER_NAME) ?? void 0,
64
+ country: request.headers.get(COUNTRY_HEADER_NAME) ?? void 0
65
+ };
66
+ }
67
+ };
68
+ const handledResponse = await requestHandler(serverRequestEv, opts);
69
+ if (handledResponse) {
70
+ handledResponse.completion.then((v) => {
71
+ if (v) {
72
+ console.error(v);
73
+ }
51
74
  });
52
- const r = await a.response;
53
- if (r)
54
- return r;
75
+ const response = await handledResponse.response;
76
+ if (response) {
77
+ return response;
78
+ }
55
79
  }
56
- const d = !e.headers.get("accept")?.includes("text/html") || c(e.method || "GET", t) ? "Not Found" : g(t.pathname);
57
- return new Response(d, {
80
+ const notFoundHtml = !request.headers.get("accept")?.includes("text/html") || isStaticPath(request.method || "GET", url) ? "Not Found" : getNotFound(url.pathname);
81
+ return new Response(notFoundHtml, {
58
82
  status: 404,
59
- headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": t.pathname }
83
+ headers: { "Content-Type": "text/html; charset=utf-8", "X-Not-Found": url.pathname }
60
84
  });
61
- } catch (t) {
62
- return console.error(t), new Response(String(t || "Error"), {
85
+ } catch (e) {
86
+ console.error(e);
87
+ return new Response(String(e || "Error"), {
63
88
  status: 500,
64
89
  headers: { "Content-Type": "text/plain; charset=utf-8", "X-Error": "vercel-edge" }
65
90
  });
66
91
  }
67
92
  }
68
- return l;
93
+ return onVercelEdgeRequest;
69
94
  }
70
- const x = O;
71
- export {
72
- x as createQwikCity,
73
- O as createQwikRouter
74
- };
95
+ const createQwikCity = createQwikRouter;
96
+
97
+ export { createQwikCity, createQwikRouter };
@@ -0,0 +1,4 @@
1
+ const setupServiceWorker = () => {
2
+ };
3
+
4
+ export { setupServiceWorker };
package/lib/ssg/index.mjs CHANGED
@@ -1,22 +1,14 @@
1
- async function i(t) {
2
- return await (await r()).generate(t);
3
- }
4
- function r() {
5
- if (n())
6
- return import("./index-ClHGw5z1.js");
7
- if (e() || o())
8
- return import("./index-CBIchDYq.js");
9
- throw new Error("Unsupported platform");
10
- }
11
- function n() {
12
- return typeof Deno < "u";
13
- }
14
- function e() {
15
- return typeof Bun < "u";
16
- }
17
- function o() {
18
- return !e() && !n() && typeof process < "u" && !!process.versions?.node;
19
- }
20
- export {
21
- i as generate
22
- };
1
+ async function generate(opts) {
2
+ const ssgPlatform = await getEntryModule();
3
+ const result = await ssgPlatform.generate(opts);
4
+ return result;
5
+ }
6
+ async function getEntryModule() {
7
+ try {
8
+ return await import('../chunks/index.mjs');
9
+ } catch (e) {
10
+ throw new Error(`Unsupported platform`, { cause: e });
11
+ }
12
+ }
13
+
14
+ export { generate };
@@ -7,13 +7,13 @@ import type { PluginOption } from 'vite';
7
7
  import type { SerializationStrategy } from '@qwik.dev/core/internal';
8
8
  import { UserConfigExport } from 'vite';
9
9
 
10
- declare interface BuildEntry extends ParsedPathname {
10
+ declare interface BuiltEntry extends ParsedPathname {
11
11
  id: string;
12
12
  chunkFileName: string;
13
13
  filePath: string;
14
14
  }
15
15
 
16
- declare interface BuildLayout {
16
+ declare interface BuiltLayout {
17
17
  filePath: string;
18
18
  dirPath: string;
19
19
  id: string;
@@ -21,7 +21,7 @@ declare interface BuildLayout {
21
21
  layoutName: string;
22
22
  }
23
23
 
24
- declare interface BuildRoute extends ParsedPathname {
24
+ declare interface BuiltRoute extends ParsedPathname {
25
25
  /** Unique id built from its relative file system path */
26
26
  id: string;
27
27
  /** Local file system path */
@@ -29,7 +29,7 @@ declare interface BuildRoute extends ParsedPathname {
29
29
  ext: string;
30
30
  /** URL Pathname */
31
31
  pathname: string;
32
- layouts: BuildLayout[];
32
+ layouts: BuiltLayout[];
33
33
  }
34
34
 
35
35
  /** @public */
@@ -99,7 +99,13 @@ declare interface PluginOptions {
99
99
  mdxPlugins?: MdxPlugins;
100
100
  /** MDX Options https://mdxjs.com/ */
101
101
  mdx?: any;
102
- /** The platform object which can be used to mock the Cloudflare bindings. */
102
+ /**
103
+ * Extend the `platform` object in RequestEvent, which can be used to e.g. mock Cloudflare
104
+ * bindings.
105
+ *
106
+ * This only works in **dev mode** and only when using the in-process Vite dev server middleware
107
+ * (the default).
108
+ */
103
109
  platform?: Record<string, unknown>;
104
110
  /** Configuration to rewrite url paths */
105
111
  rewriteRoutes?: RewriteRouteOption[];
@@ -136,8 +142,8 @@ export declare interface QwikRouterPlugin extends P<QwikRouterPluginApi> {
136
142
  /** @public */
137
143
  declare interface QwikRouterPluginApi {
138
144
  getBasePathname: () => string;
139
- getRoutes: () => BuildRoute[];
140
- getServiceWorkers: () => BuildEntry[];
145
+ getRoutes: () => BuiltRoute[];
146
+ getServiceWorkers: () => BuiltEntry[];
141
147
  }
142
148
 
143
149
  /** @public */