@octane-xplat/patches 0.17.0 → 0.17.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octane-xplat/patches",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "description": "pnpm config dependency carrying the framework patch files",
5
5
  "keywords": [
6
6
  "framework",
@@ -1,5 +1,5 @@
1
1
  diff --git a/dist/cjs/runtime/hooks.cjs b/dist/cjs/runtime/hooks.cjs
2
- index ee8fd63..9026e11 100644
2
+ index ee8fd631679c2d614a44fe185ac8d38c83a478ec..9026e119cb1569b7e717878b72d8b28c08556669 100644
3
3
  --- a/dist/cjs/runtime/hooks.cjs
4
4
  +++ b/dist/cjs/runtime/hooks.cjs
5
5
  @@ -1,4 +1,5 @@
@@ -17,7 +17,7 @@ index ee8fd63..9026e11 100644
17
17
  return reducer !== null ? reducer(state, action) : typeof action === "function" ? action(state) : action;
18
18
  }
19
19
  diff --git a/dist/cjs/runtime/templates.cjs b/dist/cjs/runtime/templates.cjs
20
- index 94e2ab9..e51a764 100644
20
+ index 94e2ab9bf9f7cd756e19cd8b7053d797668b8f04..e51a764a80ba9c707efa54b382fe5d23046cf7ed 100644
21
21
  --- a/dist/cjs/runtime/templates.cjs
22
22
  +++ b/dist/cjs/runtime/templates.cjs
23
23
  @@ -440,6 +440,7 @@ function bag16(s, r, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, $ = 0, next
@@ -29,7 +29,7 @@ index 94e2ab9..e51a764 100644
29
29
  }
