{"_id":"@bloqz/core","_rev":"13-f258bf536f0c50a5ae2ef46a76544fb8","name":"@bloqz/core","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@bloqz/core","version":"1.0.0","keywords":["bloc","bloqz","state management","functional","rxjs","typescript"],"author":{"url":"shovelmn12@gmail.com","name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.0","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloc#readme","bugs":{"url":"https://github.com/shovelmn12/bloc/issues"},"dist":{"shasum":"37afa45bf75af050b68fca47db4074e41baebf1b","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.0.tgz","fileCount":38,"integrity":"sha512-CPlNM83Y5f+e7hhfR9M38yCUatVl+d7CKKowN3UTFv9o1EHcCTHjeUTiT7TY0GbWLdmhUIzTb2f7kbEfKaVtjA==","signatures":[{"sig":"MEYCIQCgZ3dsfjWGVCM+sLIrmkwM+juuoLwG6dGOj7vpUo8LGAIhANOFYG7usoQPzjqkuGzzn2U6HjaV7ev/N2yW3fvgAYd3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64531},"type":"module","exports":{"main":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js"},"gitHead":"55f6228563c6c172925230d35bb5b1c62167106e","scripts":{"build":"npm run clean && tsc","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"repository":{"url":"git+https://github.com/shovelmn12/bloc.git","type":"git"},"_npmVersion":"11.6.1","description":"Core package for the functional Bloc state management library.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.14"},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.0_1759844543958_0.15312610527818116","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bloqz/core","version":"1.0.2","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.2","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"5d268115cd286a7535f5ae2c396146970a3bb71d","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.2.tgz","fileCount":39,"integrity":"sha512-6d9Um/0TY5I7nDlQhh8nCS0Op2DIlwBSZPn4CVFyLm/0Z33oVqpwmVARBY24PDXWXpulgobRFYgN3FVX+Jq5dQ==","signatures":[{"sig":"MEUCIQDw4OB/As0oH0mxIriAbnqcp/Y3qVE/SaD1THcmL6SIogIgcZMsZSPLq4iik4ZUtFDOasSougqWT4dzhK4v8zqRGtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65534},"type":"module","_from":"file:bloqz-core-1.0.2.tgz","exports":{"main":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js"},"scripts":{"test":"vitest --run","build":"npm run clean && tsc","clean":"rm -rf dist"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/afa231252d716cb7e2f081c1d09f1c69/bloqz-core-1.0.2.tgz","_integrity":"sha512-6d9Um/0TY5I7nDlQhh8nCS0Op2DIlwBSZPn4CVFyLm/0Z33oVqpwmVARBY24PDXWXpulgobRFYgN3FVX+Jq5dQ==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.2","description":"Core package for the functional Bloqz state management library.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.2_1761206123409_0.9798045491296314","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bloqz/core","version":"1.0.3","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.3","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"b3db9422c2d953666045a60554993ddd24b74b58","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.3.tgz","fileCount":39,"integrity":"sha512-8uyGrucNlD284BMHBGBVSj3MoGO4RyL4zWNybwKYaE4gyHKm1hVE4EAQ11LJfXKGsyn669CX5TNzgMSonP9rKw==","signatures":[{"sig":"MEQCIA1IBhKEVck5ThX5V4shpgqSx7tsryUwoNkSZoQmyYirAiA3U77SzPbLXv2pa4a+CxoFR19qDZgJ4liioaiIxCp4cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65710},"type":"module","_from":"file:bloqz-core-1.0.3.tgz","exports":{"main":"./dist/index.js","types":"./dist/index.d.ts","import":"./dist/index.js"},"scripts":{"test":"vitest --run","build":"npm run clean && tsc","clean":"rm -rf dist"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/68654bb3991c906e14453adb779447b6/bloqz-core-1.0.3.tgz","_integrity":"sha512-8uyGrucNlD284BMHBGBVSj3MoGO4RyL4zWNybwKYaE4gyHKm1hVE4EAQ11LJfXKGsyn669CX5TNzgMSonP9rKw==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.2","description":"Core package for the functional Bloqz state management library.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/core_1.0.3_1761207918559_0.56376631911081","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bloqz/core","version":"1.0.4","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.4","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"1d7da789b18116ced829126892da40465149d4e4","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.4.tgz","fileCount":27,"integrity":"sha512-itGmuOZNgjQ2HQ0MuV93/0BbafZbk+TVol1XjPMJp/k/s72mM2KaYj7y5DYsYvDQr2wqbJ7Sb3sDmrpaDi34MQ==","signatures":[{"sig":"MEYCIQDOOrFA8ddTLiKKj/aCmA3/E5qYe+IDdfof99o8yNoRUgIhAMfJ9Ca1pzuyfNj3Fkv8ceWE8p8tyYljhJd1dwvX7rXl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56001},"type":"module","_from":"file:bloqz-core-1.0.4.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/cbd53ae324a758d8bb65862e07e1c46b/bloqz-core-1.0.4.tgz","_integrity":"sha512-itGmuOZNgjQ2HQ0MuV93/0BbafZbk+TVol1XjPMJp/k/s72mM2KaYj7y5DYsYvDQr2wqbJ7Sb3sDmrpaDi34MQ==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.2","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.4_1763458146440_0.6331331459327074","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bloqz/core","version":"1.0.5","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.5","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"379fbf63d963ff3e3792c52ec19eba5417b73833","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.5.tgz","fileCount":26,"integrity":"sha512-oaQqReBrEs4k4Nh52IxmEqNsZRkknA2e6ofq1foy8NOHW99Ay43sZ8ymSNxgicbxQDMO2wWHt7IzO+6ZZ8V/Ow==","signatures":[{"sig":"MEUCIQCQuSe1gIKn4WtrRKYBVyy0urhvUqGvbW3GPuWsXIe5JgIgcazPejhBwbbvBVgmpzpujvB8MI4TI6APjhBBLRKcbEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54975},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"438c3abe8fa3196a58ae328b8d943156b61f43bf","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","publish":"npm publish","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.5_1764660524057_0.17229560419941103","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bloqz/core","version":"1.0.6","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.0.6","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"71b3dba85c22d0e1edf0aba65f994355433b0d9e","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.0.6.tgz","fileCount":26,"integrity":"sha512-xkoTD6Zeq7NklwQdSi6k9d31k2UQL0skBBgxCz2s8iMhfrM8p7dEH2jJUfyq7oe+DoYAnxE5jfsNhlaKiNxLtw==","signatures":[{"sig":"MEUCID9KCXwxJE7kj5SzPlJneo1xJ+wlWHn30kze1xCH7hCeAiEA/yQPS/3hJwRhN7AInbq2EazlGOvnsHV3FaNtfHdBu68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55040},"type":"module","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"438c3abe8fa3196a58ae328b8d943156b61f43bf","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","publish":"npm publish","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.0.6_1764660942231_0.17867009691152136","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bloqz/core","version":"1.1.1","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.1.1","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"d24a96291fa366fa1b5eb7457a0c9783124b1ade","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.1.1.tgz","fileCount":27,"integrity":"sha512-H6fXUFP/3K5Yx4SMImq8anP4drCbYHOxxJMGQ6XMIiSJQI9fPrysqx7Kin4qGIn0OoNABK9BQp3n6KGEbkqTgQ==","signatures":[{"sig":"MEUCIH0RAs7LmO2v9Mn+Fie+CHoeV/5elJnyEwGPgVHkoXjfAiEA2+KDhry4Nvv/nZvyQmZmC+9RkqF+V46WEaCDoh9Wfoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56001},"type":"module","_from":"file:bloqz-core-1.1.1.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/8f34119907043bba84f975938f962bca/bloqz-core-1.1.1.tgz","_integrity":"sha512-H6fXUFP/3K5Yx4SMImq8anP4drCbYHOxxJMGQ6XMIiSJQI9fPrysqx7Kin4qGIn0OoNABK9BQp3n6KGEbkqTgQ==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.1_1764765401081_0.8271485136689729","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@bloqz/core","version":"1.1.2","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.1.2","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"0b0e9695bd71a424f4411a132dca60e563e32ed0","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.1.2.tgz","fileCount":27,"integrity":"sha512-jIB/M69cop0dbWsqijAYYCHLMcvZK3d6cv+sM8YvvCj+yzKayX+GpFDVWbvaCBZ5Mtk1d7itTdGgXBxZD072DA==","signatures":[{"sig":"MEUCIHpYwNfUblCJPAyq9JFD5HzE/+/y/JeczKZtUOBTviyRAiEAqnQvBQadWuZshF82KvRbVBSJtnCdnxYtXlcw0NzwaEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56001},"type":"module","_from":"file:bloqz-core-1.1.2.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/64b21976d2481b13ccad3769ae4726b7/bloqz-core-1.1.2.tgz","_integrity":"sha512-jIB/M69cop0dbWsqijAYYCHLMcvZK3d6cv+sM8YvvCj+yzKayX+GpFDVWbvaCBZ5Mtk1d7itTdGgXBxZD072DA==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.2_1764766912662_0.027858560885007266","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@bloqz/core","version":"1.1.3","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.1.3","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"4e6379702b3e9800ad7c1629f47c6d2c25c7bfdd","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.1.3.tgz","fileCount":27,"integrity":"sha512-I5/FflY2/092P/DHfkEqnLGGhqW1efAXko7E3hEx3qKGtUiG3MjVxeC8v/X8jJLxFDPjSCG9qYpa4hStQ5zIEA==","signatures":[{"sig":"MEUCIQDNf5ffAhGcZjHq/OIdv/xIQmTDbLpmhnIP9xtABMYeqAIgWV4xBkQ0jG7OLgYt7PEpooWx4hiz5PCImtMtnzeAWeA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56001},"type":"module","_from":"file:bloqz-core-1.1.3.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/fb3ada32b34a87e4bcdfff44a1ffacdc/bloqz-core-1.1.3.tgz","_integrity":"sha512-I5/FflY2/092P/DHfkEqnLGGhqW1efAXko7E3hEx3qKGtUiG3MjVxeC8v/X8jJLxFDPjSCG9qYpa4hStQ5zIEA==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.3_1764769032269_0.6867577669247551","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bloqz/core","version":"1.2.0","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.2.0","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"25d4b273d2583cdb2edb4640da6cb17b02063bd9","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.2.0.tgz","fileCount":27,"integrity":"sha512-HtTuUtOBnncVYWVVSKqmUn4wRf+mw6VR+YdH467bFk/5xCBb0wQ8z7lDGm5w4ofGDvCpIfytVOEm5cd/bhUtJQ==","signatures":[{"sig":"MEUCIGy5Xcxcvn5vc/nv65vZB2ORq2uYsX3gHK0ME7r4JMB7AiEAjE9MJGPrkAeNgPWaMf6q4Mtwd3NVIJtqD4x57NJVbsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56065},"type":"module","_from":"file:bloqz-core-1.2.0.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/fb3c71a3e4a948fccc6abdf58d9ada8f/bloqz-core-1.2.0.tgz","_integrity":"sha512-HtTuUtOBnncVYWVVSKqmUn4wRf+mw6VR+YdH467bFk/5xCBb0wQ8z7lDGm5w4ofGDvCpIfytVOEm5cd/bhUtJQ==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.2.0_1764825213319_0.7324562221190187","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bloqz/core","version":"1.2.1","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@1.2.1","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"b36c22daeba0b16de901af3fd43c348a6c283ed5","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-1.2.1.tgz","fileCount":27,"integrity":"sha512-WtyWfV/x8gij5egyg3sdnoRIgAge8EAigA5as12fm+OQE6+tRZbSB5YqQFKZFs+Exwv2g+Bw6BN3uzAFP3TAcA==","signatures":[{"sig":"MEUCIQC3pj0dOvZe+xIEHue60iZaKwVkfMh4e3D+I9sy/dIyqQIgTWQxV/LeZBFtpYB3TxZGLTgs1ZWeEJKqvcJsOeDwzL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56037},"type":"module","_from":"file:bloqz-core-1.2.1.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/1390862a4bb7cc16162876382fd10ed7/bloqz-core-1.2.1.tgz","_integrity":"sha512-WtyWfV/x8gij5egyg3sdnoRIgAge8EAigA5as12fm+OQE6+tRZbSB5YqQFKZFs+Exwv2g+Bw6BN3uzAFP3TAcA==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.6.4","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_1.2.1_1764873989984_0.8470383747870922","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bloqz/core","version":"2.0.0","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"author":{"name":"Shovel Maman"},"license":"MIT","_id":"@bloqz/core@2.0.0","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"dist":{"shasum":"9fe276f1535bc5fd8bb1dc1d33dd7088b3a267e8","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-2.0.0.tgz","fileCount":27,"integrity":"sha512-b2bumcLRvLNoCWC1iCofrKLiFWZoUTCNaijLs3UV80dfjGyLhk+2BFxID8xowMAjn4SQdNHHsBYsgqLtBPIknA==","signatures":[{"sig":"MEQCIBQcBLwYhjURwP9PV3DOirK49OYjrabIGXxDAUT1lfQgAiAxx/Fw6YVm8oLVhM/Pg3rdx7wEwayr6YN3bY1jDiCJDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56290},"type":"module","_from":"file:bloqz-core-2.0.0.tgz","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist","prebuild":"npm run clean"},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"_resolved":"/private/var/folders/9_/mmrlltfn0v70blj02j_t9wtm0000gn/T/d3585955fa086a67dd081679354e60c3/bloqz-core-2.0.0.tgz","_integrity":"sha512-b2bumcLRvLNoCWC1iCofrKLiFWZoUTCNaijLs3UV80dfjGyLhk+2BFxID8xowMAjn4SQdNHHsBYsgqLtBPIknA==","repository":{"url":"git+https://github.com/shovelmn12/bloqz.git","type":"git"},"_npmVersion":"11.8.0","description":"Core package for the functional Bloqz state management library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"rxjs":"^7.8.2","fp-ts":"^2.16.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.0_1786621904547_0.33804238337468373","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@bloqz/core","version":"2.0.1","description":"Core package for the functional Bloqz state management library.","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"homepage":"https://github.com/shovelmn12/bloqz#readme","bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"repository":{"type":"git","url":"git+https://github.com/shovelmn12/bloqz.git"},"license":"MIT","author":"Shovel Maman","type":"module","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"sideEffects":false,"publishConfig":{"access":"public"},"dependencies":{"fp-ts":"^2.16.9","rxjs":"^7.8.2"},"devDependencies":{},"scripts":{"clean":"rm -rf dist","prebuild":"npm run clean","build":"tsc -p tsconfig.build.json","test":"vitest --run"},"_nodeVersion":"22.20.0","_id":"@bloqz/core@2.0.1","dist":{"integrity":"sha512-+EyJywDsbRo1qjtUz6YHvzoflv+etYk6BX3qTIiN1h1gTU9/CL49bky81/G5JT+E7a4EIaWo2CgBjUYnPlFYdw==","shasum":"fbc617fbe83ece040f8a543f0e9c8360175118b8","tarball":"https://registry.npmjs.org/@bloqz/core/-/core-2.0.1.tgz","fileCount":39,"unpackedSize":109954,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCRCkXZ6FdO68sqM6iw6s3uvY+ZPJYoXTKisOUvhD1WIgIgVIzjcPCzT2eJfzh3yz2rvTjTw47kjPv2jVK9KcIQOfc="}]},"_npmUser":{"name":"shovelmn12","email":"shovelmn12@gmail.com"},"directories":{},"maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_2.0.1_1788503009796_0.35149694517383745"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-07T13:42:23.861Z","modified":"2026-09-04T06:23:30.115Z","1.0.0":"2025-10-07T13:42:24.163Z","1.0.2":"2025-10-23T07:55:23.597Z","1.0.3":"2025-10-23T08:25:18.762Z","1.0.4":"2025-11-18T09:29:06.630Z","1.0.5":"2025-12-02T07:28:44.243Z","1.0.6":"2025-12-02T07:35:42.409Z","1.1.1":"2025-12-03T12:36:41.242Z","1.1.2":"2025-12-03T13:01:52.836Z","1.1.3":"2025-12-03T13:37:12.458Z","1.2.0":"2025-12-04T05:13:33.480Z","1.2.1":"2025-12-04T18:46:30.139Z","2.0.0":"2026-08-13T11:51:44.698Z","2.0.1":"2026-09-04T06:23:29.953Z"},"bugs":{"url":"https://github.com/shovelmn12/bloqz/issues"},"author":"Shovel Maman","license":"MIT","homepage":"https://github.com/shovelmn12/bloqz#readme","keywords":["bloc","bloqz","state management","functional","rxjs","typescript","core"],"repository":{"type":"git","url":"git+https://github.com/shovelmn12/bloqz.git"},"description":"Core package for the functional Bloqz state management library.","maintainers":[{"name":"shovelmn12","email":"shovelmn12@gmail.com"}],"readme":"# Functional Bloc Core (@bloqz/core)\n\n[![npm version](https://badge.fury.io/js/%40bloqz%2Fcore.svg)](https://badge.fury.io/js/%40bloqz%2Fcore) <!-- Replace with your actual badge URL if published -->\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n<!-- Add other badges like build status, coverage etc. if applicable -->\n\nThe core package for a lightweight, functional implementation of the Bloc pattern for state management. Inspired by flutter_bloc, built with TypeScript and RxJS. Designed for predictability, testability, and composability.\n\nThis core package provides the main `createBloc` factory, type definitions, and the fundamental event processing pipeline. Event handlers are registered upfront during Bloc creation.\n\n## Features\n\n*   **Functional API:** Uses the `createBloc` factory function instead of classes.\n*   **RxJS Powered:** Leverages Observables for reactive state and event streams.\n*   **Type-Safe:** Built with TypeScript, providing strong typing for events, states, and handlers.\n*   **Bloc Pattern:** Enforces separation of concerns by managing state transitions in response to events.\n*   **Upfront Handler Registration:** Event handlers are defined declaratively when the Bloc is created.\n*   **Configurable Concurrency:** Specify concurrency strategies (transformers) per event handler during creation. Defaults to `concurrent`.\n*   **Framework Agnostic:** Core logic is independent of any UI framework (though designed with React in mind).\n*   **Error Handling:** Provides both an `errors$` stream and an optional `onError` callback for handler errors.\n\n## Installation\n\n```bash\nnpm install @bloqz/core\n# or\nyarn add @bloqz/core\n```\n\n**Note:** This package relies on `rxjs` as a peer dependency. You need to have it installed in your project.\n\n## Core Concepts\n\n*   **Bloc:** The central object created by `createBloc`. It holds the current `State`, processes incoming `Event`s based on pre-registered handlers, and exposes reactive streams (`state$`, `errors$`).\n*   **State:** An immutable object representing the current state of a feature or data managed by the Bloc.\n*   **Event:** An immutable object representing an occurrence that might lead to a state change. Events **must** be defined as a discriminated union with a `type: string` property for this package version.\n*   **Handlers Object:** A configuration object passed to `createBloc` where keys are the string literal `type` of the events, and values define the corresponding `EventHandler` function and optionally an `EventTransformer`.\n*   **EventHandler:** A function (`EventHandlerFunction`) or object (`EventHandlerObject`) defining the logic to execute for a specific event type. It receives the `event` and a `BlocContext`.\n*   **BlocContext:** An object passed to event handlers containing the current state `value` and an `update` function to change the state.\n*   **EventTransformer:** A higher-order function (using RxJS operators) that controls the concurrency behavior of an `EventHandler`. Standard transformers (like `sequential`, `restartable`) are expected to be provided by a separate package (e.g., `@bloqz/concurrency`).\n\n## Basic Usage\n\n```typescript\nimport { createBloc, ErrorHandler } from '@bloqz/core';\n// Assumes transformers like sequential, restartable are imported from @bloqz/concurrency or elsewhere\nimport { sequential, restartable } from '@bloqz/concurrency'; // Example import\n\n// 1. Define State Interface\ninterface CounterState {\n  count: number;\n  status: string;\n}\nconst initialState: CounterState = { count: 0, status: 'idle' };\n\n// 2. Define Event Interfaces (Discriminated Union REQUIRED)\ninterface IncrementEvent { type: 'INCREMENT'; amount: number; }\ninterface DecrementEvent { type: 'DECREMENT'; amount: number; }\ninterface FetchDataEvent { type: 'FETCH_DATA'; id: string; }\n\n// Event Union Type\ntype CounterEvent = IncrementEvent | DecrementEvent | FetchDataEvent;\n\n// 3. Optional: Define a global error handler\nconst handleBlocError: ErrorHandler<CounterEvent> = (error, event) => {\n  console.error(`>>> Global Error:`, { error, eventType: event.type });\n  // Send to error tracking service...\n};\n\n// 4. Create Bloc Instance with Handlers Object\nconst counterBloc = createBloc<CounterEvent, CounterState>({\n  initialState,\n  onError: handleBlocError,\n  handlers: {\n    // Key MUST match the 'type' property of the event\n    INCREMENT: (event, { update }) => { // Direct function uses default (concurrent) transformer\n      console.log(`Handling +${event.amount}`);\n      // event is typed as IncrementEvent\n      update(state => ({ ...state, count: state.count + event.amount, status: 'incremented' }));\n    },\n    DECREMENT: { // Object definition to specify transformer\n      handler: (event, { update }) => {\n        console.log(`Handling -${event.amount}`);\n        // event is typed as DecrementEvent\n        update(state => ({ ...state, count: state.count - event.amount, status: 'decremented' }));\n      },\n      transformer: sequential(), // Use sequential processing for decrement\n    },\n    FETCH_DATA: {\n      handler: async (event, { update }) => {\n        console.log(`Handling fetch for ${event.id}`);\n        // event is typed as FetchDataEvent\n        update(state => ({ ...state, status: `fetching ${event.id}` }));\n        await new Promise(res => setTimeout(res, 500)); // Simulate async work\n        console.log(`Fetch ${event.id} complete`);\n        update(state => ({ ...state, status: `fetched ${event.id}` }));\n      },\n      transformer: restartable(), // Use restartable processing for fetch\n    }\n  }\n});\n\n// 5. Subscribe to State Changes (e.g., in React using a custom hook)\nconst stateSubscription = counterBloc.state$.subscribe(state => {\n  console.log(\"State changed:\", state);\n});\n\n// 6. Subscribe to Errors (optional)\nconst errorSubscription = counterBloc.errors$.subscribe(({ event, error }) => {\n  console.warn(`--- Handler Error Captured [${event.type}] ---`, error);\n});\n\n// 7. Access Current State Synchronously\nconsole.log(\"Initial State:\", counterBloc.state);\n\n// 8. Dispatch Events using `add`\ncounterBloc.add({ type: 'INCREMENT', amount: 5 });\ncounterBloc.add({ type: 'DECREMENT', amount: 2 }); // Processed sequentially relative to other DECREMENT events\ncounterBloc.add({ type: 'FETCH_DATA', id: 'A' });\ncounterBloc.add({ type: 'FETCH_DATA', id: 'B' }); // Will cancel Fetch A\n\n// 9. Clean up (Essential!)\n// Call close() when the Bloc is no longer needed to prevent memory leaks.\n// Example: setTimeout(() => counterBloc.close(), 2000);\n```\n\n## API Reference\n\n### `createBloc<Event, State>(props)`\n\nFactory function to create a new Bloc instance.\n\n*   `props: CreateBlocProps<Event, State>`: Configuration object.\n    *   `initialState: State`: The starting state.\n    *   `handlers: EventHandlersObject<Event, State>`: An object mapping event type strings to handler definitions.\n    *   `onError?: ErrorHandler<Event>`: Optional global error handler callback.\n*   **Returns:** `Bloc<Event, State>` - The created Bloc instance.\n\n### `Bloc<Event, State>` Interface\n\nThe public API of a Bloc instance created by this package.\n\n*   `state$: Observable<State>`: Observable stream of state changes.\n*   `state: State`: Getter for the synchronous current state value.\n*   `errors$: Observable<{ event: Event; error: unknown }>`: Observable stream of errors occurring within event handlers.\n*   `add(event: Event): void`: Dispatches an event to the Bloc.\n*   `close(): void`: Cleans up Bloc resources (subscriptions, etc.). **Must be called**.\n\n### Key Types\n\n*   `CreateBlocProps<Event, State>`: Interface for the configuration object passed to `createBloc`.\n*   `EventHandlersObject<Event, State>`: The type for the `handlers` configuration object (keys are event type strings).\n*   `EventHandler<EventPayload, State>`: Union type for handler configuration (`EventHandlerFunction | EventHandlerObject`).\n*   `EventHandlerFunction<EventPayload, State>`: The signature for the handler function itself.\n*   `EventHandlerObject<EventPayload, State>`: Object structure allowing `handler` and `transformer` specification.\n*   `ErrorHandler<Event>`: Signature for the optional global error callback.\n*   `BlocContext<State>`: Object passed to event handlers (`value`, `update`).\n*   `EventTransformer<EventPayload>`: Signature for concurrency control functions.\n\n## Concurrency Control\n\nConcurrency is managed per event type via the optional `transformer` property within the `EventHandlerObject` in the `handlers` map.\n\n*   If a handler is provided directly as a function, or the `transformer` property is omitted from the object, the **default transformer (`concurrent`)** is used.\n*   To use specific strategies (like `sequential`, `restartable`, `droppable`), provide an `EventHandlerObject` in the `handlers` map and set its `transformer` property to the desired function (likely imported from `@bloqz/concurrency` or a similar utility package).\n\n## Limitations\n\n*   **String-Based Event Identification:** This version of `createBloc` **requires** events to be defined as a discriminated union with a `type: string` property. Handlers are registered using these string literals as keys in the `handlers` object. Type predicate functions cannot be used as keys for handler registration with this API.\n\n## TypeScript\n\nThis library leverages TypeScript for strong typing. Ensure your `Event` type is a discriminated union for proper type inference within your `EventHandler` functions when using the `handlers` object.\n\n## Contributing\n\nContributions are welcome! Please follow standard practices like opening issues for discussion before submitting pull requests.\n\n## License\n\n[MIT](../LICENSE)","readmeFilename":""}