{"_id":"state-resource","_rev":"31-8983b3ba81910520fcc8f21d2714d7e6","name":"state-resource","dist-tags":{"latest":"0.7.6"},"versions":{"0.0.2":{"name":"state-resource","version":"0.0.2","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.2","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"938140707d4c81fb8120e25ff12d04fcf43b5ec6","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.2.tgz","fileCount":15,"integrity":"sha512-1CMhtgSTmm7JR8+TjJHdXrkpGEStPjX5RfeQ23Si9OVr+A/BLKe8VmJbwGa6Qiti13M1w4pDuV1B5N1ZxI8AFQ==","signatures":[{"sig":"MEUCIQDk7MMwmPn9r+8wTtw2cS2cj89NlAAEXk5jbuQ0Fk+wXAIgc5nyQ5WHefy2BmRN5bB6dviXk0O+jSaR/31YwgL7Mf8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4697},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"782f5e6dcb585d8a9c9635375da5fe19b358e0ec","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.2_1733976688517_0.2529540095058216","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"state-resource","version":"0.0.3","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.3","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"3e86fc5c4a1c6f7d27ad9c952c5a24ebfc6037c1","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.3.tgz","fileCount":15,"integrity":"sha512-GCQF40bMTumZVcyFaJj+7xAa2l2eVbqvQjSsH3fbuHRMtKpkk8jBXLUz4agSLoUq1Pud3ICjIKi4aqZ2du9/Uw==","signatures":[{"sig":"MEUCIAztKIR5itbCQ1LkvSJNpdVRRwG7Jz+nK3Bncq/Mu3DaAiEA0RfVNtZ0d/nUNUurGFYln1hoYJeOyS6E9duLL5lr3GQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"2da532d600e6278c8a6534c06ac56ea275d68c7b","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.3_1733976858502_0.22720905824730453","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"state-resource","version":"0.0.4","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.4","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"747d6a6e8869d7251abb520c6c677c01dff5f905","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.4.tgz","fileCount":15,"integrity":"sha512-vpDSg+8LBZ0yw3RHqMQJZNdDl/XdAH6LbNJOqNm1mppuLCUqhCMz4eD2i9BQ5zmWq1qS62vsFYLgvtLsURxyGA==","signatures":[{"sig":"MEUCIQC6X6KTYdPkkdcScZl1YcBmpWJBlx5ch/fUxDvTxpkPYgIgcO4QjZdC614x41exECQGCaHXWT50MucI2tWLEUPTKgs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"268424043fa033eda0de122f97818d8c925b7b53","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.4_1733976861653_0.35292835341771034","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"state-resource","version":"0.0.5","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.5","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"ffd9696c45c80408530179cc7930d63cd2a4b6fb","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.5.tgz","fileCount":15,"integrity":"sha512-LEtpY2tcbj5d9KTe/DzhqJEQDtnFpJ5bQy4IhuxFOB5SYWKwGPuAB9B/ItEWzOrep6LLwtBLZyM9mEhGQO30Jg==","signatures":[{"sig":"MEUCIQCOpyA7OrPbR/61pqkJZaVi943nBxhGub/x98YNthwN6AIgZbM6fhAAOFnrpRQb1AsoSWGj7xBATZVsKtW4bFWdOaY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"f0a89c1b1af16c263182d0ec58011fdb1657fb8d","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.5_1733976864452_0.5334912649813228","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"state-resource","version":"0.0.6","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.6","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"00688b4d33959e9bf8c0f305eca36eeeaf864a42","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.6.tgz","fileCount":15,"integrity":"sha512-8JU/z42k53Ar2sm5NxMc9vXWMVxotRLCFYBNYCvDWt1LUnvlDv/nhwBFuwPPihJyd1SNa+6N5+AjH945UfMbVQ==","signatures":[{"sig":"MEUCIF4jiXEJD4mricUTWg0saTh9hnKXot6iC8/iBnEbDwjLAiEA/9TKFkuJmsUCS5OX3EMAoDUcUQ+ORti8NTVwbtWpBdc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"164ece04e325cb7289aace52c7a4851a3d915665","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.6_1733976867392_0.9119021063459316","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"state-resource","version":"0.0.7","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.7","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"23bf348bc73c59b370699f8309a873265f58b6a1","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.7.tgz","fileCount":15,"integrity":"sha512-ThW06EIfxeR1fSpR59OQFsxYbYHQfsxQ0RrV3RIkkO9aYbra+m4PwMJbvFU7eKMrSjCMpevcI9/6xOyP8Dp4Ow==","signatures":[{"sig":"MEUCIQDPsyIOhDGkgY+m1+468cIGJRKhC0dvNjUTmu0cMjXqOQIgDw2uOtkWSWmKJE1iXhLd5FAhswefOLfYjAhh8lr7XW8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"d3d6f204695f8095cf33da3843501b9807319983","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.7_1733976870006_0.681704943753312","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"state-resource","version":"0.0.8","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.8","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"8c02ea68c1fff44b84d7d791c05eb39f1bd1c08d","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.8.tgz","fileCount":15,"integrity":"sha512-jUUcRALq4hJFmmXdCNI4YrYAv+lHCSMLOY9GiNUMWFxKzKWtnAT+BkwYDBQdxjL45Kd40fGCiI9l+mBXM7nP1w==","signatures":[{"sig":"MEYCIQC5CeF6NQ9XFtpaIj+f3KDSoqiWY39vr7ulgNQ6/fVjLwIhAL5e0kfZZfX1QZhQ9TdOrWb3p576orzJRn4p7RA5rSve","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"4a23055d041da7bf7f4cf97f18caa2914cf37dd2","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.8_1733976872835_0.1715935398259223","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"state-resource","version":"0.0.9","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.9","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"7ca4c4e884c4bb595e9a753bc0cb63e34782303a","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.9.tgz","fileCount":15,"integrity":"sha512-LaG8Y0gw0m0v8UOq/dI6MzcUZn0bMX6LtxPczJ2VgJO4r1fZE5ODTHH03gnqCbaBtAiL4KziJ1qV8rwPGBdu7g==","signatures":[{"sig":"MEYCIQCzsZLjyxNDIuWZd1NwK9EWOjmnFeN8Sdv9j3SfXYaLgwIhAKIofPhz652N0y+qZ5BEKDDHrzAyTqI5qfrq/DC8x1iu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4718},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"5de23257ae4d7ea25b9542ec675c5e6ccc74df91","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.9_1733976875634_0.2533349904019666","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"state-resource","version":"0.0.10","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.10","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"f589f7333e626d077fc2c5fc3131a1a5f3b87fb3","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.10.tgz","fileCount":15,"integrity":"sha512-okuk8g/rM3wc8OcVqD52SGW3vJeHNZ7cCKatj8MST2NtMkl1A3nlFHlFM7OcCzU+l/4hbqZQ22r45y60yfcMUg==","signatures":[{"sig":"MEUCIFcXkvXPVEg9C3hp+KZMuZbs7Fs871fmy2HgW0lvPe4BAiEAugRWacx12LJHlSOntsqaJ6NMuQCtdv5JgQNQi47XjJM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4698},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"5bfc010c32802ea3d98ac9a7b11fdba2ff278685","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish --access public","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.10_1733976926806_0.8215800980884962","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"state-resource","version":"0.0.11","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.11","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"af446fc97c3f94e40b7c5470d864924c1e6c41d5","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.11.tgz","fileCount":15,"integrity":"sha512-/mowWDQwvdaD/DnveY4EJaza/eICgptpl/dc/EwhEN4sFMgx74EwkAglWGFw6tvsiMN6IM4Ho5Gzt2IaA0996g==","signatures":[{"sig":"MEQCIAgdVaM5udKRx+SCwmpBaB3Rn7E3gw7Xai7ovaxBeRDwAiAXIFariCRr1DWmxYSSU/MZim9ytjyyL+pYYIIj7YTmwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4699},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"b1cec6f39253cc9a17c002e15503becf7f1f99a0","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.11_1733976993706_0.6360279092645835","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"state-resource","version":"0.0.12","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.12","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"726e7b63463acea28195ecb5414e1470e9c8f6ca","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.12.tgz","fileCount":15,"integrity":"sha512-/96COgwjTxuUSg2Zfsyp/G7DHSUhgnkqFzeLCXq7D4T+SJAxRi/BkFB5/25gKnbLbhYm5OsgpodgWXatsvhBKA==","signatures":[{"sig":"MEUCID/LdU58dDBc+54Py0aikY4NPmVcNiwkGXEqiWtbippaAiEAiAJR+/eCILkgqAOeU7w3OC6VKRWRI7nfDUeeHpOBFVY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4699},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"0d1f83013001a197f8adef1dcf0433438daad858","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.12_1733976996651_0.4082789921560397","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"state-resource","version":"0.0.13","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.13","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"c9cb3979cdcd53b8f6c905871d9e0ee67f762b60","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.13.tgz","fileCount":15,"integrity":"sha512-NWZsx2hQS2RRFjH4d1P3JbaHK6ujHpbUlo8/dmL+ITzuKETGIVnzQPjw8mQQfeeQpVeWFBbkFsDnBuA/NXg7TQ==","signatures":[{"sig":"MEUCIQDt+NE+6n0tGRPbFH8sWp6mssUooBrnJvvm3u/z+2p/dQIgepYnya/Kdp4ZhCI2LSAAYwbhd+UTmPzf3w1hkA92QpM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4699},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"5cd824b0570b6f93f572aee9588c8009a41a7d96","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm version patch && npm publish --access public","prepublish":"npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.13_1733976999542_0.8742200293223665","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"state-resource","version":"0.0.14","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.14","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"68d93036c68884cc1a889f5d5ffe8636fa59bae0","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.14.tgz","fileCount":15,"integrity":"sha512-5OvQH1wcHYKEM6b4WzcPqeZPJ7wrTx+1Krgaav5O51m9oPsHopVnVgG44eUqnai+avNMUnUihFlBOw7ZhAxQGg==","signatures":[{"sig":"MEYCIQCD/J4bkik5szvxF8Xr3Lel5zvbr2inxiR6pCVX09J1WgIhAKX687RNB0bEkW2O4l/NImvIYqiowoS3rmOyioL2xPIo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4678},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"54ebd27937df1b0f23b9aeda7b44479afe5c8a56","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish --access public","prepublish":"npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.14_1733977027532_0.9580088857064231","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"state-resource","version":"0.0.15","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.15","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"32e1d786a26ef30cf1275e7d6d98253a1862172b","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.15.tgz","fileCount":15,"integrity":"sha512-1aTGxfqjxkTvwM4afWL7p4DcI7af+Znz4u6H3vWAoBIaeQaE550GMfjdw3O+IfuqqrfyvrFz7rJ5AnHkeNL/Hg==","signatures":[{"sig":"MEUCIFUAI2BXRyV1eYvIwbz1iE9ePE9cEupX33kLJcp2d03yAiEAxneaCiqkuTB7uDPiEh9UT/UhhfNUaLJmIjtZ0O16XGQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4699},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"ff8da1743cd797d5712b1208b500e739a2047892","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish --access public","prepublish":"npm version patch && npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.15_1733977121150_0.3047552388202741","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"state-resource","version":"0.0.16","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.16","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"0e8ca7269a418721cb5d49acf9fcd948fba075d3","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.16.tgz","fileCount":15,"integrity":"sha512-lML313vjI58qe0KcQJocuL9NZgO+isNE0W7nsCSYqX6itRXG9zYutlSLutPWNDPfxg/LgGYKHR4/3h20FnDhYQ==","signatures":[{"sig":"MEUCIQCVC7Ks1GqJ06355cA7Gx1+9W51bRoYQopQO8UXxkyxCwIgD3rZlOHKG9Yz7rpzmmZPTyQeuxieyD6Ispr1ZClFOpI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4699},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"0ac348b7e485f0eecfe8d1aaf1b0ad6df8fc6a12","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish --access public","prepublish":"npm version patch && npm run build "},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.16_1733977259073_0.9451783035197543","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"state-resource","version":"0.0.18","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.18","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"106934c052f83f1594ab777b4e39abbbb4c9c2a1","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.18.tgz","fileCount":15,"integrity":"sha512-P28bAebAsWIPy5QSDUaukCV5HfIPiQZ4bqiK77hKeK0BHDXgk82nnMYHpbRpinlNDbfFHF/q262yP1Rvl9R8Pw==","signatures":[{"sig":"MEUCIGpPwOjiFnH1rHPyBEqPE7LIC98C8W/1260wzRGyRS/HAiEAn/ZmbGUHOiQ1W7u2CfQgjUCVlnwrhamr/01MeK0WzcU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4682},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"bdda15323e02e451d7a6d94ab288ff4d96061860","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish","prepublish":"npm version patch && npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.18_1733977389083_0.9310659443438634","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"state-resource","version":"0.0.19","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.19","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"f4f351dacff13616fc2bec91886abf79b1f118e0","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.19.tgz","fileCount":15,"integrity":"sha512-/agyXO5ySeRpNSp3YnMgPXu9Qnt7J3WlPJBlgyzkAZTsixPsI9AdGyUxi38Wu/in4CoFjgiIFzs78+m9T7d73w==","signatures":[{"sig":"MEUCIQDxwiLhhxVfjfN/OHW1P/dRBQx2LoZ5FTLcY68pzPsW7wIgANmFNgCRp8RBHYaB/nTh7hOnoOxyoMQTyAVx1gVZZNA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4682},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"9fd7d7dbbbe0fc570344eb883c1de938debc37de","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm publish","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.19_1733977459069_0.4640394469388869","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"state-resource","version":"0.0.20","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.20","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"38ea377bbd8e89b7938924dbef04e5fe12810c00","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.20.tgz","fileCount":15,"integrity":"sha512-aS7qhk+VbiSEbWvcCuqZPzb+JfiYx6GHMVSAmDWz55OVzRRSG06eAcrtxeZDu7/61yS3APmHO0N3hi+KfzMClg==","signatures":[{"sig":"MEUCIQDITesuF5YBwbRd/2Q2N7bK3B76rsFu/PdT51KLHDGKDAIgTON27iC2Rtt1oQMaGVZHjGtkwFJNrWpMxwKSyC9e1/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4671},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"e9e3f3fc656161b4265e55d332aa466cf31ddc50","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"","prepublish":"npm run build && npm version patch"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.20_1733977568893_0.40811445065367","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"state-resource","version":"0.0.21","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.21","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"ba552e943b95a3f0ae3642a05ec87606397f8f9e","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.21.tgz","fileCount":15,"integrity":"sha512-Kb/RPFmtpXwhya73tXNs+MXBhw0SaVzl1ql/Jt22YN2/RQtwAj59tgzz5DwlgwyGDha8Fbg8P8PByY9Hx0QjdQ==","signatures":[{"sig":"MEUCIQDrsRPeO3tzcJJKMpC04rFXQnOddZIqwSJIksz1PjaHzwIgTj43XTrT/AoyUW736hoDaXxYtkPvBivep+qMWb0NQrM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4698},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{"import":"./dist/index.js","require":"./dist/index.cjs"},"gitHead":"704337b1467ec7def689ff7182816c488e867263","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify && npm version patch","publish":"npm publish --access public","prepublish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.0","description":"Async state resource management","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.21_1733977758586_0.2713845208753005","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"state-resource","version":"0.0.25","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.25","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"25050c93ccb1f781e3e830393156a28c9c25b824","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.25.tgz","fileCount":27,"integrity":"sha512-7N6rgP/xLDmtrv9PBx0edSFelXyoFTYz7DFTR2q+h9RyIo1ZVKSd2nSFj+9QlRk+iaG2TNHNxbzs/bWx1lh7Nw==","signatures":[{"sig":"MEYCIQD7SdnMJIKizPeDFFGT1SS3okrc37UiqYnpsm8kBlYkUQIhANBzOteOa4SJTFUTK6PTwelnFabdrub7uxyTRvmJc4x5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183969},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify && npm version patch","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.25_1734115210090_0.2809201422016532","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"state-resource","version":"0.0.26","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.26","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"7d850c395bc39219e9e89589281c844803f97f7f","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.26.tgz","fileCount":27,"integrity":"sha512-Ud5m0l9q71gyeL7FMB1g3ADB5vslTNLRB2rNToOg4iGJkIBfnhXyN1BpkwFxJpVglPrYjWkWOmwk9KS2lAD+0g==","signatures":[{"sig":"MEUCIQCISimME0TjFbCae0V0Uk14/KvUjQPJtIMC/Wkfpu4XZgIgf/Y8F/QPhGpeejkloxTs9E55WUtNRmFQerMSTPkrwG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183969},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify && npm version patch","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.26_1734115699001_0.8249518369766828","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"state-resource","version":"0.0.28","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.0.28","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"6411a756656974d311ce717e9dd98b823608d5ef","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.0.28.tgz","fileCount":27,"integrity":"sha512-pWpK/4O2ekaANeLljLKjnSs62wHSjILLYFXbVhot1UqZTrhiiJA+W22b/UH4mA4SB5OH63qyfmPZFGSEaIJhpA==","signatures":[{"sig":"MEQCIClk4CxWSV6gCMZF8rKfsuX5Bibu2rmaWPpFK/gl9f6TAiB5oDhGUQZkCq4yIX+VNNbKjxzAlKKBYnJbWYPpdueCXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183948},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.0.28_1734115745823_0.27019203835606165","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"state-resource","version":"0.1.0","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.1.0","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"f3a158cafc5318ef6467f752310975cd0e1a955e","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.1.0.tgz","fileCount":27,"integrity":"sha512-QMLAbc3LmcPxbsOfW/9Q1XhCqVBEl+UAzk5tzwY4Xe7x0puHNelHAezWku0ZdY3DzTaQNzxYDxeNj1NBrTQutQ==","signatures":[{"sig":"MEUCIQCuHpW7S8oaQVpRGAdeCY/dOd6hHRPXmsHFM1AZPauO+wIgd1GoJEoCiBk1JWJHZ4fxFRR/fxho0fgbRIy0HiwePyM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183947},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.1.0_1734116251772_0.9809661421043967","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"state-resource","version":"0.2.0","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.2.0","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"388c3d5be2e62a4d9255b68d5f44ce3df41e2c5a","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.2.0.tgz","fileCount":30,"integrity":"sha512-d4LGLHlvbr5QrJ3LK/I23shU87OID0hXvD+Nt63EfsNlyqwe0qjZbPWb4Z5LlBE0gVjji0tfY/rFoPcaKP4hgw==","signatures":[{"sig":"MEYCIQCFzARW1u/I32NzaiIKbIrv0lcUCABbD2gA6m6VSXpAfwIhAMPYVTOj4KVzdavzo82JDC484Ybc3aa/WUw1ZOjtTrut","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191777},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.2.0_1734609384037_0.2481462408935946","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"state-resource","version":"0.3.0","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.3.0","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"cf7118edbfbb505ed426c1bed24d759bd16db47b","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.3.0.tgz","fileCount":30,"integrity":"sha512-fh9qJ0hSWu4XcBrhuzIfMMaYqP7+UjYgJRU89f9bAUsM4zivE5G+s6MTUvoujkjrCDfYrxhHd+rcncrXYbOQBA==","signatures":[{"sig":"MEUCIQCapirdwZICKEysB/g9N0suOMWpch2IIhkNY5TJsG/J/gIgE0f3asPscuWoF3btCNnrISgWcwwHFOJkM1OwtHbHFC8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":234523},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.3.0_1734613577526_0.24910630677270706","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"state-resource","version":"0.6.0","author":{"name":"Danilo Castro"},"license":"MIT","_id":"state-resource@0.6.0","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"dist":{"shasum":"02432c5759e77cf239125f3880a455a347cee546","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.6.0.tgz","fileCount":31,"integrity":"sha512-jjyiwhzmEzny6MLsPUDiK2+0dSbYieQ75mU2+bFG2TSnJ+eg9rLhCRyjCUqUr/vMaNC9mRsllje8rdsgaRD1/A==","signatures":[{"sig":"MEQCIHG5aPjrz2OVWzRAnj2bHXLnNb5aXkduZRyyBwuF+N+hAiBu3DApwH0rcfIJn1uVOvhfhuBFB5h94pvmroJ2qSL5Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194084},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","browser":"dist/index.global.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./worker":{"import":"./dist/worker.js","require":"./dist/worker.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup --minify","publish":"npm run build"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_npmVersion":"10.9.2","description":"Async state resource management","directories":{},"_nodeVersion":"22.8.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^9.16.0","vitest":"^2.1.8","globals":"^15.13.0","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","@types/react":"^19.0.1","@types/react-dom":"^19.0.2","typescript-eslint":"^8.18.0","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.6.0_1738160687529_0.3578137352775943","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"state-resource","version":"0.4.1","author":"Danilo Castro","license":"MIT","_id":"state-resource@0.4.1","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"homepage":"https://github.com/dan2dev/state-resource#readme","bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"dist":{"shasum":"56f73c88de7ec6f5a93736d0a61727865ec2d59e","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.4.1.tgz","fileCount":15,"integrity":"sha512-Z17LiK94qrM0JsAiGb4CmYtFBXEjYizhn5P2EdBQlUjzqIAleLAc5mq3WtglJ+Za9/t0vEKMMLQUI31i2VALOg==","signatures":[{"sig":"MEUCICTUuqbVU2Rn14ztr4McIzNBQ7/lvJ4Ge7YQ4WiwmmCmAiEAn8rJHVcOA+iqjQEU3I20V9vNVHNjkpY657DbxaC2BSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43669},"main":"./dist/state-resource.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/state-resource.mjs","shasum":"56f73c88de7ec6f5a93736d0a61727865ec2d59e","browser":"./dist/state-resource.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/state-resource.mjs","require":"./dist/state-resource.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsdown && tsc --emitDeclarationOnly","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --fix","test:watch":"vitest --watch --coverage","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_integrity":"sha512-Z17LiK94qrM0JsAiGb4CmYtFBXEjYizhn5P2EdBQlUjzqIAleLAc5mq3WtglJ+Za9/t0vEKMMLQUI31i2VALOg==","repository":{"url":"git+https://github.com/dan2dev/state-resource.git","type":"git"},"_npmVersion":"10.8.3","description":"Async state resource management","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","eslint":"^10.4.0","tsdown":"^0.22.0","vitest":"^4.1.7","globals":"^17.6.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@eslint/css":"^1.2.0","@types/node":"^25.9.1","@eslint/json":"^1.2.0","@types/react":"^19.2.15","@eslint/markdown":"^8.0.2","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"4.1.7","@testing-library/react":"^16.3.2","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.4.1_1779763085518_0.7638262015915007","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"state-resource","version":"0.7.2","author":"Danilo Castro","license":"MIT","_id":"state-resource@0.7.2","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"homepage":"https://github.com/dan2dev/state-resource#readme","bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"dist":{"shasum":"b2d28219f435877958c48e5943c6d6a3845e2054","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.7.2.tgz","fileCount":15,"integrity":"sha512-Gg7eY6v8h7TOpZA61N3urMSFQT56EEETwrh2xj0GnNDBITbUkdQsKtQKyo5jtMuzItXAMNX+o9D5v+YxjI7+lg==","signatures":[{"sig":"MEQCIF688NJM1J3nf08XGG0IvpKCqA3LsTIvKfePQCgudkH7AiBHRDmDV4szYud52sW9S2o934PCDQPkTlLuxTZoIG9tUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43669},"main":"./dist/state-resource.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/state-resource.mjs","shasum":"b2d28219f435877958c48e5943c6d6a3845e2054","browser":"./dist/state-resource.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/state-resource.mjs","require":"./dist/state-resource.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsdown && tsc --emitDeclarationOnly","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --fix","test:watch":"vitest --watch --coverage","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_integrity":"sha512-Gg7eY6v8h7TOpZA61N3urMSFQT56EEETwrh2xj0GnNDBITbUkdQsKtQKyo5jtMuzItXAMNX+o9D5v+YxjI7+lg==","repository":{"url":"git+https://github.com/dan2dev/state-resource.git","type":"git"},"_npmVersion":"10.8.3","description":"Async state resource management","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","eslint":"^10.4.0","tsdown":"^0.22.0","vitest":"^4.1.7","globals":"^17.6.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@eslint/css":"^1.2.0","@types/node":"^25.9.1","@eslint/json":"^1.2.0","@types/react":"^19.2.15","@eslint/markdown":"^8.0.2","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"4.1.7","@testing-library/react":"^16.3.2","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.7.2_1779767542521_0.24909229747150907","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"state-resource","version":"0.7.3","author":"Danilo Castro","license":"MIT","_id":"state-resource@0.7.3","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"homepage":"https://github.com/dan2dev/state-resource#readme","bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"dist":{"shasum":"94bf1cf10876b554db88a701cf377e2602b6eb35","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.7.3.tgz","fileCount":15,"integrity":"sha512-N05p0ac4ZoxX3KmcbMyMW5PncwbYhj/fFolStZ+mJzEsZOyp2BCpCem6qVIM6pBNq1Y0xxx+y0iRfDiIxFChNg==","signatures":[{"sig":"MEUCIQDtVyFxqWF7VMsgGSKTZhPZrjmJPU1Tsn2inrxrD7h7zAIgAhVfZhLTovhbXBMZuwNCcmWfDj2RXLhH2m2+Y/Bf5/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43669},"main":"./dist/state-resource.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/state-resource.mjs","shasum":"94bf1cf10876b554db88a701cf377e2602b6eb35","browser":"./dist/state-resource.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/state-resource.mjs","require":"./dist/state-resource.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsdown && tsc --emitDeclarationOnly","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --fix","test:watch":"vitest --watch --coverage","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_integrity":"sha512-N05p0ac4ZoxX3KmcbMyMW5PncwbYhj/fFolStZ+mJzEsZOyp2BCpCem6qVIM6pBNq1Y0xxx+y0iRfDiIxFChNg==","repository":{"url":"git+https://github.com/dan2dev/state-resource.git","type":"git"},"_npmVersion":"10.8.3","description":"Async state resource management","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","eslint":"^10.4.0","tsdown":"^0.22.0","vitest":"^4.1.7","globals":"^17.6.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@eslint/css":"^1.2.0","@types/node":"^25.9.1","@eslint/json":"^1.2.0","@types/react":"^19.2.15","@eslint/markdown":"^8.0.2","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"4.1.7","@testing-library/react":"^16.3.2","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.7.3_1779768270810_0.1440366920583407","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"state-resource","version":"0.7.4","author":"Danilo Castro","license":"MIT","_id":"state-resource@0.7.4","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"homepage":"https://github.com/dan2dev/state-resource#readme","bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"dist":{"shasum":"e6feddaef930c73a3fe14e60f2f17d596c49b5e0","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.7.4.tgz","fileCount":15,"integrity":"sha512-AEqfd1eDiOA9G/RaMy/7ow7zfAWWyLs5cFvmq1Bz0EN8wDfTW5ccVrEw/5bNX+750KY7nRKpGU2Cd8b6DFGkLA==","signatures":[{"sig":"MEQCIBIqrfMOAoixsKCXwMS//9CkhIsubbKB4fH56U6ipkREAiAaNalJGK8syLmDicDExr506XGNUbwcK7NwjydV7XSvOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43382},"main":"./dist/state-resource.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/state-resource.mjs","shasum":"e6feddaef930c73a3fe14e60f2f17d596c49b5e0","browser":"./dist/state-resource.umd.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/state-resource.mjs","require":"./dist/state-resource.cjs"}},"scripts":{"dev":"tsdown --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsdown && tsc --emitDeclarationOnly","clean":"rm -rf dist *.tsbuildinfo","lint:fix":"eslint . --fix","test:watch":"vitest --watch --coverage","build:types":"tsc --emitDeclarationOnly"},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"_integrity":"sha512-AEqfd1eDiOA9G/RaMy/7ow7zfAWWyLs5cFvmq1Bz0EN8wDfTW5ccVrEw/5bNX+750KY7nRKpGU2Cd8b6DFGkLA==","repository":{"url":"git+https://github.com/dan2dev/state-resource.git","type":"git"},"_npmVersion":"10.8.3","description":"Async state resource management","directories":{},"_nodeVersion":"24.3.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","eslint":"^10.4.0","tsdown":"^0.22.0","vitest":"^4.1.7","globals":"^17.6.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@eslint/css":"^1.2.0","@types/node":"^25.9.1","@eslint/json":"^1.2.0","@types/react":"^19.2.15","@eslint/markdown":"^8.0.2","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"4.1.7","@testing-library/react":"^16.3.2","eslint-plugin-react-hooks":"^7.1.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/state-resource_0.7.4_1779768587313_0.8304482073596358","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"state-resource","version":"0.7.6","type":"module","description":"Async state resource management","main":"./dist/state-resource.cjs","module":"./dist/state-resource.mjs","browser":"./dist/state-resource.umd.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/state-resource.mjs","require":"./dist/state-resource.cjs"}},"scripts":{"build":"tsdown && tsc --emitDeclarationOnly","dev":"tsdown --watch","build:types":"tsc --emitDeclarationOnly","clean":"rm -rf dist *.tsbuildinfo","test":"vitest run --coverage","test:watch":"vitest --watch --coverage","lint":"eslint .","lint:fix":"eslint . --fix"},"author":"Danilo Castro","license":"MIT","devDependencies":{"@eslint/css":"^1.2.0","@eslint/js":"^10.0.1","@eslint/json":"^1.2.0","@eslint/markdown":"^8.0.2","@testing-library/react":"^16.3.2","@types/node":"^25.9.1","@types/react":"^19.2.15","@vitest/coverage-v8":"4.1.7","eslint":"^10.4.0","eslint-plugin-react-hooks":"^7.1.1","globals":"^17.6.0","jsdom":"^29.1.1","tsdown":"^0.22.0","typescript":"^6.0.3","typescript-eslint":"^8.60.0","vitest":"^4.1.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"repository":{"type":"git","url":"git+https://github.com/dan2dev/state-resource.git"},"bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"homepage":"https://github.com/dan2dev/state-resource#readme","_id":"state-resource@0.7.6","_integrity":"sha512-bME/AnpAbIqk8B2XFxahuzq0MCm7O3rYJmR5EUioNH1DAYYoGqd4MoTVgmUiKnQpocCrwqwBCbulcKuNT97gGg==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"325864d22a5679502fd68a26eeb192534280eb14","dist":{"integrity":"sha512-bME/AnpAbIqk8B2XFxahuzq0MCm7O3rYJmR5EUioNH1DAYYoGqd4MoTVgmUiKnQpocCrwqwBCbulcKuNT97gGg==","shasum":"325864d22a5679502fd68a26eeb192534280eb14","tarball":"https://registry.npmjs.org/state-resource/-/state-resource-0.7.6.tgz","fileCount":15,"unpackedSize":63607,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGZiLRXDYaYJdeMjEVYgVC83AzBDNCl/9/JBf3X8jBmXAiAlm9IfA2d7/dRq7RUZeKzzGgeAjpd2loNGLfIgY6X2zA=="}]},"_npmUser":{"name":"dan2dev","email":"ccastro.dan@gmail.com"},"directories":{},"maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/state-resource_0.7.6_1779939332974_0.0015423887524139701"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-12T04:11:28.516Z","modified":"2026-05-28T03:35:33.253Z","0.0.2":"2024-12-12T04:11:28.706Z","0.0.3":"2024-12-12T04:14:18.684Z","0.0.4":"2024-12-12T04:14:21.873Z","0.0.5":"2024-12-12T04:14:24.625Z","0.0.6":"2024-12-12T04:14:27.655Z","0.0.7":"2024-12-12T04:14:30.196Z","0.0.8":"2024-12-12T04:14:33.050Z","0.0.9":"2024-12-12T04:14:35.798Z","0.0.10":"2024-12-12T04:15:26.999Z","0.0.11":"2024-12-12T04:16:33.913Z","0.0.12":"2024-12-12T04:16:36.848Z","0.0.13":"2024-12-12T04:16:39.721Z","0.0.14":"2024-12-12T04:17:07.831Z","0.0.15":"2024-12-12T04:18:41.335Z","0.0.16":"2024-12-12T04:20:59.304Z","0.0.18":"2024-12-12T04:23:09.269Z","0.0.19":"2024-12-12T04:24:19.343Z","0.0.20":"2024-12-12T04:26:09.067Z","0.0.21":"2024-12-12T04:29:18.789Z","0.0.25":"2024-12-13T18:40:10.281Z","0.0.26":"2024-12-13T18:48:19.183Z","0.0.28":"2024-12-13T18:49:05.986Z","0.1.0":"2024-12-13T18:57:31.950Z","0.2.0":"2024-12-19T11:56:24.219Z","0.3.0":"2024-12-19T13:06:17.728Z","0.6.0":"2025-01-29T14:24:47.786Z","0.4.1":"2026-05-26T02:38:05.668Z","0.7.2":"2026-05-26T03:52:22.702Z","0.7.3":"2026-05-26T04:04:30.973Z","0.7.4":"2026-05-26T04:09:47.473Z","0.7.6":"2026-05-28T03:35:33.151Z"},"bugs":{"url":"https://github.com/dan2dev/state-resource/issues"},"author":"Danilo Castro","license":"MIT","homepage":"https://github.com/dan2dev/state-resource#readme","repository":{"type":"git","url":"git+https://github.com/dan2dev/state-resource.git"},"description":"Async state resource management","maintainers":[{"name":"dan2dev","email":"ccastro.dan@gmail.com"}],"readme":"# state-resource\n\nPromise caching, deduplication, invalidation, and shared query state updates with a React hook.\n\nNo context, no provider, no boilerplate.\n\n```bash\nnpm i state-resource\n# or\nbun add state-resource\n```\n\nReact is an optional peer dependency. The core cache (`createQuery` / `invalidate`) works in any environment.\n\n---\n\n## Highlights\n\n- Promise-level request deduplication by argument key\n- Stale-while-revalidate behavior in `useQuery`\n- Per-entry refresh and global invalidation\n- Shared state mutation via `useQuery(...).setData(...)`\n- Fully typed APIs (arguments and data inferred end-to-end)\n- Works without React for cache-only use cases\n\n---\n\n## Quick start\n\n```ts\n// queries.ts\nimport { createQuery } from 'state-resource'\n\nexport const userQuery = createQuery('users', (id: number) =>\n  fetch(`/api/users/${id}`).then(r => r.json())\n)\n```\n\n```tsx\n// UserCard.tsx\nimport { useQuery } from 'state-resource'\nimport { userQuery } from './queries'\n\nfunction UserCard({ userId }: { userId: number }) {\n  const user = useQuery(userQuery, [userId])\n\n  if (user.status === 'loading') return <Spinner />\n  if (user.status === 'error')   return <p>Error: {user.error.message}</p>\n\n  return (\n    <div>\n      <p>{user.data.name}</p>\n      <button onClick={user.refresh}>Refresh</button>\n    </div>\n  )\n}\n```\n\n---\n\n## API\n\n### `createQuery(cacheId, fn)`\n\nCreates a typed cached query function.\n\n```ts\nconst userQuery = createQuery('users', async (id: number) => {\n  const res = await fetch(`/api/users/${id}`)\n  return res.json() as Promise<User>\n})\n```\n\n| Param     | Type                             | Description                        |\n| --------- | -------------------------------- | ---------------------------------- |\n| `cacheId` | `string`                         | Unique key for this query's cache  |\n| `fn`      | `(...args: A) => Promise<R>`     | Async function that fetches data   |\n\nReturns a `Query<A, R>` — a callable function with extra methods:\n\n| Member | Description |\n| --- | --- |\n| `query(...args)` | Returns cached promise for args, or starts a new fetch |\n| `query.invalidate(...args)` | Refetches one cache entry and notifies listeners for that key |\n| `query.clear()` | Clears all cached promises, refetchers, and snapshots for this `cacheId` |\n| `query.cacheId` | Read-only cache ID |\n\n**Caching is argument-based.** The same arguments always return the same promise. Object argument key order is normalized, so `{ a: 1, b: 2 }` and `{ b: 2, a: 1 }` hit the same cache entry.\n\n```ts\nuserQuery(1) === userQuery(1)  // true — same promise, only one fetch\nuserQuery(1) !== userQuery(2)  // different args → different entries\n```\n\n**Failed promises are evicted automatically**, so the next call re-fetches cleanly without manual cleanup.\n\n---\n\n### `invalidate(target)`\n\nGlobal invalidation: refetches every cached entry currently known for a query.\n\n```ts\nimport { invalidate } from 'state-resource'\n\n// by cacheId string\ninvalidate('users')\n\n// by query object (same result)\ninvalidate(userQuery)\n```\n\nUse this after a mutation that affects multiple entries at once.\n\n---\n\n### `useQuery(query, args)`\n\nReact hook for subscribing to one query entry.\n\n```tsx\nconst result = useQuery(userQuery, [userId])\n```\n\nReturns `QueryResult<T>`:\n\n```ts\ntype QueryResult<T> =\n  | {\n      status: 'loading'\n      data?: T\n      error?: undefined\n      refresh: () => void\n      setData: (next: T | ((prev: T | undefined) => T)) => T\n    }\n  | {\n      status: 'ok'\n      data: T\n      error?: undefined\n      refresh: () => void\n      setData: (next: T | ((prev: T | undefined) => T)) => T\n    }\n  | {\n      status: 'error'\n      data?: T\n      error: Error\n      refresh: () => void\n      setData: (next: T | ((prev: T | undefined) => T)) => T\n    }\n```\n\n- **`status: 'loading'`** — fetch in progress. `data` carries the previous value while reloading (stale-while-revalidate).\n- **`status: 'ok'`** — fetch succeeded.\n- **`status: 'error'`** — fetch failed. Failed promise is evicted from cache so retry is clean.\n- **`refresh()`** — refetches this exact cache key. Reference is stable while args are stable.\n- **`setData(next | updater)`** — updates shared state for this key and re-renders all subscribers using the same query+args key.\n\n#### `setData` behavior\n\n- Accepts either a direct value or updater function\n- Updater receives the previous data (`T | undefined`)\n- Writes through to the query cache (future reads for the same key resolve to the updated value)\n- Notifies subscribers for the key immediately\n\n```tsx\nfunction UpvoteButton({ postId }: { postId: number }) {\n  const post = useQuery(postQuery, [postId])\n\n  return (\n    <button\n      disabled={post.status !== 'ok'}\n      onClick={() => post.setData(prev => ({ ...(prev ?? { id: postId, votes: 0 }), votes: (prev?.votes ?? 0) + 1 }))}\n    >\n      +1 vote\n    </button>\n  )\n}\n```\n\n---\n\n## Examples\n\n### 1 · Cache deduplication\n\nTwo components call the same query with the same args. Only one HTTP request fires — both share the cached promise.\n\n```tsx\nfunction Page() {\n  return (\n    <>\n      <UserBadge userId={1} />  {/* fetches userQuery(1) */}\n      <UserAvatar userId={1} /> {/* cache hit — no second request */}\n    </>\n  )\n}\n\nfunction UserBadge({ userId }: { userId: number }) {\n  const user = useQuery(userQuery, [userId])\n  if (user.status !== 'ok') return null\n  return <span>{user.data.name}</span>\n}\n\nfunction UserAvatar({ userId }: { userId: number }) {\n  const user = useQuery(userQuery, [userId])\n  if (user.status !== 'ok') return null\n  return <img src={user.data.avatarUrl} alt={user.data.name} />\n}\n```\n\n---\n\n### 2 · Per-entry invalidation\n\nRefresh a single user without touching any other cached users.\n\n```tsx\nfunction UserCard({ userId }: { userId: number }) {\n  const user = useQuery(userQuery, [userId])\n\n  return (\n    <div>\n      {user.status === 'loading' && <Spinner />}\n      {user.status === 'ok' && <p>{user.data.name} — {user.data.role}</p>}\n      {user.status === 'error' && <p>Error: {user.error.message}</p>}\n\n      <button onClick={user.refresh} disabled={user.status === 'loading'}>\n        Refresh\n      </button>\n    </div>\n  )\n}\n```\n\n`user.refresh()` calls `userQuery.invalidate(userId)` internally — only that one cache slot is updated. Other `UserCard`s with different `userId`s are unaffected.\n\n---\n\n### 3 · Global invalidation after mutation\n\nAfter saving a record, invalidate the whole query so every component refetches.\n\n```ts\nasync function saveUser(user: User) {\n  await fetch('/api/users', { method: 'POST', body: JSON.stringify(user) })\n\n  // Refetch all cached users in every mounted component at once\n  invalidate(userQuery)\n}\n```\n\n---\n\n### 4 · Shared optimistic updates with `setData`\n\nAll components subscribed to the same key update immediately.\n\n```tsx\nfunction UserNameEditor({ userId }: { userId: number }) {\n  const user = useQuery(userQuery, [userId])\n\n  const rename = async (name: string) => {\n    if (user.status !== 'ok') return\n\n    // optimistic UI\n    user.setData({ ...user.data, name })\n\n    try {\n      await fetch(`/api/users/${userId}`, {\n        method: 'PATCH',\n        body: JSON.stringify({ name }),\n      })\n      user.refresh() // reconcile with server\n    } catch {\n      user.refresh() // rollback by refetching\n    }\n  }\n\n  return <button onClick={() => rename('New Name')}>Rename</button>\n}\n```\n\n---\n\n### 5 · Multi-argument queries\n\nArguments are spread, not wrapped — the type system enforces them at the call site.\n\n```ts\nconst postsQuery = createQuery(\n  'posts',\n  (userId: number, page: number) =>\n    fetch(`/api/users/${userId}/posts?page=${page}`).then(r => r.json())\n)\n\n// In a component:\nconst posts = useQuery(postsQuery, [userId, page])\n```\n\n---\n\n### 6 · Object arguments (stable key)\n\nObject key order is normalized, so re-renders with structurally equal objects don't trigger a new fetch.\n\n```ts\nconst searchQuery = createQuery('search', (filter: { q: string; page: number }) =>\n  fetch(`/api/search?q=${filter.q}&page=${filter.page}`).then(r => r.json())\n)\n\n// These are the same cache entry:\nsearchQuery({ q: 'hello', page: 1 })\nsearchQuery({ page: 1, q: 'hello' })\n```\n\n```tsx\nfunction SearchResults() {\n  const [filter, setFilter] = useState({ q: '', page: 1 })\n  const results = useQuery(searchQuery, [filter])\n\n  return (\n    <>\n      <input\n        value={filter.q}\n        onChange={e => setFilter(f => ({ ...f, q: e.target.value, page: 1 }))}\n      />\n      {results.status === 'loading' && <Spinner />}\n      {results.status === 'ok' && results.data.map(r => <p key={r.id}>{r.title}</p>)}\n    </>\n  )\n}\n```\n\n---\n\n### 7 · Dependent queries\n\nLoad a user, then load their posts only once the userId is known. Switching back to a previously selected user is instant — both caches are warm.\n\n```tsx\nfunction UserDashboard() {\n  const [userId, setUserId] = useState(1)\n  const user = useQuery(userQuery, [userId])\n\n  return (\n    <div>\n      <UserSelector onChange={setUserId} />\n      {user.status === 'ok' && (\n        <>\n          <UserProfile user={user.data} />\n          <PostList userId={userId} />\n        </>\n      )}\n    </div>\n  )\n}\n\nfunction PostList({ userId }: { userId: number }) {\n  const posts = useQuery(postsQuery, [userId])\n  if (posts.status === 'loading') return <Spinner />\n  if (posts.status === 'error') return <p>Failed to load posts</p>\n  return (\n    <ul>\n      {posts.data.map(p => <li key={p.id}>{p.title}</li>)}\n    </ul>\n  )\n}\n```\n\n---\n\n### 8 · Error recovery\n\nFailed fetches are evicted from the cache automatically. Calling `refresh()` or changing args re-fetches cleanly.\n\n```tsx\nfunction WeatherCard({ city }: { city: string }) {\n  const weather = useQuery(weatherQuery, [city])\n\n  return (\n    <div>\n      {weather.status === 'loading' && <Spinner />}\n      {weather.status === 'ok' && <p>{weather.data.temp}°C — {weather.data.condition}</p>}\n      {weather.status === 'error' && (\n        <>\n          <p>Error: {weather.error.message}</p>\n          <button onClick={weather.refresh}>Retry</button>\n        </>\n      )}\n    </div>\n  )\n}\n```\n\n---\n\n### 9 · Using the cache outside React\n\n`createQuery` and `invalidate` are plain functions — no React required.\n\n```ts\nimport { createQuery, invalidate } from 'state-resource'\n\nconst configQuery = createQuery('config', () =>\n  fetch('/api/config').then(r => r.json())\n)\n\n// Warm the cache at app startup\nawait configQuery()\n\n// Later, after config changes on the server:\ninvalidate(configQuery)\n```\n\n---\n\n### 10 · Clearing the cache\n\nUse `query.clear()` to wipe all entries — useful on logout or when switching accounts.\n\n```ts\nasync function logout() {\n  await fetch('/api/logout', { method: 'POST' })\n\n  // Purge all cached data\n  userQuery.clear()\n  postsQuery.clear()\n  settingsQuery.clear()\n}\n```\n\n---\n\n### 11 · Manual filter on already-fetched data\n\nYou can derive local view state from remote data without extra context stores.\n\n```tsx\nfunction FilteredUsers() {\n  const [search, setSearch] = useState('')\n  const users = useQuery(usersQuery, [{ search: '' }])\n\n  const applyLocalFilter = () => {\n    const needle = search.toLowerCase().trim()\n    users.setData(prev => (prev ?? []).filter(user => user.name.toLowerCase().includes(needle)))\n  }\n\n  return (\n    <div>\n      <input value={search} onChange={e => setSearch(e.target.value)} />\n      <button onClick={applyLocalFilter}>Filter Local Data</button>\n      <button onClick={users.refresh}>Refetch</button>\n    </div>\n  )\n}\n```\n\n---\n\n## TypeScript\n\nFully typed. Arguments and return types flow through automatically.\n\n```ts\nconst userQuery = createQuery('users', async (id: number) => {\n  const res = await fetch(`/api/users/${id}`)\n  return res.json() as Promise<{ id: number; name: string }>\n})\n\n// TypeScript knows: data is { id: number; name: string }\nconst user = useQuery(userQuery, [1])\nif (user.status === 'ok') {\n  console.log(user.data.name) // ✓\n}\n\n// TypeScript enforces args — this won't compile:\nuseQuery(userQuery, ['not-a-number']) // ✗ Argument of type 'string' is not assignable to type 'number'\n```\n\n---\n\n## Exports\n\n```ts\nimport {\n  createQuery,\n  invalidate,\n  useQuery,\n  type Query,\n  type QueryState,\n  type Snapshot,\n} from 'state-resource'\n```\n\n---\n\n## How it works\n\n- **Promise cache**: `Map<cacheId, Map<argsKey, Promise<R>>>`\n- **Snapshots**: `Map<cacheId, Map<argsKey, Snapshot<R>>>` tracks `loading | ok | error` plus optional stale data\n- **Listeners**: subscribers are stored per cacheId + argsKey\n- **Stable keys**: generated via `stableKey(args)` with deterministic object-key ordering\n- **Fetch flow**:\n  - set `loading` snapshot\n  - run fetch\n  - set `ok` or `error` snapshot\n  - notify listeners for that key\n- **Error eviction**: on rejected fetch, promise cache entry is removed for clean retries\n- **React integration**: `useSyncExternalStore` subscribes components to key-level snapshot updates\n- **Shared mutation**: `setData` writes snapshot + cache and broadcasts key updates immediately\n\n---\n\n## Best practices\n\n- Use descriptive `cacheId` values (`users`, `posts`, `weather`) and keep them stable.\n- Keep args serializable and deterministic.\n- Use `refresh()` for entry-level revalidation.\n- Use `invalidate(queryOrCacheId)` after broad mutations.\n- Use `setData` for optimistic updates and local derivations, then `refresh()` to reconcile with server data when needed.\n- Call `query.clear()` on logout/account switch to avoid cross-user stale data.\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}