mutts 1.0.8 → 1.0.9

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 (226) hide show
  1. package/README.md +19 -2
  2. package/dist/browser.cjs +1030 -4406
  3. package/dist/browser.cjs.map +1 -1
  4. package/dist/browser.d.ts +310 -573
  5. package/dist/browser.esm.js +18 -24
  6. package/dist/browser.esm.js.map +1 -1
  7. package/dist/chunks/{async-browser-CA0jPWIi.cjs → async-browser-lvzLOCgk.cjs} +17 -24
  8. package/dist/chunks/async-browser-lvzLOCgk.cjs.map +1 -0
  9. package/dist/chunks/{async-core-UqHzvJ-S.cjs → async-core-CRLKP3l-.cjs} +8 -4
  10. package/dist/chunks/async-core-CRLKP3l-.cjs.map +1 -0
  11. package/dist/chunks/{async-node-BYHuGTni.cjs → async-node-C3DeIb0y.cjs} +5 -12
  12. package/dist/chunks/async-node-C3DeIb0y.cjs.map +1 -0
  13. package/dist/chunks/index-2vea86wD.esm.js +3011 -0
  14. package/dist/chunks/index-2vea86wD.esm.js.map +1 -0
  15. package/dist/chunks/index-CtA2AWl3.esm.js +4376 -0
  16. package/dist/chunks/index-CtA2AWl3.esm.js.map +1 -0
  17. package/dist/chunks/index-VTO-b2vR.cjs +4461 -0
  18. package/dist/chunks/index-VTO-b2vR.cjs.map +1 -0
  19. package/dist/{reactive → debug}/debug.d.ts +19 -8
  20. package/dist/debug/debug.d.ts.map +1 -0
  21. package/dist/debug/index.d.ts +4 -0
  22. package/dist/debug/index.d.ts.map +1 -0
  23. package/dist/debug/lineage-panel.d.ts +5 -0
  24. package/dist/debug/lineage-panel.d.ts.map +1 -0
  25. package/dist/debug/lineage.d.ts +79 -0
  26. package/dist/debug/lineage.d.ts.map +1 -0
  27. package/dist/debug.cjs +35 -0
  28. package/dist/debug.cjs.map +1 -0
  29. package/dist/debug.d.ts +209 -0
  30. package/dist/debug.esm.js +2 -0
  31. package/dist/debug.esm.js.map +1 -0
  32. package/dist/index.d.ts +1 -13
  33. package/dist/mutts.umd.js +1 -1
  34. package/dist/mutts.umd.js.map +1 -1
  35. package/dist/mutts.umd.min.js +1 -1
  36. package/dist/mutts.umd.min.js.map +1 -1
  37. package/dist/node.cjs +65 -63
  38. package/dist/node.cjs.map +1 -1
  39. package/dist/node.d.ts +2 -1
  40. package/dist/node.esm.js +5 -11
  41. package/dist/node.esm.js.map +1 -1
  42. package/dist/{async → src/async}/browser.d.ts.map +1 -1
  43. package/dist/{async → src/async}/index.d.ts +2 -1
  44. package/dist/src/async/index.d.ts.map +1 -0
  45. package/dist/{async → src/async}/node.d.ts.map +1 -1
  46. package/dist/src/decorator.d.ts.map +1 -0
  47. package/dist/src/destroyable.d.ts.map +1 -0
  48. package/dist/src/entry-browser.d.ts.map +1 -0
  49. package/dist/src/entry-node.d.ts.map +1 -0
  50. package/dist/src/eventful.d.ts +20 -0
  51. package/dist/src/eventful.d.ts.map +1 -0
  52. package/dist/src/flavored.d.ts +33 -0
  53. package/dist/src/flavored.d.ts.map +1 -0
  54. package/dist/src/index.d.ts +14 -0
  55. package/dist/src/index.d.ts.map +1 -0
  56. package/dist/src/indexable.d.ts.map +1 -0
  57. package/dist/{introspection.d.ts → src/introspection.d.ts} +1 -1
  58. package/dist/src/introspection.d.ts.map +1 -0
  59. package/dist/src/iterableWeak.d.ts.map +1 -0
  60. package/dist/src/mixins.d.ts.map +1 -0
  61. package/dist/src/promiseChain.d.ts.map +1 -0
  62. package/dist/{reactive → src/reactive}/array.d.ts +9 -10
  63. package/dist/src/reactive/array.d.ts.map +1 -0
  64. package/dist/src/reactive/buffer.d.ts +120 -0
  65. package/dist/src/reactive/buffer.d.ts.map +1 -0
  66. package/dist/{reactive → src/reactive}/change.d.ts +2 -2
  67. package/dist/src/reactive/change.d.ts.map +1 -0
  68. package/dist/src/reactive/deep-touch.d.ts.map +1 -0
  69. package/dist/{reactive → src/reactive}/deep-watch-state.d.ts +3 -3
  70. package/dist/src/reactive/deep-watch-state.d.ts.map +1 -0
  71. package/dist/{reactive → src/reactive}/deep-watch.d.ts +2 -1
  72. package/dist/src/reactive/deep-watch.d.ts.map +1 -0
  73. package/dist/src/reactive/describe.d.ts +12 -0
  74. package/dist/src/reactive/describe.d.ts.map +1 -0
  75. package/dist/src/reactive/effect-context.d.ts +34 -0
  76. package/dist/src/reactive/effect-context.d.ts.map +1 -0
  77. package/dist/{reactive → src/reactive}/effects.d.ts +31 -18
  78. package/dist/src/reactive/effects.d.ts.map +1 -0
  79. package/dist/src/reactive/index.d.ts +19 -0
  80. package/dist/src/reactive/index.d.ts.map +1 -0
  81. package/dist/{reactive → src/reactive}/map.d.ts +0 -2
  82. package/dist/src/reactive/map.d.ts.map +1 -0
  83. package/dist/src/reactive/memoize.d.ts +28 -0
  84. package/dist/src/reactive/memoize.d.ts.map +1 -0
  85. package/dist/src/reactive/non-reactive-state.d.ts.map +1 -0
  86. package/dist/src/reactive/non-reactive.d.ts.map +1 -0
  87. package/dist/{reactive → src/reactive}/project.d.ts +1 -2
  88. package/dist/src/reactive/project.d.ts.map +1 -0
  89. package/dist/src/reactive/proxy-state.d.ts.map +1 -0
  90. package/dist/src/reactive/proxy.d.ts.map +1 -0
  91. package/dist/{reactive → src/reactive}/record.d.ts +2 -3
  92. package/dist/src/reactive/record.d.ts.map +1 -0
  93. package/dist/{reactive → src/reactive}/register.d.ts +61 -0
  94. package/dist/src/reactive/register.d.ts.map +1 -0
  95. package/dist/{reactive → src/reactive}/registry.d.ts +6 -5
  96. package/dist/src/reactive/registry.d.ts.map +1 -0
  97. package/dist/{reactive → src/reactive}/set.d.ts +0 -2
  98. package/dist/src/reactive/set.d.ts.map +1 -0
  99. package/dist/src/reactive/tracking.d.ts.map +1 -0
  100. package/dist/{reactive → src/reactive}/types.d.ts +69 -21
  101. package/dist/src/reactive/types.d.ts.map +1 -0
  102. package/dist/{reactive/interface.d.ts → src/reactive/watch.d.ts} +7 -23
  103. package/dist/src/reactive/watch.d.ts.map +1 -0
  104. package/dist/{std-decorators.d.ts → src/std-decorators.d.ts} +1 -6
  105. package/dist/src/std-decorators.d.ts.map +1 -0
  106. package/dist/src/utils.d.ts.map +1 -0
  107. package/dist/{zone.d.ts → src/zone.d.ts} +2 -2
  108. package/dist/src/zone.d.ts.map +1 -0
  109. package/dist/types-DaHFfhlN.d.ts +414 -0
  110. package/docs/ai/api-reference.md +1 -1
  111. package/docs/ai/manual.md +443 -17
  112. package/docs/events.md +57 -2
  113. package/docs/flavored.md +210 -0
  114. package/docs/reactive/advanced.md +2 -3
  115. package/docs/reactive/attend.md +143 -0
  116. package/docs/reactive/collections.md +55 -0
  117. package/docs/reactive/core.md +120 -4
  118. package/docs/reactive/debugging.md +8 -10
  119. package/docs/reactive/describe.md +85 -0
  120. package/docs/reactive/error-handling.md +121 -0
  121. package/docs/reactive/project.md +1 -1
  122. package/docs/reactive/scan.md +215 -0
  123. package/docs/reactive.md +2 -0
  124. package/docs/std-decorators.md +102 -51
  125. package/docs/zone.md +3 -7
  126. package/package.json +6 -1
  127. package/src/async/browser.ts +110 -106
  128. package/src/async/index.ts +15 -11
  129. package/src/async/node.ts +5 -17
  130. package/src/eventful.ts +82 -49
  131. package/src/flavored.ts +106 -0
  132. package/src/index.d.ts +12 -12
  133. package/src/index.ts +2 -2
  134. package/src/introspection.ts +1 -1
  135. package/src/reactive/array.ts +29 -36
  136. package/src/reactive/buffer.ts +187 -27
  137. package/src/reactive/change.ts +16 -23
  138. package/src/reactive/deep-touch.ts +19 -14
  139. package/src/reactive/deep-watch-state.ts +3 -3
  140. package/src/reactive/deep-watch.ts +7 -4
  141. package/src/reactive/describe.ts +39 -0
  142. package/src/reactive/effect-context.ts +69 -4
  143. package/src/reactive/effects.ts +445 -393
  144. package/src/reactive/index.ts +12 -15
  145. package/src/reactive/map.ts +9 -25
  146. package/src/reactive/memoize.ts +26 -3
  147. package/src/reactive/project.md +107 -0
  148. package/src/reactive/project.ts +48 -71
  149. package/src/reactive/proxy.ts +21 -3
  150. package/src/reactive/record.ts +30 -45
  151. package/src/reactive/register.ts +138 -19
  152. package/src/reactive/registry.ts +22 -9
  153. package/src/reactive/set.ts +8 -21
  154. package/src/reactive/tracking.ts +9 -12
  155. package/src/reactive/types.ts +104 -24
  156. package/src/reactive/{interface.ts → watch.ts} +29 -59
  157. package/src/std-decorators.ts +56 -17
  158. package/src/utils.ts +2 -3
  159. package/src/zone.ts +28 -24
  160. package/dist/async/index.d.ts.map +0 -1
  161. package/dist/chunks/async-browser-CA0jPWIi.cjs.map +0 -1
  162. package/dist/chunks/async-core-UqHzvJ-S.cjs.map +0 -1
  163. package/dist/chunks/async-node-BYHuGTni.cjs.map +0 -1
  164. package/dist/chunks/index-DhaOVusv.esm.js +0 -6411
  165. package/dist/chunks/index-DhaOVusv.esm.js.map +0 -1
  166. package/dist/decorator.d.ts.map +0 -1
  167. package/dist/destroyable.d.ts.map +0 -1
  168. package/dist/entry-browser.d.ts.map +0 -1
  169. package/dist/entry-node.d.ts.map +0 -1
  170. package/dist/eventful.d.ts +0 -18
  171. package/dist/eventful.d.ts.map +0 -1
  172. package/dist/index.d.ts.map +0 -1
  173. package/dist/indexable.d.ts.map +0 -1
  174. package/dist/introspection.d.ts.map +0 -1
  175. package/dist/iterableWeak.d.ts.map +0 -1
  176. package/dist/mixins.d.ts.map +0 -1
  177. package/dist/promiseChain.d.ts.map +0 -1
  178. package/dist/reactive/array.d.ts.map +0 -1
  179. package/dist/reactive/buffer.d.ts +0 -44
  180. package/dist/reactive/buffer.d.ts.map +0 -1
  181. package/dist/reactive/change.d.ts.map +0 -1
  182. package/dist/reactive/debug.d.ts.map +0 -1
  183. package/dist/reactive/deep-touch.d.ts.map +0 -1
  184. package/dist/reactive/deep-watch-state.d.ts.map +0 -1
  185. package/dist/reactive/deep-watch.d.ts.map +0 -1
  186. package/dist/reactive/effect-context.d.ts +0 -7
  187. package/dist/reactive/effect-context.d.ts.map +0 -1
  188. package/dist/reactive/effects.d.ts.map +0 -1
  189. package/dist/reactive/index.d.ts +0 -20
  190. package/dist/reactive/index.d.ts.map +0 -1
  191. package/dist/reactive/interface.d.ts.map +0 -1
  192. package/dist/reactive/map.d.ts.map +0 -1
  193. package/dist/reactive/memoize.d.ts +0 -5
  194. package/dist/reactive/memoize.d.ts.map +0 -1
  195. package/dist/reactive/non-reactive-state.d.ts.map +0 -1
  196. package/dist/reactive/non-reactive.d.ts.map +0 -1
  197. package/dist/reactive/project.d.ts.map +0 -1
  198. package/dist/reactive/proxy-state.d.ts.map +0 -1
  199. package/dist/reactive/proxy.d.ts.map +0 -1
  200. package/dist/reactive/record.d.ts.map +0 -1
  201. package/dist/reactive/register.d.ts.map +0 -1
  202. package/dist/reactive/registry.d.ts.map +0 -1
  203. package/dist/reactive/set.d.ts.map +0 -1
  204. package/dist/reactive/tracking.d.ts.map +0 -1
  205. package/dist/reactive/types.d.ts.map +0 -1
  206. package/dist/std-decorators.d.ts.map +0 -1
  207. package/dist/utils.d.ts.map +0 -1
  208. package/dist/zone.d.ts.map +0 -1
  209. package/src/reactive/debug.ts +0 -517
  210. /package/dist/{async → src/async}/browser.d.ts +0 -0
  211. /package/dist/{async → src/async}/node.d.ts +0 -0
  212. /package/dist/{decorator.d.ts → src/decorator.d.ts} +0 -0
  213. /package/dist/{destroyable.d.ts → src/destroyable.d.ts} +0 -0
  214. /package/dist/{entry-browser.d.ts → src/entry-browser.d.ts} +0 -0
  215. /package/dist/{entry-node.d.ts → src/entry-node.d.ts} +0 -0
  216. /package/dist/{indexable.d.ts → src/indexable.d.ts} +0 -0
  217. /package/dist/{iterableWeak.d.ts → src/iterableWeak.d.ts} +0 -0
  218. /package/dist/{mixins.d.ts → src/mixins.d.ts} +0 -0
  219. /package/dist/{promiseChain.d.ts → src/promiseChain.d.ts} +0 -0
  220. /package/dist/{reactive → src/reactive}/deep-touch.d.ts +0 -0
  221. /package/dist/{reactive → src/reactive}/non-reactive-state.d.ts +0 -0
  222. /package/dist/{reactive → src/reactive}/non-reactive.d.ts +0 -0
  223. /package/dist/{reactive → src/reactive}/proxy-state.d.ts +0 -0
  224. /package/dist/{reactive → src/reactive}/proxy.d.ts +0 -0
  225. /package/dist/{reactive → src/reactive}/tracking.d.ts +0 -0
  226. /package/dist/{utils.d.ts → src/utils.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { type Evolution, type ScopedCallback, type State } from './types';
1
+ import { type EffectTrigger, type Evolution, type State } from './types';
2
2
  export declare function addState(obj: any, evolution: Evolution): void;
3
3
  /**
4
4
  * Gets the current state of a reactive object for evolution tracking
@@ -6,7 +6,7 @@ export declare function addState(obj: any, evolution: Evolution): void;
6
6
  * @returns The current state object
7
7
  */
8
8
  export declare function getState(obj: any): State;
9
- export declare function collectEffects(obj: any, evolution: Evolution, effects: Set<ScopedCallback>, objectWatchers: Map<any, Set<ScopedCallback>>, ...keyChains: Iterable<any>[]): void;
9
+ export declare function collectEffects(obj: any, evolution: Evolution, effects: Set<EffectTrigger>, objectWatchers: Map<any, Set<EffectTrigger>>, ...keyChains: Iterable<any>[]): void;
10
10
  /**
11
11
  * Triggers effects for a single property change
12
12
  * @param obj - The object that changed
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../src/reactive/change.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAc,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAI9F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,QAMtD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,SAQhC;AAED,wBAAgB,cAAc,CAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,EAC3B,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,EAC5C,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAsB7B;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAEjE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,QAiB5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QA6BtE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-touch.d.ts","sourceRoot":"","sources":["../../../src/reactive/deep-touch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoD,KAAK,SAAS,EAAuB,MAAM,SAAS,CAAA;AAoB/G,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,WAAW,EAAE,OAAO,QAoBpB;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,KAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CAC3C,CAAA;AA0BD,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,YAA4B,EACrC,aAAa,GAAE,mBAAmB,EAAO,EACzC,MAAM,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzC,mBAAmB,EAAE,CAYvB;AA+FD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,mBAAmB,EAAE,QA2DzE"}
@@ -1,11 +1,11 @@
1
- import type { Evolution, ScopedCallback } from './types';
1
+ import type { EffectTrigger, Evolution } from './types';
2
2
  export declare const objectParents: WeakMap<object, Set<{
3
3
  parent: object;
4
4
  prop: PropertyKey;
5
5
  }>>;
6
6
  export declare const objectsWithDeepWatchers: WeakSet<object>;
7
- export declare const deepWatchers: WeakMap<object, Set<ScopedCallback>>;
8
- export declare const effectToDeepWatchedObjects: WeakMap<ScopedCallback, Set<object>>;
7
+ export declare const deepWatchers: WeakMap<object, Set<EffectTrigger>>;
8
+ export declare const effectToDeepWatchedObjects: WeakMap<EffectTrigger, Set<object>>;
9
9
  /**
10
10
  * Add a back-reference from child to parent
11
11
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-watch-state.d.ts","sourceRoot":"","sources":["../../../src/reactive/deep-watch-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGvD,eAAO,MAAM,aAAa;YAAqC,MAAM;UAAQ,WAAW;GAAM,CAAA;AAG9F,eAAO,MAAM,uBAAuB,iBAAwB,CAAA;AAG5D,eAAO,MAAM,YAAY,qCAA4C,CAAA;AAGrE,eAAO,MAAM,0BAA0B,qCAA4C,CAAA;AAEnF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAOxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAa3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,QAYzE"}
@@ -1,3 +1,4 @@
1
+ import { type EffectCleanup } from './types';
1
2
  export { addBackReference, bubbleUpChange, deepWatchers, effectToDeepWatchedObjects, needsBackReferences, objectParents, objectsWithDeepWatchers, removeBackReference, } from './deep-watch-state';
2
3
  /**
3
4
  * Deep watch an object and all its nested properties
@@ -15,5 +16,5 @@ export { addBackReference, bubbleUpChange, deepWatchers, effectToDeepWatchedObje
15
16
  */
16
17
  export declare function deepWatch<T extends object>(target: T, callback: (value: T) => void, { immediate }?: {
17
18
  immediate?: boolean;
18
- }): (() => void) | undefined;
19
+ }): EffectCleanup | undefined;
19
20
  //# sourceMappingURL=deep-watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-watch.d.ts","sourceRoot":"","sources":["../../../src/reactive/deep-watch.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,SAAS,CAAA;AAMzE,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,GACnB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;GAMG;AACH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACzC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC5B,EAAE,SAAiB,EAAE;;CAAK,GACxB,aAAa,GAAG,SAAS,CA8H3B"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Reactively defines properties on a target object based on a descriptors record.
