palistor 0.0.25 → 0.0.26

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 (255) hide show
  1. package/README.md +574 -542
  2. package/README.ru.md +979 -0
  3. package/dist/index.d.ts +16 -27
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +17 -28
  6. package/dist/index.js.map +1 -1
  7. package/dist/react/createTrackingProxy.d.ts +27 -27
  8. package/dist/react/createTrackingProxy.d.ts.map +1 -1
  9. package/dist/react/createTrackingProxy.js +54 -53
  10. package/dist/react/createTrackingProxy.js.map +1 -1
  11. package/dist/react/useForm.d.ts +42 -43
  12. package/dist/react/useForm.d.ts.map +1 -1
  13. package/dist/react/useForm.js +38 -38
  14. package/dist/react/useForm.js.map +1 -1
  15. package/dist/react/usePersist.d.ts +14 -14
  16. package/dist/react/usePersist.js +18 -18
  17. package/dist/react/usePersist.js.map +1 -1
  18. package/dist/react/useStoreContext.d.ts +11 -11
  19. package/dist/react/useStoreContext.js +11 -11
  20. package/dist/react/useTranslator.d.ts +12 -12
  21. package/dist/react/useTranslator.js +12 -12
  22. package/dist/store/applyPatch/applyPatch.d.ts +8 -8
  23. package/dist/store/applyPatch/applyPatch.js +12 -12
  24. package/dist/store/applyPatch/applyPatch.js.map +1 -1
  25. package/dist/store/buildProxy/buildEntityProjectionProxy.js +6 -6
  26. package/dist/store/buildProxy/buildEntityProjectionProxy.js.map +1 -1
  27. package/dist/store/buildProxy/buildListProxy.d.ts +8 -8
  28. package/dist/store/buildProxy/buildListProxy.js +30 -30
  29. package/dist/store/buildProxy/buildListProxy.js.map +1 -1
  30. package/dist/store/buildProxy/buildProxy.d.ts +8 -8
  31. package/dist/store/buildProxy/buildProxy.js +39 -39
  32. package/dist/store/buildProxy/buildProxy.js.map +1 -1
  33. package/dist/store/buildProxy/computeProxyKeys.d.ts +8 -8
  34. package/dist/store/buildProxy/computeProxyKeys.js +9 -9
  35. package/dist/store/buildProxy/computeProxyKeys.js.map +1 -1
  36. package/dist/store/buildProxy/handleLazyResolve.d.ts +3 -3
  37. package/dist/store/buildProxy/handleLazyResolve.js +3 -3
  38. package/dist/store/buildProxy/initProxyCaches.d.ts +5 -5
  39. package/dist/store/buildProxy/initProxyCaches.js +5 -5
  40. package/dist/store/compute/computeFieldState.d.ts +3 -3
  41. package/dist/store/compute/computeFieldState.js +8 -8
  42. package/dist/store/compute/computeFieldState.js.map +1 -1
  43. package/dist/store/compute/fieldStateChanged.d.ts +1 -1
  44. package/dist/store/compute/fieldStateChanged.js +1 -1
  45. package/dist/store/compute/recompute/collectGroupComputeNodes.d.ts +4 -4
  46. package/dist/store/compute/recompute/collectGroupComputeNodes.js +7 -7
  47. package/dist/store/compute/recompute/collectGroupComputeNodes.js.map +1 -1
  48. package/dist/store/compute/recompute/recomputeAndNotify.d.ts +3 -3
  49. package/dist/store/compute/recompute/recomputeAndNotify.js +3 -3
  50. package/dist/store/compute/recompute/recomputeLeaves.d.ts +11 -10
  51. package/dist/store/compute/recompute/recomputeLeaves.d.ts.map +1 -1
  52. package/dist/store/compute/recompute/recomputeLeaves.js +26 -27
  53. package/dist/store/compute/recompute/recomputeLeaves.js.map +1 -1
  54. package/dist/store/compute/recompute/recomputeTargeted.d.ts +7 -7
  55. package/dist/store/compute/recompute/recomputeTargeted.js +12 -12
  56. package/dist/store/compute/recompute/recomputeTargeted.js.map +1 -1
  57. package/dist/store/compute/recompute/topologicalSortComputed.d.ts +4 -4
  58. package/dist/store/compute/recompute/topologicalSortComputed.d.ts.map +1 -1
  59. package/dist/store/compute/recompute/topologicalSortComputed.js +11 -13
  60. package/dist/store/compute/recompute/topologicalSortComputed.js.map +1 -1
  61. package/dist/store/compute/recompute/types.d.ts +4 -4
  62. package/dist/store/compute/resolveFlag.d.ts +2 -2
  63. package/dist/store/compute/resolveFlag.js +2 -2
  64. package/dist/store/compute/resolveString.d.ts +5 -5
  65. package/dist/store/compute/resolveString.js +6 -6
  66. package/dist/store/compute/resolveString.js.map +1 -1
  67. package/dist/store/compute/types.d.ts +3 -3
  68. package/dist/store/constants.d.ts +48 -48
  69. package/dist/store/constants.d.ts.map +1 -1
  70. package/dist/store/constants.js +45 -45
  71. package/dist/store/defineFieldMapping.d.ts +21 -19
  72. package/dist/store/defineFieldMapping.d.ts.map +1 -1
  73. package/dist/store/defineFieldMapping.js +21 -19
  74. package/dist/store/defineFieldMapping.js.map +1 -1
  75. package/dist/store/dirtyTracking/collectInitialSnapshot.js +1 -1
  76. package/dist/store/dirtyTracking/collectInitialSnapshot.js.map +1 -1
  77. package/dist/store/dirtyTracking/recomputeDirtyTargeted.d.ts +3 -3
  78. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js +11 -11
  79. package/dist/store/dirtyTracking/recomputeDirtyTargeted.js.map +1 -1
  80. package/dist/store/dirtyTracking/setGroupRevalidate.d.ts +6 -6
  81. package/dist/store/dirtyTracking/setGroupRevalidate.js +7 -7
  82. package/dist/store/dirtyTracking/setGroupRevalidate.js.map +1 -1
  83. package/dist/store/entityRegistry/entityRegistry.d.ts +72 -72
  84. package/dist/store/entityRegistry/entityRegistry.d.ts.map +1 -1
  85. package/dist/store/entityRegistry/entityRegistry.js +91 -91
  86. package/dist/store/entityRegistry/entityRegistry.js.map +1 -1
  87. package/dist/store/entityRegistry/generateId.d.ts +3 -3
  88. package/dist/store/entityRegistry/generateId.js +3 -3
  89. package/dist/store/entityRegistry/types.d.ts +17 -17
  90. package/dist/store/entityRegistry/types.d.ts.map +1 -1
  91. package/dist/store/flow/buildFlowStepsProxy.d.ts +9 -9
  92. package/dist/store/flow/buildFlowStepsProxy.js +13 -13
  93. package/dist/store/flow/buildFlowStepsProxy.js.map +1 -1
  94. package/dist/store/flow/defineFlow.d.ts +27 -25
  95. package/dist/store/flow/defineFlow.d.ts.map +1 -1
  96. package/dist/store/flow/defineFlow.js +15 -13
  97. package/dist/store/flow/defineFlow.js.map +1 -1
  98. package/dist/store/flow/flowApi.d.ts +3 -2
  99. package/dist/store/flow/flowApi.d.ts.map +1 -1
  100. package/dist/store/flow/flowApi.js +1 -1
  101. package/dist/store/flow/flowApi.js.map +1 -1
  102. package/dist/store/flow/flowNavigation.d.ts +65 -63
  103. package/dist/store/flow/flowNavigation.d.ts.map +1 -1
  104. package/dist/store/flow/flowNavigation.js +74 -72
  105. package/dist/store/flow/flowNavigation.js.map +1 -1
  106. package/dist/store/flow/flowState.d.ts +16 -16
  107. package/dist/store/flow/flowState.d.ts.map +1 -1
  108. package/dist/store/flow/flowState.js +5 -5
  109. package/dist/store/flow/flowState.js.map +1 -1
  110. package/dist/store/groupDeps/createGroupDeps.d.ts +3 -3
  111. package/dist/store/groupDeps/createGroupDeps.js +6 -6
  112. package/dist/store/groupDeps/createGroupDeps.js.map +1 -1
  113. package/dist/store/groupDeps/createTrackingValues.d.ts +9 -9
  114. package/dist/store/groupDeps/createTrackingValues.js +11 -11
  115. package/dist/store/groupDeps/createTrackingValues.js.map +1 -1
  116. package/dist/store/groupDeps/getNodeGroupPath.d.ts +3 -3
  117. package/dist/store/groupDeps/getNodeGroupPath.js +5 -5
  118. package/dist/store/groupDeps/getNodeGroupPath.js.map +1 -1
  119. package/dist/store/groupDeps/getRecipientGroups.d.ts +1 -1
  120. package/dist/store/groupDeps/getRecipientGroups.js +1 -1
  121. package/dist/store/groupDeps/groupDeps.d.ts +7 -7
  122. package/dist/store/groupDeps/groupDeps.js +7 -7
  123. package/dist/store/groupDeps/pairKey.d.ts +3 -3
  124. package/dist/store/groupDeps/pairKey.d.ts.map +1 -1
  125. package/dist/store/groupDeps/pairKey.js +4 -4
  126. package/dist/store/groupDeps/pairKey.js.map +1 -1
  127. package/dist/store/groupDeps/resolveGroupByPath.d.ts +3 -3
  128. package/dist/store/groupDeps/resolveGroupByPath.js +3 -3
  129. package/dist/store/init/createNotificationHub.d.ts +31 -31
  130. package/dist/store/init/createNotificationHub.d.ts.map +1 -1
  131. package/dist/store/init/createNotificationHub.js +36 -37
  132. package/dist/store/init/createNotificationHub.js.map +1 -1
  133. package/dist/store/init/createResolveManager.d.ts +72 -69
  134. package/dist/store/init/createResolveManager.d.ts.map +1 -1
  135. package/dist/store/init/createResolveManager.js +101 -98
  136. package/dist/store/init/createResolveManager.js.map +1 -1
  137. package/dist/store/init/initGroupSubmitting.d.ts +2 -2
  138. package/dist/store/init/initGroupSubmitting.js +4 -4
  139. package/dist/store/init/initGroupSubmitting.js.map +1 -1
  140. package/dist/store/normalizeConfig.d.ts +20 -18
  141. package/dist/store/normalizeConfig.d.ts.map +1 -1
  142. package/dist/store/normalizeConfig.js +31 -29
  143. package/dist/store/normalizeConfig.js.map +1 -1
  144. package/dist/store/onChangePipeline/computeFieldKey.d.ts +2 -2
  145. package/dist/store/onChangePipeline/computeFieldKey.js +2 -2
  146. package/dist/store/onChangePipeline/findOnChangeAncestors.d.ts +2 -2
  147. package/dist/store/onChangePipeline/findOnChangeAncestors.js +4 -4
  148. package/dist/store/onChangePipeline/findOnChangeAncestors.js.map +1 -1
  149. package/dist/store/onChangePipeline/onChangePipeline.d.ts +13 -12
  150. package/dist/store/onChangePipeline/onChangePipeline.d.ts.map +1 -1
  151. package/dist/store/onChangePipeline/onChangePipeline.js +14 -13
  152. package/dist/store/onChangePipeline/onChangePipeline.js.map +1 -1
  153. package/dist/store/persist/drivers.d.ts +7 -7
  154. package/dist/store/persist/drivers.js +8 -8
  155. package/dist/store/persist/drivers.js.map +1 -1
  156. package/dist/store/persist/index.d.ts +1 -1
  157. package/dist/store/persist/persistManager.d.ts +23 -23
  158. package/dist/store/persist/persistManager.d.ts.map +1 -1
  159. package/dist/store/persist/persistManager.js +51 -51
  160. package/dist/store/persist/persistManager.js.map +1 -1
  161. package/dist/store/persist/types.d.ts +23 -23
  162. package/dist/store/persist/types.d.ts.map +1 -1
  163. package/dist/store/persist/types.js +4 -4
  164. package/dist/store/resetPipeline/buildResetPatch.d.ts +5 -5
  165. package/dist/store/resetPipeline/buildResetPatch.js +5 -5
  166. package/dist/store/resetPipeline/collectDefaults.d.ts +5 -5
  167. package/dist/store/resetPipeline/collectDefaults.js +6 -6
  168. package/dist/store/resetPipeline/collectDefaults.js.map +1 -1
  169. package/dist/store/resetPipeline/resetPipeline.d.ts +7 -7
  170. package/dist/store/resetPipeline/resetPipeline.js +15 -15
  171. package/dist/store/resetPipeline/resetPipeline.js.map +1 -1
  172. package/dist/store/resolvePipeline/applyPendingWrites.d.ts +10 -10
  173. package/dist/store/resolvePipeline/applyPendingWrites.d.ts.map +1 -1
  174. package/dist/store/resolvePipeline/applyPendingWrites.js +35 -38
  175. package/dist/store/resolvePipeline/applyPendingWrites.js.map +1 -1
  176. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts +8 -7
  177. package/dist/store/resolvePipeline/createContextTrackingProxy.d.ts.map +1 -1
  178. package/dist/store/resolvePipeline/createContextTrackingProxy.js +6 -5
  179. package/dist/store/resolvePipeline/createContextTrackingProxy.js.map +1 -1
  180. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts +43 -43
  181. package/dist/store/resolvePipeline/createValuesTrackingProxy.d.ts.map +1 -1
  182. package/dist/store/resolvePipeline/createValuesTrackingProxy.js +70 -70
  183. package/dist/store/resolvePipeline/createValuesTrackingProxy.js.map +1 -1
  184. package/dist/store/resolvePipeline/executeListResolve.d.ts +14 -14
  185. package/dist/store/resolvePipeline/executeListResolve.js +27 -27
  186. package/dist/store/resolvePipeline/executeListResolve.js.map +1 -1
  187. package/dist/store/resolvePipeline/executeResolve.d.ts +15 -15
  188. package/dist/store/resolvePipeline/executeResolve.js +46 -46
  189. package/dist/store/resolvePipeline/executeResolve.js.map +1 -1
  190. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts +61 -61
  191. package/dist/store/store/NodeRegistry/nodeRegistry.d.ts.map +1 -1
  192. package/dist/store/store/NodeRegistry/nodeRegistry.js +85 -86
  193. package/dist/store/store/NodeRegistry/nodeRegistry.js.map +1 -1
  194. package/dist/store/store/NodeRegistry/nodeUtils.d.ts +5 -5
  195. package/dist/store/store/NodeRegistry/nodeUtils.d.ts.map +1 -1
  196. package/dist/store/store/NodeRegistry/nodeUtils.js +5 -5
  197. package/dist/store/store/NodeRegistry/nodeUtils.js.map +1 -1
  198. package/dist/store/store/groupDepsMap.d.ts +23 -23
  199. package/dist/store/store/groupDepsMap.d.ts.map +1 -1
  200. package/dist/store/store/groupDepsMap.js +35 -34
  201. package/dist/store/store/groupDepsMap.js.map +1 -1
  202. package/dist/store/store/hasComputedProps.d.ts +2 -2
  203. package/dist/store/store/hasComputedProps.js +2 -2
  204. package/dist/store/store/nodeMap.d.ts +5 -5
  205. package/dist/store/store/nodeMap.js +7 -7
  206. package/dist/store/store/nodeMap.js.map +1 -1
  207. package/dist/store/store/palistor.d.ts +80 -80
  208. package/dist/store/store/palistor.d.ts.map +1 -1
  209. package/dist/store/store/palistor.js +149 -169
  210. package/dist/store/store/palistor.js.map +1 -1
  211. package/dist/store/store/registerNodes.d.ts +10 -10
  212. package/dist/store/store/registerNodes.js +15 -15
  213. package/dist/store/store/registerNodes.js.map +1 -1
  214. package/dist/store/store/serviceRegistry.d.ts +8 -8
  215. package/dist/store/store/serviceRegistry.d.ts.map +1 -1
  216. package/dist/store/store/serviceRegistry.js +8 -8
  217. package/dist/store/store/serviceRegistry.js.map +1 -1
  218. package/dist/store/store/types.d.ts +236 -234
  219. package/dist/store/store/types.d.ts.map +1 -1
  220. package/dist/store/submitPipeline/applyLeafBeforeSubmit.d.ts +2 -2
  221. package/dist/store/submitPipeline/applyLeafBeforeSubmit.js +2 -2
  222. package/dist/store/submitPipeline/collectLeafStates.d.ts +2 -2
  223. package/dist/store/submitPipeline/collectLeafStates.js +2 -2
  224. package/dist/store/submitPipeline/submitPipeline.d.ts +8 -8
  225. package/dist/store/submitPipeline/submitPipeline.js +12 -12
  226. package/dist/store/submitPipeline/submitPipeline.js.map +1 -1
  227. package/dist/store/submitPipeline/types.d.ts +1 -1
  228. package/dist/store/submitPipeline/types.d.ts.map +1 -1
  229. package/dist/store/traversal/nodeClassifier.d.ts +9 -9
  230. package/dist/store/traversal/nodeClassifier.d.ts.map +1 -1
  231. package/dist/store/traversal/nodeClassifier.js +11 -11
  232. package/dist/store/traversal/nodeClassifier.js.map +1 -1
  233. package/dist/store/traversal/walkFull.d.ts +14 -14
  234. package/dist/store/traversal/walkFull.js +2 -2
  235. package/dist/store/valuesCache/valuesCache.d.ts +9 -9
  236. package/dist/store/valuesCache/valuesCache.d.ts.map +1 -1
  237. package/dist/store/valuesCache/valuesCache.js +6 -6
  238. package/dist/store/writePipeline/formatPatch.d.ts +5 -5
  239. package/dist/store/writePipeline/formatPatch.js +7 -7
  240. package/dist/store/writePipeline/formatPatch.js.map +1 -1
  241. package/dist/store/writePipeline/formatValue.d.ts +5 -5
  242. package/dist/store/writePipeline/formatValue.js +5 -5
  243. package/dist/store/writePipeline/mergeChanged.d.ts +4 -4
  244. package/dist/store/writePipeline/mergeChanged.js +4 -4
  245. package/dist/store/writePipeline/runSetter.d.ts +6 -6
  246. package/dist/store/writePipeline/runSetter.js +8 -8
  247. package/dist/store/writePipeline/storeValue.d.ts +3 -3
  248. package/dist/store/writePipeline/storeValue.js +3 -3
  249. package/dist/store/writePipeline/types.d.ts +4 -4
  250. package/dist/store/writePipeline/types.d.ts.map +1 -1
  251. package/dist/store/writePipeline/writePipeline.d.ts +7 -7
  252. package/dist/store/writePipeline/writePipeline.d.ts.map +1 -1
  253. package/dist/store/writePipeline/writePipeline.js +15 -15
  254. package/dist/store/writePipeline/writePipeline.js.map +1 -1
  255. package/package.json +11 -4
