@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,6 +0,0 @@
1
- async function n(e) {
2
- console.error("Deno not implemented"), Deno.exit(1);
3
- }
4
- export {
5
- n as generate
6
- };
@@ -1,22 +0,0 @@
1
- async function i(t) {
2
- return await (await r()).generate(t);
3
- }
4
- function r() {
5
- if (n())
6
- return import("./index-ClHGw5z1.js");
7
- if (e() || o())
8
- return import("./index-CBIchDYq.js");
9
- throw new Error("Unsupported platform");
10
- }
11
- function n() {
12
- return typeof Deno < "u";
13
- }
14
- function e() {
15
- return typeof Bun < "u";
16
- }
17
- function o() {
18
- return !e() && !n() && typeof process < "u" && !!process.versions?.node;
19
- }
20
- export {
21
- i as generate
22
- };
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("node:fs"),q=require("node:path"),X=require("node:os"),_=require("node:worker_threads"),Y=require("@qwik.dev/core/internal"),U=require("@qwik.dev/router/middleware/request-handler"),Z=require("node:stream/web"),C=require("node:url"),x=require("kleur/colors"),ee=require("vite");var N=typeof document<"u"?document.currentScript:null;function j(e){return e<1?e.toFixed(2)+" ms":e<1e3?e.toFixed(1)+" ms":e<6e4?(e/1e3).toFixed(1)+" s":(e/6e4).toFixed(1)+" m"}function te(e,t,s){let r=e;if(t&&s)for(const i of t){const o=`[${i}]`,n=`[...${i}]`,c=s[i];r=r.replace(n,c),r=r.replace(o,c)}return r}function A(e){return re(q.normalize(e))}function re(e){const t=/^\\\\\?\\/.test(e),s=/[^\u0000-\u0080]+/.test(e);return t||s||(e=e.replace(/\\/g,"/"),e.endsWith("/")&&(e=e.slice(0,e.length-1))),e}async function ne(e){delete globalThis.__qwik;const t=e.getOptions(),s=new Set,r={...t,render:(await import(C.pathToFileURL(t.renderModulePath).href)).default,qwikRouterConfig:(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default};e.createWorkerProcess(async i=>{switch(i.type){case"render":return new Promise(o=>{H(e,r,i,s,o)});case"close":{const o=Array.from(s);return s.clear(),await Promise.all(o),{type:"close"}}}})}async function se(e){delete globalThis.__qwik;const t=e.getOptions(),s=new Set,r={...t,render:(await import(C.pathToFileURL(t.renderModulePath).href)).default,qwikRouterConfig:(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default};return i=>new Promise(o=>{H(e,r,i,s,o)})}async function H(e,t,s,r,i){const o=new URL(s.pathname,t.origin),n={type:"render",pathname:s.pathname,url:o.href,ok:!1,error:null,filePath:null,contentType:null,resourceType:null};try{let c=null,l;const g=new Promise(u=>{l=u}),P=new Request(o),y={mode:"static",locale:void 0,url:o,request:P,env:{get(u){return e.getEnv(u)}},platform:e.platform,getClientConn:()=>({}),getWritableStream:(u,v,$,p,W)=>{if(n.ok=u>=200&&u<300,!n.ok)return ie;n.contentType=(v.get("Content-Type")||"").toLowerCase();const h=n.contentType.includes("text/html"),w=o.pathname.endsWith("/404.html"),T=e.getRouteFilePath(o.pathname,h);w?n.resourceType="404":h&&(n.resourceType="page");const b=h?t.emitHtml!==!1:!0,m=h&&t.emitData!==!1;return new Z.WritableStream({async start(){try{(b||m)&&await e.ensureDir(T),b&&(c=e.createWriteStream(T),c.on("error",a=>{console.error(a),c=null,n.error={message:a.message,stack:a.stack}}))}catch(a){c=null,n.error={message:String(a),stack:a.stack||""}}},write(a){try{c&&c.write(Buffer.from(a.buffer))}catch(d){c=null,n.error={message:String(d),stack:d.stack||""}}},async close(){const a=[];try{if(m){const d=W.sharedMap.get(U.RequestEvShareQData);if(d&&!w){const k=e.getDataFilePath(o.pathname),R=e.createWriteStream(k);R.on("error",S=>{console.error(S),n.error={message:S.message,stack:S.stack}});const F=await Y._serialize([d]);R.write(F),a.push(new Promise(S=>{n.filePath=T,R.end(S)}))}}c&&a.push(new Promise(d=>{n.filePath=T,c.end(d)}).finally(l)),a.length>0&&await Promise.all(a)}catch(d){c=null,n.error={message:String(d),stack:d.stack||""}}}})}},f=U.requestHandler(y,t).then(u=>{if(u!=null)return u.completion.then(v=>c?g.then(()=>v):v)}).then(u=>{u!==void 0&&(u instanceof Error?n.error={message:u.message,stack:u.stack}:n.error={message:String(u),stack:void 0})}).finally(()=>{r.delete(f),i(n)});r.add(f)}catch(c){c instanceof Error?n.error={message:c.message,stack:c.stack}:n.error={message:String(c),stack:void 0},i(n)}}const oe={closed:Promise.resolve(void 0),ready:Promise.resolve(void 0),desiredSize:0,async close(){},async abort(){},async write(){},releaseLock(){}},ie={get locked(){return!1},set locked(e){},async abort(){},async close(){},getWriter(){return oe}};async function ae(e,t){const s=[],r=[];let i=null;t={...t};let o=t.outDir;if(typeof o!="string")throw new Error('Missing "outDir" option');if(!q.isAbsolute(o))throw new Error(`"outDir" must be an absolute file path, received: ${o}`);o=A(o);let n=X.cpus().length;typeof t.maxWorkers=="number"&&(n=Math.max(1,Math.min(t.maxWorkers,n)));let c=20;typeof t.maxTasksPerWorker=="number"&&(c=Math.max(1,Math.min(t.maxTasksPerWorker,50)));let l=t.sitemapOutFile;l!==null&&(typeof l!="string"&&(l="sitemap.xml"),q.isAbsolute(l)||(l=q.resolve(o,l)));const g=await se(e),P=p=>{if(p===0){const m={activeTasks:0,totalTasks:0,render:async M=>{m.activeTasks++,m.totalTasks++;const a=await g(M);return m.activeTasks--,a},terminate:async()=>{}};return m}let W=null;const h=new Map;let w;typeof __filename=="string"?w=__filename:w=typeof document>"u"?require("url").pathToFileURL(__filename).href:N&&N.tagName.toUpperCase()==="SCRIPT"&&N.src||new URL("index-DTIOTwZo.cjs",document.baseURI).href,typeof w=="string"&&w.startsWith("file://")&&(w=new URL(w));const T=new _.Worker(w,{workerData:t}),b={activeTasks:0,totalTasks:0,render:m=>new Promise((M,a)=>{try{b.activeTasks++,b.totalTasks++,h.set(m.pathname,M),T.postMessage(m)}catch(d){b.activeTasks--,h.delete(m.pathname),a(d)}}),terminate:async()=>{h.clear();const m={type:"close"};await new Promise(M=>{W=M,T.postMessage(m)}),await T.terminate()}};return T.on("message",m=>{switch(m.type){case"render":{const M=h.get(m.pathname);M&&(h.delete(m.pathname),b.activeTasks--,M(m));break}case"close":{W&&(W(),W=null);break}}}),T.on("error",m=>{console.error("worker error",m)}),T.on("exit",m=>{m!==1&&console.error(`worker exit ${m}`)}),b},y=()=>s.sort(ce)[0],f=()=>y().activeTasks<c,u=async p=>{const h=await y().render(p);if(l&&h.ok&&h.resourceType==="page"&&(r.push(`<url><loc>${h.url}</loc></url>`),r.length>50)){i&&await i;const w=r.join(`
2
- `)+`
3
- `;r.length=0,i=E.promises.appendFile(l,w)}return h},v=async()=>{const p=[];l&&(i&&await i,r.push("</urlset>"),p.push(E.promises.appendFile(l,r.join(`
4
- `))),r.length=0);for(const W of s)try{p.push(W.terminate())}catch(h){console.error(h)}s.length=0,await Promise.all(p)};l&&(await B(l),await E.promises.writeFile(l,`<?xml version="1.0" encoding="UTF-8"?>
5
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
6
- `));for(let p=0;p<n;p++)s.push(P(p));return{hasAvailableWorker:f,render:u,close:v}}function ce(e,t){return e.activeTasks<t.activeTasks?-1:e.activeTasks>t.activeTasks?1:e.totalTasks<t.totalTasks?-1:1}async function le(e){_.parentPort?.on("message",async t=>{_.parentPort?.postMessage(await e(t))})}async function Q(e){const t=f=>E.createWriteStream(f,{flags:"w"}),i=()=>{const f=process.hrtime();return()=>{const u=process.hrtime(f);return(u[0]*1e9+u[1])*1e-6}},o=async()=>({debug:e.log==="debug"?console.debug.bind(console):()=>{},error:console.error.bind(console),info:console.info.bind(console)}),n=A(e.outDir),l=(e.basePathname||"/").length,y={createMainProcess:null,createWorkerProcess:le,createLogger:o,getOptions:()=>e,ensureDir:B,createWriteStream:t,createTimer:i,access:ue,getRouteFilePath:(f,u)=>(f=f.slice(l),u?f.endsWith(".html")||(f.endsWith("/")?f+="index.html":f+="/index.html"):f.endsWith("/")&&(f=f.slice(0,-1)),q.join(n,f)),getDataFilePath:f=>(f=f.slice(l),f.endsWith("/")?f+="q-data.json":f+="/q-data.json",q.join(n,f)),getEnv:f=>process.env[f],platform:{static:!0,node:process.versions.node}};return y.createMainProcess=()=>ae(y,e),y}const B=async e=>{await E.promises.mkdir(q.dirname(e),{recursive:!0})},ue=async e=>{try{return await E.promises.access(e),!0}catch{return!1}},fe=e=>{const t=e.stack;if(typeof t=="string"){const s=t.split(`
7
- `).filter(r=>!r.includes("/node_modules/")&&!r.includes("(node:"));for(let r=1;r<s.length;r++){const i=s[r].replace("file:///","/");if(/^\s+at/.test(i)){const o=i.indexOf("/"),n=i.lastIndexOf(")",o);if(o>0){const l=i.slice(o,n).split(":"),g=G(l[l.length-1]),P=G(l[l.length-2]);return typeof g=="number"&&typeof P=="number"?(l.length-=2,{file:l.join(":"),line:P,column:g}):typeof g=="number"?(l.length-=1,{file:l.join(":"),line:g,column:void 0}):{file:l.join(":"),line:void 0,column:void 0}}}}}},G=e=>{try{return parseInt(e,10)}catch{return}},V=/\r?\n/,z=2;function de(e,t){if(typeof t=="number")return t;if(t.lo!=null)return t.lo;const s=e.split(V),{line:r,column:i}=t;let o=0;for(let n=0;n<r-1&&n<s.length;n++)o+=s[n].length+1;return o+i}function me(e,t=0,s){t=de(e,t),s=s||t;const r=e.split(V);let i=0;const o=[];for(let n=0;n<r.length;n++)if(i+=r[n].length+1,i>=t){for(let c=n-z;c<=n+z||s>i;c++){if(c<0||c>=r.length)continue;const l=c+1;o.push(`${l}${" ".repeat(Math.max(3-String(l).length,0))}| ${r[c]}`);const g=r[c].length;if(c===n){const P=Math.max(t-(i-g)+1,0),y=Math.max(1,s>i?g-P:s-t);o.push(" | "+" ".repeat(P)+"^".repeat(y))}else if(c>n){if(s>i){const P=Math.max(Math.min(s-i,g),1);o.push(" | "+"^".repeat(P))}i+=g+1}}break}return o.join(`
8
- `)}function he(e){if(e instanceof Error){const t=e;let s=t.loc;if(!t.frame&&!t.plugin&&(s||(s=fe(t)),s&&(t.loc=s,s.file))){t.id=A(t.loc.file);try{const r=E.readFileSync(t.loc.file,"utf-8");t.frame=me(r,t.loc)}catch{}}}return e}function ge(e){const t=[];let s=0;for(;s<e.length;){const r=e.indexOf("[",s);if(r!==-1){const i=e.indexOf("]",r),o=e.slice(r+1,i);t.push(o.startsWith("...")?o.substring(3):o),s=i+1}else s=e.length}return t}var K=(e=>(e[e.RouteName=0]="RouteName",e[e.Loaders=1]="Loaders",e[e.OriginalPathname=2]="OriginalPathname",e[e.RouteBundleNames=3]="RouteBundleNames",e))(K||{});async function we(e,t,s){if(t.emit404Pages!==!1){const i=(t.basePathname||"/")+"404.html";if(!s.some(n=>n[K.OriginalPathname]===i)){const n=e.getRouteFilePath(i,!0),c=U.getErrorHtml(404,"Resource Not Found");return await e.ensureDir(n),new Promise(l=>{const g=e.createWriteStream(n);g.write(c),g.end(l)})}}}function pe(e,t,s){const r=I(t),i=I(s);return o=>{if(o.endsWith("404.html"))return!0;e!=="/"&&(o=o.slice(e.length-1));for(const n of i)if(n.test(o))return!1;for(const n of r)if(n.test(o))return!0;return!1}}function I(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(ke):[]}function ke(e){let t;return e==="/"||e==="/*"?t=e:e.endsWith("/*")?t=`${e.substring(0,e.length-2)}(/*)?`:e.endsWith("/")?t=`${e.substring(0,e.length-1)}(/)?`:e.endsWith("*")?t=e:t=`${e}(/)?`,t=`^${t.replace(/\*/g,".*")}$`,new RegExp(t)}async function Pe(e){const t=e.getOptions();ye(t);const s=await e.createMainProcess(),r=await e.createLogger();r.info(`
9
- `+x.bold(x.green("Starting Qwik Router SSG...")));const i=(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default,o=[],n=new Set,c=i.routes||[],l=!!i.trailingSlash,g=pe(t.basePathname||"/",t.include,t.exclude);return new Promise((P,y)=>{try{const f=e.createTimer(),u={duration:0,rendered:0,errors:0,staticPaths:[]};let v=!1,$=!1;const p=async()=>{const a=s.close();if(await we(e,t,c),u.duration=f(),u.errors===0){r.info(`
10
- ${x.green("SSG results")}`),u.rendered>0&&r.info(`- Generated: ${x.dim(`${u.rendered} page${u.rendered===1?"":"s"}`)}`),r.info(`- Duration: ${x.dim(j(u.duration))}`);const d=u.rendered+u.errors;d>0&&r.info(`- Average: ${x.dim(j(u.duration/d)+" per page")}`),r.info("")}a.then(()=>{setTimeout(()=>P(u))}).catch(y)},W=()=>{for(;!v&&s.hasAvailableWorker()&&o.length>0;){const a=o.shift();a&&T(a)}!v&&$&&o.length===0&&n.size===0&&(v=!0,p())};let h=!1;const w=()=>{h||(h=!0,setTimeout(()=>{h=!1,W()}))},T=async a=>{try{n.add(a.pathname);const d=await s.render({type:"render",...a});if(n.delete(a.pathname),d.error){const k=new Error(d.error.message);k.stack=d.error.stack,r.error(`
11
- ${x.bold(x.red(`!!! ${d.pathname}: Error during SSG`))}`),r.error(x.red(k.message)),r.error(` Pathname: ${x.magenta(a.pathname)}`),Object.assign(he(k),{plugin:"qwik-ssg"}),r.error(ee.buildErrorMessage(k)),u.errors++}if(d.filePath!=null){u.rendered++,u.staticPaths.push(d.pathname);const k=t.rootDir??t.outDir,R=q.relative(k,d.filePath),F=R.lastIndexOf("/");r.info(`${x.dim(R.slice(0,F+1))}${R.slice(F+1)}`)}w()}catch(d){v=!0,y(d)}},b=(a,d)=>{if(a){if(a=new URL(a,"https://qwik.dev").pathname,a!==t.basePathname)if(l){if(!a.endsWith("/")){const k=a.split("/");k[k.length-1].includes(".")||(a+="/")}}else a.endsWith("/")&&(a=a.slice(0,a.length-1));g(a)&&!o.some(k=>k.pathname===a)&&(o.push({pathname:a,params:d}),w())}},m=async a=>{const[d,k,R]=a,F=await Promise.all(k.map(O=>O())),S=F[F.length-1],L=ge(d);if(S&&(S.default||S.onRequest||S.onGet))if(Array.isArray(L)&&L.length>0){if(typeof S.onStaticGenerate=="function"&&L.length>0){const O=await S.onStaticGenerate({env:{get(D){return e.getEnv(D)}}});if(Array.isArray(O.params))for(const D of O.params){const J=te(R,L,D);b(J,D)}}}else b(R,void 0)};(async()=>{await Promise.all(c.map(m)),$=!0,w()})()}catch(f){y(f)}})}function ye(e){if(!e.qwikRouterConfigModulePath)if(e.qwikCityPlanModulePath)console.warn("`qwikCityPlanModulePath` is deprecated. Use `qwikRouterConfigModulePath` instead.");else throw new Error('Missing "qwikRouterConfigModulePath" option');if(!e.renderModulePath)throw new Error('Missing "renderModulePath" option');let t=e.origin;if(typeof t!="string"||t.trim().length===0)throw new Error('Missing "origin" option');if(t=t.trim(),!/:\/\//.test(t)||t.startsWith("://"))throw new Error(`"origin" must start with a valid protocol, such as "https://" or "http://", received "${t}"`);try{new URL(t)}catch(s){throw new Error(`Invalid "origin": ${s}`)}}async function Te(e){if(_.isMainThread){const t=await Q(e);return await Pe(t)}throw new Error("generate() cannot be called from a worker thread")}!_.isMainThread&&_.workerData&&(async()=>{const e=await Q(_.workerData);await ne(e)})();exports.generate=Te;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});async function e(t){console.error("Deno not implemented"),Deno.exit(1)}exports.generate=e;
@@ -1,22 +0,0 @@
1
- async function i(t) {
2
- return await (await r()).generate(t);
3
- }
4
- function r() {
5
- if (n())
6
- return import("./index-ClHGw5z1.js");
7
- if (e() || o())
8
- return import("./index-Cp1cjAds.js");
9
- throw new Error("Unsupported platform");
10
- }
11
- function n() {
12
- return typeof Deno < "u";
13
- }
14
- function e() {
15
- return typeof Bun < "u";
16
- }
17
- function o() {
18
- return !e() && !n() && typeof process < "u" && !!process.versions?.node;
19
- }
20
- export {
21
- i as generate
22
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});async function t(r){return await(await o()).generate(r)}function o(){if(e())return Promise.resolve().then(()=>require("./index-vQuPcef3.cjs"));if(n()||s())return Promise.resolve().then(()=>require("./index-Ck7KvpK1.cjs"));throw new Error("Unsupported platform")}function e(){return typeof Deno<"u"}function n(){return typeof Bun<"u"}function s(){return!n()&&!e()&&typeof process<"u"&&!!process.versions?.node}exports.generate=t;
@@ -1,254 +0,0 @@
1
- import d from "node:fs";
2
- import { normalize as b, join as p, relative as E } from "node:path";
3
- import { getErrorHtml as O } from "@qwik.dev/router/middleware/request-handler";
4
- function J(e) {
5
- return v(b(e));
6
- }
7
- function v(e) {
8
- const n = /^\\\\\?\\/.test(e), t = /[^\u0000-\u0080]+/.test(e);
9
- return n || t || (e = e.replace(/\\/g, "/"), e.endsWith("/") && (e = e.slice(0, e.length - 1))), e;
10
- }
11
- async function D(e, n, t, r, g) {
12
- t && !t.endsWith("/") && (t += "/");
13
- const h = /* @__PURE__ */ new Set([
14
- t + "/" + (globalThis.__QWIK_BUILD_DIR__ || "build") + "/",
15
- t + "/" + (globalThis.__QWIK_ASSETS_DIR__ || "assets") + "/"
16
- ]), o = new Set(r.map(P)), w = [], a = async (l, u, c) => {
17
- if (c = P(c), h.has(c))
18
- return;
19
- const m = p(l, u);
20
- if (u === "index.html" || u === "q-data.json") {
21
- !o.has(c) && g && await d.promises.unlink(m);
22
- return;
23
- }
24
- if (u === "404.html") {
25
- const s = await d.promises.readFile(m, "utf-8");
26
- w.push([c, s]);
27
- return;
28
- }
29
- const k = await d.promises.stat(m);
30
- k.isDirectory() ? await y(m, c + u + "/") : k.isFile() && o.add(c + u);
31
- }, y = async (l, u) => {
32
- const c = await d.promises.readdir(l);
33
- await Promise.all(c.map((m) => a(l, m, u)));
34
- };
35
- d.existsSync(e) && await y(e, t);
36
- const i = T(t, w), f = x(o);
37
- await A(f, i, n);
38
- }
39
- function P(e) {
40
- return e.endsWith("/") ? e : e + "/";
41
- }
42
- function T(e, n) {
43
- if (n.sort((t, r) => t[0].length > r[0].length ? -1 : t[0].length < r[0].length ? 1 : t[0] < r[0] ? -1 : t[0] > r[0] ? 1 : 0), !n.some((t) => t[0] === e)) {
44
- const t = O(404, "Resource Not Found");
45
- n.push([e, t]);
46
- }
47
- return JSON.stringify(n, null, 2).slice(1, -1);
48
- }
49
- function x(e) {
50
- return JSON.stringify(Array.from(new Set(e)).sort()).slice(1, -1);
51
- }
52
- const A = async (e, n, t) => {
53
- const r = /* @__PURE__ */ new Set(), g = async (o) => {
54
- const w = await d.promises.readFile(o, "utf-8");
55
- let a = !1;
56
- const y = w.replace(
57
- /(['"])__QWIK_ROUTER_(STATIC_PATHS|NOT_FOUND)_ARRAY__\1/g,
58
- (i, f, l) => (a = !0, l === "STATIC_PATHS" ? e : n)
59
- );
60
- a && await d.promises.writeFile(o, y);
61
- }, h = async (o) => {
62
- const w = await d.promises.readdir(o, { withFileTypes: !0 });
63
- for (const a of w)
64
- if (a.isDirectory())
65
- await h(p(o, a.name));
66
- else if (a.name.endsWith("js")) {
67
- const y = g(p(o, a.name)).finally(() => {
68
- r.delete(y);
69
- });
70
- r.add(y);
71
- }
72
- };
73
- await h(t), await Promise.all(r);
74
- };
75
- function F(e) {
76
- let n = null, t = null, r = null, g = null, h = null, o = !1, w;
77
- const a = [];
78
- return {
79
- name: `vite-plugin-qwik-router-ssg-${e.name}`,
80
- enforce: "post",
81
- apply: "build",
82
- config(i) {
83
- return typeof e.config == "function" && (i = e.config(i)), i.define = {
84
- "process.env.NODE_ENV": JSON.stringify("production"),
85
- ...i.define
86
- }, i;
87
- },
88
- configResolved(i) {
89
- if (o = !!i.build.ssr, w = i.command, o) {
90
- if (n = i.plugins.find(
91
- (f) => f.name === "vite-plugin-qwik-router"
92
- ), !n)
93
- throw new Error("Missing vite-plugin-qwik-router");
94
- if (t = i.plugins.find(
95
- (f) => f.name === "vite-plugin-qwik"
96
- ), !t)
97
- throw new Error("Missing vite-plugin-qwik");
98
- if (r = i.build.outDir, i.build?.ssr !== !0)
99
- throw new Error(
100
- `"build.ssr" must be set to "true" in order to use the "${e.name}" adapter.`
101
- );
102
- if (!i.build?.rollupOptions?.input)
103
- throw new Error(
104
- `"build.rollupOptions.input" must be set in order to use the "${e.name}" adapter.`
105
- );
106
- }
107
- },
108
- buildStart() {
109
- if (o && e.ssg !== null) {
110
- const { srcDir: i } = t.api.getOptions();
111
- w === "build" && r && i && (this.emitFile({
112
- id: "@qwik-router-config",
113
- type: "chunk",
114
- fileName: "@qwik-router-config.js"
115
- }), this.emitFile({
116
- id: `${i}/entry.ssr`,
117
- type: "chunk",
118
- fileName: "entry.ssr.js"
119
- }));
120
- }
121
- },
122
- generateBundle(i, f) {
123
- if (o) {
124
- a.length = 0;
125
- for (const l in f) {
126
- const u = f[l];
127
- u.type === "chunk" && u.isEntry && (a.push(l), u.name === "entry.ssr" ? g = p(r, l) : u.name === "@qwik-router-config" && (h = p(r, l)));
128
- }
129
- }
130
- },
131
- closeBundle: {
132
- sequential: !0,
133
- async handler() {
134
- if (o && r && n?.api && t?.api) {
135
- const i = e.staticPaths || [], f = n.api.getRoutes(), l = n.api.getBasePathname(), u = t.api.getClientOutDir(), c = t.api.getClientPublicOutDir(), m = t.api.getAssetsDir(), k = t.api.getRootDir() ?? void 0;
136
- if (e.ssg !== null && g && h && u && c) {
137
- let s = e.ssg?.origin ?? e.origin;
138
- s || (s = "https://yoursite.qwik.dev"), s.length > 0 && !/:\/\//.test(s) && (s = `https://${s}`), s.startsWith("//") && (s = `https:${s}`);
139
- try {
140
- s = new URL(s).origin;
141
- } catch {
142
- this.warn(
143
- `Invalid "origin" option: "${s}". Using default origin: "https://yoursite.qwik.dev"`
144
- ), s = "https://yoursite.qwik.dev";
145
- }
146
- const R = await import("./index-Bg_9YkM5.js"), q = {
147
- maxWorkers: e.maxWorkers,
148
- basePathname: l,
149
- outDir: c,
150
- rootDir: k,
151
- ...e.ssg,
152
- origin: s,
153
- renderModulePath: g,
154
- qwikRouterConfigModulePath: h
155
- }, S = await R.generate(q);
156
- if (S.errors > 0) {
157
- const _ = new Error(
158
- `Error while running SSG from "${e.name}" adapter. At least one path failed to render.`
159
- );
160
- _.stack = void 0, this.error(_);
161
- }
162
- i.push(...S.staticPaths);
163
- }
164
- await D(
165
- c,
166
- r,
167
- m ? p(l, m) : l,
168
- i,
169
- !!e.cleanStaticGenerated
170
- ), typeof e.generate == "function" && await e.generate({
171
- outputEntries: a,
172
- serverOutDir: r,
173
- clientOutDir: u,
174
- clientPublicOutDir: c,
175
- basePathname: l,
176
- routes: f,
177
- assetsDir: m,
178
- warn: (s) => this.warn(s),
179
- error: (s) => this.error(s)
180
- }), this.warn(
181
- `
182
- ==============================================
183
- Note: Make sure that you are serving the built files with proper cache headers.
184
- See https://qwik.dev/docs/deployments/#cache-headers for more information.
185
- ==============================================`
186
- ), e.ssg !== null && setTimeout(() => {
187
- console.warn(
188
- "SSG seems to be hanging after completion, forcing process to exit. Everything is likely fine."
189
- ), process.exit(0);
190
- }, 5e3).unref(), e.ssg !== null && setTimeout(() => {
191
- process.exit(0);
192
- }, 5e3).unref();
193
- }
194
- }
195
- }
196
- };
197
- }
198
- function $(e = {}) {
199
- const n = process?.env;
200
- return F({
201
- name: "cloudflare-pages",
202
- origin: n?.CF_PAGES_URL ?? n?.ORIGIN ?? "https://your.cloudflare.pages.dev",
203
- ssg: e.ssg,
204
- staticPaths: e.staticPaths,
205
- cleanStaticGenerated: !0,
206
- config() {
207
- return {
208
- resolve: {
209
- conditions: ["webworker", "worker"]
210
- },
211
- ssr: {
212
- target: "webworker",
213
- noExternal: !0,
214
- external: ["node:async_hooks"]
215
- },
216
- build: {
217
- ssr: !0,
218
- rollupOptions: {
219
- output: {
220
- format: "es",
221
- hoistTransitiveImports: !1
222
- }
223
- }
224
- },
225
- publicDir: !1
226
- };
227
- },
228
- async generate({ clientOutDir: t, serverOutDir: r, basePathname: g, assetsDir: h }) {
229
- const o = p(t, "_routes.json");
230
- if (!d.existsSync(o) && e.functionRoutes !== !1) {
231
- let i = h ? p(g, h) : g;
232
- i.endsWith("/") || (i += "/");
233
- const f = {
234
- version: 1,
235
- include: [g + "*"],
236
- exclude: [i + "build/*", i + "assets/*"]
237
- };
238
- await d.promises.writeFile(o, JSON.stringify(f, void 0, 2));
239
- }
240
- const a = p(t, "_worker.js");
241
- if (!d.existsSync(a)) {
242
- const i = E(t, p(r, "entry.cloudflare-pages"));
243
- await d.promises.writeFile(
244
- a,
245
- `import { fetch } from "${v(i)}"; export default { fetch };`
246
- );
247
- }
248
- }
249
- });
250
- }
251
- export {
252
- $ as c,
253
- J as n
254
- };
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("node:fs"),E=require("node:path"),X=require("node:os"),_=require("node:worker_threads"),j=require("./index-D9RL9dvJ.cjs"),Y=require("@qwik.dev/core/internal"),U=require("@qwik.dev/router/middleware/request-handler"),Z=require("node:stream/web"),C=require("node:url"),x=require("kleur/colors"),ee=require("vite");var N=typeof document<"u"?document.currentScript:null;function A(e){return e<1?e.toFixed(2)+" ms":e<1e3?e.toFixed(1)+" ms":e<6e4?(e/1e3).toFixed(1)+" s":(e/6e4).toFixed(1)+" m"}function te(e,t,s){let r=e;if(t&&s)for(const i of t){const o=`[${i}]`,n=`[...${i}]`,c=s[i];r=r.replace(n,c),r=r.replace(o,c)}return r}async function re(e){delete globalThis.__qwik;const t=e.getOptions(),s=new Set,r={...t,render:(await import(C.pathToFileURL(t.renderModulePath).href)).default,qwikRouterConfig:(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default};e.createWorkerProcess(async i=>{switch(i.type){case"render":return new Promise(o=>{H(e,r,i,s,o)});case"close":{const o=Array.from(s);return s.clear(),await Promise.all(o),{type:"close"}}}})}async function ne(e){delete globalThis.__qwik;const t=e.getOptions(),s=new Set,r={...t,render:(await import(C.pathToFileURL(t.renderModulePath).href)).default,qwikRouterConfig:(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default};return i=>new Promise(o=>{H(e,r,i,s,o)})}async function H(e,t,s,r,i){const o=new URL(s.pathname,t.origin),n={type:"render",pathname:s.pathname,url:o.href,ok:!1,error:null,filePath:null,contentType:null,resourceType:null};try{let c=null,l;const g=new Promise(u=>{l=u}),P=new Request(o),y={mode:"static",locale:void 0,url:o,request:P,env:{get(u){return e.getEnv(u)}},platform:e.platform,getClientConn:()=>({}),getWritableStream:(u,v,$,w,W)=>{if(n.ok=u>=200&&u<300,!n.ok)return oe;n.contentType=(v.get("Content-Type")||"").toLowerCase();const m=n.contentType.includes("text/html"),p=o.pathname.endsWith("/404.html"),T=e.getRouteFilePath(o.pathname,m);p?n.resourceType="404":m&&(n.resourceType="page");const b=m?t.emitHtml!==!1:!0,h=m&&t.emitData!==!1;return new Z.WritableStream({async start(){try{(b||h)&&await e.ensureDir(T),b&&(c=e.createWriteStream(T),c.on("error",a=>{console.error(a),c=null,n.error={message:a.message,stack:a.stack}}))}catch(a){c=null,n.error={message:String(a),stack:a.stack||""}}},write(a){try{c&&c.write(Buffer.from(a.buffer))}catch(d){c=null,n.error={message:String(d),stack:d.stack||""}}},async close(){const a=[];try{if(h){const d=W.sharedMap.get(U.RequestEvShareQData);if(d&&!p){const k=e.getDataFilePath(o.pathname),R=e.createWriteStream(k);R.on("error",S=>{console.error(S),n.error={message:S.message,stack:S.stack}});const q=await Y._serialize([d]);R.write(q),a.push(new Promise(S=>{n.filePath=T,R.end(S)}))}}c&&a.push(new Promise(d=>{n.filePath=T,c.end(d)}).finally(l)),a.length>0&&await Promise.all(a)}catch(d){c=null,n.error={message:String(d),stack:d.stack||""}}}})}},f=U.requestHandler(y,t).then(u=>{if(u!=null)return u.completion.then(v=>c?g.then(()=>v):v)}).then(u=>{u!==void 0&&(u instanceof Error?n.error={message:u.message,stack:u.stack}:n.error={message:String(u),stack:void 0})}).finally(()=>{r.delete(f),i(n)});r.add(f)}catch(c){c instanceof Error?n.error={message:c.message,stack:c.stack}:n.error={message:String(c),stack:void 0},i(n)}}const se={closed:Promise.resolve(void 0),ready:Promise.resolve(void 0),desiredSize:0,async close(){},async abort(){},async write(){},releaseLock(){}},oe={get locked(){return!1},set locked(e){},async abort(){},async close(){},getWriter(){return se}};async function ie(e,t){const s=[],r=[];let i=null;t={...t};let o=t.outDir;if(typeof o!="string")throw new Error('Missing "outDir" option');if(!E.isAbsolute(o))throw new Error(`"outDir" must be an absolute file path, received: ${o}`);o=j.normalizePath(o);let n=X.cpus().length;typeof t.maxWorkers=="number"&&(n=Math.max(1,Math.min(t.maxWorkers,n)));let c=20;typeof t.maxTasksPerWorker=="number"&&(c=Math.max(1,Math.min(t.maxTasksPerWorker,50)));let l=t.sitemapOutFile;l!==null&&(typeof l!="string"&&(l="sitemap.xml"),E.isAbsolute(l)||(l=E.resolve(o,l)));const g=await ne(e),P=w=>{if(w===0){const h={activeTasks:0,totalTasks:0,render:async M=>{h.activeTasks++,h.totalTasks++;const a=await g(M);return h.activeTasks--,a},terminate:async()=>{}};return h}let W=null;const m=new Map;let p;typeof __filename=="string"?p=__filename:p=typeof document>"u"?require("url").pathToFileURL(__filename).href:N&&N.tagName.toUpperCase()==="SCRIPT"&&N.src||new URL("index-Ck7KvpK1.cjs",document.baseURI).href,typeof p=="string"&&p.startsWith("file://")&&(p=new URL(p));const T=new _.Worker(p,{workerData:t}),b={activeTasks:0,totalTasks:0,render:h=>new Promise((M,a)=>{try{b.activeTasks++,b.totalTasks++,m.set(h.pathname,M),T.postMessage(h)}catch(d){b.activeTasks--,m.delete(h.pathname),a(d)}}),terminate:async()=>{m.clear();const h={type:"close"};await new Promise(M=>{W=M,T.postMessage(h)}),await T.terminate()}};return T.on("message",h=>{switch(h.type){case"render":{const M=m.get(h.pathname);M&&(m.delete(h.pathname),b.activeTasks--,M(h));break}case"close":{W&&(W(),W=null);break}}}),T.on("error",h=>{console.error("worker error",h)}),T.on("exit",h=>{h!==1&&console.error(`worker exit ${h}`)}),b},y=()=>s.sort(ae)[0],f=()=>y().activeTasks<c,u=async w=>{const m=await y().render(w);if(l&&m.ok&&m.resourceType==="page"&&(r.push(`<url><loc>${m.url}</loc></url>`),r.length>50)){i&&await i;const p=r.join(`
2
- `)+`
3
- `;r.length=0,i=F.promises.appendFile(l,p)}return m},v=async()=>{const w=[];l&&(i&&await i,r.push("</urlset>"),w.push(F.promises.appendFile(l,r.join(`
4
- `))),r.length=0);for(const W of s)try{w.push(W.terminate())}catch(m){console.error(m)}s.length=0,await Promise.all(w)};l&&(await B(l),await F.promises.writeFile(l,`<?xml version="1.0" encoding="UTF-8"?>
5
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
6
- `));for(let w=0;w<n;w++)s.push(P(w));return{hasAvailableWorker:f,render:u,close:v}}function ae(e,t){return e.activeTasks<t.activeTasks?-1:e.activeTasks>t.activeTasks?1:e.totalTasks<t.totalTasks?-1:1}async function ce(e){_.parentPort?.on("message",async t=>{_.parentPort?.postMessage(await e(t))})}async function Q(e){const t=f=>F.createWriteStream(f,{flags:"w"}),i=()=>{const f=process.hrtime();return()=>{const u=process.hrtime(f);return(u[0]*1e9+u[1])*1e-6}},o=async()=>({debug:e.log==="debug"?console.debug.bind(console):()=>{},error:console.error.bind(console),info:console.info.bind(console)}),n=j.normalizePath(e.outDir),l=(e.basePathname||"/").length,y={createMainProcess:null,createWorkerProcess:ce,createLogger:o,getOptions:()=>e,ensureDir:B,createWriteStream:t,createTimer:i,access:le,getRouteFilePath:(f,u)=>(f=f.slice(l),u?f.endsWith(".html")||(f.endsWith("/")?f+="index.html":f+="/index.html"):f.endsWith("/")&&(f=f.slice(0,-1)),E.join(n,f)),getDataFilePath:f=>(f=f.slice(l),f.endsWith("/")?f+="q-data.json":f+="/q-data.json",E.join(n,f)),getEnv:f=>process.env[f],platform:{static:!0,node:process.versions.node}};return y.createMainProcess=()=>ie(y,e),y}const B=async e=>{await F.promises.mkdir(E.dirname(e),{recursive:!0})},le=async e=>{try{return await F.promises.access(e),!0}catch{return!1}},ue=e=>{const t=e.stack;if(typeof t=="string"){const s=t.split(`
7
- `).filter(r=>!r.includes("/node_modules/")&&!r.includes("(node:"));for(let r=1;r<s.length;r++){const i=s[r].replace("file:///","/");if(/^\s+at/.test(i)){const o=i.indexOf("/"),n=i.lastIndexOf(")",o);if(o>0){const l=i.slice(o,n).split(":"),g=G(l[l.length-1]),P=G(l[l.length-2]);return typeof g=="number"&&typeof P=="number"?(l.length-=2,{file:l.join(":"),line:P,column:g}):typeof g=="number"?(l.length-=1,{file:l.join(":"),line:g,column:void 0}):{file:l.join(":"),line:void 0,column:void 0}}}}}},G=e=>{try{return parseInt(e,10)}catch{return}},V=/\r?\n/,z=2;function fe(e,t){if(typeof t=="number")return t;if(t.lo!=null)return t.lo;const s=e.split(V),{line:r,column:i}=t;let o=0;for(let n=0;n<r-1&&n<s.length;n++)o+=s[n].length+1;return o+i}function de(e,t=0,s){t=fe(e,t),s=s||t;const r=e.split(V);let i=0;const o=[];for(let n=0;n<r.length;n++)if(i+=r[n].length+1,i>=t){for(let c=n-z;c<=n+z||s>i;c++){if(c<0||c>=r.length)continue;const l=c+1;o.push(`${l}${" ".repeat(Math.max(3-String(l).length,0))}| ${r[c]}`);const g=r[c].length;if(c===n){const P=Math.max(t-(i-g)+1,0),y=Math.max(1,s>i?g-P:s-t);o.push(" | "+" ".repeat(P)+"^".repeat(y))}else if(c>n){if(s>i){const P=Math.max(Math.min(s-i,g),1);o.push(" | "+"^".repeat(P))}i+=g+1}}break}return o.join(`
8
- `)}function he(e){if(e instanceof Error){const t=e;let s=t.loc;if(!t.frame&&!t.plugin&&(s||(s=ue(t)),s&&(t.loc=s,s.file))){t.id=j.normalizePath(t.loc.file);try{const r=F.readFileSync(t.loc.file,"utf-8");t.frame=de(r,t.loc)}catch{}}}return e}function me(e){const t=[];let s=0;for(;s<e.length;){const r=e.indexOf("[",s);if(r!==-1){const i=e.indexOf("]",r),o=e.slice(r+1,i);t.push(o.startsWith("...")?o.substring(3):o),s=i+1}else s=e.length}return t}var K=(e=>(e[e.RouteName=0]="RouteName",e[e.Loaders=1]="Loaders",e[e.OriginalPathname=2]="OriginalPathname",e[e.RouteBundleNames=3]="RouteBundleNames",e))(K||{});async function ge(e,t,s){if(t.emit404Pages!==!1){const i=(t.basePathname||"/")+"404.html";if(!s.some(n=>n[K.OriginalPathname]===i)){const n=e.getRouteFilePath(i,!0),c=U.getErrorHtml(404,"Resource Not Found");return await e.ensureDir(n),new Promise(l=>{const g=e.createWriteStream(n);g.write(c),g.end(l)})}}}function pe(e,t,s){const r=I(t),i=I(s);return o=>{if(o.endsWith("404.html"))return!0;e!=="/"&&(o=o.slice(e.length-1));for(const n of i)if(n.test(o))return!1;for(const n of r)if(n.test(o))return!0;return!1}}function I(e){return Array.isArray(e)?e.filter(t=>typeof t=="string").map(we):[]}function we(e){let t;return e==="/"||e==="/*"?t=e:e.endsWith("/*")?t=`${e.substring(0,e.length-2)}(/*)?`:e.endsWith("/")?t=`${e.substring(0,e.length-1)}(/)?`:e.endsWith("*")?t=e:t=`${e}(/)?`,t=`^${t.replace(/\*/g,".*")}$`,new RegExp(t)}async function ke(e){const t=e.getOptions();Pe(t);const s=await e.createMainProcess(),r=await e.createLogger();r.info(`
9
- `+x.bold(x.green("Starting Qwik Router SSG...")));const i=(await import(C.pathToFileURL(t.qwikRouterConfigModulePath).href)).default,o=[],n=new Set,c=i.routes||[],l=!!i.trailingSlash,g=pe(t.basePathname||"/",t.include,t.exclude);return new Promise((P,y)=>{try{const f=e.createTimer(),u={duration:0,rendered:0,errors:0,staticPaths:[]};let v=!1,$=!1;const w=async()=>{const a=s.close();if(await ge(e,t,c),u.duration=f(),u.errors===0){r.info(`
10
- ${x.green("SSG results")}`),u.rendered>0&&r.info(`- Generated: ${x.dim(`${u.rendered} page${u.rendered===1?"":"s"}`)}`),r.info(`- Duration: ${x.dim(A(u.duration))}`);const d=u.rendered+u.errors;d>0&&r.info(`- Average: ${x.dim(A(u.duration/d)+" per page")}`),r.info("")}a.then(()=>{setTimeout(()=>P(u))}).catch(y)},W=()=>{for(;!v&&s.hasAvailableWorker()&&o.length>0;){const a=o.shift();a&&T(a)}!v&&$&&o.length===0&&n.size===0&&(v=!0,w())};let m=!1;const p=()=>{m||(m=!0,setTimeout(()=>{m=!1,W()}))},T=async a=>{try{n.add(a.pathname);const d=await s.render({type:"render",...a});if(n.delete(a.pathname),d.error){const k=new Error(d.error.message);k.stack=d.error.stack,r.error(`
11
- ${x.bold(x.red(`!!! ${d.pathname}: Error during SSG`))}`),r.error(x.red(k.message)),r.error(` Pathname: ${x.magenta(a.pathname)}`),Object.assign(he(k),{plugin:"qwik-ssg"}),r.error(ee.buildErrorMessage(k)),u.errors++}if(d.filePath!=null){u.rendered++,u.staticPaths.push(d.pathname);const k=t.rootDir??t.outDir,R=E.relative(k,d.filePath),q=R.lastIndexOf("/");r.info(`${x.dim(R.slice(0,q+1))}${R.slice(q+1)}`)}p()}catch(d){v=!0,y(d)}},b=(a,d)=>{if(a){if(a=new URL(a,"https://qwik.dev").pathname,a!==t.basePathname)if(l){if(!a.endsWith("/")){const k=a.split("/");k[k.length-1].includes(".")||(a+="/")}}else a.endsWith("/")&&(a=a.slice(0,a.length-1));g(a)&&!o.some(k=>k.pathname===a)&&(o.push({pathname:a,params:d}),p())}},h=async a=>{const[d,k,R]=a,q=await Promise.all(k.map(O=>O())),S=q[q.length-1],L=me(d);if(S&&(S.default||S.onRequest||S.onGet))if(Array.isArray(L)&&L.length>0){if(typeof S.onStaticGenerate=="function"&&L.length>0){const O=await S.onStaticGenerate({env:{get(D){return e.getEnv(D)}}});if(Array.isArray(O.params))for(const D of O.params){const J=te(R,L,D);b(J,D)}}}else b(R,void 0)};(async()=>{await Promise.all(c.map(h)),$=!0,p()})()}catch(f){y(f)}})}function Pe(e){if(!e.qwikRouterConfigModulePath)if(e.qwikCityPlanModulePath)console.warn("`qwikCityPlanModulePath` is deprecated. Use `qwikRouterConfigModulePath` instead.");else throw new Error('Missing "qwikRouterConfigModulePath" option');if(!e.renderModulePath)throw new Error('Missing "renderModulePath" option');let t=e.origin;if(typeof t!="string"||t.trim().length===0)throw new Error('Missing "origin" option');if(t=t.trim(),!/:\/\//.test(t)||t.startsWith("://"))throw new Error(`"origin" must start with a valid protocol, such as "https://" or "http://", received "${t}"`);try{new URL(t)}catch(s){throw new Error(`Invalid "origin": ${s}`)}}async function ye(e){if(_.isMainThread){const t=await Q(e);return await ke(t)}throw new Error("generate() cannot be called from a worker thread")}!_.isMainThread&&_.workerData&&(async()=>{const e=await Q(_.workerData);await re(e)})();exports.generate=ye;
@@ -1,6 +0,0 @@
1
- async function n(e) {
2
- console.error("Deno not implemented"), Deno.exit(1);
3
- }
4
- export {
5
- n as generate
6
- };