mutts 1.0.9 → 1.0.10

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 (204) hide show
  1. package/README.md +58 -33
  2. package/dist/browser.cjs +1371 -1206
  3. package/dist/browser.cjs.map +1 -1
  4. package/dist/browser.d.ts +2 -1392
  5. package/dist/browser.dev.cjs +110 -0
  6. package/dist/browser.dev.cjs.map +1 -0
  7. package/dist/browser.dev.d.ts +2 -0
  8. package/dist/browser.dev.esm.js +5 -0
  9. package/dist/browser.dev.esm.js.map +1 -0
  10. package/dist/browser.esm.js +6 -87
  11. package/dist/browser.esm.js.map +1 -1
  12. package/dist/chunks/{async-browser-lvzLOCgk.cjs → async-browser-BU_IfxYD.cjs} +4 -85
  13. package/dist/chunks/async-browser-BU_IfxYD.cjs.map +1 -0
  14. package/dist/chunks/{async-node-C3DeIb0y.cjs → async-node-3PrbVAbB.cjs} +3 -1
  15. package/dist/chunks/async-node-3PrbVAbB.cjs.map +1 -0
  16. package/dist/chunks/{index-2vea86wD.esm.js → index-CaaQQlPJ.esm.js} +1116 -953
  17. package/dist/chunks/index-CaaQQlPJ.esm.js.map +1 -0
  18. package/dist/chunks/node-nKJBk8iJ.esm.js +96 -0
  19. package/dist/chunks/node-nKJBk8iJ.esm.js.map +1 -0
  20. package/dist/chunks/{index-VTO-b2vR.cjs → proxy-Dtg-bJ3T.cjs} +2285 -2983
  21. package/dist/chunks/proxy-Dtg-bJ3T.cjs.map +1 -0
  22. package/dist/chunks/{index-CtA2AWl3.esm.js → proxy-r7lARftl.esm.js} +2273 -2948
  23. package/dist/chunks/proxy-r7lARftl.esm.js.map +1 -0
  24. package/dist/debug.cjs +973 -28
  25. package/dist/debug.cjs.map +1 -1
  26. package/dist/debug.d.ts +36 -37
  27. package/dist/debug.esm.js +949 -1
  28. package/dist/debug.esm.js.map +1 -1
  29. package/dist/devtools/manifest.json +1 -1
  30. package/dist/devtools/panel.html +1 -1
  31. package/dist/devtools/panel.js +107 -94
  32. package/dist/devtools/panel.js.map +1 -1
  33. package/dist/index.d.ts +1447 -1
  34. package/dist/mutts.umd.js +7167 -1
  35. package/dist/mutts.umd.js.map +1 -1
  36. package/dist/mutts.umd.min.js +1 -1
  37. package/dist/mutts.umd.min.js.map +1 -1
  38. package/dist/node.cjs +62 -60
  39. package/dist/node.cjs.map +1 -1
  40. package/dist/node.d.ts +2 -2
  41. package/dist/node.dev.cjs +110 -0
  42. package/dist/node.dev.cjs.map +1 -0
  43. package/dist/node.dev.d.ts +2 -0
  44. package/dist/node.dev.esm.js +6 -0
  45. package/dist/node.dev.esm.js.map +1 -0
  46. package/dist/node.esm.js +4 -97
  47. package/dist/node.esm.js.map +1 -1
  48. package/dist/{types-DaHFfhlN.d.ts → types-W5vD6m2n.d.ts} +99 -44
  49. package/docs/ai/api-reference.md +11 -18
  50. package/docs/ai/manual.md +308 -230
  51. package/docs/reactive/advanced.md +312 -2
  52. package/docs/reactive/attend.md +1 -2
  53. package/docs/reactive/collections.md +21 -39
  54. package/docs/reactive/core.md +7 -37
  55. package/docs/reactive/debugging.md +117 -10
  56. package/docs/reactive/error-handling.md +10 -10
  57. package/docs/reactive/resource.md +125 -0
  58. package/docs/reactive/scan.md +32 -1
  59. package/docs/reactive.md +3 -2
  60. package/docs/utils.md +70 -0
  61. package/package.json +59 -30
  62. package/dist/chunks/async-browser-lvzLOCgk.cjs.map +0 -1
  63. package/dist/chunks/async-node-C3DeIb0y.cjs.map +0 -1
  64. package/dist/chunks/index-2vea86wD.esm.js.map +0 -1
  65. package/dist/chunks/index-CtA2AWl3.esm.js.map +0 -1
  66. package/dist/chunks/index-VTO-b2vR.cjs.map +0 -1
  67. package/dist/debug/debug.d.ts +0 -122
  68. package/dist/debug/debug.d.ts.map +0 -1
  69. package/dist/debug/index.d.ts +0 -4
  70. package/dist/debug/index.d.ts.map +0 -1
  71. package/dist/debug/lineage-panel.d.ts +0 -5
  72. package/dist/debug/lineage-panel.d.ts.map +0 -1
  73. package/dist/debug/lineage.d.ts +0 -79
  74. package/dist/debug/lineage.d.ts.map +0 -1
  75. package/dist/src/async/browser.d.ts +0 -2
  76. package/dist/src/async/browser.d.ts.map +0 -1
  77. package/dist/src/async/index.d.ts +0 -19
  78. package/dist/src/async/index.d.ts.map +0 -1
  79. package/dist/src/async/node.d.ts +0 -2
  80. package/dist/src/async/node.d.ts.map +0 -1
  81. package/dist/src/decorator.d.ts +0 -106
  82. package/dist/src/decorator.d.ts.map +0 -1
  83. package/dist/src/destroyable.d.ts +0 -87
  84. package/dist/src/destroyable.d.ts.map +0 -1
  85. package/dist/src/entry-browser.d.ts +0 -3
  86. package/dist/src/entry-browser.d.ts.map +0 -1
  87. package/dist/src/entry-node.d.ts +0 -3
  88. package/dist/src/entry-node.d.ts.map +0 -1
  89. package/dist/src/eventful.d.ts +0 -20
  90. package/dist/src/eventful.d.ts.map +0 -1
  91. package/dist/src/flavored.d.ts +0 -33
  92. package/dist/src/flavored.d.ts.map +0 -1
  93. package/dist/src/index.d.ts +0 -14
  94. package/dist/src/index.d.ts.map +0 -1
  95. package/dist/src/indexable.d.ts +0 -243
  96. package/dist/src/indexable.d.ts.map +0 -1
  97. package/dist/src/introspection.d.ts +0 -27
  98. package/dist/src/introspection.d.ts.map +0 -1
  99. package/dist/src/iterableWeak.d.ts +0 -53
  100. package/dist/src/iterableWeak.d.ts.map +0 -1
  101. package/dist/src/mixins.d.ts +0 -25
  102. package/dist/src/mixins.d.ts.map +0 -1
  103. package/dist/src/promiseChain.d.ts +0 -20
  104. package/dist/src/promiseChain.d.ts.map +0 -1
  105. package/dist/src/reactive/array.d.ts +0 -48
  106. package/dist/src/reactive/array.d.ts.map +0 -1
  107. package/dist/src/reactive/buffer.d.ts +0 -120
  108. package/dist/src/reactive/buffer.d.ts.map +0 -1
  109. package/dist/src/reactive/change.d.ts +0 -29
  110. package/dist/src/reactive/change.d.ts.map +0 -1
  111. package/dist/src/reactive/deep-touch.d.ts +0 -28
  112. package/dist/src/reactive/deep-touch.d.ts.map +0 -1
  113. package/dist/src/reactive/deep-watch-state.d.ts +0 -25
  114. package/dist/src/reactive/deep-watch-state.d.ts.map +0 -1
  115. package/dist/src/reactive/deep-watch.d.ts +0 -20
  116. package/dist/src/reactive/deep-watch.d.ts.map +0 -1
  117. package/dist/src/reactive/describe.d.ts +0 -12
  118. package/dist/src/reactive/describe.d.ts.map +0 -1
  119. package/dist/src/reactive/effect-context.d.ts +0 -34
  120. package/dist/src/reactive/effect-context.d.ts.map +0 -1
  121. package/dist/src/reactive/effects.d.ts +0 -164
  122. package/dist/src/reactive/effects.d.ts.map +0 -1
  123. package/dist/src/reactive/index.d.ts +0 -19
  124. package/dist/src/reactive/index.d.ts.map +0 -1
  125. package/dist/src/reactive/map.d.ts +0 -28
  126. package/dist/src/reactive/map.d.ts.map +0 -1
  127. package/dist/src/reactive/memoize.d.ts +0 -28
  128. package/dist/src/reactive/memoize.d.ts.map +0 -1
  129. package/dist/src/reactive/non-reactive-state.d.ts +0 -9
  130. package/dist/src/reactive/non-reactive-state.d.ts.map +0 -1
  131. package/dist/src/reactive/non-reactive.d.ts +0 -11
  132. package/dist/src/reactive/non-reactive.d.ts.map +0 -1
  133. package/dist/src/reactive/project.d.ts +0 -40
  134. package/dist/src/reactive/project.d.ts.map +0 -1
  135. package/dist/src/reactive/proxy-state.d.ts +0 -8
  136. package/dist/src/reactive/proxy-state.d.ts.map +0 -1
  137. package/dist/src/reactive/proxy.d.ts +0 -23
  138. package/dist/src/reactive/proxy.d.ts.map +0 -1
  139. package/dist/src/reactive/record.d.ts +0 -115
  140. package/dist/src/reactive/record.d.ts.map +0 -1
  141. package/dist/src/reactive/register.d.ts +0 -125
  142. package/dist/src/reactive/register.d.ts.map +0 -1
  143. package/dist/src/reactive/registry.d.ts +0 -21
  144. package/dist/src/reactive/registry.d.ts.map +0 -1
  145. package/dist/src/reactive/set.d.ts +0 -26
  146. package/dist/src/reactive/set.d.ts.map +0 -1
  147. package/dist/src/reactive/tracking.d.ts +0 -7
  148. package/dist/src/reactive/tracking.d.ts.map +0 -1
  149. package/dist/src/reactive/types.d.ts +0 -424
  150. package/dist/src/reactive/types.d.ts.map +0 -1
  151. package/dist/src/reactive/watch.d.ts +0 -48
  152. package/dist/src/reactive/watch.d.ts.map +0 -1
  153. package/dist/src/std-decorators.d.ts +0 -45
  154. package/dist/src/std-decorators.d.ts.map +0 -1
  155. package/dist/src/utils.d.ts +0 -49
  156. package/dist/src/utils.d.ts.map +0 -1
  157. package/dist/src/zone.d.ts +0 -40
  158. package/dist/src/zone.d.ts.map +0 -1
  159. package/docs/reactive/describe.md +0 -85
  160. package/docs/reactive/project.md +0 -93
  161. package/src/async/browser.ts +0 -323
  162. package/src/async/index.ts +0 -27
  163. package/src/async/node.ts +0 -92
  164. package/src/decorator.ts +0 -272
  165. package/src/destroyable.ts +0 -199
  166. package/src/entry-browser.ts +0 -5
  167. package/src/entry-node.ts +0 -5
  168. package/src/eventful.ts +0 -110
  169. package/src/flavored.ts +0 -106
  170. package/src/index.d.ts +0 -12
  171. package/src/index.ts +0 -64
  172. package/src/indexable.ts +0 -526
  173. package/src/introspection.ts +0 -59
  174. package/src/iterableWeak.ts +0 -233
  175. package/src/mixins.ts +0 -123
  176. package/src/promiseChain.ts +0 -110
  177. package/src/reactive/array.ts +0 -500
  178. package/src/reactive/buffer.ts +0 -328
  179. package/src/reactive/change.ts +0 -131
  180. package/src/reactive/deep-touch.ts +0 -273
  181. package/src/reactive/deep-watch-state.ts +0 -82
  182. package/src/reactive/deep-watch.ts +0 -171
  183. package/src/reactive/describe.ts +0 -39
  184. package/src/reactive/effect-context.ts +0 -83
  185. package/src/reactive/effects.ts +0 -1434
  186. package/src/reactive/index.ts +0 -72
  187. package/src/reactive/map.ts +0 -142
  188. package/src/reactive/memoize.ts +0 -186
  189. package/src/reactive/non-reactive-state.ts +0 -49
  190. package/src/reactive/non-reactive.ts +0 -43
  191. package/src/reactive/project.md +0 -107
  192. package/src/reactive/project.ts +0 -430
  193. package/src/reactive/proxy-state.ts +0 -27
  194. package/src/reactive/proxy.ts +0 -282
  195. package/src/reactive/record.ts +0 -181
  196. package/src/reactive/register.ts +0 -538
  197. package/src/reactive/registry.ts +0 -72
  198. package/src/reactive/set.ts +0 -117
  199. package/src/reactive/tracking.ts +0 -41
  200. package/src/reactive/types.ts +0 -520
  201. package/src/reactive/watch.ts +0 -180
  202. package/src/std-decorators.ts +0 -256
  203. package/src/utils.ts +0 -300
  204. package/src/zone.ts +0 -142