3
+ *
4
+ * It tracks the keys of the descriptors record and defines/updates/removes
5
+ * properties on the target object as they change.
6
+ *
7
+ * @param descriptors - A reactive record of property descriptors.
8
+ * @param target - The object to define properties on (defaults to a new object).
9
+ * @returns The target object with reactive property definitions.
10
+ */
11
+ export declare function describe<T extends object>(descriptors: Record<PropertyKey, PropertyDescriptor>, target?: T): T;
12
+ //# sourceMappingURL=describe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/reactive/describe.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EACxC,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,EACpD,MAAM,GAAE,CAA4B,GAClC,CAAC,CAoBH"}
@@ -0,0 +1,34 @@
1
+ import { ZoneAggregator, ZoneHistory } from '../zone';
2
+ import { cleanup, type EffectAccess, type EffectTrigger, type ScopedCallback } from './types';
3
+ export declare const effectHistory: ZoneHistory<EffectTrigger>;
4
+ /**
5
+ * Aggregator for zones that need to be tracked along effects.
6
+ * ie. in each effect, the active zone of the given zoning will be the one active at effect's definition
7
+ */
8
+ export declare const effectAggregator: ZoneAggregator;
9
+ export declare function isRunning(effect: EffectTrigger): boolean;
10
+ export declare function getActiveEffect(): EffectTrigger;
11
+ /**
12
+ * ADD a cleanup function to an object using the cleanup symbol.
13
+ * The cleanup function will be called when the object needs to be disposed.
14
+ *
15
+ * Note: most of the time, you don't need to use this function directly.
16
+ * The main use if for the cleanup function to be stored with the object, as GC calls the cleanup function when the *function* is garbage collected.
17
+ *
18
+ * @param obj - The object to attach the cleanup function to
19
+ * @param cleanupFn - The cleanup function to attach
20
+ * @returns The object with the cleanup function attached
21
+ */
22
+ export declare function cleanedBy<T extends object>(obj: T, cleanupFn: ScopedCallback): T & {
23
+ [cleanup]: ScopedCallback;
24
+ };
25
+ /**
26
+ * Creates a derived value that automatically recomputes when dependencies change
27
+ * @param compute - Function that computes the derived value
28
+ * @returns Object with value and cleanup function
29
+ */
30
+ export declare function derived<T>(compute: (dep: EffectAccess) => T): {
31
+ value: T;
32
+ [cleanup]: ScopedCallback;
33
+ };
34
+ //# sourceMappingURL=effect-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-context.d.ts","sourceRoot":"","sources":["../../../src/reactive/effect-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,EACN,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,aAAa,4BAAyD,CAAA;AAInF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gBAAqE,CAAA;AAElG,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGxD;AAED,wBAAgB,eAAe,kBAE9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,GAiBtE,CAAC,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CACvC;AAID;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,CAAC,GAAG;IAC9D,KAAK,EAAE,CAAC,CAAA;IACR,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAUA"}
@@ -1,15 +1,22 @@
1
- import { cleanup as cleanupSymbol, type DependencyAccess, type EffectOptions, type Evolution, type ScopedCallback, stopped } from './types';
2
- type EffectTracking = (obj: any, evolution: Evolution, prop: any) => void;
1
+ import { type StackFrame } from '../../debug/lineage';
2
+ import { type CatchFunction, type EffectAccess, type EffectCleanup, type EffectCloser, type EffectOptions, type EffectTrigger, type Evolution } from './types';
3
+ type EffectTracking = (obj: any, evolution: Evolution, prop: any, effect: EffectTrigger) => void;
3
4
  export interface ActivationRecord {
4
- effect: ScopedCallback;
5
+ effect: EffectTrigger;
5
6
  obj: any;
6
7
  evolution: Evolution;
7
8
  prop: any;
8
9
  batchId: number;
9
10
  }
