@qwik.dev/core 2.0.0-beta.43 → 2.0.0-beta.47

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 (45) hide show
  1. package/build.d.ts +1 -1
  2. package/dist/async-local-storage.d.ts +3 -0
  3. package/dist/async-local-storage.mjs +8 -0
  4. package/dist/async-local-storage.node.mjs +6 -0
  5. package/dist/backpatch/package.json +1 -1
  6. package/dist/build/package.json +1 -1
  7. package/dist/cli.mjs +26 -5
  8. package/dist/core-internal.d.ts +223 -162
  9. package/dist/core.min.mjs +10 -11
  10. package/dist/core.mjs +6268 -6181
  11. package/dist/core.mjs.map +1 -1
  12. package/dist/core.prod.mjs +5104 -5104
  13. package/dist/error-swap-executor.debug.js +2 -2
  14. package/dist/error-swap-executor.js +1 -1
  15. package/dist/insights.d.ts +2 -2
  16. package/dist/jsx-runtime/index.d.ts +1 -1
  17. package/dist/loader/index.mjs +2 -2
  18. package/dist/loader/package.json +1 -1
  19. package/dist/optimizer.d.ts +240 -11
  20. package/dist/optimizer.mjs +879 -656
  21. package/dist/out-of-order-executor.debug.js +2 -2
  22. package/dist/preloader.mjs +77 -69
  23. package/dist/qwikloader.debug.js +12 -10
  24. package/dist/qwikloader.js +1 -1
  25. package/dist/server-modules.d.ts +7 -7
  26. package/dist/server.d.ts +17 -17
  27. package/dist/server.mjs +99 -66
  28. package/dist/server.prod.mjs +485 -448
  29. package/dist/starters/adapters/bun/adapters/bun/vite.config.ts +0 -1
  30. package/dist/testing/index.d.ts +26 -30
  31. package/dist/testing/index.mjs +7560 -7335
  32. package/dist/testing/package.json +1 -1
  33. package/dist/ts-optimizer.mjs +10477 -0
  34. package/dist/worker/index.mjs +12 -10
  35. package/dist/worker/package.json +1 -1
  36. package/dist/worker/worker.shared.js +3 -3
  37. package/handlers.mjs +6 -6
  38. package/jsx-dev-runtime.d.ts +1 -1
  39. package/jsx-runtime.d.ts +1 -1
  40. package/loader.d.ts +1 -1
  41. package/optimizer.d.ts +1 -1
  42. package/package.json +22 -7
  43. package/public.d.ts +6 -6
  44. package/server.d.ts +1 -1
  45. package/testing.d.ts +1 -1
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * @qwik.dev/core/server 2.0.0-beta.43-dev+e478dfb
3
+ * @qwik.dev/core/server 2.0.0-beta.47-dev+919c91b
4
4
  * Copyright QwikDev. All Rights Reserved.
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
@@ -191,12 +191,7 @@ See https://qwik.dev/docs/core/tasks/#use-method-rules`,
191
191
  // 28
192
192
  "",
193
193
  // 29 (cleared: useComputed$ now supports async functions)
194
- `===
195
- Qwik version {{0}} already imported while importing {{1}}.
196
- This can lead to issues due to duplicated shared structures.
197
- Verify that the Qwik libraries you're using are in "resolve.noExternal[]" and in "optimizeDeps.exclude".
198
- ===
199
- `,
194
+ "===\nQwik version {{0}} already imported while importing {{1}}.\nDifferent Qwik versions or builds cannot share their runtime state on the server.\nMake sure every Qwik library resolves to the same @qwik.dev/core version and build.\n===\n",
200
195
  // 30
201
196
  "WrappedSignal is read-only",
202
197
  // 31
@@ -206,14 +201,16 @@ Verify that the Qwik libraries you're using are in "resolve.noExternal[]" and in
206
201
  // 33
207
202
  "Serialization Error: Cannot serialize function: {{0}}",
208
203
  // 34
209
- "Cannot read .value of a clientOnly async signal during SSR. Use .loading to check state, or provide an initial value.",
204
+ "Cannot read .value of a clientOnly async signal during SSR. Provide an initial value.",
210
205
  // 35
211
206
  "Invalid element name for SSR {{0}}",
212
207
  // 36
213
208
  "Invalid serialized Promise dependency",
214
209
  // 37
215
- "Invalid serialized Uint8Array payload"
210
+ "Invalid serialized Uint8Array payload",
216
211
  // 38
212
+ "Computed signal was disposed"
213
+ // 39
217
214
  ];
218
215
  let text = MAP[code] ?? "";