package/dist/node.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- require('./chunks/async-node-C3DeIb0y.cjs');
3
+ require('./chunks/async-node-3PrbVAbB.cjs');
4
4
  var browser = require('./browser.cjs');
5
- var debug = require('./chunks/index-VTO-b2vR.cjs');
5
+ var proxy = require('./chunks/proxy-Dtg-bJ3T.cjs');
6
6
  var asyncCore = require('./chunks/async-core-CRLKP3l-.cjs');
7
7
  require('node:async_hooks');
8
- require('./chunks/async-browser-lvzLOCgk.cjs');
8
+ require('./chunks/async-browser-BU_IfxYD.cjs');
9
9
 
10
10
 
11
11
 
@@ -17,6 +17,7 @@ exports.Indexable = browser.Indexable;
17
17
  exports.Register = browser.Register;
18
18
  exports.allocated = browser.allocated;
19
19
  exports.allocatedValues = browser.allocatedValues;
20
+ exports.arrayDiff = browser.arrayDiff;
20
21
  exports.attend = browser.attend;
21
22
  exports.cache = browser.cache;
22
23
  exports.cached = browser.cached;
@@ -25,82 +26,83 @@ exports.chainPromise = browser.chainPromise;
25
26
  exports.debounce = browser.debounce;
26
27
  exports.deepWatch = browser.deepWatch;
