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