@qwik.dev/router 2.0.0-beta.1 → 2.0.0-beta.10

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 (149) hide show
  1. package/adapters/static/vite.d.ts +1 -1
  2. package/lib/adapters/azure-swa/vite/index-BqUeglYs.cjs +1 -0
  3. package/lib/adapters/azure-swa/vite/index-CBIchDYq.js +651 -0
  4. package/lib/adapters/azure-swa/vite/index-ClHGw5z1.js +6 -0
  5. package/lib/adapters/azure-swa/vite/index-CrwlB95_.js +22 -0
  6. package/lib/adapters/azure-swa/vite/index-DTIOTwZo.cjs +11 -0
  7. package/lib/adapters/azure-swa/vite/index-vQuPcef3.cjs +1 -0
  8. package/lib/adapters/azure-swa/vite/index.cjs +5 -96
  9. package/lib/adapters/azure-swa/vite/index.d.ts +2 -2
  10. package/lib/adapters/azure-swa/vite/index.mjs +201 -26
  11. package/lib/adapters/bun-server/vite/index-BqUeglYs.cjs +1 -0
  12. package/lib/adapters/bun-server/vite/index-CBIchDYq.js +651 -0
  13. package/lib/adapters/bun-server/vite/index-ClHGw5z1.js +6 -0
  14. package/lib/adapters/bun-server/vite/index-CrwlB95_.js +22 -0
  15. package/lib/adapters/bun-server/vite/index-DTIOTwZo.cjs +11 -0
  16. package/lib/adapters/bun-server/vite/index-vQuPcef3.cjs +1 -0
  17. package/lib/adapters/bun-server/vite/index.cjs +5 -50
  18. package/lib/adapters/bun-server/vite/index.d.ts +2 -2
  19. package/lib/adapters/bun-server/vite/index.mjs +196 -12
  20. package/lib/adapters/cloud-run/vite/index-BqUeglYs.cjs +1 -0
  21. package/lib/adapters/cloud-run/vite/index-CBIchDYq.js +651 -0
  22. package/lib/adapters/cloud-run/vite/index-ClHGw5z1.js +6 -0
  23. package/lib/adapters/cloud-run/vite/index-CrwlB95_.js +22 -0
  24. package/lib/adapters/cloud-run/vite/index-DTIOTwZo.cjs +11 -0
  25. package/lib/adapters/cloud-run/vite/index-vQuPcef3.cjs +1 -0
  26. package/lib/adapters/cloud-run/vite/index.cjs +5 -47
  27. package/lib/adapters/cloud-run/vite/index.d.ts +2 -2
  28. package/lib/adapters/cloud-run/vite/index.mjs +195 -11
  29. package/lib/adapters/cloudflare-pages/vite/index-BIeHg2Cj.cjs +5 -0
  30. package/lib/adapters/cloudflare-pages/vite/index-C455V8_A.cjs +1 -0
  31. package/lib/adapters/cloudflare-pages/vite/index-ClHGw5z1.js +6 -0
  32. package/lib/adapters/cloudflare-pages/vite/index-D3HITboM.js +645 -0
  33. package/lib/adapters/cloudflare-pages/vite/index-DKcVHRBy.cjs +11 -0
  34. package/lib/adapters/cloudflare-pages/vite/index-DwovcBp3.js +22 -0
  35. package/lib/adapters/cloudflare-pages/vite/index-bogwy7wh.js +250 -0
  36. package/lib/adapters/cloudflare-pages/vite/index-vQuPcef3.cjs +1 -0
  37. package/lib/adapters/cloudflare-pages/vite/index.cjs +1 -115
  38. package/lib/adapters/cloudflare-pages/vite/index.d.ts +2 -2
  39. package/lib/adapters/cloudflare-pages/vite/index.mjs +4 -78
  40. package/lib/adapters/deno-server/vite/index-BqUeglYs.cjs +1 -0
  41. package/lib/adapters/deno-server/vite/index-CBIchDYq.js +651 -0
  42. package/lib/adapters/deno-server/vite/index-ClHGw5z1.js +6 -0
  43. package/lib/adapters/deno-server/vite/index-CrwlB95_.js +22 -0
  44. package/lib/adapters/deno-server/vite/index-DTIOTwZo.cjs +11 -0
  45. package/lib/adapters/deno-server/vite/index-vQuPcef3.cjs +1 -0
  46. package/lib/adapters/deno-server/vite/index.cjs +5 -62
  47. package/lib/adapters/deno-server/vite/index.d.ts +2 -2
  48. package/lib/adapters/deno-server/vite/index.mjs +198 -14
  49. package/lib/adapters/netlify-edge/vite/index-BqUeglYs.cjs +1 -0
  50. package/lib/adapters/netlify-edge/vite/index-CBIchDYq.js +651 -0
  51. package/lib/adapters/netlify-edge/vite/index-ClHGw5z1.js +6 -0
  52. package/lib/adapters/netlify-edge/vite/index-CrwlB95_.js +22 -0
  53. package/lib/adapters/netlify-edge/vite/index-DTIOTwZo.cjs +11 -0
  54. package/lib/adapters/netlify-edge/vite/index-vQuPcef3.cjs +1 -0
  55. package/lib/adapters/netlify-edge/vite/index.cjs +6 -129
  56. package/lib/adapters/netlify-edge/vite/index.d.ts +2 -2
  57. package/lib/adapters/netlify-edge/vite/index.mjs +240 -60
  58. package/lib/adapters/node-server/vite/index-BqUeglYs.cjs +1 -0
  59. package/lib/adapters/node-server/vite/index-CBIchDYq.js +651 -0
  60. package/lib/adapters/node-server/vite/index-ClHGw5z1.js +6 -0
  61. package/lib/adapters/node-server/vite/index-CrwlB95_.js +22 -0
  62. package/lib/adapters/node-server/vite/index-DTIOTwZo.cjs +11 -0
  63. package/lib/adapters/node-server/vite/index-vQuPcef3.cjs +1 -0
  64. package/lib/adapters/node-server/vite/index.cjs +5 -50
  65. package/lib/adapters/node-server/vite/index.d.ts +2 -2
  66. package/lib/adapters/node-server/vite/index.mjs +196 -12
  67. package/lib/adapters/shared/vite/index-BqUeglYs.cjs +1 -0
  68. package/lib/adapters/shared/vite/index-CBIchDYq.js +651 -0
  69. package/lib/adapters/shared/vite/index-ClHGw5z1.js +6 -0
  70. package/lib/adapters/shared/vite/index-CrwlB95_.js +22 -0
  71. package/lib/adapters/shared/vite/index-DTIOTwZo.cjs +11 -0
  72. package/lib/adapters/shared/vite/index-vQuPcef3.cjs +1 -0
  73. package/lib/adapters/shared/vite/index.cjs +2 -375
  74. package/lib/adapters/shared/vite/index.d.ts +9 -15
  75. package/lib/adapters/shared/vite/index.mjs +155 -292
  76. package/lib/adapters/ssg/vite/index-BqUeglYs.cjs +1 -0
  77. package/lib/adapters/ssg/vite/index-CBIchDYq.js +651 -0
  78. package/lib/adapters/ssg/vite/index-ClHGw5z1.js +6 -0
  79. package/lib/adapters/ssg/vite/index-CrwlB95_.js +22 -0
  80. package/lib/adapters/ssg/vite/index-DTIOTwZo.cjs +11 -0
  81. package/lib/adapters/ssg/vite/index-vQuPcef3.cjs +1 -0
  82. package/lib/adapters/ssg/vite/index.cjs +5 -0
  83. package/lib/adapters/ssg/vite/index.d.ts +13 -0
  84. package/lib/adapters/ssg/vite/index.mjs +201 -0
  85. package/lib/adapters/vercel-edge/vite/index-BqUeglYs.cjs +1 -0
  86. package/lib/adapters/vercel-edge/vite/index-CBIchDYq.js +651 -0
  87. package/lib/adapters/vercel-edge/vite/index-ClHGw5z1.js +6 -0
  88. package/lib/adapters/vercel-edge/vite/index-CrwlB95_.js +22 -0
  89. package/lib/adapters/vercel-edge/vite/index-DTIOTwZo.cjs +11 -0
  90. package/lib/adapters/vercel-edge/vite/index-vQuPcef3.cjs +1 -0
  91. package/lib/adapters/vercel-edge/vite/index.cjs +5 -118
  92. package/lib/adapters/vercel-edge/vite/index.d.ts +2 -2
  93. package/lib/adapters/vercel-edge/vite/index.mjs +230 -51
  94. package/lib/index.d.ts +172 -50
  95. package/lib/index.qwik.cjs +333 -160
  96. package/lib/index.qwik.mjs +335 -162
  97. package/lib/middleware/aws-lambda/index.cjs +1 -0
  98. package/lib/middleware/aws-lambda/index.d.ts +3 -2
  99. package/lib/middleware/aws-lambda/index.mjs +27 -41
  100. package/lib/middleware/azure-swa/index.cjs +1 -0
  101. package/lib/middleware/azure-swa/index.mjs +46 -269
  102. package/lib/middleware/bun/index.cjs +1 -0
  103. package/lib/middleware/bun/index.mjs +68 -120
  104. package/lib/middleware/cloudflare-pages/index.cjs +1 -0
  105. package/lib/middleware/cloudflare-pages/index.mjs +48 -80
  106. package/lib/middleware/deno/index.cjs +1 -0
  107. package/lib/middleware/deno/index.mjs +63 -110
  108. package/lib/middleware/firebase/index.cjs +1 -0
  109. package/lib/middleware/firebase/index.mjs +16 -28
  110. package/lib/middleware/netlify-edge/index.cjs +1 -0
  111. package/lib/middleware/netlify-edge/index.mjs +36 -64
  112. package/lib/middleware/node/index.cjs +1 -314
  113. package/lib/middleware/node/index.mjs +116 -198
  114. package/lib/middleware/request-handler/index.cjs +11 -1607
  115. package/lib/middleware/request-handler/index.d.ts +63 -62
  116. package/lib/middleware/request-handler/index.mjs +879 -1333
  117. package/lib/middleware/vercel-edge/index.cjs +1 -0
  118. package/lib/middleware/vercel-edge/index.mjs +47 -82
  119. package/lib/modules.d.ts +4 -12
  120. package/lib/service-worker.cjs +1 -17
  121. package/lib/service-worker.mjs +5 -15
  122. package/lib/ssg/deno.cjs +1 -0
  123. package/lib/ssg/deno.mjs +6 -0
  124. package/lib/ssg/index-CBIchDYq.js +651 -0
  125. package/lib/ssg/index-ClHGw5z1.js +6 -0
  126. package/lib/ssg/index-DTIOTwZo.cjs +11 -0
  127. package/lib/ssg/index-vQuPcef3.cjs +1 -0
  128. package/lib/ssg/index.cjs +1 -0
  129. package/lib/{static → ssg}/index.d.ts +17 -17
  130. package/lib/ssg/index.mjs +22 -0
  131. package/lib/ssg/node.cjs +11 -0
  132. package/lib/ssg/node.mjs +651 -0
  133. package/lib/vite/index.cjs +28 -27431
  134. package/lib/vite/index.d.ts +16 -0
  135. package/lib/vite/index.mjs +1413 -27227
  136. package/modules.d.ts +4 -12
  137. package/package.json +50 -39
  138. package/ssg.d.ts +2 -0
  139. package/static.d.ts +1 -1
  140. package/lib/adapters/static/vite/index.cjs +0 -368
  141. package/lib/adapters/static/vite/index.d.ts +0 -10
  142. package/lib/adapters/static/vite/index.mjs +0 -331
  143. package/lib/static/deno.mjs +0 -8
  144. package/lib/static/index.cjs +0 -67
  145. package/lib/static/index.mjs +0 -48
  146. package/lib/static/node.cjs +0 -1124
  147. package/lib/static/node.mjs +0 -1086
  148. package/middleware/request-handler/generated/not-found-paths.ts +0 -7
  149. package/middleware/request-handler/generated/static-paths.ts +0 -35