27
28
  exports.deprecated = browser.deprecated;
28
- exports.describe = browser.describe;
29
29
  exports.descriptor = browser.descriptor;
30
30
  exports.destructor = browser.destructor;
31
31
  exports.forwardArray = browser.forwardArray;
32
- exports.getActiveProjection = browser.getActiveProjection;
33
32
  exports.getAt = browser.getAt;
34
33
  exports.isCached = browser.isCached;
35
34
  exports.lift = browser.lift;
36
35
  exports.memoize = browser.memoize;
36
+ exports.morph = browser.morph;
37
37
  exports.organize = browser.organize;
38
38
  exports.organized = browser.organized;
39
39
  exports.profileInfo = browser.profileInfo;
40
- exports.project = browser.project;
40
+ exports.project = browser.morph;
41
41
  exports.register = browser.register;
42
+ exports.resource = browser.resource;
42
43
  exports.scan = browser.scan;
43
44
  exports.setAt = browser.setAt;
44
45
  exports.throttle = browser.throttle;
45
46
  exports.unreactive = browser.unreactive;
46
47
  exports.watch = browser.watch;
47
- exports.AZone = debug.AZone;
48
- exports.DecoratorError = debug.DecoratorError;
49
- exports.FoolProof = debug.FoolProof;
50
- exports.IterableWeakMap = debug.IterableWeakMap;
51
- exports.IterableWeakSet = debug.IterableWeakSet;
52
- exports.ReactiveBase = debug.ReactiveBase;
53
- exports.ReactiveError = debug.ReactiveError;
48
+ exports.when = browser.when;
49
+ exports.AZone = proxy.AZone;
50
+ exports.DecoratorError = proxy.DecoratorError;
51
+ exports.IterableWeakMap = proxy.IterableWeakMap;
52
+ exports.IterableWeakSet = proxy.IterableWeakSet;
53
+ exports.ReactiveBase = proxy.ReactiveBase;
54
+ exports.ReactiveError = proxy.ReactiveError;
54
55
  Object.defineProperty(exports, "ReactiveErrorCode", {
55
56
  enumerable: true,
56
- get: function () { return debug.ReactiveErrorCode; }
57
+ get: function () { return proxy.ReactiveErrorCode; }
57
58
  });
58
- exports.Zone = debug.Zone;
59
- exports.ZoneAggregator = debug.ZoneAggregator;
60
- exports.ZoneHistory = debug.ZoneHistory;
61
- exports.addBatchCleanup = debug.addBatchCleanup;
62
- exports.arrayEquals = debug.arrayEquals;
63
- exports.asyncZone = debug.asyncZone;
64
- exports.atomic = debug.atomic;
65
- exports.biDi = debug.biDi;
66
- exports.cleanedBy = debug.cleanedBy;
67
- exports.cleanup = debug.cleanup;
68
- exports.contentRef = debug.contentRef;
69
- exports.createFlavor = debug.createFlavor;
70
- exports.decorator = debug.decorator;
71
- exports.deepCompare = debug.deepCompare;
72
- exports.defer = debug.defer;
73
- exports.derived = debug.derived;
74
- exports.effect = debug.effect;
75
- exports.effectAggregator = debug.effectAggregator;
76
- exports.flavorOptions = debug.flavorOptions;
77
- exports.flavored = debug.flavored;
78
- exports.getActivationLog = debug.getActivationLog;
79
- exports.getActiveEffect = debug.getActiveEffect;
80
- exports.getState = debug.getState;
81
- exports.immutables = debug.immutables;
82
- exports.isConstructor = debug.isConstructor;
83
- exports.isNonReactive = debug.isNonReactive;
84
- exports.isOwnAccessor = debug.isOwnAccessor;
85
- exports.isReactive = debug.isReactive;
86
- exports.legacyDecorator = debug.legacyDecorator;
87
- exports.mixin = debug.mixin;
88
- exports.modernDecorator = debug.modernDecorator;
89
- exports.named = debug.named;
90
- exports.onEffectThrow = debug.onEffectThrow;
91
- exports.onEffectTrigger = debug.onEffectTrigger;
92
- exports.reactive = debug.reactive;
93
- exports.reactiveOptions = debug.options;
94
- exports.registerNativeReactivity = debug.registerNativeReactivity;
95
- exports.renamed = debug.renamed;
96
- exports.reset = debug.reset;
97
- exports.root = debug.root;
98
- exports.tag = debug.tag;
99
- exports.touched = debug.touched;
100
- exports.touched1 = debug.touched1;
101
- exports.untracked = debug.untracked;
102
- exports.unwrap = debug.unwrap;
103
- exports.zip = debug.zip;
59
+ exports.Zone = proxy.Zone;
60
+ exports.ZoneAggregator = proxy.ZoneAggregator;
61
+ exports.ZoneHistory = proxy.ZoneHistory;
62
+ exports.addBatchCleanup = proxy.addBatchCleanup;
63
+ exports.arrayEquals = proxy.arrayEquals;
64
+ exports.asyncZone = proxy.asyncZone;
65
+ exports.atom = proxy.atom;
66
+ exports.atomic = proxy.atomic;
67
+ exports.biDi = proxy.biDi;
68
+ exports.caught = proxy.caught;
69
+ exports.cleanedBy = proxy.cleanedBy;
70
+ exports.cleanup = proxy.cleanup;
71
+ exports.createFlavor = proxy.createFlavor;
72
+ exports.decorator = proxy.decorator;
73
+ exports.deepCompare = proxy.deepCompare;
74
+ exports.defer = proxy.defer;
75
+ exports.effect = proxy.effect;
76
+ exports.effectAggregator = proxy.effectAggregator;
77
+ exports.flavorOptions = proxy.flavorOptions;
78
+ exports.flavored = proxy.flavored;
79
+ exports.formatCleanupReason = proxy.formatCleanupReason;
80
+ exports.getActivationLog = proxy.getActivationLog;
81
+ exports.getActiveEffect = proxy.getActiveEffect;
82
+ exports.getState = proxy.getState;
83
+ exports.immutables = proxy.immutables;
84
+ exports.isConstructor = proxy.isConstructor;
85
+ exports.isNonReactive = proxy.isNonReactive;
86
+ exports.isObject = proxy.isObject;
87
+ exports.isReactive = proxy.isReactive;
88
+ exports.legacyDecorator = proxy.legacyDecorator;
89
+ exports.mixin = proxy.mixin;
90
+ exports.modernDecorator = proxy.modernDecorator;
91
+ exports.named = proxy.named;
92
+ exports.objectToProxy = proxy.objectToProxy;
93
+ exports.onEffectThrow = proxy.onEffectThrow;
94
+ exports.proxyToObject = proxy.proxyToObject;
95
+ exports.reactive = proxy.reactive;
96
+ exports.reactiveOptions = proxy.options;
97
+ exports.reset = proxy.reset;
98
+ exports.root = proxy.root;
99
+ exports.stopped = proxy.stopped;
100
+ exports.tag = proxy.tag;
101
+ exports.touched = proxy.touched;
102
+ exports.touched1 = proxy.touched1;
103
+ exports.untracked = proxy.untracked;
104
+ exports.unwrap = proxy.unwrap;
105
+ exports.zip = proxy.zip;
104
106
  exports.asyncHook = asyncCore.asyncHook;
