{"_id":"@synonymdev/feeds-daemon","_rev":"29-01df63bf49f8aab93806c8fe374ebe03","name":"@synonymdev/feeds-daemon","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@synonymdev/feeds-daemon","version":"1.0.0","author":"","license":"MIT","_id":"@synonymdev/feeds-daemon@1.0.0","maintainers":[{"name":"instasynonym","email":"instabot.npm@proton.me"},{"name":"pwltr","email":"philippwalter@pm.me"},{"name":"miguelmedeirosweb","email":"miguel@miguelmedeiros.com.br"},{"name":"rbndg","email":"rbandegi@gmail.com"},{"name":"chm-diederichs","email":"chm-diederichs@protonmail.com"},{"name":"bitcoinerrorlog","email":"john@synonym.to"},{"name":"jayvdb","email":"jayvdb1@gmail.com"},{"name":"coreyphillips","email":"corey.lyle.phillips@gmail.com"},{"name":"gr0kchain","email":"gr0kchain@protonmail.com"},{"name":"nzh","email":"ar.nazeh@gmail.com"}],"homepage":"https://github.com/synonym/slashtags-feeds-integration#readme","bugs":{"url":"https://github.com/synonym/slashtags-feeds-integration/issues"},"dist":{"shasum":"77133955fba9304108a9ae80c5362e15d3d1788f","tarball":"https://registry.npmjs.org/@synonymdev/feeds-daemon/-/feeds-daemon-1.0.0.tgz","fileCount":27,"integrity":"sha512-ymiG3F7BdowFbbpS20zB0tCjh92rPRdg3Pf9CzWhqhzyPXmiWAUUKXYtZ4N0Nom3HieSpb81z8mjSFFHn7c24w==","signatures":[{"sig":"MEQCICkF+jWVHOz6uBq8CmpT5QMNuj3cAtEcV++juW7FMQ8NAiB29ANbEx3wDaUf28/tzJrCPp3YLNiHlMMCXx8KC/9c6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45365,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJ+XNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdrA//T3rlu60xmvUmXwHGVJw4hxtLleVfA4JBKGIT1+6217i0bBop\r\niPhlRzkU2P9xXyRhn3sGtYMqN1Ks6oxIBZQLvj3WbklpIUgPABf61OQ7dKEV\r\nzqvJXZoAKDQPNA/4yEqakqxUf+KTubMkC1Y+8i4No2slkkQsrHuLvVzvBNjg\r\nw7Bp4RHEVmUNY1836lmbsT8NGkvKgxZB/pe2AeXChk0n5aB+h6acNVE+tLlP\r\nyxLmoQoFDn5U0zJkdvZT12ZzpxLvJfpsxNHcCRoui6jYTWnsW+RU4J3uoVuP\r\nHTi7GcwlriI5IV815FQ3kNVdOJcob5UKXpvwCDQMdRi8FjrzG/rp/txd+D6l\r\nkJWKqaOQWw3Ut4TNZ+vYNswM85BglaLkNJQEv0aOuce0N9BgOeLE5KtmUqlv\r\n3doOKf4/wtmV1zbDaLW5paodorfnSad65CCgbYLu7ZkbPFgNsBEj+yMlQ4Lm\r\nUGZFQgj8vK5GhR6TEUml7Mda1f0qJAhf4gUkX500jSMsxJm4NsZj3ydFAhOT\r\nbOesL5+CzEMaBWr8laB0vChaOk0+3HHDUUxYRuf2CbQkKrl2nimsACvdgcLq\r\nMLp5MlXM5TrreggDBLOB51qd4ujOVA+fJN/MWRMoFMCJDuEmxNOFyZaXvuwz\r\n0GlMYvvpUTg6uVfQQRk5TZB++ZqRxq2zp2o=\r\n=wmI0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"a4b55dd057839dccb49b574184f429abbc23208f","scripts":{"test":"mocha -w ./src/ "},"_npmUser":{"name":"rbndg","email":"rbandegi@gmail.com"},"standard":{"ignore":["test"]},"repository":{"url":"git+https://github.com/synonym/slashtags-feeds-integration.git","type":"git"},"_npmVersion":"8.17.0","description":"A simple HTTP RPC deamon to enable publishing Slashtags Exchange Feeds.","directories":{},"_nodeVersion":"14.15.1","dependencies":{"async":"^3.2.4","axios":"^0.27.2","debug":"^4.3.4","lodash":"^4.17.21","fastify":"^4.3.0","sqlite3":"^5.0.9","@fastify/formbody":"^7.0.1","@synonymdev/feeds":"^1.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","corestore":"^6.0.0","hyperdrive":"github:Nazeh/hyperdrive-next#pass-options","hyperswarm":"^4.2.0","random-access-memory":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/feeds-daemon_1.0.0_1663559116928_0.3956709409918151","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@synonymdev/feeds-daemon","version":"1.0.1","author":"","license":"MIT","_id":"@synonymdev/feeds-daemon@1.0.1","maintainers":[{"name":"instasynonym","email":"instabot.npm@proton.me"},{"name":"pwltr","email":"philippwalter@pm.me"},{"name":"miguelmedeirosweb","email":"miguel@miguelmedeiros.com.br"},{"name":"rbndg","email":"rbandegi@gmail.com"},{"name":"chm-diederichs","email":"chm-diederichs@protonmail.com"},{"name":"bitcoinerrorlog","email":"john@synonym.to"},{"name":"jayvdb","email":"jayvdb1@gmail.com"},{"name":"coreyphillips","email":"corey.lyle.phillips@gmail.com"},{"name":"gr0kchain","email":"gr0kchain@protonmail.com"},{"name":"nzh","email":"ar.nazeh@gmail.com"}],"homepage":"https://github.com/synonym/slashtags-feeds-integration#readme","bugs":{"url":"https://github.com/synonym/slashtags-feeds-integration/issues"},"dist":{"shasum":"c37d0ce6ffab34ae4946a581a8a7131caa8ae0e9","tarball":"https://registry.npmjs.org/@synonymdev/feeds-daemon/-/feeds-daemon-1.0.1.tgz","fileCount":27,"integrity":"sha512-HJzsc37mmxE1iTl9HBobX3lMP14fFDmoNzp39g4u7FwgQR/6bCy5GwBTuxNTme5a18MgoKXRx8bWNALqgmLkbQ==","signatures":[{"sig":"MEQCIHR8iU6c9AV7/JPk3QA3jANZosGhLs8Q2K2AikqQwV3aAiAzC/ilJvcb+PRCxmduN67n0SCPRUcBFLFnXF1NKB7L9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKAd3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpF3A/+JTAxy6auW/nWlBePloQGg2k00w+Z0kppjDvKASZs37D/1gua\r\n7nLfWNJr2j4cUpvR3iMihSMxQ7xgatYCX6fqljbAx053dSJlJdac2yhbcRoI\r\ntAQ3mnGs3GzZqmTNvmR+1+05+ROzM8nWlpNzjgIkh8cE4BW++nJY9p8vNUHL\r\nJjZWWUHV9x/V902KLAZRQ2+7aLatcxoyrZk1biFoGkXlNbwBrudoEZGoR7wM\r\nSm3jUuSARGf+QQ1jMsgQdzVQesa8mA2bbOXXCc49eAPum7Iq4wKkRUkxWMT5\r\nWr1/Fx+F0dklm0nihYvKxjh6zWlHZzNtAApWAROyOgU9MQtHrM59SAFo3j7q\r\njGtMebL3w8c1OdNByXviGDxR7zLtnbKCv972w184H164FBgW69GaQyfvEhGj\r\nuYCIWuZRMYyA6ycamLzi5mVwPxfemaMkwZ36rS2KbaxAozXS7r22D0nmNtqZ\r\nxB0E52grmJcg7aXIC8KOrpSQrIkJY+AvuwV85lFfe2Vato4UeFFo2OyWIly8\r\nfP4Bvtb7wafmsnKxL/BUVX5mwAywhGZNv8+8+9we6GalNhREYmLZtyGaaLr4\r\nKXRANuF8oNYXCzOERc/mwHsTe4le0b8xUPJ+0rA3+GSMGAhx1xKh4+VMmpiU\r\nQEwvxIFoUEGRW1QpcnhHwfw1BZHI2Y+/0Jo=\r\n=VAV2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"2e87d62737639047c114b537bb3c31751f14973a","scripts":{"test":"mocha -w ./src/ "},"_npmUser":{"name":"rbndg","email":"rbandegi@gmail.com"},"standard":{"ignore":["test"]},"repository":{"url":"git+https://github.com/synonym/slashtags-feeds-integration.git","type":"git"},"_npmVersion":"8.17.0","description":"A simple HTTP RPC deamon to enable publishing Slashtags Exchange Feeds.","directories":{},"_nodeVersion":"14.15.1","dependencies":{"async":"^3.2.4","axios":"^0.27.2","debug":"^4.3.4","lodash":"^4.17.21","fastify":"^4.3.0","sqlite3":"^5.0.9","@fastify/formbody":"^7.0.1","@synonymdev/feeds":"^1.0.0-alpha.2","@synonymdev/feeds-daemon":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.0.0","corestore":"^6.0.0","hyperdrive":"github:Nazeh/hyperdrive-next#pass-options","hyperswarm":"^4.2.0","random-access-memory":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/feeds-daemon_1.0.1_1663567735547_0.2591732590982627","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-09-19T03:45:16.927Z","modified":"2026-09-07T09:46:02.583Z","1.0.0":"2022-09-19T03:45:17.081Z","1.0.1":"2022-09-19T06:08:55.740Z"},"bugs":{"url":"https://github.com/synonym/slashtags-feeds-integration/issues"},"license":"MIT","homepage":"https://github.com/synonym/slashtags-feeds-integration#readme","repository":{"url":"git+https://github.com/synonym/slashtags-feeds-integration.git","type":"git"},"description":"A simple HTTP RPC deamon to enable publishing Slashtags Exchange Feeds.","maintainers":[{"email":"pavel@synonym.to","name":"thisispav"},{"email":"john@synonym.to","name":"bitcoinerrorlog"},{"email":"corey.lyle.phillips@gmail.com","name":"coreyphillips"},{"email":"philippwalter@pm.me","name":"pwltr"},{"email":"deniszalessky@gmail.com","name":"dzdidi_restored"},{"email":"octrif@gmail.com","name":"ovitrif"},{"email":"crequena2@gmail.com","name":"shacollision"},{"email":"jamesbrowning91@gmail.com","name":"catch-21"},{"email":"oier@synonym.to","name":"tipogi"},{"email":"andrei@synonym.to","name":"andrei-synonym"},{"email":"tomos@synonym.to","name":"86667-tomos"},{"email":"jayvdb1@gmail.com","name":"jayvdb"},{"email":"sevi_buehler@hotmail.com","name":"sebubu"}],"readme":"# Slashtags Exchange Feeds Daemon\n\nA simple HTTP RPC deamon to enable publishing Slashtags Exchange Feeds.\n\n## Import as Library\n```sh\nnpm i @synonymdev/feeds-daemon \n```\n```js\nconst { Feeds } = require('@synonymdev/feeds-daemon')\nconst feeds = new Feeds({\n    db: {\n        name: 'feeds-db',\n        path: \"./data\"\n    },\n    slashtags: \"./\",\n    feed_schema: \"<feed schema json file>\"\n})\n\nawait feeds.start()\n\n// You can now call various functions\n\nlet feed = await feeds.getFeed({ user_id: \"123123\" })\n\n```\n\n\n\n## How to run as Daemon\n\n**1. Setup config**\nGo to `./schema/config.json` Update config items.\n\n**2. Update your feeds slashfeed.json file**\nThis schema file allows feed consumers to parse the feed.\n\n```\ngit clone\nnpm install\nmkdir ./db\nnode start.js\n```\n\n**Enable detailed logs** ``` DEBUG=stfeed:*```\n\n**Run with PM2** `pm2 start`\n\n\n## README\n**A Postman collection has been provided.**\n### Create Feed\nCreate an exchange feed for a user\n``` sh\n/// Request Body\ncurl --location --request POST 'http://localhost:8787/v0.1/rpc' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"method\":\"createFeed\",\n    \"params\":{\n        \"user_id\":\"satoshi123\"\n    }\n}'\n```\n``` json\n/// Response\n{\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"925b10c27f4ad350ab3ef7e027605fd83388c999a890cfdd8e6061656b5a5513\",\n    \"result\": {\n        \"slashdrive\": {\n            \"key\": \"<string>\",\n            \"encryption_key\": \"<string>\"\n        }\n    }\n}\n```\n\n### Update Balance Feed\nUpdate a wallet's balance for a user's feed.\n``` sh\ncurl --location --request POST 'http://localhost:8787/v0.1/rpc' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"method\":\"updateFeedBalance\",\n    \"params\":[\n        {\n            \"user_id\":\"satoshi123\",\n            \"wallet_name\":\"Bitcoin\",\n            \"amount\":1.442\n        }\n    ]\n}'\n```\n``` json\n/// Response\n{\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"4fefad839fa440cc2a85d8178d1d895fa1044460080b8fe1a26b4942aa86c07f\",\n    \"result\": [\n        true\n    ]\n}\n```\n\n### Get Feed key by user id\n``` sh\ncurl --location --request POST 'http://localhost:8787/v0.1/rpc' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"method\":\"getFeed\",\n    \"params\":{ \"user_id\" : \"satoshi123\" }\n}'\n```\n``` json\n/// Response\n{\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"c6ccd88f842330ab60153b5fb512101d2ab76824189eee5690f9070ebe18cb87\",\n    \"result\": {\n        \"feed_key\": \"<string>\",\n        \"encrypt_key\": \"<string>\"\n    }\n}\n```\n\n### Delete User Feed\n```sh\ncurl --location --request POST 'http://localhost:8787/v0.1/rpc' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"method\":\"deleteUserFeed\",\n    \"params\":{ \"user_id\" : \"satoshi123\" }\n}'\n```\n``` json\n/// Response\n{\n    \"jsonrpc\": \"2.0\",\n    \"id\": \"c6ccd88f842330ab60153b5fb512101d2ab76824189eee5690f9070ebe18cb87\",\n    \"result\": {\n        \"deleted\": \"true\"\n    }\n}\n```\n\n\n### Test & Development\n\nThere is a tests for all methods located in `./test` dir\n\n### Dev Scripts\nYou can use the following scripts for dev.\n* `./util/CreateUsers.js` Create Fake users\n* `./util/FakeFeed.js` Broadcast a fake feed for users created in previous step\n* `./util/ListenRemoteFeed.js` Listen to a exchange feed","readmeFilename":"README.md"}