30
30
  function coerceText(value) {
31
31
  diff --git a/dist/cjs/signals/client.cjs b/dist/cjs/signals/client.cjs
32
- index 28e2844..af40518 100644
32
+ index 28e28444192dee7af64351cfe02d5dde96658832..af40518defca21eb88707eb76bb6fe10c1d266e7 100644
33
33
  --- a/dist/cjs/signals/client.cjs
34
34
  +++ b/dist/cjs/signals/client.cjs
35
35
  @@ -23,13 +23,13 @@ __export(client_exports, {
@@ -49,7 +49,7 @@ index 28e2844..af40518 100644
49
49
  () => {
50
50
  const value = typeof initial === "function" ? initial() : initial;
51
51
  diff --git a/dist/cjs/signals/document-owner.cjs b/dist/cjs/signals/document-owner.cjs
52
- index bfa5529..a106df1 100644
52
+ index bfa55295a64fbcdbf872b2717b54a641cdfe6bd4..a106df17a03d9e50b47f68c774fa79e5f5ceae9b 100644
53
53
  --- a/dist/cjs/signals/document-owner.cjs
54
54
  +++ b/dist/cjs/signals/document-owner.cjs
55
55
  @@ -53,9 +53,9 @@ function enableSignalDocument(abi = 1) {
@@ -66,7 +66,7 @@ index bfa5529..a106df1 100644
66
66
  function installStreamedSignalOwnerActivator(activate) {
67
67
  if (streamedSignalOwnerActivator !== void 0) {
68
68
  diff --git a/dist/cjs/signals/facade.cjs b/dist/cjs/signals/facade.cjs
69
- index a425c5f..e81719a 100644
69
+ index a425c5fd3a08dcf7c9ade5618e9aa883565cacbf..e81719a7493011577ea78c6306e32cfb1ccb832e 100644
70
70
  --- a/dist/cjs/signals/facade.cjs
71
71
  +++ b/dist/cjs/signals/facade.cjs
72
72
  @@ -330,7 +330,7 @@ class Descriptor {
@@ -79,7 +79,7 @@ index a425c5f..e81719a 100644
79
79
  [import_types.SIGNAL_OWNER_RESOLVE](owner) {
80
80
  requireSite(this.site);
81
81
  diff --git a/dist/cjs/signals/index.cjs b/dist/cjs/signals/index.cjs
82
- index 4b2efde..a487b50 100644
82
+ index 4b2efde8f96aa222d3e4395bdda991f5509a0c94..a487b5027dcaac6e8d3222c8b747396d8f1237c7 100644
83
83
  --- a/dist/cjs/signals/index.cjs
84
84
  +++ b/dist/cjs/signals/index.cjs
85
85
  @@ -35,6 +35,7 @@ __export(signals_exports, {
@@ -108,7 +108,7 @@ index 4b2efde..a487b50 100644
108
108
  __signalAt,
109
109
  diff --git a/dist/cjs/signals/local-hook.cjs b/dist/cjs/signals/local-hook.cjs
110
110
  new file mode 100644
111
- index 0000000..4858595
111
+ index 0000000000000000000000000000000000000000..4858595ce50e97284f18daa94c3b5ce6ab041dd4
112
112
  --- /dev/null
113
113
  +++ b/dist/cjs/signals/local-hook.cjs
114
114
  @@ -0,0 +1,44 @@
@@ -158,7 +158,7 @@ index 0000000..4858595
158
158
  +});
159
159
  diff --git a/dist/cjs/signals/universal-owner.cjs b/dist/cjs/signals/universal-owner.cjs
160
160
  new file mode 100644
161
- index 0000000..00c323a
161
+ index 0000000000000000000000000000000000000000..00c323a8bd4453d566dbd002ab1222f03def2760
162
162
  --- /dev/null
163
163
  +++ b/dist/cjs/signals/universal-owner.cjs
164
164
  @@ -0,0 +1,46 @@
@@ -209,7 +209,7 @@ index 0000000..00c323a
209
209
  + universalSignalDocument
210
210
  +});
211
211
  diff --git a/dist/compiler/compile.js b/dist/compiler/compile.js
212
- index 4ef283f..d3f3e0a 100644
212
+ index 4ef283f6bb72fcd9d61aeb356fea4967421096fd..d3f3e0acbdac4a429aacdc9f7d32011719111135 100644
213
213
  --- a/dist/compiler/compile.js
214
214
  +++ b/dist/compiler/compile.js
215
215
  @@ -2599,7 +2599,7 @@ function classifyViewTransitionOwnership(astBody, production, ownComponents) {
@@ -286,7 +286,7 @@ index 4ef283f..d3f3e0a 100644
286
286
  if (isBuiltin || isServerUse) {
287
287
  if (isBuiltin) {
288
288
  diff --git a/dist/compiler/native-read-diagnostics.js b/dist/compiler/native-read-diagnostics.js
289
- index 7b2acff..d3356b4 100644
289
+ index 7b2acff601c49a8589ee395d22047493d8aff3d1..d3356b4d4c513c7df61ad861e9c227f9409447ae 100644
290
290
  --- a/dist/compiler/native-read-diagnostics.js
291
291
  +++ b/dist/compiler/native-read-diagnostics.js
292
292
  @@ -149,9 +149,12 @@ export function assertNativeReadOptions(options) {
@@ -322,7 +322,7 @@ index 7b2acff..d3356b4 100644
322
322
  return [
323
323
  nativeReadDiagnostic(
324
324
  diff --git a/dist/compiler/slot-hooks.js b/dist/compiler/slot-hooks.js
325
- index e4c9bfb..7ca6112 100644
325
+ index e4c9bfbc6f46bb70bd8a84e0ff25f6024fc6f12e..7ca61123365265d394cf26b09012e716d3758296 100644
326
326
  --- a/dist/compiler/slot-hooks.js
327
327
  +++ b/dist/compiler/slot-hooks.js
328
328
  @@ -1044,12 +1044,12 @@ function walk(node, owner, st) {
@@ -371,7 +371,7 @@ index e4c9bfb..7ca6112 100644
371
371
  const local = allocSlotName(st, `_$${imported}`);
372
372
  let specifiers = signalHelperImports.get(request);
373
373
  diff --git a/dist/node/runtime/hooks.js b/dist/node/runtime/hooks.js
374
- index 76f5deb..96fd3ac 100644
374
+ index 76f5deb523f61530623d7abee92ea8bd22e1bb4d..96fd3ac9a6ede1cb2ea070fe722a3d688c3f179e 100644
375
375
  --- a/dist/node/runtime/hooks.js
376
376
  +++ b/dist/node/runtime/hooks.js
377
377
  @@ -1,3 +1,4 @@
@@ -388,7 +388,7 @@ index 76f5deb..96fd3ac 100644
388
388
  return reducer !== null ? reducer(state, action) : typeof action === "function" ? action(state) : action;
389
389
  }
390
390
  diff --git a/dist/node/runtime/templates.js b/dist/node/runtime/templates.js
391
- index 860aacd..af91a29 100644
391
+ index 860aacd13857b348cf4258e9f12582c87dbcb16e..af91a29fe2b593eec33aeac19e83701c23aec635 100644
392
392
  --- a/dist/node/runtime/templates.js
393
393
  +++ b/dist/node/runtime/templates.js
394
394
  @@ -388,6 +388,7 @@ function bag16(s, r, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, $ = 0, next
@@ -400,7 +400,7 @@ index 860aacd..af91a29 100644
400
400
  }
401
401
  function coerceText(value) {
402
402
  diff --git a/dist/node/signals/client.js b/dist/node/signals/client.js
403
- index 21a39c3..3f85700 100644
403
+ index 21a39c3ce9a28d2095e276fd647fd795e939a0bf..3f85700b57cbc3084c2df776ab3e6b5365f091a8 100644
404
404
  --- a/dist/node/signals/client.js
405
405
  +++ b/dist/node/signals/client.js
406
406
  @@ -1,11 +1,11 @@
@@ -418,7 +418,7 @@ index 21a39c3..3f85700 100644
418
418
  () => {
419
419
  const value = typeof initial === "function" ? initial() : initial;
420
420
  diff --git a/dist/node/signals/document-owner.js b/dist/node/signals/document-owner.js
421
- index 3b50394..e809030 100644
421
+ index 3b50394eb46776d2f6de379670dfeec569c145ac..e80903037547814e3437d39c99cfa103f7b4057c 100644
422
422
  --- a/dist/node/signals/document-owner.js
423
423
  +++ b/dist/node/signals/document-owner.js
424
424
  @@ -30,9 +30,8 @@ function enableSignalDocument(abi = 1) {
@@ -434,7 +434,7 @@ index 3b50394..e809030 100644
434
434
  function installStreamedSignalOwnerActivator(activate) {
435
435
  if (streamedSignalOwnerActivator !== void 0) {
436
436
  diff --git a/dist/node/signals/facade.js b/dist/node/signals/facade.js
437
- index 5b5554e..1deabb0 100644
437
+ index 5b5554ee296ea345f42c5291059d8ab2e71fe0d4..1deabb0f5ab62f7cd6534c4e7ed13b75126341db 100644
438
438
  --- a/dist/node/signals/facade.js
439
439
  +++ b/dist/node/signals/facade.js
440
440
  @@ -326,7 +326,7 @@ class Descriptor {
@@ -447,7 +447,7 @@ index 5b5554e..1deabb0 100644
447
447
  [SIGNAL_OWNER_RESOLVE](owner) {
448
448
  requireSite(this.site);
449
449
  diff --git a/dist/node/signals/index.js b/dist/node/signals/index.js
450
- index d657064..01a81cf 100644
450
+ index d65706400fb00c9dd9caf5b35f50f8baacf77184..01a81cf177242b7aa1d3923095c7dd49adcf3612 100644
451
451
  --- a/dist/node/signals/index.js
452
452
  +++ b/dist/node/signals/index.js
453
453
  @@ -1,6 +1,7 @@
@@ -468,7 +468,7 @@ index d657064..01a81cf 100644
468
468
  __signalAt,
469
469
  diff --git a/dist/node/signals/local-hook.js b/dist/node/signals/local-hook.js
470
470
  new file mode 100644
471
- index 0000000..77c63f5
471
+ index 0000000000000000000000000000000000000000..77c63f5e2d931eb8dbd384ae027ee0f09935f9ce
472
472
  --- /dev/null
473
473
  +++ b/dist/node/signals/local-hook.js
474
474
  @@ -0,0 +1,19 @@
@@ -493,7 +493,7 @@ index 0000000..77c63f5
493
493
  +};
494
494
  diff --git a/dist/node/signals/universal-owner.js b/dist/node/signals/universal-owner.js
495
495
  new file mode 100644
496
- index 0000000..ff5eb43
496
+ index 0000000000000000000000000000000000000000..ff5eb43e8f0ddcadbcf8e861f42788b389b4d99b
497
497
  --- /dev/null
498
498
  +++ b/dist/node/signals/universal-owner.js
499
499
  @@ -0,0 +1,20 @@
@@ -518,7 +518,7 @@ index 0000000..ff5eb43
518
518
  + universalSignalDocument
519
519
  +};
520
520
  diff --git a/dist/node/universal-core.js b/dist/node/universal-core.js
521
- index 8c89dbd..ff1defa 100644
521
+ index 8c89dbddb47cc86cdb0b727d0d80fe4ff89c3ac0..bb9dd40f2b3c7775c24a828db72055b588cec8d8 100644
522
522
  --- a/dist/node/universal-core.js
523
523
  +++ b/dist/node/universal-core.js
524
524
  @@ -17,6 +17,10 @@ import {
@@ -532,7 +532,20 @@ index 8c89dbd..ff1defa 100644
532
532
  import { resolveLazyDefaultProps } from "./shared-value-helpers.js";
533
533
  import {
534
534
  deactivateEffectEventCells,
535
- @@ -495,6 +499,133 @@ function universalComponent(renderer, component, props = null, key = NO_KEY) {
535
+ @@ -364,7 +368,11 @@ function universalList(items, render, empty) {
536
+ }
537
+ function renderableKey(value) {
538
+ if (value?.$$kind === UNIVERSAL_VALUE) {
539
+ - return value.key;
540
+ + if (value.key !== null) return value.key;
541
+ + // A compiler-generated root slot is transparent to keyed ownership.
542
+ + // Do not look through ranges: authored fragment boundaries remain distinct.
543
+ + const node = value.plan.root;
544
+ + return node.kind === "slot" ? renderableKey(value.values[node.slot]) : null;
545
+ }
546
+ if (value?.$$kind === UNIVERSAL_KEYED) {
547
+ return value.key;
548
+ @@ -495,6 +503,133 @@ function universalComponent(renderer, component, props = null, key = NO_KEY) {
536
549
  hasKey: key !== NO_KEY || normalized.hasKey
537
550
  };
538
551
  }
@@ -666,7 +679,7 @@ index 8c89dbd..ff1defa 100644
666
679
  function universalChildren(renderer, render) {
667
680
  assertRendererId(renderer, "universalChildren renderer");
668
681
  if (typeof render !== "function") throw new TypeError("universalChildren expected a function.");
669
- @@ -856,6 +987,7 @@ function draftOwner(record, parent, replayPath) {
682
+ @@ -856,6 +991,7 @@ function draftOwner(record, parent, replayPath) {
670
683
  boundaryThenable: record.boundaryThenable,
671
684
  isBoundary: record.isBoundary,
672
685
  canHandleSuspense: record.canHandleSuspense,
@@ -674,7 +687,7 @@ index 8c89dbd..ff1defa 100644
674
687
  visibility: parent?.visibility ?? record.visibility,
675
688
  contextStable: null
676
689
  };
677
- @@ -1066,6 +1198,7 @@ function executeOwner(owner, build, initialRenderCount = 0) {
690
+ @@ -1066,6 +1202,7 @@ function executeOwner(owner, build, initialRenderCount = 0) {
678
691
  owner.contextStable = null;
679
692
  owner.needsRender = false;
680
693
  owner.implicitSlot = 0;
@@ -682,7 +695,7 @@ index 8c89dbd..ff1defa 100644
682
695
  const previousOwner = CURRENT_OWNER;
683
696
  const previousAttemptOwner = attempt.owner;
684
697
  CURRENT_OWNER = owner;
685
- @@ -1077,13 +1210,18 @@ function executeOwner(owner, build, initialRenderCount = 0) {
698
+ @@ -1077,13 +1214,18 @@ function executeOwner(owner, build, initialRenderCount = 0) {
686
699
  const profileFrame = typeof __OCTANE_PROFILE_ENABLED__ !== "undefined" && __OCTANE_PROFILE_ENABLED__ && component !== null ? __profileBeginRender(owner.record, component, owner.record.mounted) : null;
687
700
  let didThrow = false;
688
701
  let thrown;
@@ -704,7 +717,7 @@ index 8c89dbd..ff1defa 100644
704
717
  if (typeof __OCTANE_PROFILE_ENABLED__ !== "undefined" && __OCTANE_PROFILE_ENABLED__) {
705
718
  __profileEndRender(profileFrame, didThrow, thrown);
706
719
  }
707
- @@ -1247,6 +1385,8 @@ function disposeUncommittedDraft(owner) {
720
+ @@ -1247,6 +1389,8 @@ function disposeUncommittedDraft(owner) {
708
721
  owner.record.componentProps = null;
709
722
  owner.record.range = null;
710
723
  owner.record.updates.clear();
@@ -713,7 +726,7 @@ index 8c89dbd..ff1defa 100644
713
726
  for (const hook of owner.hooks.values()) {
714
727
  if (hook.kind === "effect-event") hook.cell.active = false;
715
728
  }
716
- @@ -3081,6 +3221,7 @@ function tryCreateCompactTemplateUpdateTransaction(root, blueprint, attempt, com
729
+ @@ -3081,6 +3225,7 @@ function tryCreateCompactTemplateUpdateTransaction(root, blueprint, attempt, com
717
730
  owner.componentProps = draftOwner2.componentProps;
718
731
  owner.componentRevision = draftOwner2.componentRevision;
719
732
  owner.hooks = draftOwner2.hooks;
@@ -721,7 +734,7 @@ index 8c89dbd..ff1defa 100644
721
734
  for (const [slot, applied] of draftOwner2.appliedUpdates) {
722
735
  const queue = owner.updates.get(slot);
723
736
  if (queue !== applied.queue || applied.lane) continue;
724
- @@ -3628,6 +3769,86 @@ function scheduleOwner(owner, slot) {
737
+ @@ -3628,6 +3773,86 @@ function scheduleOwner(owner, slot) {
725
738
  }
726
739
  owner.root.scheduleOwned(owner);
727
740
  }
@@ -808,7 +821,7 @@ index 8c89dbd..ff1defa 100644
808
821
  function currentDraftOwner() {
809
822
  currentAttempt();
810
823
  const owner = activateLazyLeafOwner();
811
- @@ -4742,15 +4963,35 @@ function use(usable) {
824
+ @@ -4742,15 +4967,35 @@ function use(usable) {
812
825
  function useImperativeHandle(ref, create, deps, slot) {
813
826
  useLayoutEffect(
814
827
  () => {
@@ -851,7 +864,7 @@ index 8c89dbd..ff1defa 100644
851
864
  slot
852
865
  );
853
866
  }
854
- @@ -5745,9 +5986,9 @@ class UniversalRootImpl {
867
+ @@ -5745,9 +5990,9 @@ class UniversalRootImpl {
855
868
  }
856
869
  let result;
857
870
  try {
@@ -863,7 +876,7 @@ index 8c89dbd..ff1defa 100644
863
876
  }
864
877
  return result;
865
878
  }
866
- @@ -6318,6 +6559,8 @@ class UniversalRootImpl {
879
+ @@ -6318,6 +6563,8 @@ class UniversalRootImpl {
867
880
  draft.record.componentProps = null;
868
881
  draft.record.range = null;
869
882
  draft.record.updates.clear();
@@ -872,7 +885,7 @@ index 8c89dbd..ff1defa 100644
872
885
  for (const hook of draft.hooks.values()) {
873
886
  if (hook.kind === "effect-event") hook.cell.active = false;
874
887
  }
875
- @@ -6836,6 +7079,7 @@ class UniversalRootImpl {
888
+ @@ -6836,6 +7083,7 @@ class UniversalRootImpl {
876
889
  record.componentRevision = draft.componentRevision;
877
890
  record.parent = draft.parent?.record ?? null;
878
891
  record.hooks = draft.hooks;
@@ -880,7 +893,7 @@ index 8c89dbd..ff1defa 100644
880
893
  record.effectOrder = [...draft.seenEffects];
881
894
  for (let index = 0; index < draft.seenEffects.length; index++) {
882
895
  draft.seenEffects[index].previous = null;
883
- @@ -8484,6 +8728,8 @@ class UniversalRootImpl {
896
+ @@ -8484,6 +8732,8 @@ class UniversalRootImpl {
884
897
  owner.componentProps = null;
885
898
  owner.range = null;
886
899
  owner.updates.clear();
@@ -889,7 +902,7 @@ index 8c89dbd..ff1defa 100644
889
902
  }
890
903
  for (const draft of draftOwnersParentFirst) {
891
904
  const record = draft.record;
892
- @@ -8493,6 +8739,7 @@ class UniversalRootImpl {
905
+ @@ -8493,6 +8743,7 @@ class UniversalRootImpl {
893
906
  record.parent = draft.parent?.record ?? null;
894
907
  }
895
908
  record.hooks = draft.hooks;
@@ -897,7 +910,7 @@ index 8c89dbd..ff1defa 100644
897
910
  record.effectOrder = [...draft.seenEffects];
898
911
  for (let index = 0; index < draft.seenEffects.length; index++) {
899
912
  draft.seenEffects[index].previous = null;
900
- @@ -9004,6 +9251,8 @@ class UniversalRootImpl {
913
+ @@ -9004,6 +9255,8 @@ class UniversalRootImpl {
901
914
  owner.componentProps = null;
902
915
  owner.range = null;
903
916
  owner.updates.clear();
@@ -906,7 +919,7 @@ index 8c89dbd..ff1defa 100644
906
919
  }
907
920
  const deactivatedRegionCells = /* @__PURE__ */ new Set();
908
921
  for (const bridge of regionBridges) {
909
- @@ -10220,6 +10469,7 @@ function createObjectDriver(renderer = "object") {
922
+ @@ -10220,6 +10473,7 @@ function createObjectDriver(renderer = "object") {
910
923
  };
911
924
  }
912
925
  export {
@@ -915,7 +928,7 @@ index 8c89dbd..ff1defa 100644
915
928
  UNIVERSAL_HMR,
916
929
  UNIVERSAL_TRANSPORT_PROTOCOL_VERSION,
917
930
  diff --git a/dist/node/universal-native.js b/dist/node/universal-native.js
918
- index 55ac9b6..399633e 100644
931
+ index 55ac9b640dc8bbfd977bb2cbe0b7993c8ddb425a..399633e4e8cc9d6b098ba819f443d94bc30999f1 100644
919
932
  --- a/dist/node/universal-native.js
920
933
  +++ b/dist/node/universal-native.js
921
934
  @@ -6,9 +6,12 @@ import {
@@ -932,7 +945,7 @@ index 55ac9b6..399633e 100644
932
945
  function createContext(defaultValue) {
933
946
  const context = ((props, scope) => scope === void 0 ? universalContext(context, props.value, props.children) : renderRendererContextProvider(context, props, scope));
934
947
  diff --git a/dist/node/universal.js b/dist/node/universal.js
935
- index 6427a01..8049b78 100644
948
+ index 6427a0190c072e7e4629c379e42bedc03669dc6e..8049b7880824de607157091004a46c9d33a23484 100644
936
949
  --- a/dist/node/universal.js
937
950
  +++ b/dist/node/universal.js
938
951
  @@ -8,6 +8,9 @@ import {
@@ -946,7 +959,7 @@ index 6427a01..8049b78 100644
946
959
  createContext,
947
960
  createSubSlot,
948
961
  diff --git a/dist/runtime/hooks.js b/dist/runtime/hooks.js
949
- index 3365680..b369f2d 100644
962
+ index 3365680750d7e21c966c307ca87a05edee8e6474..b369f2d350b003904a37f7a944937e57bc7f628c 100644
950
963
  --- a/dist/runtime/hooks.js
951
964
  +++ b/dist/runtime/hooks.js
952
965
  @@ -1,3 +1,4 @@
@@ -963,7 +976,7 @@ index 3365680..b369f2d 100644
963
976
  return reducer !== null ? reducer(state, action) : typeof action === "function" ? action(state) : action;
964
977
  }
965
978
  diff --git a/dist/runtime/templates.js b/dist/runtime/templates.js
966
- index 5aa86e8..b700681 100644
979
+ index 5aa86e8dd741cf85aeb9c0efa6b74c82af1ac3e8..b700681bca250957de0df85e6255096274407490 100644
967
980
  --- a/dist/runtime/templates.js
968
981
  +++ b/dist/runtime/templates.js
969
982
  @@ -387,6 +387,7 @@ function bag16(s, r, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, $ = 0, next
@@ -975,7 +988,7 @@ index 5aa86e8..b700681 100644
975
988
  }
976
989
  function coerceText(value) {
977
990
  diff --git a/dist/signals/client.d.ts b/dist/signals/client.d.ts
978
- index 6388c2f..f9e9862 100644
991
+ index 6388c2f98517884a13af720687fb81c1f18357be..f9e98624f159cccf02a379d79201751fc07694d8 100644
979
992
  --- a/dist/signals/client.d.ts
980
993
  +++ b/dist/signals/client.d.ts
981
994
  @@ -1,4 +1,4 @@
@@ -985,7 +998,7 @@ index 6388c2f..f9e9862 100644
985
998
  import type { WritableSignal } from './types.js';
986
999
  /** A writable signal owned by this compiler-assigned component hook slot. */
987
1000
  diff --git a/dist/signals/client.js b/dist/signals/client.js
988
- index 21a39c3..3f85700 100644
1001
+ index 21a39c3ce9a28d2095e276fd647fd795e939a0bf..3f85700b57cbc3084c2df776ab3e6b5365f091a8 100644
989
1002
  --- a/dist/signals/client.js
990
1003
  +++ b/dist/signals/client.js
991
1004
  @@ -1,11 +1,11 @@
@@ -1003,7 +1016,7 @@ index 21a39c3..3f85700 100644
1003
1016
  () => {
1004
1017
  const value = typeof initial === "function" ? initial() : initial;
1005
1018
  diff --git a/dist/signals/document-owner.js b/dist/signals/document-owner.js
1006
- index 6f2891f..557d6cc 100644
1019
+ index 6f2891ffb1116f083478bfbe9cb007b6461a855f..557d6cc1406c4188257b290cf8a02a36df615dc1 100644
1007
1020
  --- a/dist/signals/document-owner.js
1008
1021
  +++ b/dist/signals/document-owner.js
1009
1022
  @@ -29,9 +29,8 @@ function enableSignalDocument(abi = 1) {
@@ -1019,7 +1032,7 @@ index 6f2891f..557d6cc 100644
1019
1032
  function installStreamedSignalOwnerActivator(activate) {
1020
1033
  if (streamedSignalOwnerActivator !== void 0) {
1021
1034
  diff --git a/dist/signals/facade.js b/dist/signals/facade.js
1022
- index 808e4ec..0ab799a 100644
1035
+ index 808e4ec01428d4cf6e3938667642847f2590f1b8..0ab799afc337793f3270a02003e6fe6a4ff08f47 100644
1023
1036
  --- a/dist/signals/facade.js
1024
1037
  +++ b/dist/signals/facade.js
1025
1038
  @@ -325,7 +325,7 @@ class Descriptor {
@@ -1032,7 +1045,7 @@ index 808e4ec..0ab799a 100644
1032
1045
  [SIGNAL_OWNER_RESOLVE](owner) {
1033
1046
  requireSite(this.site);
1034
1047
  diff --git a/dist/signals/index.d.ts b/dist/signals/index.d.ts
1035
- index ed08619..acccb75 100644
1048
+ index ed086195a3e8e63de4a5b26d5bf6aaa392bd5d32..acccb752a2c46f14a97e07de3a00df0fa24d8cf7 100644
1036
1049
  --- a/dist/signals/index.d.ts
1037
1050
  +++ b/dist/signals/index.d.ts
1038
1051
  @@ -3,6 +3,7 @@ export { createScope } from './engine.js';
@@ -1044,7 +1057,7 @@ index ed08619..acccb75 100644
1044
1057
  export { ActionUncertainError, action$, isActionUncertain, optimistic$ } from './actions.js';
1045
1058
  export { __derivedAt, derived$ } from './derived-facade.js';
1046
1059
  diff --git a/dist/signals/index.js b/dist/signals/index.js
1047
- index d657064..01a81cf 100644
1060
+ index d65706400fb00c9dd9caf5b35f50f8baacf77184..01a81cf177242b7aa1d3923095c7dd49adcf3612 100644
1048
1061
  --- a/dist/signals/index.js
1049
1062
  +++ b/dist/signals/index.js
1050
1063
  @@ -1,6 +1,7 @@
@@ -1065,7 +1078,7 @@ index d657064..01a81cf 100644
1065
1078
  __signalAt,
1066
1079
  diff --git a/dist/signals/local-hook.d.ts b/dist/signals/local-hook.d.ts
1067
1080
  new file mode 100644
1068
- index 0000000..d6c1770
1081
+ index 0000000000000000000000000000000000000000..d6c1770fc22b738e0e107b6616f60eaf676d853e
1069
1082
  --- /dev/null
1070
1083
  +++ b/dist/signals/local-hook.d.ts
1071
1084
  @@ -0,0 +1,16 @@
@@ -1087,7 +1100,7 @@ index 0000000..d6c1770
1087
1100
  +export declare function localSignalHook<T>(name: string, initialize: () => T, dispose: (value: T) => void, slot?: symbol | number): T;
1088
1101
  diff --git a/dist/signals/local-hook.js b/dist/signals/local-hook.js
1089
1102
  new file mode 100644
1090
- index 0000000..77c63f5
1103
+ index 0000000000000000000000000000000000000000..77c63f5e2d931eb8dbd384ae027ee0f09935f9ce
1091
1104
  --- /dev/null
1092
1105
  +++ b/dist/signals/local-hook.js
1093
1106
  @@ -0,0 +1,19 @@
@@ -1112,7 +1125,7 @@ index 0000000..77c63f5
1112
1125
  +};
1113
1126
  diff --git a/dist/signals/universal-owner.d.ts b/dist/signals/universal-owner.d.ts
1114
1127
  new file mode 100644
1115
- index 0000000..0e57f3a
1128
+ index 0000000000000000000000000000000000000000..0e57f3a79115c858355f863434c6e3423570067b
1116
1129
  --- /dev/null
1117
1130
  +++ b/dist/signals/universal-owner.d.ts
1118
1131
  @@ -0,0 +1,10 @@
@@ -1128,7 +1141,7 @@ index 0000000..0e57f3a
1128
1141
  +export declare function enableUniversalSignalDocument(abi?: number): void;
1129
1142
  diff --git a/dist/signals/universal-owner.js b/dist/signals/universal-owner.js
1130
1143
  new file mode 100644
1131
- index 0000000..ff5eb43
1144
+ index 0000000000000000000000000000000000000000..ff5eb43e8f0ddcadbcf8e861f42788b389b4d99b
1132
1145
  --- /dev/null
1133
1146
  +++ b/dist/signals/universal-owner.js
1134
1147
  @@ -0,0 +1,20 @@
@@ -1153,7 +1166,7 @@ index 0000000..ff5eb43
1153
1166
  + universalSignalDocument
1154
1167
  +};
1155
1168
  diff --git a/dist/universal-core.d.ts b/dist/universal-core.d.ts
1156
- index 15ecadf..716ac7f 100644
1169
+ index 15ecadf70593d2f1027bd872a376af79036396bc..716ac7ff5c68e090f9420a957f13250e53cc5678 100644
1157
1170
  --- a/dist/universal-core.d.ts
1158
1171
  +++ b/dist/universal-core.d.ts
1159
1172
  @@ -791,9 +791,8 @@ export declare function lazy<C extends UniversalComponent<any>>(load: () => Prom
@@ -1175,7 +1188,7 @@ index 15ecadf..716ac7f 100644
1175
1188
  +
1176
1189
  +export declare const Children: { toArray(children: UniversalRenderable): UniversalRenderable[]; map(children: UniversalRenderable, fn: (child: UniversalRenderable, index: number) => UniversalRenderable): UniversalRenderable[]; };
1177
1190
  diff --git a/dist/universal-core.js b/dist/universal-core.js
1178
- index 8c89dbd..ff1defa 100644
1191
+ index 8c89dbddb47cc86cdb0b727d0d80fe4ff89c3ac0..bb9dd40f2b3c7775c24a828db72055b588cec8d8 100644
1179
1192
  --- a/dist/universal-core.js
1180
1193
  +++ b/dist/universal-core.js
1181
1194
  @@ -17,6 +17,10 @@ import {
@@ -1189,7 +1202,20 @@ index 8c89dbd..ff1defa 100644
1189
1202
  import { resolveLazyDefaultProps } from "./shared-value-helpers.js";
1190
1203
  import {
1191
1204
  deactivateEffectEventCells,
1192
- @@ -495,6 +499,133 @@ function universalComponent(renderer, component, props = null, key = NO_KEY) {
1205
+ @@ -364,7 +368,11 @@ function universalList(items, render, empty) {
1206
+ }
1207
+ function renderableKey(value) {
1208
+ if (value?.$$kind === UNIVERSAL_VALUE) {
1209
+ - return value.key;
1210
+ + if (value.key !== null) return value.key;
1211
+ + // A compiler-generated root slot is transparent to keyed ownership.
1212
+ + // Do not look through ranges: authored fragment boundaries remain distinct.
1213
+ + const node = value.plan.root;
1214
+ + return node.kind === "slot" ? renderableKey(value.values[node.slot]) : null;
1215
+ }
1216
+ if (value?.$$kind === UNIVERSAL_KEYED) {
1217
+ return value.key;
1218
+ @@ -495,6 +503,133 @@ function universalComponent(renderer, component, props = null, key = NO_KEY) {
1193
1219
  hasKey: key !== NO_KEY || normalized.hasKey
1194
1220
  };
1195
1221
  }
@@ -1323,7 +1349,7 @@ index 8c89dbd..ff1defa 100644
1323
1349
  function universalChildren(renderer, render) {
1324
1350
  assertRendererId(renderer, "universalChildren renderer");
1325
1351
  if (typeof render !== "function") throw new TypeError("universalChildren expected a function.");
1326
- @@ -856,6 +987,7 @@ function draftOwner(record, parent, replayPath) {
1352
+ @@ -856,6 +991,7 @@ function draftOwner(record, parent, replayPath) {
1327
1353
  boundaryThenable: record.boundaryThenable,
1328
1354
  isBoundary: record.isBoundary,
1329
1355
  canHandleSuspense: record.canHandleSuspense,
@@ -1331,7 +1357,7 @@ index 8c89dbd..ff1defa 100644
1331
1357
  visibility: parent?.visibility ?? record.visibility,
1332
1358
  contextStable: null
1333
1359
  };
1334
- @@ -1066,6 +1198,7 @@ function executeOwner(owner, build, initialRenderCount = 0) {
1360
+ @@ -1066,6 +1202,7 @@ function executeOwner(owner, build, initialRenderCount = 0) {
1335
1361
  owner.contextStable = null;
1336
1362
  owner.needsRender = false;
1337
1363
  owner.implicitSlot = 0;
@@ -1339,7 +1365,7 @@ index 8c89dbd..ff1defa 100644
1339
1365
  const previousOwner = CURRENT_OWNER;
1340
1366
  const previousAttemptOwner = attempt.owner;
1341
1367
  CURRENT_OWNER = owner;
1342
- @@ -1077,13 +1210,18 @@ function executeOwner(owner, build, initialRenderCount = 0) {
1368
+ @@ -1077,13 +1214,18 @@ function executeOwner(owner, build, initialRenderCount = 0) {
1343
1369
  const profileFrame = typeof __OCTANE_PROFILE_ENABLED__ !== "undefined" && __OCTANE_PROFILE_ENABLED__ && component !== null ? __profileBeginRender(owner.record, component, owner.record.mounted) : null;
1344
1370
  let didThrow = false;
1345
1371
  let thrown;
@@ -1361,7 +1387,7 @@ index 8c89dbd..ff1defa 100644
1361
1387
  if (typeof __OCTANE_PROFILE_ENABLED__ !== "undefined" && __OCTANE_PROFILE_ENABLED__) {
1362
1388
  __profileEndRender(profileFrame, didThrow, thrown);
1363
1389
  }
1364
- @@ -1247,6 +1385,8 @@ function disposeUncommittedDraft(owner) {
1390
+ @@ -1247,6 +1389,8 @@ function disposeUncommittedDraft(owner) {
1365
1391
  owner.record.componentProps = null;
1366
1392
  owner.record.range = null;
1367
1393
  owner.record.updates.clear();
@@ -1370,7 +1396,7 @@ index 8c89dbd..ff1defa 100644
1370
1396
  for (const hook of owner.hooks.values()) {
1371
1397
  if (hook.kind === "effect-event") hook.cell.active = false;
1372
1398
  }
1373
- @@ -3081,6 +3221,7 @@ function tryCreateCompactTemplateUpdateTransaction(root, blueprint, attempt, com
1399
+ @@ -3081,6 +3225,7 @@ function tryCreateCompactTemplateUpdateTransaction(root, blueprint, attempt, com
1374
1400
  owner.componentProps = draftOwner2.componentProps;
1375
1401
  owner.componentRevision = draftOwner2.componentRevision;
1376
1402
  owner.hooks = draftOwner2.hooks;
@@ -1378,7 +1404,7 @@ index 8c89dbd..ff1defa 100644
1378
1404
  for (const [slot, applied] of draftOwner2.appliedUpdates) {
1379
1405
  const queue = owner.updates.get(slot);
1380
1406
  if (queue !== applied.queue || applied.lane) continue;
1381
- @@ -3628,6 +3769,86 @@ function scheduleOwner(owner, slot) {
1407
+ @@ -3628,6 +3773,86 @@ function scheduleOwner(owner, slot) {
1382
1408
  }
1383
1409
  owner.root.scheduleOwned(owner);
1384
1410
  }
@@ -1465,7 +1491,7 @@ index 8c89dbd..ff1defa 100644
1465
1491
  function currentDraftOwner() {
1466
1492
  currentAttempt();
1467
1493
  const owner = activateLazyLeafOwner();
1468
- @@ -4742,15 +4963,35 @@ function use(usable) {
1494
+ @@ -4742,15 +4967,35 @@ function use(usable) {
1469
1495
  function useImperativeHandle(ref, create, deps, slot) {
1470
1496
  useLayoutEffect(
1471
1497
  () => {
@@ -1508,7 +1534,7 @@ index 8c89dbd..ff1defa 100644
1508
1534
  slot
1509
1535
  );
1510
1536
  }
1511
- @@ -5745,9 +5986,9 @@ class UniversalRootImpl {
1537
+ @@ -5745,9 +5990,9 @@ class UniversalRootImpl {
1512
1538
  }
1513
1539
  let result;
1514
1540
  try {
@@ -1520,7 +1546,7 @@ index 8c89dbd..ff1defa 100644
1520
1546
  }
1521
1547
  return result;
1522
1548
  }
1523
- @@ -6318,6 +6559,8 @@ class UniversalRootImpl {
1549
+ @@ -6318,6 +6563,8 @@ class UniversalRootImpl {
1524
1550
  draft.record.componentProps = null;
1525
1551
  draft.record.range = null;
1526
1552
  draft.record.updates.clear();
@@ -1529,7 +1555,7 @@ index 8c89dbd..ff1defa 100644
1529
1555
  for (const hook of draft.hooks.values()) {
1530
1556
  if (hook.kind === "effect-event") hook.cell.active = false;
1531
1557
  }
1532
- @@ -6836,6 +7079,7 @@ class UniversalRootImpl {
1558
+ @@ -6836,6 +7083,7 @@ class UniversalRootImpl {
1533
1559
  record.componentRevision = draft.componentRevision;
1534
1560
  record.parent = draft.parent?.record ?? null;
1535
1561
  record.hooks = draft.hooks;
@@ -1537,7 +1563,7 @@ index 8c89dbd..ff1defa 100644
1537
1563
  record.effectOrder = [...draft.seenEffects];
1538
1564
  for (let index = 0; index < draft.seenEffects.length; index++) {
1539
1565
  draft.seenEffects[index].previous = null;
1540
- @@ -8484,6 +8728,8 @@ class UniversalRootImpl {
1566
+ @@ -8484,6 +8732,8 @@ class UniversalRootImpl {
1541
1567
  owner.componentProps = null;
1542
1568
  owner.range = null;
1543
1569
  owner.updates.clear();
@@ -1546,7 +1572,7 @@ index 8c89dbd..ff1defa 100644
1546
1572
  }
1547
1573
  for (const draft of draftOwnersParentFirst) {
1548
1574
  const record = draft.record;
1549
- @@ -8493,6 +8739,7 @@ class UniversalRootImpl {
1575
+ @@ -8493,6 +8743,7 @@ class UniversalRootImpl {
1550
1576
  record.parent = draft.parent?.record ?? null;
1551
1577
  }
1552
1578
  record.hooks = draft.hooks;
@@ -1554,7 +1580,7 @@ index 8c89dbd..ff1defa 100644
1554
1580
  record.effectOrder = [...draft.seenEffects];
1555
1581
  for (let index = 0; index < draft.seenEffects.length; index++) {
1556
1582
  draft.seenEffects[index].previous = null;
1557
- @@ -9004,6 +9251,8 @@ class UniversalRootImpl {
1583
+ @@ -9004,6 +9255,8 @@ class UniversalRootImpl {
1558
1584
  owner.componentProps = null;
1559
1585
  owner.range = null;
1560
1586
  owner.updates.clear();
@@ -1563,7 +1589,7 @@ index 8c89dbd..ff1defa 100644
1563
1589
  }
1564
1590
  const deactivatedRegionCells = /* @__PURE__ */ new Set();
1565
1591
  for (const bridge of regionBridges) {
1566
- @@ -10220,6 +10469,7 @@ function createObjectDriver(renderer = "object") {
1592
+ @@ -10220,6 +10473,7 @@ function createObjectDriver(renderer = "object") {
1567
1593
  };
1568
1594
  }
1569
1595
  export {
@@ -1572,7 +1598,7 @@ index 8c89dbd..ff1defa 100644
1572
1598
  UNIVERSAL_HMR,
1573
1599
  UNIVERSAL_TRANSPORT_PROTOCOL_VERSION,
1574
1600
  diff --git a/dist/universal-native.js b/dist/universal-native.js
1575
- index 55ac9b6..399633e 100644
1601
+ index 55ac9b640dc8bbfd977bb2cbe0b7993c8ddb425a..399633e4e8cc9d6b098ba819f443d94bc30999f1 100644
1576
1602
  --- a/dist/universal-native.js
1577
1603
  +++ b/dist/universal-native.js
1578
1604
  @@ -6,9 +6,12 @@ import {
@@ -1589,7 +1615,7 @@ index 55ac9b6..399633e 100644
1589
1615
  function createContext(defaultValue) {
1590
1616
  const context = ((props, scope) => scope === void 0 ? universalContext(context, props.value, props.children) : renderRendererContextProvider(context, props, scope));
1591
1617
  diff --git a/dist/universal.js b/dist/universal.js
1592
- index 6427a01..8049b78 100644
1618
+ index 6427a0190c072e7e4629c379e42bedc03669dc6e..8049b7880824de607157091004a46c9d33a23484 100644
1593
1619
  --- a/dist/universal.js
1594
1620
  +++ b/dist/universal.js
1595
1621
  @@ -8,6 +8,9 @@ import {