10
11
  export declare const activationLog: Omit<ActivationRecord, 'batchId'>[];
12
+ /**
13
+ * Returns the activation log containing recent effect activations for debugging.
14
+ * The log is a circular buffer of the last 100 activations.
15
+ *
16
+ * @returns Array of activation records
17
+ */
11
18
  export declare function getActivationLog(): Omit<ActivationRecord, "batchId">[];
12
- export declare function recordActivation(effect: ScopedCallback, obj: any, evolution: Evolution, prop: any): void;
19
+ export declare function recordActivation(effect: EffectTrigger, obj: any, evolution: Evolution, prop: any): void;
13
20
  /**
14
21
  * Registers a debug callback that is called when the current effect is triggered by a dependency change
15
22
  *
@@ -20,7 +27,7 @@ export declare function recordActivation(effect: ScopedCallback, obj: any, evolu
20
27
  * - The specific property that changed
21
28
  *
22
29
  * **Note:** The tracker callback is automatically removed after being called once. If you need
23
- * to track multiple triggers, call `trackEffect` again within the effect.
30
+ * to track multiple triggers, call `onEffectTrigger` again within the effect.
24
31
  *
25
32
  * @param onTouch - Callback function that receives (obj, evolution, prop) when the effect is triggered
26
33
  * @throws {Error} If called outside of an effect context
@@ -31,7 +38,7 @@ export declare function recordActivation(effect: ScopedCallback, obj: any, evolu
31
38
  *
32
39
  * effect(() => {
33
40
  * // Register a tracker to see what triggers this effect
34
- * trackEffect((obj, evolution, prop) => {
41
+ * onEffectTrigger((obj, evolution, prop) => {
35
42
  * console.log(`Effect triggered by:`, {
36
43
  * object: obj,
37
44
  * change: evolution.type,
@@ -44,19 +51,18 @@ export declare function recordActivation(effect: ScopedCallback, obj: any, evolu
44
51
  * })
45
52
  *
46
53
  * state.count = 5
47
- * // Logs: Effect triggered by: { object: state, change: 'set', property: 'count' }
48
54
  * ```
49
55
  */