@@ -3,24 +3,24 @@ import { type PendingWrite } from "./createValuesTrackingProxy";
3
3
  import type { FieldState } from "../compute/index";
4
4
  import type { ValuesCache } from "../valuesCache/valuesCache";
5
5
  /**
6
- * Сбрасывает все буферизированные записи из одного запуска резолвера в реальное хранилище.
6
+ * Flushes all writes buffered during one resolver run into the real store.
7
7
  *
8
- * Преобразует каждый плоский путь (через точку) обратно во вложенную структуру патча,
9
- * которую понимает applyPatch(), затем применяет его.
8
+ * Converts each flat (dot-separated) path back into the nested patch
9
+ * structure applyPatch() understands, then applies it.
10
10
  *
11
- * Пример:
11
+ * Example:
12
12
  * PendingWrite { path: "user.vehicleExists", value: false }
13
13
  * → patch = { user: { vehicleExists: false } }
14
14
  * → applyPatch(rootConfig, nodeState, patch, changed, valuesCache)
15
15
  *
16
- * Несколько уровней вложенности работают аналогично:
16
+ * Deeper nesting works the same way:
17
17
  * path: "a.b.c" → patch = { a: { b: { c: value } } }
18
18
  *
19
- * @param writes — записи, буферизированные createValuesTrackingProxy во время выполнения резолвера
20
- * @param rootConfig — корень дерева конфига полей (используется applyPatch для поиска узлов)
21
- * @param nodeState — состояние узлов в рантайме (флаги dirty, ошибки и т.д.)
22
- * @param valuesCache — изменяемый кэш значений, который applyPatch обновляет на месте
23
- * @returns — множество узлов конфига, значение которых реально изменилось (для отслеживания зависимостей)
19
+ * @param writes — writes buffered by createValuesTrackingProxy during the resolver run
20
+ * @param rootConfig — root of the field config tree (used by applyPatch to find nodes)
21
+ * @param nodeState — runtime node state (dirty flags, errors, etc.)
22
+ * @param valuesCache — mutable values cache that applyPatch updates in place
23
+ * @returns — set of config nodes whose value actually changed (for dependency tracking)
24
24
  */