105
107
  exports.asyncHooks = asyncCore.asyncHooks;
106
108
  exports.hooks = asyncCore.hooks;
package/dist/node.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"node.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/node.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { ArrayReadForward, ContextManager, Decorator, DecoratorDescription, DecoratorError, DecoratorFactory, Destroyable, DestructionError, Eventful, EventsBase, FoolProof, GenericClassDecorator, Hook, Indexable, IterableWeakMap, IterableWeakSet, LegacyClassDecorator, LegacyPropertyDecorator, Memoizable, MixinClass, MixinFunction, ModernAccessorDecorator, ModernClassDecorator, ModernGetterDecorator, ModernMethodDecorator, ModernSetterDecorator, PromiseChain, ReactiveBase, Register, Restorer, ScanResult, addBatchCleanup, allocated, allocatedValues, arrayEquals, asyncHook, asyncHooks, atomic, attend, biDi, cache, cached, callOnGC, chainPromise, cleanedBy, contentRef, debounce, decorator, deepCompare, deepWatch, defer, deprecated, derived, describe, descriptor, destructor, effect, effectAggregator, forwardArray, getActivationLog, getActiveEffect, getActiveProjection, getAt, getState, hooks, immutables, isCached, isConstructor, isNonReactive, isOwnAccessor, isReactive, legacyDecorator, lift, memoize, mixin, modernDecorator, named, onEffectThrow, onEffectTrigger, organize, organized, profileInfo, project, reactive, register, registerNativeReactivity, renamed, reset, root, scan, setAt, tag, throttle, touched, touched1, unreactive, untracked, unwrap, watch, zip } from './browser.js';
2
- export { A as AZone, e as DependencyAccess, b as EffectCleanup, g as EffectOptions, E as EffectTrigger, a as Evolution, F as FunctionWrapper, R as ReactiveError, h as ReactiveErrorCode, S as ScopedCallback, i as Zone, Z as ZoneAggregator, j as ZoneHistory, k as asyncZone, c as cleanup, o as reactiveOptions } from './types-DaHFfhlN.js';
1
+ export { ArrayDiffResult, ArrayReadForward, ContextManager, Decorator, DecoratorDescription, DecoratorError, DecoratorFactory, Destroyable, DestructionError, Eventful, EventsBase, GenericClassDecorator, Hook, Indexable, IterableWeakMap, IterableWeakSet, LegacyClassDecorator, LegacyPropertyDecorator, Memoizable, MemoizableArgument, MixinClass, MixinFunction, ModernAccessorDecorator, ModernClassDecorator, ModernGetterDecorator, ModernMethodDecorator, ModernSetterDecorator, PromiseChain, ReactiveBase, Register, Resource, Restorer, ScanResult, addBatchCleanup, allocated, allocatedValues, arrayDiff, arrayEquals, asyncHook, asyncHooks, atom, atomic, attend, biDi, cache, cached, callOnGC, caught, chainPromise, cleanedBy, createFlavor, debounce, decorator, deepCompare, deepWatch, defer, deprecated, descriptor, destructor, effect, effectAggregator, flavorOptions, flavored, forwardArray, getActivationLog, getActiveEffect, getAt, getState, hooks, immutables, isCached, isConstructor, isNonReactive, isObject, legacyDecorator, lift, memoize, mixin, modernDecorator, morph, named, onEffectThrow, organize, organized, profileInfo, morph as project, reactive, register, reset, resource, root, scan, setAt, tag, throttle, touched, touched1, unreactive, untracked, watch, when, zip } from './index.js';
2
+ export { A as AZone, h as CleanupReason, e as EffectAccess, b as EffectCleanup, d as EffectCloser, g as EffectOptions, E as EffectTrigger, a as Evolution, F as FunctionWrapper, P as PropTrigger, R as ReactiveError, i as ReactiveErrorCode, S as ScopedCallback, j as Zone, Z as ZoneAggregator, k as ZoneHistory, l as asyncZone, c as cleanup, m as formatCleanupReason, n as isReactive, o as objectToProxy, p as proxyToObject, q as reactiveOptions, s as stopped, u as unwrap } from './types-W5vD6m2n.js';
@@ -0,0 +1,110 @@
1
+ 'use strict';
2
+
3
+ require('./debug.cjs');
4
+ require('./chunks/async-node-3PrbVAbB.cjs');
5
+ var browser = require('./browser.cjs');
6
+ var proxy = require('./chunks/proxy-Dtg-bJ3T.cjs');
7
+ var asyncCore = require('./chunks/async-core-CRLKP3l-.cjs');
8
+ require('node:async_hooks');
9
+ require('./chunks/async-browser-BU_IfxYD.cjs');
10
+
11
+
12
+
13
+ exports.ArrayReadForward = browser.ArrayReadForward;
14
+ exports.Destroyable = browser.Destroyable;
15
+ exports.DestructionError = browser.DestructionError;
16
+ exports.Eventful = browser.Eventful;
17
+ exports.Indexable = browser.Indexable;
18
+ exports.Register = browser.Register;
19
+ exports.allocated = browser.allocated;
20
+ exports.allocatedValues = browser.allocatedValues;
21
+ exports.arrayDiff = browser.arrayDiff;
22
+ exports.attend = browser.attend;
23
+ exports.cache = browser.cache;
24
+ exports.cached = browser.cached;
25
+ exports.callOnGC = browser.callOnGC;
26
+ exports.chainPromise = browser.chainPromise;
27
+ exports.debounce = browser.debounce;
28
+ exports.deepWatch = browser.deepWatch;
29
+ exports.deprecated = browser.deprecated;
30
+ exports.descriptor = browser.descriptor;
31
+ exports.destructor = browser.destructor;
32
+ exports.forwardArray = browser.forwardArray;
33
+ exports.getAt = browser.getAt;
34
+ exports.isCached = browser.isCached;
35
+ exports.lift = browser.lift;
36
+ exports.memoize = browser.memoize;
37
+ exports.morph = browser.morph;
38
+ exports.organize = browser.organize;
39
+ exports.organized = browser.organized;
40
+ exports.profileInfo = browser.profileInfo;
41
+ exports.project = browser.morph;
42
+ exports.register = browser.register;
43
+ exports.resource = browser.resource;
44
+ exports.scan = browser.scan;
45
+ exports.setAt = browser.setAt;
46
+ exports.throttle = browser.throttle;
47
+ exports.unreactive = browser.unreactive;
48
+ exports.watch = browser.watch;
49
+ exports.when = browser.when;
50
+ exports.AZone = proxy.AZone;
51
+ exports.DecoratorError = proxy.DecoratorError;
52
+ exports.IterableWeakMap = proxy.IterableWeakMap;
53
+ exports.IterableWeakSet = proxy.IterableWeakSet;
54
+ exports.ReactiveBase = proxy.ReactiveBase;
55
+ exports.ReactiveError = proxy.ReactiveError;
56
+ Object.defineProperty(exports, "ReactiveErrorCode", {
57
+ enumerable: true,
58
+ get: function () { return proxy.ReactiveErrorCode; }
59
+ });
60
+ exports.Zone = proxy.Zone;
61
+ exports.ZoneAggregator = proxy.ZoneAggregator;
62
+ exports.ZoneHistory = proxy.ZoneHistory;
63
+ exports.addBatchCleanup = proxy.addBatchCleanup;
64
+ exports.arrayEquals = proxy.arrayEquals;
65
+ exports.asyncZone = proxy.asyncZone;
66
+ exports.atom = proxy.atom;
67
+ exports.atomic = proxy.atomic;
68
+ exports.biDi = proxy.biDi;
69
+ exports.caught = proxy.caught;
70
+ exports.cleanedBy = proxy.cleanedBy;
71
+ exports.cleanup = proxy.cleanup;
72
+ exports.createFlavor = proxy.createFlavor;
73
+ exports.decorator = proxy.decorator;
74
+ exports.deepCompare = proxy.deepCompare;
75
+ exports.defer = proxy.defer;
76
+ exports.effect = proxy.effect;
77
+ exports.effectAggregator = proxy.effectAggregator;
78
+ exports.flavorOptions = proxy.flavorOptions;
79
+ exports.flavored = proxy.flavored;
80
+ exports.formatCleanupReason = proxy.formatCleanupReason;
81
+ exports.getActivationLog = proxy.getActivationLog;
82
+ exports.getActiveEffect = proxy.getActiveEffect;
83
+ exports.getState = proxy.getState;
84
+ exports.immutables = proxy.immutables;
85
+ exports.isConstructor = proxy.isConstructor;
86
+ exports.isNonReactive = proxy.isNonReactive;
87
+ exports.isObject = proxy.isObject;
88
+ exports.isReactive = proxy.isReactive;
89
+ exports.legacyDecorator = proxy.legacyDecorator;
90
+ exports.mixin = proxy.mixin;
91
+ exports.modernDecorator = proxy.modernDecorator;
92
+ exports.named = proxy.named;
93
+ exports.objectToProxy = proxy.objectToProxy;
94
+ exports.onEffectThrow = proxy.onEffectThrow;
95
+ exports.proxyToObject = proxy.proxyToObject;
96
+ exports.reactive = proxy.reactive;
97
+ exports.reactiveOptions = proxy.options;
98
+ exports.reset = proxy.reset;
99
+ exports.root = proxy.root;
100
+ exports.stopped = proxy.stopped;
101
+ exports.tag = proxy.tag;
102
+ exports.touched = proxy.touched;
103
+ exports.touched1 = proxy.touched1;
104
+ exports.untracked = proxy.untracked;
105
+ exports.unwrap = proxy.unwrap;
106
+ exports.zip = proxy.zip;
107
+ exports.asyncHook = asyncCore.asyncHook;
108
+ exports.asyncHooks = asyncCore.asyncHooks;
109
+ exports.hooks = asyncCore.hooks;
110
+ //# sourceMappingURL=node.dev.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.dev.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { A as AZone, h as CleanupReason, e as EffectAccess, b as EffectCleanup, d as EffectCloser, g as EffectOptions, E as EffectTrigger, a as Evolution, F as FunctionWrapper, P as PropTrigger, R as ReactiveError, i as ReactiveErrorCode, S as ScopedCallback, j as Zone, Z as ZoneAggregator, k as ZoneHistory, l as asyncZone, c as cleanup, m as formatCleanupReason, n as isReactive, o as objectToProxy, p as proxyToObject, q as reactiveOptions, s as stopped, u as unwrap } from './types-W5vD6m2n.js';
2
+ export { ArrayDiffResult, ArrayReadForward, ContextManager, Decorator, DecoratorDescription, DecoratorError, DecoratorFactory, Destroyable, DestructionError, Eventful, EventsBase, GenericClassDecorator, Hook, Indexable, IterableWeakMap, IterableWeakSet, LegacyClassDecorator, LegacyPropertyDecorator, Memoizable, MemoizableArgument, MixinClass, MixinFunction, ModernAccessorDecorator, ModernClassDecorator, ModernGetterDecorator, ModernMethodDecorator, ModernSetterDecorator, PromiseChain, ReactiveBase, Register, Resource, Restorer, ScanResult, addBatchCleanup, allocated, allocatedValues, arrayDiff, arrayEquals, asyncHook, asyncHooks, atom, atomic, attend, biDi, cache, cached, callOnGC, caught, chainPromise, cleanedBy, createFlavor, debounce, decorator, deepCompare, deepWatch, defer, deprecated, descriptor, destructor, effect, effectAggregator, flavorOptions, flavored, forwardArray, getActivationLog, getActiveEffect, getAt, getState, hooks, immutables, isCached, isConstructor, isNonReactive, isObject, legacyDecorator, lift, memoize, mixin, modernDecorator, morph, named, onEffectThrow, organize, organized, profileInfo, morph as project, reactive, register, reset, resource, root, scan, setAt, tag, throttle, touched, touched1, unreactive, untracked, watch, when, zip } from './index.js';
@@ -0,0 +1,6 @@
1
+ import './debug.esm.js';
2
+ import './chunks/node-nKJBk8iJ.esm.js';
3
+ export { A as ArrayReadForward, D as Destroyable, a as DestructionError, E as Eventful, I as Indexable, R as Register, b as allocated, c as allocatedValues, d as arrayDiff, e as attend, f as cache, g as cached, h as callOnGC, i as chainPromise, j as debounce, k as deepWatch, l as deprecated, m as descriptor, n as destructor, o as forwardArray, p as getAt, q as isCached, r as lift, s as memoize, t as morph, u as organize, v as organized, w as profileInfo, t as project, x as register, y as resource, z as scan, B as setAt, C as throttle, F as unreactive, G as watch, H as when } from './chunks/index-CaaQQlPJ.esm.js';
4
+ export { A as AZone, D as DecoratorError, I as IterableWeakMap, a as IterableWeakSet, R as ReactiveBase, b as ReactiveError, c as ReactiveErrorCode, Z as Zone, d as ZoneAggregator, e as ZoneHistory, f as addBatchCleanup, g as arrayEquals, h as asyncHook, i as asyncHooks, j as asyncZone, k as atom, l as atomic, m as biDi, n as caught, o as cleanedBy, p as cleanup, q as createFlavor, r as decorator, s as deepCompare, t as defer, u as effect, v as effectAggregator, w as flavorOptions, x as flavored, y as formatCleanupReason, z as getActivationLog, B as getActiveEffect, C as getState, E as hooks, F as immutables, G as isConstructor, H as isNonReactive, J as isObject, K as isReactive, L as legacyDecorator, M as mixin, N as modernDecorator, O as named, P as objectToProxy, Q as onEffectThrow, S as proxyToObject, T as reactive, U as reactiveOptions, V as reset, W as root, X as stopped, Y as tag, _ as touched, $ as touched1, a0 as untracked, a1 as unwrap, a2 as zip } from './chunks/proxy-r7lARftl.esm.js';
5
+ import 'node:async_hooks';
6
+ //# sourceMappingURL=node.dev.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.dev.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/dist/node.esm.js CHANGED
@@ -1,98 +1,5 @@
1
- import { createHook } from 'node:async_hooks';
2
- import { h as hooks } from './chunks/index-CtA2AWl3.esm.js';
3
- export { A as AZone, D as DecoratorError, F as FoolProof, I as IterableWeakMap, b as IterableWeakSet, R as ReactiveBase, c as ReactiveError, d as ReactiveErrorCode, Z as Zone, e as ZoneAggregator, f as ZoneHistory, g as addBatchCleanup, i as arrayEquals, j as asyncHook, a as asyncHooks, k as asyncZone, l as atomic, m as biDi, n as cleanedBy, o as cleanup, p as contentRef, q as createFlavor, r as decorator, s as deepCompare, t as defer, u as derived, v as effect, w as effectAggregator, x as flavorOptions, y as flavored, z as getActivationLog, B as getActiveEffect, C as getState, E as immutables, G as isConstructor, H as isNonReactive, J as isOwnAccessor, K as isReactive, L as legacyDecorator, M as mixin, N as modernDecorator, O as named, P as onEffectThrow, Q as onEffectTrigger, S as reactive, T as reactiveOptions, U as registerNativeReactivity, V as renamed, W as reset, X as root, Y as tag, _ as touched, $ as touched1, a0 as untracked, a1 as unwrap, a2 as zip } from './chunks/index-CtA2AWl3.esm.js';
4
- export { A as ArrayReadForward, D as Destroyable, a as DestructionError, E as Eventful, I as Indexable, R as Register, b as allocated, c as allocatedValues, d as attend, e as cache, f as cached, g as callOnGC, h as chainPromise, i as debounce, j as deepWatch, k as deprecated, l as describe, m as descriptor, n as destructor, o as forwardArray, p as getActiveProjection, q as getAt, r as isCached, s as lift, t as memoize, u as organize, v as organized, w as profileInfo, x as project, y as register, z as scan, B as setAt, C as throttle, F as unreactive, G as watch } from './chunks/index-2vea86wD.esm.js';
5
-
6
- // 1. Generic async_hooks implementation for Hooks
7
- // This maintains support for 'asyncHooks.addHook' for generic use cases.
8
- const contexts = new Map();
9
- const activeUndoers = new Map();
10
- // Helper to capture current hooks state
11
- function captureRestorers() {
12
- if (hooks.size === 0)
13
- return [];
14
- const restorers = [];
15
- for (const h of hooks) {
16
- const r = h();
17
- if (r)
18
- restorers.push(r);
19
- }
20
- return restorers;
21
- }
22
- // Manual Wrap function to handle Promise callbacks
23
- function wrap(fn) {
24
- if (typeof fn !== 'function')
25
- return fn;
26
- const restorers = captureRestorers();
27
- if (restorers.length === 0)
28
- return fn;
29
- return function (...args) {
30
- const undoers = [];
31
- for (const restore of restorers) {
32
- const u = restore();
33
- if (u)
34
- undoers.push(u);
35
- }
36
- try {
37
- return fn.apply(this, args);
38
- }
39
- finally {
40
- for (let i = undoers.length - 1; i >= 0; i--)
41
- undoers[i]();
42
- }
43
- };
44
- }
45
- const hook = createHook({
46
- init(asyncId, _type, _triggerId, _resource) {
47
- // Used for native resources like Timers
48
- const restorers = captureRestorers();
49
- if (restorers.length > 0)
50
- contexts.set(asyncId, restorers);
51
- },
52
- before(asyncId) {
53
- const restorers = contexts.get(asyncId);
54
- if (!restorers)
55
- return;
56
- const undoers = [];
57
- for (const restore of restorers) {
58
- const u = restore();
59
- if (u)
60
- undoers.push(u);
61
- }
62
- if (undoers.length > 0)
63
- activeUndoers.set(asyncId, undoers);
64
- },
65
- after(asyncId) {
66
- const undoers = activeUndoers.get(asyncId);
67
- if (!undoers)
68
- return;
69
- for (let i = undoers.length - 1; i >= 0; i--)
70
- undoers[i]();
71
- activeUndoers.delete(asyncId);
72
- },
73
- destroy(asyncId) {
74
- contexts.delete(asyncId);
75
- activeUndoers.delete(asyncId);
76
- },
77
- });
78
- hook.enable();
79
- // 2. Shadow Promise Implementation
80
- // Ensures V8 await resumptions are visible as .then callbacks, wrapping them to restore context.
81
- const OriginalPromise = globalThis.Promise;
82
- const originalMethods = {
83
- then: OriginalPromise.prototype.then,
84
- catch: OriginalPromise.prototype.catch,
85
- finally: OriginalPromise.prototype.finally};
86
- // Patch prototype
87
- OriginalPromise.prototype.then = function (onFulfilled, onRejected) {
88
- return originalMethods.then.call(this, wrap(onFulfilled), wrap(onRejected));
89
- };
90
- OriginalPromise.prototype.catch = function (onRejected) {
91
- return originalMethods.catch.call(this, wrap(onRejected));
92
- };
93
- OriginalPromise.prototype.finally = function (onFinally) {
94
- return originalMethods.finally.call(this, wrap(onFinally));
95
- };
96
-
97
- export { hooks };
1
+ import './chunks/node-nKJBk8iJ.esm.js';
2
+ export { A as ArrayReadForward, D as Destroyable, a as DestructionError, E as Eventful, I as Indexable, R as Register, b as allocated, c as allocatedValues, d as arrayDiff, e as attend, f as cache, g as cached, h as callOnGC, i as chainPromise, j as debounce, k as deepWatch, l as deprecated, m as descriptor, n as destructor, o as forwardArray, p as getAt, q as isCached, r as lift, s as memoize, t as morph, u as organize, v as organized, w as profileInfo, t as project, x as register, y as resource, z as scan, B as setAt, C as throttle, F as unreactive, G as watch, H as when } from './chunks/index-CaaQQlPJ.esm.js';
3
+ export { A as AZone, D as DecoratorError, I as IterableWeakMap, a as IterableWeakSet, R as ReactiveBase, b as ReactiveError, c as ReactiveErrorCode, Z as Zone, d as ZoneAggregator, e as ZoneHistory, f as addBatchCleanup, g as arrayEquals, h as asyncHook, i as asyncHooks, j as asyncZone, k as atom, l as atomic, m as biDi, n as caught, o as cleanedBy, p as cleanup, q as createFlavor, r as decorator, s as deepCompare, t as defer, u as effect, v as effectAggregator, w as flavorOptions, x as flavored, y as formatCleanupReason, z as getActivationLog, B as getActiveEffect, C as getState, E as hooks, F as immutables, G as isConstructor, H as isNonReactive, J as isObject, K as isReactive, L as legacyDecorator, M as mixin, N as modernDecorator, O as named, P as objectToProxy, Q as onEffectThrow, S as proxyToObject, T as reactive, U as reactiveOptions, V as reset, W as root, X as stopped, Y as tag, _ as touched, $ as touched1, a0 as untracked, a1 as unwrap, a2 as zip } from './chunks/proxy-r7lARftl.esm.js';
4
+ import 'node:async_hooks';
98
5
  //# sourceMappingURL=node.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.esm.js","sources":["../src/async/node.ts"],"sourcesContent":["import { createHook } from 'node:async_hooks'\nimport { hooks, type Restorer } from '.'\n\n// 1. Generic async_hooks implementation for Hooks\n// This maintains support for 'asyncHooks.addHook' for generic use cases.\n\nconst contexts = new Map<number, Restorer[]>()\nconst activeUndoers = new Map<number, (() => void)[]>()\n\n// Helper to capture current hooks state\nfunction captureRestorers() {\n\tif (hooks.size === 0) return []\n\tconst restorers: Restorer[] = []\n\tfor (const h of hooks) {\n\t\tconst r = h()\n\t\tif (r) restorers.push(r)\n\t}\n\treturn restorers\n}\n\n// Manual Wrap function to handle Promise callbacks\nfunction wrap<Args extends any[], R>(fn: ((...args: Args) => R) | null | undefined) {\n\tif (typeof fn !== 'function') return fn\n\tconst restorers = captureRestorers()\n\tif (restorers.length === 0) return fn\n\n\treturn function (this: any, ...args: Args) {\n\t\tconst undoers: (() => void)[] = []\n\t\tfor (const restore of restorers) {\n\t\t\tconst u = restore()\n\t\t\tif (u) undoers.push(u)\n\t\t}\n\t\ttry {\n\t\t\treturn fn.apply(this, args)\n\t\t} finally {\n\t\t\tfor (let i = undoers.length - 1; i >= 0; i--) undoers[i]()\n\t\t}\n\t}\n}\n\nconst hook = createHook({\n\tinit(asyncId, _type, _triggerId, _resource) {\n\t\t// Used for native resources like Timers\n\t\tconst restorers = captureRestorers()\n\t\tif (restorers.length > 0) contexts.set(asyncId, restorers)\n\t},\n\tbefore(asyncId) {\n\t\tconst restorers = contexts.get(asyncId)\n\t\tif (!restorers) return\n\t\tconst undoers: (() => void)[] = []\n\t\tfor (const restore of restorers) {\n\t\t\tconst u = restore()\n\t\t\tif (u) undoers.push(u)\n\t\t}\n\t\tif (undoers.length > 0) activeUndoers.set(asyncId, undoers)\n\t},\n\tafter(asyncId) {\n\t\tconst undoers = activeUndoers.get(asyncId)\n\t\tif (!undoers) return\n\t\tfor (let i = undoers.length - 1; i >= 0; i--) undoers[i]()\n\t\tactiveUndoers.delete(asyncId)\n\t},\n\tdestroy(asyncId) {\n\t\tcontexts.delete(asyncId)\n\t\tactiveUndoers.delete(asyncId)\n\t},\n})\nhook.enable()\n\n// 2. Shadow Promise Implementation\n// Ensures V8 await resumptions are visible as .then callbacks, wrapping them to restore context.\n\nconst OriginalPromise = globalThis.Promise\nconst originalMethods = {\n\tthen: OriginalPromise.prototype.then,\n\tcatch: OriginalPromise.prototype.catch,\n\tfinally: OriginalPromise.prototype.finally,\n\tresolve: OriginalPromise.resolve,\n\treject: OriginalPromise.reject,\n\tall: OriginalPromise.all,\n}\n\n// Patch prototype\nOriginalPromise.prototype.then = function (onFulfilled, onRejected) {\n\treturn originalMethods.then.call(this, wrap(onFulfilled), wrap(onRejected))\n} as any\nOriginalPromise.prototype.catch = function (onRejected) {\n\treturn originalMethods.catch.call(this, wrap(onRejected))\n} as any\nOriginalPromise.prototype.finally = function (onFinally) {\n\treturn originalMethods.finally.call(this, wrap(onFinally))\n} as any\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -74,28 +74,70 @@ interface EffectAccess {
