@pravosleva/reactive-engine 1.8.3-beta → 2.0.0-beta

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 (328) hide show
  1. package/README.md +271 -0
  2. package/dist/AbstractService.cjs.map +1 -1
  3. package/dist/AbstractService.mjs.map +1 -1
  4. package/dist/BaseREServiceEnhanced.cjs.map +1 -1
  5. package/dist/BaseREServiceEnhanced.mjs.map +1 -1
  6. package/dist/_react-bindings.d.ts +1 -1
  7. package/dist/_react-bindings.d.ts.map +1 -1
  8. package/dist/angular/core.angular-adapter.cjs +2 -0
  9. package/dist/angular/core.angular-adapter.cjs.map +1 -0
  10. package/dist/angular/core.angular-adapter.d.ts +15 -0
  11. package/dist/angular/core.angular-adapter.d.ts.map +1 -0
  12. package/dist/angular/core.angular-adapter.mjs +28 -0
  13. package/dist/angular/core.angular-adapter.mjs.map +1 -0
  14. package/dist/angular/core.angular-adapter.test.d.ts +2 -0
  15. package/dist/angular/core.angular-adapter.test.d.ts.map +1 -0
  16. package/dist/angular/index.cjs +2 -1
  17. package/dist/angular/index.cjs.map +1 -0
  18. package/dist/angular/index.d.ts +19 -2
  19. package/dist/angular/index.d.ts.map +1 -1
  20. package/dist/angular/index.mjs +28 -2
  21. package/dist/angular/index.mjs.map +1 -0
  22. package/dist/core/AbstractService.d.ts +3 -3
  23. package/dist/core/AbstractService.d.ts.map +1 -1
  24. package/dist/core/BaseREServiceEnhanced.d.ts +3 -3
  25. package/dist/core/BaseREServiceEnhanced.d.ts.map +1 -1
  26. package/dist/core/_draft.core.methods.d.ts +13 -0
  27. package/dist/core/_draft.core.methods.d.ts.map +1 -0
  28. package/dist/core/core.advanced.reactive-framework-test-suite.p2.test.d.ts +2 -0
  29. package/dist/core/core.advanced.reactive-framework-test-suite.p2.test.d.ts.map +1 -0
  30. package/dist/core/core.advanced.test.d.ts +2 -0
  31. package/dist/core/core.advanced.test.d.ts.map +1 -0
  32. package/dist/core/core.autolog.d.ts +15 -0
  33. package/dist/core/core.autolog.d.ts.map +1 -0
  34. package/dist/core/core.automatic.d.ts +23 -0
  35. package/dist/core/core.automatic.d.ts.map +1 -0
  36. package/dist/core/core.automatic.test.d.ts +2 -0
  37. package/dist/core/core.automatic.test.d.ts.map +1 -0
  38. package/dist/core/core.d.ts +38 -158
  39. package/dist/core/core.d.ts.map +1 -1
  40. package/dist/core/core.method.batch.d.ts +6 -0
  41. package/dist/core/core.method.batch.d.ts.map +1 -0
  42. package/dist/core/core.method.computed.d.ts +7 -0
  43. package/dist/core/core.method.computed.d.ts.map +1 -0
  44. package/dist/core/core.method.effect.d.ts +7 -0
  45. package/dist/core/core.method.effect.d.ts.map +1 -0
  46. package/dist/core/core.method.reactive.d.ts +6 -0
  47. package/dist/core/core.method.reactive.d.ts.map +1 -0
  48. package/dist/core/core.method.signal.d.ts +7 -0
  49. package/dist/core/core.method.signal.d.ts.map +1 -0
  50. package/dist/core/core.method.untrack.d.ts +6 -0
  51. package/dist/core/core.method.untrack.d.ts.map +1 -0
  52. package/dist/core/core.propagation.test.d.ts +2 -0
  53. package/dist/core/core.propagation.test.d.ts.map +1 -0
  54. package/dist/core/core.test.d.ts +2 -0
  55. package/dist/core/core.test.d.ts.map +1 -0
  56. package/dist/core/index.d.ts +4 -1
  57. package/dist/core/index.d.ts.map +1 -1
  58. package/dist/core/types.d.ts +31 -4
  59. package/dist/core/types.d.ts.map +1 -1
  60. package/dist/core.autolog.cjs +2 -0
  61. package/dist/core.autolog.cjs.map +1 -0
  62. package/dist/core.autolog.mjs +41 -0
  63. package/dist/core.autolog.mjs.map +1 -0
  64. package/dist/core.automatic.cjs +2 -0
  65. package/dist/core.automatic.cjs.map +1 -0
  66. package/dist/core.automatic.mjs +26 -0
  67. package/dist/core.automatic.mjs.map +1 -0
  68. package/dist/core.cjs +1 -1
  69. package/dist/core.cjs.map +1 -1
  70. package/dist/core.method.batch.cjs +2 -0
  71. package/dist/core.method.batch.cjs.map +1 -0
  72. package/dist/core.method.batch.mjs +13 -0
  73. package/dist/core.method.batch.mjs.map +1 -0
  74. package/dist/core.method.computed.cjs +2 -0
  75. package/dist/core.method.computed.cjs.map +1 -0
  76. package/dist/core.method.computed.mjs +122 -0
  77. package/dist/core.method.computed.mjs.map +1 -0
  78. package/dist/core.method.effect.cjs +2 -0
  79. package/dist/core.method.effect.cjs.map +1 -0
  80. package/dist/core.method.effect.mjs +49 -0
  81. package/dist/core.method.effect.mjs.map +1 -0
  82. package/dist/core.method.reactive.cjs +2 -0
  83. package/dist/core.method.reactive.cjs.map +1 -0
  84. package/dist/core.method.reactive.mjs +39 -0
  85. package/dist/core.method.reactive.mjs.map +1 -0
  86. package/dist/core.method.signal.cjs +2 -0
  87. package/dist/core.method.signal.cjs.map +1 -0
  88. package/dist/core.method.signal.mjs +75 -0
  89. package/dist/core.method.signal.mjs.map +1 -0
  90. package/dist/core.method.untrack.cjs +2 -0
  91. package/dist/core.method.untrack.cjs.map +1 -0
  92. package/dist/core.method.untrack.mjs +14 -0
  93. package/dist/core.method.untrack.mjs.map +1 -0
  94. package/dist/core.mjs +268 -592
  95. package/dist/core.mjs.map +1 -1
  96. package/dist/decorators/index.d.ts +1 -0
  97. package/dist/decorators/index.d.ts.map +1 -1
  98. package/dist/decorators/withCache/types.d.ts +29 -0
  99. package/dist/decorators/withCache/types.d.ts.map +1 -0
  100. package/dist/decorators/withCache/withCache.cjs +1 -1
  101. package/dist/decorators/withCache/withCache.cjs.map +1 -1
  102. package/dist/decorators/withCache/withCache.d.ts +4 -61
  103. package/dist/decorators/withCache/withCache.d.ts.map +1 -1
  104. package/dist/decorators/withCache/withCache.mjs +29 -9
  105. package/dist/decorators/withCache/withCache.mjs.map +1 -1
  106. package/dist/decorators/withValidation/index.d.ts +2 -0
  107. package/dist/decorators/withValidation/index.d.ts.map +1 -0
  108. package/dist/decorators/withValidation/withValidation.cjs +2 -0
  109. package/dist/decorators/withValidation/withValidation.cjs.map +1 -0
  110. package/dist/decorators/withValidation/withValidation.d.ts +18 -0
  111. package/dist/decorators/withValidation/withValidation.d.ts.map +1 -0
  112. package/dist/decorators/withValidation/withValidation.mjs +27 -0
  113. package/dist/decorators/withValidation/withValidation.mjs.map +1 -0
  114. package/dist/index.cjs +1 -1
  115. package/dist/index.d.ts +7 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.mjs +14 -11
  118. package/dist/react/core.react-adapter.test.d.ts +2 -0
  119. package/dist/react/core.react-adapter.test.d.ts.map +1 -0
  120. package/dist/react/hooks/_draft.useReactiveValue.v2.d.ts +9 -0
  121. package/dist/react/hooks/_draft.useReactiveValue.v2.d.ts.map +1 -0
  122. package/dist/react/hooks/useReactiveSubscription.cjs +2 -0
  123. package/dist/react/hooks/useReactiveSubscription.cjs.map +1 -0
  124. package/dist/react/hooks/useReactiveSubscription.d.ts +7 -0
  125. package/dist/react/hooks/useReactiveSubscription.d.ts.map +1 -0
  126. package/dist/react/hooks/useReactiveSubscription.mjs +21 -0
  127. package/dist/react/hooks/useReactiveSubscription.mjs.map +1 -0
  128. package/dist/react/hooks/useReactiveValue.cjs +2 -0
  129. package/dist/react/hooks/useReactiveValue.cjs.map +1 -0
  130. package/dist/react/hooks/useReactiveValue.d.ts +3 -0
  131. package/dist/react/hooks/useReactiveValue.d.ts.map +1 -0
  132. package/dist/react/hooks/useReactiveValue.mjs +25 -0
  133. package/dist/react/hooks/useReactiveValue.mjs.map +1 -0
  134. package/dist/react/index.cjs +2 -1
  135. package/dist/react/index.cjs.map +1 -0
  136. package/dist/react/index.d.ts +9 -3
  137. package/dist/react/index.d.ts.map +1 -1
  138. package/dist/react/index.mjs +13 -6
  139. package/dist/react/index.mjs.map +1 -0
  140. package/dist/react/types.d.ts +0 -1
  141. package/dist/react/types.d.ts.map +1 -1
  142. package/dist/reactive-engine.umd.js +2 -2
  143. package/dist/reactive-engine.umd.js.map +1 -1
  144. package/dist/report/reactive-framework-test-suite/scripts/update-readme.d.mts +2 -0
  145. package/dist/report/reactive-framework-test-suite/scripts/update-readme.d.mts.map +1 -0
  146. package/dist/report/reactive-framework-test-suite/src/assert.d.ts +10 -0
  147. package/dist/report/reactive-framework-test-suite/src/assert.d.ts.map +1 -0
  148. package/dist/report/reactive-framework-test-suite/src/batching.d.ts +19 -0
  149. package/dist/report/reactive-framework-test-suite/src/batching.d.ts.map +1 -0
  150. package/dist/report/reactive-framework-test-suite/src/behaviorDifferences.d.ts +19 -0
  151. package/dist/report/reactive-framework-test-suite/src/behaviorDifferences.d.ts.map +1 -0
  152. package/dist/report/reactive-framework-test-suite/src/computedEval.d.ts +19 -0
  153. package/dist/report/reactive-framework-test-suite/src/computedEval.d.ts.map +1 -0
  154. package/dist/report/reactive-framework-test-suite/src/cycleDetection.d.ts +18 -0
  155. package/dist/report/reactive-framework-test-suite/src/cycleDetection.d.ts.map +1 -0
  156. package/dist/report/reactive-framework-test-suite/src/dynamicDeps.d.ts +20 -0
  157. package/dist/report/reactive-framework-test-suite/src/dynamicDeps.d.ts.map +1 -0
  158. package/dist/report/reactive-framework-test-suite/src/effectLifecycle.d.ts +20 -0
  159. package/dist/report/reactive-framework-test-suite/src/effectLifecycle.d.ts.map +1 -0
  160. package/dist/report/reactive-framework-test-suite/src/equality.d.ts +19 -0
  161. package/dist/report/reactive-framework-test-suite/src/equality.d.ts.map +1 -0
  162. package/dist/report/reactive-framework-test-suite/src/errorHandling.d.ts +20 -0
  163. package/dist/report/reactive-framework-test-suite/src/errorHandling.d.ts.map +1 -0
  164. package/dist/report/reactive-framework-test-suite/src/framework.d.ts +24 -0
  165. package/dist/report/reactive-framework-test-suite/src/framework.d.ts.map +1 -0
  166. package/dist/report/reactive-framework-test-suite/src/graphPropagation.d.ts +18 -0
  167. package/dist/report/reactive-framework-test-suite/src/graphPropagation.d.ts.map +1 -0
  168. package/dist/report/reactive-framework-test-suite/src/index.d.ts +11 -0
  169. package/dist/report/reactive-framework-test-suite/src/index.d.ts.map +1 -0
  170. package/dist/report/reactive-framework-test-suite/src/innerWrite.d.ts +20 -0
  171. package/dist/report/reactive-framework-test-suite/src/innerWrite.d.ts.map +1 -0
  172. package/dist/report/reactive-framework-test-suite/src/memoryGc.d.ts +18 -0
  173. package/dist/report/reactive-framework-test-suite/src/memoryGc.d.ts.map +1 -0
  174. package/dist/report/reactive-framework-test-suite/src/nestedEffects.d.ts +20 -0
  175. package/dist/report/reactive-framework-test-suite/src/nestedEffects.d.ts.map +1 -0
  176. package/dist/report/reactive-framework-test-suite/src/reactiveEngine.test.d.ts +2 -0
  177. package/dist/report/reactive-framework-test-suite/src/reactiveEngine.test.d.ts.map +1 -0
  178. package/dist/report/reactive-framework-test-suite/src/staleEvaluation.d.ts +18 -0
  179. package/dist/report/reactive-framework-test-suite/src/staleEvaluation.d.ts.map +1 -0
  180. package/dist/report/reactive-framework-test-suite/src/untracked.d.ts +18 -0
  181. package/dist/report/reactive-framework-test-suite/src/untracked.d.ts.map +1 -0
  182. package/dist/report/reactive-framework-test-suite/test/frameworks/alienSignals.d.ts +3 -0
  183. package/dist/report/reactive-framework-test-suite/test/frameworks/alienSignals.d.ts.map +1 -0
  184. package/dist/report/reactive-framework-test-suite/test/frameworks/angularSignals.d.ts +3 -0
  185. package/dist/report/reactive-framework-test-suite/test/frameworks/angularSignals.d.ts.map +1 -0
  186. package/dist/report/reactive-framework-test-suite/test/frameworks/anod.d.ts +3 -0
  187. package/dist/report/reactive-framework-test-suite/test/frameworks/anod.d.ts.map +1 -0
  188. package/dist/report/reactive-framework-test-suite/test/frameworks/index.d.ts +3 -0
  189. package/dist/report/reactive-framework-test-suite/test/frameworks/index.d.ts.map +1 -0
  190. package/dist/report/reactive-framework-test-suite/test/frameworks/mobx.d.ts +3 -0
  191. package/dist/report/reactive-framework-test-suite/test/frameworks/mobx.d.ts.map +1 -0
  192. package/dist/report/reactive-framework-test-suite/test/frameworks/pota.d.ts +3 -0
  193. package/dist/report/reactive-framework-test-suite/test/frameworks/pota.d.ts.map +1 -0
  194. package/dist/report/reactive-framework-test-suite/test/frameworks/preactSignals.d.ts +3 -0
  195. package/dist/report/reactive-framework-test-suite/test/frameworks/preactSignals.d.ts.map +1 -0
  196. package/dist/report/reactive-framework-test-suite/test/frameworks/reactively.d.ts +3 -0
  197. package/dist/report/reactive-framework-test-suite/test/frameworks/reactively.d.ts.map +1 -0
  198. package/dist/report/reactive-framework-test-suite/test/frameworks/reatom.d.ts +3 -0
  199. package/dist/report/reactive-framework-test-suite/test/frameworks/reatom.d.ts.map +1 -0
  200. package/dist/report/reactive-framework-test-suite/test/frameworks/sjs.d.ts +3 -0
  201. package/dist/report/reactive-framework-test-suite/test/frameworks/sjs.d.ts.map +1 -0
  202. package/dist/report/reactive-framework-test-suite/test/frameworks/solid.d.ts +3 -0
  203. package/dist/report/reactive-framework-test-suite/test/frameworks/solid.d.ts.map +1 -0
  204. package/dist/report/reactive-framework-test-suite/test/frameworks/solidSignals.d.ts +3 -0
  205. package/dist/report/reactive-framework-test-suite/test/frameworks/solidSignals.d.ts.map +1 -0
  206. package/dist/report/reactive-framework-test-suite/test/frameworks/svelte.d.ts +3 -0
  207. package/dist/report/reactive-framework-test-suite/test/frameworks/svelte.d.ts.map +1 -0
  208. package/dist/report/reactive-framework-test-suite/test/frameworks/tansu.d.ts +3 -0
  209. package/dist/report/reactive-framework-test-suite/test/frameworks/tansu.d.ts.map +1 -0
  210. package/dist/report/reactive-framework-test-suite/test/frameworks/tc39Signals.d.ts +3 -0
  211. package/dist/report/reactive-framework-test-suite/test/frameworks/tc39Signals.d.ts.map +1 -0
  212. package/dist/report/reactive-framework-test-suite/test/frameworks/vueReactivity.d.ts +3 -0
  213. package/dist/report/reactive-framework-test-suite/test/frameworks/vueReactivity.d.ts.map +1 -0
  214. package/dist/report/reactive-framework-test-suite/test/run.test.d.ts +2 -0
  215. package/dist/report/reactive-framework-test-suite/test/run.test.d.ts.map +1 -0
  216. package/dist/report/reactive-framework-test-suite/vitest.config.d.ts +3 -0
  217. package/dist/report/reactive-framework-test-suite/vitest.config.d.ts.map +1 -0
  218. package/dist/utils/getExtractedValues.cjs +2 -0
  219. package/dist/utils/getExtractedValues.cjs.map +1 -0
  220. package/dist/utils/getExtractedValues.mjs +24 -0
  221. package/dist/utils/getExtractedValues.mjs.map +1 -0
  222. package/dist/vue/core.vue-adapter.cjs +2 -0
  223. package/dist/vue/core.vue-adapter.cjs.map +1 -0
  224. package/dist/vue/core.vue-adapter.d.ts +8 -0
  225. package/dist/vue/core.vue-adapter.d.ts.map +1 -0
  226. package/dist/vue/core.vue-adapter.mjs +22 -0
  227. package/dist/vue/core.vue-adapter.mjs.map +1 -0
  228. package/dist/vue/core.vue-adapter.test.d.ts +2 -0
  229. package/dist/vue/core.vue-adapter.test.d.ts.map +1 -0
  230. package/dist/vue/index.cjs +2 -1
  231. package/dist/vue/index.cjs.map +1 -0
  232. package/dist/vue/index.d.ts +14 -2
  233. package/dist/vue/index.d.ts.map +1 -1
  234. package/dist/vue/index.mjs +54 -3
  235. package/dist/vue/index.mjs.map +1 -0
  236. package/package.json +4 -3
  237. package/dist/angular/ReactiveEngine4Angular.cjs +0 -2
  238. package/dist/angular/ReactiveEngine4Angular.cjs.map +0 -1
  239. package/dist/angular/ReactiveEngine4Angular.d.ts +0 -37
  240. package/dist/angular/ReactiveEngine4Angular.d.ts.map +0 -1
  241. package/dist/angular/ReactiveEngine4Angular.mjs +0 -45
  242. package/dist/angular/ReactiveEngine4Angular.mjs.map +0 -1
  243. package/dist/angular/core.angular.auto.test.d.ts +0 -2
  244. package/dist/angular/core.angular.auto.test.d.ts.map +0 -1
  245. package/dist/angular/core.angular.test.d.ts +0 -2
  246. package/dist/angular/core.angular.test.d.ts.map +0 -1
  247. package/dist/core/core.auto.test.d.ts +0 -2
  248. package/dist/core/core.auto.test.d.ts.map +0 -1
  249. package/dist/react/ReactiveEngine4React.cjs +0 -2
  250. package/dist/react/ReactiveEngine4React.cjs.map +0 -1
  251. package/dist/react/ReactiveEngine4React.d.ts +0 -34
  252. package/dist/react/ReactiveEngine4React.d.ts.map +0 -1
  253. package/dist/react/ReactiveEngine4React.mjs +0 -51
  254. package/dist/react/ReactiveEngine4React.mjs.map +0 -1
  255. package/dist/react/core.react.auto.test.d.ts +0 -2
  256. package/dist/react/core.react.auto.test.d.ts.map +0 -1
  257. package/dist/react/core.react.test.d.ts +0 -2
  258. package/dist/react/core.react.test.d.ts.map +0 -1
  259. package/dist/react/hooks/FilteredCatalog.auto.test.d.ts +0 -2
  260. package/dist/react/hooks/FilteredCatalog.auto.test.d.ts.map +0 -1
  261. package/dist/react/hooks/FilteredCatalog.test.d.ts +0 -2
  262. package/dist/react/hooks/FilteredCatalog.test.d.ts.map +0 -1
  263. package/dist/react/hooks/index.cjs +0 -1
  264. package/dist/react/hooks/index.d.ts +0 -4
  265. package/dist/react/hooks/index.d.ts.map +0 -1
  266. package/dist/react/hooks/index.mjs +0 -7
  267. package/dist/react/hooks/types.d.ts +0 -20
  268. package/dist/react/hooks/types.d.ts.map +0 -1
  269. package/dist/react/hooks/useReactiveSubscription/index.cjs +0 -1
  270. package/dist/react/hooks/useReactiveSubscription/index.d.ts +0 -2
  271. package/dist/react/hooks/useReactiveSubscription/index.d.ts.map +0 -1
  272. package/dist/react/hooks/useReactiveSubscription/index.mjs +0 -2
  273. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.auto.test.d.ts +0 -2
  274. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.auto.test.d.ts.map +0 -1
  275. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.cjs +0 -2
  276. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.cjs.map +0 -1
  277. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.d.ts +0 -7
  278. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.d.ts.map +0 -1
  279. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.mjs +0 -27
  280. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.mjs.map +0 -1
  281. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.test.d.ts +0 -2
  282. package/dist/react/hooks/useReactiveSubscription/useReactiveSubscription.test.d.ts.map +0 -1
  283. package/dist/react/hooks/useReactiveValue/index.cjs +0 -1
  284. package/dist/react/hooks/useReactiveValue/index.d.ts +0 -2
  285. package/dist/react/hooks/useReactiveValue/index.d.ts.map +0 -1
  286. package/dist/react/hooks/useReactiveValue/index.mjs +0 -2
  287. package/dist/react/hooks/useReactiveValue/useReactiveValue.auto.test.d.ts +0 -2
  288. package/dist/react/hooks/useReactiveValue/useReactiveValue.auto.test.d.ts.map +0 -1
  289. package/dist/react/hooks/useReactiveValue/useReactiveValue.cjs +0 -2
  290. package/dist/react/hooks/useReactiveValue/useReactiveValue.cjs.map +0 -1
  291. package/dist/react/hooks/useReactiveValue/useReactiveValue.d.ts +0 -18
  292. package/dist/react/hooks/useReactiveValue/useReactiveValue.d.ts.map +0 -1
  293. package/dist/react/hooks/useReactiveValue/useReactiveValue.mjs +0 -25
  294. package/dist/react/hooks/useReactiveValue/useReactiveValue.mjs.map +0 -1
  295. package/dist/react/hooks/useReactiveValue/useReactiveValue.test.d.ts +0 -2
  296. package/dist/react/hooks/useReactiveValue/useReactiveValue.test.d.ts.map +0 -1
  297. package/dist/react/hooks/useReactiveValue0/index.cjs +0 -1
  298. package/dist/react/hooks/useReactiveValue0/index.d.ts +0 -2
  299. package/dist/react/hooks/useReactiveValue0/index.d.ts.map +0 -1
  300. package/dist/react/hooks/useReactiveValue0/index.mjs +0 -2
  301. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.cjs +0 -2
  302. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.cjs.map +0 -1
  303. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.d.ts +0 -51
  304. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.d.ts.map +0 -1
  305. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.mjs +0 -23
  306. package/dist/react/hooks/useReactiveValue0/useReactiveValue0.mjs.map +0 -1
  307. package/dist/vue/ReactiveEngine4Vue.cjs +0 -2
  308. package/dist/vue/ReactiveEngine4Vue.cjs.map +0 -1
  309. package/dist/vue/ReactiveEngine4Vue.d.ts +0 -37
  310. package/dist/vue/ReactiveEngine4Vue.d.ts.map +0 -1
  311. package/dist/vue/ReactiveEngine4Vue.mjs +0 -53
  312. package/dist/vue/ReactiveEngine4Vue.mjs.map +0 -1
  313. package/dist/vue/composables/index.d.ts +0 -2
  314. package/dist/vue/composables/index.d.ts.map +0 -1
  315. package/dist/vue/composables/useReactiveValue.auto.test.d.ts +0 -2
  316. package/dist/vue/composables/useReactiveValue.auto.test.d.ts.map +0 -1
  317. package/dist/vue/composables/useReactiveValue.cjs +0 -2
  318. package/dist/vue/composables/useReactiveValue.cjs.map +0 -1
  319. package/dist/vue/composables/useReactiveValue.d.ts +0 -12
  320. package/dist/vue/composables/useReactiveValue.d.ts.map +0 -1
  321. package/dist/vue/composables/useReactiveValue.mjs +0 -19
  322. package/dist/vue/composables/useReactiveValue.mjs.map +0 -1
  323. package/dist/vue/composables/useReactiveValue.test.d.ts +0 -2
  324. package/dist/vue/composables/useReactiveValue.test.d.ts.map +0 -1
  325. package/dist/vue/core.vue.auto.test.d.ts +0 -2
  326. package/dist/vue/core.vue.auto.test.d.ts.map +0 -1
  327. package/dist/vue/core.vue.test.d.ts +0 -2
  328. package/dist/vue/core.vue.test.d.ts.map +0 -1
