@askrjs/askr 0.0.83 → 0.0.84

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 (58) hide show
  1. package/dist/actions/index.d.ts +1 -1
  2. package/dist/actions/index.js +1 -1
  3. package/dist/{activity-CnSRFO3d.js → activity-CZiPgZy0.js} +3 -3
  4. package/dist/{activity-CXEaU-Al.d.ts → activity-pySy9t7Y.d.ts} +1 -1
  5. package/dist/{authoring-DbGEgg40.js → authoring-DQPG0VAm.js} +2 -2
  6. package/dist/benchmark.js +7 -7
  7. package/dist/boot/index.d.ts +3 -3
  8. package/dist/boot/index.js +1 -1
  9. package/dist/{boot-uK1hzONI.js → boot-D28lesMw.js} +12 -12
  10. package/dist/{cleanup-CEF-cX49.js → cleanup-ARiXproi.js} +4 -4
  11. package/dist/{component-cleanup-oWN45rfa.js → component-cleanup-Bug5tSiG.js} +1 -1
  12. package/dist/{component-internal-DsM75Gl1.js → component-internal-Bw4Mf9fd.js} +7 -4
  13. package/dist/components/index.d.ts +1 -1
  14. package/dist/control/index.d.ts +1 -1
  15. package/dist/control/index.js +1 -1
  16. package/dist/{control-Cix3yjVf.d.ts → control-Y8F73Uln.d.ts} +1 -1
  17. package/dist/{control-C0X1zgrM.js → control-nrS65oG3.js} +3 -3
  18. package/dist/{csp-nonce-DDt0UNdt.js → csp-nonce-ZTlD_EnK.js} +1 -1
  19. package/dist/data/index.js +1 -1
  20. package/dist/{data-G0hURNm_.js → data-BRS5woEh.js} +2 -2
  21. package/dist/{deferred-rdHAgyKe.js → deferred-oqtAJ4iH.js} +4 -4
  22. package/dist/{effect-2IIWvUjG.js → effect-B487asyz.js} +1 -1
  23. package/dist/{fastlane-CkBXZ_3K.js → fastlane-BOr4lSLl.js} +1 -1
  24. package/dist/{for-internal-DRbV0h1d.js → for-internal-DjpV8ioj.js} +41 -20
  25. package/dist/foundations/index.d.ts +1 -1
  26. package/dist/foundations/index.js +1 -1
  27. package/dist/foundations/state/index.d.ts +1 -1
  28. package/dist/foundations/state/index.js +1 -1
  29. package/dist/foundations/structures/index.d.ts +1 -1
  30. package/dist/foundations/structures/index.js +1 -1
  31. package/dist/{index-Vs1EeWEr.d.ts → index-BApH3laU.d.ts} +1 -1
  32. package/dist/{index-ho0Htetw.d.ts → index-DUXXZ31H.d.ts} +1 -1
  33. package/dist/{index-TlEvex-C.d.ts → index-_UN08Pg1.d.ts} +3 -2
  34. package/dist/index.d.ts +3 -3
  35. package/dist/index.js +8 -8
  36. package/dist/{lifecycle-batch-CwHCDseR.js → lifecycle-batch-CFI4NKpJ.js} +7 -5
  37. package/dist/{lifecycle-operations-BJfxWUJr.js → lifecycle-operations-KYOIcM5R.js} +1 -1
  38. package/dist/{navigate-DfY1BUYc.d.ts → navigate-CgVIrrSs.d.ts} +1 -1
  39. package/dist/{navigate-Crvd5gUG.js → navigate-Dr3cjOSz.js} +10 -10
  40. package/dist/{portal-BZ_rN17v.js → portal-pHBoqwYd.js} +3 -3
  41. package/dist/{readable-B3VIOfd7.js → readable-_GQGe_St.js} +2 -2
  42. package/dist/{renderer-VSw0KKDG.js → renderer-B9j5IV1q.js} +3297 -2796
  43. package/dist/resources/index.d.ts +2 -2
  44. package/dist/resources/index.js +4 -4
  45. package/dist/{route-matching-BUwz4kfl.js → route-matching-IfQZmqkN.js} +3 -3
  46. package/dist/router/index.d.ts +4 -4
  47. package/dist/router/index.js +5 -5
  48. package/dist/{selector-DVwvof1M.js → selector-DJ1-N1K-.js} +1 -1
  49. package/dist/ssg/index.d.ts +3 -3
  50. package/dist/ssg/index.js +3 -3
  51. package/dist/ssr/index.d.ts +2 -2
  52. package/dist/ssr/index.js +1 -1
  53. package/dist/{ssr-C_Ql5_Kg.js → ssr-CtC4lChT.js} +20 -17
  54. package/dist/{state-BCl9DeiN.js → state-BzIMC6-i.js} +2 -2
  55. package/dist/testing/index.d.ts +2 -2
  56. package/dist/testing/index.js +2 -2
  57. package/dist/{verify-hydration-CNLXUcuR.js → verify-hydration-BguOSco9.js} +1 -1
  58. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
