@lynx-js/react 0.119.0 → 0.121.0

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 (549) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/package.json +39 -11
  3. package/runtime/lazy/compat.js +1 -0
  4. package/runtime/lazy/internal.js +3 -0
  5. package/runtime/lazy/react.js +1 -0
  6. package/runtime/lib/core/hooks/mainThread.d.ts +1 -0
  7. package/runtime/lib/core/hooks/mainThread.js +7 -0
  8. package/runtime/lib/core/hooks/mainThread.js.map +1 -0
  9. package/runtime/lib/{hooks/mainThread.d.ts → core/hooks/mainThreadImpl.d.ts} +2 -1
  10. package/runtime/lib/{hooks/mainThread.js → core/hooks/mainThreadImpl.js} +46 -35
  11. package/runtime/lib/core/hooks/mainThreadImpl.js.map +1 -0
  12. package/runtime/lib/{hooks → core/hooks}/react.js +1 -1
  13. package/runtime/lib/core/hooks/react.js.map +1 -0
  14. package/runtime/lib/{hooks → core/hooks}/useLynxGlobalEventListener.d.ts +1 -1
  15. package/runtime/lib/{hooks → core/hooks}/useLynxGlobalEventListener.js +1 -1
  16. package/runtime/lib/core/hooks/useLynxGlobalEventListener.js.map +1 -0
  17. package/runtime/lib/document.d.ts +4 -4
  18. package/runtime/lib/document.js +14 -12
  19. package/runtime/lib/document.js.map +1 -1
  20. package/runtime/lib/element-template/background/attr-slots.d.ts +2 -0
  21. package/runtime/lib/element-template/background/attr-slots.js +34 -0
  22. package/runtime/lib/element-template/background/attr-slots.js.map +1 -0
  23. package/runtime/lib/element-template/background/commit-context.d.ts +13 -0
  24. package/runtime/lib/element-template/background/commit-context.js +25 -0
  25. package/runtime/lib/element-template/background/commit-context.js.map +1 -0
  26. package/runtime/lib/element-template/background/commit-hook.d.ts +7 -0
  27. package/runtime/lib/element-template/background/commit-hook.js +96 -0
  28. package/runtime/lib/element-template/background/commit-hook.js.map +1 -0
  29. package/runtime/lib/element-template/background/destroy.d.ts +1 -0
  30. package/runtime/lib/element-template/background/destroy.js +17 -0
  31. package/runtime/lib/element-template/background/destroy.js.map +1 -0
  32. package/runtime/lib/element-template/background/document.d.ts +7 -0
  33. package/runtime/lib/element-template/background/document.js +27 -0
  34. package/runtime/lib/element-template/background/document.js.map +1 -0
  35. package/runtime/lib/element-template/background/hydrate.d.ts +4 -0
  36. package/runtime/lib/element-template/background/hydrate.js +219 -0
  37. package/runtime/lib/element-template/background/hydrate.js.map +1 -0
  38. package/runtime/lib/element-template/background/hydration-listener.d.ts +2 -0
  39. package/runtime/lib/element-template/background/hydration-listener.js +93 -0
  40. package/runtime/lib/element-template/background/hydration-listener.js.map +1 -0
  41. package/runtime/lib/element-template/background/instance.d.ts +39 -0
  42. package/runtime/lib/element-template/background/instance.js +349 -0
  43. package/runtime/lib/element-template/background/instance.js.map +1 -0
  44. package/runtime/lib/element-template/background/manager.d.ts +10 -0
  45. package/runtime/lib/element-template/background/manager.js +60 -0
  46. package/runtime/lib/element-template/background/manager.js.map +1 -0
  47. package/runtime/lib/element-template/client/root.d.ts +36 -0
  48. package/runtime/lib/element-template/client/root.js +33 -0
  49. package/runtime/lib/element-template/client/root.js.map +1 -0
  50. package/runtime/lib/element-template/debug/alog.d.ts +34 -0
  51. package/runtime/lib/element-template/debug/alog.js +93 -0
  52. package/runtime/lib/element-template/debug/alog.js.map +1 -0
  53. package/runtime/lib/element-template/debug/elementPAPICall.d.ts +1 -0
  54. package/runtime/lib/element-template/debug/elementPAPICall.js +75 -0
  55. package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -0
  56. package/runtime/lib/element-template/debug/profile.d.ts +3 -0
  57. package/runtime/lib/element-template/debug/profile.js +141 -0
  58. package/runtime/lib/element-template/debug/profile.js.map +1 -0
  59. package/runtime/lib/element-template/hooks/react.d.ts +14 -0
  60. package/runtime/lib/element-template/hooks/react.js +24 -0
  61. package/runtime/lib/element-template/hooks/react.js.map +1 -0
  62. package/runtime/lib/element-template/index.d.ts +7 -0
  63. package/runtime/lib/element-template/index.js +45 -0
  64. package/runtime/lib/element-template/index.js.map +1 -0
  65. package/runtime/lib/element-template/internal.d.ts +6 -0
  66. package/runtime/lib/element-template/internal.js +44 -0
  67. package/runtime/lib/element-template/internal.js.map +1 -0
  68. package/runtime/lib/element-template/jsx-dev-runtime/index.d.ts +1 -0
  69. package/runtime/lib/element-template/jsx-dev-runtime/index.js +5 -0
  70. package/runtime/lib/element-template/jsx-dev-runtime/index.js.map +1 -0
  71. package/runtime/lib/element-template/jsx-runtime/index.d.ts +19 -0
  72. package/runtime/lib/element-template/jsx-runtime/index.js +60 -0
  73. package/runtime/lib/element-template/jsx-runtime/index.js.map +1 -0
  74. package/runtime/lib/element-template/lynx/env.js +89 -0
  75. package/runtime/lib/element-template/lynx/env.js.map +1 -0
  76. package/runtime/lib/element-template/lynx/performance.d.ts +23 -0
  77. package/runtime/lib/element-template/lynx/performance.js +135 -0
  78. package/runtime/lib/element-template/lynx/performance.js.map +1 -0
  79. package/runtime/lib/element-template/native/callDestroyLifetimeFun.d.ts +1 -0
  80. package/runtime/lib/element-template/native/callDestroyLifetimeFun.js +8 -0
  81. package/runtime/lib/element-template/native/callDestroyLifetimeFun.js.map +1 -0
  82. package/runtime/lib/element-template/native/index.d.ts +1 -0
  83. package/runtime/lib/element-template/native/index.js +53 -0
  84. package/runtime/lib/element-template/native/index.js.map +1 -0
  85. package/runtime/lib/element-template/native/main-thread-api.js +27 -0
  86. package/runtime/lib/element-template/native/main-thread-api.js.map +1 -0
  87. package/runtime/lib/element-template/native/mts-destroy.d.ts +3 -0
  88. package/runtime/lib/element-template/native/mts-destroy.js +37 -0
  89. package/runtime/lib/element-template/native/mts-destroy.js.map +1 -0
  90. package/runtime/lib/element-template/native/patch-listener.d.ts +2 -0
  91. package/runtime/lib/element-template/native/patch-listener.js +66 -0
  92. package/runtime/lib/element-template/native/patch-listener.js.map +1 -0
  93. package/runtime/lib/element-template/prop-adapters/event-value.d.ts +1 -0
  94. package/runtime/lib/element-template/prop-adapters/event-value.js +7 -0
  95. package/runtime/lib/element-template/prop-adapters/event-value.js.map +1 -0
  96. package/runtime/lib/element-template/prop-adapters/event.d.ts +7 -0
  97. package/runtime/lib/element-template/prop-adapters/event.js +61 -0
  98. package/runtime/lib/element-template/prop-adapters/event.js.map +1 -0
  99. package/runtime/lib/element-template/prop-adapters/spread.d.ts +5 -0
  100. package/runtime/lib/element-template/prop-adapters/spread.js +45 -0
  101. package/runtime/lib/element-template/prop-adapters/spread.js.map +1 -0
  102. package/runtime/lib/element-template/protocol/lifecycle-constant.d.ts +4 -0
  103. package/runtime/lib/element-template/protocol/lifecycle-constant.js +9 -0
  104. package/runtime/lib/element-template/protocol/lifecycle-constant.js.map +1 -0
  105. package/runtime/lib/element-template/protocol/opcodes.d.ts +7 -0
  106. package/runtime/lib/element-template/protocol/opcodes.js +10 -0
  107. package/runtime/lib/element-template/protocol/opcodes.js.map +1 -0
  108. package/runtime/lib/element-template/protocol/types.d.ts +50 -0
  109. package/runtime/lib/element-template/protocol/types.js +5 -0
  110. package/runtime/lib/element-template/protocol/types.js.map +1 -0
  111. package/runtime/lib/element-template/runtime/components/slot.js +11 -0
  112. package/runtime/lib/element-template/runtime/components/slot.js.map +1 -0
  113. package/runtime/lib/element-template/runtime/page/page.d.ts +2 -0
  114. package/runtime/lib/element-template/runtime/page/page.js +8 -0
  115. package/runtime/lib/element-template/runtime/page/page.js.map +1 -0
  116. package/runtime/lib/element-template/runtime/page/root-instance.d.ts +10 -0
  117. package/runtime/lib/element-template/runtime/page/root-instance.js +17 -0
  118. package/runtime/lib/element-template/runtime/page/root-instance.js.map +1 -0
  119. package/runtime/lib/element-template/runtime/patch.d.ts +3 -0
  120. package/runtime/lib/element-template/runtime/patch.js +145 -0
  121. package/runtime/lib/element-template/runtime/patch.js.map +1 -0
  122. package/runtime/lib/element-template/runtime/render/render-main-thread.js +53 -0
  123. package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -0
  124. package/runtime/lib/element-template/runtime/render/render-opcodes.d.ts +4 -0
  125. package/runtime/lib/element-template/runtime/render/render-opcodes.js +134 -0
  126. package/runtime/lib/element-template/runtime/render/render-opcodes.js.map +1 -0
  127. package/runtime/lib/element-template/runtime/render/render-to-opcodes.d.ts +14 -0
  128. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +272 -0
  129. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -0
  130. package/runtime/lib/element-template/runtime/template/attr-slot-plan.d.ts +11 -0
  131. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js +23 -0
  132. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js.map +1 -0
  133. package/runtime/lib/element-template/runtime/template/handle.d.ts +5 -0
  134. package/runtime/lib/element-template/runtime/template/handle.js +23 -0
  135. package/runtime/lib/element-template/runtime/template/handle.js.map +1 -0
  136. package/runtime/lib/element-template/runtime/template/registry.d.ts +13 -0
  137. package/runtime/lib/element-template/runtime/template/registry.js +46 -0
  138. package/runtime/lib/element-template/runtime/template/registry.js.map +1 -0
  139. package/runtime/lib/index.d.ts +7 -5
  140. package/runtime/lib/index.js +9 -6
  141. package/runtime/lib/index.js.map +1 -1
  142. package/runtime/lib/internal.d.ts +22 -20
  143. package/runtime/lib/internal.js +26 -23
  144. package/runtime/lib/internal.js.map +1 -1
  145. package/runtime/lib/lynx-api.d.ts +5 -5
  146. package/runtime/lib/lynx-api.js +9 -9
  147. package/runtime/lib/lynx-api.js.map +1 -1
  148. package/runtime/lib/lynx.d.ts +2 -2
  149. package/runtime/lib/lynx.js +17 -17
  150. package/runtime/lib/lynx.js.map +1 -1
  151. package/runtime/lib/root.d.ts +2 -2
  152. package/runtime/lib/root.js +2 -2
  153. package/runtime/lib/root.js.map +1 -1
  154. package/runtime/lib/{debug → shared}/component-stack.js +1 -1
  155. package/runtime/lib/shared/component-stack.js.map +1 -0
  156. package/runtime/lib/{debug → shared}/profile.js +6 -4
  157. package/runtime/lib/shared/profile.js.map +1 -0
  158. package/runtime/lib/{renderToOpcodes/constants.js → shared/render-constants.js} +1 -1
  159. package/runtime/lib/shared/render-constants.js.map +1 -0
  160. package/runtime/lib/{alog → snapshot/alog}/elementPAPICall.js +1 -1
  161. package/runtime/lib/snapshot/alog/elementPAPICall.js.map +1 -0
  162. package/runtime/lib/snapshot/alog/index.js.map +1 -0
  163. package/runtime/lib/{alog → snapshot/alog}/render.js +2 -2
  164. package/runtime/lib/snapshot/alog/render.js.map +1 -0
  165. package/runtime/lib/snapshot/compat/componentIs.js.map +1 -0
  166. package/runtime/lib/{compat → snapshot/compat}/initData.d.ts +2 -2
  167. package/runtime/lib/{compat → snapshot/compat}/initData.js +1 -1
  168. package/runtime/lib/snapshot/compat/initData.js.map +1 -0
  169. package/runtime/lib/snapshot/compat/lynxComponent.js.map +1 -0
  170. package/runtime/lib/snapshot/debug/debug.js.map +1 -0
  171. package/runtime/lib/snapshot/debug/describeInvalidValue.js.map +1 -0
  172. package/runtime/lib/snapshot/debug/formatPatch.js.map +1 -0
  173. package/runtime/lib/snapshot/debug/printSnapshot.js.map +1 -0
  174. package/runtime/lib/{debug → snapshot/debug}/profileHooks.js +2 -2
  175. package/runtime/lib/snapshot/debug/profileHooks.js.map +1 -0
  176. package/runtime/lib/{debug → snapshot/debug}/vnodeSource.js +1 -1
  177. package/runtime/lib/snapshot/debug/vnodeSource.js.map +1 -0
  178. package/runtime/lib/{gesture → snapshot/gesture}/processGesture.d.ts +2 -0
  179. package/runtime/lib/{gesture → snapshot/gesture}/processGesture.js +40 -3
  180. package/runtime/lib/snapshot/gesture/processGesture.js.map +1 -0
  181. package/runtime/lib/snapshot/gesture/processGestureBagkround.d.ts +9 -0
  182. package/runtime/lib/snapshot/gesture/processGestureBagkround.js +80 -0
  183. package/runtime/lib/snapshot/gesture/processGestureBagkround.js.map +1 -0
  184. package/runtime/lib/snapshot/gesture/types.js.map +1 -0
  185. package/runtime/lib/snapshot/index.d.ts +1 -4
  186. package/runtime/lib/snapshot/index.js +2 -5
  187. package/runtime/lib/snapshot/index.js.map +1 -1
  188. package/runtime/lib/{legacy-react-runtime → snapshot/legacy-react-runtime}/index.d.ts +2 -2
  189. package/runtime/lib/{legacy-react-runtime → snapshot/legacy-react-runtime}/index.js +2 -2
  190. package/runtime/lib/snapshot/legacy-react-runtime/index.js.map +1 -0
  191. package/runtime/lib/snapshot/lifecycle/constant.js.map +1 -0
  192. package/runtime/lib/{lifecycle → snapshot/lifecycle}/destroy.js +2 -2
  193. package/runtime/lib/snapshot/lifecycle/destroy.js.map +1 -0
  194. package/runtime/lib/snapshot/lifecycle/event/delayEvents.js.map +1 -0
  195. package/runtime/lib/snapshot/lifecycle/event/delayLifecycleEvents.js.map +1 -0
  196. package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/jsReady.js +2 -2
  197. package/runtime/lib/snapshot/lifecycle/event/jsReady.js.map +1 -0
  198. package/runtime/lib/{lifecycle → snapshot/lifecycle}/isRendering.js +2 -2
  199. package/runtime/lib/snapshot/lifecycle/isRendering.js.map +1 -0
  200. package/runtime/lib/snapshot/lifecycle/pass.js.map +1 -0
  201. package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/commit.js +3 -3
  202. package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -0
  203. package/runtime/lib/snapshot/lifecycle/patch/error.js.map +1 -0
  204. package/runtime/lib/snapshot/lifecycle/patch/globalState.js.map +1 -0
  205. package/runtime/lib/snapshot/lifecycle/patch/isMainThreadHydrating.js.map +1 -0
  206. package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.d.ts +15 -0
  207. package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.js +102 -0
  208. package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.js.map +1 -0
  209. package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatch.d.ts +2 -0
  210. package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatch.js +27 -2
  211. package/runtime/lib/snapshot/lifecycle/patch/snapshotPatch.js.map +1 -0
  212. package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatchApply.js +28 -0
  213. package/runtime/lib/snapshot/lifecycle/patch/snapshotPatchApply.js.map +1 -0
  214. package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -0
  215. package/runtime/lib/{lifecycle → snapshot/lifecycle}/ref/delay.d.ts +1 -0
  216. package/runtime/lib/{lifecycle → snapshot/lifecycle}/ref/delay.js +5 -3
  217. package/runtime/lib/snapshot/lifecycle/ref/delay.js.map +1 -0
  218. package/runtime/lib/{lifecycle → snapshot/lifecycle}/reload.js +3 -3
  219. package/runtime/lib/snapshot/lifecycle/reload.js.map +1 -0
  220. package/runtime/lib/snapshot/lifecycle/render.d.ts +2 -0
  221. package/runtime/lib/{lifecycle → snapshot/lifecycle}/render.js +2 -2
  222. package/runtime/lib/snapshot/lifecycle/render.js.map +1 -0
  223. package/runtime/lib/{list → snapshot/list}/list.js +5 -2
  224. package/runtime/lib/snapshot/list/list.js.map +1 -0
  225. package/runtime/lib/{list → snapshot/list}/listUpdateInfo.js +1 -1
  226. package/runtime/lib/snapshot/list/listUpdateInfo.js.map +1 -0
  227. package/runtime/lib/snapshot/list/pendingListUpdates.js.map +1 -0
  228. package/runtime/lib/snapshot/lynx/calledByNative.d.ts +2 -0
  229. package/runtime/lib/{lynx → snapshot/lynx}/calledByNative.js +2 -2
  230. package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -0
  231. package/runtime/lib/{lynx → snapshot/lynx}/component.js +1 -1
  232. package/runtime/lib/snapshot/lynx/component.js.map +1 -0
  233. package/runtime/lib/snapshot/lynx/dynamic-js.js.map +1 -0
  234. package/runtime/lib/snapshot/lynx/element.d.ts +6 -0
  235. package/runtime/lib/snapshot/lynx/element.js +35 -0
  236. package/runtime/lib/snapshot/lynx/element.js.map +1 -0
  237. package/runtime/lib/snapshot/lynx/env.d.ts +1 -0
  238. package/runtime/lib/{lynx → snapshot/lynx}/env.js +1 -4
  239. package/runtime/lib/snapshot/lynx/env.js.map +1 -0
  240. package/runtime/lib/snapshot/lynx/injectLepusMethods.js.map +1 -0
  241. package/runtime/lib/snapshot/lynx/lazy-bundle.js.map +1 -0
  242. package/runtime/lib/snapshot/lynx/nodesRef.d.ts +6 -0
  243. package/runtime/lib/snapshot/lynx/nodesRef.js +31 -0
  244. package/runtime/lib/snapshot/lynx/nodesRef.js.map +1 -0
  245. package/runtime/lib/{lynx → snapshot/lynx}/performance.js +2 -2
  246. package/runtime/lib/snapshot/lynx/performance.js.map +1 -0
  247. package/runtime/lib/snapshot/lynx/portals.d.ts +9 -0
  248. package/runtime/lib/snapshot/lynx/portals.js +120 -0
  249. package/runtime/lib/snapshot/lynx/portals.js.map +1 -0
  250. package/runtime/lib/snapshot/lynx/portalsPending.d.ts +10 -0
  251. package/runtime/lib/snapshot/lynx/portalsPending.js +38 -0
  252. package/runtime/lib/snapshot/lynx/portalsPending.js.map +1 -0
  253. package/runtime/lib/{lynx → snapshot/lynx}/runWithForce.js +2 -2
  254. package/runtime/lib/snapshot/lynx/runWithForce.js.map +1 -0
  255. package/runtime/lib/{lynx → snapshot/lynx}/suspense.js +27 -17
  256. package/runtime/lib/snapshot/lynx/suspense.js.map +1 -0
  257. package/runtime/lib/{lynx → snapshot/lynx}/tt.js +3 -3
  258. package/runtime/lib/snapshot/lynx/tt.js.map +1 -0
  259. package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/hydrate.js +22 -5
  260. package/runtime/lib/snapshot/renderToOpcodes/hydrate.js.map +1 -0
  261. package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/index.js +35 -14
  262. package/runtime/lib/snapshot/renderToOpcodes/index.js.map +1 -0
  263. package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/opcodes.js +5 -3
  264. package/runtime/lib/snapshot/renderToOpcodes/opcodes.js.map +1 -0
  265. package/runtime/lib/snapshot/{backgroundSnapshot.d.ts → snapshot/backgroundSnapshot.d.ts} +2 -1
  266. package/runtime/lib/snapshot/{backgroundSnapshot.js → snapshot/backgroundSnapshot.js} +101 -73
  267. package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -0
  268. package/runtime/lib/snapshot/{constants.d.ts → snapshot/constants.d.ts} +4 -0
  269. package/runtime/lib/snapshot/{constants.js → snapshot/constants.js} +4 -0
  270. package/runtime/lib/snapshot/snapshot/constants.js.map +1 -0
  271. package/runtime/lib/snapshot/{definition.d.ts → snapshot/definition.d.ts} +2 -0
  272. package/runtime/lib/snapshot/{definition.js → snapshot/definition.js} +55 -3
  273. package/runtime/lib/snapshot/snapshot/definition.js.map +1 -0
  274. package/runtime/lib/snapshot/{dynamicPartType.d.ts → snapshot/dynamicPartType.d.ts} +14 -0
  275. package/runtime/lib/snapshot/{dynamicPartType.js → snapshot/dynamicPartType.js} +14 -0
  276. package/runtime/lib/snapshot/snapshot/dynamicPartType.js.map +1 -0
  277. package/runtime/lib/snapshot/{event.d.ts → snapshot/event.d.ts} +1 -1
  278. package/runtime/lib/snapshot/{event.js → snapshot/event.js} +0 -4
  279. package/runtime/lib/snapshot/snapshot/event.js.map +1 -0
  280. package/runtime/lib/snapshot/{gesture.js → snapshot/gesture.js} +9 -3
  281. package/runtime/lib/snapshot/snapshot/gesture.js.map +1 -0
  282. package/runtime/lib/snapshot/snapshot/index.d.ts +4 -0
  283. package/runtime/lib/snapshot/snapshot/index.js +8 -0
  284. package/runtime/lib/snapshot/snapshot/index.js.map +1 -0
  285. package/runtime/lib/snapshot/snapshot/list.js.map +1 -0
  286. package/runtime/lib/snapshot/snapshot/platformInfo.js.map +1 -0
  287. package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.d.ts +14 -0
  288. package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.js +27 -0
  289. package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.js.map +1 -0
  290. package/runtime/lib/snapshot/{ref.d.ts → snapshot/ref.d.ts} +1 -0
  291. package/runtime/lib/snapshot/{ref.js → snapshot/ref.js} +13 -1
  292. package/runtime/lib/snapshot/snapshot/ref.js.map +1 -0
  293. package/runtime/lib/snapshot/{snapshot.d.ts → snapshot/snapshot.d.ts} +1 -0
  294. package/runtime/lib/snapshot/{snapshot.js → snapshot/snapshot.js} +90 -11
  295. package/runtime/lib/snapshot/snapshot/snapshot.js.map +1 -0
  296. package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js.map +1 -0
  297. package/runtime/lib/snapshot/{spread.d.ts → snapshot/spread.d.ts} +1 -1
  298. package/runtime/lib/snapshot/{spread.js → snapshot/spread.js} +35 -4
  299. package/runtime/lib/snapshot/snapshot/spread.js.map +1 -0
  300. package/runtime/lib/snapshot/{types.d.ts → snapshot/types.d.ts} +1 -0
  301. package/runtime/lib/snapshot/snapshot/types.js.map +1 -0
  302. package/runtime/lib/snapshot/{utils.d.ts → snapshot/utils.d.ts} +1 -3
  303. package/runtime/lib/snapshot/{utils.js → snapshot/utils.js} +5 -0
  304. package/runtime/lib/snapshot/snapshot/utils.js.map +1 -0
  305. package/runtime/lib/snapshot/{workletEvent.d.ts → snapshot/workletEvent.d.ts} +1 -1
  306. package/runtime/lib/snapshot/{workletEvent.js → snapshot/workletEvent.js} +10 -5
  307. package/runtime/lib/snapshot/snapshot/workletEvent.js.map +1 -0
  308. package/runtime/lib/snapshot/{workletRef.d.ts → snapshot/workletRef.d.ts} +1 -1
  309. package/runtime/lib/snapshot/{workletRef.js → snapshot/workletRef.js} +6 -3
  310. package/runtime/lib/snapshot/snapshot/workletRef.js.map +1 -0
  311. package/runtime/lib/snapshot/worklet/call/delayedRunOnMainThreadData.js.map +1 -0
  312. package/runtime/lib/snapshot/worklet/call/execMap.js.map +1 -0
  313. package/runtime/lib/snapshot/worklet/call/functionCall.js.map +1 -0
  314. package/runtime/lib/snapshot/worklet/call/runOnBackground.js.map +1 -0
  315. package/runtime/lib/snapshot/worklet/call/runOnMainThread.js.map +1 -0
  316. package/runtime/lib/snapshot/worklet/call/transformToWorklet.js.map +1 -0
  317. package/runtime/lib/snapshot/worklet/ctx.d.ts +1 -0
  318. package/runtime/lib/snapshot/worklet/ctx.js.map +1 -0
  319. package/runtime/lib/snapshot/worklet/destroy.js.map +1 -0
  320. package/runtime/lib/{worklet → snapshot/worklet}/functionality.js +1 -1
  321. package/runtime/lib/snapshot/worklet/functionality.js.map +1 -0
  322. package/runtime/lib/snapshot/worklet/hmr.js.map +1 -0
  323. package/runtime/lib/snapshot/worklet/indexMap.js.map +1 -0
  324. package/runtime/lib/snapshot/worklet/ref/updateInitValue.js.map +1 -0
  325. package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRef.js +1 -1
  326. package/runtime/lib/snapshot/worklet/ref/workletRef.js.map +1 -0
  327. package/runtime/lib/snapshot/worklet/ref/workletRefPool.js.map +1 -0
  328. package/runtime/lib/tsconfig.tsbuildinfo +1 -1
  329. package/runtime/lib/utils.js +1 -1
  330. package/runtime/lib/utils.js.map +1 -1
  331. package/runtime/lib/worklet-runtime/bindings/observers.d.ts +1 -0
  332. package/runtime/lib/worklet-runtime/bindings/observers.js +5 -3
  333. package/runtime/lib/worklet-runtime/bindings/observers.js.map +1 -1
  334. package/runtime/lib/worklet-runtime/bindings/types.d.ts +1 -1
  335. package/runtime/lib/worklet-runtime/bindings/types.js.map +1 -1
  336. package/runtime/lib/worklet-runtime/hydrate.js +1 -1
  337. package/runtime/lib/worklet-runtime/hydrate.js.map +1 -1
  338. package/runtime/lib/worklet-runtime/jsFunctionLifecycle.d.ts +1 -0
  339. package/runtime/lib/worklet-runtime/jsFunctionLifecycle.js +5 -0
  340. package/runtime/lib/worklet-runtime/jsFunctionLifecycle.js.map +1 -1
  341. package/runtime/lib/worklet-runtime/workletRuntime.js +1 -2
  342. package/runtime/lib/worklet-runtime/workletRuntime.js.map +1 -1
  343. package/runtime/worklet-runtime/dev.js +8 -4
  344. package/runtime/worklet-runtime/main.js +1 -1
  345. package/testing-library/dist/env/index.js +25 -7
  346. package/testing-library/dist/fire-event.d.ts +21 -7
  347. package/testing-library/dist/index.d.ts +2 -0
  348. package/testing-library/dist/pure.js +29 -11
  349. package/testing-library/dist/setupFiles/common/runtime-setup.js +14 -49
  350. package/testing-library/dist/type-entry/index.js +0 -0
  351. package/transform/dist/wasm.cjs +1274 -665
  352. package/transform/index.d.ts +28 -1
  353. package/types/react.docs.d.ts +9 -1
  354. package/refresh/.gitignore +0 -1
  355. package/refresh/.npmignore +0 -3
  356. package/refresh/.turbo/turbo-build.log +0 -12
  357. package/refresh/package.json +0 -20
  358. package/refresh/rslib.config.ts +0 -24
  359. package/refresh/tsconfig.json +0 -4
  360. package/refresh/turbo.json +0 -15
  361. package/runtime/lib/alog/elementPAPICall.js.map +0 -1
  362. package/runtime/lib/alog/index.js.map +0 -1
  363. package/runtime/lib/alog/render.js.map +0 -1
  364. package/runtime/lib/compat/componentIs.js.map +0 -1
  365. package/runtime/lib/compat/initData.js.map +0 -1
  366. package/runtime/lib/compat/lynxComponent.js.map +0 -1
  367. package/runtime/lib/debug/component-stack.js.map +0 -1
  368. package/runtime/lib/debug/debug.js.map +0 -1
  369. package/runtime/lib/debug/describeInvalidValue.js.map +0 -1
  370. package/runtime/lib/debug/formatPatch.js.map +0 -1
  371. package/runtime/lib/debug/printSnapshot.js.map +0 -1
  372. package/runtime/lib/debug/profile.js.map +0 -1
  373. package/runtime/lib/debug/profileHooks.js.map +0 -1
  374. package/runtime/lib/debug/vnodeSource.js.map +0 -1
  375. package/runtime/lib/gesture/processGesture.js.map +0 -1
  376. package/runtime/lib/gesture/processGestureBagkround.d.ts +0 -2
  377. package/runtime/lib/gesture/processGestureBagkround.js +0 -19
  378. package/runtime/lib/gesture/processGestureBagkround.js.map +0 -1
  379. package/runtime/lib/gesture/types.js.map +0 -1
  380. package/runtime/lib/hooks/mainThread.js.map +0 -1
  381. package/runtime/lib/hooks/react.js.map +0 -1
  382. package/runtime/lib/hooks/useLynxGlobalEventListener.js.map +0 -1
  383. package/runtime/lib/legacy-react-runtime/index.js.map +0 -1
  384. package/runtime/lib/lifecycle/constant.js.map +0 -1
  385. package/runtime/lib/lifecycle/destroy.js.map +0 -1
  386. package/runtime/lib/lifecycle/event/delayEvents.js.map +0 -1
  387. package/runtime/lib/lifecycle/event/delayLifecycleEvents.js.map +0 -1
  388. package/runtime/lib/lifecycle/event/jsReady.js.map +0 -1
  389. package/runtime/lib/lifecycle/isRendering.js.map +0 -1
  390. package/runtime/lib/lifecycle/pass.js.map +0 -1
  391. package/runtime/lib/lifecycle/patch/commit.js.map +0 -1
  392. package/runtime/lib/lifecycle/patch/error.js.map +0 -1
  393. package/runtime/lib/lifecycle/patch/globalState.js.map +0 -1
  394. package/runtime/lib/lifecycle/patch/isMainThreadHydrating.js.map +0 -1
  395. package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +0 -1
  396. package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +0 -1
  397. package/runtime/lib/lifecycle/patch/updateMainThread.js.map +0 -1
  398. package/runtime/lib/lifecycle/ref/delay.js.map +0 -1
  399. package/runtime/lib/lifecycle/reload.js.map +0 -1
  400. package/runtime/lib/lifecycle/render.js.map +0 -1
  401. package/runtime/lib/list/list.js.map +0 -1
  402. package/runtime/lib/list/listUpdateInfo.js.map +0 -1
  403. package/runtime/lib/list/pendingListUpdates.js.map +0 -1
  404. package/runtime/lib/lynx/calledByNative.js.map +0 -1
  405. package/runtime/lib/lynx/component.js.map +0 -1
  406. package/runtime/lib/lynx/dynamic-js.js.map +0 -1
  407. package/runtime/lib/lynx/env.js.map +0 -1
  408. package/runtime/lib/lynx/injectLepusMethods.js.map +0 -1
  409. package/runtime/lib/lynx/lazy-bundle.js.map +0 -1
  410. package/runtime/lib/lynx/performance.js.map +0 -1
  411. package/runtime/lib/lynx/runWithForce.js.map +0 -1
  412. package/runtime/lib/lynx/suspense.js.map +0 -1
  413. package/runtime/lib/lynx/tt.js.map +0 -1
  414. package/runtime/lib/renderToOpcodes/constants.js.map +0 -1
  415. package/runtime/lib/renderToOpcodes/hydrate.js.map +0 -1
  416. package/runtime/lib/renderToOpcodes/index.js.map +0 -1
  417. package/runtime/lib/renderToOpcodes/opcodes.js.map +0 -1
  418. package/runtime/lib/snapshot/backgroundSnapshot.js.map +0 -1
  419. package/runtime/lib/snapshot/constants.js.map +0 -1
  420. package/runtime/lib/snapshot/definition.js.map +0 -1
  421. package/runtime/lib/snapshot/dynamicPartType.js.map +0 -1
  422. package/runtime/lib/snapshot/event.js.map +0 -1
  423. package/runtime/lib/snapshot/gesture.js.map +0 -1
  424. package/runtime/lib/snapshot/list.js.map +0 -1
  425. package/runtime/lib/snapshot/platformInfo.js.map +0 -1
  426. package/runtime/lib/snapshot/ref.js.map +0 -1
  427. package/runtime/lib/snapshot/snapshot.js.map +0 -1
  428. package/runtime/lib/snapshot/snapshotInstanceHydrationMap.js.map +0 -1
  429. package/runtime/lib/snapshot/spread.js.map +0 -1
  430. package/runtime/lib/snapshot/types.js.map +0 -1
  431. package/runtime/lib/snapshot/utils.js.map +0 -1
  432. package/runtime/lib/snapshot/workletEvent.js.map +0 -1
  433. package/runtime/lib/snapshot/workletRef.js.map +0 -1
  434. package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js.map +0 -1
  435. package/runtime/lib/worklet/call/execMap.js.map +0 -1
  436. package/runtime/lib/worklet/call/functionCall.js.map +0 -1
  437. package/runtime/lib/worklet/call/runOnBackground.js.map +0 -1
  438. package/runtime/lib/worklet/call/runOnMainThread.js.map +0 -1
  439. package/runtime/lib/worklet/call/transformToWorklet.js.map +0 -1
  440. package/runtime/lib/worklet/ctx.js.map +0 -1
  441. package/runtime/lib/worklet/destroy.js.map +0 -1
  442. package/runtime/lib/worklet/functionality.js.map +0 -1
  443. package/runtime/lib/worklet/hmr.js.map +0 -1
  444. package/runtime/lib/worklet/indexMap.js.map +0 -1
  445. package/runtime/lib/worklet/ref/updateInitValue.js.map +0 -1
  446. package/runtime/lib/worklet/ref/workletRef.js.map +0 -1
  447. package/runtime/lib/worklet/ref/workletRefPool.js.map +0 -1
  448. package/testing-library/README.md +0 -109
  449. /package/runtime/lib/{hooks → core/hooks}/react.d.ts +0 -0
  450. /package/runtime/lib/{lynx → element-template/lynx}/env.d.ts +0 -0
  451. /package/runtime/lib/{lynx/calledByNative.d.ts → element-template/native/main-thread-api.d.ts} +0 -0
  452. /package/runtime/lib/{lynx/component.d.ts → element-template/runtime/components/slot.d.ts} +0 -0
  453. /package/runtime/lib/{lifecycle/render.d.ts → element-template/runtime/render/render-main-thread.d.ts} +0 -0
  454. /package/runtime/lib/{debug → shared}/component-stack.d.ts +0 -0
  455. /package/runtime/lib/{debug → shared}/profile.d.ts +0 -0
  456. /package/runtime/lib/{renderToOpcodes/constants.d.ts → shared/render-constants.d.ts} +0 -0
  457. /package/runtime/lib/{alog → snapshot/alog}/elementPAPICall.d.ts +0 -0
  458. /package/runtime/lib/{alog → snapshot/alog}/index.d.ts +0 -0
  459. /package/runtime/lib/{alog → snapshot/alog}/index.js +0 -0
  460. /package/runtime/lib/{alog → snapshot/alog}/render.d.ts +0 -0
  461. /package/runtime/lib/{compat → snapshot/compat}/componentIs.d.ts +0 -0
  462. /package/runtime/lib/{compat → snapshot/compat}/componentIs.js +0 -0
  463. /package/runtime/lib/{compat → snapshot/compat}/lynxComponent.d.ts +0 -0
  464. /package/runtime/lib/{compat → snapshot/compat}/lynxComponent.js +0 -0
  465. /package/runtime/lib/{debug → snapshot/debug}/debug.d.ts +0 -0
  466. /package/runtime/lib/{debug → snapshot/debug}/debug.js +0 -0
  467. /package/runtime/lib/{debug → snapshot/debug}/describeInvalidValue.d.ts +0 -0
  468. /package/runtime/lib/{debug → snapshot/debug}/describeInvalidValue.js +0 -0
  469. /package/runtime/lib/{debug → snapshot/debug}/formatPatch.d.ts +0 -0
  470. /package/runtime/lib/{debug → snapshot/debug}/formatPatch.js +0 -0
  471. /package/runtime/lib/{debug → snapshot/debug}/printSnapshot.d.ts +0 -0
  472. /package/runtime/lib/{debug → snapshot/debug}/printSnapshot.js +0 -0
  473. /package/runtime/lib/{debug → snapshot/debug}/profileHooks.d.ts +0 -0
  474. /package/runtime/lib/{debug → snapshot/debug}/vnodeSource.d.ts +0 -0
  475. /package/runtime/lib/{gesture → snapshot/gesture}/types.d.ts +0 -0
  476. /package/runtime/lib/{gesture → snapshot/gesture}/types.js +0 -0
  477. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/constant.d.ts +0 -0
  478. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/constant.js +0 -0
  479. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/destroy.d.ts +0 -0
  480. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayEvents.d.ts +0 -0
  481. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayEvents.js +0 -0
  482. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayLifecycleEvents.d.ts +0 -0
  483. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayLifecycleEvents.js +0 -0
  484. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/jsReady.d.ts +0 -0
  485. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/isRendering.d.ts +0 -0
  486. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/pass.d.ts +0 -0
  487. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/pass.js +0 -0
  488. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/commit.d.ts +0 -0
  489. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/error.d.ts +0 -0
  490. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/error.js +0 -0
  491. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/globalState.d.ts +0 -0
  492. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/globalState.js +0 -0
  493. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/isMainThreadHydrating.d.ts +0 -0
  494. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/isMainThreadHydrating.js +0 -0
  495. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatchApply.d.ts +0 -0
  496. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/updateMainThread.d.ts +0 -0
  497. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/updateMainThread.js +0 -0
  498. /package/runtime/lib/{lifecycle → snapshot/lifecycle}/reload.d.ts +0 -0
  499. /package/runtime/lib/{list → snapshot/list}/list.d.ts +0 -0
  500. /package/runtime/lib/{list → snapshot/list}/listUpdateInfo.d.ts +0 -0
  501. /package/runtime/lib/{list → snapshot/list}/pendingListUpdates.d.ts +0 -0
  502. /package/runtime/lib/{list → snapshot/list}/pendingListUpdates.js +0 -0
  503. /package/runtime/lib/{worklet/call/execMap.d.ts → snapshot/lynx/component.d.ts} +0 -0
  504. /package/runtime/lib/{lynx → snapshot/lynx}/dynamic-js.d.ts +0 -0
  505. /package/runtime/lib/{lynx → snapshot/lynx}/dynamic-js.js +0 -0
  506. /package/runtime/lib/{lynx → snapshot/lynx}/injectLepusMethods.d.ts +0 -0
  507. /package/runtime/lib/{lynx → snapshot/lynx}/injectLepusMethods.js +0 -0
  508. /package/runtime/lib/{lynx → snapshot/lynx}/lazy-bundle.d.ts +0 -0
  509. /package/runtime/lib/{lynx → snapshot/lynx}/lazy-bundle.js +0 -0
  510. /package/runtime/lib/{lynx → snapshot/lynx}/performance.d.ts +0 -0
  511. /package/runtime/lib/{lynx → snapshot/lynx}/runWithForce.d.ts +0 -0
  512. /package/runtime/lib/{lynx → snapshot/lynx}/suspense.d.ts +0 -0
  513. /package/runtime/lib/{lynx → snapshot/lynx}/tt.d.ts +0 -0
  514. /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/hydrate.d.ts +0 -0
  515. /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/index.d.ts +0 -0
  516. /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/opcodes.d.ts +0 -0
  517. /package/runtime/lib/snapshot/{gesture.d.ts → snapshot/gesture.d.ts} +0 -0
  518. /package/runtime/lib/snapshot/{list.d.ts → snapshot/list.d.ts} +0 -0
  519. /package/runtime/lib/snapshot/{list.js → snapshot/list.js} +0 -0
  520. /package/runtime/lib/snapshot/{platformInfo.d.ts → snapshot/platformInfo.d.ts} +0 -0
  521. /package/runtime/lib/snapshot/{platformInfo.js → snapshot/platformInfo.js} +0 -0
  522. /package/runtime/lib/snapshot/{snapshotInstanceHydrationMap.d.ts → snapshot/snapshotInstanceHydrationMap.d.ts} +0 -0
  523. /package/runtime/lib/snapshot/{snapshotInstanceHydrationMap.js → snapshot/snapshotInstanceHydrationMap.js} +0 -0
  524. /package/runtime/lib/snapshot/{types.js → snapshot/types.js} +0 -0
  525. /package/runtime/lib/{worklet → snapshot/worklet}/call/delayedRunOnMainThreadData.d.ts +0 -0
  526. /package/runtime/lib/{worklet → snapshot/worklet}/call/delayedRunOnMainThreadData.js +0 -0
  527. /package/runtime/lib/{worklet/call/transformToWorklet.d.ts → snapshot/worklet/call/execMap.d.ts} +0 -0
  528. /package/runtime/lib/{worklet → snapshot/worklet}/call/execMap.js +0 -0
  529. /package/runtime/lib/{worklet → snapshot/worklet}/call/functionCall.d.ts +0 -0
  530. /package/runtime/lib/{worklet → snapshot/worklet}/call/functionCall.js +0 -0
  531. /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnBackground.d.ts +0 -0
  532. /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnBackground.js +0 -0
  533. /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnMainThread.d.ts +0 -0
  534. /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnMainThread.js +0 -0
  535. /package/runtime/lib/{worklet/ctx.d.ts → snapshot/worklet/call/transformToWorklet.d.ts} +0 -0
  536. /package/runtime/lib/{worklet → snapshot/worklet}/call/transformToWorklet.js +0 -0
  537. /package/runtime/lib/{worklet → snapshot/worklet}/ctx.js +0 -0
  538. /package/runtime/lib/{worklet → snapshot/worklet}/destroy.d.ts +0 -0
  539. /package/runtime/lib/{worklet → snapshot/worklet}/destroy.js +0 -0
  540. /package/runtime/lib/{worklet → snapshot/worklet}/functionality.d.ts +0 -0
  541. /package/runtime/lib/{worklet → snapshot/worklet}/hmr.d.ts +0 -0
  542. /package/runtime/lib/{worklet → snapshot/worklet}/hmr.js +0 -0
  543. /package/runtime/lib/{worklet → snapshot/worklet}/indexMap.d.ts +0 -0
  544. /package/runtime/lib/{worklet → snapshot/worklet}/indexMap.js +0 -0
  545. /package/runtime/lib/{worklet → snapshot/worklet}/ref/updateInitValue.d.ts +0 -0
  546. /package/runtime/lib/{worklet → snapshot/worklet}/ref/updateInitValue.js +0 -0
  547. /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRef.d.ts +0 -0
  548. /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRefPool.d.ts +0 -0
  549. /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRefPool.js +0 -0
@@ -1,12 +1,12 @@
1
1
  // Copyright 2024 The Lynx Authors. All rights reserved.
2
2
  // Licensed under the Apache License Version 2.0 that can be found in the
3
3
  // LICENSE file in the root directory of this source tree.
4
- import { profileEnd, profileStart } from '../debug/profile.js';
4
+ import { profileEnd, profileStart } from '../../shared/profile.js';
5
5
  import { componentAtIndexFactory, enqueueComponentFactory, gRecycleMap, gSignMap } from '../list/list.js';
6
6
  import { __pendingListUpdates } from '../list/pendingListUpdates.js';
7
7
  import { DynamicPartType } from '../snapshot/dynamicPartType.js';
8
8
  import { unref } from '../snapshot/ref.js';
9
- import { isEmptyObject } from '../utils.js';
9
+ import { isEmptyObject } from '../../utils.js';
10
10
  const UNREACHABLE_ITEM_KEY_NOT_FOUND = 'UNREACHABLE_ITEM_KEY_NOT_FOUND';
11
11
  export function isEmptyDiffResult(diffResult) {
12
12
  const hasChanged = !isEmptyObject(diffResult.i)
@@ -205,11 +205,18 @@ export function hydrate(before, after, options) {
205
205
  hydrate(v1, v2, options);
206
206
  break;
207
207
  }
208
+ case DynamicPartType.SlotV2:
208
209
  case DynamicPartType.Children: {
209
- const diffResult = diffArrayLepus(beforeChildNodes, afterChildNodes, (a, b) => a.type === b.type, (a, b) => {
210
+ let filteredBeforeChildNodes = beforeChildNodes;
211
+ let filteredAfterChildNodes = afterChildNodes;
212
+ if (type === DynamicPartType.SlotV2) {
213
+ filteredBeforeChildNodes = beforeChildNodes.filter(v => v.__slotIndex === index);
214
+ filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
215
+ }
216
+ const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b) => {
210
217
  hydrate(a, b, options);
211
218
  }, false);
212
- diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
219
+ diffArrayAction(filteredBeforeChildNodes, diffResult, (node, target) => {
213
220
  node.ensureElements();
214
221
  __InsertElementBefore(before.__elements[elementIndex], node.__element_root, target?.__element_root);
215
222
  return node;
@@ -221,14 +228,21 @@ export function hydrate(before, after, options) {
221
228
  });
222
229
  break;
223
230
  }
231
+ case DynamicPartType.ListSlotV2:
224
232
  case DynamicPartType.ListChildren: {
233
+ let filteredBeforeChildNodes = beforeChildNodes;
234
+ let filteredAfterChildNodes = afterChildNodes;
235
+ if (type === DynamicPartType.ListSlotV2) {
236
+ filteredBeforeChildNodes = beforeChildNodes.filter(v => v.__slotIndex === index);
237
+ filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
238
+ }
225
239
  const removals = [];
226
240
  const insertions = [];
227
241
  const updateAction = [];
228
242
  const listID = __GetElementUniqueID(before.__elements[elementIndex]);
229
243
  const signMap = gSignMap[listID];
230
244
  const recycleMap = gRecycleMap[listID];
231
- const diffResult = diffArrayLepus(beforeChildNodes, afterChildNodes, (a, b) => a.type === b.type, (a, b, _oldIndex, newIndex) => {
245
+ const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b, _oldIndex, newIndex) => {
232
246
  if (JSON.stringify(a.__listItemPlatformInfo)
233
247
  !== JSON.stringify(b.__listItemPlatformInfo)) {
234
248
  updateAction.push({
@@ -300,7 +314,10 @@ export function hydrate(before, after, options) {
300
314
  if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
301
315
  profileEnd();
302
316
  }
317
+ break;
303
318
  }
319
+ default:
320
+ throw new Error('Unexpected slot type: ' + type);
304
321
  }
305
322
  });
306
323
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/hydrate.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  // @ts-nocheck
10
10
  import { Fragment, h, options, isValidElement } from 'preact';
11
11
  import { SnapshotInstance } from '../snapshot/snapshot.js';
12
- import { CHILDREN, COMMIT, COMPONENT, DIFF, DIFF2, DIFFED, DIRTY, NEXT_STATE, PARENT, RENDER, SKIP_EFFECTS, VNODE, HOOK, CHILD_DID_SUSPEND, } from './constants.js';
12
+ import { CHILDREN, COMMIT, COMPONENT, DIFF, DIFF2, DIFFED, DIRTY, NEXT_STATE, PARENT, RENDER, SKIP_EFFECTS, VNODE, HOOK, CHILD_DID_SUSPEND, } from '../../shared/render-constants.js';
13
13
  /** @typedef {import('preact').VNode} VNode */
14
14
  const EMPTY_ARR = [];
15
15
  const isArray = /* @__PURE__ */ Array.isArray;
@@ -39,7 +39,7 @@ export function renderToString(vnode, context, into) {
39
39
  parent[CHILDREN] = [vnode];
40
40
  const opcodes = [];
41
41
  try {
42
- _renderToString(vnode, context || EMPTY_OBJ, false, undefined, parent, opcodes, 0, into);
42
+ _renderToString(vnode, context || EMPTY_OBJ, 0, undefined, parent, opcodes, 0, into);
43
43
  }
44
44
  finally {
45
45
  // options._commit, we don't schedule any effects in this library right now,
@@ -96,14 +96,14 @@ function renderClassComponent(vnode, context) {
96
96
  * Recursively render VNodes to HTML.
97
97
  * @param {VNode|any} vnode
98
98
  * @param {any} context
99
- * @param {boolean} isSvgMode
99
+ * @param {number | true} slotIndex
100
100
  * @param {any} selectValue
101
101
  * @param {VNode} parent
102
102
  * @param {any[]} opcodes
103
103
  * @param {number} opcodesLength
104
104
  * @param {SnapshotInstance} into
105
105
  */
106
- function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes, opcodesLength, into) {
106
+ function _renderToString(vnode, context, slotIndex, selectValue, parent, opcodes, opcodesLength, into) {
107
107
  // Ignore non-rendered VNodes/values
108
108
  if (vnode == null || vnode === true || vnode === false || vnode === '') {
109
109
  return;
@@ -113,7 +113,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
113
113
  if (vnodeType !== 'object') {
114
114
  if (vnodeType === 'function')
115
115
  return;
116
- renderToTextNode(into, vnode + '', opcodes);
116
+ renderToTextNode(into, vnode, opcodes, slotIndex);
117
117
  return;
118
118
  }
119
119
  // Recurse into children / Arrays
@@ -123,7 +123,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
123
123
  const child = vnode[i];
124
124
  if (child == null || typeof child === 'boolean')
125
125
  continue;
126
- _renderToString(child, context, isSvgMode, selectValue, parent, opcodes,
126
+ _renderToString(child, context, slotIndex === true ? i : slotIndex, selectValue, parent, opcodes,
127
127
  /* v8 ignore start */
128
128
  __ENABLE_SSR__ ? opcodes.length : 0,
129
129
  /* v8 ignore end */
@@ -195,7 +195,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
195
195
  let lastChild = into.__lastChild;
196
196
  // Recurse into children before invoking the after-diff hook
197
197
  try {
198
- _renderToString(rendered, context, isSvgMode, selectValue, vnode, opcodes,
198
+ _renderToString(rendered, context, slotIndex, selectValue, vnode, opcodes,
199
199
  /* v8 ignore start */
200
200
  __ENABLE_SSR__ ? opcodes.length : 0,
201
201
  /* v8 ignore end */
@@ -216,7 +216,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
216
216
  if (__ENABLE_SSR__) {
217
217
  opcodes.length = opcodesLength;
218
218
  }
219
- _renderToString(rendered, context, isSvgMode, selectValue, vnode, opcodes,
219
+ _renderToString(rendered, context, slotIndex, selectValue, vnode, opcodes,
220
220
  /* v8 ignore start */
221
221
  __ENABLE_SSR__ ? opcodes.length : 0,
222
222
  /* v8 ignore end */
@@ -237,6 +237,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
237
237
  return;
238
238
  }
239
239
  let children;
240
+ let hasNamedChildren = false;
240
241
  // hack for runtime test
241
242
  if (process.env['NODE_ENV'] === 'test' && isValidElement(vnode) && typeof vnode.type === 'string') {
242
243
  vnode = Object.assign(new SnapshotInstance(type), vnode, { $$typeof: undefined });
@@ -246,8 +247,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
246
247
  vnode = new SnapshotInstance(type);
247
248
  }
248
249
  if (__ENABLE_SSR__) {
249
- opcodes.push(__OpBegin, vnode);
250
+ opcodes.push(__OpBegin, vnode, slotIndex);
250
251
  }
252
+ vnode.__slotIndex = slotIndex;
251
253
  into.insertBefore(vnode);
252
254
  for (const name in props) {
253
255
  const v = props[name];
@@ -262,7 +264,14 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
262
264
  case '__self':
263
265
  case '__source':
264
266
  continue;
265
- default: { }
267
+ default: {
268
+ if (name.startsWith('$')) {
269
+ children ??= [];
270
+ children[+name.slice(1)] = v;
271
+ hasNamedChildren = true;
272
+ continue;
273
+ }
274
+ }
266
275
  }
267
276
  // write this attribute to the buffer
268
277
  if (v != null && v !== false && typeof v !== 'function') {
@@ -275,11 +284,22 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
275
284
  let childrenType = typeof children;
276
285
  if (childrenType === 'string' || childrenType === 'number') {
277
286
  // single text child
278
- renderToTextNode(vnode, children, opcodes);
287
+ renderToTextNode(vnode, children, opcodes, slotIndex);
279
288
  }
280
289
  else if (children != null && children !== false && children !== true) {
281
290
  // recurse into this element VNode's children
282
- _renderToString(children, context, false, selectValue, vnode, opcodes,
291
+ let _slotIndex = slotIndex;
292
+ if (hasNamedChildren) {
293
+ // @ts-expect-error children must be an array
294
+ if (children.length === 1) {
295
+ children = children[0];
296
+ _slotIndex = 0;
297
+ }
298
+ else {
299
+ _slotIndex = true;
300
+ }
301
+ }
302
+ _renderToString(children, context, _slotIndex, selectValue, vnode, opcodes,
283
303
  /* v8 ignore start */
284
304
  __ENABLE_SSR__ ? opcodes.length : 0,
285
305
  /* v8 ignore end */
@@ -300,14 +320,15 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
300
320
  function doRender(props, state, context) {
301
321
  return this.constructor(props, context);
302
322
  }
303
- function renderToTextNode(into, text, opcodes) {
323
+ function renderToTextNode(into, text, opcodes, slotIndex) {
304
324
  const textNode = new SnapshotInstance(null);
325
+ textNode.__slotIndex = slotIndex;
305
326
  textNode.setAttribute(0, text);
306
327
  into.insertBefore(textNode);
307
328
  if (__ENABLE_SSR__) {
308
329
  // We need store the just created SnapshotInstance, or it will be lost when we leave the function
309
330
  text = [textNode, text];
310
- opcodes.push(__OpText, text);
331
+ opcodes.push(__OpText, text, slotIndex);
311
332
  }
312
333
  }
313
334
  export default renderToString;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  // LICENSE file in the root directory of this source tree.
4
4
  import { hydrate } from './hydrate.js';
5
5
  import { componentAtIndexFactory, enqueueComponentFactory, gRecycleMap, gSignMap } from '../list/list.js';
6
- import { CHILDREN } from './constants.js';
6
+ import { CHILDREN } from '../../shared/render-constants.js';
7
7
  import { SnapshotInstance } from '../snapshot/snapshot.js';
8
8
  const OpcodeBegin = 0;
9
9
  const OpcodeEnd = 1;
@@ -20,9 +20,10 @@ export function ssrHydrateByOpcodes(opcodes, into, refMap) {
20
20
  const [type, __id, elements] = opcodes[i + 1];
21
21
  top = new SnapshotInstance(type, __id);
22
22
  top.__pendingElements = elements;
23
+ top.__slotIndex = opcodes[i + 2];
23
24
  p.insertBefore(top);
24
25
  stack.push(top);
25
- i += 2;
26
+ i += 3;
26
27
  break;
27
28
  }
28
29
  case OpcodeEnd: {
@@ -63,11 +64,12 @@ export function ssrHydrateByOpcodes(opcodes, into, refMap) {
63
64
  case OpcodeText: {
64
65
  const [[type, __id, elements], text] = opcodes[i + 1];
65
66
  const s = new SnapshotInstance(type, __id);
67
+ s.__slotIndex = opcodes[i + 2];
66
68
  s.setAttribute(0, text);
67
69
  top.insertBefore(s);
68
70
  s.__elements = elements.map(({ ssrID }) => refMap[ssrID]);
69
71
  s.__element_root = s.__elements[0];
70
- i += 2;
72
+ i += 3;
71
73
  break;
72
74
  }
73
75
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/opcodes.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,10 @@ export declare class BackgroundSnapshotInstance {
15
15
  type: string;
16
16
  constructor(type: string);
17
17
  __id: number;
18
- __values: any[] | undefined;
18
+ __values: unknown[] | undefined;
19
19
  __snapshot_def: Snapshot;
20
20
  __extraProps?: Record<string, unknown> | undefined;
21
+ __slotIndex: number;
21
22
  private __parent;
22
23
  private __firstChild;
23
24
  private __lastChild;
@@ -1,21 +1,23 @@
1
1
  // Copyright 2024 The Lynx Authors. All rights reserved.
2
2
  // Licensed under the Apache License Version 2.0 that can be found in the
3
3
  // LICENSE file in the root directory of this source tree.
4
- import { snapshotManager } from './definition.js';
4
+ import { createRuntimeSnapshot, snapshotManager } from './definition.js';
5
5
  import { DynamicPartType } from './dynamicPartType.js';
6
- import { applyRef, clearQueuedRefs, queueRefAttrUpdate } from './ref.js';
6
+ import { reconstructInstanceTree } from './reconstructInstanceTree.js';
7
+ import { applyRef, clearQueuedRefs, getRefFromValue, queueRefAttrUpdate } from './ref.js';
7
8
  import { snapshotCreatorMap } from './snapshot.js';
8
9
  import { hydrationMap } from './snapshotInstanceHydrationMap.js';
9
10
  import { transformSpread } from './spread.js';
10
- import { traverseSnapshotInstance } from './utils.js';
11
- import { profileEnd, profileStart } from '../debug/profile.js';
11
+ import { isCompiledSnapshot, traverseSnapshotInstance } from './utils.js';
12
+ import { profileEnd, profileStart } from '../../shared/profile.js';
13
+ import { isDirectOrDeepEqual } from '../../utils.js';
12
14
  import { clearSnapshotVNodeSource, getSnapshotVNodeSource, moveSnapshotVNodeSource } from '../debug/vnodeSource.js';
13
- import { processGestureBackground } from '../gesture/processGestureBagkround.js';
15
+ import { prepareGestureForCommit } from '../gesture/processGestureBagkround.js';
14
16
  import { globalBackgroundSnapshotInstancesToRemove } from '../lifecycle/patch/globalState.js';
15
17
  import { SnapshotOperation, __globalSnapshotPatch, initGlobalSnapshotPatch, takeGlobalSnapshotPatch, } from '../lifecycle/patch/snapshotPatch.js';
16
18
  import { globalPipelineOptions } from '../lynx/performance.js';
19
+ import { clearPendingPortalInsertBefore } from '../lynx/portalsPending.js';
17
20
  import { diffArrayAction, diffArrayLepus } from '../renderToOpcodes/hydrate.js';
18
- import { isDirectOrDeepEqual } from '../utils.js';
19
21
  import { onPostWorkletCtx } from '../worklet/ctx.js';
20
22
  /**
21
23
  * Background snapshot instance manager that manages all background snapshot instances.
@@ -62,6 +64,13 @@ export const backgroundSnapshotInstanceManager = {
62
64
  if (!ctx) {
63
65
  return null;
64
66
  }
67
+ /**
68
+ * 1. normal event
69
+ * `${ctx.__id}:${expIndex}:${spreadKey}`
70
+ * 2. defer list event
71
+ * ${ctx.__id}:__extraProps:onRecycleComponent`
72
+ * ${ctx.__id}:__extraProps:onComponentAtIndex`
73
+ */
65
74
  const spreadKey = res[2];
66
75
  if (res[1] === '__extraProps') {
67
76
  if (spreadKey) {
@@ -79,6 +88,37 @@ export const backgroundSnapshotInstanceManager = {
79
88
  }
80
89
  },
81
90
  };
91
+ function prepareWorkletForCommit(worklet) {
92
+ // Copy-on-commit: do not mutate the background-side worklet ctx.
93
+ // `_execId` is injected into the payload object that will be sent to the main thread.
94
+ return onPostWorkletCtx({ ...worklet });
95
+ }
96
+ function prepareSpreadForCommit(spread, oldSpread) {
97
+ let committed;
98
+ for (const key in spread) {
99
+ const v = spread[key];
100
+ if (key === '__lynx_timing_flag' && oldSpread?.[key] != v && globalPipelineOptions) {
101
+ globalPipelineOptions.needTimestamps = true;
102
+ }
103
+ if (!v || typeof v !== 'object') {
104
+ continue;
105
+ }
106
+ const valueRecord = v;
107
+ let committedValue;
108
+ if ('_wkltId' in valueRecord) {
109
+ committedValue = prepareWorkletForCommit(v);
110
+ }
111
+ else if ('__isGesture' in valueRecord) {
112
+ committedValue = prepareGestureForCommit(v);
113
+ }
114
+ else {
115
+ continue;
116
+ }
117
+ committed ??= { ...spread };
118
+ committed[key] = committedValue;
119
+ }
120
+ return committed ?? spread;
121
+ }
82
122
  export class BackgroundSnapshotInstance {
83
123
  type;
84
124
  constructor(type) {
@@ -88,9 +128,13 @@ export class BackgroundSnapshotInstance {
88
128
  if (snapshotCreatorMap[type]) {
89
129
  snapshotCreatorMap[type](type);
90
130
  }
91
- else {
131
+ else if (isCompiledSnapshot(type)) {
92
132
  throw new Error('BackgroundSnapshot not found: ' + type);
93
133
  }
134
+ else {
135
+ // add runtime snapshot to backgroundSnapshotInstanceManager
136
+ createRuntimeSnapshot(type);
137
+ }
94
138
  }
95
139
  this.__snapshot_def = snapshotManager.values.get(type);
96
140
  const id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
@@ -101,6 +145,7 @@ export class BackgroundSnapshotInstance {
101
145
  __values;
102
146
  __snapshot_def;
103
147
  __extraProps;
148
+ __slotIndex = 0;
104
149
  __parent = null;
105
150
  __firstChild = null;
106
151
  __lastChild = null;
@@ -131,7 +176,7 @@ export class BackgroundSnapshotInstance {
131
176
  reconstructInstanceTree([node], this.__id, beforeNode?.__id);
132
177
  }
133
178
  else {
134
- __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id);
179
+ __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id, node.__slotIndex);
135
180
  }
136
181
  // If the node already has a parent, remove it from its current parent
137
182
  const p = node.__parent;
@@ -262,15 +307,11 @@ export class BackgroundSnapshotInstance {
262
307
  }
263
308
  else {
264
309
  this.__snapshot_def.refAndSpreadIndexes?.forEach((index) => {
310
+ // In first render, this.__values is undefined.
311
+ // In next rerenders before hydration, this.__values is not undefined.
312
+ const oldValue = this.__values?.[index];
265
313
  const v = value[index];
266
- if (v && (typeof v === 'object' || typeof v === 'function')) {
267
- if ('__spread' in v && 'ref' in v) {
268
- queueRefAttrUpdate(null, v.ref, this.__id, index);
269
- }
270
- else if ('__ref' in v) {
271
- queueRefAttrUpdate(null, v, this.__id, index);
272
- }
273
- }
314
+ queueRefAttrUpdate(getRefFromValue(oldValue), getRefFromValue(v), this.__id, index);
274
315
  });
275
316
  }
276
317
  this.__values = value;
@@ -310,35 +351,34 @@ export class BackgroundSnapshotInstance {
310
351
  // use __spread to cache the transform result for next diff
311
352
  newValueObj['__spread'] = newSpread;
312
353
  queueRefAttrUpdate(oldSpread && (oldValue.ref), newValueObj['ref'], this.__id, index);
313
- if (needUpdate) {
314
- for (const key in newSpread) {
315
- const newSpreadValue = newSpread[key];
316
- if (!newSpreadValue) {
317
- continue;
318
- }
319
- if (newSpreadValue._wkltId) {
320
- newSpread[key] = onPostWorkletCtx(newSpreadValue);
321
- }
322
- else if (newSpreadValue.__isGesture) {
323
- processGestureBackground(newSpreadValue);
324
- }
325
- else if (key == '__lynx_timing_flag' && oldSpread?.[key] != newSpreadValue && globalPipelineOptions) {
326
- globalPipelineOptions.needTimestamps = true;
327
- }
328
- }
329
- }
330
- return { needUpdate, valueToCommit: newSpread };
354
+ return {
355
+ needUpdate,
356
+ valueToCommit: needUpdate ? prepareSpreadForCommit(newSpread, oldSpread) : newSpread,
357
+ };
331
358
  }
332
359
  if ('__ref' in newValueObj) {
333
360
  queueRefAttrUpdate(oldValue, newValueObj, this.__id, index);
334
361
  return { needUpdate: false, valueToCommit: 1 };
335
362
  }
336
363
  if ('_wkltId' in newValueObj) {
337
- return { needUpdate: true, valueToCommit: onPostWorkletCtx(newValueObj) };
364
+ // Worklet ctx can be stable across rerenders (e.g. memoized by the user).
365
+ // In that case we should NOT re-register / re-send it, otherwise `_execId` churn
366
+ // will cause unnecessary patches.
367
+ const needUpdate = oldValue !== newValue;
368
+ return {
369
+ needUpdate,
370
+ valueToCommit: needUpdate ? prepareWorkletForCommit(newValueObj) : newValue,
371
+ };
338
372
  }
339
373
  if ('__isGesture' in newValueObj) {
340
- processGestureBackground(newValueObj);
341
- return { needUpdate: true, valueToCommit: newValue };
374
+ // Gestures are large objects; if the reference is stable, avoid reprocessing and patching.
375
+ const needUpdate = oldValue !== newValue;
376
+ return {
377
+ needUpdate,
378
+ valueToCommit: needUpdate
379
+ ? prepareGestureForCommit(newValueObj)
380
+ : newValue,
381
+ };
342
382
  }
343
383
  if ('__ltf' in newValueObj) {
344
384
  // __lynx_timing_flag
@@ -371,37 +411,30 @@ export function hydrate(before, after) {
371
411
  const helper = (before, after) => {
372
412
  hydrationMap.set(after.__id, before.id);
373
413
  backgroundSnapshotInstanceManager.updateId(after.__id, before.id);
414
+ // handle value by index
374
415
  after.__values?.forEach((value, index) => {
375
- const old = before.values[index];
416
+ // render with different root would cause different values length
417
+ const old = before.values?.[index];
376
418
  if (value) {
377
419
  if (typeof value === 'object') {
378
420
  if ('__spread' in value) {
379
421
  // `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
380
422
  delete value.__spread;
381
423
  const __spread = transformSpread(after, index, value);
382
- for (const key in __spread) {
383
- const v = __spread[key];
384
- if (v && typeof v === 'object') {
385
- if ('_wkltId' in v) {
386
- onPostWorkletCtx(v);
387
- }
388
- else if ('__isGesture' in v) {
389
- processGestureBackground(v);
390
- }
391
- }
392
- }
424
+ // Cache a clean spread for future diffs. For the patch payload, create a committed copy
425
+ // with runtime fields (e.g. `_execId`) injected.
393
426
  after.__values[index]['__spread'] = __spread;
394
- value = __spread;
427
+ value = prepareSpreadForCommit(__spread, old);
395
428
  }
396
429
  else if ('__ref' in value) {
397
430
  // skip patch
398
431
  value = old;
399
432
  }
400
433
  else if ('_wkltId' in value) {
401
- onPostWorkletCtx(value);
434
+ value = prepareWorkletForCommit(value);
402
435
  }
403
436
  else if ('__isGesture' in value) {
404
- processGestureBackground(value);
437
+ value = prepareGestureForCommit(value);
405
438
  }
406
439
  }
407
440
  else if (typeof value === 'function') {
@@ -444,6 +477,7 @@ export function hydrate(before, after) {
444
477
  }
445
478
  }
446
479
  });
480
+ // handle extraProps as attributes and set by key
447
481
  if (after.__extraProps) {
448
482
  for (const key in after.__extraProps) {
449
483
  const value = after.__extraProps[key];
@@ -488,14 +522,22 @@ export function hydrate(before, after) {
488
522
  helper(v1, v2);
489
523
  break;
490
524
  }
525
+ case DynamicPartType.SlotV2:
526
+ case DynamicPartType.ListSlotV2:
491
527
  case DynamicPartType.Children:
492
528
  case DynamicPartType.ListChildren: {
493
- const diffResult = diffArrayLepus(beforeChildNodes, afterChildNodes, (a, b) => a.type === b.type, (a, b) => {
529
+ let filteredBeforeChildNodes = beforeChildNodes;
530
+ let filteredAfterChildNodes = afterChildNodes;
531
+ if (type === DynamicPartType.SlotV2 || type === DynamicPartType.ListSlotV2) {
532
+ filteredBeforeChildNodes = beforeChildNodes.filter(v => (v.slotIndex ?? 0) === index);
533
+ filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
534
+ }
535
+ const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b) => {
494
536
  helper(a, b);
495
537
  },
496
538
  // Should be `false` in hydrate as SerializedSnapshotInstance has no item-key
497
539
  false);
498
- diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
540
+ diffArrayAction(filteredBeforeChildNodes, diffResult, (node, target) => {
499
541
  if (shouldProfile) {
500
542
  profileStart('ReactLynx::BSI::reconstructInstanceTree', {
501
543
  args: {
@@ -547,24 +589,27 @@ export function hydrate(before, after) {
547
589
  },
548
590
  });
549
591
  try {
550
- __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id);
592
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id, node.slotIndex ?? 0);
551
593
  }
552
594
  finally {
553
595
  profileEnd();
554
596
  }
555
597
  }
556
598
  else {
557
- __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id);
599
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id, node.slotIndex ?? 0);
558
600
  }
559
601
  });
560
602
  break;
561
603
  }
604
+ default:
605
+ throw new Error('Unexpected slot type: ' + type);
562
606
  }
563
607
  });
564
608
  };
565
609
  helper(before, after);
566
610
  // Hydration should not trigger ref updates. They were incorrectly triggered when using `setAttribute` to add values to the patch list.
567
611
  clearQueuedRefs();
612
+ clearPendingPortalInsertBefore();
568
613
  return takeGlobalSnapshotPatch();
569
614
  }
570
615
  finally {
@@ -573,21 +618,4 @@ export function hydrate(before, after) {
573
618
  }
574
619
  }
575
620
  }
576
- function reconstructInstanceTree(afters, parentId, targetId) {
577
- for (const child of afters) {
578
- const id = child.__id;
579
- __globalSnapshotPatch?.push(SnapshotOperation.CreateElement, child.type, id);
580
- const values = child.__values;
581
- if (values) {
582
- child.__values = undefined;
583
- child.setAttribute('values', values);
584
- }
585
- const extraProps = child.__extraProps;
586
- for (const key in extraProps) {
587
- child.setAttribute(key, extraProps[key]);
588
- }
589
- reconstructInstanceTree(child.childNodes, id);
590
- __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
591
- }
592
- }
593
621
  //# sourceMappingURL=backgroundSnapshot.js.map