mutts 1.0.14 → 1.0.15
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.
- package/dist/browser.cjs +85 -85
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.dev.cjs +81 -81
- package/dist/browser.dev.esm.js +2 -2
- package/dist/browser.esm.js +3 -3
- package/dist/chunks/{proxy-C2lnvvbx.esm.js → effects-CPjf6gNA.esm.js} +2439 -2419
- package/dist/chunks/effects-CPjf6gNA.esm.js.map +1 -0
- package/dist/chunks/{proxy-HA_QQnd5.cjs → effects-oUauWxxl.cjs} +2440 -2420
- package/dist/chunks/effects-oUauWxxl.cjs.map +1 -0
- package/dist/chunks/{index-BnTNC9eC.cjs → index-Dtj2qZ0d.cjs} +291 -291
- package/dist/chunks/{index-BnTNC9eC.cjs.map → index-Dtj2qZ0d.cjs.map} +1 -1
- package/dist/chunks/{index-CAWVZL7P.esm.js → index-YGpb1te7.esm.js} +3 -3
- package/dist/chunks/{index-CAWVZL7P.esm.js.map → index-YGpb1te7.esm.js.map} +1 -1
- package/dist/chunks/{node-Df_5r_WA.cjs → node-CKuro-Uk.cjs} +6 -6
- package/dist/chunks/{node-Df_5r_WA.cjs.map → node-CKuro-Uk.cjs.map} +1 -1
- package/dist/chunks/{node-DuIduHw3.esm.js → node-sQtns7M-.esm.js} +2 -2
- package/dist/chunks/{node-DuIduHw3.esm.js.map → node-sQtns7M-.esm.js.map} +1 -1
- package/dist/debug.cjs +45 -45
- package/dist/debug.cjs.map +1 -1
- package/dist/debug.esm.js +1 -1
- package/dist/mutts.umd.js +3464 -3444
- package/dist/mutts.umd.js.map +1 -1
- package/dist/mutts.umd.min.js +1 -1
- package/dist/mutts.umd.min.js.map +1 -1
- package/dist/node.cjs +82 -82
- package/dist/node.dev.cjs +82 -82
- package/dist/node.dev.esm.js +3 -3
- package/dist/node.esm.js +3 -3
- package/package.json +1 -1
- package/dist/chunks/proxy-C2lnvvbx.esm.js.map +0 -1
- package/dist/chunks/proxy-HA_QQnd5.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var node_async_hooks = require('node:async_hooks');
|
|
4
|
-
var
|
|
4
|
+
var effects = require('./effects-oUauWxxl.cjs');
|
|
5
5
|
|
|
6
6
|
// 1. Generic async_hooks implementation for Hooks
|
|
7
7
|
// This maintains support for 'asyncHooks.addHook' for generic use cases.
|
|
@@ -9,10 +9,10 @@ const contexts = new Map();
|
|
|
9
9
|
const activeUndoers = new Map();
|
|
10
10
|
// Helper to capture current hooks state
|
|
11
11
|
function captureRestorers() {
|
|
12
|
-
if (
|
|
12
|
+
if (effects.hooks.size === 0)
|
|
13
13
|
return [];
|
|
14
14
|
const restorers = [];
|
|
15
|
-
for (const h of
|
|
15
|
+
for (const h of effects.hooks) {
|
|
16
16
|
const r = h();
|
|
17
17
|
if (r)
|
|
18
18
|
restorers.push(r);
|
|
@@ -130,8 +130,8 @@ function canceledImmediateHandle() {
|
|
|
130
130
|
originalMethods.clearImmediate.call(globalThis, handle);
|
|
131
131
|
return handle;
|
|
132
132
|
}
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
effects.onReactiveBroken(freezeAsyncSchedulers);
|
|
134
|
+
effects.onReactiveReset(resumeAsyncSchedulers);
|
|
135
135
|
globalThis.setTimeout = ((callback, ...args) => {
|
|
136
136
|
if (asyncSchedulersFrozen)
|
|
137
137
|
return canceledTimeoutHandle();
|
|
@@ -184,4 +184,4 @@ OriginalPromise.prototype.catch = function (onRejected) {
|
|
|
184
184
|
OriginalPromise.prototype.finally = function (onFinally) {
|
|
185
185
|
return originalMethods.finally.call(this, wrap(onFinally));
|
|
186
186
|
};
|
|
187
|
-
//# sourceMappingURL=node-
|
|
187
|
+
//# sourceMappingURL=node-CKuro-Uk.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-Df_5r_WA.cjs","sources":["../../src/async/node.ts"],"sourcesContent":["import { createHook } from 'node:async_hooks'\nimport { onReactiveBroken, onReactiveReset } from '../reactive/effects'\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\t// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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\tsetTimeout: globalThis.setTimeout,\n\tclearTimeout: globalThis.clearTimeout,\n\tsetInterval: globalThis.setInterval,\n\tclearInterval: globalThis.clearInterval,\n\tsetImmediate: globalThis.setImmediate,\n\tclearImmediate: globalThis.clearImmediate,\n}\n\nconst pendingTimeouts = new Set<unknown>()\nconst pendingIntervals = new Set<unknown>()\nconst pendingImmediates = new Set<unknown>()\nlet asyncSchedulersFrozen = false\n\nfunction clearPendingSchedulers() {\n\tfor (const handle of Array.from(pendingTimeouts))\n\t\toriginalMethods.clearTimeout.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingIntervals))\n\t\toriginalMethods.clearInterval.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingImmediates))\n\t\toriginalMethods.clearImmediate.call(globalThis, handle)\n\tpendingTimeouts.clear()\n\tpendingIntervals.clear()\n\tpendingImmediates.clear()\n}\n\nfunction freezeAsyncSchedulers() {\n\tif (asyncSchedulersFrozen) return\n\tasyncSchedulersFrozen = true\n\tclearPendingSchedulers()\n}\n\nfunction resumeAsyncSchedulers() {\n\tasyncSchedulersFrozen = false\n}\n\nfunction canceledTimeoutHandle() {\n\tconst handle = originalMethods.setTimeout.call(globalThis, () => {}, 0)\n\toriginalMethods.clearTimeout.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledIntervalHandle() {\n\tconst handle = originalMethods.setInterval.call(globalThis, () => {}, 0)\n\toriginalMethods.clearInterval.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledImmediateHandle() {\n\tconst handle = originalMethods.setImmediate.call(globalThis, () => {})\n\toriginalMethods.clearImmediate.call(globalThis, handle)\n\treturn handle\n}\n\nonReactiveBroken(freezeAsyncSchedulers)\nonReactiveReset(resumeAsyncSchedulers)\n\nglobalThis.setTimeout = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledTimeoutHandle()\n\tconst handle = originalMethods.setTimeout.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingTimeouts.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingTimeouts.add(handle)\n\treturn handle\n}) as typeof globalThis.setTimeout\n\nglobalThis.clearTimeout = ((handle?: unknown) => {\n\tpendingTimeouts.delete(handle)\n\treturn originalMethods.clearTimeout.call(globalThis, handle)\n}) as typeof globalThis.clearTimeout\n\nglobalThis.setInterval = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledIntervalHandle()\n\tconst handle = originalMethods.setInterval.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingIntervals.add(handle)\n\treturn handle\n}) as typeof globalThis.setInterval\n\nglobalThis.clearInterval = ((handle?: unknown) => {\n\tpendingIntervals.delete(handle)\n\treturn originalMethods.clearInterval.call(globalThis, handle)\n}) as typeof globalThis.clearInterval\n\nglobalThis.setImmediate = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledImmediateHandle()\n\tconst handle = originalMethods.setImmediate.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingImmediates.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingImmediates.add(handle)\n\treturn handle\n}) as typeof globalThis.setImmediate\n\nglobalThis.clearImmediate = ((handle?: unknown) => {\n\tpendingImmediates.delete(handle)\n\treturn originalMethods.clearImmediate.call(globalThis, handle)\n}) as typeof globalThis.clearImmediate\n\n// Patch prototype\n// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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":["hooks","createHook","onReactiveBroken","onReactiveReset"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-CKuro-Uk.cjs","sources":["../../src/async/node.ts"],"sourcesContent":["import { createHook } from 'node:async_hooks'\nimport { onReactiveBroken, onReactiveReset } from '../reactive/effects'\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\t// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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\tsetTimeout: globalThis.setTimeout,\n\tclearTimeout: globalThis.clearTimeout,\n\tsetInterval: globalThis.setInterval,\n\tclearInterval: globalThis.clearInterval,\n\tsetImmediate: globalThis.setImmediate,\n\tclearImmediate: globalThis.clearImmediate,\n}\n\nconst pendingTimeouts = new Set<unknown>()\nconst pendingIntervals = new Set<unknown>()\nconst pendingImmediates = new Set<unknown>()\nlet asyncSchedulersFrozen = false\n\nfunction clearPendingSchedulers() {\n\tfor (const handle of Array.from(pendingTimeouts))\n\t\toriginalMethods.clearTimeout.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingIntervals))\n\t\toriginalMethods.clearInterval.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingImmediates))\n\t\toriginalMethods.clearImmediate.call(globalThis, handle)\n\tpendingTimeouts.clear()\n\tpendingIntervals.clear()\n\tpendingImmediates.clear()\n}\n\nfunction freezeAsyncSchedulers() {\n\tif (asyncSchedulersFrozen) return\n\tasyncSchedulersFrozen = true\n\tclearPendingSchedulers()\n}\n\nfunction resumeAsyncSchedulers() {\n\tasyncSchedulersFrozen = false\n}\n\nfunction canceledTimeoutHandle() {\n\tconst handle = originalMethods.setTimeout.call(globalThis, () => {}, 0)\n\toriginalMethods.clearTimeout.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledIntervalHandle() {\n\tconst handle = originalMethods.setInterval.call(globalThis, () => {}, 0)\n\toriginalMethods.clearInterval.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledImmediateHandle() {\n\tconst handle = originalMethods.setImmediate.call(globalThis, () => {})\n\toriginalMethods.clearImmediate.call(globalThis, handle)\n\treturn handle\n}\n\nonReactiveBroken(freezeAsyncSchedulers)\nonReactiveReset(resumeAsyncSchedulers)\n\nglobalThis.setTimeout = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledTimeoutHandle()\n\tconst handle = originalMethods.setTimeout.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingTimeouts.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingTimeouts.add(handle)\n\treturn handle\n}) as typeof globalThis.setTimeout\n\nglobalThis.clearTimeout = ((handle?: unknown) => {\n\tpendingTimeouts.delete(handle)\n\treturn originalMethods.clearTimeout.call(globalThis, handle)\n}) as typeof globalThis.clearTimeout\n\nglobalThis.setInterval = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledIntervalHandle()\n\tconst handle = originalMethods.setInterval.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingIntervals.add(handle)\n\treturn handle\n}) as typeof globalThis.setInterval\n\nglobalThis.clearInterval = ((handle?: unknown) => {\n\tpendingIntervals.delete(handle)\n\treturn originalMethods.clearInterval.call(globalThis, handle)\n}) as typeof globalThis.clearInterval\n\nglobalThis.setImmediate = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledImmediateHandle()\n\tconst handle = originalMethods.setImmediate.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingImmediates.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingImmediates.add(handle)\n\treturn handle\n}) as typeof globalThis.setImmediate\n\nglobalThis.clearImmediate = ((handle?: unknown) => {\n\tpendingImmediates.delete(handle)\n\treturn originalMethods.clearImmediate.call(globalThis, handle)\n}) as typeof globalThis.clearImmediate\n\n// Patch prototype\n// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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":["hooks","createHook","onReactiveBroken","onReactiveReset"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHook } from 'node:async_hooks';
|
|
2
|
-
import { a5 as onReactiveBroken, a6 as onReactiveReset, L as hooks } from './
|
|
2
|
+
import { a5 as onReactiveBroken, a6 as onReactiveReset, L as hooks } from './effects-CPjf6gNA.esm.js';
|
|
3
3
|
|
|
4
4
|
// 1. Generic async_hooks implementation for Hooks
|
|
5
5
|
// This maintains support for 'asyncHooks.addHook' for generic use cases.
|
|
@@ -182,4 +182,4 @@ OriginalPromise.prototype.catch = function (onRejected) {
|
|
|
182
182
|
OriginalPromise.prototype.finally = function (onFinally) {
|
|
183
183
|
return originalMethods.finally.call(this, wrap(onFinally));
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=node-
|
|
185
|
+
//# sourceMappingURL=node-sQtns7M-.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-DuIduHw3.esm.js","sources":["../../src/async/node.ts"],"sourcesContent":["import { createHook } from 'node:async_hooks'\nimport { onReactiveBroken, onReactiveReset } from '../reactive/effects'\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\t// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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\tsetTimeout: globalThis.setTimeout,\n\tclearTimeout: globalThis.clearTimeout,\n\tsetInterval: globalThis.setInterval,\n\tclearInterval: globalThis.clearInterval,\n\tsetImmediate: globalThis.setImmediate,\n\tclearImmediate: globalThis.clearImmediate,\n}\n\nconst pendingTimeouts = new Set<unknown>()\nconst pendingIntervals = new Set<unknown>()\nconst pendingImmediates = new Set<unknown>()\nlet asyncSchedulersFrozen = false\n\nfunction clearPendingSchedulers() {\n\tfor (const handle of Array.from(pendingTimeouts))\n\t\toriginalMethods.clearTimeout.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingIntervals))\n\t\toriginalMethods.clearInterval.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingImmediates))\n\t\toriginalMethods.clearImmediate.call(globalThis, handle)\n\tpendingTimeouts.clear()\n\tpendingIntervals.clear()\n\tpendingImmediates.clear()\n}\n\nfunction freezeAsyncSchedulers() {\n\tif (asyncSchedulersFrozen) return\n\tasyncSchedulersFrozen = true\n\tclearPendingSchedulers()\n}\n\nfunction resumeAsyncSchedulers() {\n\tasyncSchedulersFrozen = false\n}\n\nfunction canceledTimeoutHandle() {\n\tconst handle = originalMethods.setTimeout.call(globalThis, () => {}, 0)\n\toriginalMethods.clearTimeout.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledIntervalHandle() {\n\tconst handle = originalMethods.setInterval.call(globalThis, () => {}, 0)\n\toriginalMethods.clearInterval.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledImmediateHandle() {\n\tconst handle = originalMethods.setImmediate.call(globalThis, () => {})\n\toriginalMethods.clearImmediate.call(globalThis, handle)\n\treturn handle\n}\n\nonReactiveBroken(freezeAsyncSchedulers)\nonReactiveReset(resumeAsyncSchedulers)\n\nglobalThis.setTimeout = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledTimeoutHandle()\n\tconst handle = originalMethods.setTimeout.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingTimeouts.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingTimeouts.add(handle)\n\treturn handle\n}) as typeof globalThis.setTimeout\n\nglobalThis.clearTimeout = ((handle?: unknown) => {\n\tpendingTimeouts.delete(handle)\n\treturn originalMethods.clearTimeout.call(globalThis, handle)\n}) as typeof globalThis.clearTimeout\n\nglobalThis.setInterval = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledIntervalHandle()\n\tconst handle = originalMethods.setInterval.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingIntervals.add(handle)\n\treturn handle\n}) as typeof globalThis.setInterval\n\nglobalThis.clearInterval = ((handle?: unknown) => {\n\tpendingIntervals.delete(handle)\n\treturn originalMethods.clearInterval.call(globalThis, handle)\n}) as typeof globalThis.clearInterval\n\nglobalThis.setImmediate = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledImmediateHandle()\n\tconst handle = originalMethods.setImmediate.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingImmediates.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingImmediates.add(handle)\n\treturn handle\n}) as typeof globalThis.setImmediate\n\nglobalThis.clearImmediate = ((handle?: unknown) => {\n\tpendingImmediates.delete(handle)\n\treturn originalMethods.clearImmediate.call(globalThis, handle)\n}) as typeof globalThis.clearImmediate\n\n// Patch prototype\n// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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-sQtns7M-.esm.js","sources":["../../src/async/node.ts"],"sourcesContent":["import { createHook } from 'node:async_hooks'\nimport { onReactiveBroken, onReactiveReset } from '../reactive/effects'\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\t// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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\tsetTimeout: globalThis.setTimeout,\n\tclearTimeout: globalThis.clearTimeout,\n\tsetInterval: globalThis.setInterval,\n\tclearInterval: globalThis.clearInterval,\n\tsetImmediate: globalThis.setImmediate,\n\tclearImmediate: globalThis.clearImmediate,\n}\n\nconst pendingTimeouts = new Set<unknown>()\nconst pendingIntervals = new Set<unknown>()\nconst pendingImmediates = new Set<unknown>()\nlet asyncSchedulersFrozen = false\n\nfunction clearPendingSchedulers() {\n\tfor (const handle of Array.from(pendingTimeouts))\n\t\toriginalMethods.clearTimeout.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingIntervals))\n\t\toriginalMethods.clearInterval.call(globalThis, handle)\n\tfor (const handle of Array.from(pendingImmediates))\n\t\toriginalMethods.clearImmediate.call(globalThis, handle)\n\tpendingTimeouts.clear()\n\tpendingIntervals.clear()\n\tpendingImmediates.clear()\n}\n\nfunction freezeAsyncSchedulers() {\n\tif (asyncSchedulersFrozen) return\n\tasyncSchedulersFrozen = true\n\tclearPendingSchedulers()\n}\n\nfunction resumeAsyncSchedulers() {\n\tasyncSchedulersFrozen = false\n}\n\nfunction canceledTimeoutHandle() {\n\tconst handle = originalMethods.setTimeout.call(globalThis, () => {}, 0)\n\toriginalMethods.clearTimeout.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledIntervalHandle() {\n\tconst handle = originalMethods.setInterval.call(globalThis, () => {}, 0)\n\toriginalMethods.clearInterval.call(globalThis, handle)\n\treturn handle\n}\n\nfunction canceledImmediateHandle() {\n\tconst handle = originalMethods.setImmediate.call(globalThis, () => {})\n\toriginalMethods.clearImmediate.call(globalThis, handle)\n\treturn handle\n}\n\nonReactiveBroken(freezeAsyncSchedulers)\nonReactiveReset(resumeAsyncSchedulers)\n\nglobalThis.setTimeout = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledTimeoutHandle()\n\tconst handle = originalMethods.setTimeout.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingTimeouts.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingTimeouts.add(handle)\n\treturn handle\n}) as typeof globalThis.setTimeout\n\nglobalThis.clearTimeout = ((handle?: unknown) => {\n\tpendingTimeouts.delete(handle)\n\treturn originalMethods.clearTimeout.call(globalThis, handle)\n}) as typeof globalThis.clearTimeout\n\nglobalThis.setInterval = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledIntervalHandle()\n\tconst handle = originalMethods.setInterval.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingIntervals.add(handle)\n\treturn handle\n}) as typeof globalThis.setInterval\n\nglobalThis.clearInterval = ((handle?: unknown) => {\n\tpendingIntervals.delete(handle)\n\treturn originalMethods.clearInterval.call(globalThis, handle)\n}) as typeof globalThis.clearInterval\n\nglobalThis.setImmediate = ((callback: Function, ...args: any[]) => {\n\tif (asyncSchedulersFrozen) return canceledImmediateHandle()\n\tconst handle = originalMethods.setImmediate.call(\n\t\tglobalThis,\n\t\t(...callbackArgs: any[]) => {\n\t\t\tpendingImmediates.delete(handle)\n\t\t\tcallback(...callbackArgs)\n\t\t},\n\t\t...args\n\t)\n\tpendingImmediates.add(handle)\n\treturn handle\n}) as typeof globalThis.setImmediate\n\nglobalThis.clearImmediate = ((handle?: unknown) => {\n\tpendingImmediates.delete(handle)\n\treturn originalMethods.clearImmediate.call(globalThis, handle)\n}) as typeof globalThis.clearImmediate\n\n// Patch prototype\n// biome-ignore lint/suspicious/noThenProperty: Intentional Promise.prototype patching\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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"}
|
package/dist/debug.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var effects = require('./chunks/effects-oUauWxxl.cjs');
|
|
4
4
|
|
|
5
5
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
6
6
|
const lineageObjects = new WeakSet();
|
|
@@ -48,10 +48,10 @@ function parseStackFrames(stack) {
|
|
|
48
48
|
if (!rawStack)
|
|
49
49
|
return [];
|
|
50
50
|
const lines = rawStack.split('\n');
|
|
51
|
-
const lastLine = lines.findIndex((line) => line.includes(
|
|
51
|
+
const lastLine = lines.findIndex((line) => line.includes(effects.effectMarker.enter));
|
|
52
52
|
if (lastLine !== -1)
|
|
53
53
|
lines.splice(lastLine);
|
|
54
|
-
const firstLine = lines.findLastIndex((line) => line.includes(
|
|
54
|
+
const firstLine = lines.findLastIndex((line) => line.includes(effects.effectMarker.leave));
|
|
55
55
|
if (firstLine !== -1)
|
|
56
56
|
lines.splice(0, firstLine + 1);
|
|
57
57
|
else {
|
|
@@ -134,7 +134,7 @@ function ensureSignature(signature) {
|
|
|
134
134
|
}
|
|
135
135
|
function getLineage(effect, currentStack = new Error()) {
|
|
136
136
|
return ensureSignature({
|
|
137
|
-
effect: effect ??
|
|
137
|
+
effect: effect ?? effects.getActiveEffect(),
|
|
138
138
|
stack: currentStack,
|
|
139
139
|
toString() {
|
|
140
140
|
return formatLineage(this);
|
|
@@ -163,13 +163,13 @@ function digestLineage(lineage) {
|
|
|
163
163
|
let current = currentEffect;
|
|
164
164
|
let lastStack = currentStack;
|
|
165
165
|
while (current) {
|
|
166
|
-
const rootFn =
|
|
166
|
+
const rootFn = effects.getRoot(current);
|
|
167
167
|
segments.push({
|
|
168
168
|
effect: rootFn,
|
|
169
169
|
effectName: rootFn.name || 'anonymous',
|
|
170
170
|
stack: lastStack,
|
|
171
171
|
});
|
|
172
|
-
const node =
|
|
172
|
+
const node = effects.getEffectNode(current);
|
|
173
173
|
const parent = node.parent;
|
|
174
174
|
const creationStack = parseStackFrames(node.creationStack);
|
|
175
175
|
if (parent) {
|
|
@@ -197,7 +197,7 @@ function formatLineage(lineage) {
|
|
|
197
197
|
const segment = segments[i];
|
|
198
198
|
if (i > 0) {
|
|
199
199
|
const triggerEffect = segments[i - 1].effect;
|
|
200
|
-
const triggerName = triggerEffect ?
|
|
200
|
+
const triggerName = triggerEffect ? effects.getRoot(triggerEffect).name || 'anonymous' : 'root';
|
|
201
201
|
result.push(` --- effect: ${triggerName} ---`);
|
|
202
202
|
}
|
|
203
203
|
for (const frame of segment.stack)
|
|
@@ -510,21 +510,21 @@ function renderLineageList(details, colors) {
|
|
|
510
510
|
function formatReasonWithoutChain(reason) {
|
|
511
511
|
switch (reason.type) {
|
|
512
512
|
case 'propChange':
|
|
513
|
-
return
|
|
513
|
+
return effects.formatCleanupReason({ type: 'propChange', triggers: reason.triggers });
|
|
514
514
|
case 'invalidate':
|
|
515
|
-
return
|
|
515
|
+
return effects.formatCleanupReason({ type: 'invalidate', cause: reason.cause });
|
|
516
516
|
case 'stopped':
|
|
517
|
-
return
|
|
517
|
+
return effects.formatCleanupReason(reason.detail ? { type: 'stopped', detail: reason.detail } : { type: 'stopped' });
|
|
518
518
|
case 'external':
|
|
519
|
-
return
|
|
519
|
+
return effects.formatCleanupReason({ type: 'external', detail: reason.detail });
|
|
520
520
|
case 'gc':
|
|
521
|
-
return
|
|
521
|
+
return effects.formatCleanupReason({ type: 'gc' });
|
|
522
522
|
case 'lineage':
|
|
523
|
-
return
|
|
523
|
+
return effects.formatCleanupReason({ type: 'lineage', parent: reason.parent });
|
|
524
524
|
case 'error':
|
|
525
|
-
return
|
|
525
|
+
return effects.formatCleanupReason({ type: 'error', error: reason.error });
|
|
526
526
|
case 'multiple':
|
|
527
|
-
return
|
|
527
|
+
return effects.formatCleanupReason({ type: 'multiple', reasons: reason.reasons });
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
530
|
function logReason(reason, tag) {
|
|
@@ -667,7 +667,7 @@ function showLineagePanel() {
|
|
|
667
667
|
atText: '#999',
|
|
668
668
|
linkText: '#005cc5',
|
|
669
669
|
};
|
|
670
|
-
const state =
|
|
670
|
+
const state = effects.reactive({
|
|
671
671
|
activeLineage: [],
|
|
672
672
|
isVisible: true,
|
|
673
673
|
});
|
|
@@ -731,13 +731,13 @@ function showLineagePanel() {
|
|
|
731
731
|
panel.appendChild(content);
|
|
732
732
|
document.body.appendChild(panel);
|
|
733
733
|
// Reactivity: Update Visibility
|
|
734
|
-
|
|
734
|
+
effects.effect `lineage-panel:visibility`(() => {
|
|
735
735
|
panel.style.opacity = state.isVisible ? '1' : '0';
|
|
736
736
|
panel.style.pointerEvents = state.isVisible ? 'all' : 'none';
|
|
737
737
|
panel.style.transform = state.isVisible ? 'translateY(0)' : 'translateY(20px)';
|
|
738
738
|
});
|
|
739
739
|
// Reactivity: Update Content
|
|
740
|
-
|
|
740
|
+
effects.effect `lineage-panel:content`(() => {
|
|
741
741
|
if (state.activeLineage.length === 0) {
|
|
742
742
|
content.innerHTML = `<div style="color: ${colors.placeholderText}; font-style: italic; text-align: center; margin-top: 20px;">No effect triggered yet...</div>`;
|
|
743
743
|
return;
|
|
@@ -756,7 +756,7 @@ function showLineagePanel() {
|
|
|
756
756
|
marginBottom: '6px',
|
|
757
757
|
color: colors.titleText,
|
|
758
758
|
});
|
|
759
|
-
const effectName = segment.effect ? (
|
|
759
|
+
const effectName = segment.effect ? (effects.getRoot(segment.effect).name || 'anonymous') : 'root';
|
|
760
760
|
title.innerText = i === 0 ? `📍 Current: ${effectName}` : `↖ Effect: ${effectName}`;
|
|
761
761
|
segDiv.appendChild(title);
|
|
762
762
|
segment.stack.forEach(frame => {
|
|
@@ -787,9 +787,9 @@ function getColors() {
|
|
|
787
787
|
};
|
|
788
788
|
}
|
|
789
789
|
function getReactiveTarget(obj) {
|
|
790
|
-
if (!obj || typeof obj !== 'object' || !
|
|
790
|
+
if (!obj || typeof obj !== 'object' || !effects.isReactive(obj))
|
|
791
791
|
return undefined;
|
|
792
|
-
return
|
|
792
|
+
return effects.unwrap(obj);
|
|
793
793
|
}
|
|
794
794
|
const reactiveFormatter = {
|
|
795
795
|
header: (obj) => {
|
|
@@ -818,7 +818,7 @@ const reactiveFormatter = {
|
|
|
818
818
|
* Log an error with detailed context if error logging is enabled
|
|
819
819
|
*/
|
|
820
820
|
function logError(error, context, effect) {
|
|
821
|
-
if (!
|
|
821
|
+
if (!effects.options.introspection?.logErrors)
|
|
822
822
|
return;
|
|
823
823
|
const contextStr = context === 'throw' ? '🔴 Thrown' : '🟡 Caught';
|
|
824
824
|
console.group(`${contextStr} Error: ${error.message}`);
|
|
@@ -844,7 +844,7 @@ const triggerGraph = new Map();
|
|
|
844
844
|
function ensureEffectName(effect) {
|
|
845
845
|
let name = effectNames.get(effect);
|
|
846
846
|
if (!name) {
|
|
847
|
-
const root =
|
|
847
|
+
const root = effects.getRoot(effect);
|
|
848
848
|
name = root?.name?.trim() || `effect_${++effectCounter}`;
|
|
849
849
|
}
|
|
850
850
|
effectNames.set(effect, name);
|
|
@@ -864,7 +864,7 @@ function ensureObjectName(obj) {
|
|
|
864
864
|
}
|
|
865
865
|
function describeProp(obj, prop) {
|
|
866
866
|
const objectName = ensureObjectName(obj);
|
|
867
|
-
if (prop ===
|
|
867
|
+
if (prop === effects.allProps)
|
|
868
868
|
return `${objectName}.*`;
|
|
869
869
|
if (typeof prop === 'symbol')
|
|
870
870
|
return `${objectName}.${prop.description ?? prop.toString()}`;
|
|
@@ -874,7 +874,7 @@ function addEffectToRegistry(effect) {
|
|
|
874
874
|
if (!effect || debugEffectRegistry.has(effect))
|
|
875
875
|
return;
|
|
876
876
|
debugEffectRegistry.add(effect);
|
|
877
|
-
const deps =
|
|
877
|
+
const deps = effects.effectToReactiveObjects.get(effect);
|
|
878
878
|
if (deps) {
|
|
879
879
|
for (const obj of deps) {
|
|
880
880
|
documentObject(obj);
|
|
@@ -890,13 +890,13 @@ function dbRegisterObject(obj) {
|
|
|
890
890
|
debugObjectRegistry.add(obj);
|
|
891
891
|
ensureObjectName(obj);
|
|
892
892
|
}
|
|
893
|
-
function ensureParentChains(effects) {
|
|
894
|
-
const queue = Array.from(effects);
|
|
893
|
+
function ensureParentChains(effects$1) {
|
|
894
|
+
const queue = Array.from(effects$1);
|
|
895
895
|
for (let i = 0; i < queue.length; i++) {
|
|
896
896
|
const effect = queue[i];
|
|
897
|
-
const parent =
|
|
898
|
-
if (parent && !effects.has(parent)) {
|
|
899
|
-
effects.add(parent);
|
|
897
|
+
const parent = effects.getEffectNode(effect).parent;
|
|
898
|
+
if (parent && !effects$1.has(parent)) {
|
|
899
|
+
effects$1.add(parent);
|
|
900
900
|
queue.push(parent);
|
|
901
901
|
}
|
|
902
902
|
}
|
|
@@ -961,7 +961,7 @@ function registerObjectForDebug(obj) {
|
|
|
961
961
|
* @param evolution - The type of change (set/add/del/bunch)
|
|
962
962
|
*/
|
|
963
963
|
function recordTriggerLink(source, target, obj, prop, evolution) {
|
|
964
|
-
if (
|
|
964
|
+
if (effects.options.introspection?.enableHistory) {
|
|
965
965
|
addToMutationHistory(source, target, obj, prop, evolution);
|
|
966
966
|
}
|
|
967
967
|
if (!devtoolsEnabled)
|
|
@@ -1043,14 +1043,14 @@ function buildEffectNodes(allEffects) {
|
|
|
1043
1043
|
const cached = depthCache.get(effect);
|
|
1044
1044
|
if (cached !== undefined)
|
|
1045
1045
|
return cached;
|
|
1046
|
-
const parent =
|
|
1046
|
+
const parent = effects.getEffectNode(effect).parent;
|
|
1047
1047
|
const depth = computeDepth(parent) + (parent ? 1 : 0);
|
|
1048
1048
|
depthCache.set(effect, depth);
|
|
1049
1049
|
return depth;
|
|
1050
1050
|
};
|
|
1051
1051
|
for (const [effect, node] of nodeByEffect) {
|
|
1052
1052
|
node.depth = computeDepth(effect);
|
|
1053
|
-
const parent =
|
|
1053
|
+
const parent = effects.getEffectNode(effect).parent;
|
|
1054
1054
|
if (parent) {
|
|
1055
1055
|
const parentNode = nodeByEffect.get(parent);
|
|
1056
1056
|
if (parentNode) {
|
|
@@ -1092,7 +1092,7 @@ function buildReactivityGraph() {
|
|
|
1092
1092
|
const effectId = nodeIds.get(effect);
|
|
1093
1093
|
if (!effectId)
|
|
1094
1094
|
continue;
|
|
1095
|
-
const deps =
|
|
1095
|
+
const deps = effects.effectToReactiveObjects.get(effect);
|
|
1096
1096
|
if (!deps)
|
|
1097
1097
|
continue;
|
|
1098
1098
|
for (const obj of deps) {
|
|
@@ -1155,8 +1155,8 @@ function enableDevTools() {
|
|
|
1155
1155
|
if (devtoolsEnabled)
|
|
1156
1156
|
return;
|
|
1157
1157
|
devtoolsEnabled = true;
|
|
1158
|
-
if (
|
|
1159
|
-
|
|
1158
|
+
if (effects.options.introspection) {
|
|
1159
|
+
effects.options.introspection.logErrors = true;
|
|
1160
1160
|
}
|
|
1161
1161
|
globalScope.__MUTTS_DEBUG__ = {
|
|
1162
1162
|
getGraph: buildReactivityGraph,
|
|
@@ -1184,10 +1184,10 @@ function enableDevTools() {
|
|
|
1184
1184
|
* @type {() => import('../src/reactive/types').CleanupReason | undefined}
|
|
1185
1185
|
*/
|
|
1186
1186
|
get reason() {
|
|
1187
|
-
const activeEffect =
|
|
1187
|
+
const activeEffect = effects.getActiveEffect();
|
|
1188
1188
|
if (!activeEffect)
|
|
1189
1189
|
return undefined;
|
|
1190
|
-
const node =
|
|
1190
|
+
const node = effects.getEffectNode(activeEffect);
|
|
1191
1191
|
return node?.currentReason;
|
|
1192
1192
|
},
|
|
1193
1193
|
};
|
|
@@ -1196,7 +1196,7 @@ function enableDevTools() {
|
|
|
1196
1196
|
globalScope.devtoolsFormatters.push(lineageFormatter, reasonFormatter, reactiveFormatter);
|
|
1197
1197
|
else
|
|
1198
1198
|
globalScope.devtoolsFormatters = [lineageFormatter, reasonFormatter, reactiveFormatter];
|
|
1199
|
-
|
|
1199
|
+
effects.setDebugHooks({
|
|
1200
1200
|
isDevtoolsEnabled: () => devtoolsEnabled,
|
|
1201
1201
|
registerEffect: registerEffectForDebug,
|
|
1202
1202
|
getTriggerChain: getTriggerChain,
|
|
@@ -1221,7 +1221,7 @@ function enableDevTools() {
|
|
|
1221
1221
|
},
|
|
1222
1222
|
recordTriggerLink: recordTriggerLink,
|
|
1223
1223
|
decorateError: (error, trigger) => {
|
|
1224
|
-
if (
|
|
1224
|
+
if (effects.options.introspection?.logErrors &&
|
|
1225
1225
|
error &&
|
|
1226
1226
|
typeof error === 'object' &&
|
|
1227
1227
|
'stack' in error &&
|
|
@@ -1230,8 +1230,8 @@ function enableDevTools() {
|
|
|
1230
1230
|
}
|
|
1231
1231
|
},
|
|
1232
1232
|
});
|
|
1233
|
-
const originalWarn =
|
|
1234
|
-
|
|
1233
|
+
const originalWarn = effects.options.warn;
|
|
1234
|
+
effects.options.warn = (...args) => {
|
|
1235
1235
|
const lineage = captureLineage();
|
|
1236
1236
|
originalWarn(...args, lineage);
|
|
1237
1237
|
};
|
|
@@ -1288,7 +1288,7 @@ function getDependents(obj) {
|
|
|
1288
1288
|
* Returns a list of objects that the given effect depends on.
|
|
1289
1289
|
*/
|
|
1290
1290
|
function getDependencies(effect) {
|
|
1291
|
-
const deps =
|
|
1291
|
+
const deps = effects.effectToReactiveObjects.get(effect);
|
|
1292
1292
|
return deps ? Array.from(deps) : [];
|
|
1293
1293
|
}
|
|
1294
1294
|
const mutationHistory = [];
|
|
@@ -1304,7 +1304,7 @@ function addToMutationHistory(source, target, obj, prop, evolution) {
|
|
|
1304
1304
|
type: evolution.type,
|
|
1305
1305
|
};
|
|
1306
1306
|
mutationHistory.push(record);
|
|
1307
|
-
if (mutationHistory.length > (
|
|
1307
|
+
if (mutationHistory.length > (effects.options.introspection?.historySize ?? 50)) {
|
|
1308
1308
|
mutationHistory.shift();
|
|
1309
1309
|
}
|
|
1310
1310
|
}
|
|
@@ -1348,7 +1348,7 @@ function isDevelopmentMode() {
|
|
|
1348
1348
|
}
|
|
1349
1349
|
// Auto-enable devtools when the module loads in development
|
|
1350
1350
|
if (isDevelopmentMode() && !devtoolsEnabled) {
|
|
1351
|
-
Object.assign(
|
|
1351
|
+
Object.assign(effects.options, effects.devPreset);
|
|
1352
1352
|
enableDevTools();
|
|
1353
1353
|
// Optional: Log that devtools were enabled (only in development)
|
|
1354
1354
|
if (typeof console !== 'undefined' && console.info) {
|