25
25
  export declare function applyPendingWrites(writes: PendingWrite[], rootConfig: AnyConfigNode, nodeState: WeakMap<object, FieldState>, valuesCache: ValuesCache): Set<object>;
26
26
  //# sourceMappingURL=applyPendingWrites.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyPendingWrites.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/applyPendingWrites.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAiB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,GAAG,CAAC,MAAM,CAAC,CAkCb"}
1
+ {"version":3,"file":"applyPendingWrites.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/applyPendingWrites.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAiB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,GAAG,CAAC,MAAM,CAAC,CA+Bb"}
@@ -1,68 +1,65 @@
1
1
  import { applyPatch } from "../applyPatch/applyPatch";
2
- // ─── Применение буферизированных записей ────────────────────────────────────
2
+ // ─── Applying buffered writes ────────────────────────────────────────────────
3
3
  //
4
- // Это вторая половина пайплайна отложенных записей.
4
+ // This is the second half of the deferred-write pipeline.
5
5
  //
6
- // КРАТКОЕ ОПИСАНИЕ ПОТОКА:
7
- // 1. Резолвер запускается с прокси из createValuesTrackingProxy().
8
- // 2. Каждое `values.x.y = z` внутри резолвера перехватывается и сохраняется как
9
- // PendingWrite { path: "x.y", value: z } — ничего не мутируется.
10
- // 3. После возврата резолвера вызывается applyPendingWrites() со
11
- // собранным списком PendingWrite-записей.
12
- // 4. Для каждой записи восстанавливаем вложенный патч-объект, который ожидает applyPatch(),
13
- // затем вызываем applyPatch() для реальной записи в хранилище.
14
- // 5. applyPatch() фиксирует узлы конфига, которые изменились, в множество `changed`.
15
- // 6. Вызывающий код использует `changed`, чтобы решить, какие зависимые резолверы перезапустить.
6
+ // FLOW OVERVIEW:
7
+ // 1. The resolver runs with the proxy from createValuesTrackingProxy().
8
+ // 2. Every `values.x.y = z` inside the resolver is intercepted and stored as
9
+ // PendingWrite { path: "x.y", value: z } — nothing is mutated.
10
+ // 3. After the resolver returns, applyPendingWrites() is called with the
11
+ // collected PendingWrite list.
12
+ // 4. For each write, the nested patch object applyPatch() expects is rebuilt,
13
+ // then applyPatch() performs the real store write.
14
+ // 5. applyPatch() records the config nodes that changed into the `changed` set.
15
+ // 6. The caller uses `changed` to decide which dependent resolvers to re-run.
16
16
  /**
17
- * Сбрасывает все буферизированные записи из одного запуска резолвера в реальное хранилище.
17
+ * Flushes all writes buffered during one resolver run into the real store.
18
18
  *
19
- * Преобразует каждый плоский путь (через точку) обратно во вложенную структуру патча,
20
- * которую понимает applyPatch(), затем применяет его.
19
+ * Converts each flat (dot-separated) path back into the nested patch
20
+ * structure applyPatch() understands, then applies it.
21
21
  *
22
- * Пример:
22
+ * Example:
23
23
  * PendingWrite { path: "user.vehicleExists", value: false }
24
24
  * → patch = { user: { vehicleExists: false } }
25
25
  * → applyPatch(rootConfig, nodeState, patch, changed, valuesCache)
26
26
  *
27
- * Несколько уровней вложенности работают аналогично:
27
+ * Deeper nesting works the same way:
28
28
  * path: "a.b.c" → patch = { a: { b: { c: value } } }
29
29
  *
30
- * @param writes — записи, буферизированные createValuesTrackingProxy во время выполнения резолвера
31
- * @param rootConfig — корень дерева конфига полей (используется applyPatch для поиска узлов)
32
- * @param nodeState — состояние узлов в рантайме (флаги dirty, ошибки и т.д.)
33
- * @param valuesCache — изменяемый кэш значений, который applyPatch обновляет на месте
34
- * @returns — множество узлов конфига, значение которых реально изменилось (для отслеживания зависимостей)
30
+ * @param writes — writes buffered by createValuesTrackingProxy during the resolver run
31
+ * @param rootConfig — root of the field config tree (used by applyPatch to find nodes)
32
+ * @param nodeState — runtime node state (dirty flags, errors, etc.)
33
+ * @param valuesCache — mutable values cache that applyPatch updates in place
34
+ * @returns — set of config nodes whose value actually changed (for dependency tracking)
35
35
  */