74
74
  */
75
75
  ascend: FunctionWrapper;
76
76
  /**
77
- * Indicates whether the effect is running as a reaction (i.e. not the first call)
78
- * - `false`: First execution when the effect is created
79
- * - `true`: Subsequent executions triggered by dependency changes
77
+ * `false` on the first execution, `true` or `CleanupReason` on subsequent runs.
78
+ * `true` means this is a re-run but detailed reason gathering is disabled or unavailable.
79
+ * A `CleanupReason` describes *why* the previous run was torn down.
80
80
  * @example
81
81
  * ```typescript
82
82
  * effect(({ reaction }) => {
83
83
  * if (!reaction) {
84
- * console.log('Effect initialized')
85
- * // Setup code that should only run once
86
- * } else {
87
- * console.log('Effect re-ran due to dependency change')
88
- * // Code that runs on every update
84
+ * // First run — setup
85
+ * } else if (reaction !== true && reaction.type === 'propChange') {
86
+ * // Re-run due to dependency change (with details)
87
+ * for (const { evolution } of reaction.triggers)
88
+ * console.log(`${'prop' in evolution ? evolution.prop : evolution.method}: ${evolution.type}`)
89
89
  * }
90
90
  * })
91
91
  * ```
92
92
  */
93
- reaction: boolean;
93
+ reaction: boolean | CleanupReason;
94
94
  }
