@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,206 +1,24 @@
1
- import { join as y } from "node:path";
2
- import { getErrorHtml as D } from "@qwik.dev/router/middleware/request-handler";
3
- import p from "node:fs";
4
- async function q(t, n, e, s, m) {
5
- e && !e.endsWith("/") && (e += "/");
6
- const w = /* @__PURE__ */ new Set([
7
- e + "/" + (globalThis.__QWIK_BUILD_DIR__ || "build") + "/",
8
- e + "/" + (globalThis.__QWIK_ASSETS_DIR__ || "assets") + "/"
9
- ]), o = new Set(s.map(P)), f = [], g = async (a, l, u) => {
10
- if (u = P(u), w.has(u))
11
- return;
12
- const h = y(a, l);
13
- if (l === "index.html" || l === "q-data.json") {
14
- !o.has(u) && m && await p.promises.unlink(h);
15
- return;
16
- }
17
- if (l === "404.html") {
18
- const _ = await p.promises.readFile(h, "utf-8");
19
- f.push([u, _]);
20
- return;
21
- }
22
- const r = await p.promises.stat(h);
23
- r.isDirectory() ? await i(h, u + l + "/") : r.isFile() && o.add(u + l);
24
- }, i = async (a, l) => {
25
- const u = await p.promises.readdir(a);
26
- await Promise.all(u.map((h) => g(a, h, l)));
27
- };
28
- p.existsSync(t) && await i(t, e);
29
- const d = R(e, f), c = O(o);
30
- await b(c, d, n);
31
- }
32
- function P(t) {
33
- return t.endsWith("/") ? t : t + "/";
34
- }
35
- function R(t, n) {
36
- if (n.sort((e, s) => e[0].length > s[0].length ? -1 : e[0].length < s[0].length ? 1 : e[0] < s[0] ? -1 : e[0] > s[0] ? 1 : 0), !n.some((e) => e[0] === t)) {
37
- const e = D(404, "Resource Not Found");
38
- n.push([t, e]);
39
- }
40
- return JSON.stringify(n, null, 2).slice(1, -1);
41
- }
42
- function O(t) {
43
- return JSON.stringify(Array.from(new Set(t)).sort()).slice(1, -1);
44
- }
45
- const b = async (t, n, e) => {
46
- const s = /* @__PURE__ */ new Set(), m = async (o) => {
47
- const f = await p.promises.readFile(o, "utf-8");
48
- let g = !1;
49
- const i = f.replace(
50
- /(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,
51
- (d, c, a) => (g = !0, a === "STATIC_PATHS" ? t : n)
52
- );
53
- g && await p.promises.writeFile(o, i);
54
- }, w = async (o) => {
55
- const f = await p.promises.readdir(o, { withFileTypes: !0 });
56
- for (const g of f)
57
- if (g.isDirectory())
58
- await w(y(o, g.name));
59
- else if (g.name.endsWith("js")) {
60
- const i = m(y(o, g.name)).finally(() => {
61
- s.delete(i);
62
- });
63
- s.add(i);
64
- }
65
- };
66
- await w(e), await Promise.all(s);
67
- };
68
- function T(t) {
69
- let n = null, e = null, s = null, m = null, w = null, o = !1;
70
- const f = [];
71
- return {
72
- name: `vite-plugin-qwik-router-ssg-${t.name}`,
73
- enforce: "post",
74
- apply: "build",
75
- config(i) {
76
- return typeof t.config == "function" && (i = t.config(i)), i.define = {
77
- "process.env.NODE_ENV": JSON.stringify("production"),
78
- ...i.define
79
- }, i;
80
- },
81
- configResolved(i) {
82
- if (o = !!i.build.ssr, o) {
83
- if (n = i.plugins.find(
84
- (d) => d.name === "vite-plugin-qwik-router"
85
- ), !n)
86
- throw new Error("Missing vite-plugin-qwik-router");
87
- if (e = i.plugins.find(
88
- (d) => d.name === "vite-plugin-qwik"
89
- ), !e)
90
- throw new Error("Missing vite-plugin-qwik");
91
- if (s = i.build.outDir, i.build?.ssr !== !0)
92
- throw new Error(
93
- `"build.ssr" must be set to "true" in order to use the "${t.name}" adapter.`
94
- );
95
- if (!i.build?.rollupOptions?.input)
96
- throw new Error(
97
- `"build.rollupOptions.input" must be set in order to use the "${t.name}" adapter.`
98
- );
99
- }
100
- },
101
- buildStart() {
102
- if (o && t.ssg !== null) {
103
- const { srcDir: i } = e.api.getOptions();
104
- this.emitFile({
105
- id: "@qwik-router-config",
106
- type: "chunk",
107
- fileName: "@qwik-router-config.js"
108
- }), this.emitFile({
109
- id: `${i}/entry.ssr`,
110
- type: "chunk",
111
- fileName: "entry.ssr.js"
112
- });
113
- }
114
- },
115
- generateBundle(i, d) {
116
- if (o) {
117
- f.length = 0;
118
- for (const c in d) {
119
- const a = d[c];
120
- a.type === "chunk" && a.isEntry && (f.push(c), a.name === "entry.ssr" ? m = y(s, c) : a.name === "@qwik-router-config" && (w = y(s, c)));
121
- }
122
- }
123
- },
124
- closeBundle: {
125
- sequential: !0,
126
- async handler() {
127
- if (o && s && n?.api && e?.api) {
128
- const i = t.staticPaths || [], d = n.api.getRoutes(), c = n.api.getBasePathname(), a = e.api.getClientOutDir(), l = e.api.getClientPublicOutDir(), u = e.api.getAssetsDir(), h = e.api.getRootDir() ?? void 0;
129
- if (t.ssg !== null && m && w && a && l) {
130
- let r = t.ssg?.origin ?? t.origin;
131
- r || (r = "https://yoursite.qwik.dev"), r.length > 0 && !/:\/\//.test(r) && (r = `https://${r}`), r.startsWith("//") && (r = `https:${r}`);
132
- try {
133
- r = new URL(r).origin;
134
- } catch {
135
- this.warn(
136
- `Invalid "origin" option: "${r}". Using default origin: "https://yoursite.qwik.dev"`
137
- ), r = "https://yoursite.qwik.dev";
138
- }
139
- const _ = await import("./index-CrwlB95_.js"), v = {
140
- maxWorkers: t.maxWorkers,
141
- basePathname: c,
142
- outDir: l,
143
- rootDir: h,
144
- ...t.ssg,
145
- origin: r,
146
- renderModulePath: m,
147
- qwikRouterConfigModulePath: w
148
- }, k = await _.generate(v);
149
- if (k.errors > 0) {
150
- const S = new Error(
151
- `Error while running SSG from "${t.name}" adapter. At least one path failed to render.`
152
- );
153
- S.stack = void 0, this.error(S);
154
- }
155
- i.push(...k.staticPaths);
156
- }
157
- await q(
158
- l,
159
- s,
160
- u ? y(c, u) : c,
161
- i,
162
- !!t.cleanStaticGenerated
163
- ), typeof t.generate == "function" && await t.generate({
164
- outputEntries: f,
165
- serverOutDir: s,
166
- clientOutDir: a,
167
- clientPublicOutDir: l,
168
- basePathname: c,
169
- routes: d,
170
- assetsDir: u,
171
- warn: (r) => this.warn(r),
172
- error: (r) => this.error(r)
173
- }), this.warn(
174
- `
175
- ==============================================
176
- Note: Make sure that you are serving the built files with proper cache headers.
177
- See https://qwik.dev/docs/deployments/#cache-headers for more information.
178
- ==============================================`
179
- ), t.ssg !== null && setTimeout(() => {
180
- process.exit(0);
181
- }, 5e3).unref();
182
- }
183
- }
184
- }
185
- };
186
- }
187
- function C(t = {}) {
188
- const n = process?.env;
189
- return T({
1
+ import { viteAdapter } from "../../shared/vite/index.mjs";
2
+ import "node:path";
3
+ import "node:fs";
4
+ import "../../../chunks/error-handler.mjs";
5
+ function cloudRunAdapter(opts = {}) {
6
+ const env = process?.env;
7
+ return viteAdapter({
190
8
  name: "cloud-run",
191
- origin: n?.ORIGIN ?? n?.URL ?? "https://your-app-name.run.app",
192
- ssg: t.ssg,
193
- cleanStaticGenerated: !0,
9
+ origin: env?.ORIGIN ?? env?.URL ?? "https://your-app-name.run.app",
10
+ ssg: opts.ssg,
11
+ cleanStaticGenerated: true,
194
12
  config() {
195
13
  return {
196
14
  build: {
197
- ssr: !0
15
+ ssr: true
198
16
  },
199
- publicDir: !1
17
+ publicDir: false
200
18
  };
201
19
  }
202
20
  });
203
21
  }
204
22
  export {
205
- C as cloudRunAdapter
23
+ cloudRunAdapter
206
24
  };
@@ -1 +1,65 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("node:fs");require("node:path");const e=require("./index-BIeHg2Cj.cjs");exports.cloudflarePagesAdapter=e.cloudflarePagesAdapter;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fs = require("node:fs");
4
+ const path = require("node:path");
5
+ const fs$1 = require("../../../chunks/fs.cjs");
6
+ const adapters_shared_vite = require("../../shared/vite/index.cjs");
7
+ require("../../../chunks/error-handler.cjs");
8
+ function cloudflarePagesAdapter(opts = {}) {
9
+ const env = process?.env;
10
+ return adapters_shared_vite.viteAdapter({
11
+ name: "cloudflare-pages",
12
+ origin: env?.CF_PAGES_URL ?? env?.ORIGIN ?? "https://your.cloudflare.pages.dev",
13
+ ssg: opts.ssg,
14
+ staticPaths: opts.staticPaths,
15
+ cleanStaticGenerated: true,
16
+ config() {
17
+ return {
18
+ resolve: {
19
+ conditions: ["webworker", "worker"]
20
+ },
21
+ ssr: {
22
+ target: "webworker",
23
+ noExternal: true,
24
+ external: ["node:async_hooks"]
25
+ },
26
+ build: {
27
+ ssr: true,
28
+ rollupOptions: {
29
+ output: {
30
+ format: "es",
31
+ hoistTransitiveImports: false
32
+ }
33
+ }
34
+ },
35
+ publicDir: false
36
+ };
37
+ },
38
+ async generate({ clientOutDir, serverOutDir, basePathname, assetsDir }) {
39
+ const routesJsonPath = path.join(clientOutDir, "_routes.json");
40
+ const hasRoutesJson = fs.existsSync(routesJsonPath);
41
+ if (!hasRoutesJson && opts.functionRoutes !== false) {
42
+ let pathName = assetsDir ? path.join(basePathname, assetsDir) : basePathname;
43
+ if (!pathName.endsWith("/")) {
44
+ pathName += "/";
45
+ }
46
+ const routesJson = {
47
+ version: 1,
48
+ include: [basePathname + "*"],
49
+ exclude: [pathName + "build/*", pathName + "assets/*"]
50
+ };
51
+ await fs.promises.writeFile(routesJsonPath, JSON.stringify(routesJson, void 0, 2));
52
+ }
53
+ const workerJsPath = path.join(clientOutDir, "_worker.js");
54
+ const hasWorkerJs = fs.existsSync(workerJsPath);
55
+ if (!hasWorkerJs) {
56
+ const importPath = path.relative(clientOutDir, path.join(serverOutDir, "entry.cloudflare-pages"));
57
+ await fs.promises.writeFile(
58
+ workerJsPath,
59
+ `import { fetch } from "${fs$1.normalizePathSlash(importPath)}"; export default { fetch };`
60
+ );
61
+ }
62
+ }
63
+ });
64
+ }
65
+ exports.cloudflarePagesAdapter = cloudflarePagesAdapter;
@@ -1,6 +1,65 @@
1
- import "node:fs";
2
- import "node:path";
3
- import { c as p } from "./index-bogwy7wh.js";
1
+ import fs from "node:fs";
2
+ import { join, relative } from "node:path";
3
+ import { n as normalizePathSlash } from "../../../chunks/fs.mjs";
4
+ import { viteAdapter } from "../../shared/vite/index.mjs";
5
+ import "../../../chunks/error-handler.mjs";
6
+ function cloudflarePagesAdapter(opts = {}) {
7
+ const env = process?.env;
8
+ return viteAdapter({
9
+ name: "cloudflare-pages",
10
+ origin: env?.CF_PAGES_URL ?? env?.ORIGIN ?? "https://your.cloudflare.pages.dev",
11
+ ssg: opts.ssg,
12
+ staticPaths: opts.staticPaths,
13
+ cleanStaticGenerated: true,
14
+ config() {
15
+ return {
16
+ resolve: {
17
+ conditions: ["webworker", "worker"]
18
+ },
19
+ ssr: {
20
+ target: "webworker",
21
+ noExternal: true,
22
+ external: ["node:async_hooks"]
23
+ },
24
+ build: {
25
+ ssr: true,
26
+ rollupOptions: {
27
+ output: {
28
+ format: "es",
29
+ hoistTransitiveImports: false
30
+ }
31
+ }
32
+ },
33
+ publicDir: false
34
+ };
35
+ },
36
+ async generate({ clientOutDir, serverOutDir, basePathname, assetsDir }) {
37
+ const routesJsonPath = join(clientOutDir, "_routes.json");
38
+ const hasRoutesJson = fs.existsSync(routesJsonPath);
39
+ if (!hasRoutesJson && opts.functionRoutes !== false) {
40
+ let pathName = assetsDir ? join(basePathname, assetsDir) : basePathname;
41
+ if (!pathName.endsWith("/")) {
42
+ pathName += "/";
43
+ }
44
+ const routesJson = {
45
+ version: 1,
46
+ include: [basePathname + "*"],
47
+ exclude: [pathName + "build/*", pathName + "assets/*"]
48
+ };
49
+ await fs.promises.writeFile(routesJsonPath, JSON.stringify(routesJson, void 0, 2));
50
+ }
51
+ const workerJsPath = join(clientOutDir, "_worker.js");
52
+ const hasWorkerJs = fs.existsSync(workerJsPath);
53
+ if (!hasWorkerJs) {
54
+ const importPath = relative(clientOutDir, join(serverOutDir, "entry.cloudflare-pages"));
55
+ await fs.promises.writeFile(
56
+ workerJsPath,
57
+ `import { fetch } from "${normalizePathSlash(importPath)}"; export default { fetch };`
58
+ );
59
+ }
60
+ }
61
+ });
62
+ }
4
63
  export {
5
- p as cloudflarePagesAdapter
64
+ cloudflarePagesAdapter
6
65
  };
@@ -1,5 +1,39 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("node:path"),P=require("@qwik.dev/router/middleware/request-handler"),p=require("node:fs");async function D(e,n,t,s,m){t&&!t.endsWith("/")&&(t+="/");const w=new Set([t+"/"+(globalThis.__QWIK_BUILD_DIR__||"build")+"/",t+"/"+(globalThis.__QWIK_ASSETS_DIR__||"assets")+"/"]),o=new Set(s.map(v)),f=[],g=async(a,l,u)=>{if(u=v(u),w.has(u))return;const h=y.join(a,l);if(l==="index.html"||l==="q-data.json"){!o.has(u)&&m&&await p.promises.unlink(h);return}if(l==="404.html"){const k=await p.promises.readFile(h,"utf-8");f.push([u,k]);return}const r=await p.promises.stat(h);r.isDirectory()?await i(h,u+l+"/"):r.isFile()&&o.add(u+l)},i=async(a,l)=>{const u=await p.promises.readdir(a);await Promise.all(u.map(h=>g(a,h,l)))};p.existsSync(e)&&await i(e,t);const d=O(t,f),c=b(o);await R(c,d,n)}function v(e){return e.endsWith("/")?e:e+"/"}function O(e,n){if(n.sort((t,s)=>t[0].length>s[0].length?-1:t[0].length<s[0].length?1:t[0]<s[0]?-1:t[0]>s[0]?1:0),!n.some(t=>t[0]===e)){const t=P.getErrorHtml(404,"Resource Not Found");n.push([e,t])}return JSON.stringify(n,null,2).slice(1,-1)}function b(e){return JSON.stringify(Array.from(new Set(e)).sort()).slice(1,-1)}const R=async(e,n,t)=>{const s=new Set,m=async o=>{const f=await p.promises.readFile(o,"utf-8");let g=!1;const i=f.replace(/(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,(d,c,a)=>(g=!0,a==="STATIC_PATHS"?e:n));g&&await p.promises.writeFile(o,i)},w=async o=>{const f=await p.promises.readdir(o,{withFileTypes:!0});for(const g of f)if(g.isDirectory())await w(y.join(o,g.name));else if(g.name.endsWith("js")){const i=m(y.join(o,g.name)).finally(()=>{s.delete(i)});s.add(i)}};await w(t),await Promise.all(s)};function T(e){let n=null,t=null,s=null,m=null,w=null,o=!1;const f=[];return{name:`vite-plugin-qwik-router-ssg-${e.name}`,enforce:"post",apply:"build",config(i){return typeof e.config=="function"&&(i=e.config(i)),i.define={"process.env.NODE_ENV":JSON.stringify("production"),...i.define},i},configResolved(i){if(o=!!i.build.ssr,o){if(n=i.plugins.find(d=>d.name==="vite-plugin-qwik-router"),!n)throw new Error("Missing vite-plugin-qwik-router");if(t=i.plugins.find(d=>d.name==="vite-plugin-qwik"),!t)throw new Error("Missing vite-plugin-qwik");if(s=i.build.outDir,i.build?.ssr!==!0)throw new Error(`"build.ssr" must be set to "true" in order to use the "${e.name}" adapter.`);if(!i.build?.rollupOptions?.input)throw new Error(`"build.rollupOptions.input" must be set in order to use the "${e.name}" adapter.`)}},buildStart(){if(o&&e.ssg!==null){const{srcDir:i}=t.api.getOptions();this.emitFile({id:"@qwik-router-config",type:"chunk",fileName:"@qwik-router-config.js"}),this.emitFile({id:`${i}/entry.ssr`,type:"chunk",fileName:"entry.ssr.js"})}},generateBundle(i,d){if(o){f.length=0;for(const c in d){const a=d[c];a.type==="chunk"&&a.isEntry&&(f.push(c),a.name==="entry.ssr"?m=y.join(s,c):a.name==="@qwik-router-config"&&(w=y.join(s,c)))}}},closeBundle:{sequential:!0,async handler(){if(o&&s&&n?.api&&t?.api){const i=e.staticPaths||[],d=n.api.getRoutes(),c=n.api.getBasePathname(),a=t.api.getClientOutDir(),l=t.api.getClientPublicOutDir(),u=t.api.getAssetsDir(),h=t.api.getRootDir()??void 0;if(e.ssg!==null&&m&&w&&a&&l){let r=e.ssg?.origin??e.origin;r||(r="https://yoursite.qwik.dev"),r.length>0&&!/:\/\//.test(r)&&(r=`https://${r}`),r.startsWith("//")&&(r=`https:${r}`);try{r=new URL(r).origin}catch{this.warn(`Invalid "origin" option: "${r}". Using default origin: "https://yoursite.qwik.dev"`),r="https://yoursite.qwik.dev"}const k=await Promise.resolve().then(()=>require("./index-BqUeglYs.cjs")),q={maxWorkers:e.maxWorkers,basePathname:c,outDir:l,rootDir:h,...e.ssg,origin:r,renderModulePath:m,qwikRouterConfigModulePath:w},S=await k.generate(q);if(S.errors>0){const _=new Error(`Error while running SSG from "${e.name}" adapter. At least one path failed to render.`);_.stack=void 0,this.error(_)}i.push(...S.staticPaths)}await D(l,s,u?y.join(c,u):c,i,!!e.cleanStaticGenerated),typeof e.generate=="function"&&await e.generate({outputEntries:f,serverOutDir:s,clientOutDir:a,clientPublicOutDir:l,basePathname:c,routes:d,assetsDir:u,warn:r=>this.warn(r),error:r=>this.error(r)}),this.warn(`
2
- ==============================================
3
- Note: Make sure that you are serving the built files with proper cache headers.
4
- See https://qwik.dev/docs/deployments/#cache-headers for more information.
5
- ==============================================`),e.ssg!==null&&setTimeout(()=>{process.exit(0)},5e3).unref()}}}}}function E(e={}){const n=process?.env;return T({name:e.name||"deno-server",origin:n?.ORIGIN??n?.URL??"https://yoursitename.qwik.dev",ssg:e.ssg,cleanStaticGenerated:!0,config(){return{resolve:{conditions:["webworker","worker"]},ssr:{target:"webworker",noExternal:!0,external:["node:async_hooks"]},build:{ssr:!0,target:"esnext",rollupOptions:{output:{format:"es",hoistTransitiveImports:!1}}},publicDir:!1}}})}exports.denoServerAdapter=E;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const adapters_shared_vite = require("../../shared/vite/index.cjs");
4
+ require("node:path");
5
+ require("node:fs");
6
+ require("../../../chunks/error-handler.cjs");
7
+ function denoServerAdapter(opts = {}) {
8
+ const env = process?.env;
9
+ return adapters_shared_vite.viteAdapter({
10
+ name: opts.name || "deno-server",
11
+ origin: env?.ORIGIN ?? env?.URL ?? "https://yoursitename.qwik.dev",
12
+ ssg: opts.ssg,
13
+ cleanStaticGenerated: true,
14
+ config() {
15
+ return {
16
+ resolve: {
17
+ conditions: ["webworker", "worker"]
18
+ },
19
+ ssr: {
20
+ target: "webworker",
21
+ noExternal: true,
22
+ external: ["node:async_hooks"]
23
+ },
24
+ build: {
25
+ ssr: true,
26
+ target: "esnext",
27
+ rollupOptions: {
28
+ output: {
29
+ format: "es",
30
+ hoistTransitiveImports: false
31
+ }
32
+ }
33
+ },
34
+ publicDir: false
35
+ };
36
+ }
37
+ });
38
+ }
39
+ exports.denoServerAdapter = denoServerAdapter;
@@ -1,196 +1,14 @@
1
- import { join as y } from "node:path";
2
- import { getErrorHtml as q } from "@qwik.dev/router/middleware/request-handler";
3
- import p from "node:fs";
4
- async function D(e, n, t, s, m) {
5
- t && !t.endsWith("/") && (t += "/");
6
- const g = /* @__PURE__ */ new Set([
7
- t + "/" + (globalThis.__QWIK_BUILD_DIR__ || "build") + "/",
8
- t + "/" + (globalThis.__QWIK_ASSETS_DIR__ || "assets") + "/"
9
- ]), o = new Set(s.map(v)), f = [], w = async (a, l, u) => {
10
- if (u = v(u), g.has(u))
11
- return;
12
- const h = y(a, l);
13
- if (l === "index.html" || l === "q-data.json") {
14
- !o.has(u) && m && await p.promises.unlink(h);
15
- return;
16
- }
17
- if (l === "404.html") {
18
- const k = await p.promises.readFile(h, "utf-8");
19
- f.push([u, k]);
20
- return;
21
- }
22
- const r = await p.promises.stat(h);
23
- r.isDirectory() ? await i(h, u + l + "/") : r.isFile() && o.add(u + l);
24
- }, i = async (a, l) => {
25
- const u = await p.promises.readdir(a);
26
- await Promise.all(u.map((h) => w(a, h, l)));
27
- };
28
- p.existsSync(e) && await i(e, t);
29
- const d = O(t, f), c = R(o);
30
- await b(c, d, n);
31
- }
32
- function v(e) {
33
- return e.endsWith("/") ? e : e + "/";
34
- }
35
- function O(e, n) {
36
- if (n.sort((t, s) => t[0].length > s[0].length ? -1 : t[0].length < s[0].length ? 1 : t[0] < s[0] ? -1 : t[0] > s[0] ? 1 : 0), !n.some((t) => t[0] === e)) {
37
- const t = q(404, "Resource Not Found");
38
- n.push([e, t]);
39
- }
40
- return JSON.stringify(n, null, 2).slice(1, -1);
41
- }
42
- function R(e) {
43
- return JSON.stringify(Array.from(new Set(e)).sort()).slice(1, -1);
44
- }
45
- const b = async (e, n, t) => {
46
- const s = /* @__PURE__ */ new Set(), m = async (o) => {
47
- const f = await p.promises.readFile(o, "utf-8");
48
- let w = !1;
49
- const i = f.replace(
50
- /(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,
51
- (d, c, a) => (w = !0, a === "STATIC_PATHS" ? e : n)
52
- );
53
- w && await p.promises.writeFile(o, i);
54
- }, g = async (o) => {
55
- const f = await p.promises.readdir(o, { withFileTypes: !0 });
56
- for (const w of f)
57
- if (w.isDirectory())
58
- await g(y(o, w.name));
59
- else if (w.name.endsWith("js")) {
60
- const i = m(y(o, w.name)).finally(() => {
61
- s.delete(i);
62
- });
63
- s.add(i);
64
- }
65
- };
66
- await g(t), await Promise.all(s);
67
- };
68
- function T(e) {
69
- let n = null, t = null, s = null, m = null, g = null, o = !1;
70
- const f = [];
71
- return {
72
- name: `vite-plugin-qwik-router-ssg-${e.name}`,
73
- enforce: "post",
74
- apply: "build",
75
- config(i) {
76
- return typeof e.config == "function" && (i = e.config(i)), i.define = {
77
- "process.env.NODE_ENV": JSON.stringify("production"),
78
- ...i.define
79
- }, i;
80
- },
81
- configResolved(i) {
82
- if (o = !!i.build.ssr, o) {
83
- if (n = i.plugins.find(
84
- (d) => d.name === "vite-plugin-qwik-router"
85
- ), !n)
86
- throw new Error("Missing vite-plugin-qwik-router");
87
- if (t = i.plugins.find(
88
- (d) => d.name === "vite-plugin-qwik"
89
- ), !t)
90
- throw new Error("Missing vite-plugin-qwik");
91
- if (s = i.build.outDir, i.build?.ssr !== !0)
92
- throw new Error(
93
- `"build.ssr" must be set to "true" in order to use the "${e.name}" adapter.`
94
- );
95
- if (!i.build?.rollupOptions?.input)
96
- throw new Error(
97
- `"build.rollupOptions.input" must be set in order to use the "${e.name}" adapter.`
98
- );
99
- }
100
- },
101
- buildStart() {
102
- if (o && e.ssg !== null) {
103
- const { srcDir: i } = t.api.getOptions();
104
- this.emitFile({
105
- id: "@qwik-router-config",
106
- type: "chunk",
107
- fileName: "@qwik-router-config.js"
108
- }), this.emitFile({
109
- id: `${i}/entry.ssr`,
110
- type: "chunk",
111
- fileName: "entry.ssr.js"
112
- });
113
- }
114
- },
115
- generateBundle(i, d) {
116
- if (o) {
117
- f.length = 0;
118
- for (const c in d) {
119
- const a = d[c];
120
- a.type === "chunk" && a.isEntry && (f.push(c), a.name === "entry.ssr" ? m = y(s, c) : a.name === "@qwik-router-config" && (g = y(s, c)));
121
- }
122
- }
123
- },
124
- closeBundle: {
125
- sequential: !0,
126
- async handler() {
127
- if (o && s && n?.api && t?.api) {
128
- const i = e.staticPaths || [], d = n.api.getRoutes(), c = n.api.getBasePathname(), a = t.api.getClientOutDir(), l = t.api.getClientPublicOutDir(), u = t.api.getAssetsDir(), h = t.api.getRootDir() ?? void 0;
129
- if (e.ssg !== null && m && g && a && l) {
130
- let r = e.ssg?.origin ?? e.origin;
131
- r || (r = "https://yoursite.qwik.dev"), r.length > 0 && !/:\/\//.test(r) && (r = `https://${r}`), r.startsWith("//") && (r = `https:${r}`);
132
- try {
133
- r = new URL(r).origin;
134
- } catch {
135
- this.warn(
136
- `Invalid "origin" option: "${r}". Using default origin: "https://yoursite.qwik.dev"`
137
- ), r = "https://yoursite.qwik.dev";
138
- }
139
- const k = await import("./index-CrwlB95_.js"), P = {
140
- maxWorkers: e.maxWorkers,
141
- basePathname: c,
142
- outDir: l,
143
- rootDir: h,
144
- ...e.ssg,
145
- origin: r,
146
- renderModulePath: m,
147
- qwikRouterConfigModulePath: g
148
- }, _ = await k.generate(P);
149
- if (_.errors > 0) {
150
- const S = new Error(
151
- `Error while running SSG from "${e.name}" adapter. At least one path failed to render.`
152
- );
153
- S.stack = void 0, this.error(S);
154
- }
155
- i.push(..._.staticPaths);
156
- }
157
- await D(
158
- l,
159
- s,
160
- u ? y(c, u) : c,
161
- i,
162
- !!e.cleanStaticGenerated
163
- ), typeof e.generate == "function" && await e.generate({
164
- outputEntries: f,
165
- serverOutDir: s,
166
- clientOutDir: a,
167
- clientPublicOutDir: l,
168
- basePathname: c,
169
- routes: d,
170
- assetsDir: u,
171
- warn: (r) => this.warn(r),
172
- error: (r) => this.error(r)
173
- }), this.warn(
174
- `
175
- ==============================================
176
- Note: Make sure that you are serving the built files with proper cache headers.
177
- See https://qwik.dev/docs/deployments/#cache-headers for more information.
178
- ==============================================`
179
- ), e.ssg !== null && setTimeout(() => {
180
- process.exit(0);
181
- }, 5e3).unref();
182
- }
183
- }
184
- }
185
- };
186
- }
187
- function C(e = {}) {
188
- const n = process?.env;
189
- return T({
190
- name: e.name || "deno-server",
191
- origin: n?.ORIGIN ?? n?.URL ?? "https://yoursitename.qwik.dev",
192
- ssg: e.ssg,
193
- cleanStaticGenerated: !0,
1
+ import { viteAdapter } from "../../shared/vite/index.mjs";
2
+ import "node:path";
3
+ import "node:fs";
4
+ import "../../../chunks/error-handler.mjs";
5
+ function denoServerAdapter(opts = {}) {
6
+ const env = process?.env;
7
+ return viteAdapter({
8
+ name: opts.name || "deno-server",
9
+ origin: env?.ORIGIN ?? env?.URL ?? "https://yoursitename.qwik.dev",
10
+ ssg: opts.ssg,
11
+ cleanStaticGenerated: true,
194
12
  config() {
195
13
  return {
196
14
  resolve: {
@@ -198,24 +16,24 @@ function C(e = {}) {
198
16
  },
199
17
  ssr: {
200
18
  target: "webworker",
201
- noExternal: !0,
19
+ noExternal: true,
202
20
  external: ["node:async_hooks"]
203
21
  },
204
22
  build: {
205
- ssr: !0,
23
+ ssr: true,
206
24
  target: "esnext",
207
25
  rollupOptions: {
208
26
  output: {
209
27
  format: "es",
210
- hoistTransitiveImports: !1
28
+ hoistTransitiveImports: false
211
29
  }
212
30
  }
213
31
  },
214
- publicDir: !1
32
+ publicDir: false
215
33
  };
216
34
  }
217
35
  });
218
36
  }
219
37
  export {
220
- C as denoServerAdapter
38
+ denoServerAdapter
221
39
  };