36
36
  export function applyPendingWrites(writes, rootConfig, nodeState, valuesCache) {
37
- // Накапливает все узлы конфига, значение которых реально изменилось в ходе этого сброса.
38
- // Возвращается вызывающему коду, чтобы тот мог запланировать повторный запуск зависимых резолверов.
37
+ // Accumulates all config nodes whose value actually changed during this flush.
38
+ // Returned to the caller so it can schedule re-runs of dependent resolvers.
39
39
  const changed = new Set();
40
40
  for (const { path, value } of writes) {
41
- // ── Восстанавливаем вложенный патч из пути через точку ──────────────────
42
- // applyPatch() ожидает вложенный объект, зеркалирующий дерево конфига, а не плоский путь.
43
- // Строим его вручную, обходя сегменты пути и вкладывая объекты друг в друга.
41
+ // ── Rebuild the nested patch from the dot-path ───────────────────────────
42
+ // applyPatch() expects a nested object mirroring the config tree, not a
43
+ // flat path. Build it manually by nesting objects along the path segments.
44
44
  //
45
- // Пример: path = "user.vehicleExists"
45
+ // Example: path = "user.vehicleExists"
46
46
  // parts = ["user", "vehicleExists"]
47
- // После цикла: patch = { user: { vehicleExists: <value> } }
47
+ // After the loop: patch = { user: { vehicleExists: <value> } }
48
48
  const parts = path.split(".");
49
49
  let patch = {};
50
- let current = patch; // курсор `current` идёт вглубь строящегося вложенного объекта
50
+ let current = patch; // the `current` cursor descends into the nested object being built
51
51
  for (let i = 0; i < parts.length - 1; i++) {
52
- // Создаём промежуточный пустой объект для каждого сегмента пути, кроме последнего.
53
52
  current[parts[i]] = {};
54
53
  current = current[parts[i]];
55
54
  }
56
- // Помещаем реальное значение на листе (последний сегмент).
55
+ // Place the actual value at the leaf (the last segment).
57
56
  current[parts[parts.length - 1]] = value;
58
- // ── Применяем патч к реальному хранилищу ────────────────────────────────
59
- // applyPatch обходит rootConfig по форме патча, записывает значения в
60
- // valuesCache, обновляет nodeState (флаги dirty и т.д.) и фиксирует
61
- // в `changed` все узлы, значение которых изменилось.
57
+ // ── Apply the patch to the real store ────────────────────────────────────
58
+ // applyPatch walks rootConfig following the patch shape, writes values into
59
+ // valuesCache, updates nodeState (dirty flags etc.) and records every node
60
+ // whose value changed into `changed`.
62
61
  applyPatch(rootConfig, nodeState, patch, changed, valuesCache);
63
62
  }
64
- // Возвращаем множество изменённых узлов, чтобы пайплайн резолвов мог
65
- // запланировать повторные запуски для всего, что зависело от этих значений.
66
63
  return changed;
67
64
  }