95
95
  /**
96
96
  * Base type for effect callbacks - simple function without additional properties
97
97
  */
98
- type ScopedCallback = () => void;
98
+ type ScopedCallback = (reason?: CleanupReason) => void;
99
+ type PropTrigger = {
100
+ obj: object;
101
+ evolution: Evolution;
102
+ dependency?: unknown;
103
+ touch?: unknown;
104
+ };
105
+ /**
106
+ * Reason for an effect cleanup/reaction
107
+ */
108
+ type CleanupReason = {
109
+ type: 'propChange';
110
+ triggers: PropTrigger[];
111
+ } | {
112
+ type: 'invalidate';
113
+ cause: CleanupReason;
114
+ } | {
115
+ type: 'stopped';
116
+ } | {
117
+ type: 'gc';
118
+ } | {
119
+ type: 'lineage';
120
+ parent: CleanupReason;
121
+ } | {
122
+ type: 'error';
123
+ error: unknown;
124
+ } | {
125
+ type: 'multiple';
126
+ reasons: CleanupReason[];
127
+ };
128
+ /**
129
+ * Console-friendly description of a `CleanupReason`.
130
+ * Returns an array of arguments to spread into `console.log` / `console.warn`,
131
+ * mixing strings and raw object references so the console can render them as inspectable values.
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * effect(({ reaction }) => {
136
+ * if (reaction !== true) console.log(...formatCleanupReason(reaction))
137
+ * })
138
+ * ```
139
+ */
140
+ declare function formatCleanupReason(reason: CleanupReason, depth?: number): unknown[];
99
141
  /**
100
142
  * Type for effect cleanup functions with stopped state tracking
101
143
  */