50
- export declare function trackEffect(onTouch: EffectTracking): void;
51
- declare const effectTrackers: WeakMap<ScopedCallback, Set<EffectTracking>>;
52
- export declare const opaqueEffects: WeakSet<ScopedCallback>;
53
- export declare const effectCreationStacks: WeakMap<Function, string>;
54
- export declare function hasBatched(effect: ScopedCallback): boolean;
56
+ export declare function onEffectTrigger(onTouch: EffectTracking, effect?: EffectTrigger): void;
57
+ export declare function raiseEffectTrackers(effect: EffectTrigger, obj: any, evolution: Evolution, prop: any): void;
58
+ export declare function onEffectThrow(onThrow: CatchFunction, effect?: EffectTrigger): void;
59
+ export declare const effectCreationStacks: WeakMap<Function, StackFrame[]>;
60
+ export declare function hasBatched(effect: EffectTrigger): boolean;
55
61
  /**
56
62
  * Adds a cleanup function to be called when the current batch of effects completes
57
63
  * @param cleanup - The cleanup function to add
58
64
  */
59
- export declare function addBatchCleanup(cleanup: ScopedCallback): void;
65
+ export declare function addBatchCleanup(cleanup: EffectCleanup): void;
60
66
  /**
61
67
  * Semantic alias for `addBatchCleanup` - defers work to the end of the current reactive batch.
62
68
  *
@@ -78,7 +84,15 @@ export declare function addBatchCleanup(cleanup: ScopedCallback): void;
78
84
  * ```
79
85
  */