68
65
  //# sourceMappingURL=applyPendingWrites.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyPendingWrites.js","sourceRoot":"","sources":["../../../store/resolvePipeline/applyPendingWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,+EAA+E;AAC/E,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,2BAA2B;AAC3B,qEAAqE;AACrE,kFAAkF;AAClF,sEAAsE;AACtE,mEAAmE;AACnE,+CAA+C;AAC/C,8FAA8F;AAC9F,oEAAoE;AACpE,uFAAuF;AACvF,mGAAmG;AAEnG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAsB,EACtB,UAAyB,EACzB,SAAsC,EACtC,WAAwB;IAExB,yFAAyF;IACzF,oGAAoG;IACpG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;QACrC,2EAA2E;QAC3E,0FAA0F;QAC1F,6EAA6E;QAC7E,EAAE;QACF,sCAAsC;QACtC,sCAAsC;QACtC,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,8DAA8D;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,mFAAmF;YACnF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;QACzD,CAAC;QACD,2DAA2D;QAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAEzC,2EAA2E;QAC3E,sEAAsE;QACtE,oEAAoE;QACpE,qDAAqD;QACrD,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,qEAAqE;IACrE,4EAA4E;IAC5E,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"applyPendingWrites.js","sourceRoot":"","sources":["../../../store/resolvePipeline/applyPendingWrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAMtD,gFAAgF;AAChF,EAAE;AACF,0DAA0D;AAC1D,EAAE;AACF,iBAAiB;AACjB,0EAA0E;AAC1E,+EAA+E;AAC/E,oEAAoE;AACpE,2EAA2E;AAC3E,oCAAoC;AACpC,gFAAgF;AAChF,wDAAwD;AACxD,kFAAkF;AAClF,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAsB,EACtB,UAAyB,EACzB,SAAsC,EACtC,WAAwB;IAExB,+EAA+E;IAC/E,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;QACrC,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,EAAE;QACF,uCAAuC;QACvC,sCAAsC;QACtC,iEAAiE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,GAA4B,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,mEAAmE;QACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;QACzD,CAAC;QACD,yDAAyD;QACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAEzC,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,sCAAsC;QACtC,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,15 +1,16 @@