@@ -0,0 +1 @@
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-DTIOTwZo.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;
@@ -9,23 +9,7 @@ import type { RenderOptions } from '@qwik.dev/core/server';
9
9
  export declare function generate(opts: StaticGenerateOptions): Promise<StaticGenerateResult>;
10
10
 
11
11
  /** @public */
12
- export declare interface StaticGenerateOptions extends StaticGenerateRenderOptions {
13
- /**
14
- * Path to the SSR module exporting the default render function. In most cases it'll be
15
- * `./src/entry.ssr.tsx`.
16
- */
17
- renderModulePath: string;
18
- /** Path to the Qwik Router Config module exporting the default `@qwik-router-config`. */
19
- qwikRouterConfigModulePath: string;
20
- /** @deprecated Use `qwikRouterConfigModulePath` instead. Will be removed in V3 */
21
- qwikCityPlanModulePath?: string;
22
- /** Defaults to `/` */
23
- basePathname?: string;
24
- rootDir?: string;
25
- }
26
-
27
- /** @public */
28
- export declare interface StaticGenerateRenderOptions extends RenderOptions {
12
+ export declare interface SsgRenderOptions extends RenderOptions {
29
13
  /** File system directory where the static files should be written. */
30
14
  outDir: string;
31
15
  /**
@@ -85,6 +69,22 @@ export declare interface StaticGenerateRenderOptions extends RenderOptions {
85
69
  exclude?: string[];
86
70
  }
87
71
 
72
+ /** @public */
73
+ export declare interface StaticGenerateOptions extends SsgRenderOptions {
74
+ /**
75
+ * Path to the SSR module exporting the default render function. In most cases it'll be
76
+ * `./src/entry.ssr.tsx`.
77
+ */
78
+ renderModulePath: string;
79
+ /** Path to the Qwik Router Config module exporting the default `@qwik-router-config`. */
80
+ qwikRouterConfigModulePath: string;
81
+ /** @deprecated Use `qwikRouterConfigModulePath` instead. Will be removed in V3 */
82
+ qwikCityPlanModulePath?: string;
83
+ /** Defaults to `/` */
84
+ basePathname?: string;
85
+ rootDir?: string;
86
+ }
87
+
88
88
  /** @public */
89
89
  export declare interface StaticGenerateResult {
90
90
  duration: number;
@@ -0,0 +1,22 @@
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
+ };
@@ -0,0 +1,11 @@
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"),M=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 x=>{m.activeTasks++,m.totalTasks++;const a=await g(x);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("node.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((x,a)=>{try{b.activeTasks++,b.totalTasks++,h.set(m.pathname,x),T.postMessage(m)}catch(d){b.activeTasks--,h.delete(m.pathname),a(d)}}),terminate:async()=>{h.clear();const m={type:"close"};await new Promise(x=>{W=x,T.postMessage(m)}),await T.terminate()}};return T.on("message",m=>{switch(m.type){case"render":{const x=h.get(m.pathname);x&&(h.delete(m.pathname),b.activeTasks--,x(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
+ `+M.bold(M.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
+ ${M.green("SSG results")}`),u.rendered>0&&r.info(`- Generated: ${M.dim(`${u.rendered} page${u.rendered===1?"":"s"}`)}`),r.info(`- Duration: ${M.dim(j(u.duration))}`);const d=u.rendered+u.errors;d>0&&r.info(`- Average: ${M.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
+ ${M.bold(M.red(`!!! ${d.pathname}: Error during SSG`))}`),r.error(M.red(k.message)),r.error(` Pathname: ${M.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(`${M.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;