- import { ut as getSignal } from "../index-TlEvex-C.js";
2
- import { i as onRouteChange, n as RouteChangeOptions, t as RouteChangeCleanup } from "../activity-CXEaU-Al.js";
1
+ import { ut as getSignal } from "../index-_UN08Pg1.js";
2
+ import { i as onRouteChange, n as RouteChangeOptions, t as RouteChangeCleanup } from "../activity-pySy9t7Y.js";
3
3
  //#region src/runtime/resource-operation.d.ts
4
4
  interface ResourceResult<T> {
5
5
  value: T | null;
@@ -1,9 +1,9 @@
1
1
  import { t as enqueueRuntimeLane } from "../access-ePqdQqkV.js";
2
- import { a as registerCommitOperation } from "../component-internal-DsM75Gl1.js";
2
+ import { a as registerCommitOperation } from "../component-internal-Bw4Mf9fd.js";
3
3
  import { f as getCurrentComponentInstance, g as getSignal, i as claimHookIndex } from "../component-scope-DzJEbYGE.js";
4
- import { z as resource } from "../route-matching-BUwz4kfl.js";
5
- import { a as task, i as routeActive, n as documentVisible, o as timer, r as on, s as windowFocused, t as capture } from "../lifecycle-operations-BJfxWUJr.js";
6
- import { n as onRouteChange } from "../activity-CnSRFO3d.js";
4
+ import { z as resource } from "../route-matching-IfQZmqkN.js";
5
+ import { a as task, i as routeActive, n as documentVisible, o as timer, r as on, s as windowFocused, t as capture } from "../lifecycle-operations-KYOIcM5R.js";
6
+ import { n as onRouteChange } from "../activity-CZiPgZy0.js";
7
7
  //#region src/runtime/stream-operation.ts
8
8
  function toError(value) {
9
9
  return value instanceof Error ? value : new Error(String(value));
@@ -1,10 +1,10 @@
1
1
  import { t as enqueueRuntimeLane, v as logger } from "./access-ePqdQqkV.js";
2
- import { c as registerCommitOperationForInstance, d as getCurrentContextFrame, v as withAsyncResourceContext } from "./component-internal-DsM75Gl1.js";
2
+ import { c as registerCommitOperationForInstance, d as getCurrentContextFrame, v as withAsyncResourceContext } from "./component-internal-Bw4Mf9fd.js";
3
3
  import { f as getCurrentComponentInstance } from "./component-scope-DzJEbYGE.js";
4
- import { p as isPromiseLike } from "./lifecycle-batch-CwHCDseR.js";
4
+ import { p as isPromiseLike } from "./lifecycle-batch-CFI4NKpJ.js";
5
5
  import { t as brandSnapshotSource } from "./snapshot-source-BB42xgwb.js";
6
6
  import { d as SSRDataMissingError, i as getNextRenderKey, n as getActiveRenderContext, r as getCurrentRenderData, u as throwSSRDataMissing } from "./render-context-D-DFk2WN.js";
7
- import { t as state } from "./state-BCl9DeiN.js";
7
+ import { t as state } from "./state-BzIMC6-i.js";
8
8
  //#region src/runtime/resource-cell.ts
9
9
  /**
10
10
  * Pure, component-agnostic ResourceCell state machine.
@@ -1,9 +1,9 @@
1
- import { c as RenderableChild } from "../control-Cix3yjVf.js";
1
+ import { u as RenderableChild } from "../control-Y8F73Uln.js";
2
2
  import { r as JSXElement, s as Props } from "../jsx-Dvr2SGRG.js";
3
- import { A as RouteHandler, B as RouteQuery, C as Route, D as RouteContext, E as RouteComponent, F as RouteMode, G as RouteRegistryOptions, H as RouteRef, I as RouteOptions, J as RouteRequestResult, K as RouteRenderResult, L as RouteParams, M as RouteMatch, N as RouteMeta, O as RouteDefinition, P as RouteMetaSource, R as RoutePathParams, S as ParsedSegment, T as RouteAuthResolver, U as RouteRefSearch, V as RouteRecord, W as RouteRegistry, X as RouteSearchValue, Y as RouteSearch, Z as RouteSnapshot, _ as AccessRedirectStatus, b as PageHelperOptions, f as AccessAllowDecision, g as AccessRedirectDecision, h as AccessDenyStatus, j as RouteManifest, k as RouteDestination, m as AccessDenyDecision, p as AccessDecision, q as RouteRequestOptions, v as GroupHelperOptions, w as RouteAuthOptions, x as PageScopeRecord, y as LayoutScopeRecord, z as RoutePolicy } from "../index-TlEvex-C.js";
3
+ import { A as RouteHandler, B as RouteQuery, C as Route, D as RouteContext, E as RouteComponent, F as RouteMode, G as RouteRegistryOptions, H as RouteRef, I as RouteOptions, J as RouteRequestResult, K as RouteRenderResult, L as RouteParams, M as RouteMatch, N as RouteMeta, O as RouteDefinition, P as RouteMetaSource, R as RoutePathParams, S as ParsedSegment, T as RouteAuthResolver, U as RouteRefSearch, V as RouteRecord, W as RouteRegistry, X as RouteSearchValue, Y as RouteSearch, Z as RouteSnapshot, _ as AccessRedirectStatus, b as PageHelperOptions, f as AccessAllowDecision, g as AccessRedirectDecision, h as AccessDenyStatus, j as RouteManifest, k as RouteDestination, m as AccessDenyDecision, p as AccessDecision, q as RouteRequestOptions, v as GroupHelperOptions, w as RouteAuthOptions, x as PageScopeRecord, y as LayoutScopeRecord, z as RoutePolicy } from "../index-_UN08Pg1.js";
4
4
  import "../types-C9YcqVpk.js";
5
- import { a as ScrollRestorationOptions, i as NavigationScrollBehavior, n as NavigateOptions, r as HistoryScrollBehavior, t as navigate } from "../navigate-DfY1BUYc.js";
6
- import { i as onRouteChange, n as RouteChangeOptions, r as currentRoute, t as RouteChangeCleanup } from "../activity-CXEaU-Al.js";
5
+ import { a as ScrollRestorationOptions, i as NavigationScrollBehavior, n as NavigateOptions, r as HistoryScrollBehavior, t as navigate } from "../navigate-CgVIrrSs.js";
6
+ import { i as onRouteChange, n as RouteChangeOptions, r as currentRoute, t as RouteChangeCleanup } from "../activity-pySy9t7Y.js";
7
7
  import { AuthContext, AuthContext as AuthContext$1, AuthRequirement, AuthRequirement as AuthRequirement$1 } from "@askrjs/auth";
8
8
  import { ObjectSchema } from "@askrjs/schema";
9
9
  //#region src/router/route-query.d.ts
@@ -1,9 +1,9 @@
1
- import { a as resolveDeferredValues, b as Outlet, i as isDeferred, l as createRouteRegistry, m as resolveRouteRequest, n as Resolve, r as defer, s as routeData, w as lazy, y as currentAuth } from "../deferred-rdHAgyKe.js";
2
- import { a as isSafeHref } from "../csp-nonce-DDt0UNdt.js";
1
+ import { a as resolveDeferredValues, b as Outlet, i as isDeferred, l as createRouteRegistry, m as resolveRouteRequest, n as Resolve, r as defer, s as routeData, w as lazy, y as currentAuth } from "../deferred-oqtAJ4iH.js";
2
+ import { a as isSafeHref } from "../csp-nonce-ZTlD_EnK.js";
3
3
  import { jsx } from "../jsx-runtime.js";
4
- import { a as route, i as page, n as group, r as index, t as fallback } from "../authoring-DbGEgg40.js";
5
- import { n as onRouteChange, t as currentRoute } from "../activity-CnSRFO3d.js";
6
- import { a as serializeRouteMeta, c as getCurrentHref, d as parseTargetUrl, h as syncRegisteredRouteSnapshot, i as resolveRouteMeta, l as getRegisteredAppsSnapshot, m as syncAppRegistrationLocation, n as navigate, p as setCurrentRouteLocation, r as reconcileRouteMeta, s as saveScrollPosition, u as getWindowHref } from "../navigate-Crvd5gUG.js";
4
+ import { a as route, i as page, n as group, r as index, t as fallback } from "../authoring-DQPG0VAm.js";
5
+ import { n as onRouteChange, t as currentRoute } from "../activity-CZiPgZy0.js";
6
+ import { a as serializeRouteMeta, c as getCurrentHref, d as parseTargetUrl, h as syncRegisteredRouteSnapshot, i as resolveRouteMeta, l as getRegisteredAppsSnapshot, m as syncAppRegistrationLocation, n as navigate, p as setCurrentRouteLocation, r as reconcileRouteMeta, s as saveScrollPosition, u as getWindowHref } from "../navigate-Dr3cjOSz.js";
7
7
  import { o as mergeProps } from "../compose-ref-Cc_YkUpM.js";
8
8
  import { t as applyInteractionPolicy } from "../interactions-DgGQyUQv.js";
9
9
  //#region src/router/route-query.ts
@@ -1,5 +1,5 @@
1
1
  import { t as enqueueRuntimeLane } from "./access-ePqdQqkV.js";
2
- import { c as markReadableUsage, f as syncDerivedDependencySubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, p as withDerivedReadTracking, r as clearDerivedDependencySubscriptions, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-B3VIOfd7.js";
2
+ import { c as markReadableUsage, f as syncDerivedDependencySubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, p as withDerivedReadTracking, r as clearDerivedDependencySubscriptions, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-_GQGe_St.js";
3
3
  import { i as claimHookIndex, p as getCurrentInstance } from "./component-scope-DzJEbYGE.js";
4
4
  //#region src/runtime/selector-store.ts
5
5
  const dirtySelectorRecords = /* @__PURE__ */ new Set();
@@ -1,5 +1,5 @@
1
- import { d as DocumentRenderContext, f as DocumentRenderer, u as DocumentRenderArgs } from "../control-Cix3yjVf.js";
2
- import { A as RouteHandler, I as RouteOptions, R as RoutePathParams, W as RouteRegistry, z as RoutePolicy } from "../index-TlEvex-C.js";
1
+ import { f as DocumentRenderArgs, m as DocumentRenderer, p as DocumentRenderContext } from "../control-Y8F73Uln.js";
2
+ import { A as RouteHandler, I as RouteOptions, R as RoutePathParams, W as RouteRegistry, z as RoutePolicy } from "../index-_UN08Pg1.js";
3
3
  import { AuthRequirement } from "@askrjs/auth";
4
4
  import "node:fs/promises";
5
5
  //#region src/ssg/types.d.ts
@@ -68,7 +68,7 @@ interface SSGAssetSource {
68
68
  to?: string;
69
69
  }
70
70
  /** Options for createStaticGen */
71
- type SSGOptions<TRoutes extends readonly RouteConfig[] = RouteConfig[]> = SSGBaseOptions & {
71
+ type SSGOptions<_TRoutes extends readonly RouteConfig[] = RouteConfig[]> = SSGBaseOptions & {
72
72
  /** Explicit route registry captured with `createRouteRegistry()`. */
73
73
  registry: RouteRegistry;
74
74
  };
package/dist/ssg/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import "../access-ePqdQqkV.js";
2
- import { C as _preloadRouteHandler, S as getRenderHandler, a as resolveDeferredValues, l as createRouteRegistry, u as bindResolvedRouteData } from "../deferred-rdHAgyKe.js";
3
- import { a as route } from "../authoring-DbGEgg40.js";
2
+ import { C as _preloadRouteHandler, S as getRenderHandler, a as resolveDeferredValues, l as createRouteRegistry, u as bindResolvedRouteData } from "../deferred-oqtAJ4iH.js";
3
+ import { a as route } from "../authoring-DQPG0VAm.js";
4
4
  import { n as renderDocument } from "../ssr-CbQO5xd3.js";
5
- import { n as renderToString } from "../ssr-C_Ql5_Kg.js";
5
+ import { n as renderToString } from "../ssr-CtC4lChT.js";
6
6
  import * as fs from "node:fs/promises";
7
7
  import * as pathModule from "node:path";
8
8
  import * as os from "node:os";
@@ -1,6 +1,6 @@
1
- import { d as DocumentRenderContext, f as DocumentRenderer, m as SSRStyleRegistration, p as SSRData, u as DocumentRenderArgs } from "../control-Cix3yjVf.js";
1
+ import { f as DocumentRenderArgs, g as SSRStyleRegistration, h as SSRData, m as DocumentRenderer, p as DocumentRenderContext } from "../control-Y8F73Uln.js";
2
2
  import { r as JSXElement, s as Props } from "../jsx-Dvr2SGRG.js";
3
- import { A as RouteHandler, C as Route, J as RouteRequestResult, V as RouteRecord, W as RouteRegistry, g as AccessRedirectDecision, l as DeferredBoundaryRegistration, m as AccessDenyDecision, u as SSRPortalState, w as RouteAuthOptions } from "../index-TlEvex-C.js";
3
+ import { A as RouteHandler, C as Route, J as RouteRequestResult, V as RouteRecord, W as RouteRegistry, g as AccessRedirectDecision, l as DeferredBoundaryRegistration, m as AccessDenyDecision, u as SSRPortalState, w as RouteAuthOptions } from "../index-_UN08Pg1.js";
4
4
  import { D as QueryPrefetchContext, _ as CoreTelemetry, n as ServerQueryRegistry, v as DataRuntime } from "../index-5S-fi2xy.js";
5
5
  import { AuthContext } from "@askrjs/auth";
6
6
  //#region src/common/page-render-envelope.d.ts
package/dist/ssr/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { d as SSRDataMissingError } from "../render-context-D-DFk2WN.js";
2
- import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-C_Ql5_Kg.js";
2
+ import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-CtC4lChT.js";
3
3
  export { SSRDataMissingError, createRenderContext, getRenderContext, renderResolvedToStringSync, renderRouteRequest, renderRouteRequestToString, renderToStream, renderToString, renderToStringSync, resolveRequest, withRenderContext, withRenderContextAsync };
@@ -2,21 +2,21 @@ import { t as __CONTROL_BOUNDARY__ } from "./control-C-ApnFs1.js";
2
2
  import { t as __ERROR_BOUNDARY__ } from "./vnode-D24p6IW2.js";
3
3
  import { v as logger } from "./access-ePqdQqkV.js";
4
4
  import { i as isFragmentType, n as Fragment, t as ELEMENT_TYPE } from "./jsx-C3IECePB.js";
5
- import { f as getExecutionContextFrame, h as markVNodeTreeWithContextFrame, l as callWithContext, n as createComponentInstance, p as getVNodeContextFrame } from "./component-internal-DsM75Gl1.js";
5
+ import { f as getExecutionContextFrame, h as markVNodeTreeWithContextFrame, l as callWithContext, n as createComponentInstance, p as getVNodeContextFrame } from "./component-internal-Bw4Mf9fd.js";
6
6
  import { f as getCurrentComponentInstance, w as setCurrentComponentInstance } from "./component-scope-DzJEbYGE.js";
7
- import { t as cleanupComponent } from "./component-cleanup-oWN45rfa.js";
8
- import { p as isPromiseLike } from "./lifecycle-batch-CwHCDseR.js";
9
- import { _ as setControlBoundaryContextFrame, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-DRbV0h1d.js";
10
- import { _ as isPageRenderEnvelope, g as isEmptyPageRenderEnvelope, h as createPageRenderEnvelope, i as isDeferred, l as createRouteRegistry, m as resolveRouteRequest, t as DEFERRED_BOUNDARY } from "./deferred-rdHAgyKe.js";
7
+ import { t as cleanupComponent } from "./component-cleanup-Bug5tSiG.js";
8
+ import { p as isPromiseLike } from "./lifecycle-batch-CFI4NKpJ.js";
9
+ import { _ as setControlBoundaryContextFrame, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-DjpV8ioj.js";
10
+ import { _ as isPageRenderEnvelope, g as isEmptyPageRenderEnvelope, h as createPageRenderEnvelope, i as isDeferred, l as createRouteRegistry, m as resolveRouteRequest, t as DEFERRED_BOUNDARY } from "./deferred-oqtAJ4iH.js";
11
11
  import { d as SSRDataMissingError, l as stopRenderPhase$1, s as startRenderPhase$1, t as configureRenderContextProvider } from "./render-context-D-DFk2WN.js";
12
- import { a as resolveRouteFromRoutes, t as _resolveRouteMatchFromRoutes } from "./route-matching-BUwz4kfl.js";
12
+ import { a as resolveRouteFromRoutes, t as _resolveRouteMatchFromRoutes } from "./route-matching-IfQZmqkN.js";
13
13
  import { n as SSR_PORTAL_HOST, t as SSR_PORTAL_ANCHOR } from "./portal-w3oQ6oQU.js";
14
- import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-BZ_rN17v.js";
14
+ import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-pHBoqwYd.js";
15
15
  import { n as getPublicAttributeName, t as sanitizeCssValue } from "./css-BuPaTOfe.js";
16
- import { a as isSafeHref, r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-DDt0UNdt.js";
16
+ import { a as isSafeHref, r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-ZTlD_EnK.js";
17
17
  import { t as createDataRuntime } from "./data-runtime-D68YOo9L.js";
18
18
  import { c as withTelemetry, i as dehydrateDataRuntime, t as createQueryPrefetchContext } from "./query-registry-BL6rjGsO.js";
19
- import { a as route } from "./authoring-DbGEgg40.js";
19
+ import { a as route } from "./authoring-DQPG0VAm.js";
20
20
  import { n as renderDocument, t as SSR_RENDER_DATA_ATTR } from "./ssr-CbQO5xd3.js";
21
21
  //#region src/ssr/escape.ts
22
22
  /**
@@ -880,20 +880,23 @@ function renderDeferredBoundarySync(node, ctx) {
880
880
  return `<askr-resolve data-askr-deferred="${id}">${renderRenderableSync(pending, ctx)}</askr-resolve>`;
881
881
  }
882
882
  function isMultiRangeChild(child) {
883
- if (Array.isArray(child)) return child.length !== 1;
883
+ if (Array.isArray(child)) return true;
884
884
  if (!child || typeof child !== "object" || !("type" in child)) return false;
885
- const vnode = child;
886
- if (!isFragmentType(vnode.type)) return false;
887
- return (getRenderableChildren(vnode)?.length ?? 0) !== 1;
885
+ return isFragmentType(child.type);
886
+ }
887
+ function renderForRangeChildSync(child, ctx) {
888
+ if (child && typeof child === "object" && "type" in child && typeof child.type === "function") {
889
+ const vnode = child;
890
+ return renderForRangeChildSync(inheritRenderableKey(vnode, executeComponentSync(vnode.type, vnode.props, ctx, getVNodeContextFrame(vnode) ?? null)), ctx);
891
+ }
892
+ const rendered = renderChildSync(child, ctx);
893
+ return isMultiRangeChild(child) ? `${RANGE_START}${rendered}${RANGE_END}` : rendered;
888
894
  }
889
895
  function renderControlChildrenSync(node, ctx) {
890
896
  const controlState = getControlBoundaryState(node);
891
897
  return withControlBoundaryChildren(node, (children) => {
892
898
  const values = children ?? [];
893
- if (controlState?.kind === "for") return values.map((child) => {
894
- const rendered = renderChildSync(child, ctx);
895
- return isMultiRangeChild(child) ? `${RANGE_START}${rendered}${RANGE_END}` : rendered;
896
- }).join("");
899
+ if (controlState?.kind === "for") return values.map((child) => renderForRangeChildSync(child, ctx)).join("");
897
900
  const rendered = renderChildrenSync(values, ctx);
898
901
  return values.length === 1 && isMultiRangeChild(values[0]) ? `${RANGE_START}${rendered}${RANGE_END}` : values.length !== 1 ? `${RANGE_START}${rendered}${RANGE_END}` : rendered;
899
902
  });
@@ -1,6 +1,6 @@
1
1
  import { x as isProductionEnvironment } from "./access-ePqdQqkV.js";
2
- import { t as isBulkCommitActive } from "./fastlane-CkBXZ_3K.js";
3
- import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-B3VIOfd7.js";
2
+ import { t as isBulkCommitActive } from "./fastlane-BOr4lSLl.js";
3
+ import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-_GQGe_St.js";
4
4
  import { i as claimHookIndex, p as getCurrentInstance } from "./component-scope-DzJEbYGE.js";
5
5
  //#region src/runtime/state.ts
6
6
  /**
@@ -1,5 +1,5 @@
1
- import { s as ComponentFunction } from "../control-Cix3yjVf.js";
2
- import { M as RouteMatch, W as RouteRegistry, w as RouteAuthOptions } from "../index-TlEvex-C.js";
1
+ import { l as ComponentFunction } from "../control-Y8F73Uln.js";
2
+ import { M as RouteMatch, W as RouteRegistry, w as RouteAuthOptions } from "../index-_UN08Pg1.js";
3
3
  import { C as Query, k as QueryStaleReason } from "../index-5S-fi2xy.js";
4
4
  //#region src/testing/render.d.ts
5
5
  interface RenderOptions {
@@ -1,7 +1,7 @@
1
1
  import { r as flushRuntimeScheduler } from "../access-ePqdQqkV.js";
2
- import { r as computeRouteActivityMatches } from "../route-matching-BUwz4kfl.js";
2
+ import { r as computeRouteActivityMatches } from "../route-matching-IfQZmqkN.js";
3
3
  import { l as addInvalidationListener } from "../data-runtime-D68YOo9L.js";
4
- import { a as cleanupApp, r as createSPA, t as createIsland } from "../boot-uK1hzONI.js";
4
+ import { a as cleanupApp, r as createSPA, t as createIsland } from "../boot-D28lesMw.js";
5
5
  //#region src/testing/render.ts
6
6
  const renderStates = /* @__PURE__ */ new WeakMap();
7
7
  const eventConstructorNames = {
@@ -1,5 +1,5 @@
1
1
  import { t as SSR_RENDER_DATA_ATTR } from "./ssr-CbQO5xd3.js";
2
- import { a as renderResolvedToStringSync } from "./ssr-C_Ql5_Kg.js";
2
+ import { a as renderResolvedToStringSync } from "./ssr-CtC4lChT.js";
3
3
  //#region src/ssr/verify-hydration.ts
4
4
  function normalizeHydrationHtml(html) {
5
5
  const template = document.createElement("template");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askrjs/askr",
3
- "version": "0.0.83",
3
+ "version": "0.0.84",
4
4
  "description": "Actor-backed deterministic UI framework",
5
5
  "keywords": [
6
6
  "askr",
@@ -154,7 +154,7 @@
154
154
  "@types/node": "^26.1.1",
155
155
  "@vitest/browser-playwright": "4.1.10",
156
156
  "cross-env": "^10.1.0",
157
- "jsdom": "^29.1.1",
157
+ "jsdom": "^30.0.0",
158
158
  "playwright": "^1.61.1",
159
159
  "publint": "^0.3.21",
160
160
  "tsd": "^0.33.0",
@@ -170,7 +170,7 @@
170
170
  }
171
171
  },
172
172
  "engines": {
173
- "node": ">=18"
173
+ "node": ">=24.15.0"
174
174
  },
175
175
  "packageManager": "npm@12.0.1",
176
176
  "allowScripts": {