{"_id":"@acato/rx-state","_rev":"6-8aef5b7a8be2f71c1a6ff0c02debaada","name":"@acato/rx-state","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.4":{"name":"@acato/rx-state","version":"1.0.4","author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","_id":"@acato/rx-state@1.0.4","maintainers":[{"name":"beheeracato","email":"beheer@acato.nl"}],"homepage":"https://bitbucket.org/acato/rx-state#readme","dist":{"shasum":"2e85b92842e2e7a48cf7f1d7dc43901676f347a6","tarball":"https://registry.npmjs.org/@acato/rx-state/-/rx-state-1.0.4.tgz","fileCount":3,"integrity":"sha512-88DXgMJB36B3iCgs1x5HJ8yGDrlsev8ptyn5dEfXXnKO8pQaG7C3QQn3+7BQufCHOgNkE1Gsxyw0Xm7ZToOHuA==","signatures":[{"sig":"MEUCIQDVHt+zGwoqLww7Pm11PYCQTuPSzjL8oBM3DFV2Ha8MAAIgGxGwcQBiTncujZHo09Vi4M9RMHM/xtdvWwM/Fcvi/T8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10538,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWAkCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp1jw//e7+/T4Co/fvONFWohVBL36Ao0Jr1tXZPjBzJeoTNdG0X7YGb\r\noqFn1oI4gPTy6sukInK2/0NJAldIcrG4P16wjsCle3BM4/yVSXaGZaiu8AaO\r\nkLlLjxUe3yVa0xDyrTeaA1Rm+apNKPXgJEzzONdiQOmCdxK/26v7aIKNfZVC\r\nXLgQYUVi8l814L1vsITi0nDc9fqEx7UMmMORp4tmXeEHRW6lIeXwHM6H1CwU\r\n0Z6Z58tdgx4uM3FBZAUNmHZyg5Br6mlBwmDxV3/7/dypfSV09OXMo5VFVDlH\r\nIT9PUtPozO9+E+L5keOjNSp6OSXef0FnturEu9E3TwW2yy67eogEUjm1jYWO\r\nR6QgqdeAzA7st+VLrXt1jBQR3EFI/JtxMicl9iaYwSMVb+LNR+HKyfNzsF50\r\npb5q15N9Mn3esbLL3qu9AnFExH32XvHHqqTLGXap0NxFWNtLiLOsoz7QR9Y7\r\nUOJruesMaBpjv5gG30rDUert5A2HigJDhVb4bSEmCbVI+FGy00yumAOboWA6\r\nbpp1VMj2p3g5FCFOQ0s+UNWvWrh3gsYKbqSdaruWtMeGHobxGwVJdt8O+qze\r\nuqnqL6wlB4QnkpDAyI+Ge21VmFoAmC01lDa7f3z4ZiX7A4xsg0XWdupL0XhO\r\n9AdFxx1bF6XKjfuv8ufY37DQ+TbPG/At/PA=\r\n=s5oo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"lint"}},"private":false,"scripts":{"lint":"eslint ./src","test":"jest ./src","build":"yarn clean & rollup --config","clean":"rimraf ./dist","format":"prettier --write './src/**/*.{spec,js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc","release":"standard-version","lint:fix":"eslint ./src --fix","prerelease":"yarn format & yarn lint & yarn build"},"_npmUser":{"name":"beheeracato","email":"beheer@acato.nl"},"repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"_npmVersion":"6.14.16","description":"Easy statemanagement without config, Contexts, etc.","directories":{},"_nodeVersion":"14.19.0","browserslist":["last 1 chrome versions"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rxjs":"^7.5.5","husky":"^7.0.4","ramda":"^0.28.0","react":"^17.0.2","eslint":"^8.10.0","rimraf":"^3.0.2","rollup":"^2.68.0","prettier":"^2.5.1","react-dom":"^17.0.2","standard-version":"^9.3.2","rollup-plugin-copy":"^3.4.0","eslint-plugin-react":"^7.29.2","react-test-renderer":"^17.0.2","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.3","@rollup/plugin-node-resolve":"^13.1.3","@testing-library/react-hooks":"^7.0.2","@babel/plugin-transform-modules-commonjs":"^7.16.8"},"peerDependencies":{"rxjs":"^7.5.4","ramda":"^0.28.0","react":"^17.0.2"},"standard-version":{"scripts":{"prerelease":"yarn prerelease"}},"_npmOperationalInternal":{"tmp":"tmp/rx-state_1.0.4_1649936641878_0.23706703985867517","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@acato/rx-state","version":"1.0.5","author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","_id":"@acato/rx-state@1.0.5","maintainers":[{"name":"beheeracato","email":"beheer@acato.nl"}],"homepage":"https://bitbucket.org/acato/rx-state#readme","dist":{"shasum":"19ef2cb6fa8dda71c5165666399d8e19b0af1a05","tarball":"https://registry.npmjs.org/@acato/rx-state/-/rx-state-1.0.5.tgz","fileCount":3,"integrity":"sha512-ADTLl66ft5X9afZqOEKcrGpj2jbHYKN8Mv86FMNCIEOFvai3t5m3/agPtFRUDfmhJOM5VJ2GRCfX6IKmtHU/0Q==","signatures":[{"sig":"MEUCIGf3hKyIA0u4Xg+WA83OlQzAqW9Rf5DO4MWIT6IlGZvsAiEAz9+N/ZTs45A7+M+sMwga6rAvLJIXKoXBmlGUiL8OO/o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6824,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWGd6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHSQ//ZXTX9Dr/lNXX+hDqvmAKAAoboSkEMoWOVkBS23MI15fXHojp\r\ndmF4hKONTuzYYLx3TzsBAZH5LF9e5ojcgZklrDqWHRc/za2Z98qf8WWdlpR4\r\nlfo3BKhbSvlJvYJMD8GWdV9K5YHANILPcyQKstMkqEkBTfWyvYLiE7+HcFnY\r\nGuAreHRfVdl9isP9g4aE+qXx1qGtTx86bZfZJTUL173R8ttVf899NQvGXrd2\r\neA50tBT5/dVUyLBoEDKzhY8U8u+LxEgHO+R0pAZTNRr8gw6Ow8Bua3q0omFf\r\nSLPwrT9JgGU+CT3D+9wZhdTUiWRZaIwPd3KQ5VQmHcwZSV3Sml17KrvdiHlP\r\n5jEoWy4QD5pTNB9NNZtO5j47Cyf6O0yKb8aATuf7mPOMgfZWgusniod8y5pQ\r\neDIGAsMSvKCs72Rb+WyXpuY6IwXs0AcdWMmEfWRPBpLsETZWYuwDOhtGP3bu\r\nRHBTvy5FY9BXGNXe5MG+5EmrweA9NmbUiC/V2dYZEvm/03YPIf7wr4Il7Eod\r\njIdA/K57uqXMVPLbRAnSDILIw91Ey7kBj1sXOOrPIZi+TxBSgHhVgvFvHbym\r\nc1lsKcQByI3GePHUOZIItOzSbsfYc4LbtYCnBWpitjQ3TAMXvlc3HW8/YLhF\r\nGTbh1/8gGvY/ujhLe7gjrqRD5kXNlp/Fzrg=\r\n=k1Zk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"lint"}},"private":false,"scripts":{"lint":"eslint ./src","test":"jest ./src","build":"yarn clean & rollup --config","clean":"rimraf ./dist","format":"prettier --write './src/**/*.{spec,js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc","release":"standard-version","lint:fix":"eslint ./src --fix","prerelease":"yarn format & yarn lint & yarn build"},"_npmUser":{"name":"beheeracato","email":"beheer@acato.nl"},"repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"_npmVersion":"6.14.16","description":"Easy statemanagement without config, Contexts, etc.","directories":{},"_nodeVersion":"14.19.0","browserslist":["last 1 chrome versions"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rxjs":"^7.5.5","husky":"^7.0.4","ramda":"^0.28.0","react":"^17.0.2","eslint":"^8.10.0","rimraf":"^3.0.2","rollup":"^2.68.0","prettier":"^2.5.1","react-dom":"^17.0.2","standard-version":"^9.3.2","rollup-plugin-copy":"^3.4.0","eslint-plugin-react":"^7.29.2","react-test-renderer":"^17.0.2","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.3","@rollup/plugin-node-resolve":"^13.1.3","@testing-library/react-hooks":"^7.0.2","@babel/plugin-transform-modules-commonjs":"^7.16.8"},"peerDependencies":{"rxjs":"^7.5.4","ramda":"^0.28.0","react":"^17.0.2"},"standard-version":{"scripts":{"prerelease":"yarn prerelease"}},"_npmOperationalInternal":{"tmp":"tmp/rx-state_1.0.5_1649960826746_0.16344993664689933","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@acato/rx-state","version":"1.0.6","author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","_id":"@acato/rx-state@1.0.6","maintainers":[{"name":"beheeracato","email":"beheer@acato.nl"}],"homepage":"https://bitbucket.org/acato/rx-state#readme","bugs":{"url":"https://bitbucket.org/acato/rx-state/issues"},"dist":{"shasum":"c05f510475d737751d8fea8f7c18982c1caacc48","tarball":"https://registry.npmjs.org/@acato/rx-state/-/rx-state-1.0.6.tgz","fileCount":3,"integrity":"sha512-PuOTtKLTNo+m1pGDuThofRALHlyjQVE9WCxAgi3mJ2TSA8YdwuwyjPL1WyVN0yuoDiZPCZYmiZ7OSvEtcq4NdQ==","signatures":[{"sig":"MEYCIQCqxtFVHPWuOZiTKaY1X944ZEcd9y1nGPdlnWQ4/5usTgIhALe//5R02QRChKeTQciUohOn42IB4cIVH0IAABnDccWp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYlrZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbIBAAm5M21AkHRcmfBAdWntPDJT5kHukMscwid0H3A1CbSBxEqo+X\r\np9dhW7hdLPgw402KcLx2hbPRwRz2crjdxft3osjcUwwKcfDhi/a9xeI4fHXJ\r\nK216CrhVK4q8NKqP+ciG3LfzSReSPQDacR1ynz03N3bt9ykqziozylCJCvuh\r\n4PyCQCiqvYBxv2mvYlOFdSqtGmniZ3k3y1eQFHo+xpQUzEJVLegGG5YMWAGV\r\no1aRaWl4NP3RKLzGN2MooQ4CUxCB7943beSorF6ql5X0myJ8suidswCKnUQH\r\nOSXacvvC5z9bvzyJ4+olWVVBc0UAQtu/ZrMCnwYKX4bMC1xq5iS54661tXRx\r\n/sYKssljJpJ6z1kEG2eQUkWiz7CiMMEY3H8iT2mbwjw63M72752167zSfcC0\r\nL8YOYjHOjVmWopChGcsqnJKotZgZg2fnBEW20ztvvBiKCbj55A2xDVhZ81Dp\r\nvUVcjtTmGbkxpBt9GrFi+LmU3BdXKHH4gfvNlqAf48xj7MvVFyYPefitgsxd\r\n2shz/+VWlKxG65Nc8Op0hz7F3P6bWbxeXZdC2esmsXaTXnxUrBL8K5irePxR\r\ndABU+89lYQvnMqVVmY7tFXkNFiNlvrOEtBsv1ZVDddopoH1QcclT0Lime36b\r\nGnRmxUMmq+MAmk2kM+ye5s96d2fGPWgjZ7w=\r\n=vYpw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"lint"}},"private":false,"scripts":{"lint":"eslint ./src","test":"jest ./src","build":"yarn clean & rollup --config","clean":"rimraf ./dist","format":"prettier --write './src/**/*.{spec,js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc","release":"standard-version","lint:fix":"eslint ./src --fix","prerelease":"yarn format & yarn lint & yarn build"},"_npmUser":{"name":"beheeracato","email":"beheer@acato.nl"},"repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"_npmVersion":"7.7.6","description":"Easy statemanagement without config, Contexts, etc.","directories":{},"_nodeVersion":"15.14.0","browserslist":["last 1 chrome versions"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rxjs":"^7.5.5","husky":"^7.0.4","ramda":"^0.28.0","react":"^17.0.2","eslint":"^8.10.0","rimraf":"^3.0.2","rollup":"^2.68.0","prettier":"^2.5.1","react-dom":"^17.0.2","standard-version":"^9.3.2","rollup-plugin-copy":"^3.4.0","eslint-plugin-react":"^7.29.2","react-test-renderer":"^17.0.2","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.3","@rollup/plugin-node-resolve":"^13.1.3","@testing-library/react-hooks":"^7.0.2","@babel/plugin-transform-modules-commonjs":"^7.16.8"},"peerDependencies":{"rxjs":"^7.5.4","ramda":"^0.28.0","react":"^17.0.2"},"standard-version":{"scripts":{"prerelease":"yarn prerelease"}},"_npmOperationalInternal":{"tmp":"tmp/rx-state_1.0.6_1650612953441_0.5396541220447191","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@acato/rx-state","version":"1.0.7","author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","_id":"@acato/rx-state@1.0.7","maintainers":[{"name":"beheeracato","email":"beheer@acato.nl"}],"homepage":"https://bitbucket.org/acato/rx-state#readme","dist":{"shasum":"b1e89d90318aa6c705a50b7bb85a56d4b1f2f557","tarball":"https://registry.npmjs.org/@acato/rx-state/-/rx-state-1.0.7.tgz","fileCount":3,"integrity":"sha512-SsZa4iya3nFpp2Dr+4UipQjrLy//umj8821UVLH4FuJWL/sa5Efa3PE8ejsIGUODPQy2qIOUB1Y5o6D/qQbshg==","signatures":[{"sig":"MEYCIQCeAWy4mdswCuVQVqbd0Ig9D3Vsrej/PfbVLjXyAZ42FgIhAM83ytyoOdjPgRcZQm8B/+noCo379dhoOsD32iZiKgCi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYlwLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpwOw/+Ki3TTqAKW3aI6hGmSsspQgNOpx9KCYGQI4MSNlccFk/jE4zS\r\nzLckyXL7Iw90dDv1fzFS/MfB+IArE8Klm0qfHMOHvey6BmGizFo7ukHzKJ2e\r\nyvmL/Ue0lA/iNFlkNyACA/j1GHcWhd31h5ZhkpShfTCxAXVFFFQKnBPQZzvY\r\nCVAvHvTApmfkyvNaDaj8n8IxqqSvG/w+TgLaUgNdyd9RmAtVH2c9AvdDDhvi\r\nvBOrP1dk458Wlui7QBTPGX06sGc+wTTnZ6gsG5AnB4M3Qe7datdImO2KkICB\r\nSAjgnGuWaW5D1gvXu6ErMTjXo0yfSwF/OKrxpZy7B083948n/WK4olNdvBAz\r\nwuM4i3LBBOUIY7jKn4o5kBdg88Y69ZEPd1oa5GRCam/aqUVLl7IDDobLEsnw\r\n0JNuS91VGoPGjnuYbvJPi9RWfSO8Wo946jbfiUeIdVPzv5G4fvgR2HwOOpuI\r\nJpVzfN9yFpkKSwndew3u+lP6CoPfWv8I1bJkAoBnQ7rtHeTO+Uk6G6HNl72N\r\nOH/tP+vzEizz16norhZCmE4YWvhAxx6ZRb1N59e/TTCsIVpwc4Dy2IArhRAh\r\nT165fm+yrwS6kiqVX9mT06Fua5lt1OXcUxwSVEUpfNTTzVwolDyhxKpRY7+M\r\nqIY/y7tQdxnpj3fPRePfsD30mjwejgGTp1I=\r\n=OtXJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"lint"}},"private":false,"scripts":{"copy":"copyfiles ./package.json ./README.md  dist","lint":"eslint ./src","test":"jest ./src","build":"yarn clean & rollup --config","clean":"rimraf ./dist","format":"prettier --write './src/**/*.{spec,js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc","release":"standard-version","lint:fix":"eslint ./src --fix","prerelease":"yarn format & yarn lint & yarn build"},"_npmUser":{"name":"beheeracato","email":"beheer@acato.nl"},"repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"_npmVersion":"6.14.16","description":"Easy statemanagement without config, Contexts, etc.","directories":{},"_nodeVersion":"14.19.0","browserslist":["last 1 chrome versions"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rxjs":"^7.5.5","husky":"^7.0.4","ramda":"^0.28.0","react":"^17.0.2","eslint":"^8.10.0","rimraf":"^3.0.2","rollup":"^2.68.0","prettier":"^2.5.1","copyfiles":"^2.4.1","react-dom":"^17.0.2","standard-version":"^9.3.2","rollup-plugin-copy":"^3.4.0","eslint-plugin-react":"^7.29.2","react-test-renderer":"^17.0.2","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.3","@rollup/plugin-node-resolve":"^13.1.3","@testing-library/react-hooks":"^7.0.2","@babel/plugin-transform-modules-commonjs":"^7.16.8"},"peerDependencies":{"rxjs":"^7.5.4","ramda":"^0.28.0","react":"^17.0.2"},"standard-version":{"scripts":{"prerelease":"yarn prerelease"}},"_npmOperationalInternal":{"tmp":"tmp/rx-state_1.0.7_1650613259453_0.6196792100862776","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@acato/rx-state","version":"1.0.8","author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","_id":"@acato/rx-state@1.0.8","maintainers":[{"name":"beheeracato","email":"beheer@acato.nl"}],"homepage":"https://bitbucket.org/acato/rx-state#readme","bugs":{"url":"https://bitbucket.org/acato/rx-state/issues"},"dist":{"shasum":"ffd7e0518c9e830b2253dec559fd04f31af59fe2","tarball":"https://registry.npmjs.org/@acato/rx-state/-/rx-state-1.0.8.tgz","fileCount":3,"integrity":"sha512-4G6jQEMteod1Hu9ytPaA529nmxjiBm8Razbhb73FXkcPbpU1J9JMLOKeWtDeeO93+mhiqeDO2SUVpmg2jM7jQw==","signatures":[{"sig":"MEUCIGB7JJy8ruX3F0v1tLyqT6CuADcO48BFjAuNlQDdeqhfAiEAkaKNjbodnBO5y6RVp19dmqMWDwxaW4kvvPXORxCEITs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8205,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJip1SyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoDQ/9FSOTCzAUT8floIT+5y45JQpLdstW4VYOAC4ICysyC1x3QaPh\r\ndDMBBZZx6YRNvQar1K/OFPRjkC/+uZ+0Sz8g/xXoZpLmFZSNwSTN0hpL83lo\r\n9PIoRMvju/83WrHK+57TwBmnyKrevsPvpK/XA2OKXfhJN/cDJDaE1Xp2Tr4g\r\nWjoSmut/82b/NeIAgsUKAEaMyDCbmHWd+HAr8TPfvcJt2SURnekjX62nyZ08\r\nzPbVXzA9m5fLpSuJalorBJjZH7b17b/2lelqxpsCY7hvwfJ7dQc3Bd/3TqQm\r\nXzCBozHBveGUo/vCYOgU5Xkpu3LczjOZDkmyUaHOuWIxht+x7tqP8zYcqcsv\r\n3FwtiJs0AqgP4Bu8g86BNQmTFg/fsNUMQm7OZmkShKCTjdiT8jmV1o1/xqcI\r\njVlMSa483lnY8mrX2882xybNVwWURo9K3mptpLXBXhTB3LZKgJMicEdgKHys\r\nv+5FAPNMqMDs/rjik4vUFBB3VV4GFHrFXIss9T13AVdRdRWQZYIlTgANro2p\r\nfVzAwPxaIBHPYqnnwsWZbIo5Cr6xiXHnTz+rwBS28Ix8IjrSAn1hfAUvdvJR\r\n/pJVrlUCgc7DDVGgN/dWpVGINHJDXuyPhJPeFzUF8oa58uKoji6JD7C5gDYr\r\nUfCT0wRnscQZLBQ/j5Msq81MDUJqHK34ZQs=\r\n=bnnt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","husky":{"hooks":{"pre-commit":"lint"}},"private":false,"scripts":{"copy":"copyfiles ./package.json ./README.md  dist","lint":"eslint ./src","test":"jest ./src","build":"yarn clean & rollup --config","clean":"rimraf ./dist","format":"prettier --write './src/**/*.{spec,js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc","release":"standard-version","lint:fix":"eslint ./src --fix","prerelease":"yarn format & yarn lint & yarn build"},"_npmUser":{"name":"beheeracato","email":"beheer@acato.nl"},"repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"_npmVersion":"7.7.6","description":"Easy statemanagement without config, Contexts, etc.","directories":{},"_nodeVersion":"15.14.0","browserslist":["last 1 chrome versions"],"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rxjs":"^7.5.5","husky":"^7.0.4","ramda":"^0.28.0","react":"^17.0.2","eslint":"^8.10.0","rimraf":"^3.0.2","rollup":"^2.68.0","prettier":"^2.5.1","copyfiles":"^2.4.1","react-dom":"^17.0.2","standard-version":"^9.3.2","rollup-plugin-copy":"^3.4.0","eslint-plugin-react":"^7.29.2","react-test-renderer":"^17.0.2","rollup-plugin-terser":"^7.0.2","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-commonjs":"^21.0.3","@rollup/plugin-node-resolve":"^13.1.3","@testing-library/react-hooks":"^7.0.2","@babel/plugin-transform-modules-commonjs":"^7.16.8"},"peerDependencies":{"rxjs":"^7.5.4","ramda":"^0.28.0","react":"^17.0.2"},"standard-version":{"scripts":{"prerelease":"yarn prerelease"}},"_npmOperationalInternal":{"tmp":"tmp/rx-state_1.0.8_1655133362146_0.18940726475132053","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-04-14T11:44:01.817Z","modified":"2025-05-26T12:15:33.549Z","1.0.4":"2022-04-14T11:44:02.038Z","1.0.5":"2022-04-14T18:27:06.906Z","1.0.6":"2022-04-22T07:35:53.575Z","1.0.7":"2022-04-22T07:40:59.709Z","1.0.8":"2022-06-13T15:16:02.270Z"},"bugs":{"url":"https://bitbucket.org/acato/rx-state/issues"},"author":{"name":"Marcel Bos","email":"marcel@acato.nl"},"license":"ICS","homepage":"https://bitbucket.org/acato/rx-state#readme","repository":{"url":"git+ssh://git@bitbucket.org/acato/rx-state.git","type":"git"},"description":"Easy statemanagement without config, Contexts, etc.","maintainers":[{"email":"beheer@acato.nl","name":"beheeracato"},{"email":"paul@acato.nl","name":"paulacato"}],"readme":"# rx-state\n\nStatemanagement without the hassle. No React Context, no reducers/actions/etc, no\nconfig, no store, just state.\n\n# Table of contents\n\n- [Features](#features)\n- [Installing](#installing)\n- [Examples](#examples)\n- [API](#api)\n\n# Features\n\n- Use state local and/or global\n- Zoom in on state slices\n- Set and get state outside React\n- Subscribe to state changes (in and outside React)\n- Use selectors\n- Derived state\n\n# Installing\n\nUsing yarn:\n\n```js\nyarn add @acato/rx-state\n```\n\nUsing npm:\n\n```js\nnpm i @acato/rx-state\n```\n\n# Examples\n\nThe state created with `createRxState` can be used anywhere in your app. What I mean\nby that is that `createRxState` returns a hook which can be used anywhere inside a\nReact component, without having to use providers, contexts, etc. Besides that, it\nreturns three more functions: setState/setPartialState/setSharedState,\ngetState/getPartialState/getSharedState and subscribe (names are up to you). These\nthree functions can be used inside as well as outside of React.\n\n`To get or set state you will need to use a path, like 'todos.items'.`\n\nCreate state:\n\n```js\nconst [setRxState, useRxState, getRxState, subscribe] = createRxState({\n  cart: { items: ['prod #1'] },\n  todos: { items: ['todo #1'] }\n})\nexport { setRxState, useRxState, getRxState, subscribe }\n```\n\n**Getting state**\n\nGet state without callback (hook):\n\n```js\nconst MyTodos = ({...rest}) => {\n\tconst todos = useRxState('todos.items')\n    ...\n    return todos.map(...)\n}\n```\n\nGet state with callback (hook):\n\n```js\nconst MyTodos = ({...rest}) => {\n\tconst todos = useRxState(items=> items.map(itm=> itm.toUpperCase()), 'todos.items')\n    ...\n    return todos.map(...)\n}\n```\n\nGet state with multiple 'selectors':\n\n```js\nconst MyComponent = ({...rest}) => {\n\tconst [todos, cartTotal] = useRxState((...data)=> [data[0].map(...), data[1].items.reduce(...)], ['todos.items', 'cart'])\n    ...\n    return ...\n}\n```\n\nDerived state:\n\n```js\nconst getFullName = user => `${user.firstName} ${user.lastName}`\nconst MyComponent = ({...rest}) => {\n\tconst userFullName = useRxState(getFullName, 'user')\n    ...\n    return ...\n}\n```\n\n**Setting state**\n\nSet state:\n\n```js\nconst setTodos = setRxState('todos.items')\nconst MyTodoForm = ({...rest}) => {\n    ...\n    return <button onClick={e=> setTodos(todos=> [...todos, 'new todo'])}>Add a todo</button>\n}\n```\n\nGet state (js):\n\n```js\nconst doSomethingInteresting = () => {\n  const todos = getRxState('todos.items')\n  // doSomethingWithTodos(todos)\n}\n```\n\n**Subscribe to state changes**\n\nSubscribing to state changes can be useful when you want, for example, store some\nstate in the browser's storage. Or maybe you want to execute some other logic\nwhenever (a part of) state changes.\n\n```js\n// Subscribe to a specific state slice:\nconst unsubscribe = subscribe((value) => {}, 'auth.token')\n// or:\nconst unsubscribe = subscribe((value) => {}, 'auth')\n// Subscribe to every state change:\nconst unsubscribe = subscribe((value) => {})\n```\n\nBonus tips:\n\n- The state can be used locally, shared or both.\n- You can create your own little scoped api for managing a state-slice, like:\n\n```js\n    const setCart = setRxState('cart.items')\n    const cartApi = {\n        addItem: item=> setCart(items=> [...items, item]),\n        removeItem: item=> setCart(items => items.filter(...)),\n        etc...\n    }\n```\n\n# API\n\nThe state module is built on top of rxjs and ramda. It allows consumers to get\nnotified automatically whenever the subscribed state (top-level prop or nested props)\nchanges.\n\nCreate (shared) state:\n\n**createRxState(initialValue)** where initialValue ideally is an object literal.\n\n```js\nconst [setRxState, useRxState, getRxState, subscribe] = createRxState({\n  myslice: {\n    nested: {}\n  },\n  anotherSlice: 'yeah!'\n})\n```\n\nIt returns 4 functions:\n\n- a set function for setting state (can be used outside React) with an optional\n  default/initial value.\n\n```js\nconst setNestedState = setRxState('myslice.nested', 'my init value')\n\nsetNestedState((currentValue) => ({ ...currentValue, newKey: 'something' }))\n\nsetNestedState({ newKey: 'something' })\n```\n\n- a hook function for consuming (shared) state.\n\n```js\n// most simple:\nconst myState = useRxState('myslice.nested')\n// with setState callback\nconst myState = useRxState(value => ..., 'myslice.nested')\n// multiple selectors, with callback\nconst myState = useRxState((...values) => ..., ['myslice.nested', 'otherslice.items'])\n```\n\n- a get function for getting state, outside of React.\n\n```js\nconst doSomething = (...args) => {\n  const nestedState = getRxState('myslice.nested')\n  ...\n}\n```\n\n- a subscribe function for subscribing to state changes, in or outside of React. It\n  returns an unsubscribe function. The subscribe function is most useful used outside\n  of React, because there already is a hook function which subscribes to state. You\n  can subscribe to specific state slices or the whole state tree.\n\n```js\n// Or to subscribe to specific state changes.\nconst unsubscribe = subscribe((value) => {}, 'auth')\n// Or to subscribe to all state changes.\nconst unsubscribe = subscribe((value) => {})\n// Unsubscribe:\nunsubscribe()\n```\n","readmeFilename":"README.md"}