219
216
  if (parts.length) {
@@ -627,7 +624,7 @@ var OnRenderProp = "q:renderFn";
627
624
  var QSlot = "q:slot";
628
625
  var QSlotParent = "q:sparent";
629
626
  var QStatePatchAttr = "q:patch";
630
- var QSuspenseResolved = "q:r";
627
+ var QPendingResolved = "q:r";
631
628
  var QStyle = "q:style";
632
629
  var QStyleSelector = "style[q\\:style]";
633
630
  var QStyleSSelector = "style[q\\:sstyle]";
@@ -891,6 +888,19 @@ function isAriaAttribute(prop) {
891
888
  return prop.startsWith("aria-");
892
889
  }
893
890
 
891
+ // packages/qwik/src/core/shared/singletons.ts
892
+ import { isServer as isServer2 } from "@qwik.dev/core/build";
893
+
894
+ // packages/qwik/src/core/version.ts
895
+ var version = "2.0.0-beta.47-dev+919c91b";
896
+
897
+ // packages/qwik/src/core/shared/singletons.ts
898
+ var qwikGlobal = globalThis.__qwik__ ||= {};
899
+ var singletons = isServer2 ? qwikGlobal.singletons ||= /* @__PURE__ */ Object.create(null) : qwikGlobal[version] ||= /* @__PURE__ */ Object.create(null);
900
+ var getSingleton = (key) => {
901
+ return singletons[key];
902
+ };
903
+
894
904
  // packages/qwik/src/core/preloader/bundle-graph.ts
895
905
  var base;
896
906
  var graph;
@@ -1002,8 +1012,8 @@ function createPlatform(opts, resolvedManifest) {
1002
1012
  if (hash === SYNC_QRL) {
1003
1013
  return [hash, ""];
1004
1014
  }
1005
- const isRegistered = globalThis.__qwik_reg_symbols?.has(hash);
1006
- if (isRegistered) {
1015
+ const regSymbols = getSingleton("regSymbols");
1016
+ if (regSymbols?.has(hash)) {
1007
1017
  return [symbolName, "_"];
1008
1018
  }
1009
1019
  console.error("Cannot resolve symbol", symbolName, "in", mapper, parent);
@@ -1015,7 +1025,7 @@ function createPlatform(opts, resolvedManifest) {
1015
1025
  isServer: true,
1016
1026
  async importSymbol(_containerEl, url, symbolName) {
1017
1027
  const hash = getSymbolHash(symbolName);
1018
- const regSym = globalThis.__qwik_reg_symbols?.get(hash);
1028
+ const regSym = getSingleton("regSymbols")?.get(hash);
1019
1029
  if (regSym) {
1020
1030
  return regSym;
1021
1031
  }
@@ -1142,13 +1152,8 @@ var simplifyPath = (base2, path) => {
1142
1152
  }
1143
1153
  return simplified.join("/");
1144
1154
  };
1145
- var getBase = (container) => {
1146
- let base2 = container.$buildBase$;
1147
- if (import.meta.env?.DEV && !qTest) {
1148
- base2 = import.meta.env?.BASE_URL;
1149
- }
1150
- return base2;
1151
- };
1155
+ var getBase = (container) => container.$buildBase$;
1156
+ var afterPagePaint = (task) => `window.addEventListener('load',f=>{f=_=>${task};requestAnimationFrame(_=>requestAnimationFrame(_=>{typeof requestIdleCallback==='function'?requestIdleCallback(f,{timeout:1000}):requestAnimationFrame(_=>setTimeout(f))}))})`;
1152
1157
  var preloaderPre = (container, options, nonce) => {
1153
1158
  const { resolvedManifest } = container;
1154
1159
  const base2 = getBase(container);
@@ -1185,7 +1190,9 @@ var preloaderPre = (container, options, nonce) => {
1185
1190
  null
1186
1191
  );
1187
1192
  container.closeElement();
1188
- const script = `let b=fetch("${bundleGraphPath}");import("${preloaderBundle}").then(({l})=>l(${JSON.stringify(base2)},b${optsStr}));`;
1193
+ const script = afterPagePaint(
1194
+ `{let b=fetch("${bundleGraphPath}");import("${preloaderBundle}").then(({l})=>l(${JSON.stringify(base2)},b${optsStr}))}`
1195
+ );
1189
1196
  const scriptAttrs = {
1190
1197
  type: "module",
1191
1198
  async: true,
@@ -1242,7 +1249,9 @@ var includePreloader = (container, options, referencedBundles, nonce) => {
1242
1249
  ) : "";
1243
1250
  let script = insertLinks;
1244
1251
  if (preloaderBundle) {
1245
- script += `window.addEventListener('load',f=>{f=_=>import("${preloaderBundle}").then(({p})=>p(${JSON.stringify(referencedBundles)}));try{requestIdleCallback(f,{timeout:2000})}catch(e){setTimeout(f,200)}})`;
1252
+ script += afterPagePaint(
1253
+ `import("${preloaderBundle}").then(({p})=>p(${JSON.stringify(referencedBundles)}))`
1254
+ );
1246
1255
  }
1247
1256
  if (script) {
1248
1257
  const attrs = { type: "module", async: "true", "q:type": "preload" };
@@ -1280,19 +1289,19 @@ var getBundles = (qrls) => {
1280
1289
  return [...new Set(bundles)];
1281
1290
  };
1282
1291
  var preLoaderOptionsDefault = {
1283
- ssrPreloads: 7,
1292
+ ssrPreloads: 0,
1284
1293
  maxIdlePreloads: 25
1285
1294
  };
1286
1295
 
1287
1296
  // packages/qwik/src/server/scripts.ts
1288
- var QWIK_LOADER_DEFAULT_MINIFIED = 'var e,t,n,r=document,o=window,s="w",i="wp",a="d",c="dp",l="e",p="ep",u="capture:",d="readystatechange",f=0,h=new Set,q=new Set([r]),b=new Map,g={},m=(e,t)=>Array.from(e.querySelectorAll(t)),v=e=>{const t=[];return q.forEach(n=>t.push(...m(n,e))),t},w=(e,t,n,r=!1,o=!1)=>e.addEventListener(t,n,{capture:r,passive:o}),y=e=>{H(e);const t=m(e,"[q\\\\:shadowroot]");for(let e=0;e<t.length;e++){const n=t[e].shadowRoot;n&&y(n)}},A=e=>e&&"function"==typeof e.then,E=async e=>{for(let t=0;t<e.length;t++)await e[t]()},S=e=>{if(e.length){const t=()=>E(e);n=n?n.then(t,t):t()}},C=e=>{if(void 0===e._qwikjson_){let t=(e===r.documentElement?r.body:e).lastElementChild;for(;t;){if("SCRIPT"===t.tagName&&"qwik/json"===t.getAttribute("type")){e._qwikjson_=JSON.parse(t.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}t=t.previousElementSibling}}},_=e=>{g[e]=1,I(d)},k=e=>{const t=e.getAttribute("q:instance");return"paused"===e.getAttribute("q:container")&&"loading"===r.readyState&&!g[t]&&new Promise(e=>{w(r,d,()=>{("loading"!==r.readyState||g[t])&&e()})})},$=(e,t)=>new CustomEvent(e,{detail:t}),I=(e,t)=>{r.dispatchEvent($(e,t))},N=e=>e.replace(/([A-Z-])/g,e=>"-"+e.toLowerCase()),R=e=>e.replace(/-./g,e=>e[1].toUpperCase()),T=e=>{const t=e.indexOf(":");return{scope:e.slice(0,t),eventName:R(e.slice(t+1))}},x=e=>2===e.length,B=e=>e.charAt(0),L=e=>!!e&&1===e.nodeType,U=(e,t,n)=>e.hasAttribute(n)&&(!!e._qDispatch?.[t]||e.hasAttribute("q-"+t)),j=(e,t,n,o,s,i,a,c=!0)=>{const l={qBase:n,symbol:i,element:t,reqTime:a};if(!s){const t=(r["qFuncs_"+e.getAttribute("q:instance")]||[])[+i];if(!t&&c){const e=Error("sym:"+i);I("qerror",{importError:"sync",error:e,...l}),console.error(e)}return t}const p=`${i}|${n}|${s}`,u=b.get(p);if(u)return u;const d=new URL(s,o).href,f=import(d);return C(e),f.then(e=>{const t=e[i];if(t)b.set(p,t),I("qsymbol",l);else{const e=Error(`${i} not in ${d}`);I("qerror",{importError:"no-symbol",error:e,...l}),console.error(e)}return t},e=>{I("qerror",{importError:"async",error:e,...l}),console.error(e)})},D=(e,t,n,o,s,i=!0)=>{let a=!1;s&&(i&&e.hasAttribute("preventdefault:"+s)&&t.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&t.stopPropagation());const c=e._qDispatch?.[n];if(c){if("function"==typeof c){const n=()=>c(t,e);if(a)o.push(async()=>{const e=n();A(e)&&await e});else{const e=n();A(e)&&(a=!0,o.push(()=>e))}}else if(c.length)for(let n=0;n<c.length;n++){const r=c[n];if(r){const n=()=>r(t,e);if(a)o.push(async()=>{const e=n();A(e)&&await e});else{const e=n();A(e)&&(a=!0,o.push(()=>e))}}}return}const l=e.getAttribute("q-"+n);if(l){const n=e.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"),s=n.getAttribute("q:base"),i=new URL(s,r.baseURI),c=l.split("|"),p=k(n);for(let r=0;r<c.length;r++){const l=c[r],u=performance.now(),[d,f,h]=l.split("#"),q=n=>{if(n&&e.isConnected){const r=t=>{I("qerror",{error:t,qBase:s,symbol:f,element:e,reqTime:u})};try{const o=n.call(h,t,e);if(A(o))return o.catch(r)}catch(e){return r(e)}}},b=(t=!0)=>j(n,e,s,i,d,f,u,t),g=p?void 0:b();if(p)a=!0,o.push(async()=>{await p,await q(d?await b():await b(!1)||await b())});else if(A(g))a=!0,o.push(()=>g.then(q));else if(a)a=!0,o.push(async()=>{await q(g||await b())});else{const e=q(g);A(e)&&(a=!0,o.push(()=>e))}}}},O=(e,t=l,n=!0)=>{const r=N(e.type),o=t+":"+r,s=u+r,i=[],a=[],c=[];let p=e.target;for(;p;)L(p)?(i.push(p),a.push(U(p,o,s)),p=p.parentElement):p=p.parentElement;for(let t=i.length-1;t>=0;t--)if(a[t]&&(D(i[t],e,o,c,r,n),e.cancelBubble))return void S(c);for(let t=0;t<i.length;t++)if(!a[t]&&(D(i[t],e,o,c,r,n),!e.bubbles||e.cancelBubble))return void S(c);S(c)},P=e=>O(e,p,!1),F=(e,t,n=!0)=>{const r=N(t.type),o=e+":"+r,s=v("[q-"+CSS.escape(o)+"]"),i=[];for(let e=0;e<s.length;e++){const a=s[e];D(a,t,o,i,r,n)}S(i)},J=e=>{F(a,e)},M=e=>{F(c,e,!1)},Z=e=>{F(s,e)},z=e=>{F(i,e,!1)},G=()=>{const n=r.readyState;if("interactive"==n||"complete"==n){if(t=1,q.forEach(y),h.has("d:qinit")){h.delete("d:qinit");const e=$("qinit"),t=v("[q-d\\\\:qinit]"),n=[];for(let r=0;r<t.length;r++){const o=t[r];D(o,e,"d:qinit",n),o.removeAttribute("q-d:qinit")}S(n)}if(h.has("d:qidle")&&(h.delete("d:qidle"),(o.requestIdleCallback??o.setTimeout).bind(o)(()=>{const e=$("qidle"),t=v("[q-d\\\\:qidle]"),n=[];for(let r=0;r<t.length;r++){const o=t[r];D(o,e,"d:qidle",n),o.removeAttribute("q-d:qidle")}S(n)})),h.has("e:qvisible")){e||(e=new IntersectionObserver(t=>{const n=[];for(let r=0;r<t.length;r++){const o=t[r];o.isIntersecting&&(e.unobserve(o.target),D(o.target,$("qvisible",o),"e:qvisible",n))}S(n)}));const t=v("[q-e\\\\:qvisible]:not([q\\\\:observed])");for(let n=0;n<t.length;n++){const r=t[n];e.observe(r),r.setAttribute("q:observed","true")}}}},H=(...e)=>{for(let n=0;n<e.length;n++){const r=e[n];if(r===f)_(e[++n]);else if("string"==typeof r){if(!h.has(r)){h.add(r);const{scope:e,eventName:n}=T(r),i=x(e),c=B(e);c===s?w(o,n,i?z:Z,!0,i):q.forEach(e=>w(e,n,c===a?i?M:J:i?P:O,!0,i)),1!==t||"e:qvisible"!==r&&"d:qinit"!==r&&"d:qidle"!==r||G()}}else q.has(r)||(h.forEach(e=>{const{scope:t,eventName:n}=T(e),o=x(t),i=B(t);i!==s&&w(r,n,i===a?o?M:J:o?P:O,!0,o)}),q.add(r))}},K=o._qwikEv;K?.roots||(Array.isArray(K)?H(...K):H("e:click","e:input"),o._qwikEv={events:h,roots:q,push:H},w(r,d,G),G())';
1289
- var QWIK_LOADER_DEFAULT_DEBUG = '//#region packages/qwik/src/qwikloader.ts\nvar doc = document;\nvar win = window;\nvar windowPrefix = "w";\nvar passiveWindowPrefix = "wp";\nvar documentPrefix = "d";\nvar passiveDocumentPrefix = "dp";\nvar elementPrefix = "e";\nvar passiveElementPrefix = "ep";\nvar capturePrefix = "capture:";\nvar readyStateChange = "readystatechange";\nvar QwikEvContainerReady = 0;\nvar events = /* @__PURE__ */ new Set();\nvar roots = /* @__PURE__ */ new Set([doc]);\nvar symbols = /* @__PURE__ */ new Map();\nvar readyContainers = {};\nvar observer;\nvar hasInitialized;\nvar queuedTasks;\nvar nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));\nvar querySelectorAll = (query) => {\n const elements = [];\n roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));\n return elements;\n};\nvar addEventListener = (el, eventName, handler, capture = false, passive = false) => el.addEventListener(eventName, handler, {\n capture,\n passive\n});\nvar findShadowRoots = (fragment) => {\n addEventOrRoot(fragment);\n const shadowRoots = nativeQuerySelectorAll(fragment, "[q\\\\:shadowroot]");\n for (let i = 0; i < shadowRoots.length; i++) {\n const shadowRoot = shadowRoots[i].shadowRoot;\n shadowRoot && findShadowRoots(shadowRoot);\n }\n};\nvar isPromise = (promise) => promise && typeof promise.then === "function";\nvar runTasks = async (tasks) => {\n for (let i = 0; i < tasks.length; i++) await tasks[i]();\n};\nvar queueTasks = (tasks) => {\n if (tasks.length) {\n const run = () => runTasks(tasks);\n queuedTasks = queuedTasks ? queuedTasks.then(run, run) : run();\n }\n};\nvar resolveContainer = (containerEl) => {\n if (containerEl._qwikjson_ === void 0) {\n let script = (containerEl === doc.documentElement ? doc.body : containerEl).lastElementChild;\n while (script) {\n if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {\n containerEl._qwikjson_ = JSON.parse(script.textContent.replace(/\\\\x3C(\\/?script)/gi, "<$1"));\n break;\n }\n script = script.previousElementSibling;\n }\n }\n};\nvar markContainerReady = (hash) => {\n readyContainers[hash] = 1;\n emitEvent(readyStateChange);\n};\nvar waitForContainerReady = (container) => {\n const hash = container.getAttribute("q:instance");\n return container.getAttribute("q:container") === "paused" && doc.readyState === "loading" && !readyContainers[hash] && new Promise((resolve) => {\n const ready = () => {\n if (doc.readyState !== "loading" || readyContainers[hash]) resolve();\n };\n addEventListener(doc, readyStateChange, ready);\n });\n};\nvar createEvent = (eventName, detail) => new CustomEvent(eventName, { detail });\nvar emitEvent = (eventName, detail) => {\n doc.dispatchEvent(createEvent(eventName, detail));\n};\nvar camelToKebab = (str) => str.replace(/([A-Z-])/g, (a) => "-" + a.toLowerCase());\nvar kebabToCamel = (eventName) => eventName.replace(/-./g, (a) => a[1].toUpperCase());\nvar parseKebabEvent = (event) => {\n const separatorIndex = event.indexOf(":");\n return {\n scope: event.slice(0, separatorIndex),\n eventName: kebabToCamel(event.slice(separatorIndex + 1))\n };\n};\nvar isPassiveScope = (scope) => scope.length === 2;\nvar getRootScope = (scope) => scope.charAt(0);\nvar isElementNode = (node) => !!node && node.nodeType === 1;\nvar isCaptureHandlerElement = (element, scopedKebabName, captureAttribute) => element.hasAttribute(captureAttribute) && (!!element._qDispatch?.[scopedKebabName] || element.hasAttribute("q-" + scopedKebabName));\nvar resolveHandler = (container, element, qBase, base, chunk, symbol, reqTime, reportSyncError = true) => {\n const eventData = {\n qBase,\n symbol,\n element,\n reqTime\n };\n if (!chunk) {\n const handler = (doc["qFuncs_" + container.getAttribute("q:instance")] || [])[+symbol];\n if (!handler && reportSyncError) {\n const error = /* @__PURE__ */ new Error("sym:" + symbol);\n emitEvent("qerror", {\n importError: "sync",\n error,\n ...eventData\n });\n console.error(error);\n }\n return handler;\n }\n const key = `${symbol}|${qBase}|${chunk}`;\n const handler = symbols.get(key);\n if (handler) return handler;\n const href = new URL(chunk, base).href;\n const module = import(\n href\n);\n resolveContainer(container);\n return module.then((module) => {\n const handler = module[symbol];\n if (!handler) {\n const error = /* @__PURE__ */ new Error(`${symbol} not in ${href}`);\n emitEvent("qerror", {\n importError: "no-symbol",\n error,\n ...eventData\n });\n console.error(error);\n } else {\n symbols.set(key, handler);\n emitEvent("qsymbol", eventData);\n }\n return handler;\n }, (error) => {\n emitEvent("qerror", {\n importError: "async",\n error,\n ...eventData\n });\n console.error(error);\n });\n};\n/**\n* Dispatch an event by invoking QRL handlers. If there are multiple handlers, they are awaited in\n* order.\n*/\nvar dispatch = (element, ev, scopedKebabName, tasks, kebabName, allowPreventDefault = true) => {\n let defer = false;\n if (kebabName) {\n if (allowPreventDefault && element.hasAttribute("preventdefault:" + kebabName)) ev.preventDefault();\n if (element.hasAttribute("stoppropagation:" + kebabName)) ev.stopPropagation();\n }\n const handlers = element._qDispatch?.[scopedKebabName];\n if (handlers) {\n if (typeof handlers === "function") {\n const run = () => handlers(ev, element);\n if (defer) tasks.push(async () => {\n const result = run();\n if (isPromise(result)) await result;\n });\n else {\n const result = run();\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n } else if (handlers.length) for (let i = 0; i < handlers.length; i++) {\n const handler = handlers[i];\n if (handler) {\n const run = () => handler(ev, element);\n if (defer) tasks.push(async () => {\n const result = run();\n if (isPromise(result)) await result;\n });\n else {\n const result = run();\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n }\n }\n return;\n }\n const attrValue = element.getAttribute("q-" + scopedKebabName);\n if (attrValue) {\n const container = element.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");\n const qBase = container.getAttribute("q:base");\n const base = new URL(qBase, doc.baseURI);\n const qrls = attrValue.split("|");\n const waitForReady = waitForContainerReady(container);\n for (let i = 0; i < qrls.length; i++) {\n const qrl = qrls[i];\n const reqTime = performance.now();\n const [chunk, symbol, capturedIds] = qrl.split("#");\n const run = (handler) => {\n if (handler && element.isConnected) {\n const onError = (error) => {\n emitEvent("qerror", {\n error,\n qBase,\n symbol,\n element,\n reqTime\n });\n };\n try {\n const result = handler.call(capturedIds, ev, element);\n if (isPromise(result)) return result.catch(onError);\n } catch (error) {\n return onError(error);\n }\n }\n };\n const resolve = (reportSyncError = true) => resolveHandler(container, element, qBase, base, chunk, symbol, reqTime, reportSyncError);\n const handler = waitForReady ? void 0 : resolve();\n if (waitForReady) {\n defer = true;\n tasks.push(async () => {\n await waitForReady;\n await run(chunk ? await resolve() : await resolve(false) || await resolve());\n });\n } else if (isPromise(handler)) {\n defer = true;\n tasks.push(() => handler.then(run));\n } else if (defer) {\n defer = true;\n tasks.push(async () => {\n await run(handler || await resolve());\n });\n } else {\n const result = run(handler);\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n }\n }\n};\n/**\n* Event handler responsible for processing element events.\n*\n* If browser emits an event, the `eventProcessor` walks the DOM tree looking for corresponding\n* `(${event.type})`. If found the event\'s URL is parsed and `import()`ed.\n*\n* @param ev - Browser event.\n*/\nvar processElementEvent = (ev, scope = elementPrefix, allowPreventDefault = true) => {\n const kebabName = camelToKebab(ev.type);\n const scopedKebabName = scope + ":" + kebabName;\n const captureAttribute = capturePrefix + kebabName;\n const elements = [];\n const captureHandlers = [];\n const tasks = [];\n let current = ev.target;\n while (current) if (isElementNode(current)) {\n elements.push(current);\n captureHandlers.push(isCaptureHandlerElement(current, scopedKebabName, captureAttribute));\n current = current.parentElement;\n } else current = current.parentElement;\n for (let i = elements.length - 1; i >= 0; i--) if (captureHandlers[i]) {\n dispatch(elements[i], ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n if (ev.cancelBubble) {\n queueTasks(tasks);\n return;\n }\n }\n for (let i = 0; i < elements.length; i++) if (!captureHandlers[i]) {\n dispatch(elements[i], ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n if (!ev.bubbles || ev.cancelBubble) {\n queueTasks(tasks);\n return;\n }\n }\n queueTasks(tasks);\n};\nvar processPassiveElementEvent = (ev) => processElementEvent(ev, passiveElementPrefix, false);\nvar broadcast = (scope, ev, allowPreventDefault = true) => {\n const kebabName = camelToKebab(ev.type);\n const scopedKebabName = scope + ":" + kebabName;\n const elements = querySelectorAll("[q-" + CSS.escape(scopedKebabName) + "]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n }\n queueTasks(tasks);\n};\n/**\n* Event handler responsible for processing browser events.\n*\n* If browser emits an event, the `eventProcessor` walks the DOM tree looking for corresponding\n* `(${event.type})`. If found the event\'s URL is parsed and `import()`ed.\n*\n* @param ev - Browser event.\n*/\nvar processDocumentEvent = (ev) => {\n broadcast(documentPrefix, ev);\n};\nvar processPassiveDocumentEvent = (ev) => {\n broadcast(passiveDocumentPrefix, ev, false);\n};\nvar processWindowEvent = (ev) => {\n broadcast(windowPrefix, ev);\n};\nvar processPassiveWindowEvent = (ev) => {\n broadcast(passiveWindowPrefix, ev, false);\n};\n/**\n* Called when the document is ready and whenever a container is added, so make this idempotent. For\n* qidle and qinit we remove the attributes immediately, and for qvisible we add an attribute\n*/\nvar processReadyStateChange = () => {\n const readyState = doc.readyState;\n if (readyState == "interactive" || readyState == "complete") {\n hasInitialized = 1;\n roots.forEach(findShadowRoots);\n if (events.has("d:qinit")) {\n events.delete("d:qinit");\n const ev = createEvent("qinit");\n const elements = querySelectorAll("[q-d\\\\:qinit]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, "d:qinit", tasks);\n el.removeAttribute("q-d:qinit");\n }\n queueTasks(tasks);\n }\n if (events.has("d:qidle")) {\n events.delete("d:qidle");\n (win.requestIdleCallback ?? win.setTimeout).bind(win)(() => {\n const ev = createEvent("qidle");\n const elements = querySelectorAll("[q-d\\\\:qidle]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, "d:qidle", tasks);\n el.removeAttribute("q-d:qidle");\n }\n queueTasks(tasks);\n });\n }\n if (events.has("e:qvisible")) {\n observer || (observer = new IntersectionObserver((entries) => {\n const tasks = [];\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n dispatch(entry.target, createEvent("qvisible", entry), "e:qvisible", tasks);\n }\n }\n queueTasks(tasks);\n }));\n const elements = querySelectorAll("[q-e\\\\:qvisible]:not([q\\\\:observed])");\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n observer.observe(el);\n el.setAttribute("q:observed", "true");\n }\n }\n }\n};\nvar addEventOrRoot = (...eventNames) => {\n for (let i = 0; i < eventNames.length; i++) {\n const eventNameOrRoot = eventNames[i];\n if (eventNameOrRoot === QwikEvContainerReady) markContainerReady(eventNames[++i]);\n else if (typeof eventNameOrRoot === "string") {\n if (!events.has(eventNameOrRoot)) {\n events.add(eventNameOrRoot);\n const { scope, eventName } = parseKebabEvent(eventNameOrRoot);\n const passive = isPassiveScope(scope);\n const rootScope = getRootScope(scope);\n if (rootScope === windowPrefix) addEventListener(win, eventName, passive ? processPassiveWindowEvent : processWindowEvent, true, passive);\n else roots.forEach((root) => addEventListener(root, eventName, rootScope === documentPrefix ? passive ? processPassiveDocumentEvent : processDocumentEvent : passive ? processPassiveElementEvent : processElementEvent, true, passive));\n if (hasInitialized === 1 && (eventNameOrRoot === "e:qvisible" || eventNameOrRoot === "d:qinit" || eventNameOrRoot === "d:qidle")) processReadyStateChange();\n }\n } else if (!roots.has(eventNameOrRoot)) {\n events.forEach((kebabEventName) => {\n const { scope, eventName } = parseKebabEvent(kebabEventName);\n const passive = isPassiveScope(scope);\n const rootScope = getRootScope(scope);\n if (rootScope !== windowPrefix) addEventListener(eventNameOrRoot, eventName, rootScope === documentPrefix ? passive ? processPassiveDocumentEvent : processDocumentEvent : passive ? processPassiveElementEvent : processElementEvent, true, passive);\n });\n roots.add(eventNameOrRoot);\n }\n }\n};\nvar _qwikEv = win._qwikEv;\nif (!_qwikEv?.roots) {\n if (Array.isArray(_qwikEv)) addEventOrRoot(..._qwikEv);\n else addEventOrRoot("e:click", "e:input");\n win._qwikEv = {\n events,\n roots,\n push: addEventOrRoot\n };\n addEventListener(doc, readyStateChange, processReadyStateChange);\n processReadyStateChange();\n}\n//#endregion';
1297
+ var QWIK_LOADER_DEFAULT_MINIFIED = 'var e,t,n,r=document,o=window,s="w",i="wp",a="d",c="dp",l="e",p="ep",q="capture:",d="readystatechange",u=0,h=new Set,f=new Set([r]),b=new Map,g={},m=(e,t)=>Array.from(e.querySelectorAll(t)),y=e=>{const t=[];return f.forEach(n=>t.push(...m(n,e))),t},v=(e,t,n,r=!1,o=!1)=>e.addEventListener(t,n,{capture:r,passive:o}),w=e=>{K(e);const t=m(e,"[q\\\\:shadowroot]");for(let e=0;e<t.length;e++){const n=t[e].shadowRoot;n&&w(n)}},A=e=>e&&"function"==typeof e.then,E=async e=>{for(let t=0;t<e.length;t++)await e[t]()},S=e=>"q"===e.charAt(0),C=(e,t)=>{if(e.length){const r=()=>E(e);S(t)?r():n=n?n.then(r,r):r()}},_=e=>{if(void 0===e._qwikjson_){let t=(e===r.documentElement?r.body:e).lastElementChild;for(;t;){if("SCRIPT"===t.tagName&&"qwik/json"===t.getAttribute("type")){e._qwikjson_=JSON.parse(t.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}t=t.previousElementSibling}}},k=e=>{g[e]=1,N(d)},$=e=>{const t=e.getAttribute("q:instance");return"paused"===e.getAttribute("q:container")&&"loading"===r.readyState&&!g[t]&&new Promise(e=>{v(r,d,()=>{("loading"!==r.readyState||g[t])&&e()})})},I=(e,t)=>new CustomEvent(e,{detail:t}),N=(e,t)=>{r.dispatchEvent(I(e,t))},R=e=>e.replace(/([A-Z-])/g,e=>"-"+e.toLowerCase()),T=e=>e.replace(/-./g,e=>e[1].toUpperCase()),x=e=>{const t=e.indexOf(":");return{scope:e.slice(0,t),eventName:T(e.slice(t+1))}},B=e=>2===e.length,L=e=>e.charAt(0),U=e=>!!e&&1===e.nodeType,j=(e,t,n)=>e.hasAttribute(n)&&(!!e._qDispatch?.[t]||e.hasAttribute("q-"+t)),D=(e,t,n,o,s,i,a,c=!0)=>{const l={qBase:n,symbol:i,element:t,reqTime:a};if(!s){const t=(r["qFuncs_"+e.getAttribute("q:instance")]||[])[+i];if(!t&&c){const e=Error("sym:"+i);N("qerror",{importError:"sync",error:e,...l}),console.error(e)}return t}const p=`${i}|${n}|${s}`,q=b.get(p);if(q)return q;const d=new URL(s,o).href,u=import(d);return _(e),u.then(e=>{const t=e[i];if(t)b.set(p,t),N("qsymbol",l);else{const e=Error(`${i} not in ${d}`);N("qerror",{importError:"no-symbol",error:e,...l}),console.error(e)}return t},e=>{N("qerror",{importError:"async",error:e,...l}),console.error(e)})},O=(e,t,n,o,s,i=!0)=>{let a=!1;s&&(i&&e.hasAttribute("preventdefault:"+s)&&t.preventDefault(),e.hasAttribute("stoppropagation:"+s)&&t.stopPropagation());const c=e._qDispatch?.[n];if(c){if("function"==typeof c){const n=()=>c(t,e);if(a)o.push(async()=>{const e=n();A(e)&&await e});else{const e=n();A(e)&&(a=!0,o.push(()=>e))}}else if(c.length)for(let n=0;n<c.length;n++){const r=c[n];if(r){const n=()=>r(t,e);if(a)o.push(async()=>{const e=n();A(e)&&await e});else{const e=n();A(e)&&(a=!0,o.push(()=>e))}}}return}const l=e.getAttribute("q-"+n);if(l){const n=e.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])"),s=n.getAttribute("q:base"),i=new URL(s,r.baseURI),c=l.split("|"),p=$(n);for(let r=0;r<c.length;r++){const l=c[r],q=performance.now(),[d,u,h]=l.split("#"),f=n=>{if(n&&e.isConnected){const r=t=>{N("qerror",{error:t,qBase:s,symbol:u,element:e,reqTime:q})};try{const o=n.call(h,t,e);if(A(o))return o.catch(r)}catch(e){return r(e)}}},b=(t=!0)=>D(n,e,s,i,d,u,q,t),g=p?void 0:b();if(p)a=!0,o.push(async()=>{await p,await f(d?await b():await b(!1)||await b())});else if(A(g))a=!0,o.push(()=>g.then(f));else if(a)a=!0,o.push(async()=>{await f(g||await b())});else{const e=f(g);A(e)&&(a=!0,o.push(()=>e))}}}},P=(e,t=l,n=!0)=>{const r=R(e.type),o=t+":"+r,s=q+r,i=[],a=[],c=[];let p=e.target;for(;p;)U(p)?(i.push(p),a.push(j(p,o,s)),p=p.parentElement):p=p.parentElement;for(let t=i.length-1;t>=0;t--)if(a[t]&&(O(i[t],e,o,c,r,n),e.cancelBubble))return void C(c,e.type);for(let t=0;t<i.length;t++)if(!a[t]&&(O(i[t],e,o,c,r,n),!e.bubbles||e.cancelBubble))return void C(c,e.type);C(c,e.type)},F=e=>P(e,p,!1),J=(e,t,n=!0)=>{const r=R(t.type),o=e+":"+r,s=y("[q-"+CSS.escape(o)+"]"),i=[];for(let e=0;e<s.length;e++){const a=s[e];O(a,t,o,i,r,n)}C(i,t.type)},M=e=>{J(a,e)},Z=e=>{J(c,e,!1)},z=e=>{J(s,e)},G=e=>{J(i,e,!1)},H=()=>{const n=r.readyState;if("interactive"==n||"complete"==n){if(t=1,f.forEach(w),h.has("d:qinit")){h.delete("d:qinit");const e=I("qinit"),t=y("[q-d\\\\:qinit]"),n=[];for(let r=0;r<t.length;r++){const o=t[r];O(o,e,"d:qinit",n),o.removeAttribute("q-d:qinit")}C(n,"qinit")}if(h.has("d:qidle")&&(h.delete("d:qidle"),(o.requestIdleCallback??o.setTimeout).bind(o)(()=>{const e=I("qidle"),t=y("[q-d\\\\:qidle]"),n=[];for(let r=0;r<t.length;r++){const o=t[r];O(o,e,"d:qidle",n),o.removeAttribute("q-d:qidle")}C(n,"qidle")})),h.has("e:qvisible")){e||(e=new IntersectionObserver(t=>{const n=[];for(let r=0;r<t.length;r++){const o=t[r];o.isIntersecting&&(e.unobserve(o.target),O(o.target,I("qvisible",o),"e:qvisible",n))}C(n,"qvisible")}));const t=y("[q-e\\\\:qvisible]:not([q\\\\:observed])");for(let n=0;n<t.length;n++){const r=t[n];e.observe(r),r.setAttribute("q:observed","true")}}}},K=(...e)=>{for(let n=0;n<e.length;n++){const r=e[n];if(r===u)k(e[++n]);else if("string"==typeof r){if(!h.has(r)){h.add(r);const{scope:e,eventName:t}=x(r),n=B(e),i=L(e);i===s?v(o,t,n?G:z,!0,n):f.forEach(e=>v(e,t,i===a?n?Z:M:n?F:P,!0,n))}1!==t||"e:qvisible"!==r&&"d:qinit"!==r&&"d:qidle"!==r||H()}else f.has(r)||(h.forEach(e=>{const{scope:t,eventName:n}=x(e),o=B(t),i=L(t);i!==s&&v(r,n,i===a?o?Z:M:o?F:P,!0,o)}),f.add(r))}},Q=o._qwikEv;Q?.roots||(Array.isArray(Q)?K(...Q):K("e:click","e:input"),o._qwikEv={events:h,roots:f,push:K},v(r,d,H),H())';
1298
+ var QWIK_LOADER_DEFAULT_DEBUG = '//#region packages/qwik/src/qwikloader.ts\nvar doc = document;\nvar win = window;\nvar windowPrefix = "w";\nvar passiveWindowPrefix = "wp";\nvar documentPrefix = "d";\nvar passiveDocumentPrefix = "dp";\nvar elementPrefix = "e";\nvar passiveElementPrefix = "ep";\nvar capturePrefix = "capture:";\nvar readyStateChange = "readystatechange";\nvar QwikEvContainerReady = 0;\nvar events = /* @__PURE__ */ new Set();\nvar roots = /* @__PURE__ */ new Set([doc]);\nvar symbols = /* @__PURE__ */ new Map();\nvar readyContainers = {};\nvar observer;\nvar hasInitialized;\nvar queuedTasks;\nvar nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));\nvar querySelectorAll = (query) => {\n const elements = [];\n roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));\n return elements;\n};\nvar addEventListener = (el, eventName, handler, capture = false, passive = false) => el.addEventListener(eventName, handler, {\n capture,\n passive\n});\nvar findShadowRoots = (fragment) => {\n addEventOrRoot(fragment);\n const shadowRoots = nativeQuerySelectorAll(fragment, "[q\\\\:shadowroot]");\n for (let i = 0; i < shadowRoots.length; i++) {\n const shadowRoot = shadowRoots[i].shadowRoot;\n shadowRoot && findShadowRoots(shadowRoot);\n }\n};\nvar isPromise = (promise) => promise && typeof promise.then === "function";\nvar runTasks = async (tasks) => {\n for (let i = 0; i < tasks.length; i++) await tasks[i]();\n};\nvar isQwikLifecycleEvent = (eventName) => eventName.charAt(0) === "q";\nvar queueTasks = (tasks, eventName) => {\n if (tasks.length) {\n const run = () => runTasks(tasks);\n if (isQwikLifecycleEvent(eventName)) run();\n else queuedTasks = queuedTasks ? queuedTasks.then(run, run) : run();\n }\n};\nvar resolveContainer = (containerEl) => {\n if (containerEl._qwikjson_ === void 0) {\n let script = (containerEl === doc.documentElement ? doc.body : containerEl).lastElementChild;\n while (script) {\n if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {\n containerEl._qwikjson_ = JSON.parse(script.textContent.replace(/\\\\x3C(\\/?script)/gi, "<$1"));\n break;\n }\n script = script.previousElementSibling;\n }\n }\n};\nvar markContainerReady = (hash) => {\n readyContainers[hash] = 1;\n emitEvent(readyStateChange);\n};\nvar waitForContainerReady = (container) => {\n const hash = container.getAttribute("q:instance");\n return container.getAttribute("q:container") === "paused" && doc.readyState === "loading" && !readyContainers[hash] && new Promise((resolve) => {\n const ready = () => {\n if (doc.readyState !== "loading" || readyContainers[hash]) resolve();\n };\n addEventListener(doc, readyStateChange, ready);\n });\n};\nvar createEvent = (eventName, detail) => new CustomEvent(eventName, { detail });\nvar emitEvent = (eventName, detail) => {\n doc.dispatchEvent(createEvent(eventName, detail));\n};\nvar camelToKebab = (str) => str.replace(/([A-Z-])/g, (a) => "-" + a.toLowerCase());\nvar kebabToCamel = (eventName) => eventName.replace(/-./g, (a) => a[1].toUpperCase());\nvar parseKebabEvent = (event) => {\n const separatorIndex = event.indexOf(":");\n return {\n scope: event.slice(0, separatorIndex),\n eventName: kebabToCamel(event.slice(separatorIndex + 1))\n };\n};\nvar isPassiveScope = (scope) => scope.length === 2;\nvar getRootScope = (scope) => scope.charAt(0);\nvar isElementNode = (node) => !!node && node.nodeType === 1;\nvar isCaptureHandlerElement = (element, scopedKebabName, captureAttribute) => element.hasAttribute(captureAttribute) && (!!element._qDispatch?.[scopedKebabName] || element.hasAttribute("q-" + scopedKebabName));\nvar resolveHandler = (container, element, qBase, base, chunk, symbol, reqTime, reportSyncError = true) => {\n const eventData = {\n qBase,\n symbol,\n element,\n reqTime\n };\n if (!chunk) {\n const handler = (doc["qFuncs_" + container.getAttribute("q:instance")] || [])[+symbol];\n if (!handler && reportSyncError) {\n const error = /* @__PURE__ */ new Error("sym:" + symbol);\n emitEvent("qerror", {\n importError: "sync",\n error,\n ...eventData\n });\n console.error(error);\n }\n return handler;\n }\n const key = `${symbol}|${qBase}|${chunk}`;\n const handler = symbols.get(key);\n if (handler) return handler;\n const href = new URL(chunk, base).href;\n const module = import(\n href\n);\n resolveContainer(container);\n return module.then((module) => {\n const handler = module[symbol];\n if (!handler) {\n const error = /* @__PURE__ */ new Error(`${symbol} not in ${href}`);\n emitEvent("qerror", {\n importError: "no-symbol",\n error,\n ...eventData\n });\n console.error(error);\n } else {\n symbols.set(key, handler);\n emitEvent("qsymbol", eventData);\n }\n return handler;\n }, (error) => {\n emitEvent("qerror", {\n importError: "async",\n error,\n ...eventData\n });\n console.error(error);\n });\n};\n/**\n* Dispatch an event by invoking QRL handlers. If there are multiple handlers, they are awaited in\n* order.\n*/\nvar dispatch = (element, ev, scopedKebabName, tasks, kebabName, allowPreventDefault = true) => {\n let defer = false;\n if (kebabName) {\n if (allowPreventDefault && element.hasAttribute("preventdefault:" + kebabName)) ev.preventDefault();\n if (element.hasAttribute("stoppropagation:" + kebabName)) ev.stopPropagation();\n }\n const handlers = element._qDispatch?.[scopedKebabName];\n if (handlers) {\n if (typeof handlers === "function") {\n const run = () => handlers(ev, element);\n if (defer) tasks.push(async () => {\n const result = run();\n if (isPromise(result)) await result;\n });\n else {\n const result = run();\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n } else if (handlers.length) for (let i = 0; i < handlers.length; i++) {\n const handler = handlers[i];\n if (handler) {\n const run = () => handler(ev, element);\n if (defer) tasks.push(async () => {\n const result = run();\n if (isPromise(result)) await result;\n });\n else {\n const result = run();\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n }\n }\n return;\n }\n const attrValue = element.getAttribute("q-" + scopedKebabName);\n if (attrValue) {\n const container = element.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");\n const qBase = container.getAttribute("q:base");\n const base = new URL(qBase, doc.baseURI);\n const qrls = attrValue.split("|");\n const waitForReady = waitForContainerReady(container);\n for (let i = 0; i < qrls.length; i++) {\n const qrl = qrls[i];\n const reqTime = performance.now();\n const [chunk, symbol, capturedIds] = qrl.split("#");\n const run = (handler) => {\n if (handler && element.isConnected) {\n const onError = (error) => {\n emitEvent("qerror", {\n error,\n qBase,\n symbol,\n element,\n reqTime\n });\n };\n try {\n const result = handler.call(capturedIds, ev, element);\n if (isPromise(result)) return result.catch(onError);\n } catch (error) {\n return onError(error);\n }\n }\n };\n const resolve = (reportSyncError = true) => resolveHandler(container, element, qBase, base, chunk, symbol, reqTime, reportSyncError);\n const handler = waitForReady ? void 0 : resolve();\n if (waitForReady) {\n defer = true;\n tasks.push(async () => {\n await waitForReady;\n await run(chunk ? await resolve() : await resolve(false) || await resolve());\n });\n } else if (isPromise(handler)) {\n defer = true;\n tasks.push(() => handler.then(run));\n } else if (defer) {\n defer = true;\n tasks.push(async () => {\n await run(handler || await resolve());\n });\n } else {\n const result = run(handler);\n if (isPromise(result)) {\n defer = true;\n tasks.push(() => result);\n }\n }\n }\n }\n};\n/**\n* Event handler responsible for processing element events.\n*\n* If browser emits an event, the `eventProcessor` walks the DOM tree looking for corresponding\n* `(${event.type})`. If found the event\'s URL is parsed and `import()`ed.\n*\n* @param ev - Browser event.\n*/\nvar processElementEvent = (ev, scope = elementPrefix, allowPreventDefault = true) => {\n const kebabName = camelToKebab(ev.type);\n const scopedKebabName = scope + ":" + kebabName;\n const captureAttribute = capturePrefix + kebabName;\n const elements = [];\n const captureHandlers = [];\n const tasks = [];\n let current = ev.target;\n while (current) if (isElementNode(current)) {\n elements.push(current);\n captureHandlers.push(isCaptureHandlerElement(current, scopedKebabName, captureAttribute));\n current = current.parentElement;\n } else current = current.parentElement;\n for (let i = elements.length - 1; i >= 0; i--) if (captureHandlers[i]) {\n dispatch(elements[i], ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n if (ev.cancelBubble) {\n queueTasks(tasks, ev.type);\n return;\n }\n }\n for (let i = 0; i < elements.length; i++) if (!captureHandlers[i]) {\n dispatch(elements[i], ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n if (!ev.bubbles || ev.cancelBubble) {\n queueTasks(tasks, ev.type);\n return;\n }\n }\n queueTasks(tasks, ev.type);\n};\nvar processPassiveElementEvent = (ev) => processElementEvent(ev, passiveElementPrefix, false);\nvar broadcast = (scope, ev, allowPreventDefault = true) => {\n const kebabName = camelToKebab(ev.type);\n const scopedKebabName = scope + ":" + kebabName;\n const elements = querySelectorAll("[q-" + CSS.escape(scopedKebabName) + "]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, scopedKebabName, tasks, kebabName, allowPreventDefault);\n }\n queueTasks(tasks, ev.type);\n};\n/**\n* Event handler responsible for processing browser events.\n*\n* If browser emits an event, the `eventProcessor` walks the DOM tree looking for corresponding\n* `(${event.type})`. If found the event\'s URL is parsed and `import()`ed.\n*\n* @param ev - Browser event.\n*/\nvar processDocumentEvent = (ev) => {\n broadcast(documentPrefix, ev);\n};\nvar processPassiveDocumentEvent = (ev) => {\n broadcast(passiveDocumentPrefix, ev, false);\n};\nvar processWindowEvent = (ev) => {\n broadcast(windowPrefix, ev);\n};\nvar processPassiveWindowEvent = (ev) => {\n broadcast(passiveWindowPrefix, ev, false);\n};\n/**\n* Called when the document is ready and whenever a container is added, so make this idempotent. For\n* qidle and qinit we remove the attributes immediately, and for qvisible we add an attribute\n*/\nvar processReadyStateChange = () => {\n const readyState = doc.readyState;\n if (readyState == "interactive" || readyState == "complete") {\n hasInitialized = 1;\n roots.forEach(findShadowRoots);\n if (events.has("d:qinit")) {\n events.delete("d:qinit");\n const ev = createEvent("qinit");\n const elements = querySelectorAll("[q-d\\\\:qinit]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, "d:qinit", tasks);\n el.removeAttribute("q-d:qinit");\n }\n queueTasks(tasks, "qinit");\n }\n if (events.has("d:qidle")) {\n events.delete("d:qidle");\n (win.requestIdleCallback ?? win.setTimeout).bind(win)(() => {\n const ev = createEvent("qidle");\n const elements = querySelectorAll("[q-d\\\\:qidle]");\n const tasks = [];\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n dispatch(el, ev, "d:qidle", tasks);\n el.removeAttribute("q-d:qidle");\n }\n queueTasks(tasks, "qidle");\n });\n }\n if (events.has("e:qvisible")) {\n observer || (observer = new IntersectionObserver((entries) => {\n const tasks = [];\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n if (entry.isIntersecting) {\n observer.unobserve(entry.target);\n dispatch(entry.target, createEvent("qvisible", entry), "e:qvisible", tasks);\n }\n }\n queueTasks(tasks, "qvisible");\n }));\n const elements = querySelectorAll("[q-e\\\\:qvisible]:not([q\\\\:observed])");\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i];\n observer.observe(el);\n el.setAttribute("q:observed", "true");\n }\n }\n }\n};\nvar addEventOrRoot = (...eventNames) => {\n for (let i = 0; i < eventNames.length; i++) {\n const eventNameOrRoot = eventNames[i];\n if (eventNameOrRoot === QwikEvContainerReady) markContainerReady(eventNames[++i]);\n else if (typeof eventNameOrRoot === "string") {\n if (!events.has(eventNameOrRoot)) {\n events.add(eventNameOrRoot);\n const { scope, eventName } = parseKebabEvent(eventNameOrRoot);\n const passive = isPassiveScope(scope);\n const rootScope = getRootScope(scope);\n if (rootScope === windowPrefix) addEventListener(win, eventName, passive ? processPassiveWindowEvent : processWindowEvent, true, passive);\n else roots.forEach((root) => addEventListener(root, eventName, rootScope === documentPrefix ? passive ? processPassiveDocumentEvent : processDocumentEvent : passive ? processPassiveElementEvent : processElementEvent, true, passive));\n }\n if (hasInitialized === 1 && (eventNameOrRoot === "e:qvisible" || eventNameOrRoot === "d:qinit" || eventNameOrRoot === "d:qidle")) processReadyStateChange();\n } else if (!roots.has(eventNameOrRoot)) {\n events.forEach((kebabEventName) => {\n const { scope, eventName } = parseKebabEvent(kebabEventName);\n const passive = isPassiveScope(scope);\n const rootScope = getRootScope(scope);\n if (rootScope !== windowPrefix) addEventListener(eventNameOrRoot, eventName, rootScope === documentPrefix ? passive ? processPassiveDocumentEvent : processDocumentEvent : passive ? processPassiveElementEvent : processElementEvent, true, passive);\n });\n roots.add(eventNameOrRoot);\n }\n }\n};\nvar _qwikEv = win._qwikEv;\nif (!_qwikEv?.roots) {\n if (Array.isArray(_qwikEv)) addEventOrRoot(..._qwikEv);\n else addEventOrRoot("e:click", "e:input");\n win._qwikEv = {\n events,\n roots,\n push: addEventOrRoot\n };\n addEventListener(doc, readyStateChange, processReadyStateChange);\n processReadyStateChange();\n}\n//#endregion';
1290
1299
  var QWIK_BACKPATCH_EXECUTOR_MINIFIED = `var t='script[type="qwik/backpatch"]';function e(e,n){const o=n||e.querySelector("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");if(o){const n=o.querySelectorAll(t),r=n[n.length-1];if(r){const t=JSON.parse(r.textContent||"[]"),n=e.createTreeWalker(o,NodeFilter.SHOW_ELEMENT);let c=n.currentNode,i=c.hasAttribute(":")?0:-1;for(let e=0;e<t.length;e+=3){const o=t[e],r=t[e+1];let l=t[e+2];for(;i<o&&(c=n.nextNode(),c);)c.hasAttribute(":")&&i++;const a=c;null==l||!1===l?a.removeAttribute(r):("boolean"==typeof l&&(l=""),a.setAttribute(r,l))}}}}var n=document.currentScript;if(n){const t=n.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");t&&e(document,t)}`;
1291
1300
  var QWIK_BACKPATCH_EXECUTOR_DEBUG = '//#region packages/qwik/src/backpatch-executor-shared.ts\n/**\n* Shared backpatch executor logic that can be imported by both the inline script\n* (backpatch-executor.ts) and test utilities.\n*/\nvar BACKPATCH_DATA_SELECTOR = "script[type=\\"qwik/backpatch\\"]";\n/**\n* Execute backpatch operations on a document.\n*\n* @param doc - The document to execute backpatch on\n* @param containerElement - Optional specific container element (if not provided, will search for\n* it)\n*/\nfunction executeBackpatch(doc, containerElement) {\n const container = containerElement || doc.querySelector("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");\n if (container) {\n const scripts = container.querySelectorAll(BACKPATCH_DATA_SELECTOR);\n const script = scripts[scripts.length - 1];\n if (script) {\n const data = JSON.parse(script.textContent || "[]");\n const walker = doc.createTreeWalker(container, NodeFilter.SHOW_ELEMENT);\n let currentNode = walker.currentNode;\n let currentNodeIdx = currentNode.hasAttribute(":") ? 0 : -1;\n for (let i = 0; i < data.length; i += 3) {\n const elementIdx = data[i];\n const attrName = data[i + 1];\n let value = data[i + 2];\n while (currentNodeIdx < elementIdx) {\n currentNode = walker.nextNode();\n if (!currentNode) break;\n if (currentNode.hasAttribute(":")) currentNodeIdx++;\n }\n const element = currentNode;\n if (value == null || value === false) element.removeAttribute(attrName);\n else {\n if (typeof value === "boolean") value = "";\n element.setAttribute(attrName, value);\n }\n }\n }\n }\n}\n//#endregion\n//#region packages/qwik/src/backpatch-executor.ts\n/**\n* Qwik Backpatch Executor\n*\n* This script executes the backpatch operations by finding the backpatch data script within the\n* same container and applying the patches to the DOM elements.\n*\n* This is the inline script version that auto-executes when loaded in the browser. The actual logic\n* is in backpatch-executor-shared.ts for reusability.\n*/\nvar executorScript = document.currentScript;\nif (executorScript) {\n const container = executorScript.closest("[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])");\n if (container) executeBackpatch(document, container);\n}\n//#endregion';
1292
1301
  var QWIK_OUT_OF_ORDER_EXECUTOR_MINIFIED = `var t='template[q\\\\:r="',e="q:r",r='[q\\\\:rp="',n="q:g",l="q:i",o="q:o",i="[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])",u=u=>{const s=new WeakMap,c=()=>{const t=u.currentScript;return t&&t.closest(i)||u},f=(t,e,r,n)=>{let l=s.get(t);return l||s.set(t,l={}),l[e]||(l[e]={r:{},n:0,t:r,o:n})},a=(t,e)=>t?(e&&e.style&&(e.style.display="none"),t.style&&(t.style.display="contents"),1):0,q=t=>{const e=t.o;let r,n,l=0;if("p"===e)for(const e in t.r)r=t.r[e],r[0]&&a(r[0],r[1])&&(r[0]=0,l++);else if("s"===e)for(n=t.n;(r=t.r[n])&&r[0]&&a(r[0],r[1]);n++)r[0]=0,l++,t.n=n+1;else if("r"===e){if(t.t<0)return 0;for(t.n<0&&(t.n=t.t-1),n=t.n;(r=t.r[n])&&r[0]&&a(r[0],r[1]);n--)r[0]=0,l++,t.n=n-1}else{if(t.t<0)return 0;for(n=0;n<t.t;n++)if(r=t.r[n],!r)return 0;for(n=0;n<t.t;n++)r=t.r[n],r[0]&&a(r[0],r[1])&&(r[0]=0,l++)}return l},p=i=>{const s=c(),p=((r,n)=>{const l=u.currentScript,o=l?l.previousElementSibling:null;if(o&&"template"===o.localName&&o.getAttribute(e)===n+"")return o;const i=r.querySelectorAll(t+n+'"]');return i.length?i[i.length-1]:null})(s,i);if(!p)return;const g=((e,n,l)=>{if(!l)return null;const o=((t,e)=>t.querySelector(r+e+'"]'))(e,n),i=o?((e,r)=>e.querySelector(t+r+'"]'))(o,n):null,u=i?i.parentNode:null;return i&&o&&u?(u.insertBefore(l.content,i),i.remove(),l.remove(),[o,o.previousElementSibling]):null})(s,i,p);if(!g)return;((t,e)=>{var r;const n=u;null===(r=n.qProcessOOOS)||void 0===r||r.call(n,t,e)})(i,g[0]||null);const m=p.getAttribute(n);if(m){const t=+(p.getAttribute(l)||0),e=f(s,m,-1,p.getAttribute(o)||"p");return e.r[t]=g,void q(e)}a(g[0]||null,g[1])};p.g=(t,e,r)=>{const n=f(c(),t,e,r);n.t=e,n.o=r,"r"===n.o&&0===n.n&&(n.n=e-1),q(n)},p.d=u,globalThis.qO=p};u(document)`;
1293
- var QWIK_OUT_OF_ORDER_EXECUTOR_DEBUG = '//#region packages/qwik/src/out-of-order-executor-shared.ts\n/** Shared out-of-order Suspense executor logic for the inline script and source tests. */\nvar Q_RESOLVED_SELECTOR = "template[q\\\\:r=\\"";\nvar Q_RESOLVED_ATTR = "q:r";\nvar Q_RESULT_PARENT_SELECTOR = "[q\\\\:rp=\\"";\nvar Q_GROUP_ATTR = "q:g";\nvar Q_INDEX_ATTR = "q:i";\nvar Q_ORDER_ATTR = "q:o";\nvar Q_CONTAINER_SELECTOR = "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])";\nvar installOutOfOrderExecutor = (doc) => {\n const groups = /* @__PURE__ */ new WeakMap();\n const process = (boundaryId, revealNode) => {\n var _executorDoc$qProcess;\n const executorDoc = doc;\n (_executorDoc$qProcess = executorDoc.qProcessOOOS) === null || _executorDoc$qProcess === void 0 || _executorDoc$qProcess.call(executorDoc, boundaryId, revealNode);\n };\n const getScope = () => {\n const script = doc.currentScript;\n return script ? script.closest(Q_CONTAINER_SELECTOR) || doc : doc;\n };\n const group = (scope, groupId, total, order) => {\n let scopedGroups = groups.get(scope);\n if (!scopedGroups) groups.set(scope, scopedGroups = {});\n return scopedGroups[groupId] || (scopedGroups[groupId] = {\n r: {},\n n: 0,\n t: total,\n o: order\n });\n };\n const getResolvedTemplate = (scope, boundaryId) => {\n const currentScript = doc.currentScript;\n const previousElement = currentScript ? currentScript.previousElementSibling : null;\n if (previousElement && previousElement.localName === "template" && previousElement.getAttribute(Q_RESOLVED_ATTR) === String(boundaryId)) return previousElement;\n const templates = scope.querySelectorAll(Q_RESOLVED_SELECTOR + boundaryId + "\\"]");\n return templates.length ? templates[templates.length - 1] : null;\n };\n const getPlaceholderTemplate = (revealHost, boundaryId) => {\n return revealHost.querySelector(Q_RESOLVED_SELECTOR + boundaryId + "\\"]");\n };\n const getResultParent = (scope, boundaryId) => {\n return scope.querySelector(Q_RESULT_PARENT_SELECTOR + boundaryId + "\\"]");\n };\n const reveal = (revealHost, hideHost) => {\n if (!revealHost) return 0;\n if (hideHost && hideHost.style) hideHost.style.display = "none";\n if (revealHost.style) revealHost.style.display = "contents";\n return 1;\n };\n const move = (scope, boundaryId, resolved) => {\n if (!resolved) return null;\n const revealHost = getResultParent(scope, boundaryId);\n const placeholder = revealHost ? getPlaceholderTemplate(revealHost, boundaryId) : null;\n const parent = placeholder ? placeholder.parentNode : null;\n if (!placeholder || !revealHost || !parent) return null;\n parent.insertBefore(resolved.content, placeholder);\n placeholder.remove();\n resolved.remove();\n return [revealHost, revealHost.previousElementSibling];\n };\n const flush = (group) => {\n const order = group.o;\n let entry;\n let index;\n let swapped = 0;\n if (order === "p") for (const key in group.r) {\n entry = group.r[key];\n if (entry[0] && reveal(entry[0], entry[1])) {\n entry[0] = 0;\n swapped++;\n }\n }\n else if (order === "s") for (index = group.n; (entry = group.r[index]) && entry[0]; index++) {\n if (!reveal(entry[0], entry[1])) break;\n entry[0] = 0;\n swapped++;\n group.n = index + 1;\n }\n else if (order === "r") {\n if (group.t < 0) return 0;\n if (group.n < 0) group.n = group.t - 1;\n for (index = group.n; (entry = group.r[index]) && entry[0]; index--) {\n if (!reveal(entry[0], entry[1])) break;\n entry[0] = 0;\n swapped++;\n group.n = index - 1;\n }\n } else {\n if (group.t < 0) return 0;\n for (index = 0; index < group.t; index++) {\n entry = group.r[index];\n if (!entry) return 0;\n }\n for (index = 0; index < group.t; index++) {\n entry = group.r[index];\n if (entry[0] && reveal(entry[0], entry[1])) {\n entry[0] = 0;\n swapped++;\n }\n }\n }\n return swapped;\n };\n const qO = ((boundaryId) => {\n const scope = getScope();\n const resolved = getResolvedTemplate(scope, boundaryId);\n if (!resolved) return;\n const entry = move(scope, boundaryId, resolved);\n if (!entry) return;\n process(boundaryId, entry[0] || null);\n const groupId = resolved.getAttribute(Q_GROUP_ATTR);\n if (groupId) {\n const index = +(resolved.getAttribute(Q_INDEX_ATTR) || 0);\n const currentGroup = group(scope, groupId, -1, resolved.getAttribute(Q_ORDER_ATTR) || "p");\n currentGroup.r[index] = entry;\n flush(currentGroup);\n return;\n }\n reveal(entry[0] || null, entry[1]);\n });\n qO.g = (groupId, total, order) => {\n const currentGroup = group(getScope(), groupId, total, order);\n currentGroup.t = total;\n currentGroup.o = order;\n if (currentGroup.o === "r" && currentGroup.n === 0) currentGroup.n = total - 1;\n flush(currentGroup);\n };\n qO.d = doc;\n globalThis.qO = qO;\n};\n//#endregion\n//#region packages/qwik/src/out-of-order-executor.ts\n/**\n* Qwik Out-of-Order Suspense Executor\n*\n* This is the inline script entry. The actual logic lives in out-of-order-executor-shared.ts so\n* source tests can install the same executor.\n*/\ninstallOutOfOrderExecutor(document);\n//#endregion';
1294
- var QWIK_ERROR_SWAP_EXECUTOR_MINIFIED = `var t='[q\\\\:ebc="',e='[q\\\\:ebf="',n="[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])",o=t=>{const e=t.querySelectorAll("*");for(let t=0;t<e.length;t++){const n=e[t].attributes;for(let o=n.length-1;o>=0;o--){const l=n[o].name;0!==l.indexOf("q-d:")&&0!==l.indexOf("q-w:")||e[t].removeAttribute(l)}}},l=l=>{const r=r=>{var c;const s=(null===(c=l.currentScript)||void 0===c?void 0:c.closest(n))||l,i=s.querySelector(t+r+'"]'),q=s.querySelector(e+r+'"]');i&&i.style&&(i.style.display="none",o(i)),q&&q.style&&(q.style.display="contents")};r.d=l,globalThis.qErr=r};l(document)`;
1295
- var QWIK_ERROR_SWAP_EXECUTOR_DEBUG = '//#region packages/qwik/src/error-swap-executor-shared.ts\nvar Q_ERROR_CONTENT_SELECTOR = "[q\\\\:ebc=\\"";\nvar Q_ERROR_FALLBACK_SELECTOR = "[q\\\\:ebf=\\"";\nvar Q_CONTAINER_SELECTOR = "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])";\n/**\n* Qwikloader broadcasts document/window events to every matching element in the document, and\n* `display:none` still counts as connected, so a torn-down subtree keeps handling them.\n*/\nvar stripBroadcastHandlers = (content) => {\n const nodes = content.querySelectorAll("*");\n for (let i = 0; i < nodes.length; i++) {\n const attrs = nodes[i].attributes;\n for (let j = attrs.length - 1; j >= 0; j--) {\n const name = attrs[j].name;\n if (name.indexOf("q-d:") === 0 || name.indexOf("q-w:") === 0) nodes[i].removeAttribute(name);\n }\n }\n};\nvar installErrorSwapExecutor = (doc) => {\n const qErr = ((boundaryId) => {\n var _doc$currentScript;\n const scope = ((_doc$currentScript = doc.currentScript) === null || _doc$currentScript === void 0 ? void 0 : _doc$currentScript.closest(Q_CONTAINER_SELECTOR)) || doc;\n const content = scope.querySelector(Q_ERROR_CONTENT_SELECTOR + boundaryId + "\\"]");\n const fallback = scope.querySelector(Q_ERROR_FALLBACK_SELECTOR + boundaryId + "\\"]");\n if (content && content.style) {\n content.style.display = "none";\n stripBroadcastHandlers(content);\n }\n if (fallback && fallback.style) fallback.style.display = "contents";\n });\n qErr.d = doc;\n globalThis.qErr = qErr;\n};\n//#endregion\n//#region packages/qwik/src/error-swap-executor.ts\ninstallErrorSwapExecutor(document);\n//#endregion';
1302
+ var QWIK_OUT_OF_ORDER_EXECUTOR_DEBUG = '//#region packages/qwik/src/out-of-order-executor-shared.ts\n/** Shared out-of-order streaming executor logic for the inline script and source tests. */\nvar Q_RESOLVED_SELECTOR = "template[q\\\\:r=\\"";\nvar Q_RESOLVED_ATTR = "q:r";\nvar Q_RESULT_PARENT_SELECTOR = "[q\\\\:rp=\\"";\nvar Q_GROUP_ATTR = "q:g";\nvar Q_INDEX_ATTR = "q:i";\nvar Q_ORDER_ATTR = "q:o";\nvar Q_CONTAINER_SELECTOR = "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])";\nvar installOutOfOrderExecutor = (doc) => {\n const groups = /* @__PURE__ */ new WeakMap();\n const process = (boundaryId, revealNode) => {\n var _executorDoc$qProcess;\n const executorDoc = doc;\n (_executorDoc$qProcess = executorDoc.qProcessOOOS) === null || _executorDoc$qProcess === void 0 || _executorDoc$qProcess.call(executorDoc, boundaryId, revealNode);\n };\n const getScope = () => {\n const script = doc.currentScript;\n return script ? script.closest(Q_CONTAINER_SELECTOR) || doc : doc;\n };\n const group = (scope, groupId, total, order) => {\n let scopedGroups = groups.get(scope);\n if (!scopedGroups) groups.set(scope, scopedGroups = {});\n return scopedGroups[groupId] || (scopedGroups[groupId] = {\n r: {},\n n: 0,\n t: total,\n o: order\n });\n };\n const getResolvedTemplate = (scope, boundaryId) => {\n const currentScript = doc.currentScript;\n const previousElement = currentScript ? currentScript.previousElementSibling : null;\n if (previousElement && previousElement.localName === "template" && previousElement.getAttribute(Q_RESOLVED_ATTR) === String(boundaryId)) return previousElement;\n const templates = scope.querySelectorAll(Q_RESOLVED_SELECTOR + boundaryId + "\\"]");\n return templates.length ? templates[templates.length - 1] : null;\n };\n const getPlaceholderTemplate = (revealHost, boundaryId) => {\n return revealHost.querySelector(Q_RESOLVED_SELECTOR + boundaryId + "\\"]");\n };\n const getResultParent = (scope, boundaryId) => {\n return scope.querySelector(Q_RESULT_PARENT_SELECTOR + boundaryId + "\\"]");\n };\n const reveal = (revealHost, hideHost) => {\n if (!revealHost) return 0;\n if (hideHost && hideHost.style) hideHost.style.display = "none";\n if (revealHost.style) revealHost.style.display = "contents";\n return 1;\n };\n const move = (scope, boundaryId, resolved) => {\n if (!resolved) return null;\n const revealHost = getResultParent(scope, boundaryId);\n const placeholder = revealHost ? getPlaceholderTemplate(revealHost, boundaryId) : null;\n const parent = placeholder ? placeholder.parentNode : null;\n if (!placeholder || !revealHost || !parent) return null;\n parent.insertBefore(resolved.content, placeholder);\n placeholder.remove();\n resolved.remove();\n return [revealHost, revealHost.previousElementSibling];\n };\n const flush = (group) => {\n const order = group.o;\n let entry;\n let index;\n let swapped = 0;\n if (order === "p") for (const key in group.r) {\n entry = group.r[key];\n if (entry[0] && reveal(entry[0], entry[1])) {\n entry[0] = 0;\n swapped++;\n }\n }\n else if (order === "s") for (index = group.n; (entry = group.r[index]) && entry[0]; index++) {\n if (!reveal(entry[0], entry[1])) break;\n entry[0] = 0;\n swapped++;\n group.n = index + 1;\n }\n else if (order === "r") {\n if (group.t < 0) return 0;\n if (group.n < 0) group.n = group.t - 1;\n for (index = group.n; (entry = group.r[index]) && entry[0]; index--) {\n if (!reveal(entry[0], entry[1])) break;\n entry[0] = 0;\n swapped++;\n group.n = index - 1;\n }\n } else {\n if (group.t < 0) return 0;\n for (index = 0; index < group.t; index++) {\n entry = group.r[index];\n if (!entry) return 0;\n }\n for (index = 0; index < group.t; index++) {\n entry = group.r[index];\n if (entry[0] && reveal(entry[0], entry[1])) {\n entry[0] = 0;\n swapped++;\n }\n }\n }\n return swapped;\n };\n const qO = ((boundaryId) => {\n const scope = getScope();\n const resolved = getResolvedTemplate(scope, boundaryId);\n if (!resolved) return;\n const entry = move(scope, boundaryId, resolved);\n if (!entry) return;\n process(boundaryId, entry[0] || null);\n const groupId = resolved.getAttribute(Q_GROUP_ATTR);\n if (groupId) {\n const index = +(resolved.getAttribute(Q_INDEX_ATTR) || 0);\n const currentGroup = group(scope, groupId, -1, resolved.getAttribute(Q_ORDER_ATTR) || "p");\n currentGroup.r[index] = entry;\n flush(currentGroup);\n return;\n }\n reveal(entry[0] || null, entry[1]);\n });\n qO.g = (groupId, total, order) => {\n const currentGroup = group(getScope(), groupId, total, order);\n currentGroup.t = total;\n currentGroup.o = order;\n if (currentGroup.o === "r" && currentGroup.n === 0) currentGroup.n = total - 1;\n flush(currentGroup);\n };\n qO.d = doc;\n globalThis.qO = qO;\n};\n//#endregion\n//#region packages/qwik/src/out-of-order-executor.ts\n/**\n* Qwik Out-of-Order Streaming Executor\n*\n* This is the inline script entry. The actual logic lives in out-of-order-executor-shared.ts so\n* source tests can install the same executor.\n*/\ninstallOutOfOrderExecutor(document);\n//#endregion';
1303
+ var QWIK_ERROR_SWAP_EXECUTOR_MINIFIED = `var t='[q\\\\:cc="',e='[q\\\\:cf="',n="[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])",o=t=>{const e=t.querySelectorAll("*");for(let t=0;t<e.length;t++){const n=e[t].attributes;for(let o=n.length-1;o>=0;o--){const l=n[o].name;0!==l.indexOf("q-d:")&&0!==l.indexOf("q-w:")||e[t].removeAttribute(l)}}},l=l=>{const r=r=>{var c;const s=(null===(c=l.currentScript)||void 0===c?void 0:c.closest(n))||l,i=s.querySelector(t+r+'"]'),q=s.querySelector(e+r+'"]');i&&i.style&&(i.style.display="none",o(i)),q&&q.style&&(q.style.display="contents")};r.d=l,globalThis.qErr=r};l(document)`;
1304
+ var QWIK_ERROR_SWAP_EXECUTOR_DEBUG = '//#region packages/qwik/src/error-swap-executor-shared.ts\nvar Q_ERROR_CONTENT_SELECTOR = "[q\\\\:cc=\\"";\nvar Q_ERROR_FALLBACK_SELECTOR = "[q\\\\:cf=\\"";\nvar Q_CONTAINER_SELECTOR = "[q\\\\:container]:not([q\\\\:container=html]):not([q\\\\:container=text])";\n/**\n* Qwikloader broadcasts document/window events to every matching element in the document, and\n* `display:none` still counts as connected, so a torn-down subtree keeps handling them.\n*/\nvar stripBroadcastHandlers = (content) => {\n const nodes = content.querySelectorAll("*");\n for (let i = 0; i < nodes.length; i++) {\n const attrs = nodes[i].attributes;\n for (let j = attrs.length - 1; j >= 0; j--) {\n const name = attrs[j].name;\n if (name.indexOf("q-d:") === 0 || name.indexOf("q-w:") === 0) nodes[i].removeAttribute(name);\n }\n }\n};\nvar installErrorSwapExecutor = (doc) => {\n const qErr = ((boundaryId) => {\n var _doc$currentScript;\n const scope = ((_doc$currentScript = doc.currentScript) === null || _doc$currentScript === void 0 ? void 0 : _doc$currentScript.closest(Q_CONTAINER_SELECTOR)) || doc;\n const content = scope.querySelector(Q_ERROR_CONTENT_SELECTOR + boundaryId + "\\"]");\n const fallback = scope.querySelector(Q_ERROR_FALLBACK_SELECTOR + boundaryId + "\\"]");\n if (content && content.style) {\n content.style.display = "none";\n stripBroadcastHandlers(content);\n }\n if (fallback && fallback.style) fallback.style.display = "contents";\n });\n qErr.d = doc;\n globalThis.qErr = qErr;\n};\n//#endregion\n//#region packages/qwik/src/error-swap-executor.ts\ninstallErrorSwapExecutor(document);\n//#endregion';
1296
1305
  function getQwikLoaderScript(opts = {}) {
1297
1306
  return opts.debug ? QWIK_LOADER_DEFAULT_DEBUG : QWIK_LOADER_DEFAULT_MINIFIED;
1298
1307
  }
@@ -1305,7 +1314,7 @@ function getQwikBackpatchExecutorScript(opts = {}) {
1305
1314
  return opts.debug ? QWIK_BACKPATCH_EXECUTOR_DEBUG : QWIK_BACKPATCH_EXECUTOR_MINIFIED;
1306
1315
  }
1307
1316
  function getQwikOutOfOrderExecutorScript(opts = {}) {
1308
- if (!__EXPERIMENTAL__.suspense) {
1317
+ if (!__EXPERIMENTAL__.pendingBoundary) {
1309
1318
  return "";
1310
1319
  }
1311
1320
  const script = opts.debug ? QWIK_OUT_OF_ORDER_EXECUTOR_DEBUG : QWIK_OUT_OF_ORDER_EXECUTOR_MINIFIED;
@@ -1322,7 +1331,8 @@ function getQwikErrorSwapExecutorScript(opts = {}) {
1322
1331
  import {
1323
1332
  _isJSXNode as isJSXNode,
1324
1333
  _EMPTY_OBJ,
1325
- _EFFECT_BACK_REF
1334
+ _EFFECT_BACK_REF,
1335
+ _hasSlotProps
1326
1336
  } from "@qwik.dev/core/internal";
1327
1337
  import { isDev as isDev7 } from "@qwik.dev/core/build";
1328
1338
  var SsrNode = class {
@@ -1392,6 +1402,9 @@ var SsrNode = class {
1392
1402
  return this.attrs[name] ?? null;
1393
1403
  }
1394
1404
  }
1405
+ hasSlotProps() {
1406
+ return _hasSlotProps(this.attrs);
1407
+ }
1395
1408
  removeProp(name) {
1396
1409
  if (name.startsWith(NON_SERIALIZABLE_MARKER_PREFIX)) {
1397
1410
  if (this.localProps) {
@@ -1922,7 +1935,7 @@ function getBuildBase(opts) {
1922
1935
  return `${import.meta.env?.BASE_URL || "/"}build/`;
1923
1936
  }
1924
1937
  var versions = {
1925
- qwik: "2.0.0-beta.43-dev+e478dfb",
1938
+ qwik: "2.0.0-beta.47-dev+919c91b",
1926
1939
  qwikDom: "2.1.19"
1927
1940
  };
1928
1941
 
@@ -1961,11 +1974,25 @@ function vNodeData_openElement(vNodeData) {
1961
1974
  vNodeData.push({}, WRITE_ELEMENT_ATTRS);
1962
1975
  vNodeData[0] |= 4 /* ELEMENT_NODE */;
1963
1976
  }
1977
+ var vnodeDataCursors = /* @__PURE__ */ new WeakMap();
1964
1978
  function vNodeData_createSsrNodeReference(currentComponentNode, vNodeData, depthFirstElementIdx, cleanupQueue, currentFile) {
1965
1979
  vNodeData[0] |= 8 /* REFERENCE */;
1966
- const stack = [-1];
1967
- let attributesIndex = -1;
1968
- for (let i = 1; i < vNodeData.length; i++) {
1980
+ const shouldTrack = vNodeData.length >= 16;
1981
+ const cursor = shouldTrack ? vnodeDataCursors.get(vNodeData) : void 0;
1982
+ const saved = cursor && cursor.firstEntry === vNodeData[1] ? cursor : void 0;
1983
+ const stack = saved ? saved.stack.slice() : [-1];
1984
+ let attributesIndex = saved ? saved.attributesIndex : -1;
1985
+ let hasSavedCursor = false;
1986
+ for (let i = saved ? saved.index : 1; i < vNodeData.length; i++) {
1987
+ if (shouldTrack && i === vNodeData.length - 1) {
1988
+ vnodeDataCursors.set(vNodeData, {
1989
+ index: i,
1990
+ stack: stack.slice(),
1991
+ attributesIndex,
1992
+ firstEntry: vNodeData[1]
1993
+ });
1994
+ hasSavedCursor = true;
1995
+ }
1969
1996
  const value = vNodeData[i];
1970
1997
  if (typeof value === "object" && value !== null) {
1971
1998
  attributesIndex = i;
@@ -1983,6 +2010,14 @@ function vNodeData_createSsrNodeReference(currentComponentNode, vNodeData, depth
1983
2010
  stack[stack.length - 1]++;
1984
2011
  }
1985
2012
  }
2013
+ if (shouldTrack && !hasSavedCursor) {
2014
+ vnodeDataCursors.set(vNodeData, {
2015
+ index: vNodeData.length,
2016
+ stack: stack.slice(),
2017
+ attributesIndex,
2018
+ firstEntry: vNodeData[1]
2019
+ });
2020
+ }
1986
2021
  let refId = String(depthFirstElementIdx);
1987
2022
  if (vNodeData[0] & (2 /* VIRTUAL_NODE */ | 1 /* TEXT_DATA */)) {
1988
2023
  for (let i = 0; i < stack.length; i++) {
@@ -2167,10 +2202,10 @@ var SSRContainer = class extends _SharedContainer {
2167
2202
  this.renderOptions = opts.renderOptions;
2168
2203
  this.$transformError$ = opts.renderOptions.transformError;
2169
2204
  const outOfOrderStreaming = this.renderOptions.streaming?.outOfOrder === true;
2170
- if (!__EXPERIMENTAL__.suspense) {
2205
+ if (!__EXPERIMENTAL__.pendingBoundary) {
2171
2206
  if (outOfOrderStreaming) {
2172
2207
  throw new Error(
2173
- 'Out-of-order Suspense streaming requires `experimental: ["suspense"]` in the `qwikVite` plugin.'
2208
+ 'Out-of-order streaming requires `experimental: ["pendingBoundary"]` in the `qwikVite` plugin.'
2174
2209
  );
2175
2210
  }
2176
2211
  this.outOfOrderStreaming = false;
@@ -2219,7 +2254,7 @@ var SSRContainer = class extends _SharedContainer {
2219
2254
  }
2220
2255
  /** Queue OOOS serialization/write work that must not overlap with root state serialization. */
2221
2256
  $runQueuedRender$(render) {
2222
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming) {
2257
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming) {
2223
2258
  return render();
2224
2259
  }
2225
2260
  if (this.$containerState$ === 0 /* NotReady */) {
@@ -2231,7 +2266,7 @@ var SSRContainer = class extends _SharedContainer {
2231
2266
  return result;
2232
2267
  }
2233
2268
  $waitForRootContainerReady$() {
2234
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || this.$isReadyForOOOS$()) {
2269
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || this.$isReadyForOOOS$()) {
2235
2270
  return;
2236
2271
  }
2237
2272
  return this.rootContainerReadyPromise ||= new Promise((resolve) => {
@@ -2239,7 +2274,7 @@ var SSRContainer = class extends _SharedContainer {
2239
2274
  });
2240
2275
  }
2241
2276
  $markRootContainerReady$() {
2242
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || this.$isReadyForOOOS$()) {
2277
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || this.$isReadyForOOOS$()) {
2243
2278
  return;
2244
2279
  }
2245
2280
  this.rootContainerSerializedRootCount = this.serializationCtx.$roots$.length;
@@ -2249,8 +2284,8 @@ var SSRContainer = class extends _SharedContainer {
2249
2284
  this.rootContainerReadyPromise = null;
2250
2285
  }
2251
2286
  nextOutOfOrderId(markUsed = true) {
2252
- const ooosActive = __EXPERIMENTAL__.suspense && this.outOfOrderStreaming;
2253
- if (!ooosActive && !__EXPERIMENTAL__.errorBoundary) {
2287
+ const ooosActive = __EXPERIMENTAL__.pendingBoundary && this.outOfOrderStreaming;
2288
+ if (!ooosActive && !__EXPERIMENTAL__.catchBoundary) {
2254
2289
  return 0;
2255
2290
  }
2256
2291
  if (markUsed && ooosActive) {
@@ -2259,21 +2294,19 @@ var SSRContainer = class extends _SharedContainer {
2259
2294
  return ++this.outOfOrderId;
2260
2295
  }
2261
2296
  emitOutOfOrderSegmentScripts(scripts) {
2262
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || !scripts) {
2297
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || !scripts) {
2263
2298
  return;
2264
2299
  }
2265
2300
  this.write(scripts);
2266
2301
  }
2267
2302
  async segment(segmentId, jsx, options) {
2268
- if (!__EXPERIMENTAL__.suspense) {
2303
+ if (!__EXPERIMENTAL__.pendingBoundary) {
2269
2304
  throw new Error(
2270
- 'Out-of-order Suspense streaming requires `experimental: ["suspense"]` in the `qwikVite` plugin.'
2305
+ 'Out-of-order streaming requires `experimental: ["pendingBoundary"]` in the `qwikVite` plugin.'
2271
2306
  );
2272
2307
  }
2273
2308
  if (!this.outOfOrderStreaming) {
2274
- throw new Error(
2275
- "Out-of-order Suspense streaming requires `streaming.outOfOrder` to be `true`."
2276
- );
2309
+ throw new Error("Out-of-order streaming requires `streaming.outOfOrder` to be `true`.");
2277
2310
  }
2278
2311
  this.outOfOrderUsed = true;
2279
2312
  this.markVNodeRefForSerialization(options.parentComponentFrame?.componentNode);
@@ -2310,7 +2343,7 @@ var SSRContainer = class extends _SharedContainer {
2310
2343
  parent: null,
2311
2344
  elementName: "#segment",
2312
2345
  depthFirstElementIdx: -1,
2313
- // OOOS inserts this synthetic root under the Suspense content host on the client.
2346
+ // OOOS inserts this synthetic root under the Pending content host on the client.
2314
2347
  vNodeData: [16 /* SERIALIZE */],
2315
2348
  currentFile: null,
2316
2349
  refBase: contentHostNode.id
@@ -2349,7 +2382,7 @@ var SSRContainer = class extends _SharedContainer {
2349
2382
  return segmentContainer;
2350
2383
  }
2351
2384
  queueOutOfOrderSegment(segment) {
2352
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming) {
2385
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming) {
2353
2386
  return;
2354
2387
  }
2355
2388
  this.outOfOrderPendingSegments.push(segment);
@@ -2729,7 +2762,7 @@ var SSRContainer = class extends _SharedContainer {
2729
2762
  ////////////////////////////////////
2730
2763
  emitContainerData() {
2731
2764
  const isStreamingDisabled = this.renderOptions.streaming?.inOrder?.strategy === "disabled";
2732
- const shouldFlushShell = !isStreamingDisabled || __EXPERIMENTAL__.suspense && this.outOfOrderStreaming && this.outOfOrderUsed;
2765
+ const shouldFlushShell = !isStreamingDisabled || __EXPERIMENTAL__.pendingBoundary && this.outOfOrderStreaming && this.outOfOrderUsed;
2733
2766
  return maybeThen(
2734
2767
  maybeThen(
2735
2768
  shouldFlushShell ? this.streamHandler.flush() : void 0,
@@ -2756,7 +2789,7 @@ var SSRContainer = class extends _SharedContainer {
2756
2789
  this.emitQwikLoaderAtBottomIfNeeded();
2757
2790
  }
2758
2791
  emitDelayedOutOfOrderSegmentVNodeData() {
2759
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || !this.outOfOrderUsed) {
2792
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || !this.outOfOrderUsed) {
2760
2793
  return;
2761
2794
  }
2762
2795
  for (let i = 0; i < this.outOfOrderSegments.length; i++) {
@@ -2768,7 +2801,7 @@ var SSRContainer = class extends _SharedContainer {
2768
2801
  }
2769
2802
  }
2770
2803
  emitOutOfOrderSegmentsAndData() {
2771
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || !this.outOfOrderUsed) {
2804
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || !this.outOfOrderUsed) {
2772
2805
  return;
2773
2806
  }
2774
2807
  this.emitOutOfOrderExecutorIfNeeded();
@@ -2806,8 +2839,8 @@ var SSRContainer = class extends _SharedContainer {
2806
2839
  }
2807
2840
  emitVNodeDataScript(segmentId, entries, patch = false) {
2808
2841
  const attrs = { type: "qwik/vnode" };
2809
- if (__EXPERIMENTAL__.suspense && this.outOfOrderStreaming && segmentId) {
2810
- attrs[QSuspenseResolved] = segmentId;
2842
+ if (__EXPERIMENTAL__.pendingBoundary && this.outOfOrderStreaming && segmentId) {
2843
+ attrs[QPendingResolved] = segmentId;
2811
2844
  }
2812
2845
  if (patch) {
2813
2846
  attrs[QStatePatchAttr] = true;
@@ -2885,7 +2918,7 @@ var SSRContainer = class extends _SharedContainer {
2885
2918
  }
2886
2919
  }
2887
2920
  markVNodeDataOwnerEmitted(segmentId) {
2888
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming) {
2921
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming) {
2889
2922
  return;
2890
2923
  }
2891
2924
  (this.emittedVNodeDataOwners ||= /* @__PURE__ */ new Set()).add(segmentId);
@@ -3079,7 +3112,7 @@ var SSRContainer = class extends _SharedContainer {
3079
3112
  this.writeScript(scriptAttrs, backpatchScript);
3080
3113
  }
3081
3114
  emitOutOfOrderExecutorIfNeeded() {
3082
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || !this.outOfOrderUsed || this.isOutOfOrderExecutorEmitted) {
3115
+ if (!__EXPERIMENTAL__.pendingBoundary || !this.outOfOrderStreaming || !this.outOfOrderUsed || this.isOutOfOrderExecutorEmitted) {
3083
3116
  return;
3084
3117
  }
3085
3118
  this.isOutOfOrderExecutorEmitted = true;
@@ -3089,7 +3122,7 @@ var SSRContainer = class extends _SharedContainer {
3089
3122
  );
3090
3123
  }
3091
3124
  emitErrorSwapExecutorIfNeeded() {
3092
- if (!__EXPERIMENTAL__.errorBoundary || this.isErrorSwapExecutorEmitted) {
3125
+ if (!__EXPERIMENTAL__.catchBoundary || this.isErrorSwapExecutorEmitted) {
3093
3126
  return;
3094
3127
  }
3095
3128
  this.isErrorSwapExecutorEmitted = true;
@@ -3126,7 +3159,7 @@ var SSRContainer = class extends _SharedContainer {
3126
3159
  }
3127
3160
  }
3128
3161
  isStatic() {
3129
- return !(__EXPERIMENTAL__.suspense && this.outOfOrderStreaming && this.outOfOrderUsed) && this.serializationCtx.$eventQrls$.size === 0;
3162
+ return !(__EXPERIMENTAL__.pendingBoundary && this.outOfOrderStreaming && this.outOfOrderUsed) && this.serializationCtx.$eventQrls$.size === 0;
3130
3163
  }
3131
3164
  emitQwikLoaderAtTopIfNeeded() {
3132
3165
  if (this.qlInclude === 0 /* Module */) {
@@ -3535,12 +3568,12 @@ var SSRSegmentContainer = class extends SSRContainer {
3535
3568
  this.serializationCtx.$onAddRoot$ = void 0;
3536
3569
  }
3537
3570
  }
3538
- markVNodeDataForSerialization(node, flags = 16 /* SERIALIZE */) {
3571
+ markVNodeDataForSerialization(node, flags = 16 /* SERIALIZE */, isStateRoot = false) {
3539
3572
  const previousFlags = node.vnodeData[0];
3540
3573
  const nextFlags = previousFlags | flags;
3541
- if (nextFlags !== previousFlags) {
3542
- node.vnodeData[0] = nextFlags;
3543
- this.queueLateVNodeDataPatch(node, nextFlags & ~previousFlags);
3574
+ node.vnodeData[0] = nextFlags;
3575
+ if (isStateRoot || nextFlags !== previousFlags) {
3576
+ this.queueLateVNodeDataPatch(node, isStateRoot ? nextFlags : nextFlags & ~previousFlags);
3544
3577
  }
3545
3578
  }
3546
3579
  queueLateVNodeDataPatch(node, addedFlags) {
@@ -3686,7 +3719,7 @@ var SSRSegmentContainer = class extends SSRContainer {
3686
3719
  const attrs = this.stateScriptAttrs();
3687
3720
  attrs[QStatePatchAttr] = true;
3688
3721
  if (segmentId) {
3689
- attrs[QSuspenseResolved] = segmentId;
3722
+ attrs[QPendingResolved] = segmentId;
3690
3723
  }
3691
3724
  return attrs;
3692
3725
  }
@@ -3891,7 +3924,7 @@ var renderToString = async (jsx, opts = {}) => {
3891
3924
  };
3892
3925
  };
3893
3926
  var renderToStream = async (jsx, opts) => {
3894
- if (__EXPERIMENTAL__.suspense && opts.streaming?.outOfOrder === void 0) {
3927
+ if (__EXPERIMENTAL__.pendingBoundary && opts.streaming?.outOfOrder === void 0) {
3895
3928
  opts = {
3896
3929
  ...opts,
3897
3930
  streaming: {
@@ -3922,7 +3955,7 @@ var renderToStream = async (jsx, opts) => {
3922
3955
  });
3923
3956
  const onBeforeFirstFlush = opts.onBeforeFirstFlush;
3924
3957
  if (onBeforeFirstFlush) {
3925
- streamHandler.onFirstWrite = () => onBeforeFirstFlush({ errorBoundaryCaught: ssrContainer.$hasBoundaryError$ === true });
3958
+ streamHandler.onFirstWrite = () => onBeforeFirstFlush({ hasCaughtError: ssrContainer.$hasBoundaryError$ === true });
3926
3959
  }
3927
3960
  await setServerPlatform(opts, resolvedManifest);
3928
3961
  await ssrContainer.render(jsx);
@@ -3934,7 +3967,7 @@ var renderToStream = async (jsx, opts) => {
3934
3967
  size: ssrContainer.size,
3935
3968
  isStatic: false,
3936
3969
  timing,
3937
- errorBoundaryCaught: ssrContainer.$hasBoundaryError$ === true
3970
+ hasCaughtError: ssrContainer.$hasBoundaryError$ === true
3938
3971
  };
3939
3972
  return result;
3940
3973
  };