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,157 @@
1
+ import { recomputeAndNotify } from "../compute/recompute";
2
+ import { createContextTrackingProxy } from "./createContextTrackingProxy";
3
+ import { createValuesTrackingProxy } from "./createValuesTrackingProxy";
4
+ // ─── Default nodeState for listNode ─────────────────────────────────────────
5
+ const DEFAULT_LIST_STATE = {
6
+ value: undefined,
7
+ isVisible: true,
8
+ isRequired: false,
9
+ isDisabled: false,
10
+ isReadOnly: false,
11
+ loading: false,
12
+ dirty: false,
13
+ revalidate: false,
14
+ };
15
+ // ─── executeListResolve ──────────────────────────────────────────────────────
16
+ /**
17
+ * Запустить resolve для ListNode.
18
+ *
19
+ * Отличается от executeResolve (для групп):
20
+ * - resolver возвращает Array<EntityData> вместо Record<string, unknown>
21
+ * - Результат → upsert entities + обновление listState.itemIds
22
+ * - initialItemIds обновляется при успехе → dirty = false после resolve
23
+ * - loading state хранится в nodeState для listNode (создаётся на лету)
24
+ */
25
+ export function executeListResolve(listNode, resolve, listState, deps) {
26
+ const { nodeState, resolveStates, recompute, notifyChanged, notify, setEntitiesRaw, syncListValuesCache, store, } = deps;
27
+ const state = resolveStates.get(listNode);
28
+ if (!state)
29
+ return Promise.resolve();
30
+ // Дедупликация
31
+ if (state.status === "pending" && state.promise) {
32
+ return state.promise;
33
+ }
34
+ state.status = "pending";
35
+ state.attempt = 0;
36
+ state.error = null;
37
+ // Устанавливаем loading = true в nodeState для listNode
38
+ const nodeSt = nodeState.get(listNode);
39
+ nodeState.set(listNode, { ...(nodeSt ?? DEFAULT_LIST_STATE), loading: true });
40
+ // Уведомляем об изменении loading: true.
41
+ // U2: бампаем и сам ListState (новый ключ трекинга), и listNode (мост для тестов).
42
+ const loadingChanged = new Set([listNode, listState]);
43
+ recomputeAndNotify(loadingChanged, recompute, notifyChanged);
44
+ const promise = (async () => {
45
+ let contextTracking = null;
46
+ let valuesTracking = null;
47
+ try {
48
+ // Вызываем resolver со снимком текущих значений через tracking proxy
49
+ // для автоматической регистрации зависимостей (deps)
50
+ const { getValues } = deps;
51
+ const freshValues = getValues();
52
+ valuesTracking = createValuesTrackingProxy(freshValues);
53
+ // Оборачиваем store.context в tracking proxy для автоматических контекстных зависимостей
54
+ contextTracking = createContextTrackingProxy(store.context);
55
+ const storeProxy = new Proxy(store, {
56
+ get(target, key) {
57
+ if (key === "context")
58
+ return contextTracking.proxy;
59
+ return target[key];
60
+ },
61
+ });
62
+ const result = await resolve.resolver(valuesTracking.proxy, storeProxy);
63
+ // Прерываем, если статус изменился во время ожидания (например, reset)
64
+ if (state.status !== "pending")
65
+ return result;
66
+ // ── Success path ────────────────────────────────────────────────────
67
+ // U2: ListState — ключ трекинга; listNode — мост обратной совместимости.
68
+ const changed = new Set([listNode, listState]);
69
+ if (Array.isArray(result) && result.length > 0) {
70
+ // Upsert всех сущностей (регистрирует листья, возвращает изменённые узлы)
71
+ // Pass listNode so that entity field resolves are triggered automatically (Phase 4).
72
+ const entityChanged = setEntitiesRaw(result, listNode);
73
+ for (const n of entityChanged)
74
+ changed.add(n);
75
+ // Обновляем itemIds из результата resolver-а
76
+ listState.itemIds = result
77
+ .map((item) => item.id)
78
+ .filter((id) => typeof id === "string" && id !== "");
79
+ // Сохраняем как начальный снимок для dirty-трекинга
80
+ listState.initialItemIds = [...listState.itemIds];
81
+ // Синхронизируем valuesCache.values[listKey]
82
+ syncListValuesCache(listState);
83
+ }
84
+ else if (Array.isArray(result) && result.length === 0) {
85
+ // Пустой результат — очищаем список
86
+ listState.itemIds = [];
87
+ listState.initialItemIds = [];
88
+ syncListValuesCache(listState);
89
+ }
90
+ // Авто-зависимости: явные deps + values tracking + контекстные зависимости
91
+ const mergedDeps = new Set(resolve.deps ?? []);
92
+ for (const p of valuesTracking.getAccessedPaths())
93
+ mergedDeps.add(p);
94
+ if (contextTracking) {
95
+ for (const key of contextTracking.getAccessedKeys()) {
96
+ mergedDeps.add(`$context.${key}`);
97
+ }
98
+ }
99
+ state.dependencies = mergedDeps;
100
+ // Обновляем loading = false, status = resolved
101
+ const updatedSt = nodeState.get(listNode);
102
+ nodeState.set(listNode, { ...(updatedSt ?? DEFAULT_LIST_STATE), loading: false });
103
+ state.status = "resolved";
104
+ state.error = null;
105
+ recomputeAndNotify(changed, recompute, notifyChanged);
106
+ // Если зависимость изменилась пока были в pending — перезапускаем немедленно
107
+ if (state.pendingRetrigger) {
108
+ state.pendingRetrigger = false;
109
+ state.status = "idle";
110
+ state.promise = null;
111
+ executeListResolve(listNode, resolve, listState, deps);
112
+ }
113
+ return result;
114
+ }
115
+ catch (err) {
116
+ if (state.status !== "pending")
117
+ return;
118
+ // ── Error path ──────────────────────────────────────────────────────
119
+ const updatedSt = nodeState.get(listNode);
120
+ nodeState.set(listNode, { ...(updatedSt ?? DEFAULT_LIST_STATE), loading: false });
121
+ state.status = "error";
122
+ state.error = err;
123
+ // Сохраняем контекстные зависимости даже в случае ошибки
124
+ {
125
+ const mergedDeps = new Set(resolve.deps ?? []);
126
+ if (valuesTracking) {
127
+ for (const p of valuesTracking.getAccessedPaths())
128
+ mergedDeps.add(p);
129
+ }
130
+ if (contextTracking) {
131
+ for (const key of contextTracking.getAccessedKeys()) {
132
+ mergedDeps.add(`$context.${key}`);
133
+ }
134
+ }
135
+ state.dependencies = mergedDeps;
136
+ }
137
+ try {
138
+ resolve.onError?.(err, { notify });
139
+ }
140
+ catch {
141
+ // onError не должен бросать исключения
142
+ }
143
+ recomputeAndNotify(new Set([listNode, listState]), recompute, notifyChanged);
144
+ // Если зависимость изменилась пока были в pending — перезапускаем немедленно
145
+ if (state.pendingRetrigger) {
146
+ state.pendingRetrigger = false;
147
+ state.status = "idle";
148
+ state.promise = null;
149
+ executeListResolve(listNode, resolve, listState, deps);
150
+ }
151
+ return undefined;
152
+ }
153
+ })();
154
+ state.promise = promise;
155
+ return promise;
156
+ }
157
+ //# sourceMappingURL=executeListResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeListResolve.js","sourceRoot":"","sources":["../../../store/resolvePipeline/executeListResolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type AnyConfigNode } from "../store/types";
2
+ import type { Resolve, ResolveDeps } from "./types";
3
+ /**
4
+ * Запустить resolve для заданного узла.
5
+ *
6
+ * Пайплайн:
7
+ * 1. Проверить статус → если pending, вернуть существующий промис (дедупликация)
8
+ * 2. Установить status = pending, loading = true
9
+ * 3. Если есть optimisticResolver → запустить, применить патч (без notify, батчем)
10
+ * 4. Обернуть values в tracking write-proxy
11
+ * 5. Вызвать resolver(trackedValues)
12
+ * 6. Логика повторов: при ошибке повторять до retry.attempts раз
13
+ * 7. При успехе:
14
+ * - applyPatch(result) к поддереву узла
15
+ * - сбросить буферизованные записи (сайд-эффекты)
16
+ * - loading = false, status = resolved
17
+ * - recomputeAll (однократно)
18
+ * - notifyChanged (однократно)
19
+ * 8. При ошибке (после всех повторов):
20
+ * - onError(error, { notify })
21
+ * - loading = false, status = error
22
+ * - recomputeAll + notifyChanged
23
+ * 9. Сохранить accessedPaths для авто-зависимостей
24
+ */
25
+ export declare function executeResolve(node: AnyConfigNode, resolve: Resolve, deps: ResolveDeps): Promise<unknown>;
26
+ //# sourceMappingURL=executeResolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeResolve.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/executeResolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CAyMlB"}
@@ -0,0 +1,201 @@
1
+ import { applyPatch } from "../applyPatch/applyPatch";
2
+ import { createValuesTrackingProxy } from "./createValuesTrackingProxy";
3
+ import { createContextTrackingProxy } from "./createContextTrackingProxy";
4
+ import { mergeInitialValues } from "../dirtyTracking";
5
+ import { recomputeAndNotify } from "../compute/recompute";
6
+ import { applyPendingWrites } from "./applyPendingWrites";
7
+ // ─── Core execution ──────────────────────────────────────────────────────────
8
+ /**
9
+ * Запустить resolve для заданного узла.
10
+ *
11
+ * Пайплайн:
12
+ * 1. Проверить статус → если pending, вернуть существующий промис (дедупликация)
13
+ * 2. Установить status = pending, loading = true
14
+ * 3. Если есть optimisticResolver → запустить, применить патч (без notify, батчем)
15
+ * 4. Обернуть values в tracking write-proxy
16
+ * 5. Вызвать resolver(trackedValues)
17
+ * 6. Логика повторов: при ошибке повторять до retry.attempts раз
18
+ * 7. При успехе:
19
+ * - applyPatch(result) к поддереву узла
20
+ * - сбросить буферизованные записи (сайд-эффекты)
21
+ * - loading = false, status = resolved
22
+ * - recomputeAll (однократно)
23
+ * - notifyChanged (однократно)
24
+ * 8. При ошибке (после всех повторов):
25
+ * - onError(error, { notify })
26
+ * - loading = false, status = error
27
+ * - recomputeAll + notifyChanged
28
+ * 9. Сохранить accessedPaths для авто-зависимостей
29
+ */
30
+ export function executeResolve(node, resolve, deps) {
31
+ const { rootConfig, nodeState, resolveStates, recompute, notifyChanged, notify, getValues, initialValueMap, valuesCache, store } = deps;
32
+ const state = resolveStates.get(node);
33
+ if (!state)
34
+ return Promise.resolve();
35
+ // Дедупликация: если уже в pending, вернуть тот же промис
36
+ if (state.status === "pending" && state.promise) {
37
+ return state.promise;
38
+ }
39
+ // ── Устанавливаем состояние загрузки ───────────────────────────────────────
40
+ state.status = "pending";
41
+ state.attempt = 0;
42
+ state.error = null;
43
+ // Обновляем loading в FieldState
44
+ const nodeSt = nodeState.get(node);
45
+ if (nodeSt) {
46
+ nodeState.set(node, { ...nodeSt, loading: true });
47
+ }
48
+ else {
49
+ nodeState.set(node, {
50
+ value: undefined,
51
+ isVisible: true,
52
+ isRequired: false,
53
+ isDisabled: false,
54
+ isReadOnly: false,
55
+ loading: true,
56
+ });
57
+ }
58
+ // ── Оптимистичный resolver (синхронный) ────────────────────────────────────
59
+ const allChanged = new Set();
60
+ allChanged.add(node); // узел сам изменился (loading: true)
61
+ if (resolve.optimisticResolver) {
62
+ try {
63
+ const values = getValues();
64
+ const optimisticResult = resolve.optimisticResolver(values);
65
+ if (optimisticResult && typeof optimisticResult === "object") {
66
+ applyPatch(node, nodeState, optimisticResult, allChanged, valuesCache);
67
+ }
68
+ }
69
+ catch (error) {
70
+ // Ошибка optimistic resolver не критична — продолжаем с async resolver
71
+ console.warn('Error in optimistic resolver:', error);
72
+ }
73
+ }
74
+ // Уведомляем об изменении loading: true (и оптимистичных данных)
75
+ recomputeAndNotify(allChanged, recompute, notifyChanged);
76
+ // ── Выполнение async resolver ────────────────────────────────────────────
77
+ const retryOpts = resolve.options?.retry ?? { attempts: 0, delay: 1000 };
78
+ const maxAttempts = retryOpts.attempts;
79
+ const retryDelay = retryOpts.delay ?? 1000;
80
+ const promise = (async () => {
81
+ let lastError;
82
+ // Tracks context keys accessed in the last attempt (for saving deps on error path)
83
+ let contextTracking = null;
84
+ for (let attempt = 0; attempt <= maxAttempts; attempt++) {
85
+ state.attempt = attempt;
86
+ // Ждём перед повтором (кроме первой попытки)
87
+ if (attempt > 0) {
88
+ await new Promise((r) => setTimeout(r, retryDelay));
89
+ // Повторная проверка: если статус изменился (например, произошёл reset) — прерываем
90
+ if (state.status !== "pending")
91
+ return;
92
+ }
93
+ try {
94
+ // Создаём tracking proxy для свежего снимка values
95
+ const freshValues = getValues();
96
+ const tracking = createValuesTrackingProxy(freshValues);
97
+ // Оборачиваем store.context в tracking proxy для автоматических контекстных зависимостей
98
+ contextTracking = createContextTrackingProxy(store.context);
99
+ const storeProxy = new Proxy(store, {
100
+ get(target, key) {
101
+ if (key === "context")
102
+ return contextTracking.proxy;
103
+ return target[key];
104
+ },
105
+ });
106
+ const result = await resolve.resolver(tracking.proxy, storeProxy);
107
+ // Повторная проверка: если статус изменился во время ожидания — прерываем
108
+ if (state.status !== "pending")
109
+ return result;
110
+ // ── Успешный путь ────────────────────────────────────────────────
111
+ const changed = new Set();
112
+ changed.add(node);
113
+ // 1. Применяем результат resolver к поддереву узла
114
+ if (result && typeof result === "object") {
115
+ applyPatch(node, nodeState, result, changed, valuesCache);
116
+ // Обновляем начальный снимок для затронутых листьев (данные resolver = начальное состояние)
117
+ mergeInitialValues(node, nodeState, initialValueMap, result);
118
+ }
119
+ // 2. Сбрасываем буферизованные сайд-эффекты
120
+ const writes = tracking.getPendingWrites();
121
+ if (writes.length > 0) {
122
+ const writeChanged = applyPendingWrites(writes, rootConfig, nodeState, valuesCache);
123
+ for (const n of writeChanged)
124
+ changed.add(n);
125
+ }
126
+ // 3. Обновляем loading / status
127
+ const updatedState = nodeState.get(node);
128
+ if (updatedState) {
129
+ nodeState.set(node, { ...updatedState, loading: false });
130
+ }
131
+ state.status = "resolved";
132
+ state.error = null;
133
+ // 4. Сохраняем авто-зависимости (объединяем с явными deps)
134
+ const accessedPaths = tracking.getAccessedPaths();
135
+ const mergedDeps = new Set(resolve.deps ?? []);
136
+ for (const p of accessedPaths)
137
+ mergedDeps.add(p);
138
+ // Добавляем контекстные зависимости с префиксом $context.
139
+ for (const key of contextTracking.getAccessedKeys()) {
140
+ mergedDeps.add(`$context.${key}`);
141
+ }
142
+ state.dependencies = mergedDeps;
143
+ // 5. Recompute + notify (однократно)
144
+ recomputeAndNotify(changed, recompute, notifyChanged);
145
+ // 6. Если зависимость изменилась пока были в pending — перезапускаем немедленно
146
+ if (state.pendingRetrigger) {
147
+ state.pendingRetrigger = false;
148
+ state.status = "idle";
149
+ state.promise = null;
150
+ executeResolve(node, resolve, deps);
151
+ }
152
+ return result;
153
+ }
154
+ catch (err) {
155
+ lastError = err;
156
+ // Переходим к следующей попытке (если есть)
157
+ }
158
+ }
159
+ // ── Путь ошибки (все попытки исчерпаны) ─────────────────────────────────
160
+ if (state.status !== "pending")
161
+ return; // прерван
162
+ const changed = new Set();
163
+ changed.add(node);
164
+ // Обновляем loading / status / error
165
+ const updatedState = nodeState.get(node);
166
+ if (updatedState) {
167
+ nodeState.set(node, { ...updatedState, loading: false });
168
+ }
169
+ state.status = "error";
170
+ state.error = lastError;
171
+ // Сохраняем контекстные зависимости даже в случае ошибки
172
+ // (чтобы setContext мог ретриггерить резолверы со статусом "error")
173
+ if (contextTracking && contextTracking.getAccessedKeys().size > 0) {
174
+ const mergedDeps = new Set(resolve.deps ?? []);
175
+ for (const key of contextTracking.getAccessedKeys()) {
176
+ mergedDeps.add(`$context.${key}`);
177
+ }
178
+ state.dependencies = mergedDeps;
179
+ }
180
+ // Вызываем обработчик onError
181
+ try {
182
+ resolve.onError(lastError, { notify });
183
+ }
184
+ catch {
185
+ // onError не должен бросать исключения, но если бросил — подавляем
186
+ }
187
+ // Recompute + notify
188
+ recomputeAndNotify(changed, recompute, notifyChanged);
189
+ // Если зависимость изменилась пока были в pending — перезапускаем немедленно
190
+ if (state.pendingRetrigger) {
191
+ state.pendingRetrigger = false;
192
+ state.status = "idle";
193
+ state.promise = null;
194
+ executeResolve(node, resolve, deps);
195
+ }
196
+ return undefined;
197
+ })();
198
+ state.promise = promise;
199
+ return promise;
200
+ }
201
+ //# sourceMappingURL=executeResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeResolve.js","sourceRoot":"","sources":["../../../store/resolvePipeline/executeResolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AnyResolveEntry } from "./initResolveStates";
2
+ import type { ResolveState } from "./types";
3
+ /**
4
+ * Given a set of changed node paths, find all resolve nodes whose dependencies
5
+ * intersect and should be re-triggered.
6
+ *
7
+ * Returns nodes that need re-resolve.
8
+ */
9
+ export declare function findResolvesToRetrigger(changedPaths: Set<string>, resolveStates: Map<object, ResolveState>, resolveEntries: AnyResolveEntry[]): AnyResolveEntry[];
10
+ //# sourceMappingURL=findResolvesToRetrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findResolvesToRetrigger.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/findResolvesToRetrigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACxC,cAAc,EAAE,eAAe,EAAE,GAChC,eAAe,EAAE,CAqBnB"}
@@ -0,0 +1,29 @@
1
+ // ─── Check if changed paths intersect with resolve dependencies ──────────────
2
+ /**
3
+ * Given a set of changed node paths, find all resolve nodes whose dependencies
4
+ * intersect and should be re-triggered.
5
+ *
6
+ * Returns nodes that need re-resolve.
7
+ */
8
+ export function findResolvesToRetrigger(changedPaths, resolveStates, resolveEntries) {
9
+ if (changedPaths.size === 0)
10
+ return [];
11
+ const toRetrigger = [];
12
+ for (const entry of resolveEntries) {
13
+ const state = resolveStates.get(entry.node);
14
+ if (!state)
15
+ continue;
16
+ // Only retrigger resolved or error nodes (not idle or pending)
17
+ if (state.status !== "resolved" && state.status !== "error")
18
+ continue;
19
+ // Check if any dependency matches a changed path
20
+ for (const dep of state.dependencies) {
21
+ if (changedPaths.has(dep)) {
22
+ toRetrigger.push(entry);
23
+ break;
24
+ }
25
+ }
26
+ }
27
+ return toRetrigger;
28
+ }
29
+ //# sourceMappingURL=findResolvesToRetrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findResolvesToRetrigger.js","sourceRoot":"","sources":["../../../store/resolvePipeline/findResolvesToRetrigger.ts"],"names":[],"mappings":"AAGA,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAAyB,EACzB,aAAwC,EACxC,cAAiC;IAEjC,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,WAAW,GAAsB,EAAE,CAAC;IAE1C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,+DAA+D;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,SAAS;QAEtE,iDAAiD;QACjD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * resolvePipeline — core of the async resolver system.
3
+ *
4
+ * Responsibilities:
5
+ * - Type definitions (Resolve, ResolveState, etc.)
6
+ * - Initialization of resolve states for all nodes with `resolve` in config
7
+ * - Execution of resolve with retry, batching, optimistic updates
8
+ * - Auto-deps tracking via createValuesTrackingProxy
9
+ * - Side-effect buffering and single-flush application
10
+ */
11
+ export type { NotifyFn, ResolveErrorContext, Resolve, ResolveStatus, ResolveState, ResolveDeps } from "./types";
12
+ export { EntityResolveStateMap } from "./types";
13
+ export type { ListResolveDeps } from "./executeListResolve";
14
+ export type { AnyResolveEntry, GroupResolveEntry, ListResolveEntry, TemplateFieldResolveEntry } from "./initResolveStates";
15
+ export { initResolveStates } from "./initResolveStates";
16
+ export { executeResolve } from "./executeResolve";
17
+ export { executeListResolve } from "./executeListResolve";
18
+ export { executeEntityFieldResolve } from "./executeEntityFieldResolve";
19
+ export type { EntityFieldResolveDeps } from "./executeEntityFieldResolve";
20
+ export { findResolvesToRetrigger } from "./findResolvesToRetrigger";
21
+ export { resetResolveState } from "./resetResolveState";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC3H,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * resolvePipeline — core of the async resolver system.
3
+ *
4
+ * Responsibilities:
5
+ * - Type definitions (Resolve, ResolveState, etc.)
6
+ * - Initialization of resolve states for all nodes with `resolve` in config
7
+ * - Execution of resolve with retry, batching, optimistic updates
8
+ * - Auto-deps tracking via createValuesTrackingProxy
9
+ * - Side-effect buffering and single-flush application
10
+ */
11
+ export { EntityResolveStateMap } from "./types";
12
+ export { initResolveStates } from "./initResolveStates";
13
+ export { executeResolve } from "./executeResolve";
14
+ export { executeListResolve } from "./executeListResolve";
15
+ export { executeEntityFieldResolve } from "./executeEntityFieldResolve";
16
+ export { findResolvesToRetrigger } from "./findResolvesToRetrigger";
17
+ export { resetResolveState } from "./resetResolveState";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../store/resolvePipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type AnyConfigNode, type ListConfig } from "../store/types";
2
+ import type { Resolve, ResolveState } from "./types";
3
+ export type GroupResolveEntry = {
4
+ node: AnyConfigNode;
5
+ resolve: Resolve;
6
+ isListNode: false;
7
+ isTemplateField?: false;
8
+ };
9
+ export type ListResolveEntry = {
10
+ node: AnyConfigNode;
11
+ resolve: ListConfig["resolve"];
12
+ isListNode: true;
13
+ isTemplateField?: false;
14
+ };
15
+ /**
16
+ * Entry for a template field inside a list that has a `resolve` config.
17
+ * Resolve state is per-entity (created lazily), not global — so no ResolveState
18
+ * is created in initResolveStates for these entries.
19
+ */
20
+ export type TemplateFieldResolveEntry = {
21
+ /** The template field node that has `resolve`. */
22
+ node: AnyConfigNode;
23
+ resolve: Resolve;
24
+ isListNode: false;
25
+ /** Marker: this is a per-entity field resolve — state is managed per (entityId, node). */
26
+ isTemplateField: true;
27
+ /** The ListNode array that owns this template (parent list). */
28
+ listNode: AnyConfigNode;
29
+ /** The key of this field within the template (e.g. "isActive"). Used for skipIfResolved check. */
30
+ fieldKey: string;
31
+ };
32
+ export type AnyResolveEntry = GroupResolveEntry | ListResolveEntry | TemplateFieldResolveEntry;
33
+ /**
34
+ * Recursively finds all nodes with `resolve` in the config tree.
35
+ * Initializes ResolveState for each of them.
36
+ * Returns the list of { node, resolve, isListNode } entries.
37
+ *
38
+ * Phase 2C: also walks ListNodes and extracts listConfig.resolve.
39
+ */
40
+ export declare function initResolveStates(rootConfig: AnyConfigNode, resolveStates: Map<object, ResolveState>): AnyResolveEntry[];
41
+ //# sourceMappingURL=initResolveStates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initResolveStates.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/initResolveStates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAKrD,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,KAAK,CAAC;IAAC,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACtH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAAC,UAAU,EAAE,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAElI;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,kDAAkD;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;IAClB,0FAA0F;IAC1F,eAAe,EAAE,IAAI,CAAC;IACtB,gEAAgE;IAChE,QAAQ,EAAE,aAAa,CAAC;IACxB,kGAAkG;IAClG,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,yBAAyB,CAAC;AAI/F;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,aAAa,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACvC,eAAe,EAAE,CAyFnB"}