palistor 0.0.24

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 (431) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +947 -0
  3. package/dist/index.d.ts +54 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +58 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/react/createTrackingProxy.d.ts +55 -0
  8. package/dist/react/createTrackingProxy.d.ts.map +1 -0
  9. package/dist/react/createTrackingProxy.js +149 -0
  10. package/dist/react/createTrackingProxy.js.map +1 -0
  11. package/dist/react/useForm.d.ts +108 -0
  12. package/dist/react/useForm.d.ts.map +1 -0
  13. package/dist/react/useForm.js +180 -0
  14. package/dist/react/useForm.js.map +1 -0
  15. package/dist/react/useNotifier.d.ts +35 -0
  16. package/dist/react/useNotifier.d.ts.map +1 -0
  17. package/dist/react/useNotifier.js +41 -0
  18. package/dist/react/useNotifier.js.map +1 -0
  19. package/dist/react/usePersist.d.ts +45 -0
  20. package/dist/react/usePersist.d.ts.map +1 -0
  21. package/dist/react/usePersist.js +60 -0
  22. package/dist/react/usePersist.js.map +1 -0
  23. package/dist/react/useStoreContext.d.ts +42 -0
  24. package/dist/react/useStoreContext.d.ts.map +1 -0
  25. package/dist/react/useStoreContext.js +46 -0
  26. package/dist/react/useStoreContext.js.map +1 -0
  27. package/dist/react/useTranslator.d.ts +37 -0
  28. package/dist/react/useTranslator.d.ts.map +1 -0
  29. package/dist/react/useTranslator.js +43 -0
  30. package/dist/react/useTranslator.js.map +1 -0
  31. package/dist/store/applyPatch/applyPatch.d.ts +17 -0
  32. package/dist/store/applyPatch/applyPatch.d.ts.map +1 -0
  33. package/dist/store/applyPatch/applyPatch.js +44 -0
  34. package/dist/store/applyPatch/applyPatch.js.map +1 -0
  35. package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts +52 -0
  36. package/dist/store/buildProxy/buildEntityProjectionProxy.d.ts.map +1 -0
  37. package/dist/store/buildProxy/buildEntityProjectionProxy.js +321 -0
  38. package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -0
  39. package/dist/store/buildProxy/buildListProxy.d.ts +33 -0
  40. package/dist/store/buildProxy/buildListProxy.d.ts.map +1 -0
  41. package/dist/store/buildProxy/buildListProxy.js +306 -0
  42. package/dist/store/buildProxy/buildListProxy.js.map +1 -0
  43. package/dist/store/buildProxy/buildProxy.d.ts +41 -0
  44. package/dist/store/buildProxy/buildProxy.d.ts.map +1 -0
  45. package/dist/store/buildProxy/buildProxy.js +380 -0
  46. package/dist/store/buildProxy/buildProxy.js.map +1 -0
  47. package/dist/store/buildProxy/computeProxyKeys.d.ts +15 -0
  48. package/dist/store/buildProxy/computeProxyKeys.d.ts.map +1 -0
  49. package/dist/store/buildProxy/computeProxyKeys.js +28 -0
  50. package/dist/store/buildProxy/computeProxyKeys.js.map +1 -0
  51. package/dist/store/buildProxy/handleLazyResolve.d.ts +10 -0
  52. package/dist/store/buildProxy/handleLazyResolve.d.ts.map +1 -0
  53. package/dist/store/buildProxy/handleLazyResolve.js +26 -0
  54. package/dist/store/buildProxy/handleLazyResolve.js.map +1 -0
  55. package/dist/store/buildProxy/initProxyCaches.d.ts +16 -0
  56. package/dist/store/buildProxy/initProxyCaches.d.ts.map +1 -0
  57. package/dist/store/buildProxy/initProxyCaches.js +17 -0
  58. package/dist/store/buildProxy/initProxyCaches.js.map +1 -0
  59. package/dist/store/compute/computeFieldState.d.ts +10 -0
  60. package/dist/store/compute/computeFieldState.d.ts.map +1 -0
  61. package/dist/store/compute/computeFieldState.js +53 -0
  62. package/dist/store/compute/computeFieldState.js.map +1 -0
  63. package/dist/store/compute/fieldStateChanged.d.ts +6 -0
  64. package/dist/store/compute/fieldStateChanged.d.ts.map +1 -0
  65. package/dist/store/compute/fieldStateChanged.js +20 -0
  66. package/dist/store/compute/fieldStateChanged.js.map +1 -0
  67. package/dist/store/compute/index.d.ts +7 -0
  68. package/dist/store/compute/index.d.ts.map +1 -0
  69. package/dist/store/compute/index.js +6 -0
  70. package/dist/store/compute/index.js.map +1 -0
  71. package/dist/store/compute/isEmpty.d.ts +6 -0
  72. package/dist/store/compute/isEmpty.d.ts.map +1 -0
  73. package/dist/store/compute/isEmpty.js +14 -0
  74. package/dist/store/compute/isEmpty.js.map +1 -0
  75. package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +11 -0
  76. package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts.map +1 -0
  77. package/dist/store/compute/recompute/collectGroupComputeNodes.js +26 -0
  78. package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -0
  79. package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts +11 -0
  80. package/dist/store/compute/recompute/collectGroupLeafNodes.d.ts.map +1 -0
  81. package/dist/store/compute/recompute/collectGroupLeafNodes.js +26 -0
  82. package/dist/store/compute/recompute/collectGroupLeafNodes.js.map +1 -0
  83. package/dist/store/compute/recompute/index.d.ts +7 -0
  84. package/dist/store/compute/recompute/index.d.ts.map +1 -0
  85. package/dist/store/compute/recompute/index.js +6 -0
  86. package/dist/store/compute/recompute/index.js.map +1 -0
  87. package/dist/store/compute/recompute/recomputeAndNotify.d.ts +8 -0
  88. package/dist/store/compute/recompute/recomputeAndNotify.d.ts.map +1 -0
  89. package/dist/store/compute/recompute/recomputeAndNotify.js +13 -0
  90. package/dist/store/compute/recompute/recomputeAndNotify.js.map +1 -0
  91. package/dist/store/compute/recompute/recomputeLeaves.d.ts +23 -0
  92. package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -0
  93. package/dist/store/compute/recompute/recomputeLeaves.js +77 -0
  94. package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -0
  95. package/dist/store/compute/recompute/recomputeTargeted.d.ts +14 -0
  96. package/dist/store/compute/recompute/recomputeTargeted.d.ts.map +1 -0
  97. package/dist/store/compute/recompute/recomputeTargeted.js +50 -0
  98. package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -0
  99. package/dist/store/compute/recompute/topologicalSortComputed.d.ts +16 -0
  100. package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -0
  101. package/dist/store/compute/recompute/topologicalSortComputed.js +60 -0
  102. package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -0
  103. package/dist/store/compute/recompute/types.d.ts +24 -0
  104. package/dist/store/compute/recompute/types.d.ts.map +1 -0
  105. package/dist/store/compute/recompute/types.js +2 -0
  106. package/dist/store/compute/recompute/types.js.map +1 -0
  107. package/dist/store/compute/resolveFlag.d.ts +7 -0
  108. package/dist/store/compute/resolveFlag.d.ts.map +1 -0
  109. package/dist/store/compute/resolveFlag.js +12 -0
  110. package/dist/store/compute/resolveFlag.js.map +1 -0
  111. package/dist/store/compute/resolveString.d.ts +11 -0
  112. package/dist/store/compute/resolveString.d.ts.map +1 -0
  113. package/dist/store/compute/resolveString.js +18 -0
  114. package/dist/store/compute/resolveString.js.map +1 -0
  115. package/dist/store/compute/types.d.ts +37 -0
  116. package/dist/store/compute/types.d.ts.map +1 -0
  117. package/dist/store/compute/types.js +2 -0
  118. package/dist/store/compute/types.js.map +1 -0
  119. package/dist/store/constants.d.ts +83 -0
  120. package/dist/store/constants.d.ts.map +1 -0
  121. package/dist/store/constants.js +145 -0
  122. package/dist/store/constants.js.map +1 -0
  123. package/dist/store/defineFieldMapping.d.ts +41 -0
  124. package/dist/store/defineFieldMapping.d.ts.map +1 -0
  125. package/dist/store/defineFieldMapping.js +42 -0
  126. package/dist/store/defineFieldMapping.js.map +1 -0
  127. package/dist/store/defineList.d.ts +14 -0
  128. package/dist/store/defineList.d.ts.map +1 -0
  129. package/dist/store/defineList.js +7 -0
  130. package/dist/store/defineList.js.map +1 -0
  131. package/dist/store/dirtyTracking/captureInitialValues.d.ts +8 -0
  132. package/dist/store/dirtyTracking/captureInitialValues.d.ts.map +1 -0
  133. package/dist/store/dirtyTracking/captureInitialValues.js +16 -0
  134. package/dist/store/dirtyTracking/captureInitialValues.js.map +1 -0
  135. package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts +10 -0
  136. package/dist/store/dirtyTracking/collectInitialSnapshot.d.ts.map +1 -0
  137. package/dist/store/dirtyTracking/collectInitialSnapshot.js +35 -0
  138. package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -0
  139. package/dist/store/dirtyTracking/index.d.ts +7 -0
  140. package/dist/store/dirtyTracking/index.d.ts.map +1 -0
  141. package/dist/store/dirtyTracking/index.js +6 -0
  142. package/dist/store/dirtyTracking/index.js.map +1 -0
  143. package/dist/store/dirtyTracking/isDirtyValue.d.ts +7 -0
  144. package/dist/store/dirtyTracking/isDirtyValue.d.ts.map +1 -0
  145. package/dist/store/dirtyTracking/isDirtyValue.js +25 -0
  146. package/dist/store/dirtyTracking/isDirtyValue.js.map +1 -0
  147. package/dist/store/dirtyTracking/mergeInitialValues.d.ts +11 -0
  148. package/dist/store/dirtyTracking/mergeInitialValues.d.ts.map +1 -0
  149. package/dist/store/dirtyTracking/mergeInitialValues.js +29 -0
  150. package/dist/store/dirtyTracking/mergeInitialValues.js.map +1 -0
  151. package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +17 -0
  152. package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts.map +1 -0
  153. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +90 -0
  154. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -0
  155. package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +13 -0
  156. package/dist/store/dirtyTracking/setGroupRevalidate.d.ts.map +1 -0
  157. package/dist/store/dirtyTracking/setGroupRevalidate.js +32 -0
  158. package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -0
  159. package/dist/store/entityRegistry/entityRegistry.d.ts +166 -0
  160. package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -0
  161. package/dist/store/entityRegistry/entityRegistry.js +402 -0
  162. package/dist/store/entityRegistry/entityRegistry.js.map +1 -0
  163. package/dist/store/entityRegistry/generateId.d.ts +7 -0
  164. package/dist/store/entityRegistry/generateId.d.ts.map +1 -0
  165. package/dist/store/entityRegistry/generateId.js +18 -0
  166. package/dist/store/entityRegistry/generateId.js.map +1 -0
  167. package/dist/store/entityRegistry/index.d.ts +4 -0
  168. package/dist/store/entityRegistry/index.d.ts.map +1 -0
  169. package/dist/store/entityRegistry/index.js +3 -0
  170. package/dist/store/entityRegistry/index.js.map +1 -0
  171. package/dist/store/entityRegistry/types.d.ts +50 -0
  172. package/dist/store/entityRegistry/types.d.ts.map +1 -0
  173. package/dist/store/entityRegistry/types.js +2 -0
  174. package/dist/store/entityRegistry/types.js.map +1 -0
  175. package/dist/store/fieldMapping.typecheck.d.ts +2 -0
  176. package/dist/store/fieldMapping.typecheck.d.ts.map +1 -0
  177. package/dist/store/fieldMapping.typecheck.js +71 -0
  178. package/dist/store/fieldMapping.typecheck.js.map +1 -0
  179. package/dist/store/groupDeps/createGroupDeps.d.ts +9 -0
  180. package/dist/store/groupDeps/createGroupDeps.d.ts.map +1 -0
  181. package/dist/store/groupDeps/createGroupDeps.js +29 -0
  182. package/dist/store/groupDeps/createGroupDeps.js.map +1 -0
  183. package/dist/store/groupDeps/createTrackingValues.d.ts +15 -0
  184. package/dist/store/groupDeps/createTrackingValues.d.ts.map +1 -0
  185. package/dist/store/groupDeps/createTrackingValues.js +39 -0
  186. package/dist/store/groupDeps/createTrackingValues.js.map +1 -0
  187. package/dist/store/groupDeps/getNodeGroupPath.d.ts +9 -0
  188. package/dist/store/groupDeps/getNodeGroupPath.d.ts.map +1 -0
  189. package/dist/store/groupDeps/getNodeGroupPath.js +20 -0
  190. package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -0
  191. package/dist/store/groupDeps/getRecipientGroups.d.ts +5 -0
  192. package/dist/store/groupDeps/getRecipientGroups.d.ts.map +1 -0
  193. package/dist/store/groupDeps/getRecipientGroups.js +15 -0
  194. package/dist/store/groupDeps/getRecipientGroups.js.map +1 -0
  195. package/dist/store/groupDeps/groupDeps.d.ts +19 -0
  196. package/dist/store/groupDeps/groupDeps.d.ts.map +1 -0
  197. package/dist/store/groupDeps/groupDeps.js +19 -0
  198. package/dist/store/groupDeps/groupDeps.js.map +1 -0
  199. package/dist/store/groupDeps/index.d.ts +7 -0
  200. package/dist/store/groupDeps/index.d.ts.map +1 -0
  201. package/dist/store/groupDeps/index.js +7 -0
  202. package/dist/store/groupDeps/index.js.map +1 -0
  203. package/dist/store/groupDeps/pairKey.d.ts +7 -0
  204. package/dist/store/groupDeps/pairKey.d.ts.map +1 -0
  205. package/dist/store/groupDeps/pairKey.js +12 -0
  206. package/dist/store/groupDeps/pairKey.js.map +1 -0
  207. package/dist/store/groupDeps/resolveGroupByPath.d.ts +8 -0
  208. package/dist/store/groupDeps/resolveGroupByPath.d.ts.map +1 -0
  209. package/dist/store/groupDeps/resolveGroupByPath.js +19 -0
  210. package/dist/store/groupDeps/resolveGroupByPath.js.map +1 -0
  211. package/dist/store/init/createNotificationHub.d.ts +81 -0
  212. package/dist/store/init/createNotificationHub.d.ts.map +1 -0
  213. package/dist/store/init/createNotificationHub.js +149 -0
  214. package/dist/store/init/createNotificationHub.js.map +1 -0
  215. package/dist/store/init/createResolveManager.d.ts +166 -0
  216. package/dist/store/init/createResolveManager.d.ts.map +1 -0
  217. package/dist/store/init/createResolveManager.js +502 -0
  218. package/dist/store/init/createResolveManager.js.map +1 -0
  219. package/dist/store/init/initGroupSubmitting.d.ts +8 -0
  220. package/dist/store/init/initGroupSubmitting.d.ts.map +1 -0
  221. package/dist/store/init/initGroupSubmitting.js +39 -0
  222. package/dist/store/init/initGroupSubmitting.js.map +1 -0
  223. package/dist/store/normalizeConfig.d.ts +28 -0
  224. package/dist/store/normalizeConfig.d.ts.map +1 -0
  225. package/dist/store/normalizeConfig.js +76 -0
  226. package/dist/store/normalizeConfig.js.map +1 -0
  227. package/dist/store/onChangePipeline/computeFieldKey.d.ts +11 -0
  228. package/dist/store/onChangePipeline/computeFieldKey.d.ts.map +1 -0
  229. package/dist/store/onChangePipeline/computeFieldKey.js +18 -0
  230. package/dist/store/onChangePipeline/computeFieldKey.js.map +1 -0
  231. package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +8 -0
  232. package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts.map +1 -0
  233. package/dist/store/onChangePipeline/findOnChangeAncestors.js +22 -0
  234. package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -0
  235. package/dist/store/onChangePipeline/onChangePipeline.d.ts +29 -0
  236. package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -0
  237. package/dist/store/onChangePipeline/onChangePipeline.js +99 -0
  238. package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -0
  239. package/dist/store/persist/drivers.d.ts +34 -0
  240. package/dist/store/persist/drivers.d.ts.map +1 -0
  241. package/dist/store/persist/drivers.js +89 -0
  242. package/dist/store/persist/drivers.js.map +1 -0
  243. package/dist/store/persist/index.d.ts +7 -0
  244. package/dist/store/persist/index.d.ts.map +1 -0
  245. package/dist/store/persist/index.js +3 -0
  246. package/dist/store/persist/index.js.map +1 -0
  247. package/dist/store/persist/persistManager.d.ts +67 -0
  248. package/dist/store/persist/persistManager.d.ts.map +1 -0
  249. package/dist/store/persist/persistManager.js +198 -0
  250. package/dist/store/persist/persistManager.js.map +1 -0
  251. package/dist/store/persist/types.d.ts +66 -0
  252. package/dist/store/persist/types.d.ts.map +1 -0
  253. package/dist/store/persist/types.js +9 -0
  254. package/dist/store/persist/types.js.map +1 -0
  255. package/dist/store/resetPipeline/buildResetPatch.d.ts +11 -0
  256. package/dist/store/resetPipeline/buildResetPatch.d.ts.map +1 -0
  257. package/dist/store/resetPipeline/buildResetPatch.js +22 -0
  258. package/dist/store/resetPipeline/buildResetPatch.js.map +1 -0
  259. package/dist/store/resetPipeline/collectDefaults.d.ts +12 -0
  260. package/dist/store/resetPipeline/collectDefaults.d.ts.map +1 -0
  261. package/dist/store/resetPipeline/collectDefaults.js +31 -0
  262. package/dist/store/resetPipeline/collectDefaults.js.map +1 -0
  263. package/dist/store/resetPipeline/resetPipeline.d.ts +19 -0
  264. package/dist/store/resetPipeline/resetPipeline.d.ts.map +1 -0
  265. package/dist/store/resetPipeline/resetPipeline.js +49 -0
  266. package/dist/store/resetPipeline/resetPipeline.js.map +1 -0
  267. package/dist/store/resolvePipeline/applyPendingWrites.d.ts +26 -0
  268. package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -0
  269. package/dist/store/resolvePipeline/applyPendingWrites.js +68 -0
  270. package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -0
  271. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +16 -0
  272. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -0
  273. package/dist/store/resolvePipeline/createContextTrackingProxy.js +29 -0
  274. package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -0
  275. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +75 -0
  276. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -0
  277. package/dist/store/resolvePipeline/createValuesTrackingProxy.js +128 -0
  278. package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -0
  279. package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts +29 -0
  280. package/dist/store/resolvePipeline/executeEntityFieldResolve.d.ts.map +1 -0
  281. package/dist/store/resolvePipeline/executeEntityFieldResolve.js +218 -0
  282. package/dist/store/resolvePipeline/executeEntityFieldResolve.js.map +1 -0
  283. package/dist/store/resolvePipeline/executeListResolve.d.ts +32 -0
  284. package/dist/store/resolvePipeline/executeListResolve.d.ts.map +1 -0
  285. package/dist/store/resolvePipeline/executeListResolve.js +157 -0
  286. package/dist/store/resolvePipeline/executeListResolve.js.map +1 -0
  287. package/dist/store/resolvePipeline/executeResolve.d.ts +26 -0
  288. package/dist/store/resolvePipeline/executeResolve.d.ts.map +1 -0
  289. package/dist/store/resolvePipeline/executeResolve.js +201 -0
  290. package/dist/store/resolvePipeline/executeResolve.js.map +1 -0
  291. package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts +10 -0
  292. package/dist/store/resolvePipeline/findResolvesToRetrigger.d.ts.map +1 -0
  293. package/dist/store/resolvePipeline/findResolvesToRetrigger.js +29 -0
  294. package/dist/store/resolvePipeline/findResolvesToRetrigger.js.map +1 -0
  295. package/dist/store/resolvePipeline/index.d.ts +22 -0
  296. package/dist/store/resolvePipeline/index.d.ts.map +1 -0
  297. package/dist/store/resolvePipeline/index.js +18 -0
  298. package/dist/store/resolvePipeline/index.js.map +1 -0
  299. package/dist/store/resolvePipeline/initResolveStates.d.ts +41 -0
  300. package/dist/store/resolvePipeline/initResolveStates.d.ts.map +1 -0
  301. package/dist/store/resolvePipeline/initResolveStates.js +95 -0
  302. package/dist/store/resolvePipeline/initResolveStates.js.map +1 -0
  303. package/dist/store/resolvePipeline/resetResolveState.d.ts +8 -0
  304. package/dist/store/resolvePipeline/resetResolveState.d.ts.map +1 -0
  305. package/dist/store/resolvePipeline/resetResolveState.js +18 -0
  306. package/dist/store/resolvePipeline/resetResolveState.js.map +1 -0
  307. package/dist/store/resolvePipeline/types.d.ts +134 -0
  308. package/dist/store/resolvePipeline/types.d.ts.map +1 -0
  309. package/dist/store/resolvePipeline/types.js +54 -0
  310. package/dist/store/resolvePipeline/types.js.map +1 -0
  311. package/dist/store/store/NodeRegistry/index.d.ts +3 -0
  312. package/dist/store/store/NodeRegistry/index.d.ts.map +1 -0
  313. package/dist/store/store/NodeRegistry/index.js +2 -0
  314. package/dist/store/store/NodeRegistry/index.js.map +1 -0
  315. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +139 -0
  316. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -0
  317. package/dist/store/store/NodeRegistry/nodeRegistry.js +255 -0
  318. package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -0
  319. package/dist/store/store/NodeRegistry/nodeUtils.d.ts +17 -0
  320. package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -0
  321. package/dist/store/store/NodeRegistry/nodeUtils.js +21 -0
  322. package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -0
  323. package/dist/store/store/NodeRegistry/nodeView.d.ts +28 -0
  324. package/dist/store/store/NodeRegistry/nodeView.d.ts.map +1 -0
  325. package/dist/store/store/NodeRegistry/nodeView.js +16 -0
  326. package/dist/store/store/NodeRegistry/nodeView.js.map +1 -0
  327. package/dist/store/store/dirtyTracker.d.ts +27 -0
  328. package/dist/store/store/dirtyTracker.d.ts.map +1 -0
  329. package/dist/store/store/dirtyTracker.js +38 -0
  330. package/dist/store/store/dirtyTracker.js.map +1 -0
  331. package/dist/store/store/groupDepsMap.d.ts +52 -0
  332. package/dist/store/store/groupDepsMap.d.ts.map +1 -0
  333. package/dist/store/store/groupDepsMap.js +84 -0
  334. package/dist/store/store/groupDepsMap.js.map +1 -0
  335. package/dist/store/store/hasComputedProps.d.ts +7 -0
  336. package/dist/store/store/hasComputedProps.d.ts.map +1 -0
  337. package/dist/store/store/hasComputedProps.js +15 -0
  338. package/dist/store/store/hasComputedProps.js.map +1 -0
  339. package/dist/store/store/index.d.ts +6 -0
  340. package/dist/store/store/index.d.ts.map +1 -0
  341. package/dist/store/store/index.js +3 -0
  342. package/dist/store/store/index.js.map +1 -0
  343. package/dist/store/store/nodeMap.d.ts +12 -0
  344. package/dist/store/store/nodeMap.d.ts.map +1 -0
  345. package/dist/store/store/nodeMap.js +30 -0
  346. package/dist/store/store/nodeMap.js.map +1 -0
  347. package/dist/store/store/palistor.d.ts +256 -0
  348. package/dist/store/store/palistor.d.ts.map +1 -0
  349. package/dist/store/store/palistor.js +772 -0
  350. package/dist/store/store/palistor.js.map +1 -0
  351. package/dist/store/store/registerNodes.d.ts +33 -0
  352. package/dist/store/store/registerNodes.d.ts.map +1 -0
  353. package/dist/store/store/registerNodes.js +88 -0
  354. package/dist/store/store/registerNodes.js.map +1 -0
  355. package/dist/store/store/serviceRegistry.d.ts +24 -0
  356. package/dist/store/store/serviceRegistry.d.ts.map +1 -0
  357. package/dist/store/store/serviceRegistry.js +32 -0
  358. package/dist/store/store/serviceRegistry.js.map +1 -0
  359. package/dist/store/store/types.d.ts +622 -0
  360. package/dist/store/store/types.d.ts.map +1 -0
  361. package/dist/store/store/types.js +2 -0
  362. package/dist/store/store/types.js.map +1 -0
  363. package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +7 -0
  364. package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts.map +1 -0
  365. package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +26 -0
  366. package/dist/store/submitPipeline/applyLeafBeforeSubmit.js.map +1 -0
  367. package/dist/store/submitPipeline/collectLeafStates.d.ts +11 -0
  368. package/dist/store/submitPipeline/collectLeafStates.d.ts.map +1 -0
  369. package/dist/store/submitPipeline/collectLeafStates.js +17 -0
  370. package/dist/store/submitPipeline/collectLeafStates.js.map +1 -0
  371. package/dist/store/submitPipeline/getSubValues.d.ts +9 -0
  372. package/dist/store/submitPipeline/getSubValues.d.ts.map +1 -0
  373. package/dist/store/submitPipeline/getSubValues.js +26 -0
  374. package/dist/store/submitPipeline/getSubValues.js.map +1 -0
  375. package/dist/store/submitPipeline/submitPipeline.d.ts +32 -0
  376. package/dist/store/submitPipeline/submitPipeline.d.ts.map +1 -0
  377. package/dist/store/submitPipeline/submitPipeline.js +119 -0
  378. package/dist/store/submitPipeline/submitPipeline.js.map +1 -0
  379. package/dist/store/submitPipeline/types.d.ts +12 -0
  380. package/dist/store/submitPipeline/types.d.ts.map +1 -0
  381. package/dist/store/submitPipeline/types.js +2 -0
  382. package/dist/store/submitPipeline/types.js.map +1 -0
  383. package/dist/store/traversal/index.d.ts +4 -0
  384. package/dist/store/traversal/index.d.ts.map +1 -0
  385. package/dist/store/traversal/index.js +3 -0
  386. package/dist/store/traversal/index.js.map +1 -0
  387. package/dist/store/traversal/nodeClassifier.d.ts +23 -0
  388. package/dist/store/traversal/nodeClassifier.d.ts.map +1 -0
  389. package/dist/store/traversal/nodeClassifier.js +46 -0
  390. package/dist/store/traversal/nodeClassifier.js.map +1 -0
  391. package/dist/store/traversal/walkFull.d.ts +33 -0
  392. package/dist/store/traversal/walkFull.d.ts.map +1 -0
  393. package/dist/store/traversal/walkFull.js +28 -0
  394. package/dist/store/traversal/walkFull.js.map +1 -0
  395. package/dist/store/valuesCache/valuesCache.d.ts +27 -0
  396. package/dist/store/valuesCache/valuesCache.d.ts.map +1 -0
  397. package/dist/store/valuesCache/valuesCache.js +58 -0
  398. package/dist/store/valuesCache/valuesCache.js.map +1 -0
  399. package/dist/store/writePipeline/formatPatch.d.ts +14 -0
  400. package/dist/store/writePipeline/formatPatch.d.ts.map +1 -0
  401. package/dist/store/writePipeline/formatPatch.js +35 -0
  402. package/dist/store/writePipeline/formatPatch.js.map +1 -0
  403. package/dist/store/writePipeline/formatValue.d.ts +12 -0
  404. package/dist/store/writePipeline/formatValue.d.ts.map +1 -0
  405. package/dist/store/writePipeline/formatValue.js +15 -0
  406. package/dist/store/writePipeline/formatValue.js.map +1 -0
  407. package/dist/store/writePipeline/index.d.ts +8 -0
  408. package/dist/store/writePipeline/index.d.ts.map +1 -0
  409. package/dist/store/writePipeline/index.js +7 -0
  410. package/dist/store/writePipeline/index.js.map +1 -0
  411. package/dist/store/writePipeline/mergeChanged.d.ts +9 -0
  412. package/dist/store/writePipeline/mergeChanged.d.ts.map +1 -0
  413. package/dist/store/writePipeline/mergeChanged.js +15 -0
  414. package/dist/store/writePipeline/mergeChanged.js.map +1 -0
  415. package/dist/store/writePipeline/runSetter.d.ts +16 -0
  416. package/dist/store/writePipeline/runSetter.d.ts.map +1 -0
  417. package/dist/store/writePipeline/runSetter.js +35 -0
  418. package/dist/store/writePipeline/runSetter.js.map +1 -0
  419. package/dist/store/writePipeline/storeValue.d.ts +11 -0
  420. package/dist/store/writePipeline/storeValue.d.ts.map +1 -0
  421. package/dist/store/writePipeline/storeValue.js +17 -0
  422. package/dist/store/writePipeline/storeValue.js.map +1 -0
  423. package/dist/store/writePipeline/types.d.ts +10 -0
  424. package/dist/store/writePipeline/types.d.ts.map +1 -0
  425. package/dist/store/writePipeline/types.js +2 -0
  426. package/dist/store/writePipeline/types.js.map +1 -0
  427. package/dist/store/writePipeline/writePipeline.d.ts +31 -0
  428. package/dist/store/writePipeline/writePipeline.d.ts.map +1 -0
  429. package/dist/store/writePipeline/writePipeline.js +97 -0
  430. package/dist/store/writePipeline/writePipeline.js.map +1 -0
  431. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContextTrackingProxy.js","sourceRoot":"","sources":["../../../store/resolvePipeline/createContextTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,UAAU,0BAA0B,CACxC,OAAgC;IAEhC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;QAC/B,GAAG,CAAC,OAAO,EAAE,GAAG;YACd,8DAA8D;YAC9D,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9D,YAAY,CAAC,GAAG,CAAC,GAAa,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC,GAAa,CAAC,CAAC;QAChC,CAAC;QACD,GAAG;YACD,wCAAwC;YACxC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;KACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * createValuesTrackingProxy — оборачивает дерево значений в Proxy, который:
