{"_id":"@asaidimu/utils-store","_rev":"62-59bee995574511866cafeabaa44c4566","name":"@asaidimu/utils-store","dist-tags":{"latest":"11.0.2"},"versions":{"1.0.0":{"name":"@asaidimu/utils-store","version":"1.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@1.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"13054c3999f8bbed70e36c24580854c1e039374a","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-1.0.0.tgz","fileCount":7,"integrity":"sha512-/PRnMaxj5kJ48HP6EsKQpZLB+y0II7Z2sBFCc5LQjO3gd2VsbJ3xIzZLMrCxQmn6/F6+K5krZQ6yXjbJQBgs6g==","signatures":[{"sig":"MEQCIBqnqRj+hi6/R61FIAe6nPqOlw8/a8Rgtxrbjp0TghRnAiBgwP86tUvsmWxAglTRHKtvydURbhlg1pnvGpUmtk2WCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142890},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"9683e1aa9af8065fb4d11294e5c1c594251af439","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"../../dist/store"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"^0.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_1.0.0_1749238042595_0.7385988214216508","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@asaidimu/utils-store","version":"2.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"6d50133088ac473470a9687a0e4d3cc9f96e7d61","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.0.0.tgz","fileCount":2,"integrity":"sha512-xWazwa9ttk5qP6t+sSIhZqPcbm22mM+scM8i+OZxtPftA6qW9KWF0L4draIJCvtzrPlWp0OFmyh17cvxeITFjw==","signatures":[{"sig":"MEUCIAVwQ8U2w7IA25kismIU8JrJsaUggkfXrrQZE8sR90TJAiEAvIy154nyz3vm9wClHqOXZF7/uACmXMuBRAtKCe2wZbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47807},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"867997afa39bec7567087773f59e1ebb90c6c1d8","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"."}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.0.0_1749243197430_0.02140150843264621","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@asaidimu/utils-store","version":"2.0.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.0.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"b38a17a5855e1e96840d7b7e6c92fc11f978f53d","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.0.1.tgz","fileCount":7,"integrity":"sha512-MFZYiE+3XMScMbK8xvp9lilLozr8+I9yjAyb0fAUMBygRy99LUWhvfOkh8JkPNvOmiXnehNv0YFe0buKKLNVKQ==","signatures":[{"sig":"MEQCIECopVe3TKXPQfKS0M812e7zG7h9Td3+oL6QKwPHA9jIAiB0RdBP8ra0S1QtdIsUzaqATmQC0ZVLqq/riiEbfVb9HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151032},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"a431caca9f09759b27ae4fbdde95073d87673051","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.0.1_1749281374689_0.5525495427520632","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@asaidimu/utils-store","version":"2.0.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.0.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"6668cf4a34578ec2b786f04c4790b162f04a9d15","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.0.2.tgz","fileCount":7,"integrity":"sha512-RaCUkfwGEtEkNk2DtYk0E+aOD9E0iD3CXyUbpinvwx9Cj5Ee+0vx+liC4WNHz73nGFv8pGkcuiyDYZjpGd5M0g==","signatures":[{"sig":"MEUCIQD7WYgCy0lj+EZWWr1y4K9X4TNRyPuc3599JaDejgxztAIgXD7bQAHqF8Ts0IiLt3YAhizzqMThkeHYIPEcW+QA3n8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151634},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"cd77cc41840002d5c34898ee22ac3f5884e6434a","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.0.2_1749282194672_0.44959748100740504","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@asaidimu/utils-store","version":"2.0.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.0.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"9ba3c6f620cc902ce9b6e87797e3323bc924f89e","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.0.3.tgz","fileCount":7,"integrity":"sha512-BiNqcGWCMsFY44LL6jcAQ3F3BNTPJwLzWDaHmRz3efPk1p15zq22JUxGvvJT7RkqGQDTLqaAHRO81bsESWDE+g==","signatures":[{"sig":"MEYCIQDZTXYwitbvY0EtP7LRjOes7FfxQ+Uql2X0P3Qp+VUTmgIhAPalUnNAfbr4+1uUR31Hq8/8GkSXOu6bSBZt5p51u36J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151657},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"7a5a0e48042dc032bf5fae815e0147ed6680153a","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.0.3_1749282956629_0.9580204876677894","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@asaidimu/utils-store","version":"2.0.4","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.0.4","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"f4c30125ef36db3d8fd6beda39d1776dc24688c8","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.0.4.tgz","fileCount":7,"integrity":"sha512-LI+4ZlZaQEHCOgUyOaKv/dwWMpH0YNvCopYtwqIscsetmeqOzOeKEzQMUxXLTM2tZY2UqLJs75nBw3R9viyrgQ==","signatures":[{"sig":"MEUCIEtrDztd1zakVzPiRRASd9VsHpDOPd0kJWCg7Nv2kw1oAiEAjsVncqs7TDLMX9kRRxJ8op8AA/PiqmdTeHeqaK4LP+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105738},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"0f0dd941766a462b8bad06af22568082a015b6e5","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.0.4_1749285828428_0.0877743967007738","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@asaidimu/utils-store","version":"2.1.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.1.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"d548f78150bc7ca40e9c9d99c2b7e97fdd93307b","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.1.0.tgz","fileCount":7,"integrity":"sha512-fTUED2wQ93t7YYOIp8U4u1WHTfqy1gDvTVviCpVXK5XkOpoUh2eBUzV0TgUzMwcao6CHT/UsJLvOsSvisvrzVA==","signatures":[{"sig":"MEUCIQCq0dLk4fZSWIZExdeRh4LBBuPw8fxw6uR2G3X0QTRqqgIgedoBa5zRY2C+eB1Jlql+E1FCuhg9g+xkqbkncQXvMRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113996},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"019f30b917b12d61b8f51ff849b2c239b87e5e76","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.1.0_1749293684219_0.4144916403366785","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@asaidimu/utils-store","version":"2.1.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.1.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"dc88de7f83b8c86fa889b22a70b2b44f0af8284d","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.1.1.tgz","fileCount":7,"integrity":"sha512-V64V+91rL75GpYOdDH1e+6ZYuvZY9O06b8Du02UW6v6uHlMLxPQQP/y08KFJyxUR4Ide+O1GHSQE+w7McA4ChA==","signatures":[{"sig":"MEYCIQDkHOD+Atf6oeoQ9wGco+yAznXF6niVXbk//hNYVwaCJwIhAKEBdPeSl8a25qHKOTqGAknAa9j0B88wP44/PmESrJAP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113996},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"25a9ec98e150fd0599a0c8dcb9d68893b58356e2","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.1.1_1749297594033_0.25427894831615316","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@asaidimu/utils-store","version":"2.1.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.1.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"f1690f00835355209a232d2937bd50dd09136180","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.1.2.tgz","fileCount":7,"integrity":"sha512-orphN42JuHoHCrwmSQC7WCGfipPbqP/ootO9saFFIX9jNqVb2YyXEnJB+fgd9hwCCQhIfmo6SCwajhM8PBik9g==","signatures":[{"sig":"MEUCIQCrmf1p1bQfuVUyGffUpBZfzAeCtuKL9n1znOLxE2XLogIgcsMx2o7z6CuXzrM7tTCLX6BzODUvJ1C7M5eqhEokymc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113996},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"e9735e42f783c12d724097ed9f54b5628cd24ac2","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.1.2_1749298005332_0.5144524829141328","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@asaidimu/utils-store","version":"2.1.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.1.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"ef5e1b1e030525a8082e8525d54367ca1bf3ebcf","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.1.3.tgz","fileCount":7,"integrity":"sha512-6kut8iD6+gIzPf8DPFAnMwOzjGJ1T0FPhNXtbgelKjEwu4723ma0hVpjClevaD30VGJBad7fuUwtr31HHHD8iQ==","signatures":[{"sig":"MEQCIFMFiPfA7zwewfQ8KRxBfymowbhDXTt1J3LS3swLLeTBAiAqliFFJjyoHo25u7303Um11C197Zk3eplnfz9k/CQv9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113997},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"ca27a30b12e236f3836dd8ae7f920c7bb883b94f","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"^2.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.1.3_1749298771884_0.8969479340817053","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@asaidimu/utils-store","version":"2.2.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.2.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"34fd2b61f6cf8522f8e59c235d737ecca623548e","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.2.0.tgz","fileCount":7,"integrity":"sha512-7x2JPIaQEqFWTN7d+gHNtMxXQoNAUlR5m/v+g7rBooAz2X/DS/p0B4TPmJ16j2Y0tADBx07nQi8FARp6t5Uh0A==","signatures":[{"sig":"MEUCIDZh4DGS/vbvcrzcid0nD5m6nOCSiVqusCe7RmJLAHTZAiEAtJhoWHFBExdEsv5s85FasU9GlXa+yeP4SZlRWbcTJTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137764},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"574038596d79ef8d06d3c47b53de3cbec3980751","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.0.4"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.2.0_1757663478056_0.387549441495449","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@asaidimu/utils-store","version":"2.3.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.3.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"55807386731e24ffcd151bd203c315bf951196d9","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.3.0.tgz","fileCount":7,"integrity":"sha512-eQd8/HVJkYY3V4bhaM7kkED7h9R5MbonK4s6NTcIUcIqal0xngis7gvSv9M9AbQDvpE9n1oua5YhP6OcEOgWzg==","signatures":[{"sig":"MEQCIC+32e2Gjw05R6K8nq+Y2MQQWu2jUq7y5VnpULKnyyAsAiAWW3mcKKqY8GASekn1ox2ySS8f/l+MnNbw1Q8VvTreuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138074},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"25206829657e4eb69692c5e050533e619e3ff938","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.3.0_1758101263287_0.6695914256339635","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@asaidimu/utils-store","version":"2.3.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.3.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"336788fc1d13bfb43c48397885debc765494453e","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.3.1.tgz","fileCount":7,"integrity":"sha512-6Uhuii8VGjgySwojWzF5F+jutA8iYddJo8flaq8WOp2vB1Y/plS17Rc15OiXRaaoKW2JMj3pjVm6hMbGOar0Gg==","signatures":[{"sig":"MEYCIQCMYhleZgKXf7Vaf3DfDfd1EqmIc3zfKl7GZQD++PlvkAIhAPb6GNqSm3UrjSoTTVi6olBa98cdd8NXIgtcrSrao+sx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138074},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"d5bacef2ad6d55d8d213e19715425e3d2f1b4586","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.3.1_1758284668584_0.23377672402588145","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@asaidimu/utils-store","version":"2.3.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.3.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"c23c22f3cdeeeb83becf6200682b92618a8e9a6d","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.3.2.tgz","fileCount":7,"integrity":"sha512-4ro9GlK3ajeP9BUIRCxHRifZwtEzlqqpFWpYLyy3WhVbrtlui5MrwN0a4m8PdgFb1H/2Jn2DNBCQ3WOBvLSZqw==","signatures":[{"sig":"MEYCIQC6p8lge5//84P80xlTesd9o4xGsWq4O95RA7C2626FewIhAJ4Xqcyk9GoA+YqjItpVMGdCzywwYN4Qs1UxkgiPGebi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96187},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"77104777bd6bfa76f37fae89e8f2e8cc1c32bbca","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.2.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.3.2_1758622926168_0.004355861614018686","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@asaidimu/utils-store","version":"2.3.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@2.3.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"18df8079cc16ca18276200d60184ac64bacfd5fa","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-2.3.3.tgz","fileCount":7,"integrity":"sha512-F49dFfH13zw/FA/9Rmb/6+xkeY82j3JrM0KPRh6SkNK37ZYfmiUHa40/xAflzuW8jBSYC7zHslPiv9nC88AAbw==","signatures":[{"sig":"MEUCIDwFjSF6JM3M/BDCG8cawxtBUWvBtmUr91bpsvnpykbcAiEAxitVimcwsOLm4XUpOPjqQvlM0+9ADH7GY9CL/fQBXpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144122},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"5ae40b11b7ce5a888d75f74ec581c5a7083e49c7","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.1","@asaidimu/utils-persistence":"2.2.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_2.3.3_1758626903705_0.6429498073033375","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@asaidimu/utils-store","version":"4.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@4.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"f8c1a282ded866ffdb5713e8b4dec1090a31616c","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-4.0.0.tgz","fileCount":7,"integrity":"sha512-e9Stz1spK5rXWkM2WITi33Yo/geT4jvAyyZ6yXtbWTUVVZ6rr3kUedSGoq9pNX7wJvbBowJgPGTrhT7n2xQFZg==","signatures":[{"sig":"MEYCIQDOTaywfRqV82OC+DiOaQuNO/GdW4/kPXzNkC0tO5OMLgIhAKu26p0+M1ulVbh9RepIdmzhrf3HymRLy3YNJKm/wRJj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":298909},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"e5ff69901737e9fabc5a356106ee3e117ae7f7c3","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"11.4.2","description":"A reactive data store","directories":{},"_nodeVersion":"24.4.1","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_4.0.0_1763743238613_0.3658569007070058","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@asaidimu/utils-store","version":"5.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@5.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"3c8ae134f955e38f0244d96b7526f1505826b0b6","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-5.0.0.tgz","fileCount":7,"integrity":"sha512-Ohm3DtLmodqE1VRqqK9n+rVisxC3/Lvx37umdaiEwPjsSsO+RPV9ZJ/oCNHbBCCmxbHm++ewTrMMALvsODHYIA==","signatures":[{"sig":"MEYCIQCTjfj6jEfP5A2SSf3RIXM08o1a29nfqXYy7VMZbjQy+gIhAL0LtoZg9SHBwypxZ6peT98JhXd3O3RPhhbEnoyjEqSe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240414},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"627f8b4b4e0b5adc814a812e15a28e70f927edc2","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_5.0.0_1763997029191_0.9802327149566861","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@asaidimu/utils-store","version":"6.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@6.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"9caadd58b2e3eec283e3e0f0e340222270ba2f87","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-6.0.0.tgz","fileCount":7,"integrity":"sha512-N5Tnl5J/yR+sfChmuKyOO2wiUBeKlHPX5mkKaum71EYJg0/pxNXge8AtjNd5cDPATBW9j8WBqkFh9wRrxX4Gwg==","signatures":[{"sig":"MEYCIQDj1HS12hrlSqE30TCDkQcj34cNOj29zmew8j0Hze5orwIhAOSjtQ7e1PWNqtxXDayTn0bEOzz06qXsPwxE4+oEEbrX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":269971},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"7758cafe8997444442b48a5d83225e12eabf9c6b","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_6.0.0_1764260108205_0.3856701549206978","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@asaidimu/utils-store","version":"7.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@7.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"79a15118a7910792587258c1fff1de35240f63a8","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-7.0.0.tgz","fileCount":7,"integrity":"sha512-rLJdwyUwFidIjfQMnc1bEF3aRnJ3wicziax10JoLisUEzytT6ctQ5Lj5iPyogOUIcbAVqoKl5Ogu8ugnisFGdQ==","signatures":[{"sig":"MEYCIQD3MERIugMl/MjLzyr6wj9fXtIDlHwf62KqZ767zgJh9wIhANxuBmr4GV+M07p3xw8W1pONHwS/L0n5NjBguNcS1jQa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204075},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"4f49363b55e2c77fe1350fa358a7f0971f661316","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.5","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_7.0.0_1764287722094_0.6511752403022708","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@asaidimu/utils-store","version":"7.0.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@7.0.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"d9a5c934e335bf48ec5b42200a4f155da7146bf9","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-7.0.1.tgz","fileCount":7,"integrity":"sha512-jhS29DQyPCqMG4eQhkJi70pKd5zamRvvZJaQDBKwOMRdr8kbe/+q+VpctNHZ4LJptTim+FvS1R1wkOjZ7PAd/Q==","signatures":[{"sig":"MEUCIGS6LvKtC2DpyhkuEbnicy9gvsJFEPxFa3MtEqqgu9SSAiEApP3+XxETxnCugAtvHOqSV/b7u37YM+PopM7pPrxLSDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224995},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"aea8a1561514353cde3b9a6f668f0fc718ac325c","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_7.0.1_1764927840393_0.9268082220194451","host":"s3://npm-registry-packages-npm-production"}},"7.0.2":{"name":"@asaidimu/utils-store","version":"7.0.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@7.0.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2c84788d8dbe0a992c3720f6f94c9de6998002bf","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-7.0.2.tgz","fileCount":7,"integrity":"sha512-AcpeCPPhGQ+x+ndjcYoZIYxCSd3fy3ZME2z8KuAoDZJg7+P6AQQ6qzoRrJwbLeXyb3puM7r2hNG+rwFogX+4gQ==","signatures":[{"sig":"MEYCIQDeIAwClkBRcD006yjucvEVOo4Dax8es6kilKPfOPJsXQIhAPMSNRcrDqFY4f7VKlEzYwx0A0zNwey8MBnWIP+2pTRv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224995},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"510a8971f7062fdee202615e9883df76bc935df7","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"2.2.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_7.0.2_1767043079109_0.17346141452093566","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@asaidimu/utils-store","version":"8.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@8.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"7c095fd7b32c593611a7f13a654ccf1490348b7a","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-8.0.0.tgz","fileCount":7,"integrity":"sha512-Qg4+lU1bAMMFxIQRedGfX7mbImQ1kY6cNYpWtltUDFUl3SOsESDJJMuIxV4vtA5o8dIhfeNBTt3p4mg71l3ZpQ==","signatures":[{"sig":"MEQCIGXfEcCP4QAajJxFDlWr+7m/flQKbg5aBWZC4VZ3CsAaAiBObtoF8KqELP5I6nmkTEfvkgjJ055HmGIKrCSe+jo5Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223193},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"976eef90d4585c9444e5e3efff68d2500034e713","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.0","dependencies":{"uuid":"^11.1.0","@asaidimu/events":"^1.1.2","@asaidimu/utils-persistence":"3.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_8.0.0_1773069073590_0.256449329244943","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@asaidimu/utils-store","version":"9.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@9.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"cba1d9976899e97731525b66a061b1b7ed5f1e36","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-9.0.0.tgz","fileCount":7,"integrity":"sha512-N032ZLmomt5Jr1xSG1d+8X2an33YWBH7B/OUJpWfiJZLAhjjOOsUjW62lm4C5gVrUiuw6dtRwPPrikyj8LaW3A==","signatures":[{"sig":"MEQCICspe/Y+73Im1l1bPTL2MccTLxE7AmpQgrreGfFQDMyhAiBP9vbhbsggveg+nqKaHb7x+ulna2RvyE1fYFiLYL+YTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244119},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"3384a1770de12dd5769efb8355a21e677c8059b3","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"4.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_9.0.0_1776765640934_0.5230089723246008","host":"s3://npm-registry-packages-npm-production"}},"9.0.1":{"name":"@asaidimu/utils-store","version":"9.0.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@9.0.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"7c3fee877dca3723a71e3358ce474753c0b3cca2","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-9.0.1.tgz","fileCount":7,"integrity":"sha512-ec+04LC3m2qP3Cvp1IEfLy2C0BQl4X4Sa3ZnfIixZ1KUFCNrxnGCvul8NsQdFB0LKRBrLhpU1ZYbz5ztwJZx8g==","signatures":[{"sig":"MEQCICNEpUB6P/zsDMuD4+LbIEBfhTva3q4UE0Ew0KdGTy+JAiBUdCA5ke//XvKJVtuuYio1PwzoQHuONJWEwny/592VkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244921},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"856a15fd2d97ccf9c8cf4f2db60d3d89918b75ce","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"5.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_9.0.1_1776769789492_0.39481313928525363","host":"s3://npm-registry-packages-npm-production"}},"9.0.2":{"name":"@asaidimu/utils-store","version":"9.0.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@9.0.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"7c7214f2d2f0f750ae50375022b9baea2bb8d21d","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-9.0.2.tgz","fileCount":7,"integrity":"sha512-yLjWeQu5THSOR7f5c+wq6RcmzeA+wXozH5FAbwA0cuJmcn1GCarc/TtxRFSfNVCMO+AAW2ICGgc5oKI2AJ/qjw==","signatures":[{"sig":"MEUCIQC2CahQzywe2fzI162G/JJbZ2PIriOuWKikd+oC58Tc3gIgYx5ZRqziLRMsxjFovJxgdGYFMCAZeoq9PlTpgqy2E1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241511},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"924ebd159882e71537c216f4287a128da2da9bf9","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"5.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_9.0.2_1776875354838_0.2404755239615579","host":"s3://npm-registry-packages-npm-production"}},"9.0.3":{"name":"@asaidimu/utils-store","version":"9.0.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@9.0.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2a414af1ac4c36f5d4b3541b69f5c94b232214b3","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-9.0.3.tgz","fileCount":7,"integrity":"sha512-QgY0PhzZBhJhe5HU5ryERjD2zGDWOhJSgnBr1x1Zjjqiviz2QK2OfQ62AqENfjLUrlNhzVAvHPJaOVZVQ/ixhw==","signatures":[{"sig":"MEQCIF54rHGUKtHOf9xXt8OYqwNnIW1kzBwc9/TcOCnxnC7/AiB5cY/1wC7VxFDKuKTCuaW5/RQbz8OHqqA7BcHFu4AGjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242218},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"6e072f721bdfefe1aa086b160f180e5404a4cb29","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"5.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_9.0.3_1776929517454_0.7355126621314312","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@asaidimu/utils-store","version":"10.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"3666ad2d2c75a4c36c8ce7ae002b822eaef3a942","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.0.0.tgz","fileCount":7,"integrity":"sha512-ZaU5vkRdQBYTtSJxNvk6GFVSILpy9DQnANT8s0Zjtb3I5AED6V0EkyBGVEj1sBrdYTeLzijPe6JHjVZhYdZ6GQ==","signatures":[{"sig":"MEQCIGYn82PrmUDWOuC1KUdh+InFo3wg92Vz/e1st2/6Wu2MAiBTjc3hnhTFdhYewXh1QL9OGhCWx7HmTZC9i6YDmijH0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242071},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"98f5009a458ef74f048b8b35fcf04d1a14085bd8","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"5.0.2"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.0.0_1777907968682_0.39362383093002973","host":"s3://npm-registry-packages-npm-production"}},"10.1.0":{"name":"@asaidimu/utils-store","version":"10.1.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"875386ca22c04fe52f669a2d9f28435c4a2863e7","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.0.tgz","fileCount":7,"integrity":"sha512-NQGmYG8Xz2JmxwDGu7kRg3C/+mZC0V44AjIwF96Pher9K2OGwUhiiUf+H71g+UxPXZrN7RDVZ3+AUWgoGRZ9Bg==","signatures":[{"sig":"MEUCIQD0d2ncB39+aa0+TvFv/+ffsCKfZd7SppzHkZ4/mzk0xwIge9NKjt4ODBgqOZjW1+afU0E+iAlmGirnCM1VmBoyo7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242071},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"08294d6a2270fc6b276c3a5a1681c951668c939b","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-persistence":"6.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.0_1778141800901_0.10606352198976543","host":"s3://npm-registry-packages-npm-production"}},"10.1.1":{"name":"@asaidimu/utils-store","version":"10.1.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"0628fc3eded0f306c0438fe2548c385b74b70a81","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.1.tgz","fileCount":7,"integrity":"sha512-TLJ3RxtSzA+OclZt7U0EAKqqIcWP3PQbPYBm+WNq19/iD8LKDdNKlXa14Opzn4lRgRsWejre4ojAyQfzA1Ww7g==","signatures":[{"sig":"MEUCIQDbSsPDSH5XqKh2pkKtAK9owBC85SNJIACtV6U9ktSP/QIgSN7O6FW6n0W+Iae4ftyGXox4uRcQOKSJVAEO+WLPJQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234259},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"37ea0ae0b99dd09a87d393752b59bf59219e5e6f","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@asaidimu/utils-persistence":"6.1.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.1_1778147478082_0.992524361204814","host":"s3://npm-registry-packages-npm-production"}},"10.1.2":{"name":"@asaidimu/utils-store","version":"10.1.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"5d3fdd7d2ce58f471bcdc7cbcda96b717762f0e3","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.2.tgz","fileCount":7,"integrity":"sha512-oAL8aecWBnVokaEvLssoOcL6nSLKfbAWbDMKyWekiIc2qGAdB5x+ZhBuplyg+QunhN5r8zmjlsy2tFMgKkcy3w==","signatures":[{"sig":"MEYCIQCxMes6Iw6lXpMmEJEoamSuEHnDjuulAq5WKbJ6U5O2zQIhAMA99SyGZBE63JXvJMJHV82fJEPvEfEgQ9sYI1FnB2dp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242620},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"65f3d5fb088e98745069e721e77d768c42d6d1e4","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"1.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@asaidimu/utils-persistence":"6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.2_1778153513426_0.37103013566049237","host":"s3://npm-registry-packages-npm-production"}},"10.1.3":{"name":"@asaidimu/utils-store","version":"10.1.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"3a2c90aedc2656cce0b11ca26bff883e2c9a6db5","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.3.tgz","fileCount":7,"integrity":"sha512-ATxaTGTmH0+EydFaND/swEzs6EeSkQ+sOY7pyYHJ/EUxW7TurMObaZxfY/DtEiqPt8zXXEzUmf6gnVbjWCv/Vw==","signatures":[{"sig":"MEUCIQDgU2qXBysitC/S7602VI+ivrRp8zb0Wx0VcfgDe/g2xAIgZQRiYLBfVHW9vO83DGTNtVi3yQfMGH62CwRNKFQBpts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253349},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"cec8ea55083d980a5f9d1ef14175ac5e4f18b082","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@asaidimu/utils-persistence":"6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.3_1778232102223_0.6762609239404596","host":"s3://npm-registry-packages-npm-production"}},"10.1.4":{"name":"@asaidimu/utils-store","version":"10.1.4","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.4","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"67b03a9e1c518e421cbd5f1b4b46215346293e09","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.4.tgz","fileCount":7,"integrity":"sha512-j+ZuzoWUwELptyU/SJLLkeYu6pb6kQwLlQdTUsnl610q2i/SZv+j/XBP6TLnJ/a5bhYCz3AQSxZNQgCl9fXL/A==","signatures":[{"sig":"MEUCIQDetpvgW12VVL0VWx2+cFfOzdQfQnmjD8K4/4h0CTaJaAIgaOQG5jwT2DlMq8ZqMNVQIxsEcB66sq1lhVjMKDM86SU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253277},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"566804aa72bcacd7f63509d292369b20e8d22917","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.4_1778235730092_0.44254517956725614","host":"s3://npm-registry-packages-npm-production"}},"10.1.5":{"name":"@asaidimu/utils-store","version":"10.1.5","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.5","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"96ced6825da26a2f73f5984995e68dc9744bfd62","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.5.tgz","fileCount":7,"integrity":"sha512-5Sjhnp33jbAnekijU7dRu5vBotOg1OaZr/kpXZUSm4xFJlc25k9MW1ausqW2SO5IyhvkE33n+q8vqLDDcahBeg==","signatures":[{"sig":"MEYCIQCvSo+Om3eAHCpwKl6sQs9LnrGpfBdKNKrv1TTpq2nWnAIhANDSnZSuXa76lxqJgViXFYvpijApbGQD3Dn8mTO5LUjU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253276},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"f467345efbce90bafa899f526e608d5b927efbb5","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"1.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.5_1778240325216_0.7098060204642758","host":"s3://npm-registry-packages-npm-production"}},"10.1.6":{"name":"@asaidimu/utils-store","version":"10.1.6","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.6","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"cbbb4472aacb393a9d3cb9b523d9e497c2239c46","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.6.tgz","fileCount":7,"integrity":"sha512-MB64OLYFIzDDT8onplmFIPaRoBV/++J0dMWT56h03WFTbST2RLVA1jRRFz4s1hmPU1U6M0Fh3AGpQqHMxrQxvg==","signatures":[{"sig":"MEUCIQCIKnkFpJ2LL6U6CaknFqCc4MVJQtaDIpZIeyUM9gjLQwIgPCCTYfxtghdNVQAfS8a5AIPmyeVP9LiX6a2RyRx3qiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253276},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"f3e8579344fd659a19a073cdf3c4f96d43186f0c","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"1.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.6_1778307365526_0.3221671317429191","host":"s3://npm-registry-packages-npm-production"}},"10.1.7":{"name":"@asaidimu/utils-store","version":"10.1.7","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.7","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"859bc6fa86d940204e4f47c524b2e9a835c07e64","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.7.tgz","fileCount":7,"integrity":"sha512-W+Ogv13Eu3tW4I/PSvE7rC7SYojyBWvip+NOQ/OV5SgsJ8HU9HE1xw+ye+KLu4NDw9YQhPOgnFghqL5b0tM9Hg==","signatures":[{"sig":"MEUCIQDBc0qDKdVdhbpkxFdaybgqNeFQ28OLgr23b93gf4i/8AIgXpNWqoz6XNbvBO1Rxq5CUEoMMiE2hmWMcYl6htiKQho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253276},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"e5d4775acbcd028deb93b180204851de9f95b5fc","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"1.1.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.7_1778308055772_0.32371719801102183","host":"s3://npm-registry-packages-npm-production"}},"10.1.8":{"name":"@asaidimu/utils-store","version":"10.1.8","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.8","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"0c9ed8b8ffb1df537b081e9db3b9a136d611bc51","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.8.tgz","fileCount":7,"integrity":"sha512-4zOCcJSrfG7r7ipAvY7LlapkKFQiVcL+ZT5SoUquK+SAGtLgCog2kSYYlMqRU/cnTkbfknTHmhgHXklVWyDOSA==","signatures":[{"sig":"MEYCIQC5VakP6p0xNONAv21BXsHAPkX86BssjGxTvGopMsWZYgIhAKkvl3tS7WEN1E0bZ8XkNHJ6bSIXx7rJbZ11VUq1feFE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253715},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"0fc237f0611e9346a28d4909b21d3af1fad89f40","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.8_1778656959985_0.5923775287944433","host":"s3://npm-registry-packages-npm-production"}},"10.1.9":{"name":"@asaidimu/utils-store","version":"10.1.9","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.9","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"e90974b2b5dd2dafa98a2c8c4cba380c5d3c3ccb","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.9.tgz","fileCount":7,"integrity":"sha512-6Fpw/kXMyCbpzTs9SgHjPwqDOKdGInDGwderIS8mNkVN5wJRqEiy2OOS6NOIfui3Cp+APYXzJpBdD7D3TD0ZYQ==","signatures":[{"sig":"MEUCIFkEliAsbEm7NqMjMo3izssazwPWMPdUQk2AKRpYlgExAiEAxN1RtYecL1FJQpUdoc67n9CJzlk7kYjZsmtmjjrAjEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264143},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"9449de1c13f420c1b203bf4850dcf80050c71af3","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.9_1779712244484_0.3907643014921276","host":"s3://npm-registry-packages-npm-production"}},"10.1.10":{"name":"@asaidimu/utils-store","version":"10.1.10","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.10","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"6dab6f0387958cb742e62ebfdc512f218a52c263","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.10.tgz","fileCount":7,"integrity":"sha512-ryHbUiKxtWScsoiyB+TnGGYeoqxBJJ879z3AtS+V36qpswFbSRdp7WW2zznPFDdDx8y8FkkD9MYoawFynxfoMg==","signatures":[{"sig":"MEYCIQCM5Fm/tfH3F1ChpeRn900lKU8wflj5sYPb5CBHdsxzXwIhAMBXcPPP/HErV3aezXlU9tTkfhMoFKBy7eeztC1v8aV0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264674},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"349c2cf9735cd9a4942da6d95d8fd2602a6a9abe","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.10_1780156508720_0.18118346422215637","host":"s3://npm-registry-packages-npm-production"}},"10.1.11":{"name":"@asaidimu/utils-store","version":"10.1.11","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.11","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"05842d47d0b947ee1425d4c9a331d573bb606ca4","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.11.tgz","fileCount":7,"integrity":"sha512-z5jM6G53rzBNdpR1++kPPAOOUWNImspliCnY06mKM0mVWSMGX0Q5JsG06n+7qhwrHARAwREW1WHB+OBCqaMjWg==","signatures":[{"sig":"MEUCIQCLteV4mrDxFF1feKBVj+CyqPEQeyhXd5albilO9VtmIgIgQvo/EKgKk5zCRaH2cX5mTVcH/adkd9U8DGTEP76yb6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266288},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"3f729016ba3a882012d01a2a73912ac28a1a7715","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.11_1780394250595_0.6570310893386078","host":"s3://npm-registry-packages-npm-production"}},"10.1.12":{"name":"@asaidimu/utils-store","version":"10.1.12","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.1.12","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2add658c0e106e298ab0b6a7f0fec8574a7f8eec","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.1.12.tgz","fileCount":7,"integrity":"sha512-1Ev6//NYI56U4NR6n55yE//3tSJlfCc7vFPGnJslXqs9EDCd9xKUl7ce000Xrk6Q4KPB6B30+SpYRyx+FUsKWg==","signatures":[{"sig":"MEQCIFBZWlgNLU+xCN0JdAPl2mTq/LtPHduiNlA6XUPB6rJtAiBwpHIuMpAzhpl2ZI3083Gnqav7NBHVM/4ZE9uY7/htzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266250},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"af377968a2b27429b9a3447a5259dd8c3fa07b09","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.1.12_1780934445692_0.7330053323600934","host":"s3://npm-registry-packages-npm-production"}},"10.2.0":{"name":"@asaidimu/utils-store","version":"10.2.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2f0d14515c432db418d33393aff9e3cbea1e9be7","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.0.tgz","fileCount":7,"integrity":"sha512-9BIseOJpKxdUm+4BbkHz+/KWN5RNxA3VvK0yKBWOgKreKDFjx+EdhEhaghkfz5+ThxPx0iY9gANAXWnbkxumYQ==","signatures":[{"sig":"MEYCIQD6XHry9KYxZ/iJWI42LEtL5IEsRg7b24pFAZ8i56LxFgIhAKqkQvUHKFJUVbS/joVFs6wQwKyvB9/3AJvMApLu+PWB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276752},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"46778e38c43ae6f008dd454d9621c877e1a357e7","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.0_1780995835460_0.5831245376582921","host":"s3://npm-registry-packages-npm-production"}},"10.2.1":{"name":"@asaidimu/utils-store","version":"10.2.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"b62c5034a374556d266152b7b669af61bde0af7e","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.1.tgz","fileCount":7,"integrity":"sha512-/NvllvtaqrSlHwfyZFsdwILGjlSPACm0w+7DXWrdfJ/wbxTeDe/1LY5Cjm8VNl6cGvvOBlGqNsCHfP0NNiCIqQ==","signatures":[{"sig":"MEUCIQDxlCsOcoqm/xU8Ek/byzgklxTuap2RjTNwr/Qjh/V6WwIgGuxRdHomkfaR7QbnGh9Lm8BATvtdbTlrPszVSFCRwpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277768},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"acf624eae85b641b8a7502f9c4bd22dc4cecf1f9","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^11.1.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.1_1781275323452_0.7932749060753945","host":"s3://npm-registry-packages-npm-production"}},"10.2.2":{"name":"@asaidimu/utils-store","version":"10.2.2","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.2","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"1c97667694b794a34dc39ef4c7363a6dfedef2ca","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.2.tgz","fileCount":7,"integrity":"sha512-0hIxAE5lniIDBtQefYUl5oeCB4RexE81eflmzvlOlbcdEDNK8J/FhKW7bnuTrdqeOpXn9eg1lPjWmHPbUhxABA==","signatures":[{"sig":"MEUCIQC4QoLGQ7Pbs+XvaopKN+dybM2F0GnKgdJq//erRPOpeAIgSfRWzvoESnw9SN5WPM1vO1KjGw0bpxT/yPYWl+5ACb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277914},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"9435919b0cdd397aa11cf15a5894f322f6cd7be4","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.2_1781280350643_0.6928072132210048","host":"s3://npm-registry-packages-npm-production"}},"10.2.3":{"name":"@asaidimu/utils-store","version":"10.2.3","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.3","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"8467d20526c78bf095223ccb29f03fc14bae36ba","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.3.tgz","fileCount":7,"integrity":"sha512-ZVLd8Zo1rO3hZODMfYjU/tQWjdxyumUhAfPOQ7dqKvLtQTt8rGUcuGcMcHgiVLPChkrgngP8uw5cLEMwLQKhmA==","signatures":[{"sig":"MEUCIQDLaQ6DS1aiaW0mcuFVLUrb5qQU/dqWuZcEmw3wYQHdRgIgOdN41j3EMRSB99137GYEJDW+ffFOG693/397vPZS0ck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268107},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"dbf04167a01842a2fc942c80932225de2d73ded5","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.3_1781711390689_0.1745910850440533","host":"s3://npm-registry-packages-npm-production"}},"10.2.4":{"name":"@asaidimu/utils-store","version":"10.2.4","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.4","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"a541ed68861cdbd6f2667181db18d346555140ff","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.4.tgz","fileCount":7,"integrity":"sha512-PCWX2LiKkmJlb4lTybIkNZ5z+PyW1+8Fq+/ilPfk4bBHu4zuh4cRXcDVYXo4TtDTLvT0QDHMt+6S1i8Tr67log==","signatures":[{"sig":"MEUCIB66+pg3KUKXFoiJZe2GUzJ9eWCf03mqFAX0XQwvCfoBAiEA2wgzGa/BFcqW6hDaYoMg36JMUPf6r/dY5exqItt0LO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268019},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"424b57406a4f2358cb5aa82f288e427a7a613057","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-events":"^1.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.4_1781764053600_0.17065146349323612","host":"s3://npm-registry-packages-npm-production"}},"10.2.5":{"name":"@asaidimu/utils-store","version":"10.2.5","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.5","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"5cedcd127f6bd2d417db27b5e756fbbb638f6103","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.5.tgz","fileCount":7,"integrity":"sha512-1/uPHNrud6qbD7FUt95gRGFH84AzsKEfBvV7Bay212s74THWLMxX7pbKaW1le0Kjn6CHjsHfrHI6KuPBinEAig==","signatures":[{"sig":"MEUCIBSM7deZLKVpb4KKX+WxcsUoW4jDHgG2Zd2vXy/7vsy5AiEAl8cIOTubbu0FTX4x1z6eURIK2cnjCjVnI5q3g2JYX7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262142},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"555c0a1a8bf952a51cdb941c38933cce6f23316d","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-events":"^1.0.0","@asaidimu/utils-logger":"^1.0.4"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.5_1781943983974_0.06163908797652473","host":"s3://npm-registry-packages-npm-production"}},"10.2.6":{"name":"@asaidimu/utils-store","version":"10.2.6","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.6","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"e14ce9176d8d31a7a9dcb22c387b14cd7f512faf","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.6.tgz","fileCount":7,"integrity":"sha512-OWv0eB7JtSxOWdYYBuXS9OZHOmpXIuzN4SuCiWkDcvcwYwx4nH5eKDEcc4tVB2pJ4QEuwMyzJWze2XzQU7MLSg==","signatures":[{"sig":"MEUCIQDpo92QRxp+UbYMW7bbdMS593kPogNCzhKnC6Ss9baYkwIgXXXe0QRI9wd7c9FdHKY66UKluJ46NHCRcqezQZSsU0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261918},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"7ed03f2524b0b58ef74afc686d21df77abeccc7b","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-events":"^1.0.0","@asaidimu/utils-logger":"^1.0.4"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.6_1781955480596_0.9545146761579211","host":"s3://npm-registry-packages-npm-production"}},"10.2.7":{"name":"@asaidimu/utils-store","version":"10.2.7","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.7","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"507d9db24b3bb290cae43b3f3e64e7e748e40243","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.7.tgz","fileCount":7,"integrity":"sha512-Df03Jk1y8b1S2lEaKJUnPsPXnnUCOd6N6m1QdB7RvRILkSp/j4urgwZlygpOAcNRruopLZzALj9XRYjXaFd/kg==","signatures":[{"sig":"MEUCIF+ieCUXE9MT4BItQczaUi5tt4+jePngbsJHNC0XpgJXAiEAjOh7YTE454Sn+i+ZREUKxu+nLFAxaQiD5vxypZoJ5uM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247686},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"cfa83fc8ab33028484f617065a17cf1f39a3f8d5","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^1.0.0","@asaidimu/utils-events":"^1.0.0","@asaidimu/utils-logger":"^1.0.4","@asaidimu/utils-persistence":"^6.1.12"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.7_1782113595759_0.18015583327315432","host":"s3://npm-registry-packages-npm-production"}},"10.2.8":{"name":"@asaidimu/utils-store","version":"10.2.8","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.8","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"3b78d69d3a229b4a24413ef1044ca5a2094e7094","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.8.tgz","fileCount":7,"integrity":"sha512-hL+Dipt7KxVEXhBllKkOzw2lmuqSU2Fhm/+wf/3F45kt38IvwTg5kNKoOP+gUFUyqaH4NRQKAq90rDxU+BgYPQ==","signatures":[{"sig":"MEQCIHJUspXRkovZcPvn+HjaMxw3gU+QsV7rX20nblb+cJwKAiBRAufPRiDliXgrv9m8bP7o8Bb1pCVXLwVXr/y8CEbBDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247585},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"d9795865c931cc4feaa0624cf08382f99f5feb79","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.2","@asaidimu/utils-events":"^1.2.3","@asaidimu/utils-logger":"^1.0.5","@asaidimu/utils-persistence":"^6.1.13"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.8_1782114872177_0.22836355535063313","host":"s3://npm-registry-packages-npm-production"}},"10.2.9":{"name":"@asaidimu/utils-store","version":"10.2.9","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.9","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"c14be50e77ffa43e35edb5a82fd0248cfe50e721","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.9.tgz","fileCount":7,"integrity":"sha512-ayjfdzJcxMDKZZ4qQjVyOq/f/oDBNDECnNG+faqSMjJPeWsw0eT/pQTkWEs2mUEmWNIMiiqo+3KxVQYzQ+QZTQ==","signatures":[{"sig":"MEUCIFFfGN9xf+JwVfnC+IMxBlYPbngeFK30s2NWxeXQfOwKAiEA7wfQTaG9Q/RHlpmsJJiLG2w5QjBd20KMt6M9Y1O7tyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247585},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"df92ba7a113b350ccca53f49d26c099290ba46e6","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.3","@asaidimu/utils-events":"^1.2.4","@asaidimu/utils-logger":"^1.0.6","@asaidimu/utils-persistence":"^6.1.14"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.9_1782115556638_0.5108118891757765","host":"s3://npm-registry-packages-npm-production"}},"10.2.10":{"name":"@asaidimu/utils-store","version":"10.2.10","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.10","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"bf9cb87342c431fb433717add2b978582e34edb4","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.10.tgz","fileCount":7,"integrity":"sha512-NyogLOKx3fNP1EsUXy/EKXnqFr3jAAI4iaC/qI+B90Y+FpUBCpq0L41WWg+6cP9/vAdO4dKydah8kkqk9pHM+Q==","signatures":[{"sig":"MEUCIQD+tBu38FIEdTvlQ0ltnUwt5tb/NrF1kUUPatQEY3AIPQIgbcMxoh1pZQQWyaBxNbzAGoPXakL++VNIsGR71m3Iclw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253944},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"b11c8cf308c19bf4cb6a5dc1a06b2b8827b9b04f","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"2.3.4","@asaidimu/utils-events":"1.2.5","@asaidimu/utils-logger":"1.0.7","@asaidimu/utils-persistence":"6.1.15"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.10_1782116531336_0.2329053902018623","host":"s3://npm-registry-packages-npm-production"}},"10.2.11":{"name":"@asaidimu/utils-store","version":"10.2.11","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.11","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"603a3b2ac5e9006618816a8a5dfc8f88173b139e","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.11.tgz","fileCount":7,"integrity":"sha512-9IzK352zYzKzVnoR7tCcPo7oEKJwpSflUZ1MjlCaDCJnpY8HEH5fnjBYyBpdHO2ue4bFjbbHczvw93anbTaAXg==","signatures":[{"sig":"MEUCIE1YhV5w4BZYx3Ufc32PeybMz3TV9w+bFMrBqlR9W1hOAiEAu9doPibO5hZSLgbhUE3qEutnfz/5pLrGRXqb1DGkNos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253944},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"8a65c2259450827d3f2bf9cfb05acfef20e9f934","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"2.3.4","@asaidimu/utils-events":"1.2.5","@asaidimu/utils-logger":"1.0.7","@asaidimu/utils-persistence":"6.1.15"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.11_1782224054453_0.9732359177511731","host":"s3://npm-registry-packages-npm-production"}},"10.2.12":{"name":"@asaidimu/utils-store","version":"10.2.12","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.12","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"bc6aa1572bc85e2c11ba92e3c506fffa1a72a69c","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.12.tgz","fileCount":7,"integrity":"sha512-wFdZR/sB4IxxUtii2d7O+v5fbl6G7Q7atjQ14BVaB5VKDwrJLoPxN3iCnD7Z6Iule8Hxhg0Fd/Ql4iU5c1N7EA==","signatures":[{"sig":"MEUCIQDNCexq85kkE+phQ98KZmsJkpLyQlFgkYcdbjXLoRePoAIgcyEp5DAo++IHqltOieIXXPlFqgvL1pgolcJYfAO99zM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253948},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"e967497f66c918952227548e09b45f302e278b98","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.5","@asaidimu/utils-events":"^1.2.6","@asaidimu/utils-logger":"^1.0.8","@asaidimu/utils-persistence":"^6.1.16"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.12_1782229162917_0.9258102257278646","host":"s3://npm-registry-packages-npm-production"}},"10.2.13":{"name":"@asaidimu/utils-store","version":"10.2.13","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.13","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"667400a01f587a75df21829aae2f89d216193f7b","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.13.tgz","fileCount":7,"integrity":"sha512-5C4ECwxDq5f2akToavBdJ9wW/Z7lU4VPaFdvVMXfW/onKTUQanuPdfqGt1ncxI4ffTBeBDEHaSP3IOmcP5edgA==","signatures":[{"sig":"MEUCICWMGb6hJruNh+6mW6+SE80XzEjqFv/B9ChQ2RLyOaziAiEA5GTJ42yHlOyOQ7CG4tH7zfPrth7P+An2zliintEPZZs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255050},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"067f673cb18a0e8ad0ec6e094d5002097e64a187","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.22.3","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.6","@asaidimu/utils-events":"^1.2.7","@asaidimu/utils-logger":"^1.0.9","@asaidimu/utils-persistence":"^6.1.17"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.13_1782313564155_0.9409577981841206","host":"s3://npm-registry-packages-npm-production"}},"10.2.14":{"name":"@asaidimu/utils-store","version":"10.2.14","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.14","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"2af3f22c64737578308db6de6a4d6752b67a0e13","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.14.tgz","fileCount":7,"integrity":"sha512-usdiJbrs7mZncLgxid9rFNp9/uhAk6WJ4XH9ORWCUgJAI8c8s9Rj2+A+H4CK8uVeI6aFVz8xyCeLvkn78vQDjQ==","signatures":[{"sig":"MEQCIAyQdrCB6Wd0/338bt7/kqSYNt25ven980mfgnb4ZBidAiBhGhpNExof4kX7Fg1prKc1AkcGCRWUdhhhzU99mcbe2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255050},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"09a57a9f16de28aa2e90f47eb1cc2180a5dccd08","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.0","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.6","@asaidimu/utils-events":"^1.2.7","@asaidimu/utils-logger":"^1.0.9","@asaidimu/utils-persistence":"^6.1.17"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.14_1782397466575_0.9697453902131612","host":"s3://npm-registry-packages-npm-production"}},"10.2.15":{"name":"@asaidimu/utils-store","version":"10.2.15","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.15","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"9d376594e6f266557a090e6fbbafdf99a7af290c","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.15.tgz","fileCount":7,"integrity":"sha512-WbGaQtjbjDHY1ydQsKRcjtBKrvVNyhhVF6K86+o/z5CriG80Gem4p0OdrQaPpwKtW4W4j8R6FNqZTs7RARIT8w==","signatures":[{"sig":"MEUCIQCZSoOESYcLZcHiiMWhguOz9CwJXMbzuiwRKjX76iI13wIgKMafrKBpecsFcp5o+A8mrHltmn4PN9wrmcfLsSYIsEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255051},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"360c6037856d0f05604e35d1e63874bd31118a30","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.0","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.7","@asaidimu/utils-events":"^1.2.8","@asaidimu/utils-logger":"^1.0.11","@asaidimu/utils-persistence":"^6.1.18"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.15_1782891873212_0.6717127831981922","host":"s3://npm-registry-packages-npm-production"}},"10.2.16":{"name":"@asaidimu/utils-store","version":"10.2.16","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.16","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"112c802306e7d26482fd9da259e96c995ed02cf3","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.16.tgz","fileCount":7,"integrity":"sha512-pVKV4SpWWmBLNTZ1mIDuzZ3ursHFn2nVcq5f1P3nK0mBhGEJ51lxnDkEh/BNRW9yfgMgFndu259A29xl8lOwGQ==","signatures":[{"sig":"MEUCIQCs666ezZJmkeiCtICo6rbUM19t7ggl+PanQK3GeTU5rgIgNxcZArwNPBSQ9TbYNEEMqigIb+GJXlb7rFfF96xl3Ss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248906},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"edb19f19645bdb349e8af8ada6cf4f9e976598bc","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.7","@asaidimu/utils-events":"^1.2.8","@asaidimu/utils-logger":"^1.0.11","@asaidimu/utils-persistence":"^6.1.19"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.16_1783754511334_0.8690944231509088","host":"s3://npm-registry-packages-npm-production"}},"10.2.17":{"name":"@asaidimu/utils-store","version":"10.2.17","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.17","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"15dfb7f5d466d6c0b626c25bc1315883c8505bdd","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.17.tgz","fileCount":7,"integrity":"sha512-+M9n2geKXOV7uDiP0+CDX4/e6TrLvNi8CNddwgg2FuhDk5OJF0yRVjYjpHluQcPJIvcVsPXWaz65Ebf/06DxSw==","signatures":[{"sig":"MEUCIFAnRZ6H1iG6T3yXmGdZ0v2YHUSGziELLQufn9LndMMzAiEA8d9qcgsIvXXxk3KDQPX6TCl9z3qOe4s8/osp7bly2f0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336954},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"ae704bb3e721e408705844bb3ddaa291669334bc","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.8","@asaidimu/utils-events":"^1.2.9","@asaidimu/utils-logger":"^1.0.12","@asaidimu/utils-persistence":"^6.1.20"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.17_1783861824043_0.8242642957272959","host":"s3://npm-registry-packages-npm-production"}},"10.2.18":{"name":"@asaidimu/utils-store","version":"10.2.18","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@10.2.18","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"e276a7be9ff1ad4955645c09468552b5110383d5","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-10.2.18.tgz","fileCount":7,"integrity":"sha512-LmjHi2o7V8jg4R58W+vj5/tbvsM4Z3rbTiR44LMp389XfLjfaz0k5YmdxFCF21QJg4We4kGRSAYkXtitDa30ew==","signatures":[{"sig":"MEUCIQCNkKumnDk6LumX76Aq/GsYolagdqStbcsRHKe/QwRzFgIgKTbB+CpdGdF6Ck9eWr24XUlwWZDe/twbHzKpB6br1QI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336955},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"2b193325449f9fce6003c6e1c94717d3606c57fb","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.9","@asaidimu/utils-events":"^1.2.10","@asaidimu/utils-logger":"^1.0.13","@asaidimu/utils-persistence":"^6.1.21"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_10.2.18_1783863136437_0.6474604713790291","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@asaidimu/utils-store","version":"11.0.0","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@11.0.0","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"cc6f67bf29908b3a604e81da3e6c9995e33142cb","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-11.0.0.tgz","fileCount":7,"integrity":"sha512-cLCVNmpVZZ8yzVR7cgkbvA/20MSFOf9d1Fzq2GahajIAzizeqW3g0zNXUrtQY6NysXZSYxbFd2aBYoFS6MNCAw==","signatures":[{"sig":"MEQCIFizpNXxQl8DmbffymhZN8sNZvKizwkLbUq/kwOGf7QLAiAzEsD5knHTEFJ0HQlVzeWkis31brXBvT/mMxLclrMJng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDXCCCfl8ggTwKyeRfJq6B0NPxNsXyk6NF+WMIHaY7DvwIhAOO5XdmP+TnBGgBNpRHoXdPmio7Ju8AMOHETCrYTLdMK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339219},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"910ac66dc929cb1d007494b4ce229df659936866","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.2","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^2.3.10","@asaidimu/utils-events":"^1.2.11","@asaidimu/utils-logger":"^1.0.14","@asaidimu/utils-persistence":"^6.1.22"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_11.0.0_1788167583066_0.5444735434457213","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"name":"@asaidimu/utils-store","version":"11.0.1","keywords":["typescript","store","utility"],"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","_id":"@asaidimu/utils-store@11.0.1","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"9fe4a58d00ab31102a0d7a08ab195dc27929bde5","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-11.0.1.tgz","fileCount":7,"integrity":"sha512-knjoOm+SSwqK7LMm7yUjWdYHXCKnfygn14Y1NEQi0e+5mKU0VNNEFeYET90bxLhYZqO2UGP3ShENjbBJltPKBA==","signatures":[{"sig":"MEUCIQCFwXH67GaWOfJ41gT/iOndt/bFZv/0EPD+8K92oNzSNgIgHnD1uwL0wI3OiVASvJKu7QB71cEb6QLgn1pESSWinv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFRAv55GZz17AOj0sOt/AftwqEoBIkwdG48qmhpnNuWkAiAIYEhiaQduLYb859yXaCyLrVsoRNDOCSY+g8Gi9HDvzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339215},"main":"index.js","types":"index.d.ts","module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"0367c057612677e77ca2af107b398546fa7203cf","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"_nodeVersion":"22.23.2","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^3.0.0","@asaidimu/utils-events":"^2.0.0","@asaidimu/utils-logger":"^2.0.0","@asaidimu/utils-persistence":"^7.0.0"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/utils-store_11.0.1_1788277331505_0.9958427512934911","host":"s3://npm-registry-packages-npm-production"}},"11.0.2":{"_id":"@asaidimu/utils-store@11.0.2","bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"dist":{"shasum":"5184f9293d973982b15679bae227061ff43c6a58","tarball":"https://registry.npmjs.org/@asaidimu/utils-store/-/utils-store-11.0.2.tgz","fileCount":7,"integrity":"sha512-pgGo2nkJg+G/KBDztOGeNFA6dpYPsXNnn/8mh/Og/Nkrd3XjvR4F8j5740OzfzRopwPZZphPLIEG87NplZ1LJg==","signatures":[{"sig":"MEQCIF/7P2cJZGhUxfqTw1zm9VBZnHCTBAXxukkrWaB8MfeJAiB8SzCfkkdPpjMkd2GKWl5EitE6sMJLKoF5frhPwIPb7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDe5gng7LNJ7+kYTp6d5z44GZmCrss87eH7DwoLz0x96gIhALZj+PmZobkgmP4j+O9Mzgre5X3waEodw5lOyPczvjro"}],"unpackedSize":339215},"main":"index.js","name":"@asaidimu/utils-store","types":"index.d.ts","author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"module":"index.mjs","exports":{".":{"import":{"types":"./index.d.ts","default":"./index.mjs"},"require":{"types":"./index.d.ts","default":"./index.js"}}},"gitHead":"5f8990792067e0cb05fdb28b8bfa299d0b02ce28","license":"MIT","release":{"plugins":[["@semantic-release/npm",{"pkgRoot":"./dist"}],["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"],"message":"chore(release): Release @asaidimu/utils-store v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"version":"11.0.2","_npmUser":{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"},"homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","keywords":["typescript","store","utility"],"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"_npmVersion":"10.9.8","description":"A reactive data store","directories":{},"maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"uuid":"^14.0.0","@asaidimu/utils-sync":"^3.0.0","@asaidimu/utils-events":"^2.0.0","@asaidimu/utils-logger":"^2.0.0","@asaidimu/utils-persistence":"^7.0.1"},"publishConfig":{"tag":"latest","access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/utils-store_11.0.2_1789153688272_0.7248435700260893"}}},"time":{"created":"2025-06-06T19:27:22.481Z","modified":"2026-09-11T19:08:08.538Z","1.0.0":"2025-06-06T19:27:22.775Z","2.0.0":"2025-06-06T20:53:17.610Z","2.0.1":"2025-06-07T07:29:34.884Z","2.0.2":"2025-06-07T07:43:14.858Z","2.0.3":"2025-06-07T07:55:56.812Z","2.0.4":"2025-06-07T08:43:48.674Z","2.1.0":"2025-06-07T10:54:44.412Z","2.1.1":"2025-06-07T11:59:54.203Z","2.1.2":"2025-06-07T12:06:45.530Z","2.1.3":"2025-06-07T12:19:32.090Z","2.2.0":"2025-09-12T07:51:18.225Z","2.3.0":"2025-09-17T09:27:43.510Z","2.3.1":"2025-09-19T12:24:28.779Z","2.3.2":"2025-09-23T10:22:06.351Z","2.3.3":"2025-09-23T11:28:23.865Z","4.0.0":"2025-11-21T16:40:38.852Z","5.0.0":"2025-11-24T15:10:29.381Z","6.0.0":"2025-11-27T16:15:08.400Z","7.0.0":"2025-11-27T23:55:22.298Z","7.0.1":"2025-12-05T09:44:00.553Z","7.0.2":"2025-12-29T21:17:59.258Z","8.0.0":"2026-03-09T15:11:13.739Z","9.0.0":"2026-04-21T10:00:41.097Z","9.0.1":"2026-04-21T11:09:49.636Z","9.0.2":"2026-04-22T16:29:15.023Z","9.0.3":"2026-04-23T07:31:57.738Z","10.0.0":"2026-05-04T15:19:28.847Z","10.1.0":"2026-05-07T08:16:41.037Z","10.1.1":"2026-05-07T09:51:18.252Z","10.1.2":"2026-05-07T11:31:53.612Z","10.1.3":"2026-05-08T09:21:42.394Z","10.1.4":"2026-05-08T10:22:10.239Z","10.1.5":"2026-05-08T11:38:45.372Z","10.1.6":"2026-05-09T06:16:05.665Z","10.1.7":"2026-05-09T06:27:35.928Z","10.1.8":"2026-05-13T07:22:40.124Z","10.1.9":"2026-05-25T12:30:44.666Z","10.1.10":"2026-05-30T15:55:08.927Z","10.1.11":"2026-06-02T09:57:30.742Z","10.1.12":"2026-06-08T16:00:45.841Z","10.2.0":"2026-06-09T09:03:55.588Z","10.2.1":"2026-06-12T14:42:03.591Z","10.2.2":"2026-06-12T16:05:50.897Z","10.2.3":"2026-06-17T15:49:50.880Z","10.2.4":"2026-06-18T06:27:33.735Z","10.2.5":"2026-06-20T08:26:24.109Z","10.2.6":"2026-06-20T11:38:00.723Z","10.2.7":"2026-06-22T07:33:15.925Z","10.2.8":"2026-06-22T07:54:32.313Z","10.2.9":"2026-06-22T08:05:56.770Z","10.2.10":"2026-06-22T08:22:11.475Z","10.2.11":"2026-06-23T14:14:14.592Z","10.2.12":"2026-06-23T15:39:23.070Z","10.2.13":"2026-06-24T15:06:04.326Z","10.2.14":"2026-06-25T14:24:26.721Z","10.2.15":"2026-07-01T07:44:33.377Z","10.2.16":"2026-07-11T07:21:51.479Z","10.2.17":"2026-07-12T13:10:24.234Z","10.2.18":"2026-07-12T13:32:16.591Z","11.0.0":"2026-08-31T09:13:03.154Z","11.0.1":"2026-09-01T15:42:11.672Z","11.0.2":"2026-09-11T19:08:08.382Z"},"bugs":{"url":"https://github.com/asaidimu/erp-utils/issues"},"author":{"name":"Saidimu","email":"47994458+asaidimu@users.noreply.github.com"},"license":"MIT","homepage":"https://github.com/asaidimu/erp-utils/tree/main/src/store#readme","keywords":["typescript","store","utility"],"repository":{"url":"git+https://github.com/asaidimu/erp-utils.git","type":"git"},"description":"A reactive data store","maintainers":[{"name":"asaidimu","email":"lolokilesaidimu@gmail.com"}],"readme":"# `@asaidimu/utils-store`\n\n**A Type-Safe Reactive Data Store for TypeScript Applications**\n\nA comprehensive, type-safe, and reactive state management library for TypeScript applications, featuring robust middleware, atomic transactions, dependency injection for services (artifacts), deep observability, and an optional persistence layer. It simplifies complex state interactions by promoting immutability, explicit updates, and a modular design.\n\n[![npm version](https://img.shields.io/npm/v/@asaidimu/utils-store?style=flat-square)](https://www.npmjs.com/package/@asaidimu/utils-store)\n[![License](https://img.shields.io/npm/l/@asaidimu/utils-store?style=flat-square)](https://github.com/asaidimu/erp-utils/blob/main/LICENSE)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/asaidimu/erp-utils/ci.yml?branch=main&style=flat-square)](https://github.com/asaidimu/erp-utils/actions?query=workflow%3ACI)\n\n---\n\n### Quick Links\n\n- [Overview & Features](#overview--features)\n- [Installation & Setup](#installation--setup)\n- [Usage Documentation](#usage-documentation)\n  - [Basic Usage](#basic-usage)\n  - [Actions & Dispatch](#actions--dispatch)\n  - [Reactive Selectors](#reactive-selectors)\n  - [Persistence Integration](#persistence-integration)\n  - [Middleware System](#middleware-system)\n  - [Transaction Support](#transaction-support)\n  - [Artifacts (Dependency Injection)](#artifacts-dependency-injection)\n  - [Store Observer (Debugging & Observability)](#store-observer-debugging--observability)\n  - [Event System](#event-system)\n- [Project Architecture](#project-architecture)\n- [Development & Contributing](#development--contributing)\n- [Additional Information](#additional-information)\n\n---\n\n## Overview & Features\n\n`@asaidimu/utils-store` is a powerful and flexible state management solution designed for modern TypeScript applications. It provides a highly performant and observable way to manage your application's data, ensuring type safety and predictability across complex state interactions. Built on principles of immutability and explicit updates, it makes state changes easy to track, debug, and extend.\n\nThis library offers robust tools to handle your state with confidence, enabling features like atomic transactions, a pluggable middleware pipeline, a powerful dependency injection system for services (artifacts), and deep runtime introspection for unparalleled debugging capabilities. It emphasizes a component-based design internally, allowing for clear separation of concerns for core state management, middleware processing, persistence, and observability.\n\n### Key Features\n\n- 📊 **Type-safe State Management**: Full TypeScript support for defining and interacting with your application state, leveraging `DeepPartial<T>` for precise, structural updates while maintaining strong type inference.\n- 🔄 **Reactive Updates & Granular Subscriptions**: Subscribe to granular changes at specific paths within your state or listen for any change, ensuring efficient re-renders or side effects. The internal `diff` algorithm optimizes notifications by identifying only truly changed paths.\n- 🚀 **Action System**: Dispatch named actions to encapsulate state updates, improving code organization and enabling detailed logging and observability for each logical operation, including debouncing capabilities.\n- 🔍 **Reactive Selectors with Memoization**: Efficiently derive computed state from your store using reactive selectors that re-evaluate and notify subscribers only when their accessed paths actually change, preventing unnecessary renders.\n- 🧠 **Composable Middleware System**:\n  - **Transform Middleware**: Intercept, modify, normalize, or enrich state updates before they are applied. These can return a `DeepPartial<T>` to apply further changes or `void` for side effects.\n  - **Blocking Middleware**: Implement custom validation, authorization, or other conditional logic to prevent invalid state changes from occurring. If a blocking middleware returns `false` or throws an error, the update is immediately halted and rolled back.\n- 📦 **Atomic Transaction Support**: Group multiple state updates into a single, atomic operation. If any update within the transaction fails or an error is thrown, the entire transaction is rolled back to the state before the transaction began, guaranteeing data integrity. Supports both synchronous and asynchronous operations.\n- 💾 **Optional Persistence Layer**: Seamlessly integrate with any `SimplePersistence<T>` implementation (e.g., for local storage, IndexedDB, or backend synchronization) to load an initial state and save subsequent changes. The store emits a `persistence:ready` event and listens for external updates, handling persistence queueing and retries.\n- 🧩 **Artifacts (Dependency Injection)**: A flexible dependency injection system to manage services, utilities, or complex objects that your actions and other artifacts depend on. Supports `Singleton` (re-evaluated on dependencies change) and `Transient` (new instance every time) scopes, and reactive resolution using `use(({select, resolve}) => ...)` context. Handles dependency graphs and circular dependency detection.\n- 👀 **Deep Observer & Debugging (`StoreObserver`)**: An optional but highly recommended class for unparalleled runtime introspection and debugging:\n  - **Comprehensive Event History**: Captures a detailed log of all internal store events (`update:start`, `middleware:complete`, `transaction:error`, `persistence:ready`, `middleware:executed`, `action:start`, `selector:accessed`, etc.).\n  - **State Snapshots**: Maintains a configurable history of your application's state over time, allowing for easy inspection of changes between updates and post-mortem analysis.\n  - **Time-Travel Debugging**: Leverage the recorded state history to `undo` and `redo` state changes, providing powerful capabilities for debugging complex asynchronous flows and state transitions.\n  - **Performance Metrics**: Track real-time performance indicators like total update count, listener executions, average update times, largest update size, and slow operation warnings to identify bottlenecks.\n  - **Configurable Console Logging**: Provides human-readable, color-coded logging of store events directly to the browser console for immediate feedback during development.\n  - **Pre-built Debugging Middlewares**: Includes helper methods to easily create a generic logging middleware and a validation middleware for immediate use.\n  - **Session Management**: Save and load observer sessions for offline analysis or sharing bug reproductions.\n- 🗑️ **Property Deletion**: Supports explicit property deletion within partial updates using the global `Symbol.for(\"delete\")` or a custom marker.\n- ⚡ **Concurrency Handling**: Automatically queues and processes `set` updates to prevent race conditions during concurrent calls, ensuring updates are applied in a predictable, sequential order.\n\n---\n\n## Installation & Setup\n\nInstall `@asaidimu/utils-store` using your preferred package manager. This library is designed for browser and Node.js environments, providing both CommonJS and ES Module exports.\n\n```bash\n# Using Bun\nbun add @asaidimu/utils-store\n\n# Using npm\nnpm install @asaidimu/utils-store\n\n# Using yarn\nyarn add @asaidimu/utils-store\n```\n\n### Prerequisites\n\n- **Node.js**: (LTS version recommended) for development and compilation.\n- **TypeScript**: (v4.0+ recommended) for full type-safety during development. Modern TS features (ES2017+ for `async/await`, ES2020+ for `Symbol.for()` and `structuredClone()`) are utilized. `moduleResolution`: `Node16` or `Bundler` is recommended in `tsconfig.json`.\n\n### Verification\n\nTo verify that the library is installed and working correctly, create a small TypeScript file (e.g., `verify.ts`) and run it.\n\n```typescript\n// verify.ts\nimport { ReactiveDataStore } from \"@asaidimu/utils-store\";\n\ninterface MyState {\n  count: number;\n  message: string;\n}\n\nconst store = new ReactiveDataStore<MyState>({ count: 0, message: \"Hello\" });\n\n// Subscribing to \"count\" will only log when 'count' path changes\nstore.watch(\"count\", (state) => {\n  console.log(`Count changed to: ${state.count}`);\n});\n\n// Subscribing to \"\" (empty string) will log for any store update\nstore.watch(\"\", (state) => {\n  console.log(`Store updated to: ${JSON.stringify(state)}`);\n});\n\nconsole.log(\"Initial state:\", store.get());\n\nawait store.set({ count: 1 });\n// Expected Output:\n// Count changed to: 1\n// Store updated to: {\"count\":1,\"message\":\"Hello\"}\n\nawait store.set({ message: \"World\" });\n// Expected Output:\n// Store updated to: {\"count\":1,\"message\":\"World\"}\n// (The 'count' listener won't be triggered as only 'message' changed)\n\nconsole.log(\"Current state:\", store.get());\n// Expected Output: Current state: { count: 1, message: \"World\" }\n```\n\nRun this file using `ts-node` or compile it first:\n\n```bash\n# Install ts-node if you don't have it: npm install -g ts-node\nnpx ts-node verify.ts\n```\n\n---\n\n## Usage Documentation\n\nThis section provides practical examples and detailed explanations of how to use `@asaidimu/utils-store` to manage your application state effectively.\n\n### Basic Usage\n\nLearn how to create a store, read state, and update state with partial objects or functions.\n\n```typescript\nimport {\n  ReactiveDataStore,\n  DELETE_SYMBOL,\n  type DeepPartial,\n} from \"@asaidimu/utils-store\";\n\n// 1. Define your state interface for type safety\ninterface AppState {\n  user: {\n    id: string;\n    name: string;\n    email?: string; // email is optional as we'll delete it\n    isActive: boolean;\n  };\n  products: Array<{ id: string; name: string; price: number }>;\n  settings: {\n    theme: \"light\" | \"dark\";\n    notificationsEnabled: boolean;\n  };\n  lastUpdated: number;\n}\n\n// 2. Initialize the store with an initial state\nconst initialState: AppState = {\n  user: {\n    id: \"123\",\n    name: \"Jane Doe\",\n    email: \"jane@example.com\",\n    isActive: true,\n  },\n  products: [\n    { id: \"p1\", name: \"Laptop\", price: 1200 },\n    { id: \"p2\", name: \"Mouse\", price: 25 },\n  ],\n  settings: {\n    theme: \"light\",\n    notificationsEnabled: true,\n  },\n  lastUpdated: Date.now(),\n};\n\nconst store = new ReactiveDataStore<AppState>(initialState);\n\n// 3. Get the current state\n// `store.get()` returns a reference to the internal state.\n// Use `store.get(true)` to get a deep clone, ensuring immutability if you modify it directly.\nconst currentState = store.get();\nconsole.log(\"Initial state:\", currentState);\n/* Output:\nInitial state: {\n  user: { id: '123', name: 'Jane Doe', email: 'jane@example.com', isActive: true },\n  products: [ { id: 'p1', name: 'Laptop', price: 1200 }, { id: 'p2', name: 'Mouse', price: 25 } ],\n  settings: { theme: 'light', notificationsEnabled: true },\n  lastUpdated: <timestamp>\n}\n*/\n\n// 4. Update the state using a partial object (`DeepPartial<T>`)\n// You can update deeply nested properties without affecting siblings.\nawait store.set({\n  user: {\n    name: \"Jane Smith\", // Changes user's name\n    isActive: false, // Changes user's active status\n  },\n  settings: {\n    theme: \"dark\", // Changes theme\n  },\n});\n\nconsole.log(\"State after partial update:\", store.get());\n/* Output:\nState after partial update: {\n  user: { id: '123', name: 'Jane Smith', email: 'jane@example.com', isActive: false },\n  products: [ { id: 'p1', name: 'Laptop', price: 1200 }, { id: 'p2', name: 'Mouse', price: 25 } ],\n  settings: { theme: 'dark', notificationsEnabled: true },\n  lastUpdated: <timestamp> // Email and products remain unchanged.\n}\n*/\n\n// 5. Update the state using a function (StateUpdater)\n// This is useful when the new state depends on the current state.\nawait store.set((state) => ({\n  products: [\n    ...state.products, // Keep existing products\n    { id: \"p3\", name: \"Keyboard\", price: 75 }, // Add a new product\n  ],\n  lastUpdated: Date.now(), // Update timestamp\n}));\n\nconsole.log(\n  \"State after functional update, products count:\",\n  store.get().products.length,\n);\n// Output: State after functional update, products count: 3\n\n// 6. Subscribing to state changes\n// You can subscribe to the entire state (path: '') or specific paths (e.g., 'user.name', 'settings.notificationsEnabled').\nconst unsubscribeUser = store.watch(\"user\", (state) => {\n  console.log(\"User data changed:\", state.user);\n});\n\nconst unsubscribeNotifications = store.watch(\n  \"settings.notificationsEnabled\",\n  (state) => {\n    console.log(\n      \"Notifications setting changed:\",\n      state.settings.notificationsEnabled,\n    );\n  },\n);\n\n// Subscribe to multiple paths at once\nconst unsubscribeMulti = store.watch([\"user.name\", \"products\"], (state) => {\n  console.log(\n    \"User name or products changed:\",\n    state.user.name,\n    state.products.length,\n  );\n});\n\n// Subscribe to any change in the store (root listener)\nconst unsubscribeAll = store.watch(\"\", (state) => {\n  console.log(\n    \"Store updated (any path changed). Current products count:\",\n    state.products.length,\n  );\n});\n\nawait store.set({ user: { email: \"jane.smith@example.com\" } });\n/* Output (order may vary slightly depending on async operations):\nUser data changed: { id: '123', name: 'Jane Smith', email: 'jane.smith@example.com', isActive: false }\nUser name or products changed: Jane Smith 3\nStore updated (any path changed). Current products count: 3\n*/\n\nawait store.set({ settings: { notificationsEnabled: false } });\n/* Output:\nNotifications setting changed: false\nStore updated (any path changed). Current products count: 3\n*/\n\n// 7. Unsubscribe from changes\nunsubscribeUser();\nunsubscribeNotifications();\nunsubscribeMulti();\nunsubscribeAll();\n\nawait store.set({ user: { isActive: true } });\n// No console output from the above listeners after unsubscribing.\n\n// 8. Deleting properties\n// Use `DELETE_SYMBOL` (exported from the library) to explicitly remove a property from the state.\nawait store.set({\n  user: {\n    email: DELETE_SYMBOL as DeepPartial<string>, // Type cast is needed for strict TypeScript environments\n  },\n});\nconsole.log(\"User email after deletion:\", store.get().user.email);\n// Output: User email after deletion: undefined\n```\n\n### Actions & Dispatch\n\nThe `dispatch` method allows you to encapsulate state updates into named actions. This improves code organization, provides clear semantic meaning to updates, and enables detailed logging and observability through `StoreObserver` and the event system. Actions can also be debounced to prevent excessive updates.\n\n```typescript\nimport { ReactiveDataStore } from \"@asaidimu/utils-store\";\n\ninterface CounterState {\n  value: number;\n  history: string[];\n}\n\nconst store = new ReactiveDataStore<CounterState>({ value: 0, history: [] });\n\n// 1. Register an action\nstore.register({\n  name: \"incrementCounter\",\n  fn: (state, amount: number) => ({\n    // Action function receives state and dispatched parameters\n    value: state.value + amount,\n    history: [\n      ...state.history,\n      `Incremented by ${amount} at ${new Date().toLocaleTimeString()}`,\n    ],\n  }),\n});\n\n// 2. Register an action with debounce\nstore.register({\n  name: \"incrementCounterDebounced\",\n  fn: (state, amount: number) => ({\n    value: state.value + amount,\n    history: [\n      ...state.history,\n      `Debounced Increment by ${amount} at ${new Date().toLocaleTimeString()}`,\n    ],\n  }),\n  debounce: {\n    delay: 100, // Debounce for 100ms\n    // Optional: condition to decide whether to debounce.\n    // Here, we always debounce if `amount` is different from previous.\n    condition: (previousArgs, currentArgs) =>\n      previousArgs?.[0] !== currentArgs[0],\n  },\n});\n\n// 3. Register an async action\nstore.register({\n  name: \"loadInitialValue\",\n  fn: async (state, userId: string) => {\n    console.log(`Simulating loading initial value for user: ${userId}`);\n    await new Promise((resolve) => setTimeout(resolve, 200)); // Simulate API call\n    return {\n      value: 100, // Fetched value\n      history: [...state.history, `Loaded initial value for ${userId}`],\n    };\n  },\n});\n\n// 4. Dispatch actions\nconsole.log(\"Initial value:\", store.get().value); // 0\n\nawait store.dispatch(\"incrementCounter\", 5);\nconsole.log(\"Value after incrementCounter(5):\", store.get().value); // 5\n\nawait store.dispatch(\"incrementCounter\", 10);\nconsole.log(\"Value after incrementCounter(10):\", store.get().value); // 15\n\n// Dispatch debounced actions multiple times quickly\nstore.dispatch(\"incrementCounterDebounced\", 1);\nstore.dispatch(\"incrementCounterDebounced\", 2);\nstore.dispatch(\"incrementCounterDebounced\", 3);\nconsole.log(\n  \"Value after immediate debounced dispatches (still 15, waiting for debounce):\",\n  store.get().value,\n);\n\n// Wait for the debounce to complete\nawait new Promise((resolve) => setTimeout(150, resolve));\nconsole.log(\n  \"Value after debounced dispatches settled (only last one applied):\",\n  store.get().value,\n); // 15 + 3 = 18\n\n// Dispatch an async action\nawait store.dispatch(\"loadInitialValue\", \"user-abc\");\nconsole.log(\"Value after loadInitialValue:\", store.get().value); // 100 (overwritten by fetched value)\nconsole.log(\"History:\", store.get().history);\n\n// 5. Deregister an action\nconst deregisterRisky = store.register({\n  name: \"riskyAction\",\n  fn: () => {\n    throw new Error(\"Risky action!\");\n  },\n});\n\nderegisterRisky(); // Action is now removed\n\ntry {\n  await store.dispatch(\"riskyAction\");\n} catch (error: any) {\n  console.error(\n    \"Expected error when dispatching deregistered action:\",\n    error.message,\n  );\n}\n```\n\n### Reactive Selectors\n\nReactive selectors provide an efficient way to derive computed data from your store. They automatically track their dependencies and will only re-evaluate and notify subscribers if the underlying data they access changes. This prevents unnecessary re-renders in UI frameworks.\n\n```typescript\nimport { ReactiveDataStore } from \"@asaidimu/utils-store\";\n\ninterface UserProfile {\n  firstName: string;\n  lastName: string;\n  email: string;\n  address: {\n    city: string;\n    zipCode: string;\n  };\n  isActive: boolean;\n  friends: string[];\n}\n\nconst store = new ReactiveDataStore<UserProfile>({\n  firstName: \"John\",\n  lastName: \"Doe\",\n  email: \"john.doe@example.com\",\n  address: {\n    city: \"New York\",\n    zipCode: \"10001\",\n  },\n  isActive: true,\n  friends: [\"Alice\", \"Bob\"],\n});\n\n// Create a reactive selector for the full name\nconst selectFullName = store.select(\n  (state) => `${state.firstName} ${state.lastName}`,\n);\n\n// Create a reactive selector for user's location\nconst selectLocation = store.select(\n  (state) => `${state.address.city}, ${state.address.zipCode}`,\n);\n\n// Create a reactive selector for user's active status\nconst selectIsActive = store.select((state) => state.isActive);\n\n// Create a reactive selector for the number of friends\nconst selectFriendCount = store.select((state) => state.friends.length);\n\nlet lastFullName = \"\";\nlet lastLocation = \"\";\nlet lastIsActive = false;\nlet lastFriendCount = 0;\n\n// Subscribe to the full name selector\nconst unsubscribeFullName = selectFullName.subscribe((fullName) => {\n  lastFullName = fullName;\n  console.log(\"Full Name Changed:\", lastFullName);\n});\n\n// Subscribe to the location selector\nconst unsubscribeLocation = selectLocation.subscribe((location) => {\n  lastLocation = location;\n  console.log(\"Location Changed:\", lastLocation);\n});\n\n// Subscribe to the active status selector\nconst unsubscribeIsActive = selectIsActive.subscribe((isActive) => {\n  lastIsActive = isActive;\n  console.log(\"Is Active Changed:\", lastIsActive);\n});\n\n// Subscribe to the friend count selector\nconst unsubscribeFriendCount = selectFriendCount.subscribe((count) => {\n  lastFriendCount = count;\n  console.log(\"Friend Count Changed:\", lastFriendCount);\n});\n\n// Get initial values\nlastFullName = selectFullName.get();\nlastLocation = selectLocation.get();\nlastIsActive = selectIsActive.get();\nlastFriendCount = selectFriendCount.get();\nconsole.log(\"Initial Full Name:\", lastFullName);\nconsole.log(\"Initial Location:\", lastLocation);\nconsole.log(\"Initial Is Active:\", lastIsActive);\nconsole.log(\"Initial Friend Count:\", lastFriendCount);\n\nconsole.log(\"\\n--- Performing Updates ---\");\n\n// Update first name (should trigger selectFullName)\nawait store.set({ firstName: \"Jane\" });\n// Output: Full Name Changed: Jane Doe\n\nawait store.set({ lastName: \"Smith\" }); // Should trigger selectFullName\n// Output: Full Name Changed: Jane Smith\n\nawait store.set({ address: { city: \"Los Angeles\" } }); // Should trigger selectLocation\n// Output: Location Changed: Los Angeles, 10001\n\nawait store.set({ isActive: false }); // Should trigger selectIsActive\n// Output: Is Active Changed: false\n\nawait store.set({ email: \"jane.smith@example.com\" }); // Should NOT trigger any of the above selectors directly\n// No output from subscribed selectors\n\nawait store.set((state) => ({ friends: [...state.friends, \"Charlie\"] })); // Should trigger selectFriendCount\n// Output: Friend Count Changed: 3\n\nconsole.log(\"\\n--- Current Values ---\");\nconsole.log(\"Current Full Name:\", selectFullName.get());\nconsole.log(\"Current Location:\", selectLocation.get());\nconsole.log(\"Current Is Active:\", selectIsActive.get());\nconsole.log(\"Current Friend Count:\", selectFriendCount.get());\n\n// Cleanup\nunsubscribeFullName();\nunsubscribeLocation();\nunsubscribeIsActive();\nunsubscribeFriendCount();\n```\n\n### Persistence Integration\n\nThe `ReactiveDataStore` can integrate with any persistence layer that implements the `SimplePersistence<T>` interface. This allows you to load an initial state and automatically save subsequent changes. The store emits a `persistence:ready` event once the persistence layer has loaded any initial state. You can use `@asaidimu/utils-persistence` for concrete implementations or provide your own.\n\n```typescript\nimport { ReactiveDataStore, type StoreEvent } from \"@asaidimu/utils-store\";\nimport { v4 as uuidv4 } from \"uuid\"; // For generating unique instance IDs\n\n// Define the SimplePersistence interface (from `@asaidimu/utils-persistence` or your own)\ninterface SimplePersistence<T extends object> {\n  get(): T | null | Promise<T | null>; // Can be synchronous or asynchronous\n  set(instanceId: string, state: T): boolean | Promise<boolean>; // Can be synchronous or asynchronous\n  subscribe?(instanceId: string, listener: (state: T) => void): () => void; // Optional: for external change detection\n  clear?(): boolean | Promise<boolean>; // Optional: for clearing persisted data\n}\n\n// Example: A simple in-memory persistence for demonstration\n// In a real application, this would interact with localStorage, IndexedDB, a backend API, etc.\nclass InMemoryPersistence<T extends object> implements SimplePersistence<T> {\n  private data: T | null = null;\n  // Using a map to simulate different instances subscribing to common data\n  private subscribers: Map<string, (state: T) => void> = new Map();\n  private uniqueStoreId: string; // Acts as the storageKey/store identifier\n\n  constructor(uniqueStoreId: string, initialData: T | null = null) {\n    this.uniqueStoreId = uniqueStoreId;\n    this.data = initialData;\n  }\n\n  get(): T | null {\n    // Synchronous get for simplicity\n    console.log(`Persistence [${this.uniqueStoreId}]: Loading state...`);\n    return this.data ? structuredClone(this.data) : null;\n  }\n\n  async set(instanceId: string, state: T): Promise<boolean> {\n    console.log(\n      `Persistence [${this.uniqueStoreId}]: Saving state for instance ${instanceId}...`,\n    );\n    this.data = structuredClone(state); // Store a clone\n    // Simulate external change notification for *other* instances\n    this.subscribers.forEach((callback, subId) => {\n      // Only notify other instances, not the one that just saved\n      if (subId !== instanceId) {\n        // Ensure to queue the microtask for async notification to prevent synchronous re-entry issues\n        queueMicrotask(() => callback(structuredClone(this.data!))); // Pass a clone to prevent mutation\n      }\n    });\n    return true;\n  }\n\n  subscribe(instanceId: string, callback: (state: T) => void): () => void {\n    console.log(\n      `Persistence [${this.uniqueStoreId}]: Subscribing to external changes for instance ${instanceId}`,\n    );\n    this.subscribers.set(instanceId, callback);\n    return () => {\n      console.log(\n        `Persistence [${this.uniqueStoreId}]: Unsubscribing for instance ${instanceId}`,\n      );\n      this.subscribers.delete(instanceId);\n    };\n  }\n}\n\ninterface UserConfig {\n  theme: \"light\" | \"dark\" | \"system\";\n  fontSize: number;\n}\n\n// Create a persistence instance, possibly with some pre-existing data\n// The 'my-user-config' string acts as the unique identifier for this particular data set in persistence\nconst userConfigPersistence = new InMemoryPersistence<UserConfig>(\n  \"my-user-config\",\n  { theme: \"dark\", fontSize: 18 },\n);\n\n// Initialize the store with persistence\nconst store = new ReactiveDataStore<UserConfig>(\n  { theme: \"light\", fontSize: 16 }, // Initial state if no persisted data found (or if persistence is not used)\n  userConfigPersistence, // Pass your persistence implementation here\n  // You can also pass persistence options like retries and delay\n  undefined, // Use default DELETE_SYMBOL\n  { persistenceMaxRetries: 5, persistenceRetryDelay: 2000 },\n);\n\n// Optionally, listen for persistence readiness (important for UIs that depend on loaded state)\nconst storeReadyPromise = new Promise<void>((resolve) => {\n  store.on(\"persistence:ready\", (data) => {\n    console.log(\n      `Store is ready and persistence is initialized! Timestamp: ${new Date(data.timestamp).toLocaleTimeString()}`,\n    );\n    resolve();\n  });\n});\n\nconsole.log(\"Store initial state (before persistence loads):\", store.get());\n// Output: Store initial state (before persistence loads): { theme: 'light', fontSize: 16 } (initial state provided to constructor)\n\nawait storeReadyPromise; // Wait for persistence to load/initialize\n\n// Now, store.get() will reflect the loaded state from persistence\nconsole.log(\"Store state after persistence load:\", store.get());\n// Output: Store state after persistence load: { theme: 'dark', fontSize: 18 } (from InMemoryPersistence)\n\n// Now update the state, which will trigger persistence.set()\nawait store.set({ theme: \"light\" });\nconsole.log(\"Current theme:\", store.get().theme);\n// Output: Current theme: light\n// Persistence: Saving state for instance <uuid>...\n\n// Simulate an external change (e.g., another tab or process updating the state)\n// Note: The `instanceId` here should be different from the store's `store.id()`\n// to simulate an external change and trigger the store's internal persistence subscription.\nawait userConfigPersistence.set(uuidv4(), { theme: \"system\", fontSize: 20 });\n// The store will automatically update its state and notify its listeners due to the internal subscription.\nconsole.log(\"Current theme after external update:\", store.get().theme);\n// Output: Current theme after external update: system\n```\n\n### Middleware System\n\nMiddleware functions allow you to intercept and modify state updates or prevent them from proceeding.\n\n#### Transform Middleware\n\nThese middlewares can transform the `DeepPartial` update or perform side effects. They receive the current state and the incoming partial update, and can return a new partial state to be merged. If they don't return anything (`void`), the update proceeds as is.\n\n```typescript\nimport { ReactiveDataStore, type DeepPartial } from \"@asaidimu/utils-store\";\n\ninterface MyState {\n  counter: number;\n  logs: string[];\n  lastAction: string | null;\n  version: number;\n}\n\nconst store = new ReactiveDataStore<MyState>({\n  counter: 0,\n  logs: [],\n  lastAction: null,\n  version: 0,\n});\n\n// Middleware 1: Logger\n// Logs the incoming update before it's processed. Does not return anything (void), so it doesn't modify the update.\nstore.use({\n  name: \"LoggerMiddleware\",\n  action: (state, update) => {\n    console.log(\"Middleware: Incoming update:\", update);\n  },\n});\n\n// Middleware 2: Timestamp and Action Tracker\n// Modifies the update to add a timestamp and track the last action. Returns a partial state that gets merged.\nstore.use({\n  name: \"TimestampActionMiddleware\",\n  action: (state, update) => {\n    const actionDescription = JSON.stringify(update);\n    return {\n      lastAction: `Updated at ${new Date().toLocaleTimeString()} with ${actionDescription}`,\n      logs: [...state.logs, `Update processed: ${actionDescription}`],\n    };\n  },\n});\n\n// Middleware 3: Version Incrementor\n// Increments a version counter for every successful update.\nstore.use({\n  name: \"VersionIncrementMiddleware\",\n  action: (state) => {\n    return { version: state.version + 1 };\n  },\n});\n\n// Middleware 4: Counter Incrementor\n// This middleware intercepts updates to 'counter' and increments it by the value provided,\n// instead of setting it directly.\nstore.use({\n  name: \"CounterIncrementMiddleware\",\n  action: (state, update) => {\n    // Only apply if the incoming update is a number for 'counter'\n    if (typeof update.counter === \"number\") {\n      return { counter: state.counter + update.counter };\n    }\n    // Return the original update or undefined if no transformation is needed for other paths\n    return undefined;\n  },\n});\n\nawait store.set({ counter: 5 }); // Will increment counter by 5, not set to 5\n/* Expected console output from LoggerMiddleware:\nMiddleware: Incoming update: { counter: 5 }\n*/\nconsole.log(\"State after counter set:\", store.get());\n/* Output will show:\n  counter: 0 (initial) + 5 (update) = 5 (due to CounterIncrementMiddleware)\n  lastAction updated by TimestampActionMiddleware,\n  logs updated by TimestampActionMiddleware,\n  version: 1 (incremented by VersionIncrementMiddleware)\n*/\n\nawait store.set({ lastAction: \"Manual update from outside middleware\" });\n/* Expected console output from LoggerMiddleware:\nMiddleware: Incoming update: { lastAction: 'Manual update from outside middleware' }\n*/\nconsole.log(\"State after manual action:\", store.get());\n/* Output will show:\n  lastAction will be overwritten by TimestampActionMiddleware logic,\n  a new log entry will be added,\n  version: 2\n*/\n\n// Unuse a middleware by its ID\nconst temporaryLoggerId = store.use({\n  name: \"TemporaryLogger\",\n  action: (s, u) => console.log(\"Temporary logger saw:\", u),\n});\nawait store.set({ counter: 1 });\n// Output: Temporary logger saw: { counter: 1 }\nconst removed = temporaryLoggerId(); // Remove the temporary logger\nconsole.log(\"Middleware removed:\", removed);\nawait store.set({ counter: 1 }); // TemporaryLogger will not be called now\n```\n\n#### Blocking Middleware\n\nThese middlewares can prevent an update from proceeding if certain conditions are not met. They return a boolean: `true` to allow, `false` to block. If a blocking middleware throws an error, the update is also blocked. When an update is blocked, the `update:complete` event will contain `blocked: true` and an `error` property.\n\n```typescript\nimport { ReactiveDataStore, type DeepPartial } from \"@asaidimu/utils-store\";\n\ninterface UserProfile {\n  name: string;\n  age: number;\n  isAdmin: boolean;\n  isVerified: boolean;\n}\n\nconst store = new ReactiveDataStore<UserProfile>({\n  name: \"Guest\",\n  age: 0,\n  isAdmin: false,\n  isVerified: false,\n});\n\n// Blocking middleware 1: Age validation\nstore.use({\n  block: true, // Mark as a blocking middleware\n  name: \"AgeValidationMiddleware\",\n  action: (state, update) => {\n    if (\n      update.age !== undefined &&\n      typeof update.age === \"number\" &&\n      update.age < 18\n    ) {\n      console.warn(\"Blocking update: Age must be 18 or older.\");\n      return false; // Block the update\n    }\n    return true; // Allow the update\n  },\n});\n\n// Blocking middleware 2: Admin check\nstore.use({\n  block: true,\n  name: \"AdminRestrictionMiddleware\",\n  action: (state, update) => {\n    // If attempting to become admin, check conditions\n    if (update.isAdmin === true) {\n      if (state.age < 21) {\n        console.warn(\"Blocking update: User must be 21+ to become admin.\");\n        return false;\n      }\n      if (!state.isVerified) {\n        console.warn(\"Blocking update: User must be verified to become admin.\");\n        return false;\n      }\n    }\n    return true; // Allow the update\n  },\n});\n\n// Attempt to set a valid age\nawait store.set({ age: 25 });\nconsole.log(\"User age after valid update:\", store.get().age); // Output: 25\n\n// Attempt to set an invalid age (will be blocked)\nawait store.set({ age: 16 });\nconsole.log(\n  \"User age after invalid update attempt (should be 25):\",\n  store.get().age,\n); // Output: 25\n\n// Attempt to make user admin while not verified (will be blocked)\nawait store.set({ isAdmin: true });\nconsole.log(\n  \"User admin status after failed attempt (should be false):\",\n  store.get().isAdmin,\n); // Output: false\n\n// Verify user, then attempt to make admin again (will still be blocked due to age)\nawait store.set({ isVerified: true });\nawait store.set({ age: 20 });\nawait store.set({ isAdmin: true });\nconsole.log(\n  \"User admin status after failed age attempt (should be false):\",\n  store.get().isAdmin,\n); // Output: false\n\n// Now make user old enough and verified, then try again (should succeed)\nawait store.set({ age: 25 });\nawait store.set({ isAdmin: true });\nconsole.log(\n  \"User admin status after successful attempt (should be true):\",\n  store.get().isAdmin,\n); // Output: true\n```\n\n### Transaction Support\n\nUse `store.transaction()` to group multiple state updates into a single atomic operation. If an error occurs during the transaction (either thrown by your `operation` function or by an internal `store.set` call), all changes made within that transaction will be rolled back to the state _before_ the transaction began. This guarantees data integrity for complex, multi-step operations.\n\n```typescript\nimport { ReactiveDataStore } from \"@asaidimu/utils-store\";\n\ninterface BankAccount {\n  name: string;\n  balance: number;\n  transactions: string[];\n}\n\n// Set up two bank accounts\nconst accountA = new ReactiveDataStore<BankAccount>({\n  name: \"Account A\",\n  balance: 500,\n  transactions: [],\n});\nconst accountB = new ReactiveDataStore<BankAccount>({\n  name: \"Account B\",\n  balance: 200,\n  transactions: [],\n});\n\n// A function to transfer funds using transactions\nasync function transferFunds(\n  fromStore: ReactiveDataStore<BankAccount>,\n  toStore: ReactiveDataStore<BankAccount>,\n  amount: number,\n) {\n  // All operations inside this transaction will be atomic.\n  // If `operation()` throws an error, the state will revert.\n  await fromStore.transaction(async () => {\n    console.log(\n      `Starting transfer of ${amount}. From: ${fromStore.get().balance}, To: ${toStore.get().balance}`,\n    );\n\n    // Deduct from sender\n    await fromStore.set((state) => {\n      if (state.balance < amount) {\n        // Throwing an error here will cause the entire transaction to roll back\n        throw new Error(\"Insufficient funds\");\n      }\n      return {\n        balance: state.balance - amount,\n        transactions: [\n          ...state.transactions,\n          `Debited ${amount} from ${state.name}`,\n        ],\n      };\n    });\n\n    // Simulate a network delay or another async operation that might fail\n    // If an error happens here, the state will still roll back.\n    await new Promise((resolve) => setTimeout(resolve, 50));\n\n    // Add to receiver\n    await toStore.set((state) => ({\n      balance: state.balance + amount,\n      transactions: [\n        ...state.transactions,\n        `Credited ${amount} to ${state.name}`,\n      ],\n    }));\n\n    console.log(\n      `Transfer in progress. From: ${fromStore.get().balance}, To: ${toStore.get().balance}`,\n    );\n  });\n  console.log(\n    `Transfer successful. From: ${fromStore.get().balance}, To: ${toStore.get().balance}`,\n  );\n}\n\nconsole.log(\"--- Initial Balances ---\");\nconsole.log(\"Account A:\", accountA.get().balance); // Expected: 500\nconsole.log(\"Account B:\", accountB.get().balance); // Expected: 200\n\n// --- Scenario 1: Successful transfer ---\nconsole.log(\"\\n--- Attempting successful transfer (100) ---\");\ntry {\n  await transferFunds(accountA, accountB, 100);\n  console.log(\"\\nTransfer 1 successful:\");\n  console.log(\"Account A:\", accountA.get()); // Expected: balance 400, transactions: ['Debited 100 from Account A']\n  console.log(\"Account B:\", accountB.get()); // Expected: balance 300, transactions: ['Credited 100 to Account B']\n} catch (error: any) {\n  console.error(\"Transfer 1 failed unexpectedly:\", error.message);\n}\n\n// --- Scenario 2: Failed transfer (insufficient funds) ---\nconsole.log(\"\\n--- Attempting failed transfer (1000) ---\");\ntry {\n  // Account A now has 400, so this should fail\n  await transferFunds(accountA, accountB, 1000);\n} catch (error: any) {\n  console.error(\"Transfer 2 failed as expected:\", error.message);\n} finally {\n  console.log(\"Transfer 2 attempt, state after rollback:\");\n  // State should be rolled back to its state *before* the transaction attempt\n  console.log(\"Account A:\", accountA.get());\n  // Expected: balance 400 (rolled back to state before this transaction)\n  console.log(\"Account B:\", accountB.get());\n  // Expected: balance 300 (rolled back to state before this transaction)\n}\n```\n\n### Artifacts (Dependency Injection)\n\nThe Artifact system provides a powerful way to manage external dependencies, services, or complex objects that your actions or other artifacts might need. It supports `Singleton` (created once, reactive to dependencies) and `Transient` (new instance every time) scopes, and allows artifacts to depend on state changes and other artifacts.\n\n```typescript\nimport {\n  ReactiveDataStore,\n  ArtifactContainer,\n  ArtifactScope,\n} from \"@asaidimu/utils-store\";\n\ninterface AppState {\n  user: { id: string; name: string };\n  config: { apiUrl: string; logLevel: string };\n}\n\n// Mock DataStore interface for standalone ArtifactContainer usage\nconst store = new ReactiveDataStore<AppState>({\n  user: { id: \"user-1\", name: \"Alice\" },\n  config: { apiUrl: \"/api/v1\", logLevel: \"info\" },\n});\n\nconst container = new ArtifactContainer(store);\n\n// --- Artifact Definitions ---\n\n// Artifact 1: Simple Logger (Transient) - new instance every time\ncontainer.register({\n  key: \"logger\",\n  scope: ArtifactScope.Transient,\n  factory: () => {\n    console.log(\"Logger artifact created (Transient)\");\n    return {\n      log: (message: string) => console.log(`[LOG] ${message}`),\n    };\n  },\n});\n\n// Artifact 2: API Client (Singleton) - depends on state.config.apiUrl\nconst apiClientCleanup = () => console.log(\"API Client connection closed.\");\ncontainer.register({\n  key: \"apiClient\",\n  scope: ArtifactScope.Singleton,\n  factory: async ({ use, onCleanup, current }) => {\n    const apiUrl = await use(({ select }) =>\n      select((state: AppState) => state.config.apiUrl),\n    );\n    console.log(`API Client created/re-created for URL: ${apiUrl}`);\n    if (current) {\n      console.log(\"Re-creating API client. Old instance:\", current);\n    }\n    onCleanup(apiClientCleanup); // Register cleanup for this instance\n    return {\n      fetchUser: (id: string) => `Fetching ${id} from ${apiUrl}`,\n      sendData: (data: any) => `Sending ${JSON.stringify(data)} to ${apiUrl}`,\n    };\n  },\n});\n\n// Artifact 3: User Service (Singleton) - depends on 'apiClient' and state.user.name\nconst userServiceCleanup = () =>\n  console.log(\"User Service resources released.\");\ncontainer.register({\n  key: \"userService\",\n  scope: ArtifactScope.Singleton,\n  factory: async ({ use, onCleanup, current }) => {\n    const apiClient = await use(({ resolve }) => resolve(\"apiClient\"));\n    const userName = await use(({ select }) =>\n      select((state: AppState) => state.user.name),\n    );\n    console.log(`User Service created/re-created for user: ${userName}`);\n    if (current) {\n      console.log(\"Re-creating User Service. Old instance:\", current);\n    }\n    onCleanup(userServiceCleanup); // Register cleanup for this instance\n    return {\n      getUserProfile: () => apiClient.instance!.fetchUser(store.get().user.id),\n      updateUserName: (newName: string) =>\n        `Updating user name to ${newName} via API. Current: ${userName}`,\n    };\n  },\n});\n\n// --- Usage ---\n\nasync function runDemo() {\n  console.log(\"\\n--- Initial Artifact Resolution ---\");\n  const logger1 = await container.resolve(\"logger\");\n  logger1.instance!.log(\"Application started.\");\n\n  const apiClient1 = await container.resolve(\"apiClient\");\n  console.log(apiClient1.instance!.fetchUser(\"123\"));\n\n  const userService1 = await container.resolve(\"userService\");\n  console.log(userService1.instance!.getUserProfile());\n\n  // Transient artifact resolves a new instance\n  const logger2 = await container.resolve(\"logger\");\n  console.log(\n    \"Logger instances are different:\",\n    logger1.instance !== logger2.instance,\n  );\n\n  // Singleton artifacts resolve the same instance initially\n  const apiClient2 = await container.resolve(\"apiClient\");\n  console.log(\n    \"API Client instances are same:\",\n    apiClient1.instance === apiClient2.instance,\n  );\n\n  console.log(\"\\n--- Simulate State Change (config.apiUrl) ---\");\n  await store.set({ config: { apiUrl: \"/api/v2\" } });\n  // This state change invalidates 'apiClient' which depends on 'config.apiUrl'\n  // and then invalidates 'userService' which depends on 'apiClient'.\n\n  // After config.apiUrl changes, apiClient (and userService) should be re-created\n  const apiClient3 = await container.resolve(\"apiClient\"); // This will trigger re-creation\n  console.log(apiClient3.instance!.fetchUser(\"123\"));\n  console.log(\n    \"API Client instances are different:\",\n    apiClient3.instance !== apiClient1.instance,\n  ); // Should be a new instance\n\n  // userService should also be re-created because apiClient, its dependency, was re-created\n  const userService2 = await container.resolve(\"userService\");\n  console.log(userService2.instance!.getUserProfile());\n  console.log(\n    \"User Service instances are different:\",\n    userService2.instance !== userService1.instance,\n  ); // Should be a new instance\n\n  console.log(\"\\n--- Simulate State Change (user.name) ---\");\n  await store.set({ user: { name: \"Bob\" } });\n\n  // Only userService (which depends on user.name) should be re-created this time, not apiClient\n  const apiClient4 = await container.resolve(\"apiClient\");\n  console.log(\n    \"API Client instances are same:\",\n    apiClient4.instance === apiClient3.instance,\n  ); // Still the same API client instance\n\n  const userService3 = await container.resolve(\"userService\");\n  console.log(userService3.instance!.getUserProfile());\n  console.log(\n    \"User Service instances are different:\",\n    userService3.instance !== userService2.instance,\n  ); // New user service instance\n\n  console.log(\"\\n--- Unregistering Artifacts ---\");\n  await container.unregister(\"userService\");\n  // Output: User Service resources released. (cleanup called)\n  await container.unregister(\"apiClient\");\n  // Output: API Client connection closed. (cleanup called)\n\n  try {\n    await container.resolve(\"userService\");\n  } catch (e: any) {\n    console.error(\"Expected error:\", e.message); // Artifact not found\n  }\n}\n\nrunDemo();\n```\n\n### Store Observer (Debugging & Observability)\n\nThe `StoreObserver` class provides advanced debugging and monitoring capabilities for any `ReactiveDataStore` instance. It allows you to inspect event history, state changes, and even time-travel through your application's state. It's an invaluable tool for understanding complex state flows.\n\n```typescript\nimport {\n  ReactiveDataStore,\n  StoreObserver,\n  type StoreEvent,\n  type DeepPartial,\n} from \"@asaidimu/utils-store\";\n\ninterface DebuggableState {\n  user: { name: string; status: \"online\" | \"offline\" };\n  messages: string[];\n  settings: { debugMode: boolean; logLevel: string };\n  metrics: { updates: number };\n}\n\nconst store = new ReactiveDataStore<DebuggableState>({\n  user: { name: \"Debugger\", status: \"online\" },\n  messages: [],\n  settings: { debugMode: true, logLevel: \"info\" },\n  metrics: { updates: 0 },\n});\n\n// Initialize observability for the store\n// Options allow granular control over what is tracked and logged.\nconst observer = new StoreObserver(store, {\n  maxEvents: 50, // Keep up to 50 internal store events in history\n  maxStateHistory: 5, // Keep up to 5 state snapshots for time-travel\n  enableConsoleLogging: true, // Log events to browser console for immediate feedback\n  logEvents: {\n    updates: true, // Log all update lifecycle events (start/complete)\n    middleware: true, // Log middleware start/complete/error/blocked/executed events\n    transactions: true, // Log transaction start/complete/error events\n    actions: true, // Log action start/complete/error events\n    selectors: true, // Log selector accessed/changed events\n  },\n  performanceThresholds: {\n    updateTime: 50, // Warn in console if an update takes > 50ms\n    middlewareTime: 20, // Warn if a middleware takes > 20ms\n  },\n});\n\n// Add a simple middleware to demonstrate middleware logging and metrics update\nstore.use({\n  name: \"UpdateMetricsMiddleware\",\n  action: async (state, update) => {\n    await new Promise((resolve) => setTimeout(resolve, 10)); // Simulate work\n    return { metrics: { updates: state.metrics.updates + 1 } };\n  },\n});\n\n// Perform some state updates\nawait store.set({ user: { status: \"offline\" } });\nawait store.set({ messages: [\"Hello World!\"] });\nawait store.set({ settings: { debugMode: false } });\n\n// Simulate a slow update to trigger performance warning\n// await new Promise(resolve => setTimeout(resolve, 60)); // Artificially delay\n// await store.set({ messages: ['Another message', 'And another'] });\n// This last set will cause a console warning for \"Slow update detected\" if enableConsoleLogging is true.\n\n// 1. Get Event History\nconsole.log(\"\\n--- Event History (Most Recent First) ---\");\nconst events = observer.getEventHistory();\n// Events will include: update:start, update:complete (multiple times), middleware:start, middleware:complete, etc.\nevents\n  .slice(0, 5)\n  .forEach((event) =>\n    console.log(\n      `Type: ${event.type}, Data: ${JSON.stringify(event.data).substring(0, 70)}...`,\n    ),\n  );\n\n// 2. Get State History\nconsole.log(\"\\n--- State History (Most Recent First) ---\");\nconst stateSnapshots = observer.getStateHistory();\nstateSnapshots.forEach((snapshot, index) =>\n  console.log(\n    `State #${index}: Messages: ${snapshot.state.messages.join(\", \")}, User Status: ${snapshot.state.user.status}`,\n  ),\n);\n\n// 3. Get Recent Changes (Diffs)\nconsole.log(\"\\n--- Recent State Changes (Diffs) ---\");\nconst recentChanges = observer.getRecentChanges(3); // Show diffs for last 3 changes\nrecentChanges.forEach((change, index) => {\n  console.log(`\\nChange #${index}:`);\n  console.log(\n    `  Timestamp: ${new Date(change.timestamp).toLocaleTimeString()}`,\n  );\n  console.log(`  Changed Paths: ${change.changedPaths.join(\", \")}`);\n  console.log(`  From (partial):`, change.from); // Only changed parts of the state\n  console.log(`  To (partial):`, change.to); // Only changed parts of the state\n});\n\n// 4. Time-Travel Debugging\nconsole.log(\"\\n--- Time-Travel ---\");\nconst timeTravel = observer.createTimeTravel();\n\n// Add more states to the history for time-travel demonstration\nawait store.set({ user: { status: \"online\" } }); // Current State (A)\nawait store.set({ messages: [\"First message\"] }); // Previous State (B)\nawait store.set({ messages: [\"Second message\"] }); // Previous State (C)\n\nconsole.log(\"Current state (latest):\", store.get().messages); // Output: ['Second message']\n\nif (timeTravel.canUndo()) {\n  await timeTravel.undo(); // Go back to State B\n  console.log(\"After undo 1:\", store.get().messages); // Output: ['First message']\n}\n\nif (timeTravel.canUndo()) {\n  await timeTravel.undo(); // Go back to State A\n  console.log(\"After undo 2:\", store.get().messages); // Output: [] (the state before 'First message' was added)\n}\n\nif (timeTravel.canRedo()) {\n  await timeTravel.redo(); // Go forward to State B\n  console.log(\"After redo 1:\", store.get().messages); // Output: ['First message']\n}\n\nconsole.log(\"Time-Travel history length:\", timeTravel.length()); // Reflects `maxStateHistory` + initial state\n\n// 5. Custom Debugging Middleware (provided by StoreObserver for convenience)\n// Example: A logging middleware that logs every update\nconst loggingMiddleware = observer.createLoggingMiddleware({\n  logLevel: \"info\", // Can be 'debug', 'info', 'warn'\n  logUpdates: true, // Whether to log the update payload itself\n});\nconst loggingMiddlewareId = store.use({\n  name: \"DebugLogging\",\n  action: loggingMiddleware,\n});\n\nawait store.set({ user: { name: \"New User Via Debug Logger\" } }); // This update will be logged by the created middleware.\n// Expected console output: \"State Update: { user: { name: 'New User Via Debug Logger' } }\"\n\n// Example: A validation middleware (blocking)\nconst validationMiddleware = observer.createValidationMiddleware(\n  (state, update) => {\n    if (update.messages && update.messages.length > 5) {\n      return { valid: false, reason: \"Too many messages!\" };\n    }\n    return true;\n  },\n);\nconst validationMiddlewareId = store.use({\n  name: \"DebugValidation\",\n  block: true,\n  action: validationMiddleware,\n});\n\ntry {\n  await store.set({ messages: [\"m1\", \"m2\", \"m3\", \"m4\", \"m5\", \"m6\"] }); // This will be blocked\n} catch (e: any) {\n  console.warn(\n    `Caught expected error from validation middleware: ${e.message}`,\n  );\n}\nconsole.log(\"Current messages after failed validation:\", store.get().messages); // Should be the state before this set.\n\n// 6. Clear history\nobserver.clearHistory();\nconsole.log(\n  \"\\nHistory cleared. Events:\",\n  observer.getEventHistory().length,\n  \"State snapshots:\",\n  observer.getStateHistory().length,\n);\n// Output: History cleared. Events: 0 State snapshots: 1 (keeps current state)\n\n// 7. Disconnect observer when no longer needed to prevent memory leaks\nobserver.disconnect();\nconsole.log(\n  \"\\nObserver disconnected. No more events or state changes will be tracked.\",\n);\n// After disconnect, new updates won't be logged or tracked by Observer\nawait store.set({ messages: [\"Final message after disconnect\"] });\n```\n\n### Event System\n\nThe store emits various events during its lifecycle, allowing for advanced monitoring, logging, and integration with external systems. You can subscribe to these events using `store.on(eventName, listener)`. The `StoreObserver` leverages this event system internally to provide its rich debugging capabilities.\n\n```typescript\nimport { ReactiveDataStore, type StoreEvent } from \"@asaidimu/utils-store\";\n\ninterface MyState {\n  value: number;\n  status: string;\n}\n\nconst store = new ReactiveDataStore<MyState>({ value: 0, status: \"idle\" });\n\n// Subscribe to 'update:start' event - triggered before an update begins processing.\nstore.on(\"update:start\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ⚡ Update started. Action ID: ${data.actionId || \"N/A\"}`,\n  );\n});\n\n// Subscribe to 'update:complete' event - triggered after an update is fully applied or blocked.\nstore.on(\"update:complete\", (data) => {\n  if (data.blocked) {\n    console.warn(\n      `[${new Date(data.timestamp).toLocaleTimeString()}] ✋ Update blocked. Error:`,\n      data.error?.message,\n    );\n  } else {\n    console.log(\n      `[${new Date(data.timestamp).toLocaleTimeString()}] ✅ Update complete. Changed paths: ${data.deltas?.map((d: any) => d.path).join(\", \")} (took ${data.duration?.toFixed(2)}ms)`,\n    );\n  }\n});\n\n// Subscribe to middleware lifecycle events\nstore.on(\"middleware:start\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ▶ Middleware \"${data.name}\" (${data.type || \"transform\"}) started.`,\n  );\n});\n\nstore.on(\"middleware:complete\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ◀ Middleware \"${data.name}\" (${data.type || \"transform\"}) completed in ${data.duration?.toFixed(2)}ms.`,\n  );\n});\n\nstore.on(\"middleware:error\", (data) => {\n  console.error(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ❌ Middleware \"${data.name}\" failed:`,\n    data.error,\n  );\n});\n\nstore.on(\"middleware:blocked\", (data) => {\n  console.warn(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 🛑 Middleware \"${data.name}\" blocked an update.`,\n  );\n});\n\nstore.on(\"middleware:executed\", (data) => {\n  // This event captures detailed execution info for all middlewares, useful for aggregate metrics.\n  console.debug(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 📊 Middleware executed: \"${data.name}\" - Duration: ${data.duration?.toFixed(2)}ms, Blocked: ${data.blocked}`,\n  );\n});\n\n// Subscribe to transaction lifecycle events\nstore.on(\"transaction:start\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 📦 Transaction started.`,\n  );\n});\n\nstore.on(\"transaction:complete\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 📦 Transaction complete.`,\n  );\n});\n\nstore.on(\"transaction:error\", (data) => {\n  console.error(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 📦 Transaction failed:`,\n    data.error,\n  );\n});\n\n// Subscribe to persistence events\nstore.on(\"persistence:ready\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 💾 Persistence layer is ready.`,\n  );\n});\nstore.on(\"persistence:queued\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ⏳ Persistence task queued: ${data.taskId}, queue size: ${data.queueSize}`,\n  );\n});\nstore.on(\"persistence:success\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ✅ Persistence success for task: ${data.taskId}, took ${data.duration?.toFixed(2)}ms`,\n  );\n});\nstore.on(\"persistence:retry\", (data) => {\n  console.warn(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 🔄 Persistence retry for task: ${data.taskId}, attempt ${data.attempt}/${data.maxRetries}`,\n  );\n});\nstore.on(\"persistence:failed\", (data) => {\n  console.error(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ❌ Persistence failed permanently for task: ${data.taskId}`,\n    data.error,\n  );\n});\n\n// Subscribe to action events\nstore.on(\"action:start\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 🚀 Action \"${data.name}\" (ID: ${data.actionId}) started with params:`,\n    data.params,\n  );\n});\n\nstore.on(\"action:complete\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] ✔️ Action \"${data.name}\" (ID: ${data.actionId}) completed in ${data.duration?.toFixed(2)}ms.`,\n  );\n});\n\nstore.on(\"action:error\", (data) => {\n  console.error(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 🔥 Action \"${data.name}\" (ID: ${data.actionId}) failed:`,\n    data.error,\n  );\n});\n\n// Subscribe to selector events\nstore.on(\"selector:accessed\", (data) => {\n  console.debug(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 👀 Selector (ID: ${data.selectorId}) accessed paths: ${data.accessedPaths.join(\", \")}`,\n  );\n});\n\nstore.on(\"selector:changed\", (data) => {\n  console.log(\n    `[${new Date(data.timestamp).toLocaleTimeString()}] 📢 Selector (ID: ${data.selectorId}) changed. New result:`,\n    data.newResult,\n  );\n});\n\n// Add a transform middleware to demonstrate `middleware:start/complete/executed`\nstore.use({\n  name: \"ValueIncrementMiddleware\",\n  action: (state, update) => {\n    return { value: state.value + (update.value || 0) };\n  },\n});\n\n// Add a blocking middleware to demonstrate `middleware:error` and `update:complete` (blocked)\nstore.use({\n  name: \"StatusValidationMiddleware\",\n  block: true,\n  action: (state, update) => {\n    if (update.status === \"error\" && state.value < 10) {\n      throw new Error(\"Cannot set status to error if value is too low!\");\n    }\n    return true;\n  },\n});\n\n// Perform operations to trigger events\nconsole.log(\"\\n--- Perform Initial Update ---\");\nawait store.set({ value: 5, status: \"active\" }); // Will increment value by 5 (due to middleware)\n\nconsole.log(\"\\n--- Perform Transactional Update (Success) ---\");\nawait store.transaction(async () => {\n  await store.set({ value: 3 }); // Inside transaction, value becomes 5 + 3 = 8\n  await store.set({ status: \"processing\" });\n});\n\nconsole.log(\"\\n--- Perform Update (Blocked by Middleware) ---\");\ntry {\n  await store.set({ status: \"error\" }); // This should be blocked by StatusValidationMiddleware (current value is 8, which is < 10)\n} catch (e: any) {\n  console.log(`Caught expected error: ${e.message}`);\n}\n\nconsole.log(\n  \"Final value:\",\n  store.get().value,\n  \"Final status:\",\n  store.get().status,\n);\n```\n\n---\n\n## Project Architecture\n\nThe `@asaidimu/utils-store` library is built with a modular, component-based architecture to promote maintainability, testability, and extensibility. Each core concern is encapsulated within its own class, with `ReactiveDataStore` acting as the central coordinator.\n\n### Core Components\n\n- **`ReactiveDataStore<T>`**: The public API and primary entry point. It orchestrates interactions between all other internal components. It manages the update queue, ensures sequential processing of `set` calls, and exposes public methods like `get`, `dispatch`, `select`, `set`, `watch`, `transaction`, `use`, and `on`.\n- **`StateManager<T>`**: Responsible for the direct management of the immutable state (`cache`). It applies incoming state changes, performs efficient object `diff`ing to identify modified paths, and notifies internal listeners (via an `updateBus`) about granular state changes.\n- **`MiddlewareEngine<T>`**: Manages the registration and execution of both `blocking` and `transform` middleware functions. It ensures middleware execution order, handles potential errors, and emits detailed lifecycle events for observability.\n- **`PersistenceHandler<T>`**: Handles integration with an external persistence layer via the `SimplePersistence` interface. It loads initial state, saves subsequent changes, and listens for external updates from the persistence layer to keep the in-memory state synchronized across multiple instances (e.g., browser tabs). It also manages a background queue for persistence tasks with retries and exponential backoff.\n- **`TransactionManager<T>`**: Provides atomic state operations. It creates a snapshot of the state before an `operation` begins and, if the operation fails, ensures the state is reverted to this snapshot, guaranteeing data integrity. It integrates closely with the store's event system for tracking transaction status.\n- **`MetricsCollector`**: Observes the internal `eventBus` to gather and expose real-time performance metrics of the store, such as update counts, listener executions, average update times, largest update size, total events fired, and transaction/middleware execution counts.\n- **`SelectorManager<T>`**: Manages the creation, memoization, and reactivity of selectors. It tracks the paths accessed by each selector and re-evaluates them efficiently only when relevant parts of the state change, notifying their subscribers.\n- **`StoreObserver<T>`**: An optional, yet highly valuable, debugging companion. It taps into the `ReactiveDataStore`'s extensive event stream and state changes to build a comprehensive history of events and state snapshots, enabling powerful features like time-travel debugging, detailed console logging, and performance monitoring. It also supports saving/loading and exporting observer sessions.\n- **`ArtifactContainer<T>`**: Implements a dependency injection system for managing services (artifacts) with different lifecycles (Singleton, Transient) and complex dependencies on state paths and other artifacts. It handles lazy initialization, reactive re-evaluation, and resource cleanup.\n- **`ActionManager<T>`**: Manages the registration of named actions and their dispatch. It handles action lifecycle events, debouncing logic, and ensures actions interact correctly with the core `set` method.\n- **`createMerge`**: A factory function that returns a configurable deep merging utility (`MergeFunction`). This utility is crucial for immutably applying partial updates and specifically handles `Symbol.for(\"delete\")` for explicit property removal.\n- **`createDiff` / `createDerivePaths`**: Factory functions returning utilities for efficient comparison between two objects (`createDiff`) to identify changed paths, and for deriving all parent paths from a set of changes (`createDerivePaths`). These are fundamental for optimizing listener notifications and internal change detection.\n\n### Data Flow\n\nThe `ReactiveDataStore` handles state updates in a robust, queued, and event-driven manner:\n\n1.  **`store.set(update)` or `store.dispatch(actionName, actionFn, ...)` call**:\n    - If `dispatch` is used, an `action:start` event is emitted. The `actionFn` (which can be `async`) is executed to produce a `DeepPartial` update which is then passed to `store.set`. Actions can be debounced, delaying their `set` call and potentially cancelling previous in-flight actions.\n    - All `set` calls are automatically queued to prevent race conditions during concurrent updates, ensuring sequential processing. The `store.state().pendingChanges` reflects the queue.\n    - An `update:start` event is immediately emitted.\n2.  **Middleware Execution**:\n    - The `MiddlewareEngine` first executes all `blocking` middlewares (registered via `store.use({ block: true, ... })`). If any blocking middleware returns `false` or throws an error, the update is immediately halted. An `update:complete` event with `blocked: true` and an `error` property is emitted, and the process stops, with the state remaining unchanged.\n    - If not blocked, `transform` middlewares (registered via `store.use({ action: ... })`) are executed sequentially. Each transform middleware receives the current state and the incoming partial update, and can return a new `DeepPartial<T>` that is then merged into the effective update payload.\n    - Detailed lifecycle events (`middleware:start`, `middleware:complete`, `middleware:error`, `middleware:blocked`, `middleware:executed`) are emitted during this phase, providing granular insight into middleware behavior.\n3.  **State Application**:\n    - The `StateManager` receives the (potentially transformed) final `DeepPartial` update.\n    - It internally uses the `createMerge` utility to immutably construct the new full state object.\n    - It then performs a `createDiff` comparison between the _previous_ state and the _new_ state to precisely identify all `changedPaths` (an array of `StateDelta` objects).\n    - If changes are detected, the `StateManager` updates its internal immutable `cache` to the `newState` and then emits an internal `update` event for each granular `changedPath` on its `updateBus`.\n4.  **Listener Notification**:\n    - Any external subscribers (registered with `store.watch()` or `store.subscribe()`) whose registered paths match or are parent paths of the `changedPaths` are efficiently notified with the latest state. The `MetricsCollector` tracks `listenerExecutions` during this phase.\n    - The `SelectorManager` re-evaluates reactive selectors whose `accessedPaths` are affected by the `changedPaths`. If a selector's result changes, it notifies its own subscribers and emits a `selector:changed` event.\n    - `ArtifactContainer` also receives change notifications for state paths its artifacts depend on, triggering re-evaluation for `Singleton` scoped artifacts.\n5.  **Persistence Handling**:\n    - The `PersistenceHandler` receives the `changedPaths` and the new state. If a `SimplePersistence` implementation was configured during store initialization, it attempts to save the new state using `persistence.set()`. This is done in the background via a queue, emitting `persistence:queued`, `persistence:success`, `persistence:retry`, and `persistence:failed` events.\n    - The `PersistenceHandler` also manages loading initial state and reacting to external state changes (e.g., from other browser tabs or processes) through `persistence.subscribe()`.\n6.  **Completion & Queue Processing**:\n    - An `update:complete` event is emitted, containing crucial information about the update's duration, the `StateDelta[]`, and any blocking errors.\n    - If the update originated from a `dispatch` call, an `action:complete` or `action:error` event is emitted, correlating with the `action:start` event via a shared `actionId`.\n    - The update queue automatically processes the next pending update.\n\n### Extension Points\n\n- **Custom Middleware**: Developers can inject their own `Middleware` (for transformation) and `BlockingMiddleware` (for validation/prevention) functions using `store.use()`. This allows for highly customizable update logic, centralized logging, complex validation, authorization, or triggering specific side effects.\n- **Custom Persistence**: The `SimplePersistence<T>` interface provides a clear contract for developers to integrate the store with any storage solution, whether it's local storage, IndexedDB, a backend API, or a WebSocket connection. This offers complete control over data durability and synchronization.\n- **Custom Artifacts**: The `ArtifactContainer` (directly or via React integration) allows defining and managing any custom services, utilities, or dependencies with defined scopes and lifecycle management.\n\n---\n\n## Development & Contributing\n\nContributions are welcome! Follow these guidelines to get started with local development and contribute to the project.\n\n### Development Setup\n\n1.  **Clone the repository:**\n    ```bash\n    git clone https://github.com/asaidimu/erp-utils.git\n    cd erp-utils\n    ```\n2.  **Install dependencies:**\n    The `@asaidimu/utils-s","readmeFilename":"README.md"}