1
1
  /**
2
- * createContextTrackingProxy — оборачивает плоский объект контекста в read-only Proxy,
3
- * который записывает ключи, к которым обращался резолвер.
2
+ * createContextTrackingProxy — wraps the flat context object in a read-only
3
+ * Proxy that records the keys the resolver accessed.
4
4
  *
5
- * Используется в executeResolve для автоматического определения контекстных зависимостей:
6
- * если резолвер читает `store.context.accountId`, то `$context.accountId` добавляется
7
- * в auto-deps, и резолвер перезапустится при изменении этого ключа через `setContext`.
5
+ * Used in executeResolve to detect context dependencies automatically:
6
+ * when a resolver reads `store.context.accountId`, `$context.accountId` is
7
+ * added to the auto-deps, and the resolver re-runs when that key changes via
8
+ * `setContext`.
8
9
  */
9
10
  export interface ContextTrackingResult {
10
- /** Прокси над context — передаётся внутри storeProxy в resolver */
11
+ /** Proxy over the context — handed to the resolver inside storeProxy */
11
12
  proxy: Record<string, unknown>;
12
- /** Ключи контекста, к которым обратился резолвер */
13
+ /** Context keys the resolver accessed */
13
14
  getAccessedKeys: () => Set<string>;
14
15
  }
