@pravosleva/reactive-engine 1.8.2-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 -152
  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 -531
  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
@@ -0,0 +1,18 @@
1
+ import { ReactiveFramework } from './framework.js';
2
+ /**
3
+ * Memory & GC
4
+ *
5
+ * Tests that disposing effects and removing listeners correctly
6
+ * cleans up subscriptions and dependency links, preventing
7
+ * memory leaks and stale re-executions.
8
+ *
9
+ * Legend:
10
+ * S signal (source)
11
+ * C computed
12
+ * E / eff effect
13
+ * ─→ dependency edge
14
+ * ──X disposed / removed edge
15
+ */
16
+ export declare const section = "Memory & GC";
17
+ export declare const cases: Record<string, (fw: ReactiveFramework) => any>;
18
+ //# sourceMappingURL=memoryGc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryGc.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/src/memoryGc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,gBAAgB,CAAC;AACrC,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,GAAG,CAsJhE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ReactiveFramework } from './framework.js';
2
+ /**
3
+ * Nested Effects & Ordering
4
+ *
5
+ * Tests that effects created inside other effects behave correctly:
6
+ * outer effects run before inner effects, inner effects are disposed
7
+ * when the outer re-runs, disposal cascades through multiple levels,
8
+ * and recursive writes inside effects do not cause infinite loops.
9
+ *
10
+ * Legend:
11
+ * S signal (source)
12
+ * C computed
13
+ * E effect
14
+ * E{E} outer effect containing an inner effect
15
+ * ─→ dependency edge (downstream reads upstream)
16
+ * ✕ disposed / cleaned up
17
+ */
18
+ export declare const section = "Nested Effects & Ordering";
19
+ export declare const cases: Record<string, (fw: ReactiveFramework) => any>;
20
+ //# sourceMappingURL=nestedEffects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestedEffects.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/src/nestedEffects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,8BAA8B,CAAC;AACnD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,GAAG,CA+ZhE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reactiveEngine.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactiveEngine.test.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/src/reactiveEngine.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { ReactiveFramework } from './framework.js';
2
+ /**
3
+ * Stale Evaluation Order
4
+ *
5
+ * Tests that computeds are re-evaluated in topological
6
+ * (dependency-respecting) order after a source signal changes.
7
+ * A correct framework must never evaluate a downstream computed
8
+ * before its upstream dependency has been refreshed.
9
+ *
10
+ * Legend:
11
+ * S signal (source)
12
+ * C computed
13
+ * E / eff effect
14
+ * ─→ dependency edge
15
+ */
16
+ export declare const section = "Stale Evaluation Order";
17
+ export declare const cases: Record<string, (fw: ReactiveFramework) => any>;
18
+ //# sourceMappingURL=staleEvaluation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleEvaluation.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/src/staleEvaluation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,2BAA2B,CAAC;AAChD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,GAAG,CA8IhE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ReactiveFramework } from './framework.js';
2
+ /**
3
+ * Untracked / Unsampled Reads
4
+ *
5
+ * Tests that `fw.untracked()` suppresses dependency tracking.
6
+ * Reads performed inside an untracked scope must not subscribe the
7
+ * enclosing effect or computed to the read signal.
8
+ *
9
+ * Legend:
10
+ * S signal (source)
11
+ * C computed
12
+ * E / eff effect
13
+ * ─→ dependency edge
14
+ * ╌╌→ untracked read (no dependency created)
15
+ */
16
+ export declare const section = "Untracked / Unsampled Reads";
17
+ export declare const cases: Record<string, (fw: ReactiveFramework) => any>;
18
+ //# sourceMappingURL=untracked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untracked.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/src/untracked.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,gCAAgC,CAAC;AACrD,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,iBAAiB,KAAK,GAAG,CAsNhE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const alienSignalsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=alienSignals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alienSignals.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/alienSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,eAAO,MAAM,qBAAqB,EAAE,iBAmCnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const angularSignalsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=angularSignals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angularSignals.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/angularSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAahE,eAAO,MAAM,uBAAuB,EAAE,iBAwCrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const anodFramework: ReactiveFramework;
3
+ //# sourceMappingURL=anod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anod.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/anod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAWhE,eAAO,MAAM,aAAa,EAAE,iBAqE3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const frameworks: ReactiveFramework[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAkBhE,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAgBzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const mobxFramework: ReactiveFramework;
3
+ //# sourceMappingURL=mobx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobx.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/mobx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE,eAAO,MAAM,aAAa,EAAE,iBAyB3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const potaFramework: ReactiveFramework;
3
+ //# sourceMappingURL=pota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pota.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/pota.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAOhE,eAAO,MAAM,aAAa,EAAE,iBAkC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const preactSignalsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=preactSignals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preactSignals.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/preactSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAShE,eAAO,MAAM,sBAAsB,EAAE,iBAyBpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const reactivelyFramework: ReactiveFramework;
3
+ //# sourceMappingURL=reactively.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactively.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/reactively.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,eAAO,MAAM,mBAAmB,EAAE,iBAwCjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const reatomFramework: ReactiveFramework;
3
+ //# sourceMappingURL=reatom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reatom.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/reatom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAWhE,eAAO,MAAM,eAAe,EAAE,iBA+C7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const sjsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=sjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sjs.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/sjs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,eAAO,MAAM,YAAY,EAAE,iBAsC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const solidFramework: ReactiveFramework;
3
+ //# sourceMappingURL=solid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/solid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAehE,eAAO,MAAM,cAAc,EAAE,iBAqC5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const solidSignalsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=solidSignals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidSignals.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/solidSignals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmBhE,eAAO,MAAM,qBAAqB,EAAE,iBA4CnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const svelteFramework: ReactiveFramework;
3
+ //# sourceMappingURL=svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,eAAO,MAAM,eAAe,EAAE,iBA8B7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const tansuFramework: ReactiveFramework;
3
+ //# sourceMappingURL=tansu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tansu.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/tansu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,eAAO,MAAM,cAAc,EAAE,iBA2B5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const tc39SignalsFramework: ReactiveFramework;
3
+ //# sourceMappingURL=tc39Signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tc39Signals.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/tc39Signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAsBhE,eAAO,MAAM,oBAAoB,EAAE,iBAmClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ReactiveFramework } from '../../src/framework.js';
2
+ export declare const vueReactivityFramework: ReactiveFramework;
3
+ //# sourceMappingURL=vueReactivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vueReactivity.d.ts","sourceRoot":"","sources":["../../../../../../report/reactive-framework-test-suite/test/frameworks/vueReactivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA0BhE,eAAO,MAAM,sBAAsB,EAAE,iBAsDpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../../../../../report/reactive-framework-test-suite/test/run.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ declare const _default: import('vite').UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../../../report/reactive-framework-test-suite/vitest.config.ts"],"names":[],"mappings":";AAEA,wBASG"}
@@ -0,0 +1,2 @@
1
+ var e=({tested:e,expectedKey:t,valueType:n})=>{let r=[];if(!e||!Array.isArray(e))return r;for(let i=0,a=e.length;i<a;i++){let a=e[i];if(typeof a!=`string`)continue;let o;switch(n){case`number`:o=RegExp(`\\[${t}=(?<value>\\d+)\\]`,`g`);break;default:o=RegExp(`\\[${t}=(?<value>.*?)\\]`,`g`);break}for(let e of a.matchAll(o))e?.groups&&r.push(e.groups.value)}return r};exports.getExtractedValues=e;
2
+ //# sourceMappingURL=getExtractedValues.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtractedValues.cjs","names":[],"sources":["../../src/utils/getExtractedValues.ts"],"sourcesContent":["export const getExtractedValues = ({\n tested, expectedKey, valueType\n}: {\n tested: string[];\n expectedKey: string;\n valueType: 'number' | 'string';\n}): string[] => {\n const results: string[] = []\n if (!tested || !Array.isArray(tested)) return results // Предохранитель от пустых массивов\n\n for (let i = 0, max = tested.length; i < max; i++) {\n const t = tested[i]\n if (typeof t !== 'string') continue // ЗАЩИТА: Пропускаем всё, что не является валидной строкой\n\n let regex\n switch (valueType) {\n case 'number':\n regex = new RegExp(`\\\\[${expectedKey}=(?<value>\\\\d+)\\\\]`, 'g')\n break\n case 'string':\n default:\n regex = new RegExp(`\\\\[${expectedKey}=(?<value>.*?)\\\\]`, 'g')\n break\n }\n\n for (const n of t.matchAll(regex)) {\n if (n?.groups) { results.push(n.groups.value) }\n }\n }\n return results\n}\n"],"mappings":"AAAA,IAAa,GAAsB,CACjC,SAAQ,cAAa,eAKP,CACd,IAAM,EAAoB,CAAC,EAC3B,GAAI,CAAC,GAAU,CAAC,MAAM,QAAQ,CAAM,EAAG,OAAO,EAE9C,IAAK,IAAI,EAAI,EAAG,EAAM,EAAO,OAAQ,EAAI,EAAK,IAAK,CACjD,IAAM,EAAI,EAAO,GACjB,GAAI,OAAO,GAAM,SAAU,SAE3B,IAAI,EACJ,OAAQ,EAAR,CACA,IAAK,SACH,EAAY,OAAO,MAAM,EAAY,oBAAqB,GAAG,EAC7D,MAEF,QACE,EAAY,OAAO,MAAM,EAAY,mBAAoB,GAAG,EAC5D,KACF,CAEA,IAAK,IAAM,KAAK,EAAE,SAAS,CAAK,EAC1B,GAAG,QAAU,EAAQ,KAAK,EAAE,OAAO,KAAK,CAEhD,CACA,OAAO,CACT"}
@@ -0,0 +1,24 @@
1
+ //#region src/utils/getExtractedValues.ts
2
+ var e = ({ tested: e, expectedKey: t, valueType: n }) => {
3
+ let r = [];
4
+ if (!e || !Array.isArray(e)) return r;
5
+ for (let i = 0, a = e.length; i < a; i++) {
6
+ let a = e[i];
7
+ if (typeof a != "string") continue;
8
+ let o;
9
+ switch (n) {
10
+ case "number":
11
+ o = RegExp(`\\[${t}=(?<value>\\d+)\\]`, "g");
12
+ break;
13
+ default:
14
+ o = RegExp(`\\[${t}=(?<value>.*?)\\]`, "g");
15
+ break;
16
+ }
17
+ for (let e of a.matchAll(o)) e?.groups && r.push(e.groups.value);
18
+ }
19
+ return r;
20
+ };
21
+ //#endregion
22
+ export { e as getExtractedValues };
23
+
24
+ //# sourceMappingURL=getExtractedValues.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtractedValues.mjs","names":[],"sources":["../../src/utils/getExtractedValues.ts"],"sourcesContent":["export const getExtractedValues = ({\n tested, expectedKey, valueType\n}: {\n tested: string[];\n expectedKey: string;\n valueType: 'number' | 'string';\n}): string[] => {\n const results: string[] = []\n if (!tested || !Array.isArray(tested)) return results // Предохранитель от пустых массивов\n\n for (let i = 0, max = tested.length; i < max; i++) {\n const t = tested[i]\n if (typeof t !== 'string') continue // ЗАЩИТА: Пропускаем всё, что не является валидной строкой\n\n let regex\n switch (valueType) {\n case 'number':\n regex = new RegExp(`\\\\[${expectedKey}=(?<value>\\\\d+)\\\\]`, 'g')\n break\n case 'string':\n default:\n regex = new RegExp(`\\\\[${expectedKey}=(?<value>.*?)\\\\]`, 'g')\n break\n }\n\n for (const n of t.matchAll(regex)) {\n if (n?.groups) { results.push(n.groups.value) }\n }\n }\n return results\n}\n"],"mappings":";AAAA,IAAa,KAAsB,EACjC,WAAQ,gBAAa,mBAKP;CACd,IAAM,IAAoB,CAAC;CAC3B,IAAI,CAAC,KAAU,CAAC,MAAM,QAAQ,CAAM,GAAG,OAAO;CAE9C,KAAK,IAAI,IAAI,GAAG,IAAM,EAAO,QAAQ,IAAI,GAAK,KAAK;EACjD,IAAM,IAAI,EAAO;EACjB,IAAI,OAAO,KAAM,UAAU;EAE3B,IAAI;EACJ,QAAQ,GAAR;GACA,KAAK;IACH,IAAY,OAAO,MAAM,EAAY,qBAAqB,GAAG;IAC7D;GAEF;IACE,IAAY,OAAO,MAAM,EAAY,oBAAoB,GAAG;IAC5D;EACF;EAEA,KAAK,IAAM,KAAK,EAAE,SAAS,CAAK,GAC9B,AAAI,GAAG,UAAU,EAAQ,KAAK,EAAE,OAAO,KAAK;CAEhD;CACA,OAAO;AACT"}
@@ -0,0 +1,2 @@
1
+ let e=require("vue");function t(t){if(typeof t!=`object`||!t)return(0,e.shallowRef)(t);let n=`subscribe`in t&&typeof t.subscribe==`function`,r=(0,e.shallowRef)(n?t.value:t),i=null;if(n)i=t.subscribe(e=>{r.value=e});else if(`__subscribe`in t&&typeof t.__subscribe==`function`){let e=t;i=e.__subscribe(()=>{r.value=Array.isArray(e)?[...e]:{...e}})}return i&&(0,e.onScopeDispose)(()=>{i()}),r}exports.useReactiveValue=t;
2
+ //# sourceMappingURL=core.vue-adapter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.vue-adapter.cjs","names":[],"sources":["../../src/vue/core.vue-adapter.ts"],"sourcesContent":["import { shallowRef, onScopeDispose } from 'vue'\nimport { ISignalLike } from '../core/types'\n\ntype CleanupFn = () => void\n\n/**\n * 🟢 REACTIVE ENGINE ADAPTER FOR VUE 3 (v1.9.0)\n *\n * Нативно интегрирует синхронные и асингулярные графы ядра с реактивной системой Vue 3.\n * Исключает десинхронизацию за счет shallowRef-трансляции и триггеров onScopeDispose.\n */\nexport function useReactiveValue<T>(item: T): any {\n // Быстрый выход для примитивов или невалидных объектов, переданных по ошибке\n if (item === null || item === undefined || typeof item !== 'object') {\n return shallowRef(item)\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n // Инициализируем реактивный контейнер Vue 3 стартовым снимком из ядра\n const stateRef = shallowRef(isSignal ? (item as any).value : item)\n let unsubscribe: CleanupFn | null = null\n\n // =========================================================================\n // СЦЕНАРИЙ 1: Подписка на Сигналы и Вычисляемые свойства (Computed)\n // =========================================================================\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n unsubscribe = signalItem.subscribe((newValue: any) => {\n stateRef.value = newValue // Vue 3 автоматически триггерит обновление DOM\n })\n }\n // =========================================================================\n // СЦЕНАРИЙ 2: Подписка на глубокие Proxy-объекты и массивы (reactive)\n // =========================================================================\n else if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n const reactiveItem = item as any\n unsubscribe = reactiveItem.__subscribe(() => {\n // Для Proxy-коллекций принудительно создаем shallow-копию ссылки,\n // заставляя ленивый движок Vue 3 безупречно перерисовывать шаблоны .push/.splice мутаций!\n stateRef.value = Array.isArray(reactiveItem) ? [...reactiveItem] : { ...reactiveItem }\n })\n }\n\n // Автоматически освобождаем оперативную память и гасим эффекты ядра\n // при размонтировании Vue-компонента или закрытии EffectScope\n if (unsubscribe) {\n onScopeDispose(() => {\n unsubscribe!()\n })\n }\n\n return stateRef\n}\n"],"mappings":"qBAWA,SAAgB,EAAoB,EAAc,CAEhD,GAA2C,OAAO,GAAS,WAAvD,EACF,OAAA,EAAA,EAAA,WAAA,CAAkB,CAAI,EAGxB,IAAM,EAAW,cAAe,GAAQ,OAAQ,EAAiC,WAAc,WAGzF,GAAA,EAAA,EAAA,WAAA,CAAsB,EAAY,EAAa,MAAQ,CAAI,EAC7D,EAAgC,KAKpC,GAAI,EAEF,EAAc,EAAW,UAAW,GAAkB,CACpD,EAAS,MAAQ,CACnB,CAAC,OAKE,GAAI,gBAAiB,GAAQ,OAAQ,EAAiC,aAAgB,WAAY,CACrG,IAAM,EAAe,EACrB,EAAc,EAAa,gBAAkB,CAG3C,EAAS,MAAQ,MAAM,QAAQ,CAAY,EAAI,CAAC,GAAG,CAAY,EAAI,CAAE,GAAG,CAAa,CACvF,CAAC,CACH,CAUA,OANI,IACF,EAAA,EAAA,eAAA,KAAqB,CACnB,EAAa,CACf,CAAC,EAGI,CACT"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 🟢 REACTIVE ENGINE ADAPTER FOR VUE 3 (v1.9.0)
3
+ *
4
+ * Нативно интегрирует синхронные и асингулярные графы ядра с реактивной системой Vue 3.
5
+ * Исключает десинхронизацию за счет shallowRef-трансляции и триггеров onScopeDispose.
6
+ */
7
+ export declare function useReactiveValue<T>(item: T): any;
8
+ //# sourceMappingURL=core.vue-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.vue-adapter.d.ts","sourceRoot":"","sources":["../../src/vue/core.vue-adapter.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CA0ChD"}
@@ -0,0 +1,22 @@
1
+ import { onScopeDispose as e, shallowRef as t } from "vue";
2
+ //#region src/vue/core.vue-adapter.ts
3
+ function n(n) {
4
+ if (typeof n != "object" || !n) return t(n);
5
+ let r = "subscribe" in n && typeof n.subscribe == "function", i = t(r ? n.value : n), a = null;
6
+ if (r) a = n.subscribe((e) => {
7
+ i.value = e;
8
+ });
9
+ else if ("__subscribe" in n && typeof n.__subscribe == "function") {
10
+ let e = n;
11
+ a = e.__subscribe(() => {
12
+ i.value = Array.isArray(e) ? [...e] : { ...e };
13
+ });
14
+ }
15
+ return a && e(() => {
16
+ a();
17
+ }), i;
18
+ }
19
+ //#endregion
20
+ export { n as useReactiveValue };
21
+
22
+ //# sourceMappingURL=core.vue-adapter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.vue-adapter.mjs","names":[],"sources":["../../src/vue/core.vue-adapter.ts"],"sourcesContent":["import { shallowRef, onScopeDispose } from 'vue'\nimport { ISignalLike } from '../core/types'\n\ntype CleanupFn = () => void\n\n/**\n * 🟢 REACTIVE ENGINE ADAPTER FOR VUE 3 (v1.9.0)\n *\n * Нативно интегрирует синхронные и асингулярные графы ядра с реактивной системой Vue 3.\n * Исключает десинхронизацию за счет shallowRef-трансляции и триггеров onScopeDispose.\n */\nexport function useReactiveValue<T>(item: T): any {\n // Быстрый выход для примитивов или невалидных объектов, переданных по ошибке\n if (item === null || item === undefined || typeof item !== 'object') {\n return shallowRef(item)\n }\n\n const isSignal = 'subscribe' in item && typeof (item as Record<string, unknown>).subscribe === 'function'\n\n // Инициализируем реактивный контейнер Vue 3 стартовым снимком из ядра\n const stateRef = shallowRef(isSignal ? (item as any).value : item)\n let unsubscribe: CleanupFn | null = null\n\n // =========================================================================\n // СЦЕНАРИЙ 1: Подписка на Сигналы и Вычисляемые свойства (Computed)\n // =========================================================================\n if (isSignal) {\n const signalItem = (item as unknown) as ISignalLike<unknown>\n unsubscribe = signalItem.subscribe((newValue: any) => {\n stateRef.value = newValue // Vue 3 автоматически триггерит обновление DOM\n })\n }\n // =========================================================================\n // СЦЕНАРИЙ 2: Подписка на глубокие Proxy-объекты и массивы (reactive)\n // =========================================================================\n else if ('__subscribe' in item && typeof (item as Record<string, unknown>).__subscribe === 'function') {\n const reactiveItem = item as any\n unsubscribe = reactiveItem.__subscribe(() => {\n // Для Proxy-коллекций принудительно создаем shallow-копию ссылки,\n // заставляя ленивый движок Vue 3 безупречно перерисовывать шаблоны .push/.splice мутаций!\n stateRef.value = Array.isArray(reactiveItem) ? [...reactiveItem] : { ...reactiveItem }\n })\n }\n\n // Автоматически освобождаем оперативную память и гасим эффекты ядра\n // при размонтировании Vue-компонента или закрытии EffectScope\n if (unsubscribe) {\n onScopeDispose(() => {\n unsubscribe!()\n })\n }\n\n return stateRef\n}\n"],"mappings":";;AAWA,SAAgB,EAAoB,GAAc;CAEhD,IAA2C,OAAO,KAAS,aAAvD,GACF,OAAO,EAAW,CAAI;CAGxB,IAAM,IAAW,eAAe,KAAQ,OAAQ,EAAiC,aAAc,YAGzF,IAAW,EAAW,IAAY,EAAa,QAAQ,CAAI,GAC7D,IAAgC;CAKpC,IAAI,GAEF,IAAc,EAAW,WAAW,MAAkB;EACpD,EAAS,QAAQ;CACnB,CAAC;MAKE,IAAI,iBAAiB,KAAQ,OAAQ,EAAiC,eAAgB,YAAY;EACrG,IAAM,IAAe;EACrB,IAAc,EAAa,kBAAkB;GAG3C,EAAS,QAAQ,MAAM,QAAQ,CAAY,IAAI,CAAC,GAAG,CAAY,IAAI,EAAE,GAAG,EAAa;EACvF,CAAC;CACH;CAUA,OANI,KACF,QAAqB;EACnB,EAAa;CACf,CAAC,GAGI;AACT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=core.vue-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.vue-adapter.test.d.ts","sourceRoot":"","sources":["../../src/vue/core.vue-adapter.test.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ReactiveEngine4Vue.cjs"),t=require("./composables/useReactiveValue.cjs");exports.ReactiveEngine=e.ReactiveEngine4VueAutomatic,exports.useReactiveValue=t.useReactiveValue;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../core.cjs"),t=require("./core.vue-adapter.cjs");let n=require("vue");var r=class extends e.ReactiveEngine{frameworkPrefix=`vue-auto`;reactive(e,t){let n=e=>{if(!(!e||typeof e!=`object`||Symbol.iterator in e)){Reflect.has(e,`__subscribe`)||Object.defineProperty(e,"__subscribe",{get:()=>e=>this.effect(()=>{try{JSON.stringify(r)}catch{Object.values(r)}e()},`vue-proxy-internal-subscription`),configurable:!0,enumerable:!1}),Reflect.has(e,`__v_skip`)||Object.defineProperty(e,"__v_skip",{get:()=>!0,configurable:!0,enumerable:!1});for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&typeof e[t]==`object`&&n(e[t])}};n(e);let r=super.reactive(e,t);return r}use(e){if(typeof e!=`object`||!e)return(0,n.shallowRef)(e);if(`subscribe`in e&&typeof e.subscribe==`function`){let t=e,r=(0,n.shallowRef)(t.value),i=t.subscribe(e=>{r.value=e,(0,n.triggerRef)(r)});return(0,n.getCurrentInstance)()?(0,n.onUnmounted)(()=>i()):(0,n.getCurrentScope)()&&(0,n.onScopeDispose)(()=>i()),r}let t=(0,n.shallowRef)(e);if(`__subscribe`in e&&typeof e.__subscribe==`function`){let r=e.__subscribe(()=>{(0,n.triggerRef)(t)});(0,n.getCurrentInstance)()?(0,n.onUnmounted)(()=>r()):(0,n.getCurrentScope)()&&(0,n.onScopeDispose)(()=>r())}return t}};exports.ReactiveEngine=r,exports.useReactiveValue=t.useReactiveValue;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/vue/index.ts"],"sourcesContent":["import { CleanupFn, ISignalLike } from '../core/types'\nimport { ReactiveEngineAutomatic } from '../core/core'\nimport { getCurrentInstance, getCurrentScope, onScopeDispose, onUnmounted, shallowRef, ShallowRef, triggerRef } from 'vue'\n\nexport { useReactiveValue } from './core.vue-adapter'\n\nclass ExtendedReactiveEngine extends ReactiveEngineAutomatic {\n protected override frameworkPrefix = 'vue-auto'\n\n /**\n * Переопределяем метод создания реактивных объектов для Vue-версии движка.\n * Рекурсивно внедряет свойства __subscribe и __v_skip в target, защищая глубокие структуры от Vue 3.\n */\n public override reactive<T extends object>(target: T, name?: string): T {\n // Вспомогательная функция для глубокого рекурсивного внедрения маркеров фреймворка\n const injectVueMarkers = (obj: any) => {\n if (!obj || typeof obj !== 'object' || Symbol.iterator in obj) return\n\n // 1. Внедряем мост подписки __subscribe\n if (!Reflect.has(obj, '__subscribe')) {\n Object.defineProperty(obj, '__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 }, 'vue-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n // 2. Внедряем маркер __v_skip непосредственно в target\n // Благодаря Reflect.get в ядре, этот маркер будет возвращаться для ВСЕХ уровней вложенности графа!\n if (!Reflect.has(obj, '__v_skip')) {\n Object.defineProperty(obj, '__v_skip', {\n get: () => true,\n configurable: true,\n enumerable: false\n })\n }\n\n // Рекурсивно обходим все дочерние свойства, чтобы застраховать вложенные массивы и объекты\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && typeof obj[key] === 'object') {\n injectVueMarkers(obj[key])\n }\n }\n }\n\n // Запускаем глубокую инжекцию маркеров во все узлы дерева target\n injectVueMarkers(target)\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n public use<T>(item: T): T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T> {\n if (item === null || item === undefined || typeof item !== 'object') {\n const state = shallowRef(item)\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\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 state = shallowRef(signalItem.value)\n\n const unsubscribe = signalItem.subscribe((newValue) => {\n state.value = newValue\n triggerRef(state)\n })\n\n if (getCurrentInstance()) {\n onUnmounted(() => unsubscribe())\n } else if (getCurrentScope()) {\n onScopeDispose(() => unsubscribe())\n }\n\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\n }\n\n const state = shallowRef(item)\n\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 triggerRef(state) // triggerRef теперь будет вызван строго 1 раз на выходе в Event Loop\n })\n\n if (getCurrentInstance()) {\n onUnmounted(() => unsubscribe())\n } else if (getCurrentScope()) {\n onScopeDispose(() => unsubscribe())\n }\n }\n\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\n }\n}\n\nexport { ExtendedReactiveEngine as ReactiveEngine }\n"],"mappings":"2JAMA,IAAM,EAAN,cAAqC,EAAA,cAAwB,CAC3D,gBAAqC,WAMrC,SAA2C,EAAW,EAAkB,CAEtE,IAAM,EAAoB,GAAa,CACjC,MAAC,GAAO,OAAO,GAAQ,UAAY,OAAO,YAAY,GAwB1D,CArBK,QAAQ,IAAI,EAAK,aAAa,GACjC,OAAO,eAAe,EAAK,cAAe,CACxC,QACU,GACC,KAAK,WAAa,CACvB,GAAI,CACF,KAAK,UAAU,CAAa,CAC9B,MAAY,CACV,OAAO,OAAO,CAAwC,CACxD,CACA,EAAG,CACL,EAAG,iCAAiC,EAGxC,aAAc,GACd,WAAY,EACd,CAAC,EAKE,QAAQ,IAAI,EAAK,UAAU,GAC9B,OAAO,eAAe,EAAK,WAAY,CACrC,QAAW,GACX,aAAc,GACd,WAAY,EACd,CAAC,EAIH,IAAK,IAAM,KAAO,EACZ,OAAO,UAAU,eAAe,KAAK,EAAK,CAAG,GAAK,OAAO,EAAI,IAAS,UACxE,EAAiB,EAAI,EAAI,CAN1B,CASL,EAGA,EAAiB,CAAM,EAEvB,IAAM,EAAgB,MAAM,SAAS,EAAQ,CAAI,EACjD,OAAO,CACT,CAEA,IAAc,EAAyE,CACrF,GAA2C,OAAO,GAAS,WAAvD,EAEF,OAAA,EAAA,EAAA,WAAA,CADyB,CAClB,EAKT,GAFiB,cAAe,GAAQ,OAAQ,EAAiC,WAAc,WAEjF,CACZ,IAAM,EAAc,EACd,GAAA,EAAA,EAAA,WAAA,CAAmB,EAAW,KAAK,EAEnC,EAAc,EAAW,UAAW,GAAa,CACrD,EAAM,MAAQ,GACd,EAAA,EAAA,WAAA,CAAW,CAAK,CAClB,CAAC,EAQD,OANA,EAAA,EAAA,mBAAA,CAAuB,GACrB,EAAA,EAAA,YAAA,KAAkB,EAAY,CAAC,GAC1B,EAAA,EAAA,gBAAA,CAAoB,IACzB,EAAA,EAAA,eAAA,KAAqB,EAAY,CAAC,EAG7B,CACT,CAEA,IAAM,GAAA,EAAA,EAAA,WAAA,CAAmB,CAAI,EAE7B,GAAI,gBAAiB,GAAQ,OAAQ,EAAiC,aAAgB,WAAY,CAChG,IAAM,EAAgB,EAAiC,gBAAoD,EACzG,EAAA,EAAA,WAAA,CAAW,CAAK,CAClB,CAAC,GAED,EAAA,EAAA,mBAAA,CAAuB,GACrB,EAAA,EAAA,YAAA,KAAkB,EAAY,CAAC,GAC1B,EAAA,EAAA,gBAAA,CAAoB,IACzB,EAAA,EAAA,eAAA,KAAqB,EAAY,CAAC,CAEtC,CAEA,OAAO,CACT,CACF"}
@@ -1,3 +1,15 @@
1
- export { ReactiveEngine4VueAutomatic as ReactiveEngine } from './ReactiveEngine4Vue';
2
- export { useReactiveValue } from './composables/useReactiveValue';
1
+ import { ISignalLike } from '../core/types';
2
+ import { ReactiveEngineAutomatic } from '../core/core';
3
+ import { ShallowRef } from 'vue';
4
+ export { useReactiveValue } from './core.vue-adapter';
5
+ declare class ExtendedReactiveEngine extends ReactiveEngineAutomatic {
6
+ protected frameworkPrefix: string;
7
+ /**
8
+ * Переопределяем метод создания реактивных объектов для Vue-версии движка.
9
+ * Рекурсивно внедряет свойства __subscribe и __v_skip в target, защищая глубокие структуры от Vue 3.
10
+ */
11
+ reactive<T extends object>(target: T, name?: string): T;
12
+ use<T>(item: T): T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>;
13
+ }
14
+ export { ExtendedReactiveEngine as ReactiveEngine };
3
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAgF,UAAU,EAAc,MAAM,KAAK,CAAA;AAE1H,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,cAAM,sBAAuB,SAAQ,uBAAuB;IAC1D,UAAmB,eAAe,SAAa;IAE/C;;;OAGG;IACa,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC;IAkDhE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CA0CvF;AAED,OAAO,EAAE,sBAAsB,IAAI,cAAc,EAAE,CAAA"}
@@ -1,3 +1,54 @@
1
- import { ReactiveEngine4VueAutomatic as e } from "./ReactiveEngine4Vue.mjs";
2
- import { useReactiveValue as t } from "./composables/useReactiveValue.mjs";
3
- export { e as ReactiveEngine, t as useReactiveValue };
1
+ import { ReactiveEngine as e } from "../core.mjs";
2
+ import { useReactiveValue as t } from "./core.vue-adapter.mjs";
3
+ import { getCurrentInstance as n, getCurrentScope as r, onScopeDispose as i, onUnmounted as a, shallowRef as o, triggerRef as s } from "vue";
4
+ //#region src/vue/index.ts
5
+ var c = class extends e {
6
+ frameworkPrefix = "vue-auto";
7
+ reactive(e, t) {
8
+ let n = (e) => {
9
+ if (!(!e || typeof e != "object" || Symbol.iterator in e)) {
10
+ Reflect.has(e, "__subscribe") || Object.defineProperty(e, "__subscribe", {
11
+ get: () => (e) => this.effect(() => {
12
+ try {
13
+ JSON.stringify(r);
14
+ } catch {
15
+ Object.values(r);
16
+ }
17
+ e();
18
+ }, "vue-proxy-internal-subscription"),
19
+ configurable: !0,
20
+ enumerable: !1
21
+ }), Reflect.has(e, "__v_skip") || Object.defineProperty(e, "__v_skip", {
22
+ get: () => !0,
23
+ configurable: !0,
24
+ enumerable: !1
25
+ });
26
+ for (let t in e) Object.prototype.hasOwnProperty.call(e, t) && typeof e[t] == "object" && n(e[t]);
27
+ }
28
+ };
29
+ n(e);
30
+ let r = super.reactive(e, t);
31
+ return r;
32
+ }
33
+ use(e) {
34
+ if (typeof e != "object" || !e) return o(e);
35
+ if ("subscribe" in e && typeof e.subscribe == "function") {
36
+ let t = e, c = o(t.value), l = t.subscribe((e) => {
37
+ c.value = e, s(c);
38
+ });
39
+ return n() ? a(() => l()) : r() && i(() => l()), c;
40
+ }
41
+ let t = o(e);
42
+ if ("__subscribe" in e && typeof e.__subscribe == "function") {
43
+ let o = e.__subscribe(() => {
44
+ s(t);
45
+ });
46
+ n() ? a(() => o()) : r() && i(() => o());
47
+ }
48
+ return t;
49
+ }
50
+ };
51
+ //#endregion
52
+ export { c as ReactiveEngine, t as useReactiveValue };
53
+
54
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/vue/index.ts"],"sourcesContent":["import { CleanupFn, ISignalLike } from '../core/types'\nimport { ReactiveEngineAutomatic } from '../core/core'\nimport { getCurrentInstance, getCurrentScope, onScopeDispose, onUnmounted, shallowRef, ShallowRef, triggerRef } from 'vue'\n\nexport { useReactiveValue } from './core.vue-adapter'\n\nclass ExtendedReactiveEngine extends ReactiveEngineAutomatic {\n protected override frameworkPrefix = 'vue-auto'\n\n /**\n * Переопределяем метод создания реактивных объектов для Vue-версии движка.\n * Рекурсивно внедряет свойства __subscribe и __v_skip в target, защищая глубокие структуры от Vue 3.\n */\n public override reactive<T extends object>(target: T, name?: string): T {\n // Вспомогательная функция для глубокого рекурсивного внедрения маркеров фреймворка\n const injectVueMarkers = (obj: any) => {\n if (!obj || typeof obj !== 'object' || Symbol.iterator in obj) return\n\n // 1. Внедряем мост подписки __subscribe\n if (!Reflect.has(obj, '__subscribe')) {\n Object.defineProperty(obj, '__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 }, 'vue-proxy-internal-subscription')\n }\n },\n configurable: true,\n enumerable: false\n })\n }\n\n // 2. Внедряем маркер __v_skip непосредственно в target\n // Благодаря Reflect.get в ядре, этот маркер будет возвращаться для ВСЕХ уровней вложенности графа!\n if (!Reflect.has(obj, '__v_skip')) {\n Object.defineProperty(obj, '__v_skip', {\n get: () => true,\n configurable: true,\n enumerable: false\n })\n }\n\n // Рекурсивно обходим все дочерние свойства, чтобы застраховать вложенные массивы и объекты\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && typeof obj[key] === 'object') {\n injectVueMarkers(obj[key])\n }\n }\n }\n\n // Запускаем глубокую инжекцию маркеров во все узлы дерева target\n injectVueMarkers(target)\n\n const originalProxy = super.reactive(target, name)\n return originalProxy\n }\n\n public use<T>(item: T): T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T> {\n if (item === null || item === undefined || typeof item !== 'object') {\n const state = shallowRef(item)\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\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 state = shallowRef(signalItem.value)\n\n const unsubscribe = signalItem.subscribe((newValue) => {\n state.value = newValue\n triggerRef(state)\n })\n\n if (getCurrentInstance()) {\n onUnmounted(() => unsubscribe())\n } else if (getCurrentScope()) {\n onScopeDispose(() => unsubscribe())\n }\n\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\n }\n\n const state = shallowRef(item)\n\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 triggerRef(state) // triggerRef теперь будет вызван строго 1 раз на выходе в Event Loop\n })\n\n if (getCurrentInstance()) {\n onUnmounted(() => unsubscribe())\n } else if (getCurrentScope()) {\n onScopeDispose(() => unsubscribe())\n }\n }\n\n return state as (T extends ISignalLike<infer V> ? ShallowRef<V> : ShallowRef<T>)\n }\n}\n\nexport { ExtendedReactiveEngine as ReactiveEngine }\n"],"mappings":";;;;AAMA,IAAM,IAAN,cAAqC,EAAwB;CAC3D,kBAAqC;CAMrC,SAA2C,GAAW,GAAkB;EAEtE,IAAM,KAAoB,MAAa;GACjC,OAAC,KAAO,OAAO,KAAQ,YAAY,OAAO,YAAY,IAwB1D;IArBK,QAAQ,IAAI,GAAK,aAAa,KACjC,OAAO,eAAe,GAAK,eAAe;KACxC,YACU,MACC,KAAK,aAAa;MACvB,IAAI;OACF,KAAK,UAAU,CAAa;MAC9B,QAAY;OACV,OAAO,OAAO,CAAwC;MACxD;MACA,EAAG;KACL,GAAG,iCAAiC;KAGxC,cAAc;KACd,YAAY;IACd,CAAC,GAKE,QAAQ,IAAI,GAAK,UAAU,KAC9B,OAAO,eAAe,GAAK,YAAY;KACrC,WAAW;KACX,cAAc;KACd,YAAY;IACd,CAAC;IAIH,KAAK,IAAM,KAAO,GAChB,AAAI,OAAO,UAAU,eAAe,KAAK,GAAK,CAAG,KAAK,OAAO,EAAI,MAAS,YACxE,EAAiB,EAAI,EAAI;GAN1B;EASL;EAGA,EAAiB,CAAM;EAEvB,IAAM,IAAgB,MAAM,SAAS,GAAQ,CAAI;EACjD,OAAO;CACT;CAEA,IAAc,GAAyE;EACrF,IAA2C,OAAO,KAAS,aAAvD,GAEF,OADc,EAAW,CAClB;EAKT,IAFiB,eAAe,KAAQ,OAAQ,EAAiC,aAAc,YAEjF;GACZ,IAAM,IAAc,GACd,IAAQ,EAAW,EAAW,KAAK,GAEnC,IAAc,EAAW,WAAW,MAAa;IAErD,AADA,EAAM,QAAQ,GACd,EAAW,CAAK;GAClB,CAAC;GAQD,OANI,EAAmB,IACrB,QAAkB,EAAY,CAAC,IACtB,EAAgB,KACzB,QAAqB,EAAY,CAAC,GAG7B;EACT;EAEA,IAAM,IAAQ,EAAW,CAAI;EAE7B,IAAI,iBAAiB,KAAQ,OAAQ,EAAiC,eAAgB,YAAY;GAChG,IAAM,IAAgB,EAAiC,kBAAoD;IACzG,EAAW,CAAK;GAClB,CAAC;GAED,AAAI,EAAmB,IACrB,QAAkB,EAAY,CAAC,IACtB,EAAgB,KACzB,QAAqB,EAAY,CAAC;EAEtC;EAEA,OAAO;CACT;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pravosleva/reactive-engine",
3
- "version": "1.8.2-beta",
3
+ "version": "2.0.0-beta",
4
4
  "engines": {
5
5
  "node": ">=22.20.0"
6
6
  },
@@ -57,7 +57,7 @@
57
57
  "build:modules": "vite build",
58
58
  "build:umd": "vite build --config vite.config.umd.ts",
59
59
  "build": "yarn build:modules && yarn build:umd",
60
- "test": "NODE_OPTIONS='--expose-gc' vitest run",
60
+ "test": "NODE_OPTIONS='--expose-gc' vitest run --exclude '**/report/reactive-framework-test-suite/**'",
61
61
  "test:ui": "NODE_OPTIONS='--expose-gc' vitest --ui",
62
62
  "test:watch": "vitest",
63
63
  "preversion": "npm run test",
@@ -66,7 +66,8 @@
66
66
  "docs:dev": "vitepress dev docs",
67
67
  "docs:build": "vitepress build docs",
68
68
  "docs:preview": "vitepress preview docs",
69
- "_docs:pwa-gen": "npx pwa-asset-generator docs/public/rocket-thruster-120x120.svg docs/public/pwa/ --manifest docs/public/manifest.json --base /reactive-engine/pwa/ --background \"#1a1a24\" --padding \"15%\""
69
+ "_docs:pwa-gen": "npx pwa-asset-generator docs/public/rocket-thruster-120x120.svg docs/public/pwa/ --manifest docs/public/manifest.json --base /reactive-engine/pwa/ --background \"#1a1a24\" --padding \"15%\"",
70
+ "report:matrix": "node report/update-readme.js"
70
71
  },
71
72
  "peerDependencies": {
72
73
  "@angular/core": ">=16.0.0",
@@ -1,2 +0,0 @@
1
- const e=require("../core.cjs");let t=require("@angular/core");var n=class extends e.ReactiveEngineAutomatic{frameworkPrefix=`angular-auto`;reactive(e,t){Reflect.has(e,`__subscribe`)||Object.defineProperty(e,"__subscribe",{get:()=>e=>this.effect(()=>{try{JSON.stringify(n)}catch{Object.values(n)}e()},`angular-auto-proxy-internal-subscription`),configurable:!0,enumerable:!1});let n=super.reactive(e,t);return n}use(e,n){if(typeof e!=`object`||!e)return(0,t.signal)(e).asReadonly();let r=`subscribe`in e&&typeof e.subscribe==`function`,i=()=>{},a;if(r){let n=e;a=(0,t.signal)(n.value),i=n.subscribe(()=>{let e=n.value;a.set(e)})}else a=(0,t.signal)(e),`__subscribe`in e&&typeof e.__subscribe==`function`&&(i=e.__subscribe(()=>{a.set({...e})}));let o=()=>{(0,t.inject)(t.DestroyRef).onDestroy(()=>{i()})};return n?.injector?(0,t.runInInjectionContext)(n.injector,o):o(),a.asReadonly()}};exports.ReactiveEngine4AngularAutomatic=n;
2
- //# sourceMappingURL=ReactiveEngine4Angular.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactiveEngine4Angular.cjs","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":"8DA4GA,IAAa,EAAb,cAAqD,EAAA,uBAAwB,CAC3E,gBAAqC,eAErC,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,0CAA0C,EAGjD,aAAc,GACd,WAAY,EACd,CAAC,EAGH,IAAM,EAAgB,MAAM,SAAS,EAAQ,CAAI,EACjD,OAAO,CACT,CAEA,IACE,EACA,EACwD,CACxD,GAA2C,OAAO,GAAS,WAAvD,EAEF,OAAA,EAAA,EAAA,OAAA,CAD6B,CACtB,CAAA,CAAc,WAAW,EAGlC,IAAM,EAAW,cAAe,GAAQ,OAAQ,EAAiC,WAAc,WAE3F,MAA+B,CAAC,EAChC,EAEJ,GAAI,EAAU,CACZ,IAAM,EAAc,EACpB,GAAA,EAAA,EAAA,OAAA,CAAuB,EAAW,KAAK,EAEvC,EAAc,EAAW,cAAgB,CACvC,IAAM,EAAa,EAAW,MAC9B,EAAc,IAAI,CAAU,CAC9B,CAAC,CACH,KAEE,IAAA,EAAA,EAAA,OAAA,CAAuB,CAAI,EAEvB,gBAAiB,GAAQ,OAAQ,EAAiC,aAAgB,aACpF,EAAgB,EAAiC,gBAAoD,CACnG,EAAc,IAAI,CAAE,GAAG,CAAK,CAAC,CAC/B,CAAC,GAIL,IAAM,MAAwB,EAE5B,EAAA,EAAA,OAAA,CAD0B,EAAA,UAC1B,CAAA,CAAW,cAAgB,CACzB,EAAY,CACd,CAAC,CACH,EAQA,OANI,GAAS,UACX,EAAA,EAAA,sBAAA,CAAsB,EAAQ,SAAU,CAAe,EAEvD,EAAgB,EAGX,EAAc,WAAW,CAClC,CACF"}