@qwik.dev/router 2.0.0-beta.11 → 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 -205
  3. package/lib/adapters/bun-server/vite/index.cjs +27 -5
  4. package/lib/adapters/bun-server/vite/index.mjs +14 -200
  5. package/lib/adapters/cloud-run/vite/index.cjs +24 -5
  6. package/lib/adapters/cloud-run/vite/index.mjs +13 -199
  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 -202
  11. package/lib/adapters/netlify-edge/vite/index.cjs +88 -6
  12. package/lib/adapters/netlify-edge/vite/index.mjs +56 -244
  13. package/lib/adapters/node-server/vite/index.cjs +27 -5
  14. package/lib/adapters/node-server/vite/index.mjs +14 -200
  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 -147
  18. package/lib/adapters/ssg/vite/index.cjs +19 -5
  19. package/lib/adapters/ssg/vite/index.mjs +11 -197
  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 -233
  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 +530 -994
  39. package/lib/index.qwik.mjs +499 -965
  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 +1223 -882
  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 +6 -6
  67. package/lib/vite/index.mjs +1592 -1223
  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-Bg_9YkM5.js +0 -22
  88. package/lib/adapters/cloudflare-pages/vite/index-C1aDmh1S.cjs +0 -1
  89. package/lib/adapters/cloudflare-pages/vite/index-CHT9Y93A.js +0 -254
  90. package/lib/adapters/cloudflare-pages/vite/index-Ck7KvpK1.cjs +0 -11
  91. package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +0 -6
  92. package/lib/adapters/cloudflare-pages/vite/index-Cp1cjAds.js +0 -645
  93. package/lib/adapters/cloudflare-pages/vite/index-D9RL9dvJ.cjs +0 -5
  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,210 +1,24 @@
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 R(e, s, t, n, m) {
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(n.map(v)), g = [], c = async (a, l, u) => {
10
- if (u = v(u), h.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 w(f, u + l + "/") : S.isFile() && o.add(u + l);
24
- }, w = 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 w(e, t);
29
- const i = O(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 O(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 = q(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 w = 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, w);
54
- }, h = async (o) => {
55
- const g = await p.promises.readdir(o, { withFileTypes: !0 });
56
- for (const c of g)
57
- if (c.isDirectory())
58
- await h(y(o, c.name));
59
- else if (c.name.endsWith("js")) {
60
- const w = m(y(o, c.name)).finally(() => {
61
- n.delete(w);
62
- });
63
- n.add(w);
64
- }
65
- };
66
- await h(t), await Promise.all(n);
67
- };
68
- function E(e) {
69
- let s = null, t = null, n = null, m = null, h = 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" && (h = 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 && h && 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"), D = {
140
- maxWorkers: e.maxWorkers,
141
- basePathname: a,
142
- outDir: u,
143
- rootDir: S,
144
- ...e.ssg,
145
- origin: r,
146
- renderModulePath: m,
147
- qwikRouterConfigModulePath: h
148
- }, k = await P.generate(D);
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 R(
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({
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({
194
8
  name: "cloud-run",
195
- origin: s?.ORIGIN ?? s?.URL ?? "https://your-app-name.run.app",
196
- ssg: e.ssg,
197
- cleanStaticGenerated: !0,
9
+ origin: env?.ORIGIN ?? env?.URL ?? "https://your-app-name.run.app",
10
+ ssg: opts.ssg,
11
+ cleanStaticGenerated: true,
198
12
  config() {
199
13
  return {
200
14
  build: {
201
- ssr: !0
15
+ ssr: true
202
16
  },
203
- publicDir: !1
17
+ publicDir: false
204
18
  };
205
19
  }
206
20
  });
207
21
  }
208
22
  export {
209
- F as cloudRunAdapter
23
+ cloudRunAdapter
210
24
  };
@@ -1 +1,65 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("node:fs");require("node:path");const e=require("./index-D9RL9dvJ.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-CHT9Y93A.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"),b=require("@qwik.dev/router/middleware/request-handler"),p=require("node:fs");async function D(e,s,t,n,m){t&&!t.endsWith("/")&&(t+="/");const w=new Set([t+"/"+(globalThis.__QWIK_BUILD_DIR__||"build")+"/",t+"/"+(globalThis.__QWIK_ASSETS_DIR__||"assets")+"/"]),o=new Set(n.map(_)),g=[],c=async(a,l,u)=>{if(u=_(u),w.has(u))return;const f=y.join(a,l);if(l==="index.html"||l==="q-data.json"){!o.has(u)&&m&&await p.promises.unlink(f);return}if(l==="404.html"){const r=await p.promises.readFile(f,"utf-8");g.push([u,r]);return}const k=await p.promises.stat(f);k.isDirectory()?await h(f,u+l+"/"):k.isFile()&&o.add(u+l)},h=async(a,l)=>{const u=await p.promises.readdir(a);await Promise.all(u.map(f=>c(a,f,l)))};p.existsSync(e)&&await h(e,t);const i=O(t,g),d=R(o);await T(d,i,s)}function _(e){return e.endsWith("/")?e:e+"/"}function O(e,s){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)){const t=b.getErrorHtml(404,"Resource Not Found");s.push([e,t])}return JSON.stringify(s,null,2).slice(1,-1)}function R(e){return JSON.stringify(Array.from(new Set(e)).sort()).slice(1,-1)}const T=async(e,s,t)=>{const n=new Set,m=async o=>{const g=await p.promises.readFile(o,"utf-8");let c=!1;const h=g.replace(/(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,(i,d,a)=>(c=!0,a==="STATIC_PATHS"?e:s));c&&await p.promises.writeFile(o,h)},w=async o=>{const g=await p.promises.readdir(o,{withFileTypes:!0});for(const c of g)if(c.isDirectory())await w(y.join(o,c.name));else if(c.name.endsWith("js")){const h=m(y.join(o,c.name)).finally(()=>{n.delete(h)});n.add(h)}};await w(t),await Promise.all(n)};function E(e){let s=null,t=null,n=null,m=null,w=null,o=!1,g;const c=[];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,g=i.command,o){if(s=i.plugins.find(d=>d.name==="vite-plugin-qwik-router"),!s)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(n=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();g==="build"&&n&&i&&(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){c.length=0;for(const a in d){const l=d[a];l.type==="chunk"&&l.isEntry&&(c.push(a),l.name==="entry.ssr"?m=y.join(n,a):l.name==="@qwik-router-config"&&(w=y.join(n,a)))}}},closeBundle:{sequential:!0,async handler(){if(o&&n&&s?.api&&t?.api){const i=e.staticPaths||[],d=s.api.getRoutes(),a=s.api.getBasePathname(),l=t.api.getClientOutDir(),u=t.api.getClientPublicOutDir(),f=t.api.getAssetsDir(),k=t.api.getRootDir()??void 0;if(e.ssg!==null&&m&&w&&l&&u){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 q=await Promise.resolve().then(()=>require("./index-BqUeglYs.cjs")),P={maxWorkers:e.maxWorkers,basePathname:a,outDir:u,rootDir:k,...e.ssg,origin:r,renderModulePath:m,qwikRouterConfigModulePath:w},S=await q.generate(P);if(S.errors>0){const v=new Error(`Error while running SSG from "${e.name}" adapter. At least one path failed to render.`);v.stack=void 0,this.error(v)}i.push(...S.staticPaths)}await D(u,n,f?y.join(a,f):a,i,!!e.cleanStaticGenerated),typeof e.generate=="function"&&await e.generate({outputEntries:c,serverOutDir:n,clientOutDir:l,clientPublicOutDir:u,basePathname:a,routes:d,assetsDir:f,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(()=>{console.warn("SSG seems to be hanging after completion, forcing process to exit. Everything is likely fine."),process.exit(0)},5e3).unref(),e.ssg!==null&&setTimeout(()=>{process.exit(0)},5e3).unref()}}}}}function A(e={}){const s=process?.env;return E({name:e.name||"deno-server",origin:s?.ORIGIN??s?.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=A;
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,200 +1,14 @@
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 b(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 k = await p.promises.stat(f);
23
- k.isDirectory() ? await h(f, u + l + "/") : k.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 = O(t, g), d = R(o);
30
- await T(d, i, s);
31
- }
32
- function v(e) {
33
- return e.endsWith("/") ? e : e + "/";
34
- }
35
- function O(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 R(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(), k = 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: k,
144
- ...e.ssg,
145
- origin: r,
146
- renderModulePath: m,
147
- qwikRouterConfigModulePath: w
148
- }, S = await P.generate(q);
149
- if (S.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(...S.staticPaths);
156
- }
157
- await b(
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 C(e = {}) {
192
- const s = process?.env;
193
- return E({
194
- name: e.name || "deno-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
+ 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,
198
12
  config() {
199
13
  return {
200
14
  resolve: {
@@ -202,24 +16,24 @@ function C(e = {}) {
202
16
  },
203
17
  ssr: {
204
18
  target: "webworker",
205
- noExternal: !0,
19
+ noExternal: true,
206
20
  external: ["node:async_hooks"]
207
21
  },
208
22
  build: {
209
- ssr: !0,
23
+ ssr: true,
210
24
  target: "esnext",
211
25
  rollupOptions: {
212
26
  output: {
213
27
  format: "es",
214
- hoistTransitiveImports: !1
28
+ hoistTransitiveImports: false
215
29
  }
216
30
  }
217
31
  },
218
- publicDir: !1
32
+ publicDir: false
219
33
  };
220
34
  }
221
35
  });
222
36
  }
223
37
  export {
224
- C as denoServerAdapter
38
+ denoServerAdapter
225
39
  };