@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,276 +1,88 @@
1
- import y, { existsSync as E } from "node:fs";
2
- import { join as m, resolve as D, dirname as x, basename as q } from "node:path";
3
- import { getErrorHtml as R } from "@qwik.dev/router/middleware/request-handler";
4
- async function O(e, r, t, i, u) {
5
- t && !t.endsWith("/") && (t += "/");
6
- const h = /* @__PURE__ */ new Set([
7
- t + "/" + (globalThis.__QWIK_BUILD_DIR__ || "build") + "/",
8
- t + "/" + (globalThis.__QWIK_ASSETS_DIR__ || "assets") + "/"
9
- ]), o = new Set(i.map(_)), d = [], c = async (a, l, f) => {
10
- if (f = _(f), h.has(f))
11
- return;
12
- const w = m(a, l);
13
- if (l === "index.html" || l === "q-data.json") {
14
- !o.has(f) && u && await y.promises.unlink(w);
15
- return;
16
- }
17
- if (l === "404.html") {
18
- const s = await y.promises.readFile(w, "utf-8");
19
- d.push([f, s]);
20
- return;
21
- }
22
- const k = await y.promises.stat(w);
23
- k.isDirectory() ? await p(w, f + l + "/") : k.isFile() && o.add(f + l);
24
- }, p = async (a, l) => {
25
- const f = await y.promises.readdir(a);
26
- await Promise.all(f.map((w) => c(a, w, l)));
27
- };
28
- y.existsSync(e) && await p(e, t);
29
- const n = T(t, d), g = j(o);
30
- await A(g, n, r);
31
- }
32
- function _(e) {
33
- return e.endsWith("/") ? e : e + "/";
34
- }
35
- function T(e, r) {
36
- if (r.sort((t, i) => t[0].length > i[0].length ? -1 : t[0].length < i[0].length ? 1 : t[0] < i[0] ? -1 : t[0] > i[0] ? 1 : 0), !r.some((t) => t[0] === e)) {
37
- const t = R(404, "Resource Not Found");
38
- r.push([e, t]);
39
- }
40
- return JSON.stringify(r, null, 2).slice(1, -1);
41
- }
42
- function j(e) {
43
- return JSON.stringify(Array.from(new Set(e)).sort()).slice(1, -1);
44
- }
45
- const A = async (e, r, t) => {
46
- const i = /* @__PURE__ */ new Set(), u = async (o) => {
47
- const d = await y.promises.readFile(o, "utf-8");
48
- let c = !1;
49
- const p = d.replace(
50
- /(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,
51
- (n, g, a) => (c = !0, a === "STATIC_PATHS" ? e : r)
52
- );
53
- c && await y.promises.writeFile(o, p);
54
- }, h = async (o) => {
55
- const d = await y.promises.readdir(o, { withFileTypes: !0 });
56
- for (const c of d)
57
- if (c.isDirectory())
58
- await h(m(o, c.name));
59
- else if (c.name.endsWith("js")) {
60
- const p = u(m(o, c.name)).finally(() => {
61
- i.delete(p);
62
- });
63
- i.add(p);
64
- }
65
- };
66
- await h(t), await Promise.all(i);
67
- };
68
- function F(e) {
69
- let r = null, t = null, i = null, u = null, h = null, o = !1, d;
70
- const c = [];
71
- return {
72
- name: `vite-plugin-qwik-router-ssg-${e.name}`,
73
- enforce: "post",
74
- apply: "build",
75
- config(n) {
76
- return typeof e.config == "function" && (n = e.config(n)), n.define = {
77
- "process.env.NODE_ENV": JSON.stringify("production"),
78
- ...n.define
79
- }, n;
80
- },
81
- configResolved(n) {
82
- if (o = !!n.build.ssr, d = n.command, o) {
83
- if (r = n.plugins.find(
84
- (g) => g.name === "vite-plugin-qwik-router"
85
- ), !r)
86
- throw new Error("Missing vite-plugin-qwik-router");
87
- if (t = n.plugins.find(
88
- (g) => g.name === "vite-plugin-qwik"
89
- ), !t)
90
- throw new Error("Missing vite-plugin-qwik");
91
- if (i = n.build.outDir, n.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 (!n.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: n } = t.api.getOptions();
104
- d === "build" && i && n && (this.emitFile({
105
- id: "@qwik-router-config",
106
- type: "chunk",
107
- fileName: "@qwik-router-config.js"
108
- }), this.emitFile({
109
- id: `${n}/entry.ssr`,
110
- type: "chunk",
111
- fileName: "entry.ssr.js"
112
- }));
113
- }
114
- },
115
- generateBundle(n, g) {
116
- if (o) {
117
- c.length = 0;
118
- for (const a in g) {
119
- const l = g[a];
120
- l.type === "chunk" && l.isEntry && (c.push(a), l.name === "entry.ssr" ? u = m(i, a) : l.name === "@qwik-router-config" && (h = m(i, a)));
121
- }
122
- }
123
- },
124
- closeBundle: {
125
- sequential: !0,
126
- async handler() {
127
- if (o && i && r?.api && t?.api) {
128
- const n = e.staticPaths || [], g = r.api.getRoutes(), a = r.api.getBasePathname(), l = t.api.getClientOutDir(), f = t.api.getClientPublicOutDir(), w = t.api.getAssetsDir(), k = t.api.getRootDir() ?? void 0;
129
- if (e.ssg !== null && u && h && l && f) {
130
- let s = e.ssg?.origin ?? e.origin;
131
- s || (s = "https://yoursite.qwik.dev"), s.length > 0 && !/:\/\//.test(s) && (s = `https://${s}`), s.startsWith("//") && (s = `https:${s}`);
132
- try {
133
- s = new URL(s).origin;
134
- } catch {
135
- this.warn(
136
- `Invalid "origin" option: "${s}". Using default origin: "https://yoursite.qwik.dev"`
137
- ), s = "https://yoursite.qwik.dev";
138
- }
139
- const v = await import("./index-CrwlB95_.js"), b = {
140
- maxWorkers: e.maxWorkers,
141
- basePathname: a,
142
- outDir: f,
143
- rootDir: k,
144
- ...e.ssg,
145
- origin: s,
146
- renderModulePath: u,
147
- qwikRouterConfigModulePath: h
148
- }, P = await v.generate(b);
149
- if (P.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
- n.push(...P.staticPaths);
156
- }
157
- await O(
158
- f,
159
- i,
160
- w ? m(a, w) : a,
161
- n,
162
- !!e.cleanStaticGenerated
163
- ), typeof e.generate == "function" && await e.generate({
164
- outputEntries: c,
165
- serverOutDir: i,
166
- clientOutDir: l,
167
- clientPublicOutDir: f,
168
- basePathname: a,
169
- routes: g,
170
- assetsDir: w,
171
- warn: (s) => this.warn(s),
172
- error: (s) => this.error(s)
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
- console.warn(
181
- "SSG seems to be hanging after completion, forcing process to exit. Everything is likely fine."
182
- ), process.exit(0);
183
- }, 5e3).unref(), e.ssg !== null && setTimeout(() => {
184
- process.exit(0);
185
- }, 5e3).unref();
186
- }
187
- }
188
- }
189
- };
190
- }
191
- function I(e, r) {
192
- const t = D("/");
193
- let i = e;
194
- for (let u = 0; u < 20; u++) {
195
- if (i = x(i), q(i) === r)
196
- return i;
197
- if (i === t)
198
- break;
199
- }
200
- throw new Error(`Unable to find "${r}" directory from "${e}"`);
201
- }
202
- function G(e = {}) {
203
- const r = process?.env;
204
- return F({
1
+ import fs, { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { viteAdapter, getParentDir } from '../../shared/vite/index.mjs';
4
+ import '../../../chunks/error-handler.mjs';
5
+
6
+ function netlifyEdgeAdapter(opts = {}) {
7
+ const env = process?.env;
8
+ return viteAdapter({
205
9
  name: "netlify-edge",
206
- origin: r?.ORIGIN ?? r?.URL ?? "https://yoursitename.netlify.app",
207
- ssg: e.ssg,
208
- staticPaths: e.staticPaths,
209
- cleanStaticGenerated: !0,
210
- config(t) {
211
- const i = t.build?.outDir || ".netlify/edge-functions/entry.netlify-edge";
10
+ origin: env?.ORIGIN ?? env?.URL ?? "https://yoursitename.netlify.app",
11
+ ssg: opts.ssg,
12
+ staticPaths: opts.staticPaths,
13
+ cleanStaticGenerated: true,
14
+ config(config) {
15
+ const outDir = config.build?.outDir || ".netlify/edge-functions/entry.netlify-edge";
212
16
  return {
213
17
  resolve: {
214
18
  conditions: ["webworker", "worker"]
215
19
  },
216
20
  ssr: {
217
21
  target: "webworker",
218
- noExternal: !0,
22
+ noExternal: true,
219
23
  external: ["node:async_hooks"]
220
24
  },
221
25
  build: {
222
- ssr: !0,
223
- outDir: i,
26
+ ssr: true,
27
+ outDir,
224
28
  rollupOptions: {
225
29
  output: {
226
30
  format: "es",
227
- hoistTransitiveImports: !1
31
+ hoistTransitiveImports: false
228
32
  }
229
33
  }
230
34
  },
231
- publicDir: !1
35
+ publicDir: false
232
36
  };
233
37
  },
234
- async generate({ serverOutDir: t, basePathname: i }) {
235
- if (e.functionRoutes !== !1) {
236
- const u = [];
237
- typeof e.excludedPath == "string" ? u.push(e.excludedPath) : Array.isArray(e.excludedPath) ? u.push(...e.excludedPath) : u.push(
238
- "/build/*",
239
- "/favicon.ico",
240
- "/robots.txt",
241
- "/mainifest.json",
242
- "/~partytown/*",
243
- "/service-worker.js",
244
- "/sitemap.xml"
245
- );
246
- const h = {
38
+ async generate({ serverOutDir, basePathname }) {
39
+ if (opts.functionRoutes !== false) {
40
+ const excludedPath = [];
41
+ if (typeof opts.excludedPath === "string") {
42
+ excludedPath.push(opts.excludedPath);
43
+ } else if (Array.isArray(opts.excludedPath)) {
44
+ excludedPath.push(...opts.excludedPath);
45
+ } else {
46
+ excludedPath.push(
47
+ "/build/*",
48
+ "/favicon.ico",
49
+ "/robots.txt",
50
+ "/mainifest.json",
51
+ "/~partytown/*",
52
+ "/service-worker.js",
53
+ "/sitemap.xml"
54
+ );
55
+ }
56
+ const netlifyEdgeManifest = {
247
57
  functions: [
248
58
  {
249
- path: i + "*",
59
+ path: basePathname + "*",
250
60
  function: "entry.netlify-edge",
251
61
  cache: "manual",
252
- excludedPath: u
62
+ excludedPath
253
63
  }
254
64
  ],
255
65
  version: 1
256
- }, o = m(t, "entry.netlify-edge.js"), d = m(t, "entry.netlify-edge.mjs");
257
- E(d) && await y.promises.writeFile(
258
- o,
259
- [
260
- "import entry_netlifyEdge from './entry.netlify-edge.mjs';",
261
- "export default entry_netlifyEdge;"
262
- ].join(`
263
- `)
264
- );
265
- const c = I(t, "edge-functions");
266
- await y.promises.writeFile(
267
- m(c, "manifest.json"),
268
- JSON.stringify(h, null, 2)
66
+ };
67
+ const jsPath = join(serverOutDir, "entry.netlify-edge.js");
68
+ const mjsPath = join(serverOutDir, "entry.netlify-edge.mjs");
69
+ if (existsSync(mjsPath)) {
70
+ await fs.promises.writeFile(
71
+ jsPath,
72
+ [
73
+ `import entry_netlifyEdge from './entry.netlify-edge.mjs';`,
74
+ `export default entry_netlifyEdge;`
75
+ ].join("\n")
76
+ );
77
+ }
78
+ const netlifyEdgeFnsDir = getParentDir(serverOutDir, "edge-functions");
79
+ await fs.promises.writeFile(
80
+ join(netlifyEdgeFnsDir, "manifest.json"),
81
+ JSON.stringify(netlifyEdgeManifest, null, 2)
269
82
  );
270
83
  }
271
84
  }
272
85
  });
273
86
  }
274
- export {
275
- G as netlifyEdgeAdapter
276
- };
87
+
88
+ export { netlifyEdgeAdapter };
@@ -1,213 +1,27 @@
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 O(e, s, t, n, m) {
5
- t && !t.endsWith("/") && (t += "/");
6
- const w = /* @__PURE__ */ new Set([
7
- t + "/" + (globalThis.__QWIK_BUILD_DIR__ || "build") + "/",
8
- t + "/" + (globalThis.__QWIK_ASSETS_DIR__ || "assets") + "/"
9
- ]), o = new Set(n.map(v)), g = [], c = async (a, l, u) => {
10
- if (u = v(u), w.has(u))
11
- return;
12
- const f = y(a, l);
13
- if (l === "index.html" || l === "q-data.json") {
14
- !o.has(u) && m && await p.promises.unlink(f);
15
- return;
16
- }
17
- if (l === "404.html") {
18
- const r = await p.promises.readFile(f, "utf-8");
19
- g.push([u, r]);
20
- return;
21
- }
22
- const S = await p.promises.stat(f);
23
- S.isDirectory() ? await h(f, u + l + "/") : S.isFile() && o.add(u + l);
24
- }, h = async (a, l) => {
25
- const u = await p.promises.readdir(a);
26
- await Promise.all(u.map((f) => c(a, f, l)));
27
- };
28
- p.existsSync(e) && await h(e, t);
29
- const i = R(t, g), d = b(o);
30
- await T(d, i, s);
31
- }
32
- function v(e) {
33
- return e.endsWith("/") ? e : e + "/";
34
- }
35
- function R(e, s) {
36
- if (s.sort((t, n) => t[0].length > n[0].length ? -1 : t[0].length < n[0].length ? 1 : t[0] < n[0] ? -1 : t[0] > n[0] ? 1 : 0), !s.some((t) => t[0] === e)) {
37
- const t = D(404, "Resource Not Found");
38
- s.push([e, t]);
39
- }
40
- return JSON.stringify(s, null, 2).slice(1, -1);
41
- }
42
- function b(e) {
43
- return JSON.stringify(Array.from(new Set(e)).sort()).slice(1, -1);
44
- }
45
- const T = async (e, s, t) => {
46
- const n = /* @__PURE__ */ new Set(), m = async (o) => {
47
- const g = await p.promises.readFile(o, "utf-8");
48
- let c = !1;
49
- const h = g.replace(
50
- /(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,
51
- (i, d, a) => (c = !0, a === "STATIC_PATHS" ? e : s)
52
- );
53
- c && await p.promises.writeFile(o, h);
54
- }, w = async (o) => {
55
- const g = await p.promises.readdir(o, { withFileTypes: !0 });
56
- for (const c of g)
57
- if (c.isDirectory())
58
- await w(y(o, c.name));
59
- else if (c.name.endsWith("js")) {
60
- const h = m(y(o, c.name)).finally(() => {
61
- n.delete(h);
62
- });
63
- n.add(h);
64
- }
65
- };
66
- await w(t), await Promise.all(n);
67
- };
68
- function E(e) {
69
- let s = null, t = null, n = null, m = null, w = null, o = !1, g;
70
- const c = [];
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, g = i.command, o) {
83
- if (s = i.plugins.find(
84
- (d) => d.name === "vite-plugin-qwik-router"
85
- ), !s)
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 (n = 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
- g === "build" && n && i && (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
- c.length = 0;
118
- for (const a in d) {
119
- const l = d[a];
120
- l.type === "chunk" && l.isEntry && (c.push(a), l.name === "entry.ssr" ? m = y(n, a) : l.name === "@qwik-router-config" && (w = y(n, a)));
121
- }
122
- }
123
- },
124
- closeBundle: {
125
- sequential: !0,
126
- async handler() {
127
- if (o && n && s?.api && t?.api) {
128
- const i = e.staticPaths || [], d = s.api.getRoutes(), a = s.api.getBasePathname(), l = t.api.getClientOutDir(), u = t.api.getClientPublicOutDir(), f = t.api.getAssetsDir(), S = t.api.getRootDir() ?? void 0;
129
- if (e.ssg !== null && m && w && l && u) {
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 P = await import("./index-CrwlB95_.js"), q = {
140
- maxWorkers: e.maxWorkers,
141
- basePathname: a,
142
- outDir: u,
143
- rootDir: S,
144
- ...e.ssg,
145
- origin: r,
146
- renderModulePath: m,
147
- qwikRouterConfigModulePath: w
148
- }, k = await P.generate(q);
149
- if (k.errors > 0) {
150
- const _ = new Error(
151
- `Error while running SSG from "${e.name}" adapter. At least one path failed to render.`
152
- );
153
- _.stack = void 0, this.error(_);
154
- }
155
- i.push(...k.staticPaths);
156
- }
157
- await O(
158
- u,
159
- n,
160
- f ? y(a, f) : a,
161
- i,
162
- !!e.cleanStaticGenerated
163
- ), typeof e.generate == "function" && await e.generate({
164
- outputEntries: c,
165
- serverOutDir: n,
166
- clientOutDir: l,
167
- clientPublicOutDir: u,
168
- basePathname: a,
169
- routes: d,
170
- assetsDir: f,
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
- console.warn(
181
- "SSG seems to be hanging after completion, forcing process to exit. Everything is likely fine."
182
- ), process.exit(0);
183
- }, 5e3).unref(), e.ssg !== null && setTimeout(() => {
184
- process.exit(0);
185
- }, 5e3).unref();
186
- }
187
- }
188
- }
189
- };
190
- }
191
- function F(e = {}) {
192
- const s = process?.env;
193
- return E({
194
- name: e.name || "node-server",
195
- origin: s?.ORIGIN ?? s?.URL ?? "https://yoursitename.qwik.dev",
196
- ssg: e.ssg,
197
- 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
+
6
+ function nodeServerAdapter(opts = {}) {
7
+ const env = process?.env;
8
+ return viteAdapter({
9
+ name: opts.name || "node-server",
10
+ origin: env?.ORIGIN ?? env?.URL ?? "https://yoursitename.qwik.dev",
11
+ ssg: opts.ssg,
12
+ cleanStaticGenerated: true,
198
13
  config() {
199
14
  return {
200
15
  ssr: {
201
16
  target: "node"
202
17
  },
203
18
  build: {
204
- ssr: !0
19
+ ssr: true
205
20
  },
206
- publicDir: !1
21
+ publicDir: false
207
22
  };
208
23
  }
209
24
  });
210
25
  }
211
- export {
212
- F as nodeServerAdapter
213
- };
26
+
27
+ export { nodeServerAdapter };
@@ -26,7 +26,7 @@ export declare interface AdapterSSGOptions extends Omit<SsgRenderOptions, 'outDi
26
26
  origin?: string;
27
27
  }
28
28
 
29
- declare interface BuildLayout {
29
+ declare interface BuiltLayout {
30
30
  filePath: string;
31
31
  dirPath: string;
32
32
  id: string;
@@ -34,7 +34,7 @@ declare interface BuildLayout {
34
34
  layoutName: string;
35
35
  }
36
36
 
37
- declare interface BuildRoute extends ParsedPathname {
37
+ declare interface BuiltRoute extends ParsedPathname {
38
38
  /** Unique id built from its relative file system path */
39
39
  id: string;
40
40
  /** Local file system path */
@@ -42,7 +42,7 @@ declare interface BuildRoute extends ParsedPathname {
42
42
  ext: string;
43
43
  /** URL Pathname */
44
44
  pathname: string;
45
- layouts: BuildLayout[];
45
+ layouts: BuiltLayout[];
46
46
  }
47
47
 
48
48
  /** @public */
@@ -98,7 +98,7 @@ declare interface ViteAdapterPluginOptions {
98
98
  clientPublicOutDir: string;
99
99
  serverOutDir: string;
100
100
  basePathname: string;
101
- routes: BuildRoute[];
101
+ routes: BuiltRoute[];
102
102
  assetsDir?: string;
103
103
  warn: (message: string) => void;
104
104
  error: (message: string) => void;