3
+ * - ЧТЕНИЕ: отслеживает обращённые пути (автоматические зависимости для повторного запуска резолвера)
4
+ * - ЗАПИСЬ: буферизирует побочные эффекты (пакетный режим, без промежуточных ре-рендеров)
5
+ *
6
+ * Используется внутри выполнения резолвера: резолвер получает этот прокси вместо реального объекта.
7
+ * После завершения резолвера обращённые пути сохраняются для отслеживания зависимостей,
8
+ * а буферизированные записи сбрасываются одним пакетом.
9
+ *
10
+ * ─── КАК ЭТО РАБОТАЕТ ────────────────────────────────────────────────────────
11
+ *
12
+ * Дерево значений выглядит как обычный вложенный объект:
13
+ * { user: { name: "Alice", vehicleExists: true }, payment: { amount: 100 } }
14
+ *
15
+ * Когда резолвер запускается, он получает этот прокси вместо реального объекта.
16
+ * Прокси перехватывает каждое обращение к свойству:
17
+ *
18
+ * ЧТЕНИЕ: values.user.name
19
+ * → прокси возвращает вложенный прокси для "user"
20
+ * → вложенный прокси перехватывает "name", записывает путь "user.name" в accessedPaths
21
+ * → возвращает реальное значение
22
+ *
23
+ * ЗАПИСЬ: values.user.vehicleExists = false
24
+ * → прокси перехватывает присваивание, записывает { path: "user.vehicleExists", value: false }
25
+ * в pendingWrites[]
26
+ * → НЕ трогает реальный объект значений — запись отложена!
27
+ *
28
+ * После возврата резолвера:
29
+ * 1. getAccessedPaths() → используется для перестройки графа зависимостей этого резолвера
30
+ * (при следующем изменении любого из этих путей резолвер запустится снова)
31
+ * 2. getPendingWrites() → передаётся в applyPendingWrites(), который превращает каждый
32
+ * путь обратно во вложенный патч и вызывает applyPatch() на реальном хранилище
33
+ *
34
+ * ЗАЧЕМ БУФЕРИЗИРОВАТЬ ЗАПИСИ вместо немедленного применения?
35
+ * - Предотвращает каскадные ре-рендеры в середине работы резолвера
36
+ * - Все мутации применяются одним атомарным пакетом → согласованное состояние после каждого тика пайплайна
37
+ * - Записи резолвера A случайно не запускают резолвер B в процессе его выполнения
38
+ */
39
+ export interface PendingWrite {
40
+ /**
41
+ * Путь в дереве значений, разделённый точками, например "user.vehicleExists" или "payment.amount".
42
+ * Отражает структуру объекта values (аналогично valuesCache.values).
43
+ * applyPendingWrites() разбивает этот путь по "." для построения вложенного патч-объекта.
44
+ */
45
+ path: string;
46
+ /** Новое значение, которое резолвер хочет записать по этому пути. */
47
+ value: unknown;
48
+ }
49
+ export interface ValuesTrackingResult {
50
+ /** Отслеживающий прокси с поддержкой записи для передачи резолверу. Чтения трекаются, записи буферизируются. */
51
+ proxy: Record<string, unknown>;
52
+ /**
53
+ * Возвращает все пути (через точку), которые были ПРОЧИТАНЫ в ходе выполнения резолвера.
54
+ * Используется после возврата резолвера для обновления графа зависимостей:
55
+ * резолвер повторно запустится при изменении любого из этих путей.
56
+ */
57
+ getAccessedPaths: () => Set<string>;
58
+ /**
59
+ * Возвращает все операции записи, буферизированные во время выполнения резолвера.
60
+ * Ни одна из этих записей ещё не применена к реальному хранилищу —
61
+ * они сбрасываются одним пакетом через applyPendingWrites() после возврата резолвера.
62
+ */
63
+ getPendingWrites: () => PendingWrite[];
64
+ }
65
+ /**
66
+ * Создаёт отслеживающий прокси с поддержкой записи для дерева значений.
67
+ *
68
+ * - Чтение примитива записывает полный путь (например "user.id") в accessedPaths
69
+ * - Чтение объекта возвращает вложенный прокси (рекурсивно), не трекается до обращения к листу
70
+ * - Запись по ЛЮБОМУ пути буферизирует присваивание в pendingWrites[], не затрагивая реальные данные
71
+ *
72
+ * @param values — текущий снапшот значений (из valuesCache.values), здесь считается только для чтения
73
+ */
74
+ export declare function createValuesTrackingProxy(values: Record<string, unknown>): ValuesTrackingResult;
75
+ //# sourceMappingURL=createValuesTrackingProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createValuesTrackingProxy.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/createValuesTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,gHAAgH;IAChH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,YAAY,EAAE,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,oBAAoB,CAwFtB"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * createValuesTrackingProxy — оборачивает дерево значений в Proxy, который:
3
+ * - ЧТЕНИЕ: отслеживает обращённые пути (автоматические зависимости для повторного запуска резолвера)
4
+ * - ЗАПИСЬ: буферизирует побочные эффекты (пакетный режим, без промежуточных ре-рендеров)
5
+ *
6
+ * Используется внутри выполнения резолвера: резолвер получает этот прокси вместо реального объекта.
7
+ * После завершения резолвера обращённые пути сохраняются для отслеживания зависимостей,
8
+ * а буферизированные записи сбрасываются одним пакетом.
9
+ *
10
+ * ─── КАК ЭТО РАБОТАЕТ ────────────────────────────────────────────────────────
11
+ *
12
+ * Дерево значений выглядит как обычный вложенный объект:
13
+ * { user: { name: "Alice", vehicleExists: true }, payment: { amount: 100 } }
14
+ *
15
+ * Когда резолвер запускается, он получает этот прокси вместо реального объекта.
16
+ * Прокси перехватывает каждое обращение к свойству:
17
+ *
18
+ * ЧТЕНИЕ: values.user.name
19
+ * → прокси возвращает вложенный прокси для "user"
20
+ * → вложенный прокси перехватывает "name", записывает путь "user.name" в accessedPaths
21
+ * → возвращает реальное значение
22
+ *
23
+ * ЗАПИСЬ: values.user.vehicleExists = false
24
+ * → прокси перехватывает присваивание, записывает { path: "user.vehicleExists", value: false }
25
+ * в pendingWrites[]
26
+ * → НЕ трогает реальный объект значений — запись отложена!
27
+ *
28
+ * После возврата резолвера:
29
+ * 1. getAccessedPaths() → используется для перестройки графа зависимостей этого резолвера
30
+ * (при следующем изменении любого из этих путей резолвер запустится снова)
31
+ * 2. getPendingWrites() → передаётся в applyPendingWrites(), который превращает каждый
32
+ * путь обратно во вложенный патч и вызывает applyPatch() на реальном хранилище
33
+ *
34
+ * ЗАЧЕМ БУФЕРИЗИРОВАТЬ ЗАПИСИ вместо немедленного применения?
35
+ * - Предотвращает каскадные ре-рендеры в середине работы резолвера
36
+ * - Все мутации применяются одним атомарным пакетом → согласованное состояние после каждого тика пайплайна
37
+ * - Записи резолвера A случайно не запускают резолвер B в процессе его выполнения
38
+ */
39
+ /**
40
+ * Создаёт отслеживающий прокси с поддержкой записи для дерева значений.
41
+ *
42
+ * - Чтение примитива записывает полный путь (например "user.id") в accessedPaths
43
+ * - Чтение объекта возвращает вложенный прокси (рекурсивно), не трекается до обращения к листу
44
+ * - Запись по ЛЮБОМУ пути буферизирует присваивание в pendingWrites[], не затрагивая реальные данные
45
+ *
46
+ * @param values — текущий снапшот значений (из valuesCache.values), здесь считается только для чтения
47
+ */
48
+ export function createValuesTrackingProxy(values) {
49
+ // Собирает все пути к примитивам, которые резолвер читает.
50
+ // Пример после работы резолвера: Set { "user.name", "user.vehicleExists" }
51
+ const accessedPaths = new Set();
52
+ // Собирает все записи, которые резолвер выполняет, в порядке их появления.
53
+ // Ни одна не применяется до вызова applyPendingWrites() после возврата резолвера.
54
+ // Пример: [{ path: "user.vehicleExists", value: false }, { path: "payment.amount", value: 200 }]
55
+ const pendingWrites = [];
56
+ // Кэширует вложенные прокси по их префиксу пути, чтобы при повторном обращении
57
+ // к одному и тому же вложенному объекту возвращался тот же экземпляр прокси.
58
+ // Ключ: префикс пути через точку (например "user"), или "__root__" для корневого уровня.
59
+ const proxyCache = new Map();
60
+ /**
61
+ * Рекурсивно оборачивает `target` в Proxy, который отслеживает чтения и буферизирует записи.
62
+ *
63
+ * @param target — реальный объект значений (или вложенный подобъект) для обёртки
64
+ * @param parentPath — накопленный префикс пути через точку, например "" для корня или "user" для вложенного
65
+ */
66
+ function buildValuesProxy(target, parentPath) {
67
+ // Возвращаем закэшированный прокси для данного пути, чтобы не создавать дублирующие прокси
68
+ // для одного узла (важно для проверок ссылочного равенства внутри резолверов).
69
+ const cacheKey = parentPath || "__root__";
70
+ if (proxyCache.has(cacheKey))
71
+ return proxyCache.get(cacheKey);
72
+ const p = new Proxy(target, {
73
+ // ─── GET-ловушка ──────────────────────────────────────────────────────
74
+ // Перехватывает каждое чтение свойства. Строит полный путь через точку, затем:
75
+ // • если значение — вложенный простой объект → возвращает вложенный прокси
76
+ // (промежуточные пути не трекаем, только чтения листьев)
77
+ // • если значение — примитив → записывает путь в accessedPaths и возвращает его
78
+ get(_t, key) {
79
+ // Игнорируем символьные ключи (например Symbol.toPrimitive, Symbol.iterator) —
80
+ // это внутренние ключи фреймворка/рантайма, не часть дерева значений.
81
+ if (typeof key === "symbol")
82
+ return undefined;
83
+ // Формируем полный путь через точку для данного обращения, например "user" + "." + "name" = "user.name"
84
+ const fullPath = parentPath ? `${parentPath}.${key}` : key;
85
+ const val = target[key];
86
+ // Если значение — простой объект, оборачиваем его в ещё один прокси, чтобы
87
+ // продолжать отслеживать более глубокие чтения, например values.user.address.city.
88
+ // Массивы и Date считаются листовыми значениями (не рекурсируем).
89
+ if (val !== null && typeof val === "object" && !Array.isArray(val) && !(val instanceof Date)) {
90
+ return buildValuesProxy(val, fullPath);
91
+ }
92
+ // Чтение листа — записываем путь, чтобы резолвер мог быть перезапущен позже,
93
+ // когда это конкретное значение изменится в хранилище.
94
+ accessedPaths.add(fullPath);
95
+ return val;
96
+ },
97
+ // ─── SET-ловушка ──────────────────────────────────────────────────────
98
+ // Перехватывает каждое присваивание. Вместо мутации реального объекта значений
99
+ // помещаем дескриптор PendingWrite в буфер.
100
+ //
101
+ // Запись намеренно откладывается:
102
+ // 1. Резолвер может выполнить несколько записей подряд; сначала собираем все.
103
+ // 2. applyPendingWrites() вызывается после возврата резолвера, поэтому все
104
+ // мутации применяются атомарно за один вызов applyPatch().
105
+ // 3. Это не позволяет резолверу наблюдать собственные частично применённые записи.
106
+ set(_t, key, newValue) {
107
+ if (typeof key === "symbol")
108
+ return false;
109
+ const fullPath = parentPath ? `${parentPath}.${key}` : key;
110
+ // Буферизируем запись — реальное хранилище пока не трогаем.
111
+ pendingWrites.push({ path: fullPath, value: newValue });
112
+ // Возврат true сообщает Proxy, что присваивание «принято»
113
+ // (предотвращает TypeError в strict-режиме, несмотря на отсутствие реальной мутации).
114
+ return true;
115
+ },
116
+ });
117
+ proxyCache.set(cacheKey, p);
118
+ return p;
119
+ }
120
+ // Строим прокси корневого уровня (parentPath = "" означает отсутствие префикса).
121
+ const proxy = buildValuesProxy(values, "");
122
+ return {
123
+ proxy,
124
+ getAccessedPaths: () => accessedPaths,
125
+ getPendingWrites: () => pendingWrites,
126
+ };
127
+ }
128
+ //# sourceMappingURL=createValuesTrackingProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createValuesTrackingProxy.js","sourceRoot":"","sources":["../../../store/resolvePipeline/createValuesTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AA8BH;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAA+B;IAE/B,2DAA2D;IAC3D,2EAA2E;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,2EAA2E;IAC3E,kFAAkF;IAClF,iGAAiG;IACjG,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,+EAA+E;IAC/E,6EAA6E;IAC7E,yFAAyF;IACzF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE9C;;;;;OAKG;IACH,SAAS,gBAAgB,CAAC,MAA+B,EAAE,UAAkB;QAC3E,2FAA2F;QAC3F,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,UAAU,IAAI,UAAU,CAAC;QAC1C,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAA4B,CAAC;QAEzF,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;YAC1B,yEAAyE;YACzE,+EAA+E;YAC/E,6EAA6E;YAC7E,6DAA6D;YAC7D,kFAAkF;YAClF,GAAG,CAAC,EAAE,EAAE,GAAoB;gBAC1B,+EAA+E;gBAC/E,sEAAsE;gBACtE,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAE9C,wGAAwG;gBACxG,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAExB,2EAA2E;gBAC3E,mFAAmF;gBACnF,kEAAkE;gBAClE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;oBAC7F,OAAO,gBAAgB,CAAC,GAA8B,EAAE,QAAQ,CAAC,CAAC;gBACpE,CAAC;gBAED,6EAA6E;gBAC7E,uDAAuD;gBACvD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5B,OAAO,GAAG,CAAC;YACb,CAAC;YAED,yEAAyE;YACzE,+EAA+E;YAC/E,4CAA4C;YAC5C,EAAE;YACF,kCAAkC;YAClC,gFAAgF;YAChF,6EAA6E;YAC7E,gEAAgE;YAChE,qFAAqF;YACrF,GAAG,CAAC,EAAE,EAAE,GAAoB,EAAE,QAAiB;gBAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAE1C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,4DAA4D;gBAC5D,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACxD,0DAA0D;gBAC1D,sFAAsF;gBACtF,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAA4B,CAAC;IACtC,CAAC;IAED,iFAAiF;IACjF,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE3C,OAAO;QACL,KAAK;QACL,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;QACrC,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { EntityNode } from "../entityRegistry/types";
2
+ import type { ResolveDeps } from "./types";
3
+ import { EntityResolveStateMap } from "./types";
4
+ import type { TemplateFieldResolveEntry } from "./initResolveStates";
5
+ /**
6
+ * Dependencies for executeEntityFieldResolve.
7
+ * Extends ResolveDeps with entity-specific state map.
8
+ */
9
+ export interface EntityFieldResolveDeps extends ResolveDeps {
10
+ /** Per-entity field resolve states: (entityId, templateFieldNode) → ResolveState. */
11
+ entityStates: EntityResolveStateMap;
12
+ }
13
+ /**
14
+ * Execute a per-entity field resolve.
15
+ *
16
+ * Pipeline:
17
+ * 1. Get/create ResolveState in entityStates
18
+ * 2. Set status = pending, loading = true on entity leaf nodeState → recomputeAndNotify
19
+ * 3. Build entity values via buildEntityValuesFromNode → wrap in tracking proxy
20
+ * 4. Wrap store.context in context-tracking proxy for auto context-deps
21
+ * 5. Call resolve.resolver(entityValues, storeProxy)
22
+ * 6. On success: write result to entity leaf (nodeState + entityNode.field.value)
23
+ * Set status = resolved, save auto-deps, recomputeAndNotify
24
+ * 7. On error (after all retries): call onError, set status = error, recomputeAndNotify
25
+ * 8. Retry logic from resolve.options.retry
26
+ * 9. pendingRetrigger support
27
+ */
28
+ export declare function executeEntityFieldResolve(entityId: string, entry: TemplateFieldResolveEntry, entityNode: EntityNode, deps: EntityFieldResolveDeps): Promise<unknown>;
29
+ //# sourceMappingURL=executeEntityFieldResolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeEntityFieldResolve.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/executeEntityFieldResolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAmC,MAAM,yBAAyB,CAAC;AAK3F,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKrE;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,qFAAqF;IACrF,YAAY,EAAE,qBAAqB,CAAC;CACrC;AA8BD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,yBAAyB,EAChC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAwNlB"}
@@ -0,0 +1,218 @@
1
+ import { recomputeAndNotify } from "../compute/recompute";
2
+ import { storeValue } from "../writePipeline/storeValue";
3
+ import { createValuesTrackingProxy } from "./createValuesTrackingProxy";
4
+ import { createContextTrackingProxy } from "./createContextTrackingProxy";
5
+ import { isLeafNode } from "../traversal";
6
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
7
+ /**
8
+ * Build a flat values object from an entity node, reading current values
9
+ * from nodeState where available (same as buildEntityValues in buildEntityProjectionProxy).
10
+ */
11
+ function buildEntityValuesFromNode(entityNode, nodeState) {
12
+ const values = {};
13
+ for (const key of Object.keys(entityNode)) {
14
+ const field = entityNode[key];
15
+ if (field && typeof field === "object") {
16
+ if (isLeafNode(field)) {
17
+ values[key] =
18
+ nodeState.get(field)?.value ??
19
+ field.value;
20
+ }
21
+ else {
22
+ values[key] = buildEntityValuesFromNode(field, nodeState);
23
+ }
24
+ }
25
+ }
26
+ return values;
27
+ }
28
+ // ─── Core execution ───────────────────────────────────────────────────────────
29
+ /**
30
+ * Execute a per-entity field resolve.
31
+ *
32
+ * Pipeline:
33
+ * 1. Get/create ResolveState in entityStates
34
+ * 2. Set status = pending, loading = true on entity leaf nodeState → recomputeAndNotify
35
+ * 3. Build entity values via buildEntityValuesFromNode → wrap in tracking proxy
36
+ * 4. Wrap store.context in context-tracking proxy for auto context-deps
37
+ * 5. Call resolve.resolver(entityValues, storeProxy)
38
+ * 6. On success: write result to entity leaf (nodeState + entityNode.field.value)
39
+ * Set status = resolved, save auto-deps, recomputeAndNotify
40
+ * 7. On error (after all retries): call onError, set status = error, recomputeAndNotify
41
+ * 8. Retry logic from resolve.options.retry
42
+ * 9. pendingRetrigger support
43
+ */
44
+ export function executeEntityFieldResolve(entityId, entry, entityNode, deps) {
45
+ const { nodeState, recompute, notifyChanged, notify, store, valuesCache, initialValueMap, entityStates, } = deps;
46
+ const { node: templateFieldNode, resolve, fieldKey } = entry;
47
+ const state = entityStates.getOrCreate(entityId, templateFieldNode, new Set(resolve.deps ?? []));
48
+ // Deduplication: already running
49
+ if (state.status === "pending" && state.promise) {
50
+ return state.promise;
51
+ }
52
+ // Set state to pending
53
+ state.status = "pending";
54
+ state.attempt = 0;
55
+ state.error = null;
56
+ // Get entity leaf node for this field
57
+ const entityLeafField = entityNode[fieldKey];
58
+ const entityLeaf = entityLeafField && typeof entityLeafField === "object" && isLeafNode(entityLeafField)
59
+ ? entityLeafField
60
+ : null;
61
+ // Set loading = true in entity leaf nodeState
62
+ if (entityLeaf) {
63
+ const leafState = nodeState.get(entityLeaf);
64
+ if (leafState) {
65
+ nodeState.set(entityLeaf, { ...leafState, loading: true });
66
+ }
67
+ }
68
+ // Notify: loading changed (entity leaf status changed to pending)
69
+ const loadingChanged = new Set();
70
+ if (entityLeaf)
71
+ loadingChanged.add(entityLeaf);
72
+ loadingChanged.add(templateFieldNode);
73
+ recomputeAndNotify(loadingChanged, recompute, notifyChanged);
74
+ // Retry options
75
+ const retryOpts = resolve.options?.retry ?? { attempts: 0, delay: 1000 };
76
+ const maxAttempts = retryOpts.attempts;
77
+ const retryDelay = retryOpts.delay ?? 1000;
78
+ const promise = (async () => {
79
+ let lastError;
80
+ let contextTracking = null;
81
+ for (let attempt = 0; attempt <= maxAttempts; attempt++) {
82
+ state.attempt = attempt;
83
+ // Wait before retry (not on first attempt)
84
+ if (attempt > 0) {
85
+ await new Promise((r) => setTimeout(r, retryDelay));
86
+ // If status changed while waiting (e.g. reset) — abort
87
+ if (state.status !== "pending")
88
+ return;
89
+ }
90
+ try {
91
+ // Build current entity values and wrap in tracking proxy for auto-deps
92
+ const entityValues = buildEntityValuesFromNode(entityNode, nodeState);
93
+ const tracking = createValuesTrackingProxy(entityValues);
94
+ // Wrap store.context in tracking proxy for context auto-deps
95
+ contextTracking = createContextTrackingProxy(store.context);
96
+ const storeProxy = new Proxy(store, {
97
+ get(target, key) {
98
+ if (key === "context")
99
+ return contextTracking.proxy;
100
+ return target[key];
101
+ },
102
+ });
103
+ const result = await resolve.resolver(tracking.proxy, storeProxy);
104
+ // If status changed while awaiting — abort (e.g. reset, delete entity)
105
+ if (state.status !== "pending")
106
+ return result;
107
+ // ── Success path ────────────────────────────────────────────────────
108
+ const changed = new Set();
109
+ if (entityLeaf)
110
+ changed.add(entityLeaf);
111
+ changed.add(templateFieldNode);
112
+ // Write resolved value to entity leaf
113
+ if (entityLeaf !== null && result !== undefined) {
114
+ // Update entityNode.field.value (keeps entity node in sync)
115
+ entityLeaf.value = result;
116
+ // Update nodeState and valuesCache (via storeValue)
117
+ storeValue(entityLeaf, result, nodeState, valuesCache);
118
+ // Seed initialValueMap so the resolved value becomes the dirty baseline.
119
+ // Without this, the field would immediately appear dirty after resolve.
120
+ initialValueMap.set(entityLeaf, result);
121
+ }
122
+ else if (entityLeaf === null && result !== undefined) {
123
+ // The entity doesn't have this field yet (e.g. bio is in editUser template
124
+ // but not in the users list template). Use store._setEntitiesRaw to create
125
+ // the leaf on the entity and register it in nodeState + valuesCache.
126
+ const storeRef = store;
127
+ if (typeof storeRef._setEntitiesRaw === "function") {
128
+ const newlyChanged = storeRef._setEntitiesRaw([{ id: entityId, [fieldKey]: result }]);
129
+ for (const n of newlyChanged)
130
+ changed.add(n);
131
+ // Re-read entityLeaf now that the field exists in the entity
132
+ const freshLeaf = entityNode[fieldKey];
133
+ if (freshLeaf && typeof freshLeaf === "object" && isLeafNode(freshLeaf)) {
134
+ initialValueMap.set(freshLeaf, result);
135
+ }
136
+ }
137
+ }
138
+ // Clear loading from entity leaf nodeState
139
+ if (entityLeaf) {
140
+ const leafState = nodeState.get(entityLeaf);
141
+ if (leafState) {
142
+ nodeState.set(entityLeaf, { ...leafState, loading: false });
143
+ }
144
+ }
145
+ // Update resolve state
146
+ state.status = "resolved";
147
+ state.error = null;
148
+ // Save auto-deps (entity-relative paths + context deps)
149
+ const accessedPaths = tracking.getAccessedPaths();
150
+ const mergedDeps = new Set(resolve.deps ?? []);
151
+ for (const p of accessedPaths)
152
+ mergedDeps.add(p);
153
+ for (const key of contextTracking.getAccessedKeys()) {
154
+ mergedDeps.add(`$context.${key}`);
155
+ }
156
+ state.dependencies = mergedDeps;
157
+ // Recompute + notify (once)
158
+ recomputeAndNotify(changed, recompute, notifyChanged);
159
+ // If a dep changed while pending — retrigger immediately
160
+ if (state.pendingRetrigger) {
161
+ state.pendingRetrigger = false;
162
+ state.status = "idle";
163
+ state.promise = null;
164
+ executeEntityFieldResolve(entityId, entry, entityNode, deps);
165
+ }
166
+ return result;
167
+ }
168
+ catch (err) {
169
+ lastError = err;
170
+ // Continue to next attempt
171
+ }
172
+ }
173
+ // ── Error path (all retries exhausted) ──────────────────────────────────
174
+ if (state.status !== "pending")
175
+ return; // aborted externally
176
+ const changed = new Set();
177
+ if (entityLeaf)
178
+ changed.add(entityLeaf);
179
+ changed.add(templateFieldNode);
180
+ // Clear loading from entity leaf nodeState
181
+ if (entityLeaf) {
182
+ const leafState = nodeState.get(entityLeaf);
183
+ if (leafState) {
184
+ nodeState.set(entityLeaf, { ...leafState, loading: false });
185
+ }
186
+ }
187
+ state.status = "error";
188
+ state.error = lastError;
189
+ // Save context deps even on error (for retrigger on setContext)
190
+ if (contextTracking && contextTracking.getAccessedKeys().size > 0) {
191
+ const mergedDeps = new Set(resolve.deps ?? []);
192
+ for (const key of contextTracking.getAccessedKeys()) {
193
+ mergedDeps.add(`$context.${key}`);
194
+ }
195
+ state.dependencies = mergedDeps;
196
+ }
197
+ // Call error handler
198
+ try {
199
+ resolve.onError(lastError, { notify });
200
+ }
201
+ catch {
202
+ // onError must not throw — suppress if it does
203
+ }
204
+ // Recompute + notify
205
+ recomputeAndNotify(changed, recompute, notifyChanged);
206
+ // If a dep changed while pending — retrigger immediately
207
+ if (state.pendingRetrigger) {
208
+ state.pendingRetrigger = false;
209
+ state.status = "idle";
210
+ state.promise = null;
211
+ executeEntityFieldResolve(entityId, entry, entityNode, deps);
212
+ }
213
+ return undefined;
214
+ })();
215
+ state.promise = promise;
216
+ return promise;
217
+ }
218
+ //# sourceMappingURL=executeEntityFieldResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeEntityFieldResolve.js","sourceRoot":"","sources":["../../../store/resolvePipeline/executeEntityFieldResolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { EntityData } from "../entityRegistry";
2
+ import type { ListResolveConfig, ListState } from "../store/types";
3
+ import type { ResolveDeps } from "./types";
4
+ /**
5
+ * Дополнительные зависимости для executeListResolve.
6
+ * Расширяет ResolveDeps с list-специфичными колбэками.
7
+ */
8
+ export interface ListResolveDeps extends ResolveDeps {
9
+ /**
10
+ * Upsert entities в EntityRegistry + зарегистрировать leaf-ноды.
11
+ * Не вызывает recompute/notifyChanged — они вызываются после.
12
+ * Возвращает Set изменённых leaf-нод.
13
+ * Phase 4: listNode передаётся для автоматического запуска entity field resolves.
14
+ */
15
+ setEntitiesRaw: (items: EntityData[], listNode?: object) => Set<object>;
16
+ /**
17
+ * Синхронизировать valuesCache с составом списка (единый метод, root + entity).
18
+ * Вызывается после обновления listState.itemIds.
19
+ */
20
+ syncListValuesCache: (listState: ListState) => void;
21
+ }
22
+ /**
23
+ * Запустить resolve для ListNode.
24
+ *
25
+ * Отличается от executeResolve (для групп):
26
+ * - resolver возвращает Array<EntityData> вместо Record<string, unknown>
27
+ * - Результат → upsert entities + обновление listState.itemIds
28
+ * - initialItemIds обновляется при успехе → dirty = false после resolve
29
+ * - loading state хранится в nodeState для listNode (создаётся на лету)
30
+ */
31
+ export declare function executeListResolve(listNode: object, resolve: ListResolveConfig, listState: ListState, deps: ListResolveDeps): Promise<unknown>;
32
+ //# sourceMappingURL=executeListResolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeListResolve.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/executeListResolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD;;;;;OAKG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IAExE;;;OAGG;IACH,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACrD;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,OAAO,CAAC,CA6JlB"}