{"version":3,"file":"root-B1uuIGIw.cjs","sources":["../../soby/dist/objects/root.js","../../soby/dist/methods/root.js"],"sourcesContent":["/* IMPORT */\nimport { OWNER } from './superroot.js';\nimport { lazySetAdd, lazySetDelete } from '../lazy.js';\nimport Owner from './owner.js';\nimport { SYMBOL_SUSPENSE } from '../symbols.js';\nimport { Stack } from '../methods/debugger.js';\n/* MAIN */\nclass Root extends Owner {\n    /* CONSTRUCTOR */\n    constructor(register) {\n        super();\n        /* VARIABLES */\n        this.parent = OWNER;\n        this.context = OWNER.context;\n        if (register) {\n            const suspense = this.get(SYMBOL_SUSPENSE);\n            if (suspense) {\n                this.registered = true;\n                lazySetAdd(this.parent, 'roots', this);\n            }\n        }\n    }\n    /* API */\n    dispose(deep) {\n        if (this.registered) {\n            lazySetDelete(this.parent, 'roots', this);\n        }\n        super.dispose(deep);\n    }\n    wrap(fn, owner, observer, stack) {\n        const dispose = (disposeStack) => this.dispose(true);\n        // Create a wrapper that accepts the stack parameter from Owner.wrap and passes both stack and dispose to the original function\n        const wrapper = (callStack) => fn(callStack, dispose);\n        return super.wrap(wrapper, this, undefined, stack);\n    }\n}\n/* EXPORT */\nexport default Root;\n","/* IMPORT */\nimport Root from '../objects/root.js';\nimport { callStack } from './debugger.js';\n/* MAIN */\nconst root = (fn) => {\n    const stack = callStack();\n    return new Root(true).wrap(fn, undefined, undefined, stack);\n};\n/* EXPORT */\nexport default root;\n"],"names":["Owner","OWNER","SYMBOL_SUSPENSE","lazySetAdd","lazySetDelete","callStack"],"mappings":";;AAOA,MAAM,aAAaA,QAAAA,MAAM;AAAA;AAAA,EAErB,YAAY,UAAU;AAClB,UAAK;AAEL,SAAK,SAASC,QAAAA;AACd,SAAK,UAAUA,QAAAA,MAAM;AACrB,QAAI,UAAU;AACV,YAAM,WAAW,KAAK,IAAIC,uBAAe;AACzC,UAAI,UAAU;AACV,aAAK,aAAa;AAClBC,gBAAAA,WAAW,KAAK,QAAQ,SAAS,IAAI;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA,EAEA,QAAQ,MAAM;AACV,QAAI,KAAK,YAAY;AACjBC,cAAAA,cAAc,KAAK,QAAQ,SAAS,IAAI;AAAA,IAC5C;AACA,UAAM,QAAQ,IAAI;AAAA,EACtB;AAAA,EACA,KAAK,IAAI,OAAO,UAAU,OAAO;AAC7B,UAAM,UAAU,CAAC,iBAAiB,KAAK,QAAQ,IAAI;AAEnD,UAAM,UAAU,CAAC,cAAc,GAAG,WAAW,OAAO;AACpD,WAAO,MAAM,KAAK,SAAS,MAAM,QAAW,KAAK;AAAA,EACrD;AACJ;AC/BK,MAAC,OAAO,CAAC,OAAO;AACjB,QAAM,QAAQC,QAAAA,UAAS;AACvB,SAAO,IAAI,KAAK,IAAI,EAAE,KAAK,IAAI,QAAW,QAAW,KAAK;AAC9D;;;"}