@@ -164,49 +206,48 @@ declare const stopped: unique symbol;
164
206
  * Symbol to access effect cleanup function
165
207
  */
166
208
  declare const cleanup: unique symbol;
167
- type EffectCloser = (error?: any) => void;
209
+ type EffectCloser = (reason?: CleanupReason) => void;
168
210
  type CatchFunction = (error: any) => EffectCloser | undefined | void;
169
- /**
170
- * Context for a running projection item effect
171
- */
172
- interface ProjectionContext {
173
- source: any;
174
- key?: any;
175
- target: any;
176
- depth: number;
177
- parent?: ProjectionContext;
178
- }
179
211
  /**
180
212
  * Structured error codes for machine-readable diagnosis
181
213
  */
182
214
  declare enum ReactiveErrorCode {
183
- CycleDetected = "CYCLE_DETECTED",
184
- MaxDepthExceeded = "MAX_DEPTH_EXCEEDED",
185
- MaxReactionExceeded = "MAX_REACTION_EXCEEDED",
186
- WriteInComputed = "WRITE_IN_COMPUTED",
187
- TrackingError = "TRACKING_ERROR",
188
- BrokenEffects = "BROKEN_EFFECTS"
215
+ CycleDetected = "Cycle detected",
216
+ MaxDepthExceeded = "Max depth exceeded",
217
+ MaxReactionExceeded = "Max reaction exceeded",
218
+ WriteInComputed = "Write in computed",
219
+ TrackingError = "Tracking error",
220
+ BrokenEffects = "Broken effects"
189
221
  }