15
16
  export declare function createContextTrackingProxy(context: Record<string, unknown>): ContextTrackingResult;
@@ -1 +1 @@
1
- {"version":3,"file":"createContextTrackingProxy.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/createContextTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oDAAoD;IACpD,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,qBAAqB,CAoBvB"}
1
+ {"version":3,"file":"createContextTrackingProxy.d.ts","sourceRoot":"","sources":["../../../store/resolvePipeline/createContextTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,yCAAyC;IACzC,eAAe,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,qBAAqB,CAoBvB"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * createContextTrackingProxy — оборачивает плоский объект контекста в read-only Proxy,
3
- * который записывает ключи, к которым обращался резолвер.
2
+ * createContextTrackingProxy — wraps the flat context object in a read-only
3
+ * Proxy that records the keys the resolver accessed.
4
4
  *
5
- * Используется в executeResolve для автоматического определения контекстных зависимостей:
6
- * если резолвер читает `store.context.accountId`, то `$context.accountId` добавляется
7
- * в auto-deps, и резолвер перезапустится при изменении этого ключа через `setContext`.
5
+ * Used in executeResolve to detect context dependencies automatically:
6
+ * when a resolver reads `store.context.accountId`, `$context.accountId` is
7
+ * added to the auto-deps, and the resolver re-runs when that key changes via
8
+ * `setContext`.
8
9
  */
9
10
  export function createContextTrackingProxy(context) {
10
11
  const accessedKeys = new Set();
@@ -1 +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"}
1
+ {"version":3,"file":"createContextTrackingProxy.js","sourceRoot":"","sources":["../../../store/resolvePipeline/createContextTrackingProxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;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"}
@@ -1,75 +1,75 @@
1
1
  /**
2
- * createValuesTrackingProxy — оборачивает дерево значений в Proxy, который:
3
- * - ЧТЕНИЕ: отслеживает обращённые пути (автоматические зависимости для повторного запуска резолвера)
4
- * - ЗАПИСЬ: буферизирует побочные эффекты (пакетный режим, без промежуточных ре-рендеров)
2
+ * createValuesTrackingProxy — wraps the values tree in a Proxy that:
3
+ * - READS: tracks accessed paths (automatic dependencies for resolver re-runs)
4
+ * - WRITES: buffers side effects (batch mode, no intermediate re-renders)
5
5
  *
6
- * Используется внутри выполнения резолвера: резолвер получает этот прокси вместо реального объекта.
7
- * После завершения резолвера обращённые пути сохраняются для отслеживания зависимостей,
8
- * а буферизированные записи сбрасываются одним пакетом.
6
+ * Used inside resolver execution: the resolver receives this proxy instead of
7
+ * the real object. After the resolver finishes, the accessed paths are stored
8
+ * for dependency tracking and the buffered writes are flushed in one batch.
9
9
  *
10
- * ─── КАК ЭТО РАБОТАЕТ ────────────────────────────────────────────────────────
10
+ * ─── HOW IT WORKS ────────────────────────────────────────────────────────────
11
11
  *
12
- * Дерево значений выглядит как обычный вложенный объект:
12
+ * The values tree looks like a regular nested object:
13
13
  * { user: { name: "Alice", vehicleExists: true }, payment: { amount: 100 } }
14
14
  *
15
- * Когда резолвер запускается, он получает этот прокси вместо реального объекта.
16
- * Прокси перехватывает каждое обращение к свойству:
15
+ * When the resolver runs, it receives this proxy instead of the real object.
16
+ * The proxy intercepts every property access:
17
17
  *
18
- * ЧТЕНИЕ: values.user.name
19
- * → прокси возвращает вложенный прокси для "user"
20
- * → вложенный прокси перехватывает "name", записывает путь "user.name" в accessedPaths
21
- * → возвращает реальное значение
18
+ * READ: values.user.name
19
+ * → the proxy returns a nested proxy for "user"
20
+ * → the nested proxy intercepts "name", records the path "user.name" in accessedPaths
21
+ * → returns the real value
22
22
  *
23
- * ЗАПИСЬ: values.user.vehicleExists = false
24
- * → прокси перехватывает присваивание, записывает { path: "user.vehicleExists", value: false }
25
- * в pendingWrites[]
26
- * → НЕ трогает реальный объект значенийзапись отложена!
23
+ * WRITE: values.user.vehicleExists = false
24
+ * → the proxy intercepts the assignment, records { path: "user.vehicleExists", value: false }
25
+ * into pendingWrites[]
26
+ * → the real values object is NOT touched the write is deferred!
27
27
  *
28
- * После возврата резолвера:
29
- * 1. getAccessedPaths() → используется для перестройки графа зависимостей этого резолвера
30
- * (при следующем изменении любого из этих путей резолвер запустится снова)
31
- * 2. getPendingWrites() → передаётся в applyPendingWrites(), который превращает каждый
32
- * путь обратно во вложенный патч и вызывает applyPatch() на реальном хранилище
28
+ * After the resolver returns:
29
+ * 1. getAccessedPaths() → used to rebuild this resolver's dependency graph
30
+ * (the resolver re-runs the next time any of these paths changes)
31
+ * 2. getPendingWrites() → passed to applyPendingWrites(), which turns each
32
+ * path back into a nested patch and calls applyPatch() on the real store
33
33
  *
34
- * ЗАЧЕМ БУФЕРИЗИРОВАТЬ ЗАПИСИ вместо немедленного применения?
35
- * - Предотвращает каскадные ре-рендеры в середине работы резолвера
36
- * - Все мутации применяются одним атомарным пакетомсогласованное состояние после каждого тика пайплайна
37
- * - Записи резолвера A случайно не запускают резолвер B в процессе его выполнения
34
+ * WHY BUFFER WRITES instead of applying immediately?
35
+ * - Prevents cascading re-renders in the middle of a resolver run
36
+ * - All mutations are applied in one atomic batch consistent state after every pipeline tick
37
+ * - Resolver A's writes don't accidentally trigger resolver B mid-run
38
38
  */
39
39
  export interface PendingWrite {
40
40
  /**
41
- * Путь в дереве значений, разделённый точками, например "user.vehicleExists" или "payment.amount".
42
- * Отражает структуру объекта values (аналогично valuesCache.values).
43
- * applyPendingWrites() разбивает этот путь по "." для построения вложенного патч-объекта.
41
+ * Dot-separated path in the values tree, e.g. "user.vehicleExists" or "payment.amount".
42
+ * Mirrors the structure of the values object (like valuesCache.values).
43
+ * applyPendingWrites() splits this path on "." to build a nested patch object.
44
44
  */
45
45
  path: string;
46
- /** Новое значение, которое резолвер хочет записать по этому пути. */
46
+ /** The new value the resolver wants to write at this path. */
47
47
  value: unknown;
48
48
  }
49
49
  export interface ValuesTrackingResult {
50
- /** Отслеживающий прокси с поддержкой записи для передачи резолверу. Чтения трекаются, записи буферизируются. */
50
+ /** Writable tracking proxy handed to the resolver. Reads are tracked, writes buffered. */
51
51
  proxy: Record<string, unknown>;
52
52
  /**
53
- * Возвращает все пути (через точку), которые были ПРОЧИТАНЫ в ходе выполнения резолвера.
54
- * Используется после возврата резолвера для обновления графа зависимостей:
55
- * резолвер повторно запустится при изменении любого из этих путей.
53
+ * Returns all (dot-separated) paths that were READ during the resolver run.
54
+ * Used after the resolver returns to update the dependency graph:
55
+ * the resolver re-runs when any of these paths changes.
56
56
  */
57
57
  getAccessedPaths: () => Set<string>;
58
58
  /**
59
- * Возвращает все операции записи, буферизированные во время выполнения резолвера.
60
- * Ни одна из этих записей ещё не применена к реальному хранилищу
61
- * они сбрасываются одним пакетом через applyPendingWrites() после возврата резолвера.
59
+ * Returns all write operations buffered during the resolver run.
60
+ * None of these writes has been applied to the real store yet
61
+ * they are flushed in one batch via applyPendingWrites() after the resolver returns.
62
62
  */
63
63
  getPendingWrites: () => PendingWrite[];
64
64
  }
65
65
  /**
66
- * Создаёт отслеживающий прокси с поддержкой записи для дерева значений.
66
+ * Creates a writable tracking proxy for the values tree.
67
67
  *
68
- * - Чтение примитива записывает полный путь (например "user.id") в accessedPaths
69
- * - Чтение объекта возвращает вложенный прокси (рекурсивно), не трекается до обращения к листу
70
- * - Запись по ЛЮБОМУ пути буферизирует присваивание в pendingWrites[], не затрагивая реальные данные
68
+ * - Reading a primitive records the full path (e.g. "user.id") in accessedPaths
69
+ * - Reading an object returns a nested proxy (recursively); not tracked until a leaf is read
70
+ * - Writing to ANY path buffers the assignment in pendingWrites[] without touching real data
71
71
  *
72
- * @param values — текущий снапшот значений (из valuesCache.values), здесь считается только для чтения
72
+ * @param values — current values snapshot (from valuesCache.values), treated as read-only here
73
73
  */
74
74
  export declare function createValuesTrackingProxy(values: Record<string, unknown>): ValuesTrackingResult;
75
75
  //# sourceMappingURL=createValuesTrackingProxy.d.ts.map
@@ -1 +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"}
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,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,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"}