@@ -1,37 +0,0 @@
1
- import { Injector, Signal } from '@angular/core';
2
- import { ReactiveEngine, ReactiveEngineAutomatic } from '../core/core';
3
- import { CleanupFn } from '../core/types';
4
- export interface AngularUseOptions {
5
- injector?: Injector;
6
- }
7
- export interface ISignalLike<V> {
8
- readonly value: V;
9
- subscribe: (cb: (v: V) => void) => CleanupFn;
10
- }
11
- /**
12
- * 🔴 1. СИНХРОННЫЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ ANGULAR 16+
13
- * Базируется на плоском синхронном Push/Pull графе ядра.
14
- */
15
- export declare class ReactiveEngine4Angular extends ReactiveEngine {
16
- protected frameworkPrefix: string;
17
- /**
18
- * Переопределяем метод создания реактивных объектов для Angular-версии движка.
19
- * Безопасно внедряет скрытое свойство __subscribe в оригинальный граф без double-proxying.
20
- */
21
- reactive<T extends object>(target: T, name?: string): T;
22
- /**
23
- * Использование реактивного значения в Angular компоненте или сервисе.
24
- * Полиморфно поддерживает как атомарные Сигналы/Computed, так и глубокие реактивные Proxy-объекты.
25
- */
26
- use<T>(item: T, options?: AngularUseOptions): T extends ISignalLike<infer V> ? Signal<V> : Signal<T>;
27
- }
28
- /**
29
- * 🤖 2. АВТОМАТИЧЕСКИЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ ANGULAR 16+ (АСИНХРОННЫЙ ШЕДУЛЕР)
30
- * Наследует ReactiveEngineAutomatic и аппаратно склеивает цепочки мутаций в микрозадачи.
31
- */
32
- export declare class ReactiveEngine4AngularAutomatic extends ReactiveEngineAutomatic {
33
- protected frameworkPrefix: string;
34
- reactive<T extends object>(target: T, name?: string): T;
35
- use<T>(item: T, options?: AngularUseOptions): T extends ISignalLike<infer V> ? Signal<V> : Signal<T>;
36
- }
37
- //# sourceMappingURL=ReactiveEngine4Angular.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4Angular.d.ts","sourceRoot":"","sources":["../../src/angular/ReactiveEngine4Angular.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,QAAQ,EAAyB,KAAK,MAAM,EAAE,MAAM,eAAe,CAAA;AACxG,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,UAAmB,eAAe,SAAY;IAE9C;;;OAGG;IACa,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IAwBvE;;;OAGG;IACI,GAAG,CAAC,CAAC,EACV,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,iBAAiB,GAC1B,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CA8C1D;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,uBAAuB;IAC1E,UAAmB,eAAe,SAAiB;IAEnC,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IAwBhE,GAAG,CAAC,CAAC,EACV,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,iBAAiB,GAC1B,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CA6C1D"}
@@ -1,45 +0,0 @@
1
- import { ReactiveEngineAutomatic as e } from "../core.mjs";
2
- import { DestroyRef as t, inject as n, runInInjectionContext as r, signal as i } from "@angular/core";
3
- //#region src/angular/ReactiveEngine4Angular.ts
4
- var a = class extends e {
5
- frameworkPrefix = "angular-auto";
6
- reactive(e, t) {
7
- Reflect.has(e, "__subscribe") || Object.defineProperty(e, "__subscribe", {
8
- get: () => (e) => this.effect(() => {
9
- try {
10
- JSON.stringify(n);
11
- } catch {
12
- Object.values(n);
13
- }
14
- e();
15
- }, "angular-auto-proxy-internal-subscription"),
16
- configurable: !0,
17
- enumerable: !1
18
- });
19
- let n = super.reactive(e, t);
20
- return n;
21
- }
22
- use(e, a) {
23
- if (typeof e != "object" || !e) return i(e).asReadonly();
24
- let o = "subscribe" in e && typeof e.subscribe == "function", s = () => {}, c;
25
- if (o) {
26
- let t = e;
27
- c = i(t.value), s = t.subscribe(() => {
28
- let e = t.value;
29
- c.set(e);
30
- });
31
- } else c = i(e), "__subscribe" in e && typeof e.__subscribe == "function" && (s = e.__subscribe(() => {
32
- c.set({ ...e });
33
- }));
34
- let l = () => {
35
- n(t).onDestroy(() => {
36
- s();
37
- });
38
- };
39
- return a?.injector ? r(a.injector, l) : l(), c.asReadonly();
40
- }
41
- };
42
- //#endregion
43
- export { a as ReactiveEngine4AngularAutomatic };
44
-
45
- //# sourceMappingURL=ReactiveEngine4Angular.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4Angular.mjs","names":[],"sources":["../../src/angular/ReactiveEngine4Angular.ts"],"sourcesContent":["import { signal, inject, DestroyRef, Injector, runInInjectionContext, type Signal } from '@angular/core'\nimport { ReactiveEngine, ReactiveEngineAutomatic } from '../core/core'\nimport { CleanupFn } from '../core/types'\n\nexport interface AngularUseOptions {\n injector?: Injector;\n}\n\n// Описываем строгий контракт для примитивов реактивного ядра (Signals / Computed)\nexport interface ISignalLike<V> {\n readonly value: V;\n subscribe: (cb: (v: V) => void) => CleanupFn;\n}\n\n/**\n * 🔴 1. СИНХРОННЫЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ ANGULAR 16+\n * Базируется на плоском синхронном Push/Pull графе ядра.\n */\nexport class ReactiveEngine4Angular extends ReactiveEngine {\n protected override frameworkPrefix = 'angular'\n\n /**\n * Переопределяем метод создания реактивных объектов для Angular-версии движка.\n * Безопасно внедряет скрытое свойство __subscribe в оригинальный граф без double-proxying.\n */\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy) // Глубокий прогрев геттеров ядра\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb() // Оповещаем Angular Signal о мутации внутренностей Proxy\n }, 'angular-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n /**\n * Использование реактивного значения в Angular компоненте или сервисе.\n * Полиморфно поддерживает как атомарные Сигналы/Computed, так и глубокие реактивные Proxy-объекты.\n */\n public use<T>(\n item: T,\n options?: AngularUseOptions\n ): T extends ISignalLike<infer V> ? Signal<V> : Signal<T> {\n if (item === null || item === undefined || typeof item !== 'object') {\n const angularSignal = signal(item)\n return angularSignal.asReadonly() as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n let unsubscribe: CleanupFn = () => {}\n let angularSignal: any\n\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n angularSignal = signal(signalItem.value)\n\n unsubscribe = signalItem.subscribe(() => {\n const freshValue = signalItem.value\n angularSignal.set(freshValue)\n })\n }\n else {\n angularSignal = signal(item)\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n // При мутации свойств или массивов Proxy делаем принудительный .set()\n angularSignal.set({ ...item })\n })\n }\n }\n\n const registerCleanup = () => {\n const destroyRef = inject(DestroyRef)\n destroyRef.onDestroy(() => {\n unsubscribe()\n })\n }\n\n if (options?.injector) {\n runInInjectionContext(options.injector, registerCleanup)\n } else {\n registerCleanup()\n }\n\n return angularSignal.asReadonly()\n }\n}\n\n/**\n * 🤖 2. АВТОМАТИЧЕСКИЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ ANGULAR 16+ (АСИНХРОННЫЙ ШЕДУЛЕР)\n * Наследует ReactiveEngineAutomatic и аппаратно склеивает цепочки мутаций в микрозадачи.\n */\nexport class ReactiveEngine4AngularAutomatic extends ReactiveEngineAutomatic {\n protected override frameworkPrefix = 'angular-auto'\n\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy)\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb()\n }, 'angular-auto-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n public use<T>(\n item: T,\n options?: AngularUseOptions\n ): T extends ISignalLike<infer V> ? Signal<V> : Signal<T> {\n if (item === null || item === undefined || typeof item !== 'object') {\n const angularSignal = signal(item)\n return angularSignal.asReadonly() as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n let unsubscribe: CleanupFn = () => {}\n let angularSignal: any\n\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n angularSignal = signal(signalItem.value)\n\n unsubscribe = signalItem.subscribe(() => {\n const freshValue = signalItem.value\n angularSignal.set(freshValue)\n })\n }\n else {\n angularSignal = signal(item)\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n angularSignal.set({ ...item })\n })\n }\n }\n\n const registerCleanup = () => {\n const destroyRef = inject(DestroyRef)\n destroyRef.onDestroy(() => {\n unsubscribe()\n })\n }\n\n if (options?.injector) {\n runInInjectionContext(options.injector, registerCleanup)\n } else {\n registerCleanup()\n }\n\n return angularSignal.asReadonly()\n }\n}\n"],"mappings":";;;AA4GA,IAAa,IAAb,cAAqD,EAAwB;CAC3E,kBAAqC;CAErC,SAA2C,GAAW,GAAkB;EACtE,AAAK,QAAQ,IAAI,GAAQ,aAAa,KACpC,OAAO,eAAe,GAAQ,eAAe;GAC3C,YACU,MACC,KAAK,aAAa;IACvB,IAAI;KACF,KAAK,UAAU,CAAa;IAC9B,QAAY;KACV,OAAO,OAAO,CAAwC;IACxD;IACA,EAAG;GACL,GAAG,0CAA0C;GAGjD,cAAc;GACd,YAAY;EACd,CAAC;EAGH,IAAM,IAAgB,MAAM,SAAS,GAAQ,CAAI;EACjD,OAAO;CACT;CAEA,IACE,GACA,GACwD;EACxD,IAA2C,OAAO,KAAS,aAAvD,GAEF,OADsB,EAAO,CACtB,CAAA,CAAc,WAAW;EAGlC,IAAM,IAAW,eAAe,KAAQ,OAAQ,EAAiC,aAAc,YAE3F,UAA+B,CAAC,GAChC;EAEJ,IAAI,GAAU;GACZ,IAAM,IAAc;GAGpB,AAFA,IAAgB,EAAO,EAAW,KAAK,GAEvC,IAAc,EAAW,gBAAgB;IACvC,IAAM,IAAa,EAAW;IAC9B,EAAc,IAAI,CAAU;GAC9B,CAAC;EACH,OAIE,AAFA,IAAgB,EAAO,CAAI,GAEvB,iBAAiB,KAAQ,OAAQ,EAAiC,eAAgB,eACpF,IAAgB,EAAiC,kBAAoD;GACnG,EAAc,IAAI,EAAE,GAAG,EAAK,CAAC;EAC/B,CAAC;EAIL,IAAM,UAAwB;GAE5B,EAD0B,CAC1B,CAAA,CAAW,gBAAgB;IACzB,EAAY;GACd,CAAC;EACH;EAQA,OANI,GAAS,WACX,EAAsB,EAAQ,UAAU,CAAe,IAEvD,EAAgB,GAGX,EAAc,WAAW;CAClC;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core.angular.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.angular.auto.test.d.ts","sourceRoot":"","sources":["../../src/angular/core.angular.auto.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core.angular.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.angular.test.d.ts","sourceRoot":"","sources":["../../src/angular/core.angular.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.auto.test.d.ts","sourceRoot":"","sources":["../../src/core/core.auto.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- const e=require("../core.cjs");let t=require("react");var n=class extends e.ReactiveEngineAutomaticHard{frameworkPrefix=`react-auto`;reactAdapters={useState:t.useState,useEffect:t.useEffect};setReactAdapters(e,t){this.reactAdapters={useState:e,useEffect:t}}reactive(e,t){Reflect.has(e,`__subscribe`)||Object.defineProperty(e,"__subscribe",{get:()=>e=>this.effect(()=>{try{JSON.stringify(n)}catch{Object.values(n)}e()},`react-auto-proxy-internal-subscription`),configurable:!0,enumerable:!1});let n=super.reactive(e,t);return n}use(e){if(!this.reactAdapters||!this.reactAdapters.useState||!this.reactAdapters.useEffect)throw Error(`[ReactiveEngine4ReactAutomatic] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.`);if(typeof e!=`object`||!e)return e;if(`subscribe`in e&&typeof e.subscribe==`function`){let t=e,[n,r]=this.reactAdapters.useState(t.value);return this.reactAdapters.useEffect(()=>t.subscribe(r),[t]),n}let[,t]=this.reactAdapters.useState([]);return`__subscribe`in e&&typeof e.__subscribe==`function`&&this.reactAdapters.useEffect(()=>{let n=e.__subscribe(()=>{t([])});return()=>n()},[e]),e}};exports.ReactiveEngine4ReactAutomatic=n;
2
- //# sourceMappingURL=ReactiveEngine4React.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4React.cjs","names":[],"sources":["../../src/react/ReactiveEngine4React.ts"],"sourcesContent":["import { useState as useStateFromReact, useEffect as useEffectFromReact } from 'react'\nimport { ReactiveEngine, ReactiveEngineAutomaticHard } from '../core/core'\nimport { ISignalLike } from './types'\n\ntype CleanupFn = () => void\n\n/**\n * ⚛️ 1. СИНХРОННЫЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT\n * Базируется на плоском синхронном Push/Pull графе ядра.\n */\nexport class ReactiveEngine4React extends ReactiveEngine {\n protected override frameworkPrefix = 'react'\n\n private reactAdapters: {\n useState: typeof useStateFromReact;\n useEffect: typeof useEffectFromReact;\n } = {\n useState: useStateFromReact,\n useEffect: useEffectFromReact,\n }\n\n public setReactAdapters(\n useState: typeof useStateFromReact,\n useEffect: typeof useEffectFromReact\n ): void {\n this.reactAdapters = { useState, useEffect }\n }\n\n /**\n * Переопределяем метод создания реактивных объектов для React-версии движка.\n * Безопасно внедряет скрытое свойство __subscribe в оригинальный граф без double-proxying.\n */\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy) // Глубокий прогрев геттеров ядра\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb() // Пинаем колбэк хука React\n }, 'react-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n /**\n * Использование реактивного значения в React-компоненте.\n * Полиморфно поддерживает как атомарные Сигналы/Computed, так и глубокие реактивные Proxy-объекты.\n */\n public use<T>(item: T): T extends ISignalLike<infer V> ? V : T {\n if (!this.reactAdapters || !this.reactAdapters.useState || !this.reactAdapters.useEffect) {\n throw new Error(\"[ReactiveEngine4React] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.\")\n }\n\n if (item === null || item === undefined || typeof item !== 'object') {\n return item as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n // 1. Сценарий А: Передан примитивный Сигнал или Computed\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n const [val, setVal] = this.reactAdapters.useState<unknown>(signalItem.value)\n\n this.reactAdapters.useEffect(\n () => {\n return signalItem.subscribe(setVal)\n },\n [signalItem]\n )\n\n return val as (T extends ISignalLike<infer V> ? V : T)\n }\n\n // 2. Сценарий Б: Передан Proxy-объект из метода reactive()\n const [, forceUpdate] = this.reactAdapters.useState<unknown[]>([])\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n this.reactAdapters.useEffect(() => {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n forceUpdate([]) // Триггерим авто-батчинг ререндера React\n })\n return () => unsubscribe()\n }, [item])\n }\n\n return item as (T extends ISignalLike<infer V> ? V : T)\n }\n}\n\n/**\n * 🤖 2. АВТОМАТИЧЕСКИЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT (АСИНХРОННЫЙ ШЕДУЛЕР)\n * Наследует ReactiveEngineAutomatic и аппаратно склеивает цепочки мутаций в микрозадачи.\n */\nexport class ReactiveEngine4ReactAutomatic extends ReactiveEngineAutomaticHard {\n protected override frameworkPrefix = 'react-auto'\n\n private reactAdapters: {\n useState: typeof useStateFromReact;\n useEffect: typeof useEffectFromReact;\n } = {\n useState: useStateFromReact,\n useEffect: useEffectFromReact,\n }\n\n public setReactAdapters(\n useState: typeof useStateFromReact,\n useEffect: typeof useEffectFromReact\n ): void {\n this.reactAdapters = { useState, useEffect }\n }\n\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy)\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb()\n }, 'react-auto-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n public use<T>(item: T): T extends ISignalLike<infer V> ? V : T {\n if (!this.reactAdapters || !this.reactAdapters.useState || !this.reactAdapters.useEffect) {\n throw new Error(\"[ReactiveEngine4ReactAutomatic] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.\")\n }\n\n if (item === null || item === undefined || typeof item !== 'object') {\n return item as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n const [val, setVal] = this.reactAdapters.useState<unknown>(signalItem.value)\n\n this.reactAdapters.useEffect(\n () => {\n return signalItem.subscribe(setVal)\n },\n [signalItem]\n )\n\n return val as (T extends ISignalLike<infer V> ? V : T)\n }\n\n const [, forceUpdate] = this.reactAdapters.useState<unknown[]>([])\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n this.reactAdapters.useEffect(() => {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n forceUpdate([])\n })\n return () => unsubscribe()\n }, [item])\n }\n\n return item as (T extends ISignalLike<infer V> ? V : T)\n }\n}\n"],"mappings":"sDA0GA,IAAa,EAAb,cAAmD,EAAA,2BAA4B,CAC7E,gBAAqC,aAErC,cAGI,CACA,SAAU,EAAA,SACV,UAAW,EAAA,SACb,EAEF,iBACE,EACA,EACM,CACN,KAAK,cAAgB,CAAE,WAAU,WAAU,CAC7C,CAEA,SAA2C,EAAW,EAAkB,CACjE,QAAQ,IAAI,EAAQ,aAAa,GACpC,OAAO,eAAe,EAAQ,cAAe,CAC3C,QACU,GACC,KAAK,WAAa,CACvB,GAAI,CACF,KAAK,UAAU,CAAa,CAC9B,MAAY,CACV,OAAO,OAAO,CAAwC,CACxD,CACA,EAAG,CACL,EAAG,wCAAwC,EAG/C,aAAc,GACd,WAAY,EACd,CAAC,EAGH,IAAM,EAAgB,MAAM,SAAS,EAAQ,CAAI,EACjD,OAAO,CACT,CAEA,IAAc,EAAiD,CAC7D,GAAI,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,UAAY,CAAC,KAAK,cAAc,UAC7E,MAAU,MAAM,6IAA6I,EAG/J,GAA2C,OAAO,GAAS,WAAvD,EACF,OAAO,EAKT,GAFiB,cAAe,GAAQ,OAAQ,EAAiC,WAAc,WAEjF,CACZ,IAAM,EAAc,EACd,CAAC,EAAK,GAAU,KAAK,cAAc,SAAkB,EAAW,KAAK,EAS3E,OAPA,KAAK,cAAc,cAER,EAAW,UAAU,CAAM,EAEpC,CAAC,CAAU,CACb,EAEO,CACT,CAEA,GAAM,EAAG,GAAe,KAAK,cAAc,SAAoB,CAAC,CAAC,EAWjE,MATI,gBAAiB,GAAQ,OAAQ,EAAiC,aAAgB,YACpF,KAAK,cAAc,cAAgB,CACjC,IAAM,EAAgB,EAAiC,gBAAoD,CACzG,EAAY,CAAC,CAAC,CAChB,CAAC,EACD,UAAa,EAAY,CAC3B,EAAG,CAAC,CAAI,CAAC,EAGJ,CACT,CACF"}
@@ -1,34 +0,0 @@
1
- import { useState as useStateFromReact, useEffect as useEffectFromReact } from 'react';
2
- import { ReactiveEngine, ReactiveEngineAutomaticHard } from '../core/core';
3
- import { ISignalLike } from './types';
4
- /**
5
- * ⚛️ 1. СИНХРОННЫЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT
6
- * Базируется на плоском синхронном Push/Pull графе ядра.
7
- */
8
- export declare class ReactiveEngine4React extends ReactiveEngine {
9
- protected frameworkPrefix: string;
10
- private reactAdapters;
11
- setReactAdapters(useState: typeof useStateFromReact, useEffect: typeof useEffectFromReact): void;
12
- /**
13
- * Переопределяем метод создания реактивных объектов для React-версии движка.
14
- * Безопасно внедряет скрытое свойство __subscribe в оригинальный граф без double-proxying.
15
- */
16
- reactive<T extends object>(target: T, name?: string): T;
17
- /**
18
- * Использование реактивного значения в React-компоненте.
19
- * Полиморфно поддерживает как атомарные Сигналы/Computed, так и глубокие реактивные Proxy-объекты.
20
- */
21
- use<T>(item: T): T extends ISignalLike<infer V> ? V : T;
22
- }
23
- /**
24
- * 🤖 2. АВТОМАТИЧЕСКИЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT (АСИНХРОННЫЙ ШЕДУЛЕР)
25
- * Наследует ReactiveEngineAutomatic и аппаратно склеивает цепочки мутаций в микрозадачи.
26
- */
27
- export declare class ReactiveEngine4ReactAutomatic extends ReactiveEngineAutomaticHard {
28
- protected frameworkPrefix: string;
29
- private reactAdapters;
30
- setReactAdapters(useState: typeof useStateFromReact, useEffect: typeof useEffectFromReact): void;
31
- reactive<T extends object>(target: T, name?: string): T;
32
- use<T>(item: T): T extends ISignalLike<infer V> ? V : T;
33
- }
34
- //# sourceMappingURL=ReactiveEngine4React.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4React.d.ts","sourceRoot":"","sources":["../../src/react/ReactiveEngine4React.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIrC;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,UAAmB,eAAe,SAAU;IAE5C,OAAO,CAAC,aAAa,CAMlB;IAEI,gBAAgB,CACrB,QAAQ,EAAE,OAAO,iBAAiB,EAClC,SAAS,EAAE,OAAO,kBAAkB,GACnC,IAAI;IAIP;;;OAGG;IACa,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IAwBvE;;;OAGG;IACI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAwC/D;AAED;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,2BAA2B;IAC5E,UAAmB,eAAe,SAAe;IAEjD,OAAO,CAAC,aAAa,CAMlB;IAEI,gBAAgB,CACrB,QAAQ,EAAE,OAAO,iBAAiB,EAClC,SAAS,EAAE,OAAO,kBAAkB,GACnC,IAAI;IAIS,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IAwBhE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAsC/D"}
@@ -1,51 +0,0 @@
1
- import { ReactiveEngineAutomaticHard as e } from "../core.mjs";
2
- import { useEffect as t, useState as n } from "react";
3
- //#region src/react/ReactiveEngine4React.ts
4
- var r = class extends e {
5
- frameworkPrefix = "react-auto";
6
- reactAdapters = {
7
- useState: n,
8
- useEffect: t
9
- };
10
- setReactAdapters(e, t) {
11
- this.reactAdapters = {
12
- useState: e,
13
- useEffect: t
14
- };
15
- }
16
- reactive(e, t) {
17
- Reflect.has(e, "__subscribe") || Object.defineProperty(e, "__subscribe", {
18
- get: () => (e) => this.effect(() => {
19
- try {
20
- JSON.stringify(n);
21
- } catch {
22
- Object.values(n);
23
- }
24
- e();
25
- }, "react-auto-proxy-internal-subscription"),
26
- configurable: !0,
27
- enumerable: !1
28
- });
29
- let n = super.reactive(e, t);
30
- return n;
31
- }
32
- use(e) {
33
- if (!this.reactAdapters || !this.reactAdapters.useState || !this.reactAdapters.useEffect) throw Error("[ReactiveEngine4ReactAutomatic] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.");
34
- if (typeof e != "object" || !e) return e;
35
- if ("subscribe" in e && typeof e.subscribe == "function") {
36
- let t = e, [n, r] = this.reactAdapters.useState(t.value);
37
- return this.reactAdapters.useEffect(() => t.subscribe(r), [t]), n;
38
- }
39
- let [, t] = this.reactAdapters.useState([]);
40
- return "__subscribe" in e && typeof e.__subscribe == "function" && this.reactAdapters.useEffect(() => {
41
- let n = e.__subscribe(() => {
42
- t([]);
43
- });
44
- return () => n();
45
- }, [e]), e;
46
- }
47
- };
48
- //#endregion
49
- export { r as ReactiveEngine4ReactAutomatic };
50
-
51
- //# sourceMappingURL=ReactiveEngine4React.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4React.mjs","names":[],"sources":["../../src/react/ReactiveEngine4React.ts"],"sourcesContent":["import { useState as useStateFromReact, useEffect as useEffectFromReact } from 'react'\nimport { ReactiveEngine, ReactiveEngineAutomaticHard } from '../core/core'\nimport { ISignalLike } from './types'\n\ntype CleanupFn = () => void\n\n/**\n * ⚛️ 1. СИНХРОННЫЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT\n * Базируется на плоском синхронном Push/Pull графе ядра.\n */\nexport class ReactiveEngine4React extends ReactiveEngine {\n protected override frameworkPrefix = 'react'\n\n private reactAdapters: {\n useState: typeof useStateFromReact;\n useEffect: typeof useEffectFromReact;\n } = {\n useState: useStateFromReact,\n useEffect: useEffectFromReact,\n }\n\n public setReactAdapters(\n useState: typeof useStateFromReact,\n useEffect: typeof useEffectFromReact\n ): void {\n this.reactAdapters = { useState, useEffect }\n }\n\n /**\n * Переопределяем метод создания реактивных объектов для React-версии движка.\n * Безопасно внедряет скрытое свойство __subscribe в оригинальный граф без double-proxying.\n */\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy) // Глубокий прогрев геттеров ядра\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb() // Пинаем колбэк хука React\n }, 'react-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n /**\n * Использование реактивного значения в React-компоненте.\n * Полиморфно поддерживает как атомарные Сигналы/Computed, так и глубокие реактивные Proxy-объекты.\n */\n public use<T>(item: T): T extends ISignalLike<infer V> ? V : T {\n if (!this.reactAdapters || !this.reactAdapters.useState || !this.reactAdapters.useEffect) {\n throw new Error(\"[ReactiveEngine4React] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.\")\n }\n\n if (item === null || item === undefined || typeof item !== 'object') {\n return item as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n // 1. Сценарий А: Передан примитивный Сигнал или Computed\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n const [val, setVal] = this.reactAdapters.useState<unknown>(signalItem.value)\n\n this.reactAdapters.useEffect(\n () => {\n return signalItem.subscribe(setVal)\n },\n [signalItem]\n )\n\n return val as (T extends ISignalLike<infer V> ? V : T)\n }\n\n // 2. Сценарий Б: Передан Proxy-объект из метода reactive()\n const [, forceUpdate] = this.reactAdapters.useState<unknown[]>([])\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n this.reactAdapters.useEffect(() => {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n forceUpdate([]) // Триггерим авто-батчинг ререндера React\n })\n return () => unsubscribe()\n }, [item])\n }\n\n return item as (T extends ISignalLike<infer V> ? V : T)\n }\n}\n\n/**\n * 🤖 2. АВТОМАТИЧЕСКИЙ РЕАКТИВНЫЙ АДАПТЕР ДЛЯ REACT (АСИНХРОННЫЙ ШЕДУЛЕР)\n * Наследует ReactiveEngineAutomatic и аппаратно склеивает цепочки мутаций в микрозадачи.\n */\nexport class ReactiveEngine4ReactAutomatic extends ReactiveEngineAutomaticHard {\n protected override frameworkPrefix = 'react-auto'\n\n private reactAdapters: {\n useState: typeof useStateFromReact;\n useEffect: typeof useEffectFromReact;\n } = {\n useState: useStateFromReact,\n useEffect: useEffectFromReact,\n }\n\n public setReactAdapters(\n useState: typeof useStateFromReact,\n useEffect: typeof useEffectFromReact\n ): void {\n this.reactAdapters = { useState, useEffect }\n }\n\n public override reactive<T extends object>(target: T, name?: string): T {\n if (!Reflect.has(target, '__subscribe')) {\n Object.defineProperty(target, '__subscribe', {\n get: () => {\n return (cb: () => void) => {\n return this.effect(() => {\n try {\n JSON.stringify(originalProxy)\n } catch (e) {\n Object.values(originalProxy as Record<string, unknown>)\n }\n cb()\n }, 'react-auto-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n public use<T>(item: T): T extends ISignalLike<infer V> ? V : T {\n if (!this.reactAdapters || !this.reactAdapters.useState || !this.reactAdapters.useEffect) {\n throw new Error(\"[ReactiveEngine4ReactAutomatic] React adapters are not installed. Please call setReactAdapters(useState, useEffect) before using this hook.\")\n }\n\n if (item === null || item === undefined || typeof item !== 'object') {\n return item as any\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n const [val, setVal] = this.reactAdapters.useState<unknown>(signalItem.value)\n\n this.reactAdapters.useEffect(\n () => {\n return signalItem.subscribe(setVal)\n },\n [signalItem]\n )\n\n return val as (T extends ISignalLike<infer V> ? V : T)\n }\n\n const [, forceUpdate] = this.reactAdapters.useState<unknown[]>([])\n\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n this.reactAdapters.useEffect(() => {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n forceUpdate([])\n })\n return () => unsubscribe()\n }, [item])\n }\n\n return item as (T extends ISignalLike<infer V> ? V : T)\n }\n}\n"],"mappings":";;;AA0GA,IAAa,IAAb,cAAmD,EAA4B;CAC7E,kBAAqC;CAErC,gBAGI;EACU;EACC;CACb;CAEF,iBACE,GACA,GACM;EACN,KAAK,gBAAgB;GAAE;GAAU;EAAU;CAC7C;CAEA,SAA2C,GAAW,GAAkB;EACtE,AAAK,QAAQ,IAAI,GAAQ,aAAa,KACpC,OAAO,eAAe,GAAQ,eAAe;GAC3C,YACU,MACC,KAAK,aAAa;IACvB,IAAI;KACF,KAAK,UAAU,CAAa;IAC9B,QAAY;KACV,OAAO,OAAO,CAAwC;IACxD;IACA,EAAG;GACL,GAAG,wCAAwC;GAG/C,cAAc;GACd,YAAY;EACd,CAAC;EAGH,IAAM,IAAgB,MAAM,SAAS,GAAQ,CAAI;EACjD,OAAO;CACT;CAEA,IAAc,GAAiD;EAC7D,IAAI,CAAC,KAAK,iBAAiB,CAAC,KAAK,cAAc,YAAY,CAAC,KAAK,cAAc,WAC7E,MAAU,MAAM,6IAA6I;EAG/J,IAA2C,OAAO,KAAS,aAAvD,GACF,OAAO;EAKT,IAFiB,eAAe,KAAQ,OAAQ,EAAiC,aAAc,YAEjF;GACZ,IAAM,IAAc,GACd,CAAC,GAAK,KAAU,KAAK,cAAc,SAAkB,EAAW,KAAK;GAS3E,OAPA,KAAK,cAAc,gBAER,EAAW,UAAU,CAAM,GAEpC,CAAC,CAAU,CACb,GAEO;EACT;EAEA,IAAM,GAAG,KAAe,KAAK,cAAc,SAAoB,CAAC,CAAC;EAWjE,OATI,iBAAiB,KAAQ,OAAQ,EAAiC,eAAgB,cACpF,KAAK,cAAc,gBAAgB;GACjC,IAAM,IAAgB,EAAiC,kBAAoD;IACzG,EAAY,CAAC,CAAC;GAChB,CAAC;GACD,aAAa,EAAY;EAC3B,GAAG,CAAC,CAAI,CAAC,GAGJ;CACT;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core.react.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.react.auto.test.d.ts","sourceRoot":"","sources":["../../src/react/core.react.auto.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=core.react.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.react.test.d.ts","sourceRoot":"","sources":["../../src/react/core.react.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=FilteredCatalog.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilteredCatalog.auto.test.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/FilteredCatalog.auto.test.tsx"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=FilteredCatalog.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilteredCatalog.test.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/FilteredCatalog.test.tsx"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./useReactiveSubscription/useReactiveSubscription.cjs");require("./useReactiveSubscription/index.cjs");const t=require("./useReactiveValue/useReactiveValue.cjs");require("./useReactiveValue/index.cjs");const n=require("./useReactiveValue0/useReactiveValue0.cjs");require("./useReactiveValue0/index.cjs"),exports.useReactiveSubscription=e.useReactiveSubscription,exports.useReactiveValue=t.useReactiveValue,exports.useReactiveValue0=n.useReactiveValue0;
@@ -1,4 +0,0 @@
1
- export * from './useReactiveSubscription';
2
- export * from './useReactiveValue';
3
- export * from './useReactiveValue0';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -1,7 +0,0 @@
1
- import { useReactiveSubscription as e } from "./useReactiveSubscription/useReactiveSubscription.mjs";
2
- import "./useReactiveSubscription/index.mjs";
3
- import { useReactiveValue as t } from "./useReactiveValue/useReactiveValue.mjs";
4
- import "./useReactiveValue/index.mjs";
5
- import { useReactiveValue0 as n } from "./useReactiveValue0/useReactiveValue0.mjs";
6
- import "./useReactiveValue0/index.mjs";
7
- export { e as useReactiveSubscription, t as useReactiveValue, n as useReactiveValue0 };
@@ -1,20 +0,0 @@
1
- import { CleanupFn } from '../../core';
2
- /**
3
- * Общий интерфейс-контракт для любого реактивного объекта библиотеки,
4
- * у которого есть чтение значения, метод подписки и опциональный метод уничтожения.
5
- */
6
- export interface ObservableItem<T> {
7
- readonly value: T;
8
- subscribe: (cb: (val: T) => void) => CleanupFn;
9
- destroy?: () => void;
10
- }
11
- /**
12
- * Тип-союз: на вход хука можно подать либо сам реактивный объект,
13
- * либо функцию-фабрику, которая его лениво возвращает.
14
- */
15
- export type ReactiveInput<T> = ObservableItem<T> | (() => ObservableItem<T>);
16
- export interface ISignalLike<V> {
17
- value: V;
18
- subscribe: (cb: (v: V) => void) => CleanupFn;
19
- }
20
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;CAC9C"}
@@ -1 +0,0 @@
1
- const e=require("./useReactiveSubscription.cjs");exports.useReactiveSubscription=e.useReactiveSubscription;
@@ -1,2 +0,0 @@
1
- export * from './useReactiveSubscription';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveSubscription/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
@@ -1,2 +0,0 @@
1
- import { useReactiveSubscription as e } from "./useReactiveSubscription.mjs";
2
- export { e as useReactiveSubscription };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=useReactiveSubscription.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveSubscription.auto.test.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveSubscription/useReactiveSubscription.auto.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- let e=require("react");function t(t,n){let r=(0,e.useRef)(n);(0,e.useEffect)(()=>{r.current=n},[n]),(0,e.useEffect)(()=>{if(!(!t||typeof t!=`object`)){if(`subscribe`in t&&typeof t.subscribe==`function`){let e=t.subscribe(e=>{r.current(e)});return()=>e()}if(`__subscribe`in t&&typeof t.__subscribe==`function`){let e=t.__subscribe(()=>{r.current(t)});return()=>e()}}},[t])}exports.useReactiveSubscription=t;
2
- //# sourceMappingURL=useReactiveSubscription.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveSubscription.cjs","names":[],"sources":["../../../../src/react/hooks/useReactiveSubscription/useReactiveSubscription.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { ISignalLike } from '../types'\n\ntype CleanupFn = () => void\n\n/**\n * Универсальный хук подписки на реактивные источники ядра для React.\n * Полиморфно поддерживает как примитивные Сигналы/Computed, так и Proxy-объекты reactive().\n */\nexport function useReactiveSubscription<T>(\n item: T,\n callback: (val: T extends ISignalLike<infer V> ? V : T) => void\n): void {\n // Сохраняем ссылку на актуальный колбэк, чтобы защитить от лишних переподписок\n const callbackRef = useRef(callback)\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n useEffect(() => {\n if (!item || typeof item !== 'object') return\n\n // 1. Сценарий А: У объекта есть нативный метод подписки .subscribe (Сигнал / Computed)\n if ('subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function') {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n\n const unsubscribe = signalItem.subscribe((newValue) => {\n callbackRef.current(newValue as any)\n })\n\n return () => unsubscribe()\n }\n\n // 2. Сценарий Б: Передан Proxy-объект (используем служебный геттер фреймворк-адаптеров)\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n // При мутации свойств или массивов Proxy пинаем колбэк с актуальным состоянием объекта\n callbackRef.current(item as any)\n })\n\n return () => unsubscribe()\n }\n }, [item])\n}\n"],"mappings":"uBASA,SAAgB,EACd,EACA,EACM,CAEN,IAAM,GAAA,EAAA,EAAA,OAAA,CAAqB,CAAQ,GAEnC,EAAA,EAAA,UAAA,KAAgB,CACd,EAAY,QAAU,CACxB,EAAG,CAAC,CAAQ,CAAC,GAEb,EAAA,EAAA,UAAA,KAAgB,CACV,MAAC,GAAQ,OAAO,GAAS,UAG7B,IAAI,cAAe,GAAQ,OAAQ,EAAiC,WAAc,WAAY,CAG5F,IAAM,EAAc,EAAW,UAAW,GAAa,CACrD,EAAY,QAAQ,CAAe,CACrC,CAAC,EAED,UAAa,EAAY,CAC3B,CAGA,GAAI,gBAAiB,GAAQ,OAAQ,EAAiC,aAAgB,WAAY,CAChG,IAAM,EAAgB,EAAiC,gBAAoD,CAEzG,EAAY,QAAQ,CAAW,CACjC,CAAC,EAED,UAAa,EAAY,CAC3B,CAVA,CAWF,EAAG,CAAC,CAAI,CAAC,CACX"}
@@ -1,7 +0,0 @@
1
- import { ISignalLike } from '../types';
2
- /**
3
- * Универсальный хук подписки на реактивные источники ядра для React.
4
- * Полиморфно поддерживает как примитивные Сигналы/Computed, так и Proxy-объекты reactive().
5
- */
6
- export declare function useReactiveSubscription<T>(item: T, callback: (val: T extends ISignalLike<infer V> ? V : T) => void): void;
7
- //# sourceMappingURL=useReactiveSubscription.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveSubscription.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveSubscription/useReactiveSubscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAItC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,GAC9D,IAAI,CAgCN"}
@@ -1,27 +0,0 @@
1
- import { useEffect as e, useRef as t } from "react";
2
- //#region src/react/hooks/useReactiveSubscription/useReactiveSubscription.ts
3
- function n(n, r) {
4
- let i = t(r);
5
- e(() => {
6
- i.current = r;
7
- }, [r]), e(() => {
8
- if (!(!n || typeof n != "object")) {
9
- if ("subscribe" in n && typeof n.subscribe == "function") {
10
- let e = n.subscribe((e) => {
11
- i.current(e);
12
- });
13
- return () => e();
14
- }
15
- if ("__subscribe" in n && typeof n.__subscribe == "function") {
16
- let e = n.__subscribe(() => {
17
- i.current(n);
18
- });
19
- return () => e();
20
- }
21
- }
22
- }, [n]);
23
- }
24
- //#endregion
25
- export { n as useReactiveSubscription };
26
-
27
- //# sourceMappingURL=useReactiveSubscription.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveSubscription.mjs","names":[],"sources":["../../../../src/react/hooks/useReactiveSubscription/useReactiveSubscription.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\nimport { ISignalLike } from '../types'\n\ntype CleanupFn = () => void\n\n/**\n * Универсальный хук подписки на реактивные источники ядра для React.\n * Полиморфно поддерживает как примитивные Сигналы/Computed, так и Proxy-объекты reactive().\n */\nexport function useReactiveSubscription<T>(\n item: T,\n callback: (val: T extends ISignalLike<infer V> ? V : T) => void\n): void {\n // Сохраняем ссылку на актуальный колбэк, чтобы защитить от лишних переподписок\n const callbackRef = useRef(callback)\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n useEffect(() => {\n if (!item || typeof item !== 'object') return\n\n // 1. Сценарий А: У объекта есть нативный метод подписки .subscribe (Сигнал / Computed)\n if ('subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function') {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n\n const unsubscribe = signalItem.subscribe((newValue) => {\n callbackRef.current(newValue as any)\n })\n\n return () => unsubscribe()\n }\n\n // 2. Сценарий Б: Передан Proxy-объект (используем служебный геттер фреймворк-адаптеров)\n if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n const unsubscribe = ((item as Record<string, unknown>).__subscribe as (cb: () => void) => CleanupFn)(() => {\n // При мутации свойств или массивов Proxy пинаем колбэк с актуальным состоянием объекта\n callbackRef.current(item as any)\n })\n\n return () => unsubscribe()\n }\n }, [item])\n}\n"],"mappings":";;AASA,SAAgB,EACd,GACA,GACM;CAEN,IAAM,IAAc,EAAO,CAAQ;CAMnC,AAJA,QAAgB;EACd,EAAY,UAAU;CACxB,GAAG,CAAC,CAAQ,CAAC,GAEb,QAAgB;EACV,OAAC,KAAQ,OAAO,KAAS,WAG7B;OAAI,eAAe,KAAQ,OAAQ,EAAiC,aAAc,YAAY;IAG5F,IAAM,IAAc,EAAW,WAAW,MAAa;KACrD,EAAY,QAAQ,CAAe;IACrC,CAAC;IAED,aAAa,EAAY;GAC3B;GAGA,IAAI,iBAAiB,KAAQ,OAAQ,EAAiC,eAAgB,YAAY;IAChG,IAAM,IAAgB,EAAiC,kBAAoD;KAEzG,EAAY,QAAQ,CAAW;IACjC,CAAC;IAED,aAAa,EAAY;GAC3B;EAVA;CAWF,GAAG,CAAC,CAAI,CAAC;AACX"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=useReactiveSubscription.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveSubscription.test.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveSubscription/useReactiveSubscription.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./useReactiveValue.cjs");exports.useReactiveValue=e.useReactiveValue;
@@ -1,2 +0,0 @@
1
- export * from './useReactiveValue';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveValue/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1,2 +0,0 @@
1
- import { useReactiveValue as e } from "./useReactiveValue.mjs";
2
- export { e as useReactiveValue };
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=useReactiveValue.auto.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveValue.auto.test.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveValue/useReactiveValue.auto.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- let e=require("react");var t=t=>{let n=typeof t==`function`,r=(0,e.useRef)(t);(0,e.useEffect)(()=>{r.current=t},[t]);let i=(0,e.useMemo)(()=>typeof t==`function`?t():t,[n?void 0:t]),a=i&&typeof i==`object`&&`subscribe`in i&&typeof i.subscribe==`function`,o=(0,e.useCallback)(e=>a?i.subscribe(e):()=>{},[i,a]),s=(0,e.useCallback)(()=>a?i.value:i,[i,a]);if((0,e.useEffect)(()=>()=>{n&&i&&`destroy`in i&&typeof i.destroy==`function`&&i.destroy()},[i,n]),a)return(0,e.useSyncExternalStore)(o,s);let[,c]=(0,e.useState)([]);return(0,e.useEffect)(()=>{if(i&&`__subscribe`in i&&typeof i.__subscribe==`function`){let e=i.__subscribe(()=>{c([])});return()=>e()}},[i]),i};exports.useReactiveValue=t;
2
- //# sourceMappingURL=useReactiveValue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveValue.cjs","names":[],"sources":["../../../../src/react/hooks/useReactiveValue/useReactiveValue.ts"],"sourcesContent":["import { useSyncExternalStore, useCallback, useMemo, useEffect, useRef, useState } from 'react'\n\ntype CleanupFn = () => void\n\n// Описываем строгий контракт для примитивов реактивного ядра (Signals / Computed / Resources)\nexport interface ISignalLike<V> {\n readonly value: V;\n subscribe: (cb: (val: V) => void) => CleanupFn\n destroy?: () => void\n}\n\ntype ReactiveInput<T> = ISignalLike<T> | (() => ISignalLike<T>) | object | (() => object)\n\n/**\n * Нативный React-хук для извлечения текущего значения из реактивных примитивов ядра\n * (Signal, Computed, Resource) и глубоких реактивных Proxy-объектов (reactive).\n *\n * @template T - Тип входящих данных\n * @param {ReactiveInput<any>} input - Готовый реактивный элемент ядра или функция-фабрика\n * @returns {any} Актуальное синхронизированное значение элемента или сам прокси-объект\n */\nexport const useReactiveValue = <T>(input: ReactiveInput<any>): any => {\n const isFactory = typeof input === 'function'\n\n // Стабилизируем ссылку на фабрику\n const factoryRef = useRef(input)\n useEffect(() => {\n factoryRef.current = input\n }, [input])\n\n // Вычисляем целевой элемент один раз\n const reactiveItem = useMemo(() => {\n if (typeof input === 'function') {\n return input()\n }\n return input\n }, [isFactory ? undefined : input])\n\n // Определяем, является ли объект примитивом (Signal/Computed) или это Proxy-объект reactive()\n const isSignal = reactiveItem &&\n typeof reactiveItem === 'object' &&\n 'subscribe' in reactiveItem &&\n typeof (reactiveItem as Record<string, unknown>).subscribe === 'function'\n\n // ------------------------------------------------====\n // СЦЕНАРИЙ А: Работа с атомарными Сигналами / Computed (useSyncExternalStore)\n // ------------------------------------------------====\n const subscribe = useCallback(\n (reactCallback: () => void) => {\n if (isSignal) {\n return (reactiveItem as ISignalLike<unknown>).subscribe(reactCallback)\n }\n return () => {}\n },\n [reactiveItem, isSignal]\n )\n\n const getSnapshot = useCallback(() => {\n if (isSignal) {\n return (reactiveItem as ISignalLike<unknown>).value\n }\n return reactiveItem\n }, [reactiveItem, isSignal])\n\n // Безопасная очистка локальных фабрик ядра при размонтировании экрана\n useEffect(() => {\n return () => {\n if (isFactory && reactiveItem && 'destroy' in reactiveItem && typeof (reactiveItem as any).destroy === 'function') {\n (reactiveItem as any).destroy()\n }\n }\n }, [reactiveItem, isFactory])\n\n // Если это сигнал — используем Concurrent-безопасныйuseSyncExternalStore\n if (isSignal) {\n return useSyncExternalStore(subscribe, getSnapshot)\n }\n\n // ------------------------------------------------====\n // СЦЕНАРИЙ Б: Работа с глубокими Proxy-объектами / Массивами\n // ------------------------------------------------====\n // Для Proxy-объектовuseSyncExternalStore не подходит, так как у них нет .value.\n // Мы создаем локальный forceUpdate и подписываем его через скрытый геттер __subscribe адаптера\n const [, forceUpdate] = useState([])\n\n useEffect(() => {\n if (reactiveItem && '__subscribe' in reactiveItem && typeof (reactiveItem as any).__subscribe === 'function') {\n const unsubscribe = (reactiveItem as any).__subscribe(() => {\n forceUpdate([]) // Провоцируем ререндер компонента через автобатчинг микрозадач\n })\n return () => unsubscribe()\n }\n }, [reactiveItem])\n\n return reactiveItem\n}\n"],"mappings":"uBAqBA,IAAa,EAAuB,GAAmC,CACrE,IAAM,EAAY,OAAO,GAAU,WAG7B,GAAA,EAAA,EAAA,OAAA,CAAoB,CAAK,GAC/B,EAAA,EAAA,UAAA,KAAgB,CACd,EAAW,QAAU,CACvB,EAAG,CAAC,CAAK,CAAC,EAGV,IAAM,GAAA,EAAA,EAAA,QAAA,KACA,OAAO,GAAU,WACZ,EAAM,EAER,EACN,CAAC,EAAY,IAAA,GAAY,CAAK,CAAC,EAG5B,EAAW,GACA,OAAO,GAAiB,UACxB,cAAe,GACf,OAAQ,EAAyC,WAAc,WAK1E,GAAA,EAAA,EAAA,YAAA,CACH,GACK,EACM,EAAsC,UAAU,CAAa,MAE1D,CAAC,EAEhB,CAAC,EAAc,CAAQ,CACzB,EAEM,GAAA,EAAA,EAAA,YAAA,KACA,EACM,EAAsC,MAEzC,EACN,CAAC,EAAc,CAAQ,CAAC,EAY3B,IATA,EAAA,EAAA,UAAA,SACe,CACP,GAAa,GAAgB,YAAa,GAAgB,OAAQ,EAAqB,SAAY,YACrG,EAAsB,QAAQ,CAElC,EACC,CAAC,EAAc,CAAS,CAAC,EAGxB,EACF,OAAA,EAAA,EAAA,qBAAA,CAA4B,EAAW,CAAW,EAQpD,GAAM,EAAG,IAAA,EAAA,EAAA,SAAA,CAAwB,CAAC,CAAC,EAWnC,OATA,EAAA,EAAA,UAAA,KAAgB,CACd,GAAI,GAAgB,gBAAiB,GAAgB,OAAQ,EAAqB,aAAgB,WAAY,CAC5G,IAAM,EAAe,EAAqB,gBAAkB,CAC1D,EAAY,CAAC,CAAC,CAChB,CAAC,EACD,UAAa,EAAY,CAC3B,CACF,EAAG,CAAC,CAAY,CAAC,EAEV,CACT"}
@@ -1,18 +0,0 @@
1
- type CleanupFn = () => void;
2
- export interface ISignalLike<V> {
3
- readonly value: V;
4
- subscribe: (cb: (val: V) => void) => CleanupFn;
5
- destroy?: () => void;
6
- }
7
- type ReactiveInput<T> = ISignalLike<T> | (() => ISignalLike<T>) | object | (() => object);
8
- /**
9
- * Нативный React-хук для извлечения текущего значения из реактивных примитивов ядра
10
- * (Signal, Computed, Resource) и глубоких реактивных Proxy-объектов (reactive).
11
- *
12
- * @template T - Тип входящих данных
13
- * @param {ReactiveInput<any>} input - Готовый реактивный элемент ядра или функция-фабрика
14
- * @returns {any} Актуальное синхронизированное значение элемента или сам прокси-объект
15
- */
16
- export declare const useReactiveValue: <T>(input: ReactiveInput<any>) => any;
17
- export {};
18
- //# sourceMappingURL=useReactiveValue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveValue.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveValue/useReactiveValue.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG,MAAM,IAAI,CAAA;AAG3B,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,KAAK,SAAS,CAAA;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,KAAK,aAAa,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAA;AAEzF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,CAAC,KAAG,GA0E/D,CAAA"}
@@ -1,25 +0,0 @@
1
- import { useCallback as e, useEffect as t, useMemo as n, useRef as r, useState as i, useSyncExternalStore as a } from "react";
2
- //#region src/react/hooks/useReactiveValue/useReactiveValue.ts
3
- var o = (o) => {
4
- let s = typeof o == "function", c = r(o);
5
- t(() => {
6
- c.current = o;
7
- }, [o]);
8
- let l = n(() => typeof o == "function" ? o() : o, [s ? void 0 : o]), u = l && typeof l == "object" && "subscribe" in l && typeof l.subscribe == "function", d = e((e) => u ? l.subscribe(e) : () => {}, [l, u]), f = e(() => u ? l.value : l, [l, u]);
9
- if (t(() => () => {
10
- s && l && "destroy" in l && typeof l.destroy == "function" && l.destroy();
11
- }, [l, s]), u) return a(d, f);
12
- let [, p] = i([]);
13
- return t(() => {
14
- if (l && "__subscribe" in l && typeof l.__subscribe == "function") {
15
- let e = l.__subscribe(() => {
16
- p([]);
17
- });
18
- return () => e();
19
- }
20
- }, [l]), l;
21
- };
22
- //#endregion
23
- export { o as useReactiveValue };
24
-
25
- //# sourceMappingURL=useReactiveValue.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveValue.mjs","names":[],"sources":["../../../../src/react/hooks/useReactiveValue/useReactiveValue.ts"],"sourcesContent":["import { useSyncExternalStore, useCallback, useMemo, useEffect, useRef, useState } from 'react'\n\ntype CleanupFn = () => void\n\n// Описываем строгий контракт для примитивов реактивного ядра (Signals / Computed / Resources)\nexport interface ISignalLike<V> {\n readonly value: V;\n subscribe: (cb: (val: V) => void) => CleanupFn\n destroy?: () => void\n}\n\ntype ReactiveInput<T> = ISignalLike<T> | (() => ISignalLike<T>) | object | (() => object)\n\n/**\n * Нативный React-хук для извлечения текущего значения из реактивных примитивов ядра\n * (Signal, Computed, Resource) и глубоких реактивных Proxy-объектов (reactive).\n *\n * @template T - Тип входящих данных\n * @param {ReactiveInput<any>} input - Готовый реактивный элемент ядра или функция-фабрика\n * @returns {any} Актуальное синхронизированное значение элемента или сам прокси-объект\n */\nexport const useReactiveValue = <T>(input: ReactiveInput<any>): any => {\n const isFactory = typeof input === 'function'\n\n // Стабилизируем ссылку на фабрику\n const factoryRef = useRef(input)\n useEffect(() => {\n factoryRef.current = input\n }, [input])\n\n // Вычисляем целевой элемент один раз\n const reactiveItem = useMemo(() => {\n if (typeof input === 'function') {\n return input()\n }\n return input\n }, [isFactory ? undefined : input])\n\n // Определяем, является ли объект примитивом (Signal/Computed) или это Proxy-объект reactive()\n const isSignal = reactiveItem &&\n typeof reactiveItem === 'object' &&\n 'subscribe' in reactiveItem &&\n typeof (reactiveItem as Record<string, unknown>).subscribe === 'function'\n\n // ------------------------------------------------====\n // СЦЕНАРИЙ А: Работа с атомарными Сигналами / Computed (useSyncExternalStore)\n // ------------------------------------------------====\n const subscribe = useCallback(\n (reactCallback: () => void) => {\n if (isSignal) {\n return (reactiveItem as ISignalLike<unknown>).subscribe(reactCallback)\n }\n return () => {}\n },\n [reactiveItem, isSignal]\n )\n\n const getSnapshot = useCallback(() => {\n if (isSignal) {\n return (reactiveItem as ISignalLike<unknown>).value\n }\n return reactiveItem\n }, [reactiveItem, isSignal])\n\n // Безопасная очистка локальных фабрик ядра при размонтировании экрана\n useEffect(() => {\n return () => {\n if (isFactory && reactiveItem && 'destroy' in reactiveItem && typeof (reactiveItem as any).destroy === 'function') {\n (reactiveItem as any).destroy()\n }\n }\n }, [reactiveItem, isFactory])\n\n // Если это сигнал — используем Concurrent-безопасныйuseSyncExternalStore\n if (isSignal) {\n return useSyncExternalStore(subscribe, getSnapshot)\n }\n\n // ------------------------------------------------====\n // СЦЕНАРИЙ Б: Работа с глубокими Proxy-объектами / Массивами\n // ------------------------------------------------====\n // Для Proxy-объектовuseSyncExternalStore не подходит, так как у них нет .value.\n // Мы создаем локальный forceUpdate и подписываем его через скрытый геттер __subscribe адаптера\n const [, forceUpdate] = useState([])\n\n useEffect(() => {\n if (reactiveItem && '__subscribe' in reactiveItem && typeof (reactiveItem as any).__subscribe === 'function') {\n const unsubscribe = (reactiveItem as any).__subscribe(() => {\n forceUpdate([]) // Провоцируем ререндер компонента через автобатчинг микрозадач\n })\n return () => unsubscribe()\n }\n }, [reactiveItem])\n\n return reactiveItem\n}\n"],"mappings":";;AAqBA,IAAa,KAAuB,MAAmC;CACrE,IAAM,IAAY,OAAO,KAAU,YAG7B,IAAa,EAAO,CAAK;CAC/B,QAAgB;EACd,EAAW,UAAU;CACvB,GAAG,CAAC,CAAK,CAAC;CAGV,IAAM,IAAe,QACf,OAAO,KAAU,aACZ,EAAM,IAER,GACN,CAAC,IAAY,KAAA,IAAY,CAAK,CAAC,GAG5B,IAAW,KACA,OAAO,KAAiB,YACxB,eAAe,KACf,OAAQ,EAAyC,aAAc,YAK1E,IAAY,GACf,MACK,IACM,EAAsC,UAAU,CAAa,UAE1D,CAAC,GAEhB,CAAC,GAAc,CAAQ,CACzB,GAEM,IAAc,QACd,IACM,EAAsC,QAEzC,GACN,CAAC,GAAc,CAAQ,CAAC;CAY3B,IATA,cACe;EACX,AAAI,KAAa,KAAgB,aAAa,KAAgB,OAAQ,EAAqB,WAAY,cACrG,EAAsB,QAAQ;CAElC,GACC,CAAC,GAAc,CAAS,CAAC,GAGxB,GACF,OAAO,EAAqB,GAAW,CAAW;CAQpD,IAAM,GAAG,KAAe,EAAS,CAAC,CAAC;CAWnC,OATA,QAAgB;EACd,IAAI,KAAgB,iBAAiB,KAAgB,OAAQ,EAAqB,eAAgB,YAAY;GAC5G,IAAM,IAAe,EAAqB,kBAAkB;IAC1D,EAAY,CAAC,CAAC;GAChB,CAAC;GACD,aAAa,EAAY;EAC3B;CACF,GAAG,CAAC,CAAY,CAAC,GAEV;AACT"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=useReactiveValue.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useReactiveValue.test.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveValue/useReactiveValue.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- const e=require("./useReactiveValue0.cjs");exports.useReactiveValue0=e.useReactiveValue0;
@@ -1,2 +0,0 @@
1
- export * from './useReactiveValue0';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/useReactiveValue0/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -1,2 +0,0 @@
1
- import { useReactiveValue0 as e } from "./useReactiveValue0.mjs";
2
- export { e as useReactiveValue0 };
@@ -1,2 +0,0 @@
1
- let e=require("react");var t=t=>{let n=typeof t==`function`,r=(0,e.useRef)(t);(0,e.useEffect)(()=>{r.current=t},[t]);let i=(0,e.useMemo)(()=>typeof t==`function`?t():t,[n?void 0:t]),[a,o]=(0,e.useState)(i.value),s=(0,e.useRef)(o);return(0,e.useEffect)(()=>{s.current=o},[o]),a!==i.value&&o(i.value),(0,e.useEffect)(()=>{let e=i.subscribe(e=>{s.current(e)});return()=>{e(),n&&i&&typeof i.destroy==`function`&&i.destroy()}},[i,n]),a};exports.useReactiveValue0=t;
2
- //# sourceMappingURL=useReactiveValue0.cjs.map