@qwik.dev/core 2.0.0-beta.38 → 2.0.0-beta.39

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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * @qwik.dev/core/testing 2.0.0-beta.38-dev+0339f17
3
+ * @qwik.dev/core/testing 2.0.0-beta.39-dev+6fb620f
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
@@ -13,7 +13,11 @@ var __getProtoOf = Object.getPrototypeOf;
13
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
14
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
15
  var __commonJS = (cb, mod) => function __require() {
16
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
16
+ try {
17
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
18
+ } catch (e) {
19
+ throw mod = 0, e;
20
+ }
17
21
  };
18
22
  var __copyProps = (to, from, except, desc) => {
19
23
  if (from && typeof from === "object" || typeof from === "function") {
@@ -21728,6 +21732,7 @@ var VirtualTypeName = {
21728
21732
 
21729
21733
  // packages/qwik/src/core/shared/utils/markers.ts
21730
21734
  var OnRenderProp = "q:renderFn";
21735
+ var QComponentHash = "q:componentHash";
21731
21736
  var QTargetElement = "q:targetEl";
21732
21737
  var ComponentStylesPrefixContent = "\u26A1\uFE0F";
21733
21738
  var QSlot = "q:slot";
@@ -21763,7 +21768,6 @@ var QIgnore = "q:ignore";
21763
21768
  var QIgnoreEnd = "/" + QIgnore;
21764
21769
  var QContainerAttr = "q:container";
21765
21770
  var QContainerAttrEnd = "/" + QContainerAttr;
21766
- var QCursorBoundary = "q:cursorBoundary";
21767
21771
  var QTemplate = "q:template";
21768
21772
  var QContainerSelector = "[q\\:container]:not([q\\:container=" + "html" /* HTML */ + "]):not([q\\:container=" + "text" /* TEXT */ + "])";
21769
21773
  var HTML_NS = "http://www.w3.org/1999/xhtml";
@@ -21786,6 +21790,7 @@ var NON_SERIALIZABLE_MARKER_PREFIX = ":";
21786
21790
  var USE_ON_LOCAL = NON_SERIALIZABLE_MARKER_PREFIX + "on";
21787
21791
  var USE_ON_LOCAL_SEQ_IDX = NON_SERIALIZABLE_MARKER_PREFIX + "onIdx";
21788
21792
  var USE_ON_LOCAL_FLAGS = NON_SERIALIZABLE_MARKER_PREFIX + "onFlags";
21793
+ var QCursorBoundary = NON_SERIALIZABLE_MARKER_PREFIX + "cursorBoundary";
21789
21794
  var NEAREST_CURSOR_BOUNDARY = NON_SERIALIZABLE_MARKER_PREFIX + "nearestCursorBoundary";
21790
21795
  var Q_PROPS_SEPARATOR = ":";
21791
21796
  var dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
@@ -22023,10 +22028,10 @@ var isRecoverable = (err) => {
22023
22028
  var NEEDS_COMPUTATION = /* @__PURE__ */ Symbol("invalid");
22024
22029
  var EffectSubscription = class {
22025
22030
  constructor(consumer, property, backRef = null, data = null) {
22026
- this.consumer = consumer;
22027
- this.property = property;
22028
- this.backRef = backRef;
22029
- this.data = data;
22031
+ __publicField(this, "consumer", consumer);
22032
+ __publicField(this, "property", property);
22033
+ __publicField(this, "backRef", backRef);
22034
+ __publicField(this, "data", data);
22030
22035
  }
22031
22036
  };
22032
22037
  var STORE_TARGET = /* @__PURE__ */ Symbol("store.target");
@@ -22047,7 +22052,7 @@ Object.freeze(EMPTY_ARRAY);
22047
22052
  Object.freeze(EMPTY_OBJ);
22048
22053
 
22049
22054
  // packages/qwik/src/core/shared/qrl/qrl-class.ts
22050
- import { isBrowser as isBrowser3, isDev as isDev22 } from "@qwik.dev/core/build";
22055
+ import { isBrowser as isBrowser3, isDev as isDev22, isServer as isServer10 } from "@qwik.dev/core/build";
22051
22056
 
22052
22057
  // packages/qwik/src/core/shared/qrl/qrl-class-dev.ts
22053
22058
  import { isBrowser } from "@qwik.dev/core/build";
@@ -22463,7 +22468,7 @@ function createPropsProxy(owner) {
22463
22468
  }
22464
22469
  var PropsProxyHandler = class {
22465
22470
  constructor(owner) {
22466
- this.owner = owner;
22471
+ __publicField(this, "owner", owner);
22467
22472
  __publicField(this, "$effects$");
22468
22473
  __publicField(this, "$container$", null);
22469
22474
  }
@@ -22724,7 +22729,7 @@ var DEBUG2 = false;
22724
22729
  var log2 = (...args) => console.log("COMPUTED SIGNAL", ...args.map(qwikDebugToString));
22725
22730
  var Job = class {
22726
22731
  constructor($signal$, info, $infoVersion$) {
22727
- this.$signal$ = $signal$;
22732
+ __publicField(this, "$signal$", $signal$);
22728
22733
  /** First holds the compute promise and then the cleanup promise */
22729
22734
  __publicField(this, "$promise$", null);
22730
22735
  __publicField(this, "$cleanupRequested$", false);
@@ -22743,7 +22748,7 @@ var Job = class {
22743
22748
  /** Backward compatible cache method for resource */
22744
22749
  cache() {
22745
22750
  isDev10 && console.error(
22746
- "useResource cache() method does not do anything. Use `useComputed$` instead of `useResource$`, use the `expires` option for polling behavior."
22751
+ "useResource cache() method does not do anything. Use `useComputed$` instead of `useResource$`; for polling use the `usePoll` hook from `@qwik.dev/utils`."
22747
22752
  );
22748
22753
  }
22749
22754
  get previous() {
@@ -22794,21 +22799,11 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
22794
22799
  if (options.clientOnly) {
22795
22800
  this.$flags$ |= 64 /* CLIENT_ONLY */ | 512 /* ASYNC_MODE */;
22796
22801
  }
22797
- if (options.allowStale === false) {
22798
- if (isDev10 && initial !== void 0) {
22799
- throw new Error(
22800
- "allowStale: false and initial cannot be used together. allowStale: false clears the value on invalidation, which conflicts with providing an initial value."
22801
- );
22802
- }
22803
- this.$flags$ |= 128 /* CLEAR_ON_INVALIDATE */;
22804
- }
22805
- const expires = options.expires ?? (options.interval ? Math.abs(options.interval) : void 0);
22806
- if (expires) {
22807
- this.expires = expires;
22808
- }
22809
- if (options.poll === false || options.interval !== void 0 && options.interval < 0) {
22810
- this.$flags$ |= 256 /* NO_POLL */;
22811
- }
22802
+ }
22803
+ /** Clear the value so readers see the loading state, then recompute. */
22804
+ clear() {
22805
+ this.$untrackedValue$ = NEEDS_COMPUTATION;
22806
+ this.invalidate();
22812
22807
  }
22813
22808
  invalidate(info) {
22814
22809
  if (arguments.length > 0) {
@@ -22816,7 +22811,7 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
22816
22811
  this.$infoVersion$ = this.$infoVersion$ === void 0 ? 1 : this.$infoVersion$ + 1;
22817
22812
  }
22818
22813
  if (this.$flags$ & 512 /* ASYNC_MODE */) {
22819
- this.$setInvalid$(true, this.$flags$ & 128 /* CLEAR_ON_INVALIDATE */);
22814
+ this.$setInvalid$(true);
22820
22815
  return;
22821
22816
  }
22822
22817
  this.$flags$ |= 1 /* INVALID */;
@@ -22860,9 +22855,7 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
22860
22855
  } else if (this.$current$) {
22861
22856
  this.$current$.$canWrite$ = false;
22862
22857
  }
22863
- this.$clearNextPoll$();
22864
22858
  super.value = value;
22865
- this.$scheduleNextPoll$();
22866
22859
  return;
22867
22860
  }
22868
22861
  super.value = value;
@@ -22982,49 +22975,8 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
22982
22975
  }
22983
22976
  return this.$untrackedError$;
22984
22977
  }
22985
- get expires() {
22986
- return this.$expires$ || 0;
22987
- }
22988
- set expires(value) {
22989
- this.$clearNextPoll$();
22990
- this.$expires$ = value;
22991
- if (this.$expires$ && this.$hasSubscribers$()) {
22992
- this.$scheduleNextPoll$();
22993
- }
22994
- }
22995
- get poll() {
22996
- return !(this.$flags$ & 256 /* NO_POLL */);
22997
- }
22998
- set poll(value) {
22999
- if (value) {
23000
- this.$flags$ &= ~256 /* NO_POLL */;
23001
- } else {
23002
- this.$flags$ |= 256 /* NO_POLL */;
23003
- }
23004
- if (this.$expires$ && this.$hasSubscribers$()) {
23005
- this.$clearNextPoll$();
23006
- this.$scheduleNextPoll$();
23007
- }
23008
- }
23009
- /** @deprecated Use `expires` and `poll` instead. */
23010
- get interval() {
23011
- const expires = this.$expires$ || 0;
23012
- return this.$flags$ & 256 /* NO_POLL */ ? -expires : expires;
23013
- }
23014
- set interval(value) {
23015
- if (value < 0) {
23016
- this.$flags$ |= 256 /* NO_POLL */;
23017
- } else {
23018
- this.$flags$ &= ~256 /* NO_POLL */;
23019
- }
23020
- this.expires = Math.abs(value);
23021
- }
23022
- $setInvalid$(allowRecalc, mustClear) {
22978
+ $setInvalid$(allowRecalc) {
23023
22979
  this.$flags$ |= 1 /* INVALID */;
23024
- this.$clearNextPoll$();
23025
- if (mustClear) {
23026
- this.$untrackedValue$ = NEEDS_COMPUTATION;
23027
- }
23028
22980
  if (allowRecalc && (this.$effects$?.size || this.$loadingEffects$?.size || this.$errorEffects$?.size)) {
23029
22981
  Promise.resolve().then(() => this.$computeIfNeeded$());
23030
22982
  }
@@ -23139,7 +23091,6 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
23139
23091
  this.$container$?.serializationCtx.$eagerResume$.add(this);
23140
23092
  return;
23141
23093
  }
23142
- this.$clearNextPoll$();
23143
23094
  this.$flags$ &= ~1 /* INVALID */;
23144
23095
  const current = this.$current$;
23145
23096
  if (current) {
@@ -23227,7 +23178,6 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
23227
23178
  this.$computeIfNeeded$();
23228
23179
  } else {
23229
23180
  this.untrackedPending = false;
23230
- this.$scheduleNextPoll$();
23231
23181
  }
23232
23182
  }
23233
23183
  }
@@ -23248,7 +23198,6 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
23248
23198
  }
23249
23199
  /** Called after SSR/unmount */
23250
23200
  async $destroy$() {
23251
- this.$clearNextPoll$();
23252
23201
  clearTimeout(this.$computationTimeoutId$);
23253
23202
  const current = this.$current$;
23254
23203
  if (current) {
@@ -23260,25 +23209,6 @@ var ComputedSignalImpl = class extends (_b = SignalImpl, _a2 = _EFFECT_BACK_REF,
23260
23209
  await current?.$promise$;
23261
23210
  }
23262
23211
  }
23263
- $clearNextPoll$() {
23264
- if (this.$pollTimeoutId$ !== void 0) {
23265
- clearTimeout(this.$pollTimeoutId$);
23266
- this.$pollTimeoutId$ = void 0;
23267
- }
23268
- }
23269
- $scheduleNextPoll$() {
23270
- if ((qTest ? isServerPlatform() : isServer5) || !this.$expires$) {
23271
- return;
23272
- }
23273
- this.$clearNextPoll$();
23274
- const allowRecalc = !(this.$flags$ & 256 /* NO_POLL */);
23275
- const mustClear = this.$flags$ & 128 /* CLEAR_ON_INVALIDATE */ && !allowRecalc;
23276
- this.$pollTimeoutId$ = setTimeout(
23277
- () => this.$setInvalid$(allowRecalc, mustClear),
23278
- this.$expires$
23279
- );
23280
- this.$pollTimeoutId$?.unref?.();
23281
- }
23282
23212
  $hasSubscribers$() {
23283
23213
  return !!(this.$effects$?.size || this.$loadingEffects$?.size || this.$errorEffects$?.size);
23284
23214
  }
@@ -23632,9 +23562,9 @@ var isObjectEmpty = (obj) => {
23632
23562
  var _hasOwnProperty = Object.prototype.hasOwnProperty;
23633
23563
  var JSXNodeImpl = class {
23634
23564
  constructor(type, varProps, constProps, children, flags, key, toSort, dev) {
23635
- this.type = type;
23636
- this.children = children;
23637
- this.flags = flags;
23565
+ __publicField(this, "type", type);
23566
+ __publicField(this, "children", children);
23567
+ __publicField(this, "flags", flags);
23638
23568
  __publicField(this, "toSort");
23639
23569
  __publicField(this, "key");
23640
23570
  __publicField(this, "varProps");
@@ -24104,6 +24034,12 @@ var VNodeDataChar = {
24104
24034
  /* ** */
24105
24035
  "<"
24106
24036
  ),
24037
+ RENDER_HASH_PREFIX: (
24038
+ /* **/
24039
+ 95
24040
+ ),
24041
+ // `_` after `<` identifies a component hash.
24042
+ RENDER_HASH_PREFIX_CHAR: "_",
24107
24043
  ID: (
24108
24044
  /* ***************** */
24109
24045
  61
@@ -24493,34 +24429,34 @@ function isAriaAttribute(prop) {
24493
24429
  // packages/qwik/src/core/shared/vnode/types/dom-vnode-operation.ts
24494
24430
  var DeleteOperation = class {
24495
24431
  constructor(target) {
24496
- this.target = target;
24432
+ __publicField(this, "target", target);
24497
24433
  }
24498
24434
  };
24499
24435
  var RemoveAllChildrenOperation = class {
24500
24436
  constructor(target) {
24501
- this.target = target;
24437
+ __publicField(this, "target", target);
24502
24438
  }
24503
24439
  };
24504
24440
  var SetTextOperation = class {
24505
24441
  constructor(target, text) {
24506
- this.target = target;
24507
- this.text = text;
24442
+ __publicField(this, "target", target);
24443
+ __publicField(this, "text", text);
24508
24444
  }
24509
24445
  };
24510
24446
  var InsertOrMoveOperation = class {
24511
24447
  constructor(target, parent, beforeTarget) {
24512
- this.target = target;
24513
- this.parent = parent;
24514
- this.beforeTarget = beforeTarget;
24448
+ __publicField(this, "target", target);
24449
+ __publicField(this, "parent", parent);
24450
+ __publicField(this, "beforeTarget", beforeTarget);
24515
24451
  }
24516
24452
  };
24517
24453
  var SetAttributeOperation = class {
24518
24454
  constructor(target, attrName, attrValue, scopedStyleIdPrefix, isSvg2) {
24519
- this.target = target;
24520
- this.attrName = attrName;
24521
- this.attrValue = attrValue;
24522
- this.scopedStyleIdPrefix = scopedStyleIdPrefix;
24523
- this.isSvg = isSvg2;
24455
+ __publicField(this, "target", target);
24456
+ __publicField(this, "attrName", attrName);
24457
+ __publicField(this, "attrValue", attrValue);
24458
+ __publicField(this, "scopedStyleIdPrefix", scopedStyleIdPrefix);
24459
+ __publicField(this, "isSvg", isSvg2);
24524
24460
  }
24525
24461
  };
24526
24462
  var createDeleteOperation = (target) => new DeleteOperation(target);
@@ -24534,14 +24470,14 @@ function addCursorBoundary(cursorData, vNode) {
24534
24470
  if (!__EXPERIMENTAL__.suspense) {
24535
24471
  return;
24536
24472
  }
24537
- const boundary = getNearestCursorBoundary(cursorData.container, vNode);
24473
+ const boundary = getNearestCursorBoundary(vNode);
24538
24474
  if (!boundary) {
24539
24475
  return;
24540
24476
  }
24541
24477
  const boundaries = cursorData.boundaries || (cursorData.boundaries = []);
24542
24478
  if (!boundaries.includes(boundary)) {
24543
24479
  boundaries.push(boundary);
24544
- boundary.pending.value++;
24480
+ boundary.value++;
24545
24481
  }
24546
24482
  }
24547
24483
  function resolveCursorBoundaries(cursorData) {
@@ -24555,38 +24491,33 @@ function resolveCursorBoundaries(cursorData) {
24555
24491
  cursorData.boundaries = null;
24556
24492
  for (let i2 = 0; i2 < boundaries.length; i2++) {
24557
24493
  const boundary = boundaries[i2];
24558
- boundary.pending.value = Math.max(0, boundary.pending.value - 1);
24559
- boundary.version.value++;
24560
- }
24561
- }
24562
- function getOwnCursorBoundary(container, vNode) {
24563
- if (!__EXPERIMENTAL__.suspense) {
24564
- return null;
24494
+ boundary.value = Math.max(0, boundary.value - 1);
24565
24495
  }
24566
- return container.getHostProp(vNode, QCursorBoundary);
24567
24496
  }
24568
- function getNearestCursorBoundaryProp(vNode) {
24497
+ function getOwnCursorBoundary(vNode) {
24569
24498
  if (!__EXPERIMENTAL__.suspense) {
24570
24499
  return null;
24571
24500
  }
24572
- return vnode_getProp(vNode, NEAREST_CURSOR_BOUNDARY, null) || null;
24501
+ return vnode_getProp(vNode, QCursorBoundary, null) || null;
24573
24502
  }
24574
24503
  function clearNearestCursorBoundary(vNode) {
24575
- if (!__EXPERIMENTAL__.suspense) {
24576
- return;
24577
- }
24578
- vnode_setProp(vNode, NEAREST_CURSOR_BOUNDARY, null);
24504
+ setNearestCursorBoundary(vNode, null);
24579
24505
  }
24580
- function getNearestCursorBoundary(container, vNode) {
24506
+ function getNearestCursorBoundary(vNode) {
24581
24507
  if (!__EXPERIMENTAL__.suspense) {
24582
24508
  return null;
24583
24509
  }
24584
- return getNearestCursorBoundaryProp(vNode) || getOwnCursorBoundary(container, vNode);
24510
+ return vnode_getProp(vNode, NEAREST_CURSOR_BOUNDARY, null) || getOwnCursorBoundary(vNode);
24585
24511
  }
24586
24512
  function setNearestCursorBoundary(vNode, boundary) {
24587
24513
  __EXPERIMENTAL__.suspense && vnode_setProp(vNode, NEAREST_CURSOR_BOUNDARY, boundary);
24588
24514
  }
24589
- function updateDirtySubtreeCursorBoundary(container, vNode, boundary) {
24515
+ function clearCursorBoundary(vNode) {
24516
+ if (__EXPERIMENTAL__.suspense && vNode.props && QCursorBoundary in vNode.props) {
24517
+ vnode_setProp(vNode, QCursorBoundary, null);
24518
+ }
24519
+ }
24520
+ function updateDirtySubtreeCursorBoundary(vNode, boundary) {
24590
24521
  if (!__EXPERIMENTAL__.suspense) {
24591
24522
  return;
24592
24523
  }
@@ -24597,11 +24528,7 @@ function updateDirtySubtreeCursorBoundary(container, vNode, boundary) {
24597
24528
  }
24598
24529
  for (let i2 = 0; i2 < dirtyChildren.length; i2++) {
24599
24530
  const child = dirtyChildren[i2];
24600
- updateDirtySubtreeCursorBoundary(
24601
- container,
24602
- child,
24603
- getOwnCursorBoundary(container, child) || boundary
24604
- );
24531
+ updateDirtySubtreeCursorBoundary(child, getOwnCursorBoundary(child) || boundary);
24605
24532
  }
24606
24533
  }
24607
24534
 
@@ -25066,11 +24993,7 @@ function expectSlot(diffContext) {
25066
24993
  diffContext.$vNewNode$ = vnode_newVirtual();
25067
24994
  vnode_setProp(diffContext.$vNewNode$, QSlot, slotNameKey);
25068
24995
  vnode_setProp(diffContext.$vNewNode$, QCursorBoundary, cursorBoundary);
25069
- updateDirtySubtreeCursorBoundary(
25070
- diffContext.$container$,
25071
- diffContext.$vNewNode$,
25072
- cursorBoundary
25073
- );
24996
+ updateDirtySubtreeCursorBoundary(diffContext.$vNewNode$, cursorBoundary);
25074
24997
  vHost && vnode_setProp(vHost, slotNameKey, diffContext.$vNewNode$);
25075
24998
  isDev13 && vnode_setProp(diffContext.$vNewNode$, DEBUG_TYPE, "P" /* Projection */);
25076
24999
  vnode_insertBefore(
@@ -25086,11 +25009,7 @@ function expectSlot(diffContext) {
25086
25009
  diffContext.$vNewNode$ = vProjectedNode;
25087
25010
  vnode_setProp(diffContext.$vNewNode$, QSlot, slotNameKey);
25088
25011
  vnode_setProp(diffContext.$vNewNode$, QCursorBoundary, cursorBoundary);
25089
- updateDirtySubtreeCursorBoundary(
25090
- diffContext.$container$,
25091
- diffContext.$vNewNode$,
25092
- cursorBoundary
25093
- );
25012
+ updateDirtySubtreeCursorBoundary(diffContext.$vNewNode$, cursorBoundary);
25094
25013
  vHost && vnode_setProp(vHost, slotNameKey, diffContext.$vNewNode$);
25095
25014
  isDev13 && vnode_setProp(diffContext.$vNewNode$, DEBUG_TYPE, "P" /* Projection */);
25096
25015
  vnode_inflateProjectionTrailingText(
@@ -25814,7 +25733,7 @@ function getComponentHash(vNode, getObject) {
25814
25733
  return null;
25815
25734
  }
25816
25735
  const qrl = vnode_getProp(vNode, OnRenderProp, getObject);
25817
- return qrl ? qrl.$hash$ : null;
25736
+ return qrl ? qrl.$hash$ : vnode_getProp(vNode, QComponentHash, null);
25818
25737
  }
25819
25738
  function Projection() {
25820
25739
  }
@@ -26289,7 +26208,7 @@ function findFirstElementNode(jsx2) {
26289
26208
  }
26290
26209
  function injectPlaceholderElement(jsx2, placeholder) {
26291
26210
  if (isJSXNode(jsx2)) {
26292
- if (jsx2.type !== Fragment && !isQwikComponent(jsx2.type)) {
26211
+ if (jsx2.type !== Fragment) {
26293
26212
  return _jsxSorted(Fragment, null, null, [jsx2, placeholder], 0, null);
26294
26213
  }
26295
26214
  if (jsx2.children == null) {
@@ -27163,14 +27082,15 @@ function walkCursor(cursor, until) {
27163
27082
  );
27164
27083
  finishWalk(container, cursor, cursorData, isRunningOnServer);
27165
27084
  }
27166
- function finishWalk(container, cursor, cursorData, isServer12) {
27085
+ function finishWalk(container, cursor, cursorData, isServer13) {
27167
27086
  if (!(cursor.dirty & 1023 /* DIRTY_MASK */)) {
27168
27087
  removeCursorFromQueue(cursor, container);
27169
27088
  DEBUG5 && console.warn("walkCursor: cursor done", cursor.toString());
27170
- if (!isServer12) {
27089
+ if (!isServer13) {
27171
27090
  executeFlushPhase(cursor, container);
27172
27091
  }
27173
27092
  resolveCursorBoundaries(cursorData);
27093
+ clearCursorBoundary(cursor);
27174
27094
  if (cursorData.extraPromises) {
27175
27095
  Promise.all(cursorData.extraPromises).then(() => {
27176
27096
  resolveCursor(container);
@@ -27259,10 +27179,7 @@ function getNextVNode(vNode, cursor, container) {
27259
27179
  return getNextVNode(parent, cursor, container);
27260
27180
  }
27261
27181
  function splitCursorBoundary(container, vNode) {
27262
- if (!__EXPERIMENTAL__.suspense) {
27263
- return false;
27264
- }
27265
- if (!vNode.props || !(QCursorBoundary in vNode.props) || !container.getHostProp(vNode, QCursorBoundary)) {
27182
+ if (!getOwnCursorBoundary(vNode)) {
27266
27183
  return false;
27267
27184
  }
27268
27185
  if (!isCursor(vNode)) {
@@ -27320,15 +27237,15 @@ function propagatePath(target) {
27320
27237
  }
27321
27238
  }
27322
27239
  }
27323
- function propagateToCursorRoot(container, vNode, cursorRoot) {
27240
+ function propagateToCursorRoot(vNode, cursorRoot) {
27324
27241
  reusablePath.push(vNode);
27325
- let cursorBoundary = getOwnCursorBoundary(container, vNode);
27242
+ let cursorBoundary = getOwnCursorBoundary(vNode);
27326
27243
  let current = vNode.slotParent || vNode.parent;
27327
27244
  while (current) {
27328
27245
  const isDirty = current.dirty & 1023 /* DIRTY_MASK */;
27329
27246
  const currentIsCursor = isCursor(current);
27330
27247
  if (__EXPERIMENTAL__.suspense) {
27331
- cursorBoundary || (cursorBoundary = getOwnCursorBoundary(container, current) || (isDirty ? getNearestCursorBoundary(container, current) : null));
27248
+ cursorBoundary || (cursorBoundary = getOwnCursorBoundary(current) || (isDirty ? getNearestCursorBoundary(current) : null));
27332
27249
  }
27333
27250
  if (current === cursorRoot || isDirty) {
27334
27251
  setNearestCursorBoundary(vNode, cursorBoundary);
@@ -27354,14 +27271,14 @@ function propagateToCursorRoot(container, vNode, cursorRoot) {
27354
27271
  reusablePath.length = 0;
27355
27272
  throwErrorAndStop("Cursor root not found in current path!");
27356
27273
  }
27357
- function findAndPropagateToBlockingCursor(container, vNode) {
27274
+ function findAndPropagateToBlockingCursor(vNode) {
27358
27275
  reusablePath.push(vNode);
27359
- let cursorBoundary = __EXPERIMENTAL__.suspense ? getOwnCursorBoundary(container, vNode) : null;
27276
+ let cursorBoundary = getOwnCursorBoundary(vNode);
27360
27277
  let current = vNode.slotParent || vNode.parent;
27361
27278
  while (current) {
27362
27279
  const currentIsCursor = isCursor(current);
27363
27280
  if (__EXPERIMENTAL__.suspense) {
27364
- cursorBoundary || (cursorBoundary = getOwnCursorBoundary(container, current) || (currentIsCursor ? getNearestCursorBoundary(container, current) : null));
27281
+ cursorBoundary || (cursorBoundary = getOwnCursorBoundary(current) || (currentIsCursor ? getNearestCursorBoundary(current) : null));
27365
27282
  }
27366
27283
  if (currentIsCursor) {
27367
27284
  setNearestCursorBoundary(vNode, cursorBoundary);
@@ -27387,7 +27304,7 @@ function markVNodeDirty(container, vNode, bits, cursorRoot = null) {
27387
27304
  if (isPromise(result)) {
27388
27305
  container.$renderPromise$ = container.$renderPromise$ ? container.$renderPromise$.then(() => result) : result;
27389
27306
  }
27390
- return;
27307
+ return result;
27391
27308
  }
27392
27309
  const isRealDirty = bits & 1023 /* DIRTY_MASK */;
27393
27310
  if ((isRealDirty ? prevDirty & 1023 /* DIRTY_MASK */ : prevDirty) || vNode === cursorRoot) {
@@ -27395,13 +27312,13 @@ function markVNodeDirty(container, vNode, bits, cursorRoot = null) {
27395
27312
  }
27396
27313
  const parent = vNode.slotParent || vNode.parent;
27397
27314
  if (cursorRoot && isRealDirty && parent && !parent.dirty) {
27398
- propagateToCursorRoot(container, vNode, cursorRoot);
27315
+ propagateToCursorRoot(vNode, cursorRoot);
27399
27316
  return;
27400
27317
  }
27401
27318
  if (parent && parent.dirty & 1023 /* DIRTY_MASK */) {
27402
27319
  setNearestCursorBoundary(
27403
27320
  vNode,
27404
- getOwnCursorBoundary(container, vNode) || getNearestCursorBoundary(container, parent)
27321
+ getOwnCursorBoundary(vNode) || getNearestCursorBoundary(parent)
27405
27322
  );
27406
27323
  if (isRealDirty) {
27407
27324
  parent.dirty |= 64 /* CHILDREN */;
@@ -27427,11 +27344,11 @@ function markVNodeDirty(container, vNode, bits, cursorRoot = null) {
27427
27344
  }
27428
27345
  }
27429
27346
  } else if (!isCursor(vNode)) {
27430
- if (!findAndPropagateToBlockingCursor(container, vNode)) {
27347
+ if (!findAndPropagateToBlockingCursor(vNode)) {
27431
27348
  addCursor(container, vNode, 0);
27432
27349
  }
27433
27350
  } else {
27434
- setNearestCursorBoundary(vNode, getOwnCursorBoundary(container, vNode));
27351
+ setNearestCursorBoundary(vNode, getOwnCursorBoundary(vNode));
27435
27352
  }
27436
27353
  }
27437
27354
  function addVNodeOperation(journal, operation) {
@@ -27625,11 +27542,11 @@ var runTask = (task, container, host) => {
27625
27542
  var Task = class extends BackRef {
27626
27543
  constructor($flags$, $index$, $el$, $qrl$, $destroy$) {
27627
27544
  super();
27628
- this.$flags$ = $flags$;
27629
- this.$index$ = $index$;
27630
- this.$el$ = $el$;
27631
- this.$qrl$ = $qrl$;
27632
- this.$destroy$ = $destroy$;
27545
+ __publicField(this, "$flags$", $flags$);
27546
+ __publicField(this, "$index$", $index$);
27547
+ __publicField(this, "$el$", $el$);
27548
+ __publicField(this, "$qrl$", $qrl$);
27549
+ __publicField(this, "$destroy$", $destroy$);
27633
27550
  __publicField(this, "$destroyPromise$");
27634
27551
  __publicField(this, "$taskPromise$", null);
27635
27552
  }
@@ -27774,8 +27691,8 @@ function _chk(_, element) {
27774
27691
  // packages/qwik/src/core/shared/serdes/subscription-patch.ts
27775
27692
  var SubscriptionPatch = class {
27776
27693
  constructor(rootId = 0, subscriptions = /* @__PURE__ */ new Set()) {
27777
- this.rootId = rootId;
27778
- this.subscriptions = subscriptions;
27694
+ __publicField(this, "rootId", rootId);
27695
+ __publicField(this, "subscriptions", subscriptions);
27779
27696
  }
27780
27697
  };
27781
27698
 
@@ -27826,7 +27743,7 @@ var COMMA = ",";
27826
27743
  // packages/qwik/src/core/shared/serdes/serialize.ts
27827
27744
  var Serializer = class {
27828
27745
  constructor($serializationContext$) {
27829
- this.$serializationContext$ = $serializationContext$;
27746
+ __publicField(this, "$serializationContext$", $serializationContext$);
27830
27747
  __publicField(this, "$rootIdx$", 0);
27831
27748
  __publicField(this, "$forwardRefs$", []);
27832
27749
  __publicField(this, "$forwardRefsId$", 0);
@@ -28342,7 +28259,6 @@ var Serializer = class {
28342
28259
  const isSkippable = fastSkipSerialize(value.$untrackedValue$);
28343
28260
  const isAsync = !!(value.$flags$ & 512 /* ASYNC_MODE */);
28344
28261
  const isErrored = isAsync && !!value.$untrackedError$;
28345
- const expires = isAsync && value.$expires$ !== 0 ? value.$expires$ : void 0;
28346
28262
  const concurrency = isAsync && value.$concurrency$ !== 1 ? value.$concurrency$ : void 0;
28347
28263
  const timeout = isAsync && value.$timeoutMs$ !== 0 ? value.$timeoutMs$ : void 0;
28348
28264
  const asyncFlags = isAsync && value.$flags$ & ~24 /* SERIALIZATION_ALL_STRATEGIES */ || void 0;
@@ -28358,11 +28274,10 @@ var Serializer = class {
28358
28274
  out.push(value.$loadingEffects$, value.$errorEffects$, value.$untrackedError$);
28359
28275
  out.push(asyncFlags || void 0);
28360
28276
  }
28361
- if (v !== NEEDS_COMPUTATION || expires !== void 0 || concurrency !== void 0 || timeout !== void 0) {
28277
+ if (v !== NEEDS_COMPUTATION || concurrency !== void 0 || timeout !== void 0) {
28362
28278
  out.push(v === void 0 ? explicitUndefined : v);
28363
28279
  }
28364
28280
  if (isAsync) {
28365
- out.push(expires);
28366
28281
  out.push(concurrency);
28367
28282
  out.push(timeout);
28368
28283
  }
@@ -28610,11 +28525,11 @@ var Serializer = class {
28610
28525
  };
28611
28526
  var PromiseResult = class {
28612
28527
  constructor($type$, $resolved$, $value$, $effects$ = void 0, $qrl$ = void 0) {
28613
- this.$type$ = $type$;
28614
- this.$resolved$ = $resolved$;
28615
- this.$value$ = $value$;
28616
- this.$effects$ = $effects$;
28617
- this.$qrl$ = $qrl$;
28528
+ __publicField(this, "$type$", $type$);
28529
+ __publicField(this, "$resolved$", $resolved$);
28530
+ __publicField(this, "$value$", $value$);
28531
+ __publicField(this, "$effects$", $effects$);
28532
+ __publicField(this, "$qrl$", $qrl$);
28618
28533
  }
28619
28534
  };
28620
28535
  function getCustomSerializerPromise(signal, value) {
@@ -28686,7 +28601,7 @@ function serializeWrappingFn(serializationContext, value) {
28686
28601
  }
28687
28602
  var SerializationWeakRef = class {
28688
28603
  constructor($obj$) {
28689
- this.$obj$ = $obj$;
28604
+ __publicField(this, "$obj$", $obj$);
28690
28605
  }
28691
28606
  };
28692
28607
  var _serializationWeakRef = (obj) => new SerializationWeakRef(obj);
@@ -28695,17 +28610,17 @@ var _serializationWeakRef = (obj) => new SerializationWeakRef(obj);
28695
28610
  var isDomRef = (obj) => false;
28696
28611
  var SerializationBackRef = class {
28697
28612
  constructor($path$) {
28698
- this.$path$ = $path$;
28613
+ __publicField(this, "$path$", $path$);
28699
28614
  }
28700
28615
  };
28701
28616
  var SerializationContextImpl = class {
28702
28617
  constructor(NodeConstructor, DomRefConstructor, $symbolToChunkResolver$, $setProp$, $storeProxyMap$, $writer$) {
28703
- this.NodeConstructor = NodeConstructor;
28704
- this.DomRefConstructor = DomRefConstructor;
28705
- this.$symbolToChunkResolver$ = $symbolToChunkResolver$;
28706
- this.$setProp$ = $setProp$;
28707
- this.$storeProxyMap$ = $storeProxyMap$;
28708
- this.$writer$ = $writer$;
28618
+ __publicField(this, "NodeConstructor", NodeConstructor);
28619
+ __publicField(this, "DomRefConstructor", DomRefConstructor);
28620
+ __publicField(this, "$symbolToChunkResolver$", $symbolToChunkResolver$);
28621
+ __publicField(this, "$setProp$", $setProp$);
28622
+ __publicField(this, "$storeProxyMap$", $storeProxyMap$);
28623
+ __publicField(this, "$writer$", $writer$);
28709
28624
  __publicField(this, "$seenObjsMap$", /* @__PURE__ */ new Map());
28710
28625
  __publicField(this, "$syncFnMap$", /* @__PURE__ */ new Map());
28711
28626
  __publicField(this, "$syncFnOffset$", 0);
@@ -29439,16 +29354,11 @@ function* inflateIterator(container, target, typeId, data) {
29439
29354
  if (asyncSignal.$untrackedValue$ === NEEDS_COMPUTATION) {
29440
29355
  asyncSignal.$flags$ |= 1 /* INVALID */;
29441
29356
  }
29442
- const rawExpires = d[7] ?? 0;
29443
- asyncSignal.expires = Math.abs(rawExpires);
29444
- if (rawExpires < 0) {
29445
- asyncSignal.$flags$ |= 256 /* NO_POLL */;
29446
- }
29447
- if (d[8] !== void 0 && d[8] !== 1) {
29448
- asyncSignal.$concurrency$ = d[8] ?? 1;
29357
+ if (d[7] !== void 0 && d[7] !== 1) {
29358
+ asyncSignal.$concurrency$ = d[7] ?? 1;
29449
29359
  asyncSignal.$jobs$ = [];
29450
29360
  }
29451
- asyncSignal.$timeoutMs$ = d[9] ?? 0;
29361
+ asyncSignal.$timeoutMs$ = d[8] ?? 0;
29452
29362
  restoreEffectBackRefForEffects(asyncSignal.$effects$, asyncSignal);
29453
29363
  restoreEffectBackRefForEffects(asyncSignal.$loadingEffects$, asyncSignal);
29454
29364
  restoreEffectBackRefForEffects(asyncSignal.$errorEffects$, asyncSignal);
@@ -29633,11 +29543,11 @@ var _a4;
29633
29543
  _a4 = _EFFECT_BACK_REF;
29634
29544
  var VNode = class {
29635
29545
  constructor(flags, parent, previousSibling, nextSibling, props) {
29636
- this.flags = flags;
29637
- this.parent = parent;
29638
- this.previousSibling = previousSibling;
29639
- this.nextSibling = nextSibling;
29640
- this.props = props;
29546
+ __publicField(this, "flags", flags);
29547
+ __publicField(this, "parent", parent);
29548
+ __publicField(this, "previousSibling", previousSibling);
29549
+ __publicField(this, "nextSibling", nextSibling);
29550
+ __publicField(this, "props", props);
29641
29551
  __publicField(this, _a4);
29642
29552
  __publicField(this, "slotParent", null);
29643
29553
  __publicField(this, "dirty", 0 /* NONE */);
@@ -29657,9 +29567,9 @@ var VNode = class {
29657
29567
  var VirtualVNode = class extends VNode {
29658
29568
  constructor(key, flags, parent, previousSibling, nextSibling, props, firstChild, lastChild) {
29659
29569
  super(flags, parent, previousSibling, nextSibling, props);
29660
- this.key = key;
29661
- this.firstChild = firstChild;
29662
- this.lastChild = lastChild;
29570
+ __publicField(this, "key", key);
29571
+ __publicField(this, "firstChild", firstChild);
29572
+ __publicField(this, "lastChild", lastChild);
29663
29573
  }
29664
29574
  };
29665
29575
 
@@ -29667,21 +29577,22 @@ var VirtualVNode = class extends VNode {
29667
29577
  var ElementVNode = class extends VirtualVNode {
29668
29578
  constructor(key, flags, parent, previousSibling, nextSibling, props, firstChild, lastChild, node, elementName) {
29669
29579
  super(key, flags, parent, previousSibling, nextSibling, props, firstChild, lastChild);
29670
- this.node = node;
29671
- this.elementName = elementName;
29580
+ __publicField(this, "node", node);
29581
+ __publicField(this, "elementName", elementName);
29672
29582
  }
29673
29583
  };
29674
29584
 
29675
29585
  // packages/qwik/src/core/shared/qrl/qrl-class.ts
29586
+ var reportedChunkFailures;
29676
29587
  var getLazyRef = (chunk, symbol, symbolFn, ref, container) => {
29677
29588
  return new LazyRef(chunk, symbol, symbolFn, ref, container);
29678
29589
  };
29679
29590
  var LazyRef = class {
29680
29591
  constructor($chunk$, $symbol$, $symbolFn$, $ref$, container) {
29681
- this.$chunk$ = $chunk$;
29682
- this.$symbol$ = $symbol$;
29683
- this.$symbolFn$ = $symbolFn$;
29684
- this.$ref$ = $ref$;
29592
+ __publicField(this, "$chunk$", $chunk$);
29593
+ __publicField(this, "$symbol$", $symbol$);
29594
+ __publicField(this, "$symbolFn$", $symbolFn$);
29595
+ __publicField(this, "$ref$", $ref$);
29685
29596
  __publicField(this, "$container$");
29686
29597
  if ($ref$) {
29687
29598
  this.$setRef$($ref$);
@@ -29704,7 +29615,24 @@ var LazyRef = class {
29704
29615
  ref.then(
29705
29616
  (r) => this.$ref$ = r,
29706
29617
  (err) => {
29707
- console.error(`qrl ${this.$symbol$} failed to load`, err);
29618
+ const errorMessage = `qrl ${this.$symbol$} failed to load`;
29619
+ if (qTest ? isServerPlatform() : isServer10) {
29620
+ console.error(errorMessage, err);
29621
+ } else if (qTest ? !isServerPlatform() : isBrowser3) {
29622
+ const failureKey = this.$chunk$ === null ? `symbol:${this.$symbol$}` : `chunk:${this.$chunk$}`;
29623
+ const container = this.$container$;
29624
+ let containerFailures = container && reportedChunkFailures?.get(container);
29625
+ if (!containerFailures?.has(failureKey)) {
29626
+ if (container) {
29627
+ if (!containerFailures) {
29628
+ containerFailures = /* @__PURE__ */ new Set();
29629
+ (reportedChunkFailures || (reportedChunkFailures = /* @__PURE__ */ new WeakMap())).set(container, containerFailures);
29630
+ }
29631
+ containerFailures.add(failureKey);
29632
+ }
29633
+ console.error(errorMessage, err);
29634
+ }
29635
+ }
29708
29636
  this.$ref$ = null;
29709
29637
  }
29710
29638
  );
@@ -29744,7 +29672,7 @@ var getInstance = (instance) => {
29744
29672
  };
29745
29673
  var QRLClass = class {
29746
29674
  constructor($lazy$, $captures$, container) {
29747
- this.$lazy$ = $lazy$;
29675
+ __publicField(this, "$lazy$", $lazy$);
29748
29676
  __publicField(this, "resolved");
29749
29677
  // This is defined or undefined for the lifetime of the QRL, so we set it lazily
29750
29678
  __publicField(this, "$captures$");
@@ -29780,6 +29708,10 @@ var qrlWithCaptures = function(captures) {
29780
29708
  );
29781
29709
  return makeQrlFn(newQrl);
29782
29710
  };
29711
+ var qrlWithMovedCaptures = function() {
29712
+ this[QRL_STATE].$lazy$.$hasMovedCaptures$ = true;
29713
+ return this;
29714
+ };
29783
29715
  var qrlSetRef = function(ref) {
29784
29716
  const qrl = getInstance(this);
29785
29717
  qrl.$lazy$.$setRef$(ref);
@@ -29835,6 +29767,11 @@ var QRL_FUNCTION_PROTO = Object.create(Function.prototype, {
29835
29767
  this[QRL_STATE].$captures$ = value;
29836
29768
  }
29837
29769
  },
29770
+ $hasMovedCaptures$: {
29771
+ get() {
29772
+ return this[QRL_STATE].$lazy$.$hasMovedCaptures$;
29773
+ }
29774
+ },
29838
29775
  $container$: {
29839
29776
  get() {
29840
29777
  return this[QRL_STATE].$container$;
@@ -29881,6 +29818,9 @@ var QRL_FUNCTION_PROTO = Object.create(Function.prototype, {
29881
29818
  w: {
29882
29819
  value: qrlWithCaptures
29883
29820
  },
29821
+ m: {
29822
+ value: qrlWithMovedCaptures
29823
+ },
29884
29824
  s: {
29885
29825
  value: qrlSetRef
29886
29826
  },
@@ -30364,8 +30304,8 @@ var wrapDeserializerProxy = (container, data) => {
30364
30304
  };
30365
30305
  var DeserializationHandler = class {
30366
30306
  constructor($container$, $data$) {
30367
- this.$container$ = $container$;
30368
- this.$data$ = $data$;
30307
+ __publicField(this, "$container$", $container$);
30308
+ __publicField(this, "$data$", $data$);
30369
30309
  }
30370
30310
  get(target, property, receiver) {
30371
30311
  if (property === SERIALIZER_PROXY_UNWRAP) {
@@ -31346,7 +31286,6 @@ var DomContainer = class extends _SharedContainer {
31346
31286
  case OnRenderProp:
31347
31287
  case QCtxAttr:
31348
31288
  case QBackRefs:
31349
- case QCursorBoundary:
31350
31289
  getObjectById2 = this.$getObjectById$;
31351
31290
  break;
31352
31291
  case ELEMENT_SEQ_IDX:
@@ -31425,10 +31364,10 @@ var DomContainer = class extends _SharedContainer {
31425
31364
  };
31426
31365
 
31427
31366
  // packages/qwik/src/core/use/use-locale.ts
31428
- import { isServer as isServer10 } from "@qwik.dev/core/build";
31367
+ import { isServer as isServer11 } from "@qwik.dev/core/build";
31429
31368
  var _locale = void 0;
31430
31369
  var localAsyncStore;
31431
- if (isServer10) {
31370
+ if (isServer11) {
31432
31371
  const AsyncLocalStorage = getAsyncLocalStorage();
31433
31372
  if (AsyncLocalStorage) {
31434
31373
  localAsyncStore = new AsyncLocalStorage();
@@ -31531,7 +31470,7 @@ var trackSignalAndAssignHost = (value, host, property, container, data) => {
31531
31470
  };
31532
31471
 
31533
31472
  // packages/qwik/src/core/reactive-primitives/impl/store.ts
31534
- import { isDev as isDev24, isServer as isServer11 } from "@qwik.dev/core/build";
31473
+ import { isDev as isDev24, isServer as isServer12 } from "@qwik.dev/core/build";
31535
31474
  var DEBUG6 = false;
31536
31475
  var log4 = (...args) => console.log("STORE", ...args.map(qwikDebugToString));
31537
31476
  var getStoreHandler = (value) => {
@@ -31562,8 +31501,8 @@ var getOrCreateStore = (obj, flags, container) => {
31562
31501
  };
31563
31502
  var StoreHandler2 = class {
31564
31503
  constructor($flags$, $container$) {
31565
- this.$flags$ = $flags$;
31566
- this.$container$ = $container$;
31504
+ __publicField(this, "$flags$", $flags$);
31505
+ __publicField(this, "$container$", $container$);
31567
31506
  __publicField(this, "$effects$");
31568
31507
  }
31569
31508
  toString() {
@@ -31695,7 +31634,7 @@ function addStoreEffect(target, prop, store, effectSubscription, renderContainer
31695
31634
  effects = /* @__PURE__ */ new Set();
31696
31635
  effectsMap.set(prop, effects);
31697
31636
  }
31698
- const isOnServer = qTest ? isServerPlatform() : isServer11;
31637
+ const isOnServer = qTest ? isServerPlatform() : isServer12;
31699
31638
  const shouldRecordExternalRootEffect = __EXPERIMENTAL__.suspense && store instanceof StoreHandler2 && isOnServer;
31700
31639
  ensureContainsSubscription(effects, effectSubscription);
31701
31640
  ensureContainsBackRef(effectSubscription, target);
@@ -32148,8 +32087,8 @@ var mergeMaps = (map1, map2) => {
32148
32087
  var TextVNode = class extends VNode {
32149
32088
  constructor(flags, parent, previousSibling, nextSibling, props, node, text) {
32150
32089
  super(flags, parent, previousSibling, nextSibling, props);
32151
- this.node = node;
32152
- this.text = text;
32090
+ __publicField(this, "node", node);
32091
+ __publicField(this, "text", text);
32153
32092
  }
32154
32093
  };
32155
32094
 
@@ -33566,8 +33505,17 @@ function materializeFromVNodeData(vParent, vData, element, child, segmentId) {
33566
33505
  } else if (peek() === VNodeDataChar.SCOPED_STYLE) {
33567
33506
  vnode_setProp(vParent, QScopedStyle, consumeValue());
33568
33507
  } else if (peek() === VNodeDataChar.RENDER_FN) {
33569
- (components || (components = [])).push(vParent);
33570
- vnode_setProp(vParent, OnRenderProp, consumeValue());
33508
+ const renderRef = consumeValue();
33509
+ if (renderRef.charCodeAt(0) === VNodeDataChar.RENDER_HASH_PREFIX) {
33510
+ vnode_setProp(
33511
+ vParent,
33512
+ QComponentHash,
33513
+ decodeURIComponent(decodeVNodeDataString(renderRef.slice(1)))
33514
+ );
33515
+ } else {
33516
+ (components || (components = [])).push(vParent);
33517
+ vnode_setProp(vParent, OnRenderProp, renderRef);
33518
+ }
33571
33519
  } else if (peek() === VNodeDataChar.ID) {
33572
33520
  if (!container) {
33573
33521
  container = getDomContainer(element);
@@ -33604,7 +33552,7 @@ function materializeFromVNodeData(vParent, vData, element, child, segmentId) {
33604
33552
  vFirst = vLast = null;
33605
33553
  } else if (peek() === VNodeDataChar.SEPARATOR) {
33606
33554
  const keyValue = consumeValue();
33607
- const key = decodeVNodeDataString(keyValue);
33555
+ const key = decodeURIComponent(decodeVNodeDataString(keyValue));
33608
33556
  const valueSeparatorIdx = dataIdx + keyValue.length + 1;
33609
33557
  const isEscapedValue = getChar(valueSeparatorIdx + 1) === VNodeDataChar.SEPARATOR;
33610
33558
  let value;
@@ -35580,11 +35528,11 @@ import {
35580
35528
  import { isDev as isDev28 } from "@qwik.dev/core/build";
35581
35529
  var SsrNode = class {
35582
35530
  constructor(parentComponent, id, attributesIndex, cleanupQueue, vnodeData, currentFile) {
35583
- this.parentComponent = parentComponent;
35584
- this.attributesIndex = attributesIndex;
35585
- this.cleanupQueue = cleanupQueue;
35586
- this.vnodeData = vnodeData;
35587
- this.currentFile = currentFile;
35531
+ __publicField(this, "parentComponent", parentComponent);
35532
+ __publicField(this, "attributesIndex", attributesIndex);
35533
+ __publicField(this, "cleanupQueue", cleanupQueue);
35534
+ __publicField(this, "vnodeData", vnodeData);
35535
+ __publicField(this, "currentFile", currentFile);
35588
35536
  __publicField(this, "__brand__", "SsrNode");
35589
35537
  /**
35590
35538
  * ID which the deserialize will use to retrieve the node.
@@ -35683,13 +35631,13 @@ var SsrNode = class {
35683
35631
  };
35684
35632
  var DomRef = class {
35685
35633
  constructor($ssrNode$) {
35686
- this.$ssrNode$ = $ssrNode$;
35634
+ __publicField(this, "$ssrNode$", $ssrNode$);
35687
35635
  __publicField(this, "__brand__", "DomRef");
35688
35636
  }
35689
35637
  };
35690
35638
  var SsrComponentFrame = class {
35691
35639
  constructor(componentNode) {
35692
- this.componentNode = componentNode;
35640
+ __publicField(this, "componentNode", componentNode);
35693
35641
  __publicField(this, "slots", []);
35694
35642
  __publicField(this, "projectionDepth", 0);
35695
35643
  __publicField(this, "scopedStyleIds", /* @__PURE__ */ new Set());
@@ -36843,6 +36791,11 @@ var SSRContainer = class extends _SharedContainer2 {
36843
36791
  } else if (typeof rawValue !== "string") {
36844
36792
  rootId = this.addRoot(rawValue);
36845
36793
  if (rootId === void 0) {
36794
+ if (key === OnRenderProp) {
36795
+ this.write(VNodeDataChar.RENDER_FN_CHAR);
36796
+ this.write(VNodeDataChar.RENDER_HASH_PREFIX_CHAR);
36797
+ this.write(encodeVNodeDataString(encodeVNodeDataKey(rawValue.$hash$)));
36798
+ }
36846
36799
  continue;
36847
36800
  }
36848
36801
  value = String(rootId);
@@ -36887,7 +36840,7 @@ var SSRContainer = class extends _SharedContainer2 {
36887
36840
  default: {
36888
36841
  encodeValue = encodeURI;
36889
36842
  this.write(VNodeDataChar.SEPARATOR_CHAR);
36890
- this.write(encodeVNodeDataString(key));
36843
+ this.write(encodeVNodeDataString(encodeVNodeDataKey(key)));
36891
36844
  this.write(VNodeDataChar.SEPARATOR_CHAR);
36892
36845
  }
36893
36846
  }
@@ -37343,27 +37296,12 @@ var SSRContainer = class extends _SharedContainer2 {
37343
37296
  var SSRSegmentContainer = class extends SSRContainer {
37344
37297
  constructor(opts, $rootContainer$) {
37345
37298
  super(opts);
37346
- this.$rootContainer$ = $rootContainer$;
37299
+ __publicField(this, "$rootContainer$", $rootContainer$);
37347
37300
  __publicField(this, "$outOfOrderState$", 0 /* Rendering */);
37348
37301
  __publicField(this, "$outOfOrderRootIdMap$", null);
37349
37302
  __publicField(this, "subscriptionPatchRecords", []);
37350
37303
  __publicField(this, "pendingVNodeDataPatches", null);
37351
37304
  }
37352
- nextOutOfOrderId() {
37353
- return this.$rootContainer$.nextOutOfOrderId();
37354
- }
37355
- $runQueuedRender$(render2) {
37356
- return this.$rootContainer$.$runQueuedRender$(render2);
37357
- }
37358
- queueOutOfOrderSegment(segment) {
37359
- this.$rootContainer$.queueOutOfOrderSegment(segment);
37360
- }
37361
- emitOutOfOrderSegmentScripts(scripts) {
37362
- this.$rootContainer$.emitOutOfOrderSegmentScripts(scripts);
37363
- }
37364
- emitOutOfOrderExecutorIfNeeded() {
37365
- this.$rootContainer$.emitOutOfOrderExecutorIfNeeded();
37366
- }
37367
37305
  $recordExternalRootEffect$(producer, effect, prop, sourceEffects) {
37368
37306
  recordExternalRootEffect(
37369
37307
  this.$rootContainer$.serializationCtx,
@@ -37383,7 +37321,6 @@ var SSRSegmentContainer = class extends SSRContainer {
37383
37321
  try {
37384
37322
  const commit = this.$commitRoots$(rootContainer, segmentSerializationCtx);
37385
37323
  this.$mergeSegmentEventData$(rootContainer, segmentSerializationCtx);
37386
- this.$mergeSegmentSyncFns$(rootContainer, segmentSerializationCtx);
37387
37324
  const subscriptionPatchRootId = this.$addSubscriptionsToRoots$(
37388
37325
  rootContainer,
37389
37326
  rootReadyAtSegment,
@@ -37455,7 +37392,7 @@ var SSRSegmentContainer = class extends SSRContainer {
37455
37392
  }
37456
37393
  }
37457
37394
  queueLateVNodeDataPatch(node, addedFlags) {
37458
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming || !(addedFlags & (16 /* SERIALIZE */ | 8 /* REFERENCE */))) {
37395
+ if (!(addedFlags & (16 /* SERIALIZE */ | 8 /* REFERENCE */))) {
37459
37396
  return;
37460
37397
  }
37461
37398
  const owner = this.getVNodeDataOwnerFromNodeId(node.id);
@@ -37577,13 +37514,7 @@ var SSRSegmentContainer = class extends SSRContainer {
37577
37514
  rootContainer.serializationCtx.$eventQrls$.add(qrl);
37578
37515
  }
37579
37516
  }
37580
- $mergeSegmentSyncFns$(rootContainer, segmentSerializationCtx) {
37581
- rootContainer.serializationCtx.$syncFns$.push(...segmentSerializationCtx.$syncFns$);
37582
- }
37583
37517
  collectSubscriptionPatches(rootContainer, rootLimit) {
37584
- if (!__EXPERIMENTAL__.suspense || !this.outOfOrderStreaming) {
37585
- return;
37586
- }
37587
37518
  return collectSubscriptionPatches(
37588
37519
  rootContainer.serializationCtx,
37589
37520
  this.subscriptionPatchRecords,
@@ -37645,8 +37576,8 @@ function addPreventDefaultEventToSerializationContext(serializationCtx, key) {
37645
37576
  // packages/qwik/src/server/ssr-stream-handler.ts
37646
37577
  var StreamHandler = class {
37647
37578
  constructor(opts, timing) {
37648
- this.opts = opts;
37649
- this.timing = timing;
37579
+ __publicField(this, "opts", opts);
37580
+ __publicField(this, "timing", timing);
37650
37581
  __publicField(this, "bufferSize", 0);
37651
37582
  __publicField(this, "buffer", "");
37652
37583
  __publicField(this, "networkFlushes", 0);