190
222
  type CycleDebugInfo = {
191
223
  code: ReactiveErrorCode.CycleDetected;
192
224
  cycle: string[];
193
225
  details?: string;
226
+ causalChain?: string[];
227
+ lineage?: unknown;
194
228
  };
195
229
  type MaxDepthDebugInfo = {
196
230
  code: ReactiveErrorCode.MaxDepthExceeded;
197
- depth: number;
198
- chain: string[];
231
+ effectuatedRoots: any[];
232
+ cycle: any[] | null;
233
+ trace: string;
234
+ maxEffectChain: number;
235
+ queued: string[];
236
+ queuedCount: number;
237
+ causalChain?: string[];
238
+ lineage?: unknown;
199
239
  };
200
240
  type MaxReactionDebugInfo = {
201
241
  code: ReactiveErrorCode.MaxReactionExceeded;
202
242
  count: number;
203
243
  effect: string;
244
+ causalChain?: string[];
245
+ lineage?: unknown;
204
246
  };
205
247
  type GenericDebugInfo = {
206
248
  code: ReactiveErrorCode;
207
249
  causalChain?: string[];
208
- creationStack?: string | any[];
209
- lineage?: any[];
250
+ lineage?: unknown;
210
251
  [key: string]: any;
211
252
  };
212
253
  type ReactiveDebugInfo = CycleDebugInfo | MaxDepthDebugInfo | MaxReactionDebugInfo | GenericDebugInfo;
@@ -256,7 +297,7 @@ declare const options: {
256
297
  * @param props - The properties that changed
257
298
  * @param deps - The dependencies that changed
258
299
  */
259
- touched: (_obj: any, _evolution: Evolution, _props?: any[], _deps?: Set<EffectTrigger>) => void;
300
+ touched: (_obj: any, _evolution: Evolution, _props?: any[], _deps?: EffectTrigger[]) => void;
260
301
  /**
261
302
  * Debug purpose: called when an effect is skipped because it's already running
262
303
  * @param effect - The effect that is already running
@@ -366,20 +407,30 @@ declare const options: {
366
407
  asyncMode: AsyncExecutionMode | false;
367
408
  warn: (...args: any[]) => void;
368
409
  /**
369
- * Configuration for the introspection system
410
+ * Introspection and debug aids. Set to `null` to disable all debug overhead in production.
411
+ *
412
+ * - `gatherReasons`: collect `PropTrigger[]` for `CleanupReason` on effect re-runs (default `true`)
413
+ * - `lineages`: what lineages to capture in PropTrigger (default `'touch'`)
414
+ * - `logErrors`: log errors with detailed context (default `true`)
415
+ * - `enableHistory`: keep a history of mutations (default `true`)
416
+ * - `historySize`: number of mutations to keep in history (default `50`)
417
+ *
418
+ * `enableDevTools()` sets `logErrors` to `true` automatically.
419
+ *
420
+ * @example
421
+ * ```typescript
422
+ * // Production: disable all introspection
423
+ * reactiveOptions.introspection = null
424
+ * ```
370
425
  */
371
426
  introspection: {
372
- /**
373
- * Whether to keep a history of mutations for debugging
374
- * @default false
375
- */
427
+ gatherReasons: {
428
+ lineages: "none" | "touch" | "dependency" | "both";
429
+ };
430
+ logErrors: boolean;
376
431
  enableHistory: boolean;
377
- /**
378
- * Number of mutations to keep in history
379
- * @default 50
380
- */
381
432
  historySize: number;
382
- };
433
+ } | null;
383
434
  /**
384
435
  * Configuration for zone hooks - control which async APIs are hooked
385
436
  * Each option controls whether the corresponding async API is wrapped to preserve effect context
@@ -409,6 +460,10 @@ declare const options: {
409
460
  queueMicrotask: boolean;
410
461
  };
411
462
  };
463
+ declare const objectToProxy: WeakMap<object, object>;
464
+ declare const proxyToObject: WeakMap<object, object>;
465
+ declare function unwrap<T>(obj: T): T;
466
+ declare function isReactive(obj: any): boolean;
412
467
 
413
- export { AZone as A, ReactiveError as R, ZoneAggregator as Z, cleanup as c, ReactiveErrorCode as h, Zone as i, ZoneHistory as j, asyncZone as k, options as o };
414
- export type { CatchFunction as C, EffectTrigger as E, FunctionWrapper as F, ProjectionContext as P, ScopedCallback as S, Evolution as a, EffectCleanup as b, EffectCloser as d, EffectAccess as e, State as f, EffectOptions as g };
468
+ export { AZone as A, ReactiveError as R, ZoneAggregator as Z, cleanup as c, ReactiveErrorCode as i, Zone as j, ZoneHistory as k, asyncZone as l, formatCleanupReason as m, isReactive as n, objectToProxy as o, proxyToObject as p, options as q, stopped as s, unwrap as u };
469
+ export type { CatchFunction as C, EffectTrigger as E, FunctionWrapper as F, PropTrigger as P, ScopedCallback as S, Evolution as a, EffectCleanup as b, EffectCloser as d, EffectAccess as e, State as f, EffectOptions as g, CleanupReason as h };