octane 0.6.2 → 0.6.3

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 (174) hide show
  1. package/dist/cjs/dom-binding-handoff.cjs +2 -1
  2. package/dist/cjs/dom-binding-protocol.cjs +4 -3
  3. package/dist/cjs/dom-binding-styles.cjs +3 -2
  4. package/dist/cjs/dom-bindings.cjs +24 -23
  5. package/dist/cjs/error-codes.client.generated.cjs +2 -1
  6. package/dist/cjs/error-codes.server.generated.cjs +2 -1
  7. package/dist/cjs/hydration/event-capture.cjs +2 -1
  8. package/dist/cjs/independent-hydration-protocol.cjs +3 -2
  9. package/dist/cjs/runtime.cjs +169 -155
  10. package/dist/cjs/runtime.server.cjs +40 -34
  11. package/dist/cjs/signals/control-binding.cjs +7 -6
  12. package/dist/cjs/signals/derived-facade.cjs +2 -1
  13. package/dist/cjs/signals/document-owner.cjs +4 -3
  14. package/dist/cjs/signals/facade.cjs +10 -9
  15. package/dist/cjs/signals/graph.cjs +5 -4
  16. package/dist/cjs/signals/native-read-client.cjs +4 -3
  17. package/dist/cjs/signals/owner-context.cjs +4 -3
  18. package/dist/cjs/signals/query-attempt-observer.cjs +2 -1
  19. package/dist/cjs/signals/query-facade.cjs +2 -1
  20. package/dist/cjs/signals/scalar-computations.cjs +2 -1
  21. package/dist/cjs/signals/transition-action.cjs +10 -9
  22. package/dist/cjs/signals/transition-candidate.cjs +2 -1
  23. package/dist/cjs/version.cjs +1 -1
  24. package/dist/compiler/compile.js +380 -12
  25. package/dist/node/aria-diagnostics.js +92 -0
  26. package/dist/node/behavior-form-submissions.js +228 -0
  27. package/dist/node/behavior-root-types.js +0 -0
  28. package/dist/node/behavior-root.js +746 -0
  29. package/dist/node/class-names.js +25 -0
  30. package/dist/node/compatibility.js +10 -0
  31. package/dist/node/component-flags.js +23 -0
  32. package/dist/node/constants.js +113 -0
  33. package/dist/node/context-epoch.js +13 -0
  34. package/dist/node/context-identity.js +46 -0
  35. package/dist/node/css.js +80 -0
  36. package/dist/node/data-encoding.js +134 -0
  37. package/dist/node/devtools-hook.js +229 -0
  38. package/dist/node/dom-binding-claims.js +4 -0
  39. package/dist/node/dom-binding-classes.js +152 -0
  40. package/dist/node/dom-binding-controls.js +6 -0
  41. package/dist/node/dom-binding-handoff.js +77 -0
  42. package/dist/node/dom-binding-program.js +1617 -0
  43. package/dist/node/dom-binding-projections.js +204 -0
  44. package/dist/node/dom-binding-protocol.js +130 -0
  45. package/dist/node/dom-binding-signals.js +135 -0
  46. package/dist/node/dom-binding-styles.js +280 -0
  47. package/dist/node/dom-bindings.js +1087 -0
  48. package/dist/node/dom-focused-move.js +46 -0
  49. package/dist/node/dom-stage.js +878 -0
  50. package/dist/node/dom-tables.js +382 -0
  51. package/dist/node/error-codes.client.generated.js +1066 -0
  52. package/dist/node/error-codes.server.generated.js +736 -0
  53. package/dist/node/error-message.js +27 -0
  54. package/dist/node/event-names.js +15 -0
  55. package/dist/node/form-diagnostics.js +96 -0
  56. package/dist/node/form-submission.js +43 -0
  57. package/dist/node/has-own.js +4 -0
  58. package/dist/node/head-ownership.js +31 -0
  59. package/dist/node/hook-slot-cache.js +91 -0
  60. package/dist/node/host-property-diagnostics.js +189 -0
  61. package/dist/node/html-tree-validation.js +193 -0
  62. package/dist/node/hydration/condition.js +15 -0
  63. package/dist/node/hydration/control-capture.js +237 -0
  64. package/dist/node/hydration/document-lifecycle.js +89 -0
  65. package/dist/node/hydration/event-capture.js +362 -0
  66. package/dist/node/hydration/idle.js +23 -0
  67. package/dist/node/hydration/independent-island.js +317 -0
  68. package/dist/node/hydration/index.js +74 -0
  69. package/dist/node/hydration/interaction-config.js +61 -0
  70. package/dist/node/hydration/interaction.js +35 -0
  71. package/dist/node/hydration/load.js +15 -0
  72. package/dist/node/hydration/media.js +33 -0
  73. package/dist/node/hydration/native-intent.js +68 -0
  74. package/dist/node/hydration/never.js +12 -0
  75. package/dist/node/hydration/stream-delivery.js +345 -0
  76. package/dist/node/hydration/stream-receiver.js +190 -0
  77. package/dist/node/hydration/stream-result-receiver.js +276 -0
  78. package/dist/node/hydration/streamed-signals.js +186 -0
  79. package/dist/node/hydration/types.js +0 -0
  80. package/dist/node/hydration/visible.js +69 -0
  81. package/dist/node/hydration-markers.js +44 -0
  82. package/dist/node/independent-hydration-protocol.js +91 -0
  83. package/dist/node/index.js +461 -0
  84. package/dist/node/internal/client.js +7 -0
  85. package/dist/node/internal/context.js +5 -0
  86. package/dist/node/internal/server.js +5 -0
  87. package/dist/node/internal/signal-read.js +4 -0
  88. package/dist/node/method-dep.js +25 -0
  89. package/dist/node/profiling.js +432 -0
  90. package/dist/node/public-types.js +0 -0
  91. package/dist/node/react/fiber-adapter.js +57 -0
  92. package/dist/node/react/index.js +397 -0
  93. package/dist/node/react/react-compat-envelope.js +78 -0
  94. package/dist/node/react/react-compat-server.js +129 -0
  95. package/dist/node/react/react-compat-shared.js +104 -0
  96. package/dist/node/react/react-compat.js +223 -0
  97. package/dist/node/react/server.js +81 -0
  98. package/dist/node/react/shared.js +75 -0
  99. package/dist/node/renderer-bridge.js +35 -0
  100. package/dist/node/resize-observer.js +105 -0
  101. package/dist/node/resource-hint-diagnostics.js +67 -0
  102. package/dist/node/runtime-tags.js +22 -0
  103. package/dist/node/runtime.js +28881 -0
  104. package/dist/node/runtime.server.js +8016 -0
  105. package/dist/node/sanitize-url.js +34 -0
  106. package/dist/node/server/early-signals.js +54 -0
  107. package/dist/node/server/index.js +336 -0
  108. package/dist/node/server/rpc-batch.js +129 -0
  109. package/dist/node/server/rpc-stream.js +125 -0
  110. package/dist/node/server/rpc.js +48 -0
  111. package/dist/node/server/signal-query-observation.js +134 -0
  112. package/dist/node/server/streamed-region.js +31 -0
  113. package/dist/node/server/streamed-signals.js +557 -0
  114. package/dist/node/server-call.js +75 -0
  115. package/dist/node/server-rpc-batch-client.js +119 -0
  116. package/dist/node/server-rpc-client.js +108 -0
  117. package/dist/node/server-rpc-protocol.js +109 -0
  118. package/dist/node/server-rpc-stream-client.js +98 -0
  119. package/dist/node/shared-value-helpers.js +40 -0
  120. package/dist/node/signals/actions.js +463 -0
  121. package/dist/node/signals/client.js +22 -0
  122. package/dist/node/signals/computations.js +452 -0
  123. package/dist/node/signals/control-binding.js +388 -0
  124. package/dist/node/signals/control-handoff.js +12 -0
  125. package/dist/node/signals/derived-facade.js +25 -0
  126. package/dist/node/signals/document-owner.js +48 -0
  127. package/dist/node/signals/early-values.js +124 -0
  128. package/dist/node/signals/encoding.js +6 -0
  129. package/dist/node/signals/engine.js +668 -0
  130. package/dist/node/signals/errors.js +54 -0
  131. package/dist/node/signals/facade.js +441 -0
  132. package/dist/node/signals/graph.js +817 -0
  133. package/dist/node/signals/handle-protocol.js +11 -0
  134. package/dist/node/signals/index.js +87 -0
  135. package/dist/node/signals/native-read-client.js +319 -0
  136. package/dist/node/signals/native-read-collector.js +132 -0
  137. package/dist/node/signals/native-read-events.js +45 -0
  138. package/dist/node/signals/native-read-inspection.js +20 -0
  139. package/dist/node/signals/native-read-retry.js +30 -0
  140. package/dist/node/signals/native-read-seeds.js +243 -0
  141. package/dist/node/signals/native-read-server.js +99 -0
  142. package/dist/node/signals/owner-context.js +88 -0
  143. package/dist/node/signals/query-attempt-observer.js +42 -0
  144. package/dist/node/signals/query-facade.js +41 -0
  145. package/dist/node/signals/read-protocol.js +125 -0
  146. package/dist/node/signals/requests.js +716 -0
  147. package/dist/node/signals/scalar-computations.js +57 -0
  148. package/dist/node/signals/scope-streams.js +147 -0
  149. package/dist/node/signals/server.js +22 -0
  150. package/dist/node/signals/transition-action.js +555 -0
  151. package/dist/node/signals/transition-candidate.js +101 -0
  152. package/dist/node/signals/transition-coordinator.js +255 -0
  153. package/dist/node/signals/transition-state.js +82 -0
  154. package/dist/node/signals/types.js +20 -0
  155. package/dist/node/static/index.js +10 -0
  156. package/dist/node/stream-protocol.js +114 -0
  157. package/dist/node/streamed-signals-protocol.js +130 -0
  158. package/dist/node/style-values.js +96 -0
  159. package/dist/node/sub-slot.js +35 -0
  160. package/dist/node/testing.js +14 -0
  161. package/dist/node/trusted-html.js +6 -0
  162. package/dist/node/tsrx-iterable.js +5 -0
  163. package/dist/node/tsrx-spread.js +10 -0
  164. package/dist/node/universal-core.js +10010 -0
  165. package/dist/node/universal-dom-boundary.js +237 -0
  166. package/dist/node/universal-native.js +28 -0
  167. package/dist/node/universal.js +17 -0
  168. package/dist/node/version.js +4 -0
  169. package/dist/runtime.d.ts +18 -0
  170. package/dist/runtime.js +13 -2
  171. package/dist/runtime.server.d.ts +7 -0
  172. package/dist/runtime.server.js +4 -0
  173. package/dist/version.js +1 -1
  174. package/package.json +62 -1