80
86
  export declare const defer: typeof addBatchCleanup;
81
- export declare function batch(effect: ScopedCallback | ScopedCallback[], immediate?: 'immediate'): any;
87
+ export declare function batch(effect: EffectTrigger | EffectTrigger[], immediate?: 'immediate'): any;
88
+ /**
89
+ * Resets the reactive system to a consistent state.
90
+ * Call this after an unrecoverable error has set the system to "broken".
91
+ * This clears all batch state, effect dependency graphs, and watcher registrations.
92
+ * All existing effects become orphaned and must be recreated.
93
+ */
94
+ export declare function reset(): void;
95
+ export { reset as resetBatchQueueForTest };
82
96
  /**
83
97
  * Decorator that makes methods atomic - batches all effects triggered within the method
84
98
  */
@@ -93,9 +107,9 @@ export declare const atomic: import("../decorator").LegacyPropertyDecorator<any>
93
107
  * @param options - Options for effect execution
94
108
  * @returns A cleanup function to stop the effect
95
109
  */
96
- export declare function effect(fn: (access: DependencyAccess) => ScopedCallback | undefined | void | Promise<any>, effectOptions?: EffectOptions): ScopedCallback & {
97
- [stopped]: boolean;
98
- [cleanupSymbol]: () => void;
110
+ export declare const effect: ((fn: (access: EffectAccess) => EffectCloser | undefined | void | Promise<any>, effectOptions?: EffectOptions) => EffectCleanup) & {
111
+ readonly opaque: any;
112
+ named(name: string): any;
99
113
  };
100
114
  /**
101
115
  * Executes a function without tracking dependencies but maintains parent cleanup relationship
@@ -109,7 +123,6 @@ export declare function untracked<T>(fn: () => T): T;
109
123
  * @param fn - The function to execute
110
124
  */
111
125
  export declare function root<T>(fn: () => T): T;
112
- export { effectTrackers };
113
126
  /**
114
127
  * Creates a bidirectional binding between a reactive value and a non-reactive external value
115
128
  * Prevents infinite loops by automatically suppressing circular notifications
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../src/reactive/effects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export { attend, lift, type ScanResult, scan } from './buffer';
2
+ export { getState, touched, touched1 } from './change';
3
+ export { deepWatch } from './deep-watch';
4
+ export { cleanedBy, derived, effectAggregator, getActiveEffect } from './effect-context';
5
+ export { addBatchCleanup, atomic, biDi, defer, effect, getActivationLog, onEffectThrow, onEffectTrigger, reset, root, untracked, } from './effects';
6
+ export { type Memoizable, memoize } from './memoize';
7
+ export { immutables, isNonReactive, registerNativeReactivity } from './non-reactive';
8
+ export { getActiveProjection, project } from './project';
9
+ export { isReactive, ReactiveBase, reactive, unwrap } from './proxy';
10
+ export { organize, organized } from './record';
11
+ export { Register, register } from './register';
12
+ export { cleanup, type EffectAccess as DependencyAccess, type EffectCleanup, type EffectOptions, type EffectTrigger, type Evolution, options as reactiveOptions, ReactiveError, ReactiveErrorCode, type ScopedCallback, } from './types';
13
+ export { unreactive, watch } from './watch';
14
+ export { describe } from './describe';
15
+ /**
16
+ * Object containing internal reactive system state for debugging and profiling
17
+ */
18
+ export declare const profileInfo: any;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,KAAK,EACL,IAAI,EACJ,SAAS,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EACN,OAAO,EACP,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,OAAO,IAAI,eAAe,EAC1B,aAAa,EACb,iBAAiB,EACjB,KAAK,cAAc,GACnB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAsBrC;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAUzB,CAAA"}
@@ -3,7 +3,6 @@
3
3
  * Only tracks individual key operations, no size tracking (WeakMap limitation)
4
4
  */
5
5
  export declare abstract class ReactiveWeakMap<K extends object, V> extends WeakMap<K, V> {
6
- get [Symbol.toStringTag](): string;
7
6
  delete(key: K): boolean;
8
7
  get(key: K): V | undefined;
9
8
  has(key: K): boolean;
@@ -14,7 +13,6 @@ export declare abstract class ReactiveWeakMap<K extends object, V> extends WeakM
14
13
  * Tracks size changes, individual key operations, and collection-wide operations
15
14
  */
16
15
  export declare abstract class ReactiveMap<K, V> extends Map<K, V> {
17
- get [Symbol.toStringTag](): string;
18
16
  get size(): number;
19
17
  clear(): void;
20
18
  entries(): Generator<[K, V]>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/reactive/map.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/E,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IASvB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAK1B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAKpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAY3B;AAED;;;GAGG;AACH,8BAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAExD,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYb,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAK5B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAKpF,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;IAKtB,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;IAKtB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAavB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAK1B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAKpB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;CAe3B"}
@@ -0,0 +1,28 @@
1
+ export type Memoizable = object | any[] | symbol | ((...args: any[]) => any);
2
+ declare function memoizeFunction<Result, Args extends Memoizable[]>(fn: (...args: Args) => Result): (...args: Args) => Result;
3
+ /**
4
+ * Decorator and function wrapper for memoizing computed values based on reactive dependencies.
5
+ *
6
+ * When used as a decorator on getters or methods, it caches the result and automatically
7
+ * invalidates the cache when reactive dependencies change.
8
+ *
9
+ * When used as a function wrapper, it memoizes based on object arguments (WeakMap-based cache).
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * class User {
14
+ * @memoize
15
+ * get fullName() {
16
+ * return `${this.firstName} ${this.lastName}`
17
+ * }
18
+ * }
19
+ *
20
+ * // Or as a function wrapper
21
+ * const expensive = memoize((obj: SomeObject) => {
22
+ * return heavyComputation(obj)
23
+ * })
24
+ * ```
25
+ */
26
+ export declare const memoize: import("../decorator").LegacyPropertyDecorator<any> & import("../decorator").ModernMethodDecorator<any> & import("../decorator").ModernGetterDecorator<any> & import("../decorator").ModernAccessorDecorator<any> & typeof memoizeFunction;
27
+ export {};
28
+ //# sourceMappingURL=memoize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../../src/reactive/memoize.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;AAqB5E,iBAAS,eAAe,CAAC,MAAM,EAAE,IAAI,SAAS,UAAU,EAAE,EACzD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GAC3B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CA6E3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,4OAoDlB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-reactive-state.d.ts","sourceRoot":"","sources":["../../../src/reactive/non-reactive-state.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,iBAAwB,CAAA;AACvD,eAAO,MAAM,UAAU,eAAoB,GAAG,KAAK,OAAO,CAAG,CAAA;AAC7D,eAAO,MAAM,MAAM,eAAmB,CAAA;AAEtC,iBAAS,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAa5D;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAG3F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAM/C;AAED,wBAAgB,wBAAwB,CACvC,aAAa,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC1C,aAAa,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,QAI1C;AAQD,OAAO,EAAE,eAAe,IAAI,WAAW,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-reactive.d.ts","sourceRoot":"","sources":["../../../src/reactive/non-reactive.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,UAAU,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,MAAM,sBAAsB,CAAA;AAG7B;;GAEG;AACH,wBAAiB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAM5E;AAED;;GAEG;AACH,wBAAiB,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAOhG;AAED,OAAO,EACN,MAAM,EACN,UAAU,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,GACxB,CAAA"}
@@ -1,6 +1,5 @@
1
- import { cleanup } from './interface';
2
1
  import { Register } from './register';
3
- import { type ProjectionContext, type ScopedCallback } from './types';
2
+ import { cleanup, type ProjectionContext, type ScopedCallback } from './types';
4
3
  /**
5
4
  * Maps projection effects (item effects) to their projection context
6
5
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/reactive/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-state.d.ts","sourceRoot":"","sources":["../../../src/reactive/proxy-state.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,yBAAgC,CAAA;AAC1D,eAAO,MAAM,aAAa,yBAAgC,CAAA;AAE1D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAGnE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAE7D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMnC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAE5C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/reactive/proxy.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,UAAU,uBAAgB,CAAA;AA2KvC;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;SAWvB,CAAA;AACF,iBAAS,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAsB1C;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,6KA4BnB,CAAA;AAEF;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA"}
@@ -1,5 +1,4 @@
1
- import { cleanup } from './interface';
2
- import { type ScopedCallback } from './types';
1
+ import { cleanup, type EffectCloser, type ScopedCallback } from './types';
3
2
  /**
4
3
  * Provides type-safe access to a source object's property within the organized callback.
5
4
  * @template Source - The type of the source object
@@ -37,7 +36,7 @@ access: OrganizedAccess<Source, Key>,
37
36
  /**
38
37
  * The target object where organized data will be stored
39
38
  */
40
- target: Target) => ScopedCallback | undefined;
39
+ target: Target) => EffectCloser | undefined;
41
40
  /**
42
41
  * The result type of the organized function, combining the target object with cleanup capability.
43
42
  * @template Target - The type of the target object
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/reactive/record.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,MAAM,SAAS,CAAA;AAEhB;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,MAAM,MAAM,IAAI;IAChG,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAEjB;;;OAGG;IACH,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IAElB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;IAEhC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,SAAS,MAAM,IAAI,CAC/F,GAAG,SAAS,MAAM,MAAM;AAExB;;GAEG;AACH,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;AAEpC;;GAEG;AACH,MAAM,EAAE,MAAM,KACV,YAAY,GAAG,SAAS,CAAA;AAE7B;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG;IAC7D;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,SAAS,CACxB,MAAM,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EACvC,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAEhD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,UAAU,GAAE,MAAqB,GAC/B,eAAe,CAAC,MAAM,CAAC,CA6BzB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE;IAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAA;CAAE,iBAU9C"}
@@ -1,5 +1,30 @@
1
1
  import { ArrayReadForward, forwardArray, getAt, setAt } from '../indexable';
2
2
  type KeyFunction<T, K extends PropertyKey> = (item: T) => K;
3
+ /**
4
+ * Events emitted by the Register for CRUD operations
5
+ */
6
+ export interface RegisterEvents<T, K extends PropertyKey> {
7
+ /**
8
+ * Emitted when a new item is added to the register
9
+ */
10
+ add: (item: T, key: K, index: number) => void;
11
+ /**
12
+ * Emitted when an item is removed from the register
13
+ */
14
+ delete: (item: T, key: K, index: number) => void;
15
+ /**
16
+ * Emitted when an item's value is updated (same key, new value)
17
+ */
18
+ update: (oldItem: T, newItem: T, key: K, index: number) => void;
19
+ /**
20
+ * Emitted when an item's key changes (rekey operation)
21
+ */
22
+ rekey: (item: T, oldKey: K, newKey: K, index: number) => void;
23
+ /**
24
+ * Index signature for EventsBase compatibility
25
+ */
26
+ [key: string]: (...args: any[]) => void;
27
+ }
3
28
  interface RegisterInstance<T> extends ArrayReadForward<T> {
4
29
  [index: number]: T;
5
30
  }
@@ -10,6 +35,20 @@ declare const RegisterClass_base: new () => ArrayReadForward<any> & {
10
35
  declare class RegisterClass<T, K extends PropertyKey = PropertyKey> extends RegisterClass_base implements RegisterInstance<T> {
11
36
  #private;
12
37
  protected get [forwardArray](): readonly T[];
38
+ /**
39
+ * Register event listeners for CRUD operations
40
+ */
41
+ on(events: Partial<RegisterEvents<T, K>>): void;
42
+ on<EventType extends keyof RegisterEvents<T, K>>(event: EventType, cb: RegisterEvents<T, K>[EventType]): () => void;
43
+ /**
44
+ * Remove event listeners
45
+ */
46
+ off(events: Partial<RegisterEvents<T, K>>): void;
47
+ off<EventType extends keyof RegisterEvents<T, K>>(event: EventType, cb?: RegisterEvents<T, K>[EventType]): void;
48
+ /**
49
+ * Register a global hook that receives all events
50
+ */
51
+ hook(cb: <EventType extends keyof RegisterEvents<T, K>>(event: EventType, ...args: Parameters<RegisterEvents<T, K>[EventType]>) => void): () => void;
13
52
  constructor(keyFn: KeyFunction<T, K>, initial?: Iterable<T>);
14
53
  private ensureKey;
15
54
  private assertValidKey;
@@ -59,6 +98,28 @@ declare class RegisterClass<T, K extends PropertyKey = PropertyKey> extends Regi
59
98
  }
60
99
  export type Register<T, K extends PropertyKey = PropertyKey> = RegisterClass<T, K> & T[];
61
100
  export declare const Register: new <T, K extends PropertyKey = PropertyKey>(keyFn: KeyFunction<T, K>, initial?: Iterable<T>) => Register<T, K>;
101
+ /**
102
+ * Creates a reactive Register - an ordered, array-like collection with stable key-based identity.
103
+ *
104
+ * Register combines array semantics (indexable access, ordering, iteration) with Map-like
105
+ * key-based lookups. Items with the same key share the same value instance, making it ideal
106
+ * for UI lists keyed by IDs or when you need to preserve identity across reorders.
107
+ *
108
+ * @param keyFn - Function that extracts the key from each item
109
+ * @param initial - Optional initial items to populate the register
110
+ * @returns A reactive Register instance
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const users = register(
115
+ * (user: User) => user.id,
116
+ * [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]
117
+ * )
118
+ *
119
+ * users.push({ id: 3, name: 'Charlie' })
120
+ * const bob = users.get(2) // Get by key
121
+ * ```
122
+ */
62
123
  export declare function register<T, K extends PropertyKey = PropertyKey>(keyFn: KeyFunction<T, K>, initial?: Iterable<T>): Register<T, K>;
63
124
  export {};
64
125
  //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/reactive/register.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { type ScopedCallback } from './types';
2
- export declare const effectToReactiveObjects: WeakMap<ScopedCallback, Set<object>>;
3
- export declare const watchers: WeakMap<object, Map<any, Set<ScopedCallback>>>;
4
- export declare const effectChildren: WeakMap<ScopedCallback, Set<ScopedCallback>>;
5
- export declare const effectParent: WeakMap<ScopedCallback, ScopedCallback>;
1
+ import { type EffectNode, type EffectTrigger } from './types';
2
+ export declare let effectToReactiveObjects: WeakMap<import("./types").ScopedCallback, Set<object>>;
3
+ export declare let watchers: WeakMap<object, Map<any, Set<import("./types").ScopedCallback>>>;
4
+ export declare let effectNodes: WeakMap<import("./types").ScopedCallback, EffectNode>;
5
+ export declare function getEffectNode(effect: EffectTrigger): EffectNode;
6
+ export declare function resetRegistry(): void;
6
7
  /**
7
8
  * Marks a function with its root function for effect tracking
8
9
  * Enforces strict unicity: A root function can only identify ONE function.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/reactive/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAgB,MAAM,SAAS,CAAA;AAG/F,eAAO,IAAI,uBAAuB,wDAA4C,CAAA;AAG9E,eAAO,IAAI,QAAQ,kEAAsD,CAAA;AAGzE,eAAO,IAAI,WAAW,uDAA2C,CAAA;AAEjE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAO/D;AAKD,wBAAgB,aAAa,SAK5B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAwBpE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAGhE"}
@@ -3,7 +3,6 @@
3
3
  * Only tracks individual value operations, no size tracking (WeakSet limitation)
4
4
  */
5
5
  export declare abstract class ReactiveWeakSet<T extends object> extends WeakSet<T> {
6
- get [Symbol.toStringTag](): string;
7
6
  add(value: T): this;
8
7
  delete(value: T): boolean;
9
8
  has(value: T): boolean;
@@ -13,7 +12,6 @@ export declare abstract class ReactiveWeakSet<T extends object> extends WeakSet<
13
12
  * Tracks size changes, individual value operations, and collection-wide operations
14
13
  */
15
14
  export declare abstract class ReactiveSet<T> extends Set<T> {
16
- get [Symbol.toStringTag](): string;
17
15
  get size(): number;
18
16
  add(value: T): this;
19
17
  clear(): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/reactive/set.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACzE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWnB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAOzB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;CAItB;AAED;;;GAGG;AACH,8BAAsB,WAAW,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,IAAI,MAAM,CAIjB;IAED,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAanB,KAAK,IAAI,IAAI;IAUb,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAWzB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAKtB,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAK5B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAKpF,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;IAKpB,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;IAKtB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;CAWnC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../../src/reactive/tracking.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,GAAc,QA8BvD"}