{"_id":"ssb-crut","_rev":"50-d26c3930439898c81ece8480bf1c8d0f","name":"ssb-crut","dist-tags":{"latest":"6.1.1"},"versions":{"1.0.0":{"name":"ssb-crut","version":"1.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^1.0.3","@tangle/strategy":"^1.4.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^1.2.1","@tangle/overwrite":"^1.2.0","scuttle-testbot":"^1.3.0","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^0.4.1","standard":"^16.0.1","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"037a17feb4bd0501435c0ac765880e66ae4614e3","_id":"ssb-crut@1.0.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-4qT4cGs81epyky778pROTFJq4DlYVEsByZHDp7vHVMI0AfJhytEdtbO073Hrx0i5LGNHQceaZoLrCE1BOekl7g==","shasum":"1637a457371f25ef63279cf8bbad5b4774a2a6cc","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-1.0.0.tgz","fileCount":13,"unpackedSize":40624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfo0gHCRA9TVsSAnZWagAAfVgQAIAPSOcGwg81pTha2zwK\nHjbG01xjcRVVuMb7oDW2WhhzJtnHt4v2fFEdxHOk5IMuozgBoB0K2Z4e1Ozw\nLhT9zCTVvq+hNNqLsQszuuByo4ZmQNg1EhBLZUw/5F4+58peyXxLFBuRqNhN\nJGbLDajtl05L5BsH1LmY1zpl1JzADwC6vugKawjl1G/eKJEJRmh1CP+5+dri\neAIzd7qJuqPXMGeHoMKQRwRx1vpfPAjd/dYmXhIPQPExxlMUCdTKkg3GsnW9\nSd1TzhdvR1Phx0h17Q08gdfniVzSOZEi6oIBDAyvZ+go77megkOjNX2gKaQu\nIhHBeeKUycKi0bwvXCEmmpvkds+4EppqnznsUhO1lcRDPDVvO6fzpcsdeUzt\n8olsmNDZcQV672vyR4IaOgYEbOyWZxbErt7LL+JLftxzuXD73e0vUCFeomQ9\nZriQkgQCYkWed/7+HR23QWyR3ysqHANXozOeBZfdvBf6Y1t77tEVY/IW66Bx\nF6yP6++tFQWXHqqAIewn8NNdKh5y7THFRg9uBO4stqba/H/kiaa5vIZViHUO\nr0tXMzNiw4LmKldxnQeV4hxXxbzaZhvs/6edJIk54mfzvTnKR60PsXq3YqET\nUo45NhZl+0Bj7k+EF51i7WV6OWpCsbcy9iI/+Iz+QYmNIk+kTgFwCaA8AnwK\nysao\r\n=Pd87\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/jK3CPdLikzUjhBwqukI1P+gZlJR43XKnP2Zr0S16VQIgJZpq1wEuSvOJj51IoTPAB6cgXjhi8DO9SHlJTWIDXHs="}]},"_npmUser":{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_1.0.0_1604536326883_0.01955213942608669"},"_hasShrinkwrap":false},"1.0.1":{"name":"ssb-crut","version":"1.0.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^1.0.3","@tangle/strategy":"^1.4.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^1.2.1","@tangle/overwrite":"^1.2.0","scuttle-testbot":"^1.3.0","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^0.4.1","standard":"^16.0.1","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"62b32b175c5a6f9fd039384cde112c7b873e2d9a","_id":"ssb-crut@1.0.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-kNUJMPN6BFKy5Knn8RE4QJ5AgsBQejNcG0oYhDVKBomXoQhV7CQJk7WlwTt0MoE8htv5KLw6F60Kaw7xkGzczA==","shasum":"217130dc7cfeb34a3c437db05fc7e2a8e3add1f9","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-1.0.1.tgz","fileCount":13,"unpackedSize":40677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpGCwCRA9TVsSAnZWagAA5cAP/AxkLtcmywVRk2o4a03K\nLwpkFJLv3iLqPygpMQaU+OGd4Xngdz1VCw/7ecIkWsZ+43qa8gluE6SKub04\nC460Sv0dQn2/QaN7xWpqevK0/U8d0CNIKpyRX+Qa1hwL5JthWd/jyMQoRMVj\n1mEJlhRl4/Ncy8Bej+gDRuTpsfVLoTdQEMZCfX6/fRC8yjEOk1swF240VuR6\n4WgIHrqiC2U+EXbFh1Db/DBzB3kfULvOEISnSgxtyax4BJyb+gTWZVOO0lBl\nUtFxhyPMaDhgqsFPfxcP4o4jYMiHBPk22X9ciusYCFAlNQBeuD9ilxueW4O0\nhDAb+eaMdCvql/kU3JCMeMjJfWt8+rxu/63Ev6NNBeBL/jVmripFbQLKf2dJ\nmpKA7mMsVHQcdLENiI8jkR9rIKnrJ+tI+TGdPWVDAxntV2JYZi5IKy8N66GQ\n4KWdtMECIR2uEMS4+iD4AgL7gJBHUjlQ/psU8jfKd0WoHQH+77+lnZu3Cbvu\noT2fmpPqQRQFmO8TyZv0Hv+ksuDFzkVkBAsJ5bvQvs7Q1fdpyBPOdbvkIjeV\nzVdIp+PkfPfEBogmcaGHA4KZN1kN/8+NlNzff3ysHM/gVeqpz394pAnp0fpq\n8dTta6QB/CayBX/H1KF3jz8juwN4JeyhKsEtWaSjK5T5HgvI1+GGX+sD3LkH\n+3JX\r\n=FfnY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsNKU+F31iABlMZummGvpJZVvFufKS1qTlnaWO3V5XLAiATP2hGT8zLnLD/6FrRf/9bl4b/HjEXPzYa80Pq6AQ4BA=="}]},"_npmUser":{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_1.0.1_1604608175856_0.08868861271271755"},"_hasShrinkwrap":false},"1.0.2":{"name":"ssb-crut","version":"1.0.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^1.0.3","@tangle/strategy":"^1.4.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^1.2.1","@tangle/overwrite":"^1.2.0","scuttle-testbot":"^1.3.0","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^0.4.1","standard":"^16.0.1","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"7c264bd41fe857c458d9f4eaab5f85e8c7cfa718","_id":"ssb-crut@1.0.2","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-sQmx3ugEeIkjR6Izvm0pOgozImJm2MaUeWDLrsYnJastFrWOThXv01gqya4ZI6IpZXMDugwGeS+5qH3nozNK2g==","shasum":"6bbe67965e6996ff202b9d6a861013001e3068e7","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-1.0.2.tgz","fileCount":13,"unpackedSize":40688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxGPgCRA9TVsSAnZWagAA/5AP/iHRGd5x+O9Kp3Ywhvsg\nIm2+2qyzVavvGWl+kZmmuYY2EconbCoxfWbYBOujuWN2gbsDCwR5G1Yp4kTD\nFJxKbqweuRMIkL0La8qAbNRKQDnT6s0XPB7/hOUZIBRi1WkNVv69sm7/ta3U\nHMh0G4NgyT8N3fNeR54IQOeCiAEEBzhLFB+/vnkqu/Ie+LL/pwrhH++GXRiQ\n/NJKA5ac8vjnzNE2s9CF1YyJ53QdUtbfYCyAzRqHGL6KqqGcigyS5wszfIXs\n2AinkWiDnWApb3nInCq3KnfpzbqEjdhnK62z2X9V/cMqL/qTruGizOdp5NwQ\ndsHvByrZ+CAouPjt5Xgp8Xq94iurWC/fUDC9rOm+vM96NInO7Dkpgy4IL0jS\nxU/uRYcNq+9CSC4JHvvP5DRQpDfu8YBW5vvLAw7EprcmAB4Mo/NhcUA3LnJd\nrq3gqn3xggMWg6XRfhtvuPRXwDlFYUDWUGwANYDLmzW2oHdPfSA5lTl0Xaib\nGya1uIIgXVag/AV+Mi94edflep2Z8hS1SKedx15PVqq8puGTGAQ5rSU4YnHW\nPLe/g1ugHOdXzsk7uIHrKKHAXsMIY1hW/fOmU+sbP/S9tfCcnjJGXGMvxwiP\nDUTIPvRSJrPhxIurltoOCUYvs6PW0m+8NETH8fr0qOdrVTcyCLQut/u7tzW7\ny0mR\r\n=+zow\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIADvsaXqLY5Kg3wWGLg4swdqqwlgnYRjrq8prFR2hknaAiAX+nxAiK4TKbxRe56wNhvl/KBRfeLLsNgaEtsAMrtjeQ=="}]},"_npmUser":{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},"maintainers":[{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"mixmix","email":"whimful@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_1.0.2_1606706144044_0.2577126621479886"},"_hasShrinkwrap":false},"1.1.0":{"name":"ssb-crut","version":"1.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^1.0.3","@tangle/strategy":"^1.4.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^1.2.1","@tangle/overwrite":"^1.2.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^0.4.1","standard":"^16.0.1","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"a7cd8ff271797d85cc5260d0dd91cb193a9c8bcc","_id":"ssb-crut@1.1.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-rnvkdXlhISTLPXaIrKPsIV78rqEu8W2tgnsm23kjP+SQl+zUlmwg2pdHCq11zKWBzrPm2XNCv9mda/zhh27xpg==","shasum":"3fb181ba3bd8d2fb935d0a22067c2ce4646d51d0","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-1.1.0.tgz","fileCount":13,"unpackedSize":45264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAL2dCRA9TVsSAnZWagAAokIQAJ+PxNYhy75FO5YQYIge\nq4WLqztxhSB1Ny1kCmqJQZByUdNZ+gEj13VE/xYy45lnq1lMsUwlCZP/GmfX\nukZopGiAlEcuBQ0ZNLNo6h0PP8xFcmrqq6g4blRonY04N3Dtj+zEVoTyhLXk\np4dAYzgkMUkSGim1/XzVTgYMHRk2O4OoYIL1l/zSBmkbmuxDB3WSm93Xkb9V\n6qxPTBQsYR/0uAw9NnLuM55FFXM6TRz2VXQ9a0ML9h7fIX46hecof0AG36FA\nV36k9AI8zcRlUvJXCAAll1zj/Rj0+AWI18/5gojzMeqPitTHzT859LmeO8GS\nkWjG+9g+KQY7Qw/wdyMHYmP0TY+lYL/RPK20JuVlt5dBc1tdgycRBJmORD9S\n+fI3mhtaVz/T04sCU295yYRjWZ2fEfg8zlX307ywe3DYRqbFCT+2rYqHDE9Z\nRc9/I3nZ0hBKWMHBykShleMXMj0QQ5AHVtdMNFDSh/C8xK82uZWLwnx40Kgq\n3Vbyf1rxp2FSdQy9lbavl232z9lgfc5l6FAoDIQNgMCBEKPFJDR5oy9At1Bv\nT9RMfEUt1oEMWEOIZ1aoL1KqO4771kv+8jLmvEcoLvYQgTw3p8Ca2YRzTjlB\n07pzP4L9O6gYCVUV32FVZuI3B91Fp5zCwgSzX6dpEtiugOUnEZ67tEgguD8l\nzBii\r\n=jzND\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF1muh0TbUmxH3g0fqi+Bp2ySajOiQwbWMnbfJ6hkC0eAiBtlaFcNqHHtaULisvrNE4FMvbxruSNtXP69N3M/uy52Q=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_1.1.0_1610661276591_0.7337659555480838"},"_hasShrinkwrap":false},"2.0.0":{"name":"ssb-crut","version":"2.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.0.1","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/overwrite":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"35b3fb5d81d38dbe0159b74fc7cf75ae392a0906","_id":"ssb-crut@2.0.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-HoWEm64+IOpuWFQMfzZ2oNDDtZaCeBB1BVWb6ZsOmeh5Amww0G6mwlG4fCeFWfsLjB4UmevQTO9EXsxa9sMvNg==","shasum":"90e6ac7d1bfb0501d897147406a3b621590ac575","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-2.0.0.tgz","fileCount":13,"unpackedSize":45285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFypXCRA9TVsSAnZWagAAevQP/0Qp7OMqIflDWY0TLzr2\n16vDe9yh6XqfWLeHEsRtiRBWyy9PAPTq6tjllQTjliEJdHtCTAmgfj/9XRbq\nAgUKXZ1IMFezvyao4YHuGYOUcyjblJHUn2U5cV1/iWzAQp64249fdUk2TCDu\nGpBneJffmRRPsciUrcZ9qP4FyozKc43MRjPyWHb0nxrsQJ5jGALubS+FOQ3t\nc6ZPBswxD9kii9AZPVQbMM45AkZr0KZBdzclEZVVQ5xqXzn0VM8xCbuOHS66\nISoty1icAKHjFpE4FKivafj7VsZo8h8DZh6DJzkyne9fYsc7woXgpToT0HZX\nK3xEncC/Y5ZP8F8gFnvuMZmlomN4a9coc07bm4fKF5nyJlp+tv5s8cHpZwFw\nuggz6GwsIEEbpjomw0oks8Gl/WGwSivysQt5REanT/WIhHdNH5JT7JINzbSM\nRazVpZdnkHmzXE9NEd8FCs/YFqsMfC6jZyKfGBGJ8rp7/A1OWTR1mPcBQhss\nNrbbMrmhFnLKYm/d+7ClHxQj/gEGWcBz4/XcZ/ZOdqL21LsGdSepN/5v+c+2\nD+bKo0RDgOR3eSdpPUodH6y9enmmb0td4Ri69Qg9BcTDD9bFGWETYMwH4Amg\noM1xvLcxbGzUpCV+rgIsNt3wTuWYtkNxTpOZiWjWXROSmKCAijUSvVAXlmx4\nUoBH\r\n=tIc/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaPzjo3PUHn5s4ZczDfW3Mc+WUsgXdM8ejRCKQFjHZKAIhAMuiDDpH/WwvzB4Y/k4F5ntTuvwRaIkm3intQ0GtCwx8"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_2.0.0_1612130902821_0.9590732338040515"},"_hasShrinkwrap":false},"2.1.0":{"name":"ssb-crut","version":"2.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.0.1","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/overwrite":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"53124996b500ce4b5941a42fc962ae1237e6ffcb","_id":"ssb-crut@2.1.0","_nodeVersion":"12.18.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-btLoa4IbqebHjPCDtWPQRh6ay2z0YoW7FPjWWSMUvdnhUUaE2MEdlefj6H5f3+3gxh7v0NRTXt63Dfrm0U9XiA==","shasum":"e942905c32716a39ad2797d776c54280c9feb615","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-2.1.0.tgz","fileCount":14,"unpackedSize":51511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIeRvCRA9TVsSAnZWagAAWdAP+wTCz9UWbellM5t811U8\na5SblZIp1zsLvBjLlxi8UD63Lbdm1rbJ/k9HdMnQva3i9bYy4TZutHczjVaa\nUpPW6HiJlBhi5lgI5OSERLOjLCQMcouuQvGE1AtR9TXZNFaoeXTY5y9hpGFD\nHv9jwuf7vsU1J3Iw3E/qyX0Shm0SwmIyRbU8leDuncxW0JsoIN2rO6hO6wGV\nu3oOjJ3D9z68ALHH6rn78CJUCuutOzEH/0VDYqd1lREhFw5IV/2KEpTw8S5D\nYF2B+2XmDXBxDR7oKzUWtZDa/UDczFHEcDnLZ/HmlFMrAEbCwnTU1LTQvjIv\neYDOb+CRR7NHNUZqc2AszdTKc0sFYoDv9Imy8O/0ErnbdXW3GlDdoPvX9IlK\nDKKbbOo9R8X6u4R23va2FbflDnhuKlt8Rn85xkHICfUDC+Gph9ZIfsG/7e1t\nsy/6dh4iuEpPXm4w/mzjM45rZECVSaPKK9TffmuUYV0cz6ZaLhgTHtI3ikwA\n9BG61qGgiq7QdnSenwdUx17ew4KDAmCyJ3XoR3hLqlV5022HnXOkH0wcZENX\nMHbXYW2z0PkBcYWevAH5EDAeg4xreXkLBT8UdiF5NRQbZwW2IBDxUaPBh8vh\nOmY2XSvtPYgnBAz1wAVYpvedGcwqf5yFYXCVAhqv7VmjACBv2qtoLzkDaz6N\nz5b8\r\n=vMua\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJoHc1g6TY5Q7iBa9S/TavJcNzxbmJTWj7K3jCZS/1zgIhAMw7hg8edAZpJ38KzQYRCdCULBcFxcpEoqOBFvZJqlEw"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_2.1.0_1612833902476_0.8959453212017718"},"_hasShrinkwrap":false},"2.1.1":{"name":"ssb-crut","version":"2.1.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/overwrite":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"ebc17a7a9a05329d05d8390fdaf2719bc84d057d","_id":"ssb-crut@2.1.1","_nodeVersion":"12.18.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-avcJtQ96XGMPxm/2yCyyiEorFXRxY/K/uKL415xjaOIfVoJw/byv0hAuusOYVJyEWAp3xQ2m1e3V/oLnKyF3Cw==","shasum":"1015728e55d7999281407df788a59e4025e07511","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-2.1.1.tgz","fileCount":14,"unpackedSize":51556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKZbmCRA9TVsSAnZWagAA2agQAIq6WfvWwgEP9CXFhogD\nMYwQz6HYuhUM4cxJQey1gTMQzpAxcXio4vs1bLhL8HDmlSTMi3+wdYjrl2vy\ngTvthiwuQJvcm67+Y0kH4FPXzGyV5JLccqQQKjP0XYQjJrhjab25MK+ShE6k\n2xzKTwEAzvEDnAVE+z/FXLS7S/NWbb/2hruwYEKuE9sTYPJojO0POKyAGunq\nN/3hGjSt0Ci3N3ByTPJJ3kFuABGaJqOeP07vg/EMEX6/odR6Ax8N3VB+pr2V\nVjYHAIOYfnEVIRyE3nUH4dFJN/fMUbdl8JXnwAvSDskMf4wl6a1YcWms3QyE\nIIj/xPbdDDfWPh9rnWKVt/KtILFTIf6V3ZOrJuqS6dXF8jg+TOHk+35rmbkA\nykjs18JLZKDHHJxz/rKuRgvl8WsbXot+NFVzwEJm4jBJ9Ien25UgxM5VAimL\nFhO06iCalKP1EcP+POV20kbRHliOQzLK8cnT3CRiq1YFf8fT1PdZtmfONUl0\neK4vBOYe1tM0DXuNmZbr31MdkA/Gd5yEgQyPrw3GT6bW0dvsoqRGj7D2XOUY\nR5p3Bp8OCF7lzmeQUX0rbomyWBgx5Co+FhEyk2p94xlQ2MoxpGbPamsJhd+z\ny8AW7y92PSWDWsgY43yQoqootZKbWp1edorzSyr1K2G3yS5hwvRXzVy+sWaA\nHsG/\r\n=DncV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3kwQzPzxzPyPexjZLhsWodeBnUXqJHJnU9XzGNvscEQIhALJgsOb+Uc8zHOca/wo2eQlNq14iBDkjbTICEZ6O9pOC"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_2.1.1_1613338342000_0.23506448610589925"},"_hasShrinkwrap":false},"2.1.2":{"name":"ssb-crut","version":"2.1.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/overwrite":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"0ec3fd90b51f7f47794f8367e368fe194e86a4e6","_id":"ssb-crut@2.1.2","_nodeVersion":"12.18.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-E8dO40XBVN+WmbTlsLHAmvcUjBNyWMOx+4qTU+/YTFbM/ZPLy/M8hoJ0IzRnOl1c3pglvyKkYVJXwWHBfYXo0Q==","shasum":"e0d24d22829cca0e3510aefe290506606c791583","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-2.1.2.tgz","fileCount":14,"unpackedSize":51419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKZu0CRA9TVsSAnZWagAAl+YP/RvpSZ+bS+9Xd4giuHez\n1tfG2KWuAzpFpRkVN/abAT/zV6DI8N3uufMio7dpY/f8Hk88MWo/kddbpmLm\nIGgIex7aoHnomhUlSSozLRCbIkYeuCz/tVY0NS/MQl63s1AOBtZmV8h0IaF+\nexajDS477Riv/4wTnjqc3dfVJustqvbmzpHUHds1njG3AI1JTx7PQK93oJ1F\nMMQ1Tr3VZbpCNLe1Ciwm/jqgqauYOGj+ow+BpOyu4xuI8tqKYVdLO6407fpj\nwkYfdF3pH1kiFjh914Tt30CbQ/Ba/oDXWdA5k927F9gdhCJd5BVENyHJeC3J\nSURNeQdIvtZIoeO9a6HgCvES8VZ64Rr0aSZnPMff1q6AFW7hwmqwHaMoMB4p\nrp1bS/8NvgYJFKOFbF+/8jdGweXBEMNKqNcio1AB9i7GCP3K26sc2YdzdN7B\n0xpbW2jROMS3NmQazV0F6yubvDuJGFj/9Cu9kDNxwoinbivzQRhbnpEc/lC9\n7hH2b7/islsEee7ar0QU/R4ht+GGoBM4AHZ4kAXhfVzXWJ6lkUk8blmXR6Eq\nBPHUXtw6tupwo5M8j+oepbXgLwrxZh2iKb134KBkA/EKr20f9GmEnpNEwYQ2\nlZ6HAECav0JnOb/dtP1HirQOSatGeGOJSCUnGBYSrYbpZcWNGNM59YHKfT0p\nRb0K\r\n=y9OQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD33iHM4MtgY0N9z9kmJxiYfpg743rUxqbrEIozKmFmRQIgY/kmuTusPO8qfYqRc2B1BpkW7SIKlJfbgcS6QfLEr7U="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_2.1.2_1613339572522_0.48183315494725587"},"_hasShrinkwrap":false},"3.0.0":{"name":"ssb-crut","version":"3.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | faucet","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/overwrite":"^2.0.1","@tangle/simple-set":"^2.0.0","faucet":"0.0.1","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tape":"^4.13.3"},"gitHead":"e3f044b1ef512ce1762783045cf8e54a983eadc1","_id":"ssb-crut@3.0.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.9","dist":{"integrity":"sha512-QofHKIUUXz0HIH3Pto/SwrIL7YGLH3D5XyQDDULd29PRacTh02fsQOUDE0qG3AUrOZu4q8+hpgoIHvXu40QzwA==","shasum":"b9ba74d3d09e1ca90c115d72050451cf871a1a42","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.0.0.tgz","fileCount":19,"unpackedSize":62557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMIMfCRA9TVsSAnZWagAA/o0P/jedjnzt0I5EjFu+kHR4\nKbd8VuawX+U4Bop6s55vNtL4Jd1tTNAq7vvqy+W5MD/8gGT7b04V+o8OuWla\nSKfGzmQUvFx0X4Ag9ApBaAKuMVv7HxQXCbX6NlmU6widxujZPtFug+Q+qvJb\nIcNbUyFMCmBgaJuADn7ER2Mw8R7cLzl+Xh8lW1w8Te9K2UuNKXEBPtuku0yL\nTrh6w6Z6qP51lbxxjj+u6aC+2/fn/q699OLy4o8WKRGU3NBZmcpYQdf/conM\naFrLVSGOWTC1d+DyoaDHXbU//INxzWzpOivuwegdnzuJTcuUkkPJMhxV+XTT\netHHaapGXlrUkfClMuBe/i0EWn0OrVNd33v88cb9YQGUepFriASrDdXNBdiv\nxxX9eZzwRNttogEm+/OzAEW2MCoRgaT5ScNVeBOta0UkTZbw8ZlrnJmC4Rru\nbGdGUqiVhBaJs7gFPzShuXdg2DjtcFfbcjD7/bFA8hKXBwkPLDU8oyCFAUe5\n3Ew5lualvUV9lOESMEPCsICCONSvnDjYrg2bSpJY4isGAwBpUOYx6+lJiNFe\n+kPJHPVzyXjxgoDGeRG7zfFU18WK/DnuzYGaSKYfi8txOFpJnD6a4WyZ9T42\nSVWzaI3uDO5KC5pB4LEQTaG4qPsk0bgRZMrzsaR9cTylvhGV1q83uwZ6OJB1\nw/sJ\r\n=4Hkc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCoIt6RaX2gy6DUo/5GQRFByBmo536BF99vzuXhYAyTQIhANP85a5+Vyvt5sRu8/Ois1Ms241gZIPmPz+9/UPqYxQN"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.0.0_1613792030597_0.13509832928286603"},"_hasShrinkwrap":false},"3.0.1":{"name":"ssb-crut","version":"3.0.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | faucet","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/overwrite":"^2.0.1","@tangle/simple-set":"^2.0.0","faucet":"0.0.1","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tape":"^4.13.3"},"gitHead":"9916b48cc88fb891892db3bb535a901f0381d5d9","_id":"ssb-crut@3.0.1","_nodeVersion":"14.16.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-TAM8d5lXZODXfdpfOGre52eWa1/CjY2tNuXFftgRpxuilQZ6fOfXZurolzf5vD3W6x1QnofBvljHSRXJY6exvQ==","shasum":"8c071c48460f81e801e1175ce0a9e877242deaae","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.0.1.tgz","fileCount":19,"unpackedSize":62516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRWZXCRA9TVsSAnZWagAADE0P/Rk0rTMkw/ryEuoMPTwF\nXeYe9xlSUYZ7cDXWd8KQ7XMdWHVyEmsMPTppxnjynsSSSdlQCudAAD8lIl6y\nWDAjYjJzLaDm3X73HHxR5n80w57sr2SvP+fH+OzeFy1uTg8ikrFutgablfTS\nbexCs8EjTlc0dGQGNHv/0aQNxVaf1//Px3sxT4tZx7mxCbU7+SHXYDCVhfDj\nRF4jrP2+t2mwM7AplMjksPPwtnbGNhT5SfQLpdr0AFxePX80UBhkvZxsXkuz\nH7652y0OQdmTJelRZuMRJmSI0iQk6DlDywnPGGqRBr+u3QO9Dq7QKRPwGF2S\nb8swcE2gdavE8y94Uy6pixye4V1AIcHy2VIUkOB0umdt7rV+IYnF8cTzv2bZ\niwrQpeJTtpGvEVYuELIxsyROo0vIyZhZoixI8MTOwa85Od8uzlniyKNMJypH\nvf5U4xI36qNHrLliNiT3olFQ48OjL/airhQSZKrbJ59CtJ6KzrIkBv3hry8T\nkjSL37VvhV5MiK1mKHXh3Oy4bOUd9MMA0EvDEt8Rf8eWkwEb/1h7U7jaVKz5\nVWVytmqg1MJL0Lb28+JAdu49TSJcL1G442sPZAwY8Fe7zlYY405DAjjbJ+bd\nYAihrVGaLIOr5T3OaSEWjHuj3KYpQksoIgUYZ1PvA7Anqq0LgBA/Y6/vMfRL\nQVAe\r\n=lO3F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3ja3uLLOg4W+nyT3hVPYAHMZ4ycF5ee0B+tAReZlBHQIhAPLbvQCGxLc3835WJRApsoaG0wn+32JoomZarK4kQ7rl"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.0.1_1615160919101_0.684322936063068"},"_hasShrinkwrap":false},"3.0.2":{"name":"ssb-crut","version":"3.0.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | faucet","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","faucet":"0.0.1","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tape":"^4.13.3"},"gitHead":"799a99fe1b043ee1fd672a9a1ca6c89359139642","_id":"ssb-crut@3.0.2","_nodeVersion":"14.16.1","_npmVersion":"7.11.2","dist":{"integrity":"sha512-bC8dzspJu8L/1iwWpnmuUijvOTK+CZlf7Wm5BS9qqTAfBp2wjlrxEuIE3pEuFTD/xgRRJNYBWyBwV1r8mpZV6Q==","shasum":"380b5afd803d1f658a237165cbe438091abee9e7","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.0.2.tgz","fileCount":19,"unpackedSize":62516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgri+gCRA9TVsSAnZWagAAEKUP/2qtn5eLlikNXvtiAyRB\nBtXGrKfRYsk20iTb3JKA0yXg8ciEPohAcafeDh0CuHX4OnQu8c3f1OcfFN8j\neSQOnLp4Upq8X8VYFFs9f7ppOpUh38LfGlyYpBMl707u9TvHwW9u6CgxXxb+\nAO+Jd0T2C47AC/MBqnThLRiVDVGkhKjVt2WsHWaalTLd9khCdMbfCpTGWiwW\ne50VWvkl5Q/2VGhbBw/aunExs0ss/DTEqquVCOKAu1ZZl5uLREfiu8YvKJl+\nPxALBQZLDHZnoCtsBGh6oyybHu/hrh/+171ZRugMm5XBPutofLVFmLLQFQHk\nb3YNRkeUR71Ivg/p+HFspS0KuYFUxOOeG7z0rcHy0wsF0aDpz2H4Pim8jjt/\n0KfOoA+5Buk5slKdPxmPy0Vwie6Xqls4XKKJhLDGVQhJjJ9xF05GD0W2UUjf\nEYhi+SoQP2+U+t2jz4iji48gwQgC8UjF2x5rebLw/7IyuCh2TVlOQ+X0qx2C\nreZfvTNTcqKZ29JkHaeERW78RVbMqi4pWlBDQ2OriWFPptgYPeoCKH1/z1k9\no30FJNUaImBUC7IFypjKuElJE46dN9vrJAJLAiGet5P4G6w3OMPykY4c2WOY\n7ajAjNH6DhdM7Smjw5WFB3OvPvP6mmOki9jyTbOuXXO1t0d1nEOWchRDJFzA\nzJeD\r\n=b5ab\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+d/PyIDbhl3NrrYUqhv2ALpMh+cTNhb8p8iP/dDzqEAiEAiPYAkyp9yIABBaHMrrINso6kgZojfSMZTw84f0r2bQc="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.0.2_1622028192224_0.9705921487037235"},"_hasShrinkwrap":false},"3.0.3":{"name":"ssb-crut","version":"3.0.3","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | faucet","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","faucet":"0.0.1","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tape":"^4.13.3"},"gitHead":"2f88d912757a66c74561d4a099d91d11f65d5dd4","_id":"ssb-crut@3.0.3","_nodeVersion":"14.16.0","_npmVersion":"7.16.0","dist":{"integrity":"sha512-+RoW/osHX0jVkKbR85dgy3uuvRh+d2aHKoOqFswOc4UkXQYwUr5XI5vW6Dt0RdIgomSYT1v7WxKXngd3ZeWKuA==","shasum":"6ed1b2c53d7a5df9a09707f6e8464788ed6c3397","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.0.3.tgz","fileCount":19,"unpackedSize":62609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg25+YCRA9TVsSAnZWagAApmsP/23S3iqXyRezRebJvX88\ngDJ/+gU9E0tCGygCOQ3/Um765aZMM8Oyycn1EtR7Y9nhUiIKsCrm2jLWYxY+\nDpEKicBRb7VPIXlwoRrj8oo542z8MceNAahXd8IYitX3amtMesei4L2SVwu0\nwhZ6SpT0gNjBS8IVwvBIdz3P2CyaNX9hKl9Tx0hqPB4TmrytL0eIYz60Tqr3\ncZPYL1Xyypl1KaKksdFXA4d73GnUt5FV6IizMpjKQ4S+5NdfeKuGPSiosnAZ\nZs7UMPlfLsRzaPfUP1yW9YB5bKb5GcV3gVW0b0arbwX5B4wVcfHINb4BYNg1\nAzT/gvYjlA25ne2F1Au8KRLcRLnRuGNcjvniQb1qIdclbcnST+lrAod/QjZ3\ns9WeCrs4dqZI+1TeOk37cq7bOsQP+9ypkoZYWESr9y5x4fW/bdEWm4A2Apzw\nFvfyrdmuqeMuM2qNnfzDJzKLpCeFZRvXqTcy6vbBGSgI0NLfH0ijTP/XxWbh\nSJvpzlFXdYRcy8QYzv0JCJKK8eTDimmsgjbx1LDDbYQt3C7l+nk4zlJVRmJG\nMfdT6zwxZBDOAxccuM3tyGXcL32J/vdgiakEkLrhofIZxhTl0/HoLSe6HUY1\nA+mWzoovDV6XWac0RFEO7UmIZKqcseZJnmF2C+l3P70SFwPuM8DXp4J/dl2q\nMgxL\r\n=tK3j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH2mqZ5YqqeYnJoobekBCvRoz0vWoJK+bjkoCTsqXliwIhAMZwyTuFyslM4cpDk4HQK7VDZGVEFHL6OafKLb5IFhH9"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.0.3_1625005976330_0.9750156779903649"},"_hasShrinkwrap":false},"3.0.4":{"name":"ssb-crut","version":"3.0.4","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^1.1.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"94066fcbb1469b8b52c97fec32c070bbba2cc107","_id":"ssb-crut@3.0.4","_nodeVersion":"14.16.0","_npmVersion":"7.16.0","dist":{"integrity":"sha512-jxiZEcD2hQNO5S7AQkiTJSxfsmxjPMHptJHb5RItFEkqicBtaphxB5NghubU53OqKtilmCaCgbszr0n1v/wW8Q==","shasum":"e7bd513f1c79209b40d32e7f6ccab2d03a3fea6e","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.0.4.tgz","fileCount":20,"unpackedSize":69340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4+F/CRA9TVsSAnZWagAAyyYP/RIOoBs02mH0HprsEOJx\nUl+eoY1z8pNG1fxLdt7YtYLl+pipZUSOmU0BBW3uMcdXVrmOuxzXGKfvhnHe\nKz1ChF/DA2a9hZIzHuplSuYR0GEKRZX7Fqq1mRC9ENC8ENgRvBQVggz5rwul\nElyVDhJrYxPmS/86CCsux5q2NC6vGsJ3jGmhZgWL3OrwG5oVqJjm+yEgX1fO\nwK1d0IfxujlRSG5tuySRYqFNgdEloTkf44N1I/796T9C0MsypauLRVpdmdGz\nL1edLNA+a5WE4sNX8A13if6SLtTc99maP6E8QLwaGBkr0Tix0p0Wb+NZwNFu\n19UlCVKZ8SHdaATYJJCyr13KaTrokvAeA85lpsIrU3graCu+eK62YsJ4W4sO\npKpjgpjpTuC7y9F74yoCs3akL1wskfJAK/bCDQ6nX3uemDqac/eBIcrlZAEB\n/xZGoC2D5BD2L1VSHSzpdUpUc/8oAQvR2nW8IScs6FF1TEHICSeCaJJgtiYQ\nGYrPNGx657f6N0YWf1F01Ny6mi2oANoaNTDqdwS3tn0KayWIiVmZYD9y0JQK\nfbGhXCvFosi0cPpzJginQ7tFqE83IZBLM7UGr8xFmtii6rdZgDlmy0r1g6JB\nj+AbXdN/kFVgZUFT981Qm4zxqOSr9WHa6cQrZVEqhmPxFnXt8mymk9se/hQK\n/vQi\r\n=VhW+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAKqZJQnrFYPTfXzj8mr6hOKXQ4q7ewxAK+WvZp4G3FpAiBI0mEiWqLFoG7f1oagIjwENm15iqCEoBvpc1mgkRMWvQ=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.0.4_1625547135340_0.4772091454098284"},"_hasShrinkwrap":false},"3.1.0":{"name":"ssb-crut","version":"3.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run lint","test:js":"tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","scuttle-testbot":"^1.5.1","ssb-backlinks":"^2.1.1","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.2.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"77ace9b1c53f40ebdda669d26dceb9f610c4fbbf","_id":"ssb-crut@3.1.0","_nodeVersion":"14.16.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-+zw/GIl6DlkHO7RhTlEoRCzZuVOhV0HUZZ/OoNnkZINjTKq9FUdBfysJjZf7SPNoueemNoKUUuh7u7lLUYfj2Q==","shasum":"67cbb44c81b4c668b619eb91290ccf516124ed1f","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.1.0.tgz","fileCount":21,"unpackedSize":78227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOS/aCRA9TVsSAnZWagAA+kUP/0IyANoRwWO6UixBxOPA\nGLLxlIx5J94HkxlGQhkwUfUh4SprMcFqBrsw9BHodNVLX76G+R2qfe9mZ2Eu\ncwcXi03/Qm8SXsvLIlyXfZl2cWeAQkEfcbirKg8WixZ8wE2N1vAyW6G+4xH6\nWywoagFVRJxV2yMjahKUV1MAChsyzJgX8ZWtsJRImA8gpqhvRMPqAS85M2WI\nA3gi/oz0U4k1fyIhdcU9A1G+6aF6fNoRUh5kvCQh/kHJ6chYDD1gksE577X1\n2vwPaBZo5vP9AJ19F9C4mDiWwRMOw+0cEg6KjWKWObGRlrWuzPLPAjHxvaWJ\nPuoncyTqUGm7+495zhu3rtpyymlgpE9Yc01hGSSUwdDRHuP1yd0wUZjO0uZ7\nfXkNTqtxK8JeE+nWUy5adbxnzpDIS8Q+7W6n+cy92dsOcNwqy2gW6pQ/ZOpN\nU1XJGctzRXL9WiT+EpXimYOe/k1qrMQoVpyKw27INSsBVfth2VF9pHZXQb+3\njAdDEsozKnYSqIxjeSD0GS1E+meDjnknp3qr8AmvIDOGq9XOia/GKXCCOpZP\nNiGju9Bb+jfwgFsPhZaaidgnP/w/a6gNj3VRJ/AR563M6F1UUIVapRhYjjRc\n8nN10gByFwheexFt7qlK6FnWDta97cisfktS2Hn8XLHGqGmbDrUtrMJdDwL3\nNppR\r\n=dv7a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENZbeNJcZrMYQPdRuanpGRvFyxRPiYRVPcUGwnIfJVtAiBPjp9/QhmAvMsqE7toJKp8KptZgUE7JQ/g8g8AjMHWlw=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.1.0_1631137753882_0.5545727318093123"},"_hasShrinkwrap":false},"3.2.0":{"name":"ssb-crut","version":"3.2.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js && npm run test:js:db2 && npm run lint","test:js":"tape 'test/**/*.test.js' | tap-spec","test:js:db2":"DB2=1 tape 'test/**/*.test.js' | tap-spec","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","scuttle-testbot":"^1.6.0","ssb-backlinks":"^2.1.1","ssb-db2":"^2.4.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.2.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"35c8e234887971cea11d9cf84e397f054a415d6f","_id":"ssb-crut@3.2.0","_nodeVersion":"14.16.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-FDsWCIIV68eZSIjpV5J+uWNBn2ndDZ/6CnnLtAxBlp78SbeRAG9o9zIQhuj8f5Pp88+xBXKDXYq60FahFR1Yrw==","shasum":"a6aea97366f8957bbd995f05ff29b8933d2b675d","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.2.0.tgz","fileCount":22,"unpackedSize":80371,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOoXXCRA9TVsSAnZWagAAQY4P/0AhyUxR48ZOAkPTwheW\nvjbINpE6g/mCZ6FZuMYoK/hP4zwa9AXPJ7auoIOoiI2yypr5XAYSW0+lO447\ncZtdX5Q4rOyeZsU0uCHj9yrScN4sPkfH980yT2nu3I14W6NbJMaUGu8VeCvp\nKWiRMoSmTvP4gDPjK9wDdMSxKxosOg9AafCaWUoUBxV411MmXAQJ9MvJqNsk\nt4b5Y8tc8odG6xxLhJNbAoaAzLHqw8jIH5F5DIzgZQXZghuS4urF1vhzyiEA\n4KmgA9ckmWOZBlr8J8E8SkHvN7XYgOAxyrQwv8WVf53+IPvAywex3O+F1jB9\nJa8dLgzeOdkYUltFIA/OKT227OVutJHRsu29zHfue4AYjtH4tonR9T7xrJJK\nmxGyWS91L1fX0lCThCXRWbauaw8d1pQCFhuW5mgQH21Voqszgu891YRHtFlO\nfD98cx+J0P5ombpHmGYFA0M/nsXdvveW/91xKVYyUHpsBmGeVXFeislzoXHN\ndBJT/hEAt9+zK0sDTO8ieGBJUYWiMrtLtcQ642TzbzwiTfMcR98s5FM0g97F\nrI0/hkwAoK+ckyHNTu1/yVQWNckM1fhKgvxLr0n/vG7h77GGhQohsCTn0nlf\nKmqAgGD2Rn7mFb0It6ryesAv/L0zEfMZYNL/FyXGsiJppE/KI9SZoceAHdrV\nmFES\r\n=f+Sy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtSXN9qHkE938qreeWOLPeM22J4vkjXAu1Bfgl2pf/tAIhAKPp+MIW8uiRqf3LNIB6T7Koyt6UOLUkPAW0MDczDSK8"}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.2.0_1631225302969_0.9486326954341895"},"_hasShrinkwrap":false},"3.2.1":{"name":"ssb-crut","version":"3.2.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run test:only && npm run lint","test:js:db1":"tape 'test/**/*.test.js' | tap-spec","test:js:db2":"DB2=1 tape 'test/**/*.test.js' | tap-spec","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/overwrite":"^2.0.1","@tangle/reduce":"^3.1.0","@tangle/strategy":"^2.0.1","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^2.0.0","@tangle/linear-append":"^1.0.0","@tangle/simple-set":"^2.0.0","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^2.4.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"3798ccb0da5e585ad4875a9c2765b0406789c393","_id":"ssb-crut@3.2.1","_nodeVersion":"14.16.0","_npmVersion":"7.24.2","dist":{"integrity":"sha512-c/3jYk28GLbpxYk7m3TLlKYaeuzIkRsSDuo7bR2JSxj5gjAogtMJocC5QBklGL6a6X4u8nZcW+Z3r3dDyk71wQ==","shasum":"5f6bfc61b8993964f376758d06cdaac16f55c941","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-3.2.1.tgz","fileCount":22,"unpackedSize":80599,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh272UCRA9TVsSAnZWagAADL4P/1nqTUdo9XNv8rF95tUy\nyg684bynWzGAYThw+iLOb7OBG8err3YUXB8TOU5HTPeKBi7Wfenrm+b45RMR\n/mzHeO+diOM0rliVMFlYeORn4gapH/sip9IaqC6I3H+qhH8VZYO6/DwRQYsY\n+/q7zIsiLreglU4DFUOA9ituxJkaj2kwOijkRHGUKTZcj6yqDRMi90CRD17R\nw/43rfNSvb5kkGOzi7dbgc6AJ1pbAIdvDav3WlGDmCSGOWgDGnuTr1sfeMlD\nrvHiLi0ApjF9YlmeD/QhIDLtYH69nfCIfWhAn0vvkvmSi+hiYSa0AN6P1dEa\nGH4GpFQ3MZS5p9tqzaPUNTE0KBg2q92UWdksw+EojKYBW490b4k0HBKNcnRZ\nuaG1Larw5ipa3iyd1AzUQz5rcAarQY7kohLndrBKDgCboKM8/0Zbef3+aVIg\nnJK2CvUmZeiiGz32hocy9IAo4k+Hcbfm7czxBs/szRw2AChXuC9KzAifTIzr\nzoxmRSDy+oJM+hWbAXbLxJLf+gaCJ2Hy4TZE5kk1LPybQHj4QsREv8tQj7Ti\ndUqDYxmdc2vXq5SB5NQquEtrfv2BT1RCDJx/3R1yJpKQjv/o5axykGSYUKFj\nrL9f+cGFjGC5YovdykJRtC2Du6NmtF8/3s/pb6cAF9DKsZXTT8wjXwFwf8hm\nrCPd\r\n=qy2o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICSlAn83Z7TlZ4GvoOdrzES3dbWDI6WubqFHGiedhuuBAiEA7vPlwvpcUDQ20NEFWOvQJAihRi77BZ03QCCnytJbsno="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"mixmix","email":"whimful@gmail.com"},{"name":"luandro","email":"luandro@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"blakeakapita","email":"bakapita10@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_3.2.1_1633643351844_0.9118642606960443"},"_hasShrinkwrap":false},"4.0.0":{"name":"ssb-crut","version":"4.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-spec","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-spec","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^2.4.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"1567c614f9877b5bfbc4e7990903daedb99315ac","_id":"ssb-crut@4.0.0","_nodeVersion":"14.16.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-U+b7h/GqcJlwnbg0JE3ND0Gv7O8SGjJLyKTYt3BUxbEPrI4Q6rdaEQ3orYBv4pb6O51DfQQt5HDfGE5S+lOerA==","shasum":"d5b101be779dfb4f71ad14b851c011a80820e4be","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.0.0.tgz","fileCount":27,"unpackedSize":104994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8HGkCRA9TVsSAnZWagAAL7AP/i1dW/Z4zJGGkBiT4r5G\n/Scfy7p+yzuqHxzfu/WELSpdda9s0sHT3hT4GcqvzuNWHENuwwjc9yZ/DzLx\nkWkbwCSzRJmzQLNZtplyz7jyJseneKVtW59ZnK7wdLJOcaasDvEn6ATBmIOD\nLKaz3S7ik1PaFD8a3F355y4HJwarFOdKYGvV/7QGSZlJ1Nev99ugUpIgtIYS\n3l3EkRuJQW4HC6VT7TAawwkfiVWfv/ixOe7uQEViehCxwC1V0SbRXoBsLWnm\nvpw6zRoUxwEDR4PbUI+BwAbXgCBsgrqbyT/iIeVHEZ0jfv4wQOBXRb7eOVJ8\nBKLh8K9cteiXj9Vq0Vry1xd4wcA/1YzVhjcTXcDAnMD9j6nSUE0viRlH59a6\n/bosEj2Jf4WcBfzEU4uJC0gEoO4MYlymlJ0MYy54HhXIssA8NJOq+wywe0M7\nl6Oxwto7Xr7UeyYjaDtpKpWhwqfu3EhNJhijEY/eesBHGPivSBJ1zu5AGMZi\njjeO00OjV2mKioLKVjJwyoNLLZtH7+qaKayzc3+ix8PXeU7KrhyVojMFJc/F\nzJhP2iB6ju37xX9OmOpBS+QadTeHSOuhKcGL25VojIe/oQGxj6DIvV+b9BK2\nJIcf9Jrvl2imvd9MwVOKIgYxHaCWtftHvY5QPGtxYiPA9P1ii6qC+N5AVTQq\nli9e\r\n=nnce\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIELEXuLkC5warEOgII93W40jsAy8caODdq265xclHyWSAiAHSRDYsf6Pv0ziy3/orbmre6p3yfFaH2XogNBl7ExPeA=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.0.0_1643147684438_0.9913520001959604"},"_hasShrinkwrap":false},"4.1.0":{"name":"ssb-crut","version":"4.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-spec","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-spec","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"3e03e739d691e3d1c1549aea7f92c3684e6d0ba7","_id":"ssb-crut@4.1.0","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-AIWDBaxerZWFL8lvCKlyevDLSxLzqeE8kawpiQDrzYLl3TNhlD3HCmP2wH+WnWQc4mDlY+8x8UJhLagJI36IvA==","shasum":"c9d479af1f41eed3ebe4a8a1838eb15b282d634b","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.1.0.tgz","fileCount":29,"unpackedSize":110509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMaIeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpG3g//WDBjFSxb6lfhgaKn8f12moxm3u9KcRsxIVWDBzt9mxCXDoTm\r\nJDtel0kpIxePqMcHW4L6Syt6gKmC88R5J2R5iHrgCGotYe+nlkmuiGDXSpnM\r\n12ikgsa/5zQ8YDtV/s48s44w2j5wwHSVbPRw2LK9+zGVzxfQJFj0r18bHmh3\r\nNDNF5eKaihBH2lor8I7urAY9hsvNq2CLymgMUPwpOcTTKy9rnBMQTeIw5gOV\r\naK8Uf8Glfplhf2LEASqyLZ0K5OMF2lX/H7GJnhk1oMPQnno0iwog0L6yJ/o5\r\n8vpgmw1objJFbD4q9PCZT3uN4n/P/uwYcXWRxFS6GT9c1n5CP9gvNZ/IrvRl\r\n1LEYQtW8j+1T74enye2DB1f7IMU6SELEbn7XpPNTOWEbCVwhU/ofhgqdbjuc\r\nDpZMcj574sxeiOJOVsyCG6GrYvyzZFWDaiEDDScjr9ruuMjJh31K7UFyZtr0\r\nlGhByCBQ6+VTC30CcrOPoiUnUnI1qLuonmLt0x1CW+Zp2FUo39k9xBTevTJ9\r\nh3zoP3lzGo8tUkqJaGWIMrNqg2ILnRcBfVLDFwFpyc0hjFXIXW/+hjzNKWdk\r\nPUGt9srcE68gNlODR2hKwkEVmXxdva/vKIhFCovFjwiO5lsb9Z3vZypNLy99\r\nlTOvxKGbrHi1/m75yEtB8Di+YaxnmqQOJZE=\r\n=tqYm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFYrc7EPQLwqljAFBw1nhhUpsqqrRuHKVk1hNlWzoeWAiEAi2fBlc2IZpNtOlUEd4YWY7IXQsugm8AJl3eNCAXki/Q="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.1.0_1647419934794_0.4812862264929356"},"_hasShrinkwrap":false},"4.2.0":{"name":"ssb-crut","version":"4.2.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-spec","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-spec","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-spec":"^5.0.0","tape":"^4.13.3"},"gitHead":"211c283dcd4053fe3be4b2ab926298e7d18aa149","_id":"ssb-crut@4.2.0","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-J/bnHmN7cnv2wD9CS+eA146PlyXW91OKz7NVq4jDsWCJPNkl7EpCGAwrfUb9PDqzQmCE/JPC5gQ8LQJbss9/Yw==","shasum":"224c22c2a1080787cdf276132dc4d033ecb9f0bc","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.2.0.tgz","fileCount":29,"unpackedSize":111376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiMlU7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMTQ/+I1eQ8JhWZUK9lBaCFQXZkyuduLiBpzE9rSbImzE4bh1VWtfg\r\nivFSQPfTzGlBQQnLG4+QQ4cxSrI2GPOXvqud361i7DYj6Hd3B+x4WeRtsGQX\r\nEtik7ItbVAa24dfWUCLgsze3XDcVa+DIggBve7SYcY3CZcqxGVXREEjs518C\r\ngBO65XSw1wKVPAwD8/TLDkuT4+TisvriBLgcPC8/wC44FfhgLMszun3mIgDf\r\nzASr2X1Wl/Yt+7NUyGs3Fp6wnfwHmBcUtL2Zo4su7idTaKy1EsGJJaMa90wL\r\n+7WNBA0vFjPfPD6QLVdBJUhZVIggk4AFGNwxS3XhNjCZW945Pe0uhbpM4X3S\r\nI1ohfdvi9n4mPTJVqX6eE+5YyfhMx+d0ne9pErfFM8XlTkRFrcdz4pq9tuB3\r\nPB9n1IIeKddIotV5T4dtOo1+FFZlQDfJVIOtyylvTH/eCLsrXwB91BNWZz5i\r\n0SoExCRTZWXRF3YHMRmIJnFiGYpWGCRS1m/MgsWcuEIK3XRX5KLiKveMmB5T\r\nhhzoSUE1IlzFvFVPN41ebF2qIFykhL3y+vSzwQJ65+qg7XtVCdrcrEzGbJ4A\r\nFULrVZJoM1OBHwggaMRyEQIxyo1Xg/9KpbM4xLteHvgIFTkRYVsehr3tbeR3\r\nOt/rAzMId39RcwvZNYSbvMvQPMcs1LzVhKo=\r\n=uGlA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH6VRRm39ld68DiTnAYm06tx1wLwHyj5xl8tpCDVRgtQIgbygUC3p4ZsDGkBYDQEixHLvw8ayQi5VqWYcTPkQQ5WU="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.2.0_1647465787786_0.37393057174199806"},"_hasShrinkwrap":false},"4.3.0":{"name":"ssb-crut","version":"4.3.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"dc5994ff277ebe3e11c091a6bd106dbf63536745","_id":"ssb-crut@4.3.0","_nodeVersion":"17.5.0","_npmVersion":"8.5.2","dist":{"integrity":"sha512-NUOztd6DVjY9XE5XAq044AeMc2VJ0m1Pg8H9Wq/PM3N52UPgwUAr9q18Jxzbldf3XB5GZdCvT/PXdudsVPVacw==","shasum":"d714f11022bb4e3baf4d3a4c802e3df3ff7b6f2d","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.3.0.tgz","fileCount":30,"unpackedSize":114281,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgmOAXoa8Pjt5uz5GbMg4oBqvEtZ56Zoex8rAONENcNAiEA8iWDoJzKEdoQZVfL2yCqafdH83fCbUStjKMylFY4zYI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiVVOVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoFMg//evgLV6pySjZFqMx+dQkwLB/ElIUZxswwKiW4i7kpBs2vAcrm\r\nAWNXkkMxG5OuK2fREM+HEkgHvkkSvlXwLiBFezcHgxGu3s8WcreEy0YHfaQT\r\ng+zVoCBgH5uR9aoJSGrkJKR612kX5dmI6Jr+6PtOdJBvW+NzGX/yI2Rx6p7i\r\nEQEaATkPczLVo9vpkA9IxpUPMqlYIglR5D+I5PVTyCKc+Pi/e4B3A9c7OH98\r\nqwIpQG0Zj9jnr+yu1tmQ7TYAj/zAVXndwUmwJuAK+x/z+HMYUaYwDmR8t+OI\r\nu0zQjEmoZc7NeL0Ss2l/K109Ut5wE1xfm8TKjOCmwD3COy49A5GlMpj5pnbZ\r\n0ESEWPDcM/jT1/Y3B9s+SDeBb/3xKtqJuISOP4iT6yTb9RiFsDAkBwFFcczv\r\nf1tG5KL3+rbRwLQWDeRby9Y3hnAhSm5y+feEkjkGEjqUfnQzvYFXoJa5sD9M\r\nyJ4CWfgmAT9/prMEXKH+pRPSphUP9FXz5CM6iM63THWZtPVcppDICPl3+rYO\r\nKE2t3qkQnqjEPeKYhkec3hcFmk+J5oBHAa68rN0Kar3tMgJtM4cLNUOV+6zr\r\ntJ28txGDGdcRUBDJ88h6xsIyseIbky2njUO6lIraN0C07wpBfdz6rXMmaBl/\r\nXvHnAB2bzzOhVP24jGSXgWRXlF5ZlniiZOk=\r\n=4WfY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"arj03","email":"arj03@protonmail.ch"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.3.0_1649759124856_0.7169302550285435"},"_hasShrinkwrap":false},"4.3.1":{"name":"ssb-crut","version":"4.3.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"1ccb7de9eb95d618eba327e88690b17a8c7954d1","_id":"ssb-crut@4.3.1","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-MnohNo0+wXItxn/nURV9wrZTlCutd+XIJUUsPt5JHF0iugwlgH4hhbNmM0VCcGNURcJTGou+lfwyUx8PXiEWXg==","shasum":"6459ac9c118746d3da380cbfdafd55d8593f6049","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.3.1.tgz","fileCount":30,"unpackedSize":114438,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCtMwpDHIRlXgMcLzcCtATPL8f+Kxzfj9nuNogZE677wIgJ+Lgt/zkIZlZY9HMi0X8jUoLv2aqCNQBSD9yRQNes1M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiX0aRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqbAA//fy3Lx2XAxJlkbtWY/bCsRWgHh6FxL9d74C72Z4FIMD6Gx958\r\n2cJNFknCzo6i1zSF+ZAnYSVWV/i6GOsyJrsdjE0unnxUtoNtSk5sHGm90fP0\r\nlpoZZstAAbaqDIp/WO6waX4ji4MOUkoc1Tb9/F+D7tD+1sjVqD5EjRlNMi1z\r\nb6vYsR8ULM7FuY39aZh9Canf5AMHj50Do6PYRry561Jyyg7g3xLteuSqtFy/\r\nU22slAQkbi8eX21b3AdaAKvR/4AbNAJDkzQiBr7KdVtz9WewW5jhn2Qn2V4y\r\n6qiAySVAhbVwCp+GqtN+FNpI6LqtXt4mr3MMjWxf7MwMOYAAWQLxblgGkUxc\r\n5arr4GX8gU7A4kT0P9SWVyOlZ7h+y9wnHkByEhbTQze/7Jhzi4Pejl0O9fUA\r\nl4UNhoCAtNUCGoOGwRRGiVt1WiEZc+vUXpAi/h4vK5LruYHjHm5nVE8NYhWl\r\nkZJuOmxaD5h6wbw9ZckFLUy0UpWVvNJZu3DVEL7IOTakqqiD5Z8DxKIU4rnt\r\nzs78CpFblGG2FdaYLYQrlJualXIl+TJV6X/ORoFlU2jnNSlI5ACo0bL8dJLH\r\nYCfY7LaGIJL86wO15xbqdjPI8ku/t6AvyF0p2YzQKLsFiNJvNGwlPumEleLN\r\nlT2UBN7ok9WnVRfE7vyE5g840I40KJc1bc0=\r\n=E1bw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.3.1_1650411153324_0.43826150628807325"},"_hasShrinkwrap":false},"4.4.0":{"name":"ssb-crut","version":"4.4.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"f8ea1ff728ba454960964ccbf9040d98c4c390a4","_id":"ssb-crut@4.4.0","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-qdUc5ZOEDBGzqS2QOF64Rci4f9FI8J2QkwUQQ4LblpYocUZbg+mh8XKvyMtsvKGmcoJPXp29paRSSnC19v+GBg==","shasum":"2c3e2adcca6795d4a881bdaec737387f227ee4f7","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.4.0.tgz","fileCount":30,"unpackedSize":115360,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4wTf3OqirLMipn1Eqojp0IocSnTl3pTYaEBEAw1vJiQIgZ5Mg/n8Wc3xkspVoSqVGPhNVfmmPoCzvH6pG1j5v+fs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYMiQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrnig/9EtNaVVm57ZIxOexY4I5LLvn5RyZhby0slD4J97e8z5pAPohb\r\nJnvWj8AoALLlxPIRgSNEnSfW+PkO7yKjHrSi0SeROoIkdHjlc4xZMP1dPVb4\r\nv9TPmr9M/bViYYHsvL23xteD4Kt+yDOGl0WGVpuRWjMMI5GcVUkr5wmX7ODQ\r\n4O5dzPL7AmK6hJfNurNOdVv14YvZzI6Zlk6BbOgpAgBfW+xY9O/w4OAH61eQ\r\n3U+cMXmH6bmJnuF5PvRfUi3RyWVke9n7ZOjTri5UAe3LHxnnN7+xYjW9Hgfu\r\nAhUd3Pe8fmtuO9onnrD4h1AG14GxkzRN/n/etZj/LEUDBvxxf6MLAlc7trqo\r\n71H2Mih2VuCHbbG1DU1l7GTdWu6EWIi4qPcYmLRN9xUr7fJWCir+i6T4pprA\r\nOfAE4zIE0yY0PL1AQ/LU2KmWBYQl/8E2CsUnzUKeTx1H/M0b63SRmc9zAYZ/\r\nGOOZ+GnbAkCq45TW6mRmtsujxDjLu8/Yn2Kcso0cy4TZXoH0HjMi6Rdty8Yd\r\n0S3qvktThGDcUhRYvWRHhL1iEvedHyNLQlPPJjcazkMU5bnCAe0QU29ugx6b\r\n00a07V1nhWgD80m5e+3EvuUysOmtn6JWhiDD9J1ezGgAqRl2s+QokCeT4wtt\r\nHJk1/T0jjLzTxe36Y78V3Vsaf2hgGS5ckUk=\r\n=X37S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.4.0_1650509968053_0.6742740084597945"},"_hasShrinkwrap":false},"4.4.1":{"name":"ssb-crut","version":"4.4.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"f2260d65899ee602799e88b0ca6631c113a77d38","_id":"ssb-crut@4.4.1","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-SXSHepTFCPzRIu+KyZrFT1e0kVWPriqTIdLFKshUJlB/fQiN7rGhg8r+hpHjXAxmOHR1M24EDWpW3Zjdq80ySw==","shasum":"3a871ae77177acc5d49ecc15a68425729f8a1e13","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.4.1.tgz","fileCount":30,"unpackedSize":115399,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBmuJM2yTNCkKbyg7RKq3KUWNKMR50m13MJ4a91SsIN+AiEAqfCI5AZeGWE+IktnOvYU+qxzPrWzuGm7I5UfUO2ak7s="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ2EYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+gA//fm3sldU/wdzfUb9RplDMd/UITLBpf/H4/zEc5v0LmINqVVpq\r\n7ZFDbYtojW8PpuaaMBY5QMn2FWZWW+2n5az7NZya6bQP5iBg8zyDq10X0occ\r\nVR9tde7iJjA8+u/EjTGK0pXfyfT/tzBL9lSj8ykQyxb7SsE3mxKANq6knVp4\r\nT49KvifRYnIHl0v/doOzL179/9XTicMo/jxPnL/6la9LyEK0YmG9SsA2E41C\r\nn13JzwbKmywx1s3IwgW/nWvO37mVwwGE26qztS1zBD2Oyq5fkPP8S7nA3wwi\r\nSdWxr4b1AIvD4UwVFiX72gJC4zSYSt1NO+Kjjchxzsq0cd3Mu4WiyyNux1Wd\r\nHdJOi9tdXnaVNT6DvnJ78ldVG002UoFFn1+ZDxzQn4h0XISLCsBI3vRgoX/+\r\n4LhoNuBMxYJUn2MYvME5IsEo6uklH+ovEt3RipTvmSX93tH1HtVE1wb8fNIG\r\nGsAmRAgD1mz1cXNbEy5dYaH/Ty/u2aMyYh2r/RXZnzWLwnkSQuHBBr4pKxE7\r\nemvhOYKJrwmRnVL4DJMJNSRw50Tixcl45TksRJv3jbfEzKbQpc8DL1lpyeny\r\n7SK1cR3FaE4hIG7S1avbG0oqea4ZxfFHrjOEJUcNp5YehlWFJ4OmQ7wXe6yM\r\nPINiZz/Omh4P0imQlynLaMcMi+SjeDQnBHU=\r\n=Gewy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.4.1_1650942232136_0.28467133974564196"},"_hasShrinkwrap":false},"4.4.2":{"name":"ssb-crut","version":"4.4.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"e8e83f83d6b26e8713b95d2e08f31f126146f0d5","_id":"ssb-crut@4.4.2","_nodeVersion":"14.19.1","_npmVersion":"8.6.0","dist":{"integrity":"sha512-kN/O/eU9daQ3KlfgY2Wpe7jwFHYGen3BXVbliwzypEe1GsagQoNgpIxHlyLvYe67Ra1kH8W2Pd6c2wybQqQE4Q==","shasum":"27b8e3e6e128c785dafe95da8131745a4422be10","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.4.2.tgz","fileCount":33,"unpackedSize":119377,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAK82y80+VWq4qRsRFi5hJ+9xzkEbgnVdVkb1VML62/QIgGxZhs0qxnltPoktccYYgZr7EqdQ++g7sWW+yNi4cDpI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilAi2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvYQ//YtWBc8qOrzb9dB3Nnbe5DInbVfiKtdtLdlwJ5FdIfLHEC3Tc\r\nM33xyTLPr50KmLskZdxSwITS+sM2MaYiypenO0RmZFUDshJKrFAUi0ucJ+J5\r\nkQ4mt5y55adPOvtlmhpTki4RQNMavf7cj5BesCBda9MVr21ogS+xF+rPdlX6\r\nsfsfN1w1gyaqOdB6gZB1Lhq+tKhMbCKugOQmiuzZLvAJe3YAG5QGBcLBFe1s\r\n0boVNq3GaC8L5RSiZZPdHLiF5Q6I2zo0pN848E/2/auuUzD98effhXa6HUyb\r\nVV3DHCbj2PdsUUTcPZrtbOXU9X8P/EKjKwrcNTZKhOT4x4na9ZjDIibmnZtU\r\nTOrXxCGQJcW9mVkJqJyXi7MZadRaxnXq0iZB2ZvEvHXFtHHHdqLWQEuqcz7y\r\nBSbnzSwRbYFtAL3o2fGznSd6DcKZxYTgCwZ+p5IuySMwcV5saXc6XXCz7ZFj\r\n79vcWwEH02ZgCdb4rQmHgi18S/sdP58ghKDnxTLQzCZeoGYubwR9G7FNAFKF\r\nS14fHG14BI2nA99UclQwNX6y92zlVyB51HaOlGepFHv4PPprIMkjlQiOX32L\r\nFuVsHyX1/rmPJ840D0Bru0jVGfJtpf2JJ+lb/NlekbaljbozJrLXBIgHvV6Z\r\nlMlI3z9H8d7SNavoZ8xDMb7n2eiujG3f5mc=\r\n=RVzY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.4.2_1653868726700_0.8991065818205053"},"_hasShrinkwrap":false},"4.5.0":{"name":"ssb-crut","version":"4.5.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"e3c5a95def5cfa20e54adcefa5aa30fe56ef5ea6","_id":"ssb-crut@4.5.0","_nodeVersion":"14.19.0","_npmVersion":"8.5.4","dist":{"integrity":"sha512-FbOsjt+7azUl0H0XxJDYlOfs67UIPFT4fa28/xtZF7zcPc0GfUJ0vL7DELl9ZXRfQXMELvvfZYzqiy0J7g5brQ==","shasum":"88462dcaa7dec7204f94e09cb988e2a70359f7d8","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.5.0.tgz","fileCount":33,"unpackedSize":120016,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEIQBueho0nAQEMT3iBfe+/yF8lMYBiHucgkHuT3r6PZAiEAqZl7er4VrUP0ZuCbQVxxe/k8xOpQKOI1fWjnJFisdLs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimA4DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrysxAAmSL/9dGWVR6l1SAdBMxbVW0w1tcov1pXp3uBQeIet7KZkucG\r\n9dL+5l5n569xYm06syBuLq2wi4/3/OwQQLMs3rLlApR5EeLH2khxgJ0i2j6G\r\n1Mp8MgkgFpNULHryByfTzFHwbfLF2JhPUkT6LN5zgXhpQAHu6Qc4P8h6IA5N\r\n1YlgL7Xonf13524MK1YMXI7Tv/K3V1w1z3tNDPwjA7NA/OmQ5lAxdyLRWMlw\r\nFovX9x6tdzvxv2rwke7Da9/iq9sMQlaIX5pmjTpM5QJ1+iAY/od7A+0Q6Dw9\r\nMAn8+XKjaBxMlSF/sPHq2WYh5Qdiy6rhY6/YiF0AWdKOEwyOBWlKqMpnAY5n\r\nodGLHrjdX5R8mntPfpub8XmjMqy5i2PtsTNlmZ2W3NNW84BnAvd8D8gf9t8W\r\nGyQ6/iJIhf/FIBC9vaQiFVJzINC+YVWtj2vwPIfo8UDECdACLZCCbYp/f8hk\r\n2DRfCXU0eHcFPyN1KsjoExSmPZ7gs2EJntPVjrG8SEeW647KNN0IARdEmOu1\r\n+S6jqUH6q2TkYHPSC0cbmUkVHAMUlrRbVKW3yD+sMPIQsln4tz/lM102GFcf\r\n8KiAX+/l+bc6roJxzyqFASADoGFBmMb/UVWUPUIvK/j34gEKdmA5uTJfFlQK\r\nqNrDNqC7bNRnvny772gRmJZ3KDPu2RPNlG0=\r\n=XmS9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.5.0_1654132227351_0.5062884273973336"},"_hasShrinkwrap":false},"4.5.1":{"name":"ssb-crut","version":"4.5.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"4a56e14ab4b35fbb163d852ec423a5e5c23e81af","_id":"ssb-crut@4.5.1","_nodeVersion":"14.19.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-aHYz46+C7XM13MEJk9x3FdMMlE0ZTWDwDfr1cyg34LUplNk4kPoVl3P9yuVEne8ooMO2lYs4yvfntDvwYmW5AQ==","shasum":"2bf94ba4e6d255a0b42b06b077db544ac2abe65b","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.5.1.tgz","fileCount":33,"unpackedSize":120192,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHoitH3YkXb/+FMpKAwgNlntcljWy231YRNtU5AYN4JAiEApu1VVjzpdeONOaz1deAQmwesOrwPj9SbE8kprY6fxWo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJipocnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovKw/6Az1TFMI1quuQu7wltFlf3kmXsjpi3FWa4usMtzrGMRlmtlJy\r\nct463OP2pyzEz/lwY9Yt/uxe3Bx/ChUxKqyFtp7LM7VePcGovgCPAj0h2Gob\r\npBbf4y9TGk/k314A55vgPc1SszchfToWzxn57LnjWXYxWVRGC4uX1l/rLGeL\r\nYanHEvnzIuyGa0mlDYHzKQWnBc4gbJOoBdJpP7Y8OeAjqTFxRM1xiDjnzJ3B\r\nAbOlNi2zGQWlqRzldHJUi2i23IBbtbWKeAKtZlocg4B3XW+4UnjBbPQOcmIu\r\nShjA95DWfNN75fwpILjSSZ2Y9swVdIFhIPFwk8UiaDB7m0wkNnWzEG7Vy5WN\r\nYDYwO4EMhOkL0gCNmp4/Q7/rhii4LWSiyx7oQwkXcVY5LfA4BMr6YcnuGo8q\r\n1sG2LGlQ6AXZhoCZ9I1gzUj1Sqj00f5xmRNViCotmM8fgMAspPn1vBzNlB+9\r\n7X+Gj1B4VLjKlXrEqafcCelWyPZveYu2GMxac6mpC3N/1bivs0T8V4O5OguQ\r\nQRbZuiQ3pKJdLHbnXsWMOF8zpeBKSe0FVjebAyPWzADbB1MCijzlsRyhGLk9\r\nn2owqzFjzN0rqsgLhPDMlSyjTyqSCtfRiH1luKdKureglWFyb2+yhvNP4S3Q\r\niZkxEtwRErmhhHBGruxAWRYcTr08QFiTP1Y=\r\n=FUVW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.5.1_1655080743723_0.2935849142222835"},"_hasShrinkwrap":false},"4.5.2":{"name":"ssb-crut","version":"4.5.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"853bf50a60bd3197878b2e169179d6d27dc15bcb","_id":"ssb-crut@4.5.2","_nodeVersion":"14.19.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-ShGXjAboV+ugW461esCiK37u+qGhXD3rEE7DTtP8nCydNHlInLk2PVUPsnUdnaDIrC3/3s+A7S7DTE6/6jqQ2Q==","shasum":"e2687bfe508036751af116482664f54216052502","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.5.2.tgz","fileCount":33,"unpackedSize":120296,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHGJ1cm4TvDJTW7iPDPtQikchYHNZ5SZyfOXsDbF64qnAiEA4BtUDH41a0DhDEdkCMhJqSpAOUd9fwQopLkVOM8E8LY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuRDKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriIQ/+N4+7E+JlvObo0QfY/pKpmkHyb/K1vvweF6Li65m99IbNZhJV\r\nbIYM2OsOOYhhyyFh0Vk7TM9sArZJl48+uNS3yvvMRYp+P56tbvwV1T5ov/FV\r\nM/a77gavSDHtjwukb5rHr69nKXwIUNaEmeGwJdGkExHduPK2HZkKi9Yj8XPC\r\nfCg1HlnL45Ku9WOKeqlcVDx27Jq//oGdHrX6QGRiVlGvs1wxB4jrPcA/3ROJ\r\n3TFHvF/y1QnDECPzUSazVu8M0oNXjDFGF8CS7CRUyHo+k/Yhr8d7N9/rnN1f\r\n7YH0PpaHsTyC/Iqlra5uxa8k0OBqXTQ6kYQnweMJFN2j+ZkE/TnisLGtNr9f\r\n0WIWnpnofNhN1Y+2wDsEdgyYSPkKKUHaUujbumWf0ZGhNu5VulQts/QwIRRI\r\nwOQXQKyTvJd5dL8th6FchekjBI/U1e7KQkygx/KYAFPf9Mb8gdi5+k5VYzvb\r\n0j3W51FJvhc94u7/vR+JtxK6fHjreGQ0lKJweAeotejK74cSH0wfDlATgXZw\r\ndbV68XLWs2WXudW/Y+xSE5mw8bYAdSiSs/Q/lq2lfYycmogmGJdbEfsw/NrC\r\ndQGdC5yoChvYwKZ8AXQX9xQmwBczYJT5r8neDSLhkPA/MsIIXGsVtFFaciQZ\r\nsXFFZpYEwUOXdvnvhg1xMVvo4igvIjUrOGs=\r\n=OWo/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.5.2_1656295626250_0.9893205256140369"},"_hasShrinkwrap":false},"4.6.0":{"name":"ssb-crut","version":"4.6.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"AGPL-3.0","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"8038eff22d4cc398026e2a12425af4129c631ef4","_id":"ssb-crut@4.6.0","_nodeVersion":"14.19.1","_npmVersion":"8.13.2","dist":{"integrity":"sha512-U6phBXDfzvMk+eDIUQr/pGRsqGhGnLW1auwk22ORi4eIXjOSnx9fzq+3hTYgv/d3349AxzExVfyxZEhUpBMNjw==","shasum":"75e2794e410e42d8b2efb193160c62ded008ffd9","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.6.0.tgz","fileCount":34,"unpackedSize":126130,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD132u28ak+6nYog/g50JCY8kYabwolWRG6tOgaQW2xOgIhAK85URvewj3rAb6lgST/xcKl4RcoifRHG4eo/J6xP1K7"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiv5XqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpy0w//dPEIsBwdZi1OuDVfOz03EX09qwgZWnZiDvgqaQAAuXOSsCiB\r\nFHZzwUr0fULqV3kJYC9LdnGvHGvUo5h6cKFKgAmHixUg10M1Y7k3gerqC6kE\r\nJvmpSLnrPXYSxkFq8QHzc10hUgxZg2Ftu9+epIB21C4cRTlIavUvLDKvLQVv\r\nB9oi7GyCYP33WYgpjTY1cTnGqkkCcicDEHK1LlXqZevnQVAXjREqAZ8WgsoE\r\nWt050eOvG00rwARN5fFDI6WQhpuSt9ARG/ZrQKT7pU8OvDPlL11MxWTvvfG0\r\n3E7H+MmWTa3gwRJkNotPt99CBnBSKg2n7JAdzWcqQGng/m98U58/QYLEbuET\r\n1GeFriM1lW6XK7qJeRs8k8gNhqug+rrehrzPBeDqVBChcRDzk3fNxnEYtTHF\r\ni5jNikqwUqDwEAuRCWCS9obsRpg0rLWoXLQqdnjG0DGCHmTKFvg3eYFqZPux\r\nNxjR1LtD7pILubF8L6BCMUsI7uddgvWA2e4XMFGG/zIYx8hEo/OHAv+lIFQb\r\nhErNf8HYBMvFSr+TSaXo2bkfoNZqcwQDeGt07CQ1M49MroeiFSQg7B2Ffo9+\r\nvUIaplweRfCXTiQbPCRzYGasgwBd+gKpe6BFzIsJLVdNFdZvtqzASVjv9x0w\r\n+YdDQRLbMS54Y4azkmm/Ac5dSUidq23rVCM=\r\n=1VyD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.6.0_1656722921794_0.44748482100239584"},"_hasShrinkwrap":false},"4.6.1":{"name":"ssb-crut","version":"4.6.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"e550fb923f7d5c395f0e51980cb00f6572af9b2e","_id":"ssb-crut@4.6.1","_nodeVersion":"14.19.0","_npmVersion":"8.12.2","dist":{"integrity":"sha512-ZLcUKtGb/6W+6Z8iNxDAm9DNvzD6xlknncExOtEzYPo/euXd3QvQVZ7gVtjFfAVjuZuXDDq8KH9+2HjO/QMFUQ==","shasum":"5534511629aa9a3d28971eeff0dc0103a282d651","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.6.1.tgz","fileCount":35,"unpackedSize":133787,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICbdMpRjFbqg2FsmfY5GKIiZcfc3jIdagRTjbTVO7UpbAiAKzZtUG46GhgOE8SPlcKwJL7NdfrkMPsEvTTTztpCqmg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjLWVWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpy0RAAgnm87JHbiNAipie9FLFdNKE1n7HCLgqolNaQc14gvhhPKxRn\r\nY0v4B2OG+UX6Sq5wzfqwq2gd5CmleqK6RL2upmTfemmNLB80Y5mrUSYeLkin\r\nP0UbNBYz/FhKci5ixK/eLmjDNGjeCXZpgGeDvjDErXL163tu3T1y7DXP4Sby\r\nDwl1r9P857cYtOTmfQwhzQwurbQwiasXSp+RqTNPaWO690GwFnVRxbZK0Fc8\r\n64wc76g+yOPxW0QNMEJuD4JnpAvVlZHXQIe2ygqkgZB486EyRLKRIKNmpa9q\r\ndnFpJ6NW3b975c4799LanovmZrQal3v6cfxah/ncxbuA4LU38O06SOMtndWR\r\nPgac81fI6a8Oom9WpM6k8a91xpwvf4tUZGLFdcZXLsGxlP4pg1gqrLDvlS1/\r\n6XZW8IPzJuhST6WtwXuo5+NqMtnBl1lQZn0nehY7c6I08QqAZNaB8XoH0Y5v\r\ntGG3AyQgzlQOUb/L/W87SVogbh86W12wT9bKQ1iJ2LIo4hAEbZAZA0pR49Nh\r\n6J58EOg8vsijU46BRJidR+C0Wogn3hlhxu6n82bAGpzvwZlVoeWkOk/dBr1G\r\nb/ABalGxAziYNhGEsSjZpo4tO1rRuwGNr36UcXvyFCdP0NKDGN+t/N2NU0Yu\r\nwSEyTaWAo8yepN2aLem65Iej73ic/nPrtSM=\r\n=NDHU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.6.1_1663919446328_0.6672063386254306"},"_hasShrinkwrap":false},"4.6.2":{"name":"ssb-crut","version":"4.6.2","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.0","@tangle/strategy":"^4.1.0","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.1.0","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.6.14","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.1","@tangle/linear-append":"^2.0.0","@tangle/overwrite":"^3.0.0","@tangle/simple-set":"^3.0.0","cross-env":"^7.0.3","scuttle-testbot":"^1.8.0","ssb-backlinks":"^2.1.1","ssb-db2":"^3.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^2.7.0","standard":"^16.0.3","tap-arc":"^0.3.4","tape":"^4.13.3"},"gitHead":"1b1837974b8c2a0c0762e6d6ad7c7cc51418cf4c","_id":"ssb-crut@4.6.2","_nodeVersion":"18.14.1","_npmVersion":"9.3.1","dist":{"integrity":"sha512-6jDDE6zIzNXOvYYTRhGFFbXhwy2Bora4mRmtsMau+/dD+d9uM+g73x6QV5Mu1lX0tSWwjO7O8kXX0gv0TMVrlw==","shasum":"d5a42532766ff22bad3d32b6b68c6a7f0a03c782","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.6.2.tgz","fileCount":35,"unpackedSize":133738,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKlyM7MYcfKmIuhDA9VAObAVI1/cU4dRDgpdlRF5tmvAiEA+v0Y09yiZADKUk8L+vTaz+BddIVwpy4uyBgLyb+js9c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHSdCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpeIQ//fmkzWmeFAe9IcibXhsSrh+YGU1mrj5JEi9/UWL413PVQsNds\r\nCqa3B/cAKgf5kqd+R7mStT48MHEJ63XYgKDF41JUco/+k1lYCh2V9J6i3SyM\r\norDHvOW1tIOAhH64VVuUNGvMrHt6sE9N1rkGbKJmeghemI9PzuFgbktwc2yQ\r\n3XJ4ZVJWNopyHsi+bsq0L8aaZc6o84T79gvRQ/RMJUYlhzabS54+9I/96HUK\r\nd1mM962rmlDvSiOrD4g8h02siHRpJMTc5HFDLaozpbH/ZCx9JUCw8BbTKVvT\r\n0QthE2MkTmfr8TMNJueWBquQg0mDv7VwP0YlNtHlcsdT5sKvoAccZYGPD57n\r\nhn1/i6Del41+2s7ganSJ4mkGtixVlzKkcORAkxwde/NFQCwXF1q0kFIZNQAH\r\nc2IudYnQ3sB+Wz+/UDMdha+iyj+leTl8/O+xrhHHLjb34nxf9ryjq6x9250q\r\n1I53G5Pklnma6yQeJLUG0x1R3HjgVViXuNRt+CcSjUkjlwqHA3Qb56OTKgh6\r\nfQ8JP/PmLCRarV/Wk9TJgS0WRme4ZuDgfhal2KNVtVFZVBDPsZgFtPVl8BkH\r\nA8Xnwz23T90DwYzE5cClEw8xmSHqDS+q44TbLnJ9pPqhCHVWsKBrffgSk1tu\r\n/ShHbcDW4zM1UL4KPy58FQubm3J4gsQPr3c=\r\n=yhOK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.6.2_1679632194343_0.2966980849478489"},"_hasShrinkwrap":false},"4.6.3":{"name":"ssb-crut","version":"4.6.3","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.4","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^1.11.0","ssb-backlinks":"^2.1.1","ssb-db2":"^7.0.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^3.1.3","standard":"^17.0.0","tap-arc":"^0.3.5","tape":"^4.16.2"},"gitHead":"c515771f5c68381e49d531fa491e6da2538e188d","_id":"ssb-crut@4.6.3","_nodeVersion":"18.14.2","_npmVersion":"9.6.0","dist":{"integrity":"sha512-PZ95Rq8D1u4mBp4zI+uT8C/cEhiw82D3s8FUUJYsV0xrP+PI/uUmOaRiE0T9n/Z7KNkn0fyCYFK9IJUwkDN5MA==","shasum":"6505c49c5bc14b0e0f46d771a74cb96cabcf50b4","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.6.3.tgz","fileCount":35,"unpackedSize":133772,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaj1hHBXJfHQZhmWrG8mih1w0tJ/fxZ+vlu4cpUivfvwIgJKzBYHRoOCohCmFshs5RES3vku5f1Uqxdb/LvRfNBU0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPH1dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9/g/+I0EZYABLKbtpjFGh0qDlDvw7TYV3dsNr71ofpmfIhqyztukk\r\nDlx47/JjVdEr/x0TYrt38WyJf+yB3CEvtZR/CvFAGlG1mJ9c1lyYyyADCxcN\r\nSkWWOQIm63yeLVX6bM5FdxvAqh6d/Y97FA/HJ59n6JQMOzAn+vmbBGrTQtHf\r\nQCG9elYPQI8W6hYm3QY43WuQqEobB15GF2NJ7q//C2N5VmOhXDyr8Qy6JoMf\r\nLSVKImnAdTlEHlAVs4itfODxkpqwz316+KiRm9DvLjO9+LUYwYJ3zHBLXTUH\r\nIbLBHICyL9N7agmy21aCqPx0Y4Is3a42ibNfoI1+M+kImzl+/eXeR/OAwCw3\r\n0SC1w5AVOedKYDXzaVSHZ6kYlK/6RS6VJUi1f7WRtq86yfwBHDBJbmnZDA4t\r\no4+PdsKcZsj/CQo2b2nuB+R4RCBsZZll9TX8Dk/3c7yekIbpcD49IOthQ/PM\r\nHX5GUinsTfpHFZQPURU3JjI71JQl8/zFiNG+khyuq1kPjO9iBr8gofXpcAp+\r\nacd1Gzb14hFKY3h36hRWnfX1pyoMo4Z8GjGX0fUZb4eSMge6sJAdZR71uF46\r\nKi8fupyy3eVDxhBaA21RaoiLSnGry3C88JHlvFbf5b1A/l+t9EzLOzmWzxU8\r\nWH2XRbmyS7E4KJqwdmY+gp4Z85zYd2mnrgc=\r\n=vzz9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.6.3_1681685853780_0.9334264411639872"},"_hasShrinkwrap":false},"5.0.0":{"name":"ssb-crut","version":"5.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.4","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^1.11.0","ssb-backlinks":"^2.1.1","ssb-db2":"^7.0.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^3.1.3","standard":"^17.0.0","tap-arc":"^0.3.5","tape":"^4.16.2"},"gitHead":"0060ec994f38b5eeffe84d5d861c4b9b4baaf5ea","_id":"ssb-crut@5.0.0","_nodeVersion":"18.14.2","_npmVersion":"9.6.0","dist":{"integrity":"sha512-553P1CNRTY/WEaXlfzXAbXXQ/U7fqN9NGYPP8mmcMjq5R7JJMdCuxAERL58SSo7DDPEGMfKHYNf2kF7WANZLIw==","shasum":"63d1c3675dde1fb156dc0fc3eb9144894c78afda","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-5.0.0.tgz","fileCount":35,"unpackedSize":136506,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG4gk+j6AnOeJaGQkHlqAVuybcA5Qj27Kz1BHUaEhg7wIhAL22Ihiq/vGCRE9KfKSvC4kccrOBUmx1sPu4pqm07iNL"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkPJIiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpGXA//Ra1kSE6/LGe5F8ZyXHfZHAaljqlGrfwASHJbqpbaDCztwT09\r\n4/slr+wnfvUas+oH56g9dFFoeLb3P4XMNco3g+aNKsW7n4tkp8mlPy/ADIz2\r\n+BBHKyEOruoI3I6MGB05vF/+Rlg+/oZMy3rHn9GepUXlzMXLN7gzAYuzX8ro\r\nNCq7JSSSILzm+KDxcgZ10oZj+XcIbswigqVtWpG8DKFvaKjPERzUvKqHci+2\r\n0GYTf6PNzfekqkQD399apCpEHg+4iWToWPlCji33C4iht26LaVYfeHNXDr8S\r\n3ss/dlFRZrNBmgeWIXBYEaaISJjRR5CrWofmW2G02mEnxPOwd9u/m/VVYnTO\r\n/zyEwfBH4NrMxS+gzNm8I/VQgrKFiq7lsSchmDyzH/QMpMZIqssFaVm/9sHO\r\n/qvPZXAJA3iruaGfmZAOdVHkJw7mc4Gw9ysHTngOJfwOsrWzeYLgFp6NMUlS\r\nIft8mSekjxPGvwrFbTumvQgdHK/6LQBwQBwz5ejeuWIzQvBL71SSnzl1JmOe\r\nHaBxSG2scCF05wlhhBi2WzAFFajtEpnsa+bLW8FyIBbai5A3Z0URQWnIJkPV\r\ndflg+SM9wJBywd7nBgamX1cFUWu2J/E0Sitr2ZwyXHg19pEzi5pMlrbm2KOR\r\nZus+g52yFiNw/U5H5slKG9y00PZg6zZ9yqA=\r\n=hFY7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_5.0.0_1681691170449_0.46472168440737627"},"_hasShrinkwrap":false},"5.1.0":{"name":"ssb-crut","version":"5.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/graph":"^3.2.0","@tangle/reduce":"^5.0.4","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^1.11.0","ssb-backlinks":"^2.1.1","ssb-db2":"^7.0.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^3.1.3","standard":"^17.0.0","tap-arc":"^0.3.5","tape":"^4.16.2"},"gitHead":"7c2bbb879cb143111ea7053554b04c2f68112fb6","_id":"ssb-crut@5.1.0","_nodeVersion":"18.14.1","_npmVersion":"9.6.5","dist":{"integrity":"sha512-tgvUWJwOUMAfEk3B7++fhxKmlE7/h+kNoKWTNoPNUWIo0TdoS/2n9zsaYdULwHfxZsZcozoUvONf7xy5BNgZRg==","shasum":"ae2b81c945620a62e9f3f272afef11318f36b312","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-5.1.0.tgz","fileCount":35,"unpackedSize":137575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdwX9Ahj57+/9LMNkrwM5jzybUFe+0bGuP8CXwcjaqIAiEArqV6bMVAMrjHkXtIfGwaOYb4HNN4sE+hOyzfsvhPsFU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSf9gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrjkw/+PhO1vzJgimIObK5BE5BCaw6GH3PIIqqJVzTb9GuaJw1rERUm\r\nku54Z9bpJXQFfkPyL2k8vPXP4Udrz1ufY72z/L9+pw6Imhj3hq+YdjlWoo0h\r\nlgDYYEeoLu9mCFivq5NGpXr9/bCssiPtqOiFhlxperQSWmGHGZRsrCzUT72N\r\ndYvW9ZVPcoBMzBtxyoj2EG0dp7mv8C1M8eb8Tj4ldX+OCxNIPHl4VFu2h7nP\r\nLnip9JgXg/d5z2HA7lTZW8liVj+QF3CKDZXgbNlq//bplxn5JjEF3X2bYtHE\r\nscz9W7E7dNzLL0PKqyCKrg3BYxaqv5PW0kecJn8VbpIJzVXN+LaoG3pS8lwQ\r\nfbPBcjIwVpsz0Y7HdOpfayW8gg7s1MSnXwipFuS8QMQ1kD6A8GBSXlbKpeig\r\neEPHKBiVR3fdLyuaekopoILK4ZXUQEc9P6meptAwQC+eIWnCcN7xN25pTVh4\r\n9NmcTEzVEa8MCDLCsy8/ufpGARnM55CJNM2LyAYefxssB5XVIebNIIVS74WS\r\nqn1KiTqu6mI7ynXJyhnHcp7y+inPhM5mk1PB8WDwZCTwyLxSiX3LRKrce//7\r\nbaZXpkkKGVxf8NKdUBHqGUm0LyFYe327DwvPEoPQNzEyGYz5ZllDCsU4hL1S\r\n1kP5d6Z4RXPiRolM3m82Gw7K8Opqa6sg4mI=\r\n=BJUH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_5.1.0_1682571104076_0.21719310968542005"},"_hasShrinkwrap":false},"5.1.1":{"name":"ssb-crut","version":"5.1.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/graph":"^3.2.0","@tangle/reduce":"^5.0.4","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^1.11.0","ssb-backlinks":"^2.1.1","ssb-db2":"^7.0.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^3.1.3","standard":"^17.0.0","tap-arc":"^0.3.5","tape":"^4.16.2"},"_id":"ssb-crut@5.1.1","gitHead":"2f4aa9b541361e07508702cb0e489ab56d214054","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-6o6oJrP2xF4O1aNEiUVJFYQbK6XIzrycPjX3aTjOhYjTiDEFQnvzF/CjuRdTtupBZ3gqEnl4CJXHvfgtbXUKEQ==","shasum":"45f648629215697c09f1a2ed27c15441c526ec5d","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-5.1.1.tgz","fileCount":35,"unpackedSize":137563,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6zGDe/tdmnXAna9B3yBF4DLnfRlbFcre/dS+z0nIVOAiB1fHZPrK3Ow500z+sUu8ctangD/Xslp15D55j1WIDgRQ=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_5.1.1_1698632722772_0.2560019853855722"},"_hasShrinkwrap":false},"4.6.4":{"name":"ssb-crut","version":"4.6.4","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/reduce":"^5.0.4","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^1.11.0","ssb-backlinks":"^2.1.1","ssb-db2":"^7.0.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.1.0","ssb-tribes":"^3.1.3","standard":"^17.0.0","tap-arc":"^0.3.5","tape":"^4.16.2"},"_id":"ssb-crut@4.6.4","gitHead":"d7bbfe252b7803303b364157ea5a56780591c469","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-RNuD4rYgGT56+bIe6Oy/eM38tyXN5eULdrT53ZXXrGT+bPM/Yk10V3dl+FRioDA+ErUp4l0Fk334PHb478GMMQ==","shasum":"e8e4e934a37c9eaecfcef16808f3c5e016e9a5d3","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-4.6.4.tgz","fileCount":35,"unpackedSize":133760,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxPvxYL7bH74Q5hvk907WTqFK1z4N24XG96Qa0dnBvoAiA6cgZ/kSQAGFjZojomILCSOgsfsn7Y2VEa01/fe+pwBQ=="}]},"_npmUser":{"name":"mixmix","email":"whimful@gmail.com"},"maintainers":[{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"whimful@gmail.com"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_4.6.4_1698632918095_0.046323183854962036"},"_hasShrinkwrap":false},"6.0.0":{"name":"ssb-crut","version":"6.0.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc --bail","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc --bail","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/graph":"^3.2.0","@tangle/reduce":"^5.0.5","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^2.2.0","ssb-backlinks":"^2.1.1","ssb-box2":"^7.5.0","ssb-classic":"^1.1.0","ssb-db2":"^8.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.3.0","ssb-tribes":"^4.0.0","ssb-tribes-db1":"npm:ssb-tribes@3.1.3","standard":"^17.1.0","tap-arc":"^1.2.2","tape":"^4.16.2"},"_id":"ssb-crut@6.0.0","gitHead":"3f6d43b81a556e5240e77ca2d5890ff4122d45e2","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-bev8p91KMII6uGG5NG+DNEVMwSJHUOYAkUQTrdvXWcGnWflsGdVS+yYg2DzToN/Y8UJVOpN0Dl4k1ZKHUa6m5g==","shasum":"9724805ae55855e6176792106835f1ad45fadc41","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-6.0.0.tgz","fileCount":35,"unpackedSize":138185,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnlNjBh63rrjb5mnXZst75HpD3VkptFrrRUJS7ap1jyAiAjErfWpT9Mi/Mfm2iaXcCi0U8ILoZ3T+bVrRaV6mRWvw=="}]},"_npmUser":{"name":"mixmix","email":"mix@protozoa.nz"},"maintainers":[{"name":"powersource","email":"jacob.karlsson95@gmail.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"mix@protozoa.nz"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_6.0.0_1702250773159_0.3391866894574411"},"_hasShrinkwrap":false},"6.1.0":{"name":"ssb-crut","version":"6.1.0","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc --bail","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc --bail","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/graph":"^3.2.0","@tangle/reduce":"^5.0.5","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^2.2.0","ssb-backlinks":"^2.1.1","ssb-box2":"^7.5.0","ssb-classic":"^1.1.0","ssb-db2":"^8.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.3.0","ssb-tribes":"^4.0.0","ssb-tribes-db1":"npm:ssb-tribes@3.1.3","standard":"^17.1.0","tap-arc":"^1.2.2","tape":"^4.16.2"},"gitHead":"00b25af4f1e4a72741442f9d81a6737dd2b4c359","_id":"ssb-crut@6.1.0","_nodeVersion":"18.16.0","_npmVersion":"9.5.1","dist":{"integrity":"sha512-a3iEKeVXk87ejcryJPrc/2cHyqXQkGGVOS1ZZvLX3RJ2lj4oVEQEnveTVPlIl0g2XihFOD3/Cz0O84l0GF5xmw==","shasum":"655c1ec088b6e8a4d6c7cce0cbb0dd17be804f4e","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-6.1.0.tgz","fileCount":36,"unpackedSize":139003,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIETYF+aZnlPbcbxdg7n6uN8CZrKzMjM8Rc3L3oOppOsWAiEAmqqBiracVlGjyeCgz/1xOxNkVsKLF0maVAcyupk2jgg="}]},"_npmUser":{"name":"powersource","email":"jacob.karlsson95@gmail.com"},"maintainers":[{"name":"powersource","email":"jacob.karlsson95@gmail.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"mix@protozoa.nz"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_6.1.0_1702380489958_0.3849647168272763"},"_hasShrinkwrap":false},"6.1.1":{"name":"ssb-crut","version":"6.1.1","description":"easy CRUT methods for secure scuttlebutt","main":"index.js","directories":{"test":"test"},"scripts":{"test":"npm run test:js:db1 && npm run test:js:db2 && npm run lint && npm run test:only ","test:js:db1":"tape 'test/**/*.test.js' | tap-arc --bail","test:js:db2":"cross-env DB2=1 tape 'test/**/*.test.js' | tap-arc --bail","test:only":"if grep -r --exclude-dir=node_modules --exclude-dir=.git --color 'test\\.only' ; then exit 1; fi","lint":"standard --fix"},"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"keywords":["scuttlebutt","CRUT","records"],"author":{"name":"mixmix"},"license":"LGPL-3.0-only","bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"homepage":"https://gitlab.com/ahau/ssb-crut#readme","dependencies":{"@tangle/graph":"^3.2.0","@tangle/reduce":"^5.0.5","@tangle/strategy":"^4.1.2","fast-json-stable-stringify":"^2.1.0","is-my-ssb-valid":"^1.2.2","lodash.merge":"^4.6.2","pull-paramap":"^1.2.2","pull-stream":"^3.7.0","ssb-schema-definitions":"^3.2.1"},"devDependencies":{"@tangle/complex-set":"^3.0.3","@tangle/linear-append":"^2.0.1","@tangle/overwrite":"^3.0.1","@tangle/simple-set":"^3.0.1","cross-env":"^7.0.3","scuttle-testbot":"^2.2.0","ssb-backlinks":"^2.1.1","ssb-box2":"^7.5.0","ssb-classic":"^1.1.0","ssb-db2":"^8.1.0","ssb-query":"^2.4.5","ssb-recps-guard":"^2.3.0","ssb-tribes":"^4.0.0","ssb-tribes-db1":"npm:ssb-tribes@3.1.3","standard":"^17.1.0","tap-arc":"^1.2.2","tape":"^4.16.2"},"_id":"ssb-crut@6.1.1","gitHead":"57d48762fa1481a5cb92ab0270450c9c4a2aa322","_nodeVersion":"18.19.0","_npmVersion":"10.4.0","dist":{"integrity":"sha512-R2N1ikiFl7A+P9T0D3YIw8gib8HQfqG1whyZQDM3CuyqAZ4Prr4zfUyzFT6XlWyyP+joQDdfw8nsr4u+TmG9WA==","shasum":"5fb8ccc3756e5dbbe6c18e56d02885ff05a5ad77","tarball":"https://registry.npmjs.org/ssb-crut/-/ssb-crut-6.1.1.tgz","fileCount":37,"unpackedSize":139289,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiGLESPQvLFlvW8E7Xfht6Df0SmmTDUEX3UjPv8JMkEAIhANZn080UNS9d28XZr1yAAVv81RM2pDbNLG6OlRUAlOQM"}]},"_npmUser":{"name":"mixmix","email":"mix@protozoa.nz"},"maintainers":[{"name":"powersource","email":"jacob.karlsson95@gmail.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"mix@protozoa.nz"},{"name":"arj03","email":"arj03@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssb-crut_6.1.1_1713774414408_0.4235837942109788"},"_hasShrinkwrap":false}},"time":{"created":"2020-11-05T00:32:06.883Z","1.0.0":"2020-11-05T00:32:07.007Z","modified":"2024-04-22T08:26:54.783Z","1.0.1":"2020-11-05T20:29:36.049Z","1.0.2":"2020-11-30T03:15:44.208Z","1.1.0":"2021-01-14T21:54:36.713Z","2.0.0":"2021-01-31T22:08:23.041Z","2.1.0":"2021-02-09T01:25:02.778Z","2.1.1":"2021-02-14T21:32:22.115Z","2.1.2":"2021-02-14T21:52:52.624Z","3.0.0":"2021-02-20T03:33:50.761Z","3.0.1":"2021-03-07T23:48:39.230Z","3.0.2":"2021-05-26T11:23:12.364Z","3.0.3":"2021-06-29T22:32:56.499Z","3.0.4":"2021-07-06T04:52:15.488Z","3.1.0":"2021-09-08T21:49:14.062Z","3.2.0":"2021-09-09T22:08:23.136Z","3.2.1":"2021-10-07T21:49:12.010Z","4.0.0":"2022-01-25T21:54:44.602Z","4.1.0":"2022-03-16T08:38:54.996Z","4.2.0":"2022-03-16T21:23:07.936Z","4.3.0":"2022-04-12T10:25:25.027Z","4.3.1":"2022-04-19T23:32:33.468Z","4.4.0":"2022-04-21T02:59:28.234Z","4.4.1":"2022-04-26T03:03:52.312Z","4.4.2":"2022-05-29T23:58:46.927Z","4.5.0":"2022-06-02T01:10:27.521Z","4.5.1":"2022-06-13T00:39:03.883Z","4.5.2":"2022-06-27T02:07:06.510Z","4.6.0":"2022-07-02T00:48:41.969Z","4.6.1":"2022-09-23T07:50:46.515Z","4.6.2":"2023-03-24T04:29:54.523Z","4.6.3":"2023-04-16T22:57:33.947Z","5.0.0":"2023-04-17T00:26:10.711Z","5.1.0":"2023-04-27T04:51:44.231Z","5.1.1":"2023-10-30T02:25:23.167Z","4.6.4":"2023-10-30T02:28:38.306Z","6.0.0":"2023-12-10T23:26:13.394Z","6.1.0":"2023-12-12T11:28:10.130Z","6.1.1":"2024-04-22T08:26:54.567Z"},"maintainers":[{"name":"powersource","email":"jacob.karlsson95@gmail.com"},{"name":"ben-tai","email":"jamin.tairea@gmail.com"},{"name":"chereseeriepa","email":"cherese.eriepa@outlook.com"},{"name":"mixmix","email":"mix@protozoa.nz"},{"name":"arj03","email":"arj03@protonmail.ch"}],"description":"easy CRUT methods for secure scuttlebutt","homepage":"https://gitlab.com/ahau/ssb-crut#readme","keywords":["scuttlebutt","CRUT","records"],"repository":{"type":"git","url":"git+ssh://git@gitlab.com/ahau/ssb-crut.git"},"author":{"name":"mixmix"},"bugs":{"url":"https://gitlab.com/ahau/ssb-crut/issues"},"license":"LGPL-3.0-only","readme":"# ssb-crut\n\nEasily mint CRUD (Create, Read, Update, Delete) methods for scuttlebutt records!\nNote there is no Delete, so instead we have T for Tombstone (CRUT!)\n\n\n## Example usage\n\n```js\nconst Crut = require('ssb-crut')\nconst Overwrite = require('@tangle/overwrite')\nconst SimpleSet = require('@tangle/simple-set')\n\nconst spec = {\n  type: 'gathering',\n  props: {\n    title: Overwrite(),\n    description: Overwrite(),\n    attendees: SimpleSet()\n  }\n}\n\nconst crut = new Crut(ssb, spec) // ssb = an ssb server\n\ncrut.create(\n  {\n    title: 'Ahau launch party',\n    attendees: { add: ['Mix'] },\n\n    recps: ['%A9OUzXtv7BhaAfSMqBzOO6JC8kvwmZWGVxHDAlM+/so=.cloaked']\n    // makes it a private record, can only be set on create\n  },\n  (err, gatheringId) => {\n    //\n  }\n)\n```\n\n```js\n// later\n\ncrut.update(\n  gatheringId,\n  {\n    description: \"Let's celebrate this new phase!\",\n    attendees: { add: ['Cherese'] }  // props\n  },\n  (err, updateId) => {\n    crut.read(gatheringId, (err, gathering) => {\n      //\n    })\n  }\n)\n```\n\n## Requirements\n\nYou require an ssb instance with some index plugins installed\n\n**db1 plugins:**\n```js\nconst stack = require('secret-stack')({ caps })\n  .use(require('ssb-db'))\n  .use(require('ssb-backlinks'))\n  .use(require('ssb-query'))\n  // ...\n\nconst ssb = stack(opts)\n```\n\n**db2 plugins:**\n```js\nconst stack = require('secret-stack')({ caps })\n  .use(require('ssb-db2'))\n  .use(require('ssb-db2/compat/db'))\n  .use(require('ssb-db2/compat/history-stream'))\n  .use(require('ssb-db2/compat/feedstate'))\n  // ...\n\nconst ssb = stack(opts)\n```\n\nOptionally, if you want to make private (encrypted) records, you will need to have a plugin installed\nwhich knows how to handle your `recps` e.g.\n- `ssb-tribes` (recommended) for records stored in a private group, or direct messages\n- `ssb-private1` for records as direct messages\n\n\n## API\n\n### `new CRUT(ssb, spec, opts?) => crut`\n\nTakes `ssb`, a scuttlebutt server instance, a `spec` and an optional\nopts and returns an crut instance with methods for mutable records.\n\nA `spec` is an Object with properties:\n- `spec.type` *String* - directly related to the `type` field that will occur on messages\n- `spec.props` *Object*\n    - defines how the mutable parts of the record will behaved.\n    - each property is expected to be an instance of a tangle strategy (e.g. `@tangle/simple-set`)\n    - reserved keys: `allowPublic, conflictFields, key, originalAuthor, reason, recps, states, tangles, tombstone, type, undo`\n\nOptional properties:\n- `spec.tangle` *String*\n    - where the tangle info will be stored `content.tangles[tangle]`\n    - defaults to `type.split('/')[0]`\n- `spec.typePattern` *String*\n    - a regex pattern string which can be used to over-write the default. Useful if you've used regex characters that need escaping in you `spec.type` (e.g. `*`)\n    - defaults to : `\"^\" + spec.type + \"$\"`\n- `spec.staticProps` *Object*\n    - a list of props which are not mutable, and will be baked into root message\n    - format is in JSON Schema, for example:\n    ```\n    {\n      source: { type: 'string', required: true },\n      live: { type: 'boolean' }\n    }\n    ```\n    - reserved keys: `allowPublic, conflictFields, key, originalAuthor, reason, recps, states, tangles, tombstone, type, undo`\n- `spec.nextStepData` *Object*\n    - a list of props used only in a transformation, and thus will not show up in final state\n    - can be accessed in `isValidNextStep` under `node.data`\n    - format is in JSON Schema, for example:\n    ```\n    {\n      source: { type: 'string' },\n      live: { type: 'boolean' }\n    }\n    ```\n    - reserved keys: `allowPublic, conflictFields, key, originalAuthor, reason, recps, states, tangles, tombstone, type, undo`\n    - must not include any already defined in either `props` or `staticProps`\n- `spec.isValidNextStep` *Function*\n    - a function run before writing and during reading to confirm the validity of message extending the tangle\n    - signature: `fn(tangleContext, node, ssb) => Boolean` where\n\n        - `tangleContext = { tips, graph, ssb }` where:\n            - `tips` *Array* represents the accumulated transform for the position immediately before this message in the tangle, `[{ key, T }]`\n            - `graph` is a `@tangle/graph` instance for the tangle so far.\n        - `node` the node being assessed is of form:\n          ```js\n          {\n            key: MessageId,\n            previous: ['%sd4kasDD...'],\n            data: {\n              title: { set: 'spec gathering' },\n              attendees: { mix: 1, luandro: 1 }\n            },\n            author: '@ye+4das...',\n            sequence: 132\n          }\n          ```\n        - `ssb` the ssb server\n    - used by:\n        - `create` to check the message about to be published is valid. In this case `accT = I`, the (empty) identity transform.\n        - `update` to check the message about to be published is valid given the existing tangle state it would extend\n        - `read` to determine which messages are valid to include in reducing\n    - NOTE - in `create` you don't have access to `tangleContext.graph`, as there's no graph yet\n    - ADVANCED - if you want to provide a detailed error, you can attach errors to your validator like so:\n         ```js\n         function isValidNextStep (tangleContext, node) {\n           isValidNextStep.error = null\n\n           const isValid = ...  // your logic\n           if (isValid) return true\n           else {\n             isValidNextStep.error = new Error('your detailed error message')\n             return false\n           }\n         }\n         ```\n- `spec.hooks` *Object* with properties:\n    - `isRoot` *Array* a collection of validator functions which each root message must pass to proceed\n    - `isUpdate` *Array* a collection of validator functions which each update message must pass to proceed\n    - NOTE these validators are expected to have signature `isValid (content) => true|Error`\n- `spec.getTransformation` *Function*\n    - a function of signature `(msg, d)` used to map a full message to a transformation\n       - `msg` is a message in the form `{ key, value }`\n       - `d` is an index of the message within a flattened version of the tangle\n    - default: `(msg) => msg.value.content`\n    - this is particularly useful for coercing legacy messages into a format your spec can process\n    - WARNING: **create a new object** if you plan to mutate the shape of a message, otherwise ssb-crut will break\n- `spec.arbitraryRoot` *Boolean*\n    - default: `false`\n    - if `true`, then the tangle root of the record can be any messageId\n    - this allows you to attach (for example) a `settings` record to a group root message\n    - disables `crut.create` (as you already have your root created), so you start with `crut.update`\n    - during tangle reducing, an empty root node with the right shape is fabricated\n\n`opts` can have the following properties:\n- `opts.create(input, cb)`, a custom publish function which is expected where:\n    - `input` is `{ content, allowPublic }`\n       - `content` is the message content\n       - `allowPublic` will be present and `true` if `allowPublic` was passed into `create/update`. It's there to be used with `ssb-recps-guard`\n- `opts.feedId`, the feedId to publish as. Defaults to ssb.id.\n- `opts.alwaysIncludeStates` *Boolean* (default: `false`)\n    - the current version only includes head state of the tangle IF there are > 1 head to the tangle AND there is a conflict between those heads\n    - setting this to `true` will ensure that `record.states` is always populated\n\n### `crut.create(input, cb)`\n\nMakes a new record, and calls back with the `id` of that record.\n\n- `input` *Object* where key/value can be\n  - all/some/none declared in `spec.props`\n  - all/some/none declared in `spec.staticProps`\n  - all/some/none declared in `spec.nextStepData`\n  - `recps` *Array* (optional) a list of _recipients_ who this record will be encrypted to. Once this is set on create, it cannot be updated\n  - `allowPublic` *Boolean* (optional) for if you have `ssb-guard-recps` installed and want to explicitly allow a public message through\n\nNotes:\n- if `cb` is not passed, a Promise is returned instead.\n\n\n### `crut.read(id, cb)`\n\nTakes a record id and calls back with a Record.\n\nA tangle here is a collection of messages linked in a directed acyclic graph.\nEach of thee messages contains some transformation(s) which are an instuction about how to update the record state.\n\nTransformations are concatenated (added up) while traversing the graph.\n\nFor a tangle made up of messages linked like this:\n\n```\n      A     << root\n     / \\\n    B   C   << concurrent updates\n        |\n        D   << an update which is also a tip\n\n```\n\nThen the reduced Record would look like:\n\n```js\n{\n  key: A,                  // the key of the tangle root message\n  type,\n  ...staticProps,          // any staticProp values\n  ...props,                // best guess of state (auto-merged states || most recent state)\n  conflictFields: ['name'] // IF conflict, names trouble fields\n  states: [                // IF conflect shows the full state of tips\n    {\n      key: D,              // key of tangle tip message\n      name: 'Mix'          // reified state of props for this tangle tip\n      // ...                  \n    },\n    {\n      key: B,\n      name: 'mixmix',\n      // ...\n    }\n  },\n}\n```\n\nThere will be 1 or more \"states\" depending on whether the tangle is a in a\nbranched / forked state at the moment.\n\nFor convenience the states are automatically merged and spread into the result.\nIf the states are in conflict then the first state is used as a 'best guess'\n\nThe state of the props returned are \"riefied\" (meaning _has been made real_),\nbecause often the transformation format is optimised for mathematical properties,\nbut not very human friendly.\n\nNotes:\n- `states` is sorted \"most recent\" to \"least recent\" by the tip messages's declared timestamp.\n- if `cb` is not passed, a Promise is returned instead.\n\n\n### `crut.update(id, input, cb)`\n\nUpdates record `id`.\n\n- `input` *Object* containing key/values:\n  - all/some/none declared in `spec.props`\n  - all/some/none declared in `spec.nextStepData`\n  - `allowPublic` *Boolean* (optional) for if you have `ssb-guard-recps` installed and want to explicitly allow a public message through\n\nThe `props` provided are used to generate a transformation which is then checked with `isValidUpdate` (if provided), they are:\n\nMessage contents are also checked against `isUpdate` before publishing.\nCalls back with the key of the update message published.\n\nNotes:\n- if `cb` is not passed, a Promise is returned instead.\n- if there is a merge conflict that needs resolving and your update does not resolve it you will get an Error with \n    - `err.message` - describes in human sentence the fields which has conflicts\n    - `err.conflictFields` - an Array of fields which had conflicts\n\n- by default, **updates are accepted from everyone**. To change this, specify behaviour in `isValidUpdate` e.g.\n    ```js\n    spec.isValidUpdate = (context, msg) => {\n      const { accT, graph } = context\n\n      if (!graph) return true\n      // crut.read has graph, but crut.update doesn't yet\n      // this means updates from others can be published but will be ignored\n\n      return graph.rootNodes.some(root => {\n        return root.value.author === msg.value.author\n      })\n    }\n    ```\n    - see also `ssb-crut-authors`\n\n\n### `crut.tombstone(id, input, cb)`\n\nA convenience helper mainly here to put the T in CRU**T**.\n\n- `input` *Object* with properties:\n  - `reason` *String* (optional) give a reason for why you're tombstoning the record\n  - `undo` *Boolean* (optional) set to `true` to remove the tombstone\n  - all/some/none keys declared in `spec.nextStepData`\n  - `allowPublic` *Boolean* (optional) for if you have `ssb-guard-recps` installed and want to explicitly allow a public message through\n\nCalls back with the key of the update message which tombstoned.\n\nNotes:\n- if `cb` is not passed, a Promise is returned instead.\n\n\n### crut.list(opts, cb)\n\nList all records (or some subset) of this crut type from your database.\n\n`opts` *Object* (optional) where:\n- `opts.limit` *Integer* - how many records you would like (after all filters have been applied)\n- `opts.filter` *Function* - apply a filter to records being returned (is given a full `record`)\n- `opts.groupId` *GroupId* (a String)\n    - a convenience filter which only allows records published to a particular group\n    - NOTE - not yet available for `ssb-db2`\n- `opts.orderBy` *String*\n    - define what order to pull the records in by, looks at the times recorded on the **initial message** of the record.\n    - options: \n         - `receiveTime` = order by when the record was first received/ written (default)\n         - `updateTime` = order by how recently writes (create/update) to the record were received\n         - `createTime` = order by when the record was created (as asserted by the author)\n- `opts.descending` *Boolean*\n    - sets whether the receiveTime/createTime/updateTime is _descending_ throughour the results\n    - default: true\n- `opts.startFrom` *String*\n    - start reading from a particular message key _onwards_ (it will exclude the provided key)\n- `opts.tombstoned` *Boolean* (default: false)\n    - only show tombstoned records\n- `opts.read` *Function*\n    - provide a custom 'read' function which allows e.g. decorating, or installing a cache\n    - default:\n        ```js\n        (id, cb) => {\n          crut.read(id, (err, record) => {\n            if (err) cb(null, null) // prevents one failed read from causing whole like to fail\n            else cb(null, record)\n          })\n        }\n        ```\n        - where `recordId` is the id of the root message of the record tangle\n- `opts.width` *Integer*\n    - how many `read` functions to run in parallel\n    - default: `5`\n\n---\n\n## Using spec.arbitraryRoot with Private Groups\n\nIf you set `spec.arbitraryRoot` to true, then you can use a `groupId` that you're a part of and `ssb-crut`\nwill automatically root your record at the group init message.\n\nTo use this feature you must be using `ssb-tribes >= 2.7.0`\n\nThe methods you can do this with are:\n- `crut.updateGroup(groupId, input, cb)`\n- `crut.readGroup(groupId, cb)`\n- `crut.tombstoneGroup(groupId, input, cb)`\n\nReminder there is no `crut.create` when you have an `arbitraryRoot`\n","readmeFilename":"README.md"}