@@ -69,6 +69,7 @@ __export(runtime_server_exports, {
69
69
  injectStyle: () => injectStyle,
70
70
  invokeManualHook: () => invokeManualHook,
71
71
  isChildrenBlock: () => isChildrenBlock,
72
+ isRenderCall: () => isRenderCall,
72
73
  isValidElement: () => isValidElement,
73
74
  lazy: () => lazy,
74
75
  manualHook: () => manualHook,
@@ -223,6 +224,7 @@ var import_native_read_seeds = require("./signals/native-read-seeds.cjs");
223
224
  var import_owner_context = require("./signals/owner-context.cjs");
224
225
  var import_query_attempt_observer = require("./signals/query-attempt-observer.cjs");
225
226
  var import_types = require("./signals/types.cjs");
227
+ const __octaneDev = process.env.NODE_ENV !== "production";
226
228
  function isSignalHandle(value) {
227
229
  return (typeof value === "object" || typeof value === "function") && value !== null && value[import_types.SIGNAL_HANDLE] === true;
228
230
  }
@@ -455,7 +457,7 @@ function nextScopedCount(frame, slot, key) {
455
457
  }
456
458
  function scopeSuffix(frame) {
457
459
  const scope = ASYNC_SCOPE;
458
- if (process.env.NODE_ENV !== "production" && !scope.startsWith(frame.asyncScope)) {
460
+ if (__octaneDev && !scope.startsWith(frame.asyncScope)) {
459
461
  throw new Error((0, import_error_codes_server_generated.formatServerError)(65));
460
462
  }
461
463
  return scope.slice(frame.asyncScope.length);
@@ -505,7 +507,7 @@ function withSsrElementContext(tag, location, render, forcedNamespace, htmlInteg
505
507
  childrenNamespace,
506
508
  location
507
509
  };
508
- if (process.env.NODE_ENV !== "production" && SSR_NESTING_WARNINGS !== null && namespace === "html" && parent?.namespace === "html") {
510
+ if (__octaneDev && SSR_NESTING_WARNINGS !== null && namespace === "html" && parent?.namespace === "html") {
509
511
  const parentMessage = (0, import_html_tree_validation.invalidHtmlNestingWithParent)(
510
512
  semanticTag,
511
513
  parent.tag,
@@ -535,12 +537,12 @@ function withSsrElementContext(tag, location, render, forcedNamespace, htmlInteg
535
537
  }
536
538
  }
537
539
  function ssrElement(tag, location, render, htmlIntegrationPoint) {
538
- if (process.env.NODE_ENV === "production" || SSR_NESTING_WARNINGS === null) return render();
540
+ if (!__octaneDev || SSR_NESTING_WARNINGS === null) return render();
539
541
  return withSsrElementContext(tag, location, render, void 0, htmlIntegrationPoint);
540
542
  }
541
543
  function ssrNestingText(value) {
542
544
  const text = ssrText(value);
543
- if (process.env.NODE_ENV !== "production" && text !== "") {
545
+ if (__octaneDev && text !== "") {
544
546
  const parent = CURRENT_SSR_ELEMENT;
545
547
  if (parent !== null && parent.namespace === "html" && SSR_NESTING_WARNINGS !== null) {
546
548
  const message = (0, import_html_tree_validation.invalidHtmlTextNesting)(text, parent.tag, parent.location);
@@ -694,7 +696,7 @@ function copyElementConfig(config) {
694
696
  return props;
695
697
  }
696
698
  function finalizeElementDescriptor(descriptor) {
697
- if (process.env.NODE_ENV !== "production") {
699
+ if (__octaneDev) {
698
700
  Object.freeze(descriptor.props);
699
701
  Object.freeze(descriptor);
700
702
  }
@@ -749,6 +751,9 @@ function createScopedValue(readElement) {
749
751
  };
750
752
  return scopedValueDescriptor(resolve);
751
753
  }
754
+ function isRenderCall(scope) {
755
+ return scope === CURRENT_SCOPE && scope !== null;
756
+ }
752
757
  function nativeCreateScopedValue(readElement) {
753
758
  return scopedValueDescriptor(createNativeServerScopedResolver(readElement));
754
759
  }
@@ -765,7 +770,7 @@ function scopedValueDescriptor(resolve) {
765
770
  "__octaneInvocationSite",
766
771
  SCOPED_VALUE_PROPERTIES.__octaneInvocationSite
767
772
  );
768
- if (process.env.NODE_ENV !== "production") Object.freeze(descriptor);
773
+ if (__octaneDev) Object.freeze(descriptor);
769
774
  return descriptor;
770
775
  }
771
776
  function createScopedElement(type, props, readChildren, invocationSite) {
@@ -830,7 +835,7 @@ function createElementFromConfig(invocationSite, type, props, children) {
830
835
  let kids = hasPositional ? children.length === 1 ? children[0] : children : src?.children;
831
836
  if (children !== void 0 && children.length > 1) {
832
837
  POSITIONAL_CHILDREN.add(children);
833
- if (process.env.NODE_ENV !== "production") Object.freeze(children);
838
+ if (__octaneDev) Object.freeze(children);
834
839
  }
835
840
  const p = copyElementConfig(src);
836
841
  if (hasPositional) p.children = kids;
@@ -1483,7 +1488,7 @@ function ssrHostElement(tag, props, children, scope, rawInner) {
1483
1488
  let hasInnerHTMLProp = false;
1484
1489
  const isCtlTag = semanticTag === "input" || semanticTag === "textarea" || semanticTag === "select";
1485
1490
  if (props != null) {
1486
- if (process.env.NODE_ENV !== "production") {
1491
+ if (__octaneDev) {
1487
1492
  devValidateSsrAriaProps(props, semanticTag, namespace);
1488
1493
  devValidateSsrHostProps(props, semanticTag, namespace);
1489
1494
  devValidateSsrFormProps(semanticTag, props, children);
@@ -1896,7 +1901,7 @@ function devValidateSsrHostProps(props, tag, namespace) {
1896
1901
  if (invalid !== void 0) console.error((0, import_host_property_diagnostics.invalidHostPropertiesWarning)(invalid, tag));
1897
1902
  }
1898
1903
  function ssrAttr(name, v, tag, namespace = "html") {
1899
- const dev = process.env.NODE_ENV !== "production";
1904
+ const dev = __octaneDev;
1900
1905
  namespace = resolveAttributeNamespace(namespace);
1901
1906
  const isCustomTag = namespace === "html" && tag !== void 0 && tag.indexOf("-") !== -1;
1902
1907
  if (dev && !isCustomTag && tag !== void 0 && DEV_SSR_CUSTOM_HOST_DEPTH === 0) {
@@ -2020,7 +2025,7 @@ function ssrAttr(name, v, tag, namespace = "html") {
2020
2025
  return " " + name + '="' + escapeAttr((0, import_sanitize_url.sanitizeURLAttribute)(tag, name, s)) + '"';
2021
2026
  }
2022
2027
  function styleObjectToCss(obj) {
2023
- const dev = process.env.NODE_ENV !== "production";
2028
+ const dev = __octaneDev;
2024
2029
  let out = "";
2025
2030
  for (const k in obj) {
2026
2031
  const val = obj[k];
@@ -2075,7 +2080,7 @@ function isAggregatedFormAttribute(tag, name) {
2075
2080
  return tag === "select" && name === "multiple";
2076
2081
  }
2077
2082
  function ssrAttrs(sources, tag, namespace = "html", skipFormControls = false, readStyle) {
2078
- const dev = process.env.NODE_ENV !== "production";
2083
+ const dev = __octaneDev;
2079
2084
  namespace = resolveAttributeNamespace(namespace);
2080
2085
  const props = /* @__PURE__ */ new Map();
2081
2086
  let classMerges = null;
@@ -2261,7 +2266,7 @@ function ssrSnapshotSpread(obj, controlSite, deferStyle = false) {
2261
2266
  function ssrSpread(obj, tag, skipClass = false, namespace = "html", skipFormControls = false) {
2262
2267
  namespace = resolveAttributeNamespace(namespace);
2263
2268
  if (obj == null) return "";
2264
- if (process.env.NODE_ENV !== "production") {
2269
+ if (__octaneDev) {
2265
2270
  devValidateSsrAriaProps(Object(obj), tag, namespace);
2266
2271
  devValidateSsrHostProps(Object(obj), tag, namespace);
2267
2272
  }
@@ -2363,7 +2368,7 @@ function ssrVoidContent(tag, dangerSources, childrenSources) {
2363
2368
  return "";
2364
2369
  }
2365
2370
  function devValidateSsrFormProps(tag, props, children) {
2366
- if (process.env.NODE_ENV === "production" || SSR_NESTING_WARNINGS === null || CURRENT_SSR_ELEMENT === null || tag !== "input" && tag !== "textarea" && tag !== "select" && tag !== "option" && tag !== "form" && tag !== "button") {
2371
+ if (!__octaneDev || SSR_NESTING_WARNINGS === null || CURRENT_SSR_ELEMENT === null || tag !== "input" && tag !== "textarea" && tag !== "select" && tag !== "option" && tag !== "form" && tag !== "button") {
2367
2372
  return;
2368
2373
  }
2369
2374
  for (const warning of (0, import_form_diagnostics.formAuthoringDiagnostics)(tag, props, children)) {
@@ -2371,7 +2376,7 @@ function devValidateSsrFormProps(tag, props, children) {
2371
2376
  }
2372
2377
  }
2373
2378
  function ssrFormAuthoringDiagnostics(tag, sources) {
2374
- if (process.env.NODE_ENV !== "production" && SSR_NESTING_WARNINGS !== null) {
2379
+ if (__octaneDev && SSR_NESTING_WARNINGS !== null) {
2375
2380
  const props = /* @__PURE__ */ Object.create(null);
2376
2381
  for (const [name, value] of sources) props[name] = value;
2377
2382
  devValidateSsrFormProps(tag, props);
@@ -2389,7 +2394,7 @@ function ssrCheckedAttr(v) {
2389
2394
  }
2390
2395
  function ssrInputAttrs(sources) {
2391
2396
  const props = resolveFormControlSources(sources);
2392
- if (process.env.NODE_ENV !== "production") {
2397
+ if (__octaneDev) {
2393
2398
  devValidateSsrFormProps("input", {
2394
2399
  value: unwrapSsrSignalControlValue(props.value),
2395
2400
  defaultValue: unwrapSsrSignalControlValue(props.defaultValue),
@@ -2478,7 +2483,7 @@ function ssrTextareaValue(v) {
2478
2483
  }
2479
2484
  function ssrTextareaValueSources(sources) {
2480
2485
  const props = resolveFormControlSources(sources);
2481
- if (process.env.NODE_ENV !== "production") {
2486
+ if (__octaneDev) {
2482
2487
  devValidateSsrFormProps("textarea", {
2483
2488
  value: unwrapSsrSignalControlValue(props.value),
2484
2489
  defaultValue: unwrapSsrSignalControlValue(props.defaultValue)
@@ -2495,7 +2500,7 @@ const SELECT_STACK = [];
2495
2500
  function ssrSelectScope(value, defaultValue, multiple, children) {
2496
2501
  value = unwrapSsrSignalControlValue(value);
2497
2502
  defaultValue = unwrapSsrSignalControlValue(defaultValue);
2498
- if (process.env.NODE_ENV !== "production") {
2503
+ if (__octaneDev) {
2499
2504
  devValidateSsrFormProps("select", { value, defaultValue, multiple });
2500
2505
  }
2501
2506
  const v = value != null ? value : defaultValue;
@@ -2540,7 +2545,7 @@ function ssrOptionValueSources(sources) {
2540
2545
  return value;
2541
2546
  }
2542
2547
  function ssrOption(value, attrs, content, complexAuthoredChildren = false) {
2543
- if (process.env.NODE_ENV !== "production" && SSR_NESTING_WARNINGS !== null) {
2548
+ if (__octaneDev && SSR_NESTING_WARNINGS !== null) {
2544
2549
  if (/(?:^|\s)selected(?:\s|=|$)/i.test(attrs)) {
2545
2550
  devValidateSsrFormProps("option", { value, selected: true });
2546
2551
  }
@@ -3826,7 +3831,7 @@ function createContext(defaultValue) {
3826
3831
  ctx.$$kind = import_runtime_tags.CONTEXT_TAG;
3827
3832
  ctx.defaultValue = defaultValue;
3828
3833
  (0, import_context_identity.registerContext)(ctx);
3829
- if (process.env.NODE_ENV !== "production") {
3834
+ if (__octaneDev) {
3830
3835
  (0, import_context_identity.defineRemovedContextMembers)(ctx);
3831
3836
  }
3832
3837
  return ctx;
@@ -4033,7 +4038,7 @@ function hasExternalHydrationOwner(thenable) {
4033
4038
  }
4034
4039
  }
4035
4040
  function use(usable, siteKey, directSite) {
4036
- if (process.env.NODE_ENV !== "production" && devMemoComputeDepth !== 0) {
4041
+ if (__octaneDev && devMemoComputeDepth !== 0) {
4037
4042
  console.error(
4038
4043
  "Do not call use() inside a useMemo() factory. Cached factories can skip context or promise reads; call use() before useMemo() and memoize the returned value instead."
4039
4044
  );
@@ -4621,7 +4626,7 @@ function memoHookValue(input, compute, depsOrSlot, maybeSlot) {
4621
4626
  return rec.value;
4622
4627
  }
4623
4628
  function useMemo(compute, depsOrSlot, maybeSlot) {
4624
- if (process.env.NODE_ENV !== "production") {
4629
+ if (__octaneDev) {
4625
4630
  devMemoComputeDepth++;
4626
4631
  try {
4627
4632
  return memoHookValue(compute, true, depsOrSlot, maybeSlot);
@@ -5560,7 +5565,7 @@ function observeSuspenseWave(resolved, settled, next, boundaryProgress) {
5560
5565
  }
5561
5566
  pu.batchDisabled = true;
5562
5567
  for (const { promise } of next) Promise.resolve(promise).then(NOOP, NOOP);
5563
- if (process.env.NODE_ENV !== "production") {
5568
+ if (__octaneDev) {
5564
5569
  console.error(
5565
5570
  "octane SSR: use() thenables appear to be re-created on every render pass \u2014 promises created during an ancestor render and passed down (e.g. via props) get a fresh identity each pass, so their boundaries can never resolve by identity. Create the promise at its use() site, or hoist the creation out of render (the compiler caches analyzable inline creations automatically). Falling back to per-site replay for the rest of this render."
5566
5571
  );
@@ -5742,7 +5747,7 @@ async function prerenderToNodeStream(entryComponent, props, options) {
5742
5747
  }
5743
5748
  let resolved = options;
5744
5749
  if (options?.headChannel === "separate") {
5745
- if (process.env.NODE_ENV !== "production") {
5750
+ if (__octaneDev) {
5746
5751
  console.error(
5747
5752
  "prerenderToNodeStream() streams one document and has no separate head channel; headChannel: 'separate' was ignored. Use prerender() for a split head."
5748
5753
  );
@@ -7692,7 +7697,7 @@ function coerceHintHref(href) {
7692
7697
  return typeof href === "string" && href !== "" ? href : null;
7693
7698
  }
7694
7699
  function preload(href, options) {
7695
- if (process.env.NODE_ENV !== "production") {
7700
+ if (__octaneDev) {
7696
7701
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("preload", href, options);
7697
7702
  if (warning !== null) console.error(warning);
7698
7703
  }
@@ -7706,7 +7711,7 @@ function preload(href, options) {
7706
7711
  if (as === "style" && HEAD.hints.has("sheet:" + value)) {
7707
7712
  const existing = HEAD.sheets?.get(value);
7708
7713
  if (existing === void 0 || !existing.html.startsWith("<style")) return;
7709
- if (process.env.NODE_ENV !== "production" && HEAD.hints.has("dev-inline-style:" + value)) {
7714
+ if (__octaneDev && HEAD.hints.has("dev-inline-style:" + value)) {
7710
7715
  console.error(
7711
7716
  'A <style> resource with href "' + value + '" follows a stylesheet preload for the same href. Inline styles cannot consume a stylesheet preload; remove the preload or use a stylesheet link.'
7712
7717
  );
@@ -7736,7 +7741,7 @@ function preload(href, options) {
7736
7741
  );
7737
7742
  }
7738
7743
  function preinit(href, options) {
7739
- if (process.env.NODE_ENV !== "production") {
7744
+ if (__octaneDev) {
7740
7745
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("preinit", href, options);
7741
7746
  if (warning !== null) console.error(warning);
7742
7747
  }
@@ -7769,7 +7774,7 @@ function preinit(href, options) {
7769
7774
  }
7770
7775
  }
7771
7776
  function preconnect(href, options) {
7772
- if (process.env.NODE_ENV !== "production") {
7777
+ if (__octaneDev) {
7773
7778
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("preconnect", href, options);
7774
7779
  if (warning !== null) console.error(warning);
7775
7780
  }
@@ -7788,7 +7793,7 @@ function preconnect(href, options) {
7788
7793
  );
7789
7794
  }
7790
7795
  function prefetchDNS(href) {
7791
- if (process.env.NODE_ENV !== "production") {
7796
+ if (__octaneDev) {
7792
7797
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("prefetchDNS", href, arguments[1], arguments.length > 1);
7793
7798
  if (warning !== null) console.error(warning);
7794
7799
  }
@@ -7814,7 +7819,7 @@ function resourceAttrs(attrs, tag) {
7814
7819
  return out;
7815
7820
  }
7816
7821
  function ssrStylesheetResource(attrs, invalidReason) {
7817
- if (process.env.NODE_ENV !== "production" && invalidReason !== void 0) {
7822
+ if (__octaneDev && invalidReason !== void 0) {
7818
7823
  let conflict;
7819
7824
  if (invalidReason === "missing-href") {
7820
7825
  conflict = "requires a non-empty string `href`";
@@ -7847,13 +7852,13 @@ function ssrStyleResource(attrs, css, development) {
7847
7852
  if (HEAD === null || attrs == null) return "";
7848
7853
  const href = attrs.href;
7849
7854
  if (typeof href !== "string" || href === "") return "";
7850
- if (process.env.NODE_ENV !== "production" && development === true && /\s/.test(href)) {
7855
+ if (__octaneDev && development === true && /\s/.test(href)) {
7851
7856
  console.error(
7852
7857
  'A <style> resource href must not contain whitespace because it identifies the style during hydration; received "' + href + '".'
7853
7858
  );
7854
7859
  }
7855
7860
  if (/<\/style/i.test(css)) {
7856
- if (process.env.NODE_ENV !== "production") {
7861
+ if (__octaneDev) {
7857
7862
  console.error(
7858
7863
  'octane SSR: a <style href precedence> resource contains "</style" and cannot be serialized safely; the resource was skipped. Load it as a stylesheet link instead.'
7859
7864
  );
@@ -7862,7 +7867,7 @@ function ssrStyleResource(attrs, css, development) {
7862
7867
  }
7863
7868
  const key = "sheet:" + href;
7864
7869
  if (HEAD.hints.has(key)) return "";
7865
- if (process.env.NODE_ENV !== "production" && development === true) {
7870
+ if (__octaneDev && development === true) {
7866
7871
  if (HEAD.hints.has("preload:style:" + href)) {
7867
7872
  console.error(
7868
7873
  'A <style> resource with href "' + href + '" follows a stylesheet preload for the same href. Inline styles cannot consume a stylesheet preload; remove the preload or use a stylesheet link.'
@@ -7891,7 +7896,7 @@ function ssrScriptResource(attrs) {
7891
7896
  return "";
7892
7897
  }
7893
7898
  function preloadModule(href, options) {
7894
- if (process.env.NODE_ENV !== "production") {
7899
+ if (__octaneDev) {
7895
7900
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("preloadModule", href, options);
7896
7901
  if (warning !== null) console.error(warning);
7897
7902
  }
@@ -7911,7 +7916,7 @@ function preloadModule(href, options) {
7911
7916
  );
7912
7917
  }
7913
7918
  function preinitModule(href, options) {
7914
- if (process.env.NODE_ENV !== "production") {
7919
+ if (__octaneDev) {
7915
7920
  const warning = (0, import_resource_hint_diagnostics.resourceHintWarning)("preinitModule", href, options);
7916
7921
  if (warning !== null) console.error(warning);
7917
7922
  }
@@ -7970,6 +7975,7 @@ function preinitModule(href, options) {
7970
7975
  injectStyle,
7971
7976
  invokeManualHook,
7972
7977
  isChildrenBlock,
7978
+ isRenderCall,
7973
7979
  isValidElement,
7974
7980
  lazy,
7975
7981
  manualHook,
@@ -30,6 +30,7 @@ var import_owner_context = require("./owner-context.cjs");
30
30
  var import_read_protocol = require("./read-protocol.cjs");
31
31
  var import_types = require("./types.cjs");
32
32
  var import_transition_state = require("./transition-state.cjs");
33
+ const __octaneDev = process.env.NODE_ENV !== "production";
33
34
  function __octaneNoArgError(code) {
34
35
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
35
36
  }
@@ -62,9 +63,9 @@ function __createBindingControls(owner = (0, import_owner_context.currentSignalO
62
63
  claim(element, channel, notify) {
63
64
  const control = element;
64
65
  if (control?.nodeType !== 1 || channel !== "value" && channel !== "checked" || !["input", "textarea", "select"].includes(control.localName) || channel === "checked" && (control.localName !== "input" || !["checkbox", "radio"].includes(control.type)) || channel === "value" && control.localName === "input" && control.type === "file")
65
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
66
+ throw new TypeError(__octaneDev ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
66
67
  if (import_control_handoff.CONTROL_BINDINGS.get(control)?.has(channel) || (0, import_early_values.hasHydrationControlSignalWriter)(control, channel))
67
- throw new Error(process.env.NODE_ENV !== "production" ? "This control property already has a signal binding. Dispose it before rebinding." : __octaneNoArgError(117));
68
+ throw new Error(__octaneDev ? "This control property already has a signal binding. Dispose it before rebinding." : __octaneNoArgError(117));
68
69
  let channels = import_control_handoff.CONTROL_BINDINGS.get(control);
69
70
  if (!channels)
70
71
  import_control_handoff.CONTROL_BINDINGS.set(control, channels = /* @__PURE__ */ new Set());
@@ -156,7 +157,7 @@ function __createBindingControls(owner = (0, import_owner_context.currentSignalO
156
157
  }, commit() {
157
158
  } };
158
159
  if ((0, import_handle_protocol.isSignalHandle)(next) && (typeof next[import_types.SIGNAL_BINDING_READ] !== "function" || typeof next[import_types.SIGNAL_BINDING_SUBSCRIBE] !== "function"))
159
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
160
+ throw new TypeError(__octaneDev ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
160
161
  if (!preview && raw !== next) {
161
162
  const ticket2 = ++generation;
162
163
  const stop = unsubscribe;
@@ -182,7 +183,7 @@ function __createBindingControls(owner = (0, import_owner_context.currentSignalO
182
183
  dispose();
183
184
  }));
184
185
  if (typeof stopNext !== "function")
185
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal control subscription must return cleanup." : __octaneNoArgError(118));
186
+ throw new TypeError(__octaneDev ? "A signal control subscription must return cleanup." : __octaneNoArgError(118));
186
187
  if (disposed || generation !== ticket2)
187
188
  stopNext();
188
189
  else
@@ -203,7 +204,7 @@ function __createBindingControls(owner = (0, import_owner_context.currentSignalO
203
204
  } };
204
205
  const multiple = control.localName === "select" && control.multiple;
205
206
  if (candidate && (channel === "checked" ? typeof value !== "boolean" : multiple ? !Array.isArray(value) : typeof value !== "string"))
206
- throw new TypeError(channel === "checked" ? process.env.NODE_ENV !== "production" ? "A checked signal must contain a boolean." : __octaneNoArgError(119) : multiple ? process.env.NODE_ENV !== "production" ? "A multiple select signal must contain an array." : __octaneNoArgError(120) : process.env.NODE_ENV !== "production" ? "A value signal must contain a string." : __octaneNoArgError(121));
207
+ throw new TypeError(channel === "checked" ? __octaneDev ? "A checked signal must contain a boolean." : __octaneNoArgError(119) : multiple ? __octaneDev ? "A multiple select signal must contain an array." : __octaneNoArgError(120) : __octaneDev ? "A value signal must contain a string." : __octaneNoArgError(121));
207
208
  let selected;
208
209
  if (multiple && Array.isArray(value)) {
209
210
  selected = /* @__PURE__ */ new Set();
@@ -324,7 +325,7 @@ function controlSignalOwner(owner, document) {
324
325
  }
325
326
  function bindSignalControl(control, channel, handle$) {
326
327
  if (!(0, import_handle_protocol.isSignalHandle)(handle$))
327
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
328
+ throw new TypeError(__octaneDev ? "A signal control requires a native value/checked property and a signal." : __octaneNoArgError(116));
328
329
  let busy = false;
329
330
  let dirty = false;
330
331
  let disposed = false;
@@ -25,12 +25,13 @@ module.exports = __toCommonJS(derived_facade_exports);
25
25
  var import_computations = require("./computations.cjs");
26
26
  var import_facade = require("./facade.cjs");
27
27
  var import_owner_context = require("./owner-context.cjs");
28
+ const __octaneDev = process.env.NODE_ENV !== "production";
28
29
  function __octaneNoArgError(code) {
29
30
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
30
31
  }
31
32
  function __derivedAt(site, compute, options) {
32
33
  if (typeof compute !== "function")
33
- throw new TypeError(process.env.NODE_ENV !== "production" ? "derived$ requires a function." : __octaneNoArgError(122));
34
+ throw new TypeError(__octaneDev ? "derived$ requires a function." : __octaneNoArgError(122));
34
35
  const explicit = (0, import_facade.signalOptionsKey)(options);
35
36
  site ??= explicit;
36
37
  const key = (0, import_facade.descriptorKey)(site, explicit);
@@ -27,6 +27,7 @@ __export(document_owner_exports, {
27
27
  module.exports = __toCommonJS(document_owner_exports);
28
28
  var import_early_values = require("./early-values.cjs");
29
29
  var import_owner_context = require("./owner-context.cjs");
30
+ const __octaneDev = process.env.NODE_ENV !== "production";
30
31
  function __octaneNoArgError(code) {
31
32
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
32
33
  }
@@ -37,7 +38,7 @@ let streamedSignalOwnerActivator;
37
38
  function documentSignalOwner(container) {
38
39
  const ownerDocument = container.nodeType === 9 ? container : container.ownerDocument;
39
40
  if (ownerDocument === null)
40
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal document owner requires a document." : __octaneNoArgError(123));
41
+ throw new TypeError(__octaneDev ? "A signal document owner requires a document." : __octaneNoArgError(123));
41
42
  let owner = documentOwners.get(ownerDocument);
42
43
  if (owner === void 0) {
43
44
  owner = Object.freeze({ scopeKey: "octane:document" });
@@ -48,7 +49,7 @@ function documentSignalOwner(container) {
48
49
  }
49
50
  function enableSignalDocument(abi = 1) {
50
51
  if (abi !== 1)
51
- throw new TypeError(process.env.NODE_ENV !== "production" ? "Unsupported Octane signal binding ABI." : __octaneNoArgError(74));
52
+ throw new TypeError(__octaneDev ? "Unsupported Octane signal binding ABI." : __octaneNoArgError(74));
52
53
  signalDocumentEnabled = true;
53
54
  if (defaultInstalled)
54
55
  return;
@@ -57,7 +58,7 @@ function enableSignalDocument(abi = 1) {
57
58
  }
58
59
  function installStreamedSignalOwnerActivator(activate) {
59
60
  if (streamedSignalOwnerActivator !== void 0) {
60
- throw new Error(process.env.NODE_ENV !== "production" ? "A streamed signal hydration owner is already installed." : __octaneNoArgError(124));
61
+ throw new Error(__octaneDev ? "A streamed signal hydration owner is already installed." : __octaneNoArgError(124));
61
62
  }
62
63
  streamedSignalOwnerActivator = activate;
63
64
  return () => {
@@ -51,6 +51,7 @@ var import_handle_protocol = require("./handle-protocol.cjs");
51
51
  var import_handle_protocol2 = require("./handle-protocol.cjs");
52
52
  var import_owner_context = require("./owner-context.cjs");
53
53
  var import_types = require("./types.cjs");
54
+ const __octaneDev = process.env.NODE_ENV !== "production";
54
55
  function __octaneNoArgError(code) {
55
56
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
56
57
  }
@@ -82,12 +83,12 @@ function resolveIdentity(identity, scopeKey, owner) {
82
83
  }
83
84
  function initializeDocumentSignalOwner(owner, seed) {
84
85
  if (isScope(owner) || isRendererOwner(owner)) {
85
- throw new TypeError(process.env.NODE_ENV !== "production" ? "Initial document signals require an implicit document owner." : __octaneNoArgError(155));
86
+ throw new TypeError(__octaneDev ? "Initial document signals require an implicit document owner." : __octaneNoArgError(155));
86
87
  }
87
88
  if (retiredIdentities.has(owner))
88
89
  throw new import_errors.ScopeDisposedError(owner.scopeKey);
89
90
  if (identityScopes.has(owner)) {
90
- throw new Error(process.env.NODE_ENV !== "production" ? "Initial document signals must be installed once, before any signal reads or writes." : __octaneNoArgError(156));
91
+ throw new Error(__octaneDev ? "Initial document signals must be installed once, before any signal reads or writes." : __octaneNoArgError(156));
91
92
  }
92
93
  const scope = (0, import_engine.createScope)({ scopeKey: owner.scopeKey, seed });
93
94
  const barrier = frozenDocuments.get(owner);
@@ -188,7 +189,7 @@ function streamedScope(owner, identity, create) {
188
189
  });
189
190
  function createSignalOwnerLifecycle(owner) {
190
191
  if (isRendererOwner(owner))
191
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A document lifecycle requires its document owner." : __octaneNoArgError(157));
192
+ throw new TypeError(__octaneDev ? "A document lifecycle requires its document owner." : __octaneNoArgError(157));
192
193
  let barrier;
193
194
  let release;
194
195
  let disposed = false;
@@ -258,7 +259,7 @@ function createSignalOwnerLifecycle(owner) {
258
259
  function requireOwner() {
259
260
  const owner = (0, import_owner_context.currentSignalOwner)();
260
261
  if (!owner) {
261
- throw new Error(process.env.NODE_ENV !== "production" ? "A module signal needs an active signal owner. Render it in an Octane root or use runWithSignalOwner()." : __octaneNoArgError(158));
262
+ throw new Error(__octaneDev ? "A module signal needs an active signal owner. Render it in an Octane root or use runWithSignalOwner()." : __octaneNoArgError(158));
262
263
  }
263
264
  return owner;
264
265
  }
@@ -274,7 +275,7 @@ function resolveSignalHandleForScope(handle$, owner) {
274
275
  function requireSite(site) {
275
276
  if (site)
276
277
  return site;
277
- throw new Error(process.env.NODE_ENV !== "production" ? "Module signal identity is assigned by the Octane compiler. Use an explicit key outside compiled code." : __octaneNoArgError(159));
278
+ throw new Error(__octaneDev ? "Module signal identity is assigned by the Octane compiler. Use an explicit key outside compiled code." : __octaneNoArgError(159));
278
279
  }
279
280
  class Descriptor {
280
281
  constructor(key, kind, create, site) {
@@ -354,11 +355,11 @@ function descriptorKey(site, explicit) {
354
355
  }
355
356
  function signalOptionsKey(options) {
356
357
  if (options != null && typeof options !== "object") {
357
- throw new TypeError(process.env.NODE_ENV !== "production" ? "Signal declaration options must be an object." : __octaneNoArgError(160));
358
+ throw new TypeError(__octaneDev ? "Signal declaration options must be an object." : __octaneNoArgError(160));
358
359
  }
359
360
  const key = options?.key;
360
361
  if (key !== void 0 && (typeof key !== "string" || !key.trim())) {
361
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal declaration key must be a nonempty string." : __octaneNoArgError(161));
362
+ throw new TypeError(__octaneDev ? "A signal declaration key must be a nonempty string." : __octaneNoArgError(161));
362
363
  }
363
364
  return key;
364
365
  }
@@ -379,7 +380,7 @@ function signal$(initial, options) {
379
380
  }
380
381
  function __derivedScalarAt(site, compute, options) {
381
382
  if (typeof compute !== "function")
382
- throw new TypeError(process.env.NODE_ENV !== "production" ? "derived$ requires a function." : __octaneNoArgError(122));
383
+ throw new TypeError(__octaneDev ? "derived$ requires a function." : __octaneNoArgError(122));
383
384
  const explicit = signalOptionsKey(options);
384
385
  site ??= explicit;
385
386
  const key = descriptorKey(site, explicit);
@@ -387,7 +388,7 @@ function __derivedScalarAt(site, compute, options) {
387
388
  }
388
389
  function readSignalBinding(handle$) {
389
390
  if (!(0, import_handle_protocol.isSignalHandle)(handle$))
390
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal binding requires a signal handle." : __octaneNoArgError(162));
391
+ throw new TypeError(__octaneDev ? "A signal binding requires a signal handle." : __octaneNoArgError(162));
391
392
  return handle$[import_types.SIGNAL_BINDING_READ]();
392
393
  }
393
394
  function __startSignalReads(handles, primitive = false) {
@@ -60,6 +60,7 @@ var import_errors = require("./errors.cjs");
60
60
  var import_read_protocol = require("./read-protocol.cjs");
61
61
  var import_types = require("./types.cjs");
62
62
  var import_transition_state2 = require("./transition-state.cjs");
63
+ const __octaneDev = process.env.NODE_ENV !== "production";
63
64
  function __octaneNoArgError(code) {
64
65
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
65
66
  }
@@ -385,7 +386,7 @@ class ScopedNode {
385
386
  nativeSnapshotSource;
386
387
  retry(_options) {
387
388
  assertAlive(this.owner);
388
- throw new TypeError(process.env.NODE_ENV !== "production" ? "Only an async signal can be retried." : __octaneNoArgError(163));
389
+ throw new TypeError(__octaneDev ? "Only an async signal can be retried." : __octaneNoArgError(163));
389
390
  }
390
391
  get() {
391
392
  return strictValue(readNode(this), this.key);
@@ -407,7 +408,7 @@ class ScopedNode {
407
408
  assertAlive(this.owner);
408
409
  assertWritable();
409
410
  if (this.kind !== "signal")
410
- throw new TypeError(process.env.NODE_ENV !== "production" ? "Only a writable signal accepts set()." : __octaneNoArgError(164));
411
+ throw new TypeError(__octaneDev ? "Only a writable signal accepts set()." : __octaneNoArgError(164));
411
412
  const candidate = import_transition_state.activeCandidate ?? (0, import_read_protocol.getNativeCandidate)();
412
413
  if (candidate) {
413
414
  candidate.run(() => candidate.write(this, value));
@@ -445,7 +446,7 @@ class ScopedNode {
445
446
  assertAlive(this.owner);
446
447
  assertWritable();
447
448
  if (typeof notify !== "function")
448
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal subscriber must be a function." : __octaneNoArgError(165));
449
+ throw new TypeError(__octaneDev ? "A signal subscriber must be a function." : __octaneNoArgError(165));
449
450
  const state = untrack(() => refreshNode(this));
450
451
  return attachObserver(this, notify, false, state);
451
452
  }
@@ -674,7 +675,7 @@ function invalidateNode(node) {
674
675
  function derivedState(node, read) {
675
676
  const value = pure(read);
676
677
  if (isThenable(value))
677
- throw new TypeError(process.env.NODE_ENV !== "production" ? "derived$ requires a synchronous computation." : __octaneNoArgError(166));
678
+ throw new TypeError(__octaneDev ? "derived$ requires a synchronous computation." : __octaneNoArgError(166));
678
679
  return derivedValueState(node, value);
679
680
  }
680
681
  function derivedValueState(node, value, activity, additionalDependencies) {
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(native_read_client_exports);
24
24
  var import_native_read_collector = require("./native-read-collector.cjs");
25
25
  var import_read_protocol = require("./read-protocol.cjs");
26
26
  var import_native_read_inspection = require("./native-read-inspection.cjs");
27
+ const __octaneDev = process.env.NODE_ENV !== "production";
27
28
  function __octaneNoArgError(code) {
28
29
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
29
30
  }
@@ -261,7 +262,7 @@ function createNativeReadDriver(host) {
261
262
  if (completed) {
262
263
  const capture = host.capture();
263
264
  if (capture === null)
264
- throw new Error(process.env.NODE_ENV !== "production" ? "A completed native render requires a renderer transaction." : __octaneNoArgError(167));
265
+ throw new Error(__octaneDev ? "A completed native render requires a renderer transaction." : __octaneNoArgError(167));
265
266
  const destination = target(capture);
266
267
  for (const candidate of frame.candidates.values())
267
268
  put(destination, candidate);
@@ -284,7 +285,7 @@ function createNativeReadDriver(host) {
284
285
  if (collector.isDetached())
285
286
  return collector.beginScope(scope);
286
287
  if (host.capture() === null)
287
- throw new Error(process.env.NODE_ENV !== "production" ? "Native reads require a renderer transaction." : __octaneNoArgError(168));
288
+ throw new Error(__octaneDev ? "Native reads require a renderer transaction." : __octaneNoArgError(168));
288
289
  if (depth === 0 || frames[depth - 1].block !== block)
289
290
  this.beginRender(block);
290
291
  const frame = frames[depth - 1];
@@ -319,7 +320,7 @@ function createNativeReadDriver(host) {
319
320
  if (candidates === void 0)
320
321
  return;
321
322
  if (parent === null)
322
- throw new Error(process.env.NODE_ENV !== "production" ? "A native capture must be accepted before publication." : __octaneNoArgError(169));
323
+ throw new Error(__octaneDev ? "A native capture must be accepted before publication." : __octaneNoArgError(169));
323
324
  captures.delete(capture);
324
325
  const destination = target(parent);
325
326
  for (const candidate of candidates.values())
@@ -32,6 +32,7 @@ __export(owner_context_exports, {
32
32
  runWithSignalOwner: () => runWithSignalOwner
33
33
  });
34
34
  module.exports = __toCommonJS(owner_context_exports);
35
+ const __octaneDev = process.env.NODE_ENV !== "production";
35
36
  function __octaneNoArgError(code) {
36
37
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
37
38
  }
@@ -41,7 +42,7 @@ let defaultOwner;
41
42
  let retireOwner;
42
43
  function installSignalOwnerEnvironment(environment) {
43
44
  if (!environment || typeof environment.current !== "function" || typeof environment.run !== "function" || typeof environment.capture !== "function") {
44
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal owner environment requires current, run, and capture." : __octaneNoArgError(189));
45
+ throw new TypeError(__octaneDev ? "A signal owner environment requires current, run, and capture." : __octaneNoArgError(189));
45
46
  }
46
47
  const previous = installedEnvironment;
47
48
  installedEnvironment = environment;
@@ -60,7 +61,7 @@ function currentExplicitSignalOwner() {
60
61
  }
61
62
  function installDefaultSignalOwner(current) {
62
63
  if (typeof current !== "function")
63
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A default signal owner requires a provider." : __octaneNoArgError(190));
64
+ throw new TypeError(__octaneDev ? "A default signal owner requires a provider." : __octaneNoArgError(190));
64
65
  const previous = defaultOwner;
65
66
  defaultOwner = current;
66
67
  return () => {
@@ -70,7 +71,7 @@ function installDefaultSignalOwner(current) {
70
71
  }
71
72
  function runWithSignalOwner(owner, callback) {
72
73
  if (typeof callback !== "function")
73
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A signal owner callback is required." : __octaneNoArgError(191));
74
+ throw new TypeError(__octaneDev ? "A signal owner callback is required." : __octaneNoArgError(191));
74
75
  if (installedEnvironment)
75
76
  return installedEnvironment.run(owner, callback);
76
77
  const previous = synchronousOwner;
@@ -24,6 +24,7 @@ __export(query_attempt_observer_exports, {
24
24
  serverSignalQueryAttemptObserver: () => serverSignalQueryAttemptObserver
25
25
  });
26
26
  module.exports = __toCommonJS(query_attempt_observer_exports);
27
+ const __octaneDev = process.env.NODE_ENV !== "production";
27
28
  function __octaneNoArgError(code) {
28
29
  return "Minified Octane error #" + code + "; visit https://octanejs.dev/errors/" + code + " for the full message or use a development build for full errors and additional helpful warnings.";
29
30
  }
@@ -46,7 +47,7 @@ function serverSignalQueryAttemptObserver(scopeKey) {
46
47
  return;
47
48
  }
48
49
  if (typeof context.createObservations !== "function") {
49
- throw new TypeError(process.env.NODE_ENV !== "production" ? "A server signal query observer requires an observation factory." : __octaneNoArgError(192));
50
+ throw new TypeError(__octaneDev ? "A server signal query observer requires an observation factory." : __octaneNoArgError(192));
50
51
  }
51
52
  return context;
52
53
  }