@lynx-js/react 0.105.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 (337) hide show
  1. package/CHANGELOG.md +250 -0
  2. package/LICENSE +202 -0
  3. package/README.md +20 -0
  4. package/components/lib/Page.d.ts +3 -0
  5. package/components/lib/Page.js +56 -0
  6. package/components/lib/Page.js.map +1 -0
  7. package/components/lib/index.d.ts +1 -0
  8. package/components/lib/index.js +5 -0
  9. package/components/lib/index.js.map +1 -0
  10. package/components/src/Page.ts +75 -0
  11. package/components/src/index.ts +5 -0
  12. package/package.json +162 -0
  13. package/refresh/.gitignore +1 -0
  14. package/refresh/.npmignore +3 -0
  15. package/refresh/.turbo/turbo-build.log +8 -0
  16. package/refresh/dist/index.js +311 -0
  17. package/refresh/package.json +21 -0
  18. package/refresh/src/index.ts +6 -0
  19. package/refresh/src/prefresh.d.ts +11 -0
  20. package/refresh/tsconfig.json +4 -0
  21. package/refresh/turbo.json +15 -0
  22. package/runtime/jsx-dev-runtime/index.d.ts +5 -0
  23. package/runtime/jsx-dev-runtime/index.js +4 -0
  24. package/runtime/jsx-runtime/index.d.ts +4 -0
  25. package/runtime/jsx-runtime/index.js +4 -0
  26. package/runtime/lazy/import.d.ts +1 -0
  27. package/runtime/lazy/import.js +55 -0
  28. package/runtime/lazy/internal.js +39 -0
  29. package/runtime/lazy/jsx-dev-runtime.js +12 -0
  30. package/runtime/lazy/jsx-runtime.js +12 -0
  31. package/runtime/lazy/legacy-react-runtime.js +20 -0
  32. package/runtime/lazy/react-lepus.js +9 -0
  33. package/runtime/lazy/react.js +46 -0
  34. package/runtime/lazy/target.js +11 -0
  35. package/runtime/lepus/index.d.ts +4 -0
  36. package/runtime/lepus/index.js +43 -0
  37. package/runtime/lepus/jsx-dev-runtime/index.js +4 -0
  38. package/runtime/lepus/jsx-runtime/index.js +66 -0
  39. package/runtime/lib/backgroundSnapshot.d.ts +23 -0
  40. package/runtime/lib/backgroundSnapshot.js +348 -0
  41. package/runtime/lib/backgroundSnapshot.js.map +1 -0
  42. package/runtime/lib/compat/componentIs.d.ts +4 -0
  43. package/runtime/lib/compat/componentIs.js +20 -0
  44. package/runtime/lib/compat/componentIs.js.map +1 -0
  45. package/runtime/lib/compat/initData.d.ts +43 -0
  46. package/runtime/lib/compat/initData.js +93 -0
  47. package/runtime/lib/compat/initData.js.map +1 -0
  48. package/runtime/lib/compat/lynxComponent.d.ts +5 -0
  49. package/runtime/lib/compat/lynxComponent.js +71 -0
  50. package/runtime/lib/compat/lynxComponent.js.map +1 -0
  51. package/runtime/lib/debug/debug.d.ts +2 -0
  52. package/runtime/lib/debug/debug.js +9 -0
  53. package/runtime/lib/debug/debug.js.map +1 -0
  54. package/runtime/lib/debug/printSnapshot.d.ts +3 -0
  55. package/runtime/lib/debug/printSnapshot.js +21 -0
  56. package/runtime/lib/debug/printSnapshot.js.map +1 -0
  57. package/runtime/lib/debug/profile.d.ts +1 -0
  58. package/runtime/lib/debug/profile.js +51 -0
  59. package/runtime/lib/debug/profile.js.map +1 -0
  60. package/runtime/lib/document.d.ts +4 -0
  61. package/runtime/lib/document.js +49 -0
  62. package/runtime/lib/document.js.map +1 -0
  63. package/runtime/lib/gesture/processGesture.d.ts +4 -0
  64. package/runtime/lib/gesture/processGesture.js +48 -0
  65. package/runtime/lib/gesture/processGesture.js.map +1 -0
  66. package/runtime/lib/gesture/processGestureBagkround.d.ts +2 -0
  67. package/runtime/lib/gesture/processGestureBagkround.js +16 -0
  68. package/runtime/lib/gesture/processGestureBagkround.js.map +1 -0
  69. package/runtime/lib/gesture/types.d.ts +34 -0
  70. package/runtime/lib/gesture/types.js +13 -0
  71. package/runtime/lib/gesture/types.js.map +1 -0
  72. package/runtime/lib/hooks/react.d.ts +26 -0
  73. package/runtime/lib/hooks/react.js +35 -0
  74. package/runtime/lib/hooks/react.js.map +1 -0
  75. package/runtime/lib/hooks/useLynxGlobalEventListener.d.ts +29 -0
  76. package/runtime/lib/hooks/useLynxGlobalEventListener.js +53 -0
  77. package/runtime/lib/hooks/useLynxGlobalEventListener.js.map +1 -0
  78. package/runtime/lib/hydrate.d.ts +18 -0
  79. package/runtime/lib/hydrate.js +271 -0
  80. package/runtime/lib/hydrate.js.map +1 -0
  81. package/runtime/lib/index.d.ts +9 -0
  82. package/runtime/lib/index.js +46 -0
  83. package/runtime/lib/index.js.map +1 -0
  84. package/runtime/lib/internal.d.ts +26 -0
  85. package/runtime/lib/internal.js +41 -0
  86. package/runtime/lib/internal.js.map +1 -0
  87. package/runtime/lib/legacy-react-runtime/index.d.ts +7 -0
  88. package/runtime/lib/legacy-react-runtime/index.js +34 -0
  89. package/runtime/lib/legacy-react-runtime/index.js.map +1 -0
  90. package/runtime/lib/lifecycle/delayUnmount.d.ts +8 -0
  91. package/runtime/lib/lifecycle/delayUnmount.js +68 -0
  92. package/runtime/lib/lifecycle/delayUnmount.js.map +1 -0
  93. package/runtime/lib/lifecycle/destroy.d.ts +2 -0
  94. package/runtime/lib/lifecycle/destroy.js +21 -0
  95. package/runtime/lib/lifecycle/destroy.js.map +1 -0
  96. package/runtime/lib/lifecycle/pass.d.ts +3 -0
  97. package/runtime/lib/lifecycle/pass.js +12 -0
  98. package/runtime/lib/lifecycle/pass.js.map +1 -0
  99. package/runtime/lib/lifecycle/patchUpdate.d.ts +23 -0
  100. package/runtime/lib/lifecycle/patchUpdate.js +179 -0
  101. package/runtime/lib/lifecycle/patchUpdate.js.map +1 -0
  102. package/runtime/lib/lifecycle/reload.d.ts +3 -0
  103. package/runtime/lib/lifecycle/reload.js +63 -0
  104. package/runtime/lib/lifecycle/reload.js.map +1 -0
  105. package/runtime/lib/lifecycle/render.d.ts +2 -0
  106. package/runtime/lib/lifecycle/render.js +44 -0
  107. package/runtime/lib/lifecycle/render.js.map +1 -0
  108. package/runtime/lib/lifecycleConstant.d.ts +12 -0
  109. package/runtime/lib/lifecycleConstant.js +17 -0
  110. package/runtime/lib/lifecycleConstant.js.map +1 -0
  111. package/runtime/lib/list.d.ts +40 -0
  112. package/runtime/lib/list.js +305 -0
  113. package/runtime/lib/list.js.map +1 -0
  114. package/runtime/lib/lynx/calledByNative.d.ts +2 -0
  115. package/runtime/lib/lynx/calledByNative.js +113 -0
  116. package/runtime/lib/lynx/calledByNative.js.map +1 -0
  117. package/runtime/lib/lynx/component.d.ts +1 -0
  118. package/runtime/lib/lynx/component.js +69 -0
  119. package/runtime/lib/lynx/component.js.map +1 -0
  120. package/runtime/lib/lynx/dynamic-js.d.ts +2 -0
  121. package/runtime/lib/lynx/dynamic-js.js +31 -0
  122. package/runtime/lib/lynx/dynamic-js.js.map +1 -0
  123. package/runtime/lib/lynx/env.d.ts +1 -0
  124. package/runtime/lib/lynx/env.js +92 -0
  125. package/runtime/lib/lynx/env.js.map +1 -0
  126. package/runtime/lib/lynx/injectLepusMethods.d.ts +2 -0
  127. package/runtime/lib/lynx/injectLepusMethods.js +50 -0
  128. package/runtime/lib/lynx/injectLepusMethods.js.map +1 -0
  129. package/runtime/lib/lynx/lazy-bundle.d.ts +9 -0
  130. package/runtime/lib/lynx/lazy-bundle.js +119 -0
  131. package/runtime/lib/lynx/lazy-bundle.js.map +1 -0
  132. package/runtime/lib/lynx/performance.d.ts +29 -0
  133. package/runtime/lib/lynx/performance.js +100 -0
  134. package/runtime/lib/lynx/performance.js.map +1 -0
  135. package/runtime/lib/lynx/tt.d.ts +4 -0
  136. package/runtime/lib/lynx/tt.js +193 -0
  137. package/runtime/lib/lynx/tt.js.map +1 -0
  138. package/runtime/lib/lynx-api.d.ts +311 -0
  139. package/runtime/lib/lynx-api.js +116 -0
  140. package/runtime/lib/lynx-api.js.map +1 -0
  141. package/runtime/lib/lynx.d.ts +2 -0
  142. package/runtime/lib/lynx.js +91 -0
  143. package/runtime/lib/lynx.js.map +1 -0
  144. package/runtime/lib/opcodes.d.ts +2 -0
  145. package/runtime/lib/opcodes.js +59 -0
  146. package/runtime/lib/opcodes.js.map +1 -0
  147. package/runtime/lib/renderToOpcodes/constants.d.ts +17 -0
  148. package/runtime/lib/renderToOpcodes/constants.js +23 -0
  149. package/runtime/lib/renderToOpcodes/constants.js.map +1 -0
  150. package/runtime/lib/renderToOpcodes/index.d.ts +13 -0
  151. package/runtime/lib/renderToOpcodes/index.js +227 -0
  152. package/runtime/lib/renderToOpcodes/index.js.map +1 -0
  153. package/runtime/lib/root.d.ts +7 -0
  154. package/runtime/lib/root.js +17 -0
  155. package/runtime/lib/root.js.map +1 -0
  156. package/runtime/lib/snapshot/event.d.ts +3 -0
  157. package/runtime/lib/snapshot/event.js +24 -0
  158. package/runtime/lib/snapshot/event.js.map +1 -0
  159. package/runtime/lib/snapshot/gesture.d.ts +2 -0
  160. package/runtime/lib/snapshot/gesture.js +18 -0
  161. package/runtime/lib/snapshot/gesture.js.map +1 -0
  162. package/runtime/lib/snapshot/platformInfo.d.ts +4 -0
  163. package/runtime/lib/snapshot/platformInfo.js +35 -0
  164. package/runtime/lib/snapshot/platformInfo.js.map +1 -0
  165. package/runtime/lib/snapshot/ref.d.ts +10 -0
  166. package/runtime/lib/snapshot/ref.js +119 -0
  167. package/runtime/lib/snapshot/ref.js.map +1 -0
  168. package/runtime/lib/snapshot/spread.d.ts +5 -0
  169. package/runtime/lib/snapshot/spread.js +289 -0
  170. package/runtime/lib/snapshot/spread.js.map +1 -0
  171. package/runtime/lib/snapshot/workletEvent.d.ts +3 -0
  172. package/runtime/lib/snapshot/workletEvent.js +22 -0
  173. package/runtime/lib/snapshot/workletEvent.js.map +1 -0
  174. package/runtime/lib/snapshot/workletRef.d.ts +5 -0
  175. package/runtime/lib/snapshot/workletRef.js +52 -0
  176. package/runtime/lib/snapshot/workletRef.js.map +1 -0
  177. package/runtime/lib/snapshot.d.ts +81 -0
  178. package/runtime/lib/snapshot.js +477 -0
  179. package/runtime/lib/snapshot.js.map +1 -0
  180. package/runtime/lib/snapshotPatch.d.ts +14 -0
  181. package/runtime/lib/snapshotPatch.js +31 -0
  182. package/runtime/lib/snapshotPatch.js.map +1 -0
  183. package/runtime/lib/snapshotPatchApply.d.ts +2 -0
  184. package/runtime/lib/snapshotPatchApply.js +110 -0
  185. package/runtime/lib/snapshotPatchApply.js.map +1 -0
  186. package/runtime/lib/utils.d.ts +4 -0
  187. package/runtime/lib/utils.js +32 -0
  188. package/runtime/lib/utils.js.map +1 -0
  189. package/runtime/lib/worklet/ctx.d.ts +1 -0
  190. package/runtime/lib/worklet/ctx.js +17 -0
  191. package/runtime/lib/worklet/ctx.js.map +1 -0
  192. package/runtime/lib/worklet/execMap.d.ts +1 -0
  193. package/runtime/lib/worklet/execMap.js +42 -0
  194. package/runtime/lib/worklet/execMap.js.map +1 -0
  195. package/runtime/lib/worklet/functionality.d.ts +1 -0
  196. package/runtime/lib/worklet/functionality.js +11 -0
  197. package/runtime/lib/worklet/functionality.js.map +1 -0
  198. package/runtime/lib/worklet/hmr.d.ts +1 -0
  199. package/runtime/lib/worklet/hmr.js +21 -0
  200. package/runtime/lib/worklet/hmr.js.map +1 -0
  201. package/runtime/lib/worklet/indexMap.d.ts +8 -0
  202. package/runtime/lib/worklet/indexMap.js +17 -0
  203. package/runtime/lib/worklet/indexMap.js.map +1 -0
  204. package/runtime/lib/worklet/jsImpl.d.ts +11 -0
  205. package/runtime/lib/worklet/jsImpl.js +68 -0
  206. package/runtime/lib/worklet/jsImpl.js.map +1 -0
  207. package/runtime/lib/worklet/runWorklet.d.ts +14 -0
  208. package/runtime/lib/worklet/runWorklet.js +82 -0
  209. package/runtime/lib/worklet/runWorklet.js.map +1 -0
  210. package/runtime/lib/worklet/workletRef.d.ts +131 -0
  211. package/runtime/lib/worklet/workletRef.js +96 -0
  212. package/runtime/lib/worklet/workletRef.js.map +1 -0
  213. package/runtime/lib/worklet/workletRefPool.d.ts +2 -0
  214. package/runtime/lib/worklet/workletRefPool.js +22 -0
  215. package/runtime/lib/worklet/workletRefPool.js.map +1 -0
  216. package/runtime/src/backgroundSnapshot.ts +452 -0
  217. package/runtime/src/compat/componentIs.ts +30 -0
  218. package/runtime/src/compat/initData.ts +140 -0
  219. package/runtime/src/compat/lynxComponent.ts +80 -0
  220. package/runtime/src/debug/debug.ts +9 -0
  221. package/runtime/src/debug/printSnapshot.ts +28 -0
  222. package/runtime/src/debug/profile.ts +54 -0
  223. package/runtime/src/document.ts +53 -0
  224. package/runtime/src/gesture/processGesture.ts +77 -0
  225. package/runtime/src/gesture/processGestureBagkround.ts +15 -0
  226. package/runtime/src/gesture/types.ts +39 -0
  227. package/runtime/src/hooks/react.ts +62 -0
  228. package/runtime/src/hooks/useLynxGlobalEventListener.ts +59 -0
  229. package/runtime/src/hydrate.ts +364 -0
  230. package/runtime/src/index.ts +89 -0
  231. package/runtime/src/internal.ts +60 -0
  232. package/runtime/src/legacy-react-runtime/index.ts +40 -0
  233. package/runtime/src/lifecycle/delayUnmount.ts +77 -0
  234. package/runtime/src/lifecycle/destroy.ts +26 -0
  235. package/runtime/src/lifecycle/pass.ts +14 -0
  236. package/runtime/src/lifecycle/patchUpdate.ts +240 -0
  237. package/runtime/src/lifecycle/reload.ts +79 -0
  238. package/runtime/src/lifecycle/render.ts +46 -0
  239. package/runtime/src/lifecycleConstant.ts +16 -0
  240. package/runtime/src/list.ts +375 -0
  241. package/runtime/src/lynx/calledByNative.ts +132 -0
  242. package/runtime/src/lynx/component.ts +116 -0
  243. package/runtime/src/lynx/dynamic-js.ts +33 -0
  244. package/runtime/src/lynx/env.ts +110 -0
  245. package/runtime/src/lynx/injectLepusMethods.ts +53 -0
  246. package/runtime/src/lynx/lazy-bundle.ts +126 -0
  247. package/runtime/src/lynx/performance.ts +117 -0
  248. package/runtime/src/lynx/tt.ts +212 -0
  249. package/runtime/src/lynx-api.ts +374 -0
  250. package/runtime/src/lynx.ts +105 -0
  251. package/runtime/src/opcodes.ts +64 -0
  252. package/runtime/src/renderToOpcodes/constants.ts +24 -0
  253. package/runtime/src/renderToOpcodes/index.ts +301 -0
  254. package/runtime/src/root.ts +19 -0
  255. package/runtime/src/snapshot/event.ts +33 -0
  256. package/runtime/src/snapshot/gesture.ts +25 -0
  257. package/runtime/src/snapshot/platformInfo.ts +48 -0
  258. package/runtime/src/snapshot/ref.ts +151 -0
  259. package/runtime/src/snapshot/spread.ts +287 -0
  260. package/runtime/src/snapshot/workletEvent.ts +33 -0
  261. package/runtime/src/snapshot/workletRef.ts +63 -0
  262. package/runtime/src/snapshot.ts +576 -0
  263. package/runtime/src/snapshotPatch.ts +56 -0
  264. package/runtime/src/snapshotPatchApply.ts +117 -0
  265. package/runtime/src/utils.ts +35 -0
  266. package/runtime/src/worklet/ctx.ts +22 -0
  267. package/runtime/src/worklet/execMap.ts +50 -0
  268. package/runtime/src/worklet/functionality.ts +12 -0
  269. package/runtime/src/worklet/hmr.ts +26 -0
  270. package/runtime/src/worklet/indexMap.ts +20 -0
  271. package/runtime/src/worklet/jsImpl.ts +86 -0
  272. package/runtime/src/worklet/runWorklet.ts +88 -0
  273. package/runtime/src/worklet/workletRef.ts +229 -0
  274. package/runtime/src/worklet/workletRefPool.ts +25 -0
  275. package/transform/cjs/main.cjs +6 -0
  276. package/transform/cjs/main.d.cts +3 -0
  277. package/transform/cjs/package.json +3 -0
  278. package/transform/dist/wasm.cjs +8478 -0
  279. package/transform/index.d.ts +187 -0
  280. package/transform/main.js +15 -0
  281. package/types/react.d.ts +147 -0
  282. package/types/react.docs.d.ts +74 -0
  283. package/worklet-runtime/dist/dev.js +414 -0
  284. package/worklet-runtime/dist/dev.js.map +8 -0
  285. package/worklet-runtime/dist/main.js +414 -0
  286. package/worklet-runtime/dist/main.js.map +8 -0
  287. package/worklet-runtime/lib/api/element.d.ts +14 -0
  288. package/worklet-runtime/lib/api/element.js +71 -0
  289. package/worklet-runtime/lib/api/element.js.map +1 -0
  290. package/worklet-runtime/lib/api/lepusQuerySelector.d.ts +3 -0
  291. package/worklet-runtime/lib/api/lepusQuerySelector.js +23 -0
  292. package/worklet-runtime/lib/api/lepusQuerySelector.js.map +1 -0
  293. package/worklet-runtime/lib/api/lynxApi.d.ts +2 -0
  294. package/worklet-runtime/lib/api/lynxApi.js +35 -0
  295. package/worklet-runtime/lib/api/lynxApi.js.map +1 -0
  296. package/worklet-runtime/lib/bindings/bindings.d.ts +14 -0
  297. package/worklet-runtime/lib/bindings/bindings.js +61 -0
  298. package/worklet-runtime/lib/bindings/bindings.js.map +1 -0
  299. package/worklet-runtime/lib/bindings/events.d.ts +7 -0
  300. package/worklet-runtime/lib/bindings/events.js +9 -0
  301. package/worklet-runtime/lib/bindings/events.js.map +1 -0
  302. package/worklet-runtime/lib/bindings/index.d.ts +4 -0
  303. package/worklet-runtime/lib/bindings/index.js +7 -0
  304. package/worklet-runtime/lib/bindings/index.js.map +1 -0
  305. package/worklet-runtime/lib/bindings/loadRuntime.d.ts +8 -0
  306. package/worklet-runtime/lib/bindings/loadRuntime.js +25 -0
  307. package/worklet-runtime/lib/bindings/loadRuntime.js.map +1 -0
  308. package/worklet-runtime/lib/bindings/types.d.ts +35 -0
  309. package/worklet-runtime/lib/bindings/types.js +2 -0
  310. package/worklet-runtime/lib/bindings/types.js.map +1 -0
  311. package/worklet-runtime/lib/delayWorkletEvent.d.ts +11 -0
  312. package/worklet-runtime/lib/delayWorkletEvent.js +49 -0
  313. package/worklet-runtime/lib/delayWorkletEvent.js.map +1 -0
  314. package/worklet-runtime/lib/global.d.ts +15 -0
  315. package/worklet-runtime/lib/global.js +2 -0
  316. package/worklet-runtime/lib/global.js.map +1 -0
  317. package/worklet-runtime/lib/index.d.ts +1 -0
  318. package/worklet-runtime/lib/index.js +12 -0
  319. package/worklet-runtime/lib/index.js.map +1 -0
  320. package/worklet-runtime/lib/jsFunctionLifecycle.d.ts +18 -0
  321. package/worklet-runtime/lib/jsFunctionLifecycle.js +55 -0
  322. package/worklet-runtime/lib/jsFunctionLifecycle.js.map +1 -0
  323. package/worklet-runtime/lib/listeners.d.ts +2 -0
  324. package/worklet-runtime/lib/listeners.js +17 -0
  325. package/worklet-runtime/lib/listeners.js.map +1 -0
  326. package/worklet-runtime/lib/utils/profile.d.ts +1 -0
  327. package/worklet-runtime/lib/utils/profile.js +20 -0
  328. package/worklet-runtime/lib/utils/profile.js.map +1 -0
  329. package/worklet-runtime/lib/utils/version.d.ts +1 -0
  330. package/worklet-runtime/lib/utils/version.js +10 -0
  331. package/worklet-runtime/lib/utils/version.js.map +1 -0
  332. package/worklet-runtime/lib/workletRef.d.ts +12 -0
  333. package/worklet-runtime/lib/workletRef.js +50 -0
  334. package/worklet-runtime/lib/workletRef.js.map +1 -0
  335. package/worklet-runtime/lib/workletRuntime.d.ts +2 -0
  336. package/worklet-runtime/lib/workletRuntime.js +128 -0
  337. package/worklet-runtime/lib/workletRuntime.js.map +1 -0
@@ -0,0 +1,227 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ // modified from preact-render-to-string@6.0.3
5
+ // @ts-nocheck
6
+ import { Fragment, h, options } from 'preact';
7
+ import { CHILDREN, COMMIT, COMPONENT, DIFF, DIFFED, DIRTY, NEXT_STATE, PARENT, RENDER, SKIP_EFFECTS, VNODE, } from './constants.js';
8
+ /** @typedef {import('preact').VNode} VNode */
9
+ const EMPTY_ARR = [];
10
+ const isArray = /* @__PURE__ */ Array.isArray;
11
+ const assign = /* @__PURE__ */ Object.assign;
12
+ // Global state for the current render pass
13
+ let beforeDiff, afterDiff, renderHook, ummountHook;
14
+ /**
15
+ * Render Preact JSX + Components to an HTML string.
16
+ * @param {VNode} vnode JSX Element / VNode to render
17
+ * @param {object} [context] Initial root context object
18
+ */
19
+ export function renderToString(vnode, context) {
20
+ // Performance optimization: `renderToString` is synchronous and we
21
+ // therefore don't execute any effects. To do that we pass an empty
22
+ // array to `options._commit` (`__c`). But we can go one step further
23
+ // and avoid a lot of dirty checks and allocations by setting
24
+ // `options._skipEffects` (`__s`) too.
25
+ const previousSkipEffects = options[SKIP_EFFECTS];
26
+ options[SKIP_EFFECTS] = true;
27
+ // store options hooks once before each synchronous render call
28
+ beforeDiff = options[DIFF];
29
+ afterDiff = options[DIFFED];
30
+ renderHook = options[RENDER];
31
+ ummountHook = options.unmount;
32
+ const parent = h(Fragment, null);
33
+ parent[CHILDREN] = [vnode];
34
+ const opcodes = [];
35
+ try {
36
+ _renderToString(vnode, context || EMPTY_OBJ, false, undefined, parent, opcodes);
37
+ }
38
+ finally {
39
+ // options._commit, we don't schedule any effects in this library right now,
40
+ // so we can pass an empty queue to this hook.
41
+ if (options[COMMIT])
42
+ options[COMMIT](vnode, EMPTY_ARR);
43
+ options[SKIP_EFFECTS] = previousSkipEffects;
44
+ EMPTY_ARR.length = 0;
45
+ }
46
+ return opcodes;
47
+ }
48
+ // Installed as setState/forceUpdate for function components
49
+ function markAsDirty() {
50
+ this.__d = true;
51
+ }
52
+ const EMPTY_OBJ = {};
53
+ export const __OpBegin = 0;
54
+ export const __OpEnd = 1;
55
+ export const __OpAttr = 2;
56
+ export const __OpText = 3;
57
+ /**
58
+ * @param {VNode} vnode
59
+ * @param {Record<string, unknown>} context
60
+ */
61
+ function renderClassComponent(vnode, context) {
62
+ let type = /** @type {import("preact").ComponentClass<typeof vnode.props>} */ (vnode.type);
63
+ let c = new type(vnode.props, context);
64
+ vnode[COMPONENT] = c;
65
+ c[VNODE] = vnode;
66
+ c.props = vnode.props;
67
+ c.context = context;
68
+ // turn off stateful re-rendering:
69
+ c[DIRTY] = true;
70
+ if (c.state == null)
71
+ c.state = EMPTY_OBJ;
72
+ if (c[NEXT_STATE] == null) {
73
+ c[NEXT_STATE] = c.state;
74
+ }
75
+ if (type.getDerivedStateFromProps) {
76
+ c.state = assign({}, c.state, type.getDerivedStateFromProps(c.props, c.state));
77
+ }
78
+ if (renderHook)
79
+ renderHook(vnode);
80
+ return c.render(c.props, c.state, context);
81
+ }
82
+ /**
83
+ * Recursively render VNodes to HTML.
84
+ * @param {VNode|any} vnode
85
+ * @param {any} context
86
+ * @param {boolean} isSvgMode
87
+ * @param {any} selectValue
88
+ * @param {VNode} parent
89
+ * @param opcodes
90
+ */
91
+ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes) {
92
+ // Ignore non-rendered VNodes/values
93
+ if (vnode == null || vnode === true || vnode === false || vnode === '') {
94
+ return;
95
+ }
96
+ // Text VNodes: escape as HTML
97
+ if (typeof vnode !== 'object') {
98
+ if (typeof vnode === 'function')
99
+ return;
100
+ opcodes.push(__OpText, vnode + '');
101
+ return;
102
+ }
103
+ // Recurse into children / Arrays
104
+ if (isArray(vnode)) {
105
+ parent[CHILDREN] = vnode;
106
+ for (let i = 0; i < vnode.length; i++) {
107
+ let child = vnode[i];
108
+ if (child == null || typeof child === 'boolean')
109
+ continue;
110
+ _renderToString(child, context, isSvgMode, selectValue, parent, opcodes);
111
+ }
112
+ return;
113
+ }
114
+ // VNodes have {constructor:undefined} to prevent JSON injection:
115
+ // if (vnode.constructor !== undefined) return;
116
+ vnode[PARENT] = parent;
117
+ if (beforeDiff)
118
+ beforeDiff(vnode);
119
+ let type = vnode.type, props = vnode.props, cctx = context, contextType, rendered, component;
120
+ // Invoke rendering on Components
121
+ if (typeof type === 'function') {
122
+ if (type === Fragment) {
123
+ rendered = props.children;
124
+ }
125
+ else {
126
+ contextType = type.contextType;
127
+ if (contextType != null) {
128
+ let provider = context[contextType.__c];
129
+ cctx = provider ? provider.props.value : contextType.__;
130
+ }
131
+ if (type.prototype && typeof type.prototype.render === 'function') {
132
+ rendered = /**#__NOINLINE__**/ renderClassComponent(vnode, cctx);
133
+ component = vnode[COMPONENT];
134
+ }
135
+ else {
136
+ component = {
137
+ __v: vnode,
138
+ props,
139
+ context: cctx,
140
+ // silently drop state updates
141
+ setState: markAsDirty,
142
+ forceUpdate: markAsDirty,
143
+ __d: true,
144
+ // hooks
145
+ __h: [],
146
+ };
147
+ vnode[COMPONENT] = component;
148
+ component.constructor = type;
149
+ component.render = doRender;
150
+ // If a hook invokes setState() to invalidate the component during rendering,
151
+ // re-render it up to 25 times to allow "settling" of memoized states.
152
+ // Note:
153
+ // This will need to be updated for Preact 11 to use internal.flags rather than component._dirty:
154
+ // https://github.com/preactjs/preact/blob/d4ca6fdb19bc715e49fd144e69f7296b2f4daa40/src/diff/component.js#L35-L44
155
+ let count = 0;
156
+ while (component[DIRTY] && count++ < 25) {
157
+ component[DIRTY] = false;
158
+ if (renderHook)
159
+ renderHook(vnode);
160
+ rendered = component.render(props, component.state, cctx);
161
+ }
162
+ component[DIRTY] = true;
163
+ }
164
+ if (component.getChildContext != null) {
165
+ context = assign({}, context, component.getChildContext());
166
+ }
167
+ }
168
+ // When a component returns a Fragment node we flatten it in core, so we
169
+ // need to mirror that logic here too
170
+ let isTopLevelFragment = rendered != null && rendered.type === Fragment
171
+ && rendered.key == null;
172
+ rendered = isTopLevelFragment ? rendered.props.children : rendered;
173
+ // Recurse into children before invoking the after-diff hook
174
+ _renderToString(rendered, context, isSvgMode, selectValue, vnode, opcodes);
175
+ if (afterDiff)
176
+ afterDiff(vnode);
177
+ vnode[PARENT] = undefined;
178
+ if (ummountHook)
179
+ ummountHook(vnode);
180
+ return;
181
+ }
182
+ let children;
183
+ opcodes.push(__OpBegin, vnode);
184
+ for (let name in props) {
185
+ let v = props[name];
186
+ switch (name) {
187
+ case 'children':
188
+ children = v;
189
+ continue;
190
+ // VDOM-specific props
191
+ /* c8 ignore next 5 */
192
+ case 'key':
193
+ case 'ref':
194
+ case '__self':
195
+ case '__source':
196
+ continue;
197
+ default: { }
198
+ }
199
+ // write this attribute to the buffer
200
+ if (v != null && v !== false && typeof v !== 'function') {
201
+ opcodes.push(__OpAttr, name, v);
202
+ }
203
+ }
204
+ if (typeof children === 'string') {
205
+ // single text child
206
+ opcodes.push(__OpText, children);
207
+ }
208
+ else if (children != null && children !== false && children !== true) {
209
+ // recurse into this element VNode's children
210
+ _renderToString(children, context, false, selectValue, vnode, opcodes);
211
+ }
212
+ if (afterDiff)
213
+ afterDiff(vnode);
214
+ vnode[PARENT] = undefined;
215
+ if (ummountHook)
216
+ ummountHook(vnode);
217
+ opcodes.push(__OpEnd);
218
+ return;
219
+ }
220
+ /** The `.render()` method for a PFC backing instance. */
221
+ function doRender(props, state, context) {
222
+ return this.constructor(props, context);
223
+ }
224
+ export default renderToString;
225
+ export const render = renderToString;
226
+ export const renderToStaticMarkup = renderToString;
227
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderToOpcodes/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
2
+ import { SnapshotInstance } from './snapshot.js';
3
+ declare let __root: (SnapshotInstance | BackgroundSnapshotInstance) & {
4
+ __jsx?: React.ReactNode;
5
+ };
6
+ declare function setRoot(root: typeof __root): void;
7
+ export { __root, setRoot };
@@ -0,0 +1,17 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
5
+ import { SnapshotInstance } from './snapshot.js';
6
+ let __root;
7
+ function setRoot(root) {
8
+ __root = root;
9
+ }
10
+ if (__LEPUS__) {
11
+ setRoot(new SnapshotInstance('root'));
12
+ }
13
+ else if (__JS__) {
14
+ setRoot(new BackgroundSnapshotInstance('root'));
15
+ }
16
+ export { __root, setRoot };
17
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,IAAI,MAAqF,CAAC;AAE1F,SAAS,OAAO,CAAC,IAAmB;IAClC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,IAAI,SAAS,EAAE,CAAC;IACd,OAAO,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,CAAC;KAAM,IAAI,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ declare function updateEvent(snapshot: SnapshotInstance, expIndex: number, _oldValue: any, elementIndex: number, eventType: string, eventName: string, spreadKey: string): void;
3
+ export { updateEvent };
@@ -0,0 +1,24 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import { SnapshotInstance } from '../snapshot.js';
5
+ function updateEvent(snapshot, expIndex, _oldValue, elementIndex, eventType, eventName, spreadKey) {
6
+ const value = snapshot.__values[expIndex];
7
+ let event;
8
+ if (!value) {
9
+ event = undefined;
10
+ }
11
+ else if (typeof value === 'string') {
12
+ event = value;
13
+ }
14
+ else {
15
+ event = `${snapshot.__id}:${expIndex}:${spreadKey}`;
16
+ }
17
+ // todo: reuseId?
18
+ snapshot.__values[expIndex] = event;
19
+ if (snapshot.__elements) {
20
+ __AddEvent(snapshot.__elements[elementIndex], eventType, eventName, event);
21
+ }
22
+ }
23
+ export { updateEvent };
24
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/snapshot/event.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,SAAS,WAAW,CAClB,QAA0B,EAC1B,QAAgB,EAChB,SAAc,EACd,YAAoB,EACpB,SAAiB,EACjB,SAAiB,EACjB,SAAiB;IAEjB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC;IACV,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;IACtD,CAAC;IAED,iBAAiB;IAEjB,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IACrC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ export declare function updateGesture(snapshot: SnapshotInstance, expIndex: number, _oldValue: any, elementIndex: number, workletType: string): void;
@@ -0,0 +1,18 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ import { processGesture } from '../gesture/processGesture.js';
3
+ export function updateGesture(snapshot, expIndex, _oldValue, elementIndex, workletType) {
4
+ if (!snapshot.__elements) {
5
+ return;
6
+ }
7
+ if (__PROFILE__) {
8
+ console.profile('updateGesture');
9
+ }
10
+ const value = snapshot.__values[expIndex];
11
+ if (workletType === 'main-thread') {
12
+ processGesture(snapshot.__elements[elementIndex], value);
13
+ }
14
+ if (__PROFILE__) {
15
+ console.profileEnd();
16
+ }
17
+ }
18
+ //# sourceMappingURL=gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../src/snapshot/gesture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,UAAU,aAAa,CAC3B,QAA0B,EAC1B,QAAgB,EAChB,SAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QAClC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAE,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ declare const platformInfoAttributes: Set<string>;
3
+ declare function updateListItemPlatformInfo(ctx: SnapshotInstance, index: number, oldValue: any, elementIndex: number): void;
4
+ export { updateListItemPlatformInfo, platformInfoAttributes };
@@ -0,0 +1,35 @@
1
+ import { __pendingListUpdates, ListUpdateInfoRecording } from '../list.js';
2
+ import { SnapshotInstance } from '../snapshot.js';
3
+ const platformInfoVirtualAttributes = /* @__PURE__ */ new Set(['reuse-identifier']);
4
+ const platformInfoAttributes = /* @__PURE__ */ new Set([
5
+ 'reuse-identifier',
6
+ 'full-span',
7
+ 'item-key',
8
+ 'sticky-top',
9
+ 'sticky-bottom',
10
+ 'estimated-height',
11
+ 'estimated-height-px',
12
+ 'estimated-main-axis-size-px',
13
+ ]);
14
+ function updateListItemPlatformInfo(ctx, index, oldValue, elementIndex) {
15
+ const newValue = ctx.__listItemPlatformInfo = ctx.__values[index];
16
+ // @ts-ignore
17
+ const list = ctx.__parent;
18
+ if (list?.__snapshot_def.isListHolder) {
19
+ (__pendingListUpdates.values[list.__id] ??= new ListUpdateInfoRecording(list)).onSetAttribute(ctx, newValue, oldValue);
20
+ }
21
+ // In this updater, unlike `updateSpread`, the shape of the value is guaranteed to be an fixed object.
22
+ // No adding / removing keys.
23
+ if (ctx.__elements) {
24
+ const e = ctx.__elements[elementIndex];
25
+ const value = ctx.__values[index];
26
+ for (const k in value) {
27
+ if (platformInfoVirtualAttributes.has(k)) {
28
+ continue;
29
+ }
30
+ __SetAttribute(e, k, value[k]);
31
+ }
32
+ }
33
+ }
34
+ export { updateListItemPlatformInfo, platformInfoAttributes };
35
+ //# sourceMappingURL=platformInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platformInfo.js","sourceRoot":"","sources":["../../src/snapshot/platformInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,6BAA6B,GAAgB,eAAe,CAAC,IAAI,GAAG,CAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACzG,MAAM,sBAAsB,GAAgB,eAAe,CAAC,IAAI,GAAG,CAAS;IAC1E,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,qBAAqB;IACrB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,SAAS,0BAA0B,CACjC,GAAqB,EACrB,KAAa,EACb,QAAa,EACb,YAAoB;IAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC,QAAS,CAAC,KAAK,CAAC,CAAC;IAEnE,aAAa;IACb,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC1B,IAAI,IAAI,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC;QACtC,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAC3F,GAAG,EACH,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,sGAAsG;IACtG,6BAA6B;IAC7B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,YAAY,CAAE,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAS,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ declare let globalRefsToRemove: Map</* commitId */ number, Map</* sign */ string, /* ref */ any>>;
3
+ declare let globalRefsToSet: Map</* commitId */ number, Record<string, number>>;
4
+ declare function unref(snapshot: SnapshotInstance, recursive: boolean): void;
5
+ declare function updateBackgroundRefs(commitId: number): void;
6
+ declare function updateRef(snapshot: SnapshotInstance, expIndex: number, oldValue: any, elementIndex: number, spreadKey: string): void;
7
+ declare function takeGlobalRefPatchMap(): Record<string, number | null>;
8
+ declare function transformRef(ref: unknown): Function | (object & Record<'current', unknown>) | null | undefined;
9
+ declare function markRefToRemove(sign: string, ref: unknown): void;
10
+ export { updateRef, takeGlobalRefPatchMap, updateBackgroundRefs, unref, transformRef, globalRefsToRemove, globalRefsToSet, markRefToRemove, };
@@ -0,0 +1,119 @@
1
+ import { nextCommitTaskId } from '../lifecycle/patchUpdate.js';
2
+ import { SnapshotInstance, backgroundSnapshotInstanceManager } from '../snapshot.js';
3
+ import { workletUnRef } from './workletRef.js';
4
+ let globalRefPatch = {};
5
+ let globalRefsToRemove = /* @__PURE__ */ new Map();
6
+ let globalRefsToSet = /* @__PURE__ */ new Map();
7
+ let nextRefId = 1;
8
+ function unref(snapshot, recursive) {
9
+ snapshot.__ref_set?.forEach(v => {
10
+ globalRefPatch[v] = null;
11
+ });
12
+ snapshot.__ref_set?.clear();
13
+ snapshot.__worklet_ref_set?.forEach(v => {
14
+ if (v) {
15
+ workletUnRef(v);
16
+ }
17
+ });
18
+ snapshot.__worklet_ref_set?.clear();
19
+ if (recursive) {
20
+ snapshot.childNodes.forEach(it => {
21
+ unref(it, recursive);
22
+ });
23
+ }
24
+ }
25
+ function applyRef(ref, value) {
26
+ // TODO: ref: exceptions thrown in user functions should be able to be caught by an Error Boundary
27
+ if (typeof ref == 'function') {
28
+ let hasRefUnmount = typeof ref._unmount == 'function';
29
+ if (hasRefUnmount) {
30
+ // @ts-ignore TS doesn't like moving narrowing checks into variables
31
+ ref._unmount();
32
+ }
33
+ if (!hasRefUnmount || value != null) {
34
+ // Store the cleanup function on the function
35
+ // instance object itself to avoid shape
36
+ // transitioning vnode
37
+ ref._unmount = ref(value);
38
+ }
39
+ }
40
+ else
41
+ ref.current = value;
42
+ }
43
+ function updateBackgroundRefs(commitId) {
44
+ const oldRefMap = globalRefsToRemove.get(commitId);
45
+ if (oldRefMap) {
46
+ globalRefsToRemove.delete(commitId);
47
+ for (let ref of oldRefMap.values()) {
48
+ applyRef(ref, null);
49
+ }
50
+ }
51
+ const newRefMap = globalRefsToSet.get(commitId);
52
+ if (newRefMap) {
53
+ globalRefsToSet.delete(commitId);
54
+ for (const sign in newRefMap) {
55
+ const ref = backgroundSnapshotInstanceManager.getValueBySign(sign);
56
+ if (ref) {
57
+ // TODO: ref: support __REF_FIRE_IMMEDIATELY__
58
+ const v = newRefMap[sign]
59
+ && lynx.createSelectorQuery().selectUniqueID(newRefMap[sign]);
60
+ applyRef(ref, v);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ function updateRef(snapshot, expIndex, oldValue, elementIndex, spreadKey) {
66
+ const value = snapshot.__values[expIndex];
67
+ let ref;
68
+ if (!value) {
69
+ ref = undefined;
70
+ }
71
+ else if (typeof value === 'string') {
72
+ ref = value;
73
+ }
74
+ else {
75
+ ref = `${snapshot.__id}:${expIndex}:${spreadKey}`;
76
+ }
77
+ snapshot.__values[expIndex] = ref;
78
+ if (snapshot.__elements && ref) {
79
+ __SetAttribute(snapshot.__elements[elementIndex], 'has-react-ref', true);
80
+ const uid = __GetElementUniqueID(snapshot.__elements[elementIndex]);
81
+ globalRefPatch[ref] = uid;
82
+ snapshot.__ref_set ??= new Set();
83
+ snapshot.__ref_set.add(ref);
84
+ }
85
+ if (oldValue !== ref) {
86
+ snapshot.__ref_set?.delete(oldValue);
87
+ }
88
+ }
89
+ function takeGlobalRefPatchMap() {
90
+ const patch = globalRefPatch;
91
+ globalRefPatch = {};
92
+ return patch;
93
+ }
94
+ function transformRef(ref) {
95
+ if (ref === undefined || ref === null) {
96
+ return ref;
97
+ }
98
+ if (typeof ref === 'function' || (typeof ref === 'object' && 'current' in ref)) {
99
+ if ('__ref' in ref) {
100
+ return ref;
101
+ }
102
+ return Object.defineProperty(ref, '__ref', { value: nextRefId++ });
103
+ }
104
+ throw new Error(`Elements' "ref" property should be a function, or an object created `
105
+ + `by createRef(), but got [${typeof ref}] instead`);
106
+ }
107
+ function markRefToRemove(sign, ref) {
108
+ if (!ref) {
109
+ return;
110
+ }
111
+ let oldRefs = globalRefsToRemove.get(nextCommitTaskId);
112
+ if (!oldRefs) {
113
+ oldRefs = new Map();
114
+ globalRefsToRemove.set(nextCommitTaskId, oldRefs);
115
+ }
116
+ oldRefs.set(sign, ref);
117
+ }
118
+ export { updateRef, takeGlobalRefPatchMap, updateBackgroundRefs, unref, transformRef, globalRefsToRemove, globalRefsToSet, markRefToRemove, };
119
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../src/snapshot/ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { SnapshotInstance } from '../snapshot.js';
2
+ import { BackgroundSnapshotInstance } from '../backgroundSnapshot.js';
3
+ declare function updateSpread(snapshot: SnapshotInstance, index: number, oldValue: any, elementIndex: number): void;
4
+ declare function transformSpread(snapshot: BackgroundSnapshotInstance | SnapshotInstance, index: number, spread: Record<string, unknown>): Record<string, unknown>;
5
+ export { updateSpread, transformSpread };