{"_id":"pubsub-to-stream-api","_rev":"27-46dbafbf1bf2a572126168c16d1f8010","name":"pubsub-to-stream-api","dist-tags":{"latest":"4.4.0","beta":"4.0.0-beta.3"},"versions":{"0.1.0":{"name":"pubsub-to-stream-api","version":"0.1.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"dependencies":{"deserialize-error":"^0.0.3","rxjs":"^6.2.1","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.20","@types/eventemitter3":"^2.0.2","@types/node":"^10.3.3","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","pubsub-to-stream-api":"^0.1.0","rimraf":"^2.6.2","ts-node":"^6.1.2","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"61b6e143985c17aaa95b9210e8a88782e109ca9b","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@0.1.0","_npmVersion":"6.0.1","_nodeVersion":"8.9.4","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-53QUs6ermvYqHGCak2zhrX4w2qnw9DNxVeFyvldky1YJz6WeEM3FGKAE1IIXrJgwwEsCdt2h0K7m5DIkb4PSZQ==","shasum":"84b282cf56f2b52453c590044e17d597750fdecd","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-0.1.0.tgz","fileCount":9,"unpackedSize":20164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbLBQ/CRA9TVsSAnZWagAA8ZIP/A9E7AEKDqmbr40uRjhL\n2UVXGQXK2MQF6vNnpH7R6Uf6Jv9A9Trv7KFy2IlaHWK5mgyvjHiyCab+pq+P\nWv495LzQyohDHN/yP9x6sTMrZ3DlZHrW2FqViC9XECLhux1OHUoorLA4bIZN\n+Pbx3VdSt4hGV1i3Dzp44SOGR+7kSqSe9BNT4BKGvgA8FWOGOmHQR22QtxVH\nXtPvMU6au45/Cg6qWwLE4ADp3vbqa8J5xEywXqFN62nKkZdyAYFiuE6QMSzv\nFv31MVkQ4y51ZN4HncWzly9QCtFy08wTrdg6Y/i5w57lJy64JTaaW2g0hdJc\neIimcebxPe1NLZGV9ire9A/LsfoA2t+bQzvJHwPbcMvaertAa0c8X2upkJUS\nsApINJ+F1CkV5srsXvKA8EU9oTYscttgs4uRLnS7ILu+5ywwhgd1PzCI1JtZ\n6CrpMG9cViTqB48/I6Qxrw1t4rQfUA/vgEXG3MkVQxG6up4AjMNWZC4qd3c3\nDxXCz1SS9ZAl9//NuaOcJ0Qe25lHcB+KqqDG541lPsOZMhpp2EUf3Ldcux0d\noiCdBdHBMVbnTl8F/bVo1Z0HJZwzmPrkcqRPb+w+Z+a+JnJkPpBTKCUoO1t0\nD8JbE9yhsDv0DlDveF4h58hOb8uqk7f5pJMQshADrt0CQodQq4XVeP2HIWwx\nN3cK\r\n=Szfw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgLnKi31IXhBNab0UC+MxeFQEe+I7DjnEueR/9yRIW0AiBxKWfvDKcHdZks+bAv6Nz9C9NHaye5vAdOk935tThF+w=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_0.1.0_1529615423518_0.9832915103162561"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"0.2.0":{"name":"pubsub-to-stream-api","version":"0.2.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"dependencies":{"deserialize-error":"^0.0.3","rxjs":"^6.2.1","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.20","@types/eventemitter3":"^2.0.2","@types/node":"^10.3.3","@types/sinon":"^5.0.1","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","pubsub-to-stream-api":"^0.1.0","rimraf":"^2.6.2","sinon":"^6.0.1","ts-node":"^7.0.0","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"4972d4656bf4ef1b5d5a9a41a51a6bbb3c8f4377","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@0.2.0","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-HhXon+nKsE13xwseWW5Rpv8l2AyYGtzfQ7qvEuDDbw/JT1f2OqNzsJD+Z4f/Fkanp6BQWfeDEIL7+y22JZqdDA==","shasum":"6950d57b4547d166b22106bc876bb3a72bd6437e","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-0.2.0.tgz","fileCount":9,"unpackedSize":20959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMAnhCRA9TVsSAnZWagAA57cQAJcM152lBx0C2vU9y1Sp\nuBprypPO2IxYr+VS7cJhKEL4GM0IrppH2qvoLIFuOYrRxkeR+eJzBcCd5AeY\nCN0AlyAiJ9bfZAEqmYssJfJVun3TYrfjtmEpPUt+EDqUx0cjdjBAfF9P5PSy\n2llVBPVpD/WDxu6n4ag23cdgDbdioiISb1/L6A9AwoZmYWZlMwc9/ugz4uxM\nrSfddWDZ/WCb0Xzx+hU0wvpdJxKYjBQZS1B5iafeOStfS/V64Q3fBeZxDvQs\nsfHgIJbVK8BL1iAvflRYmvtihTEvjdpeopSReSJhnYl/SdRdVI/+J8a2iL3/\ndA/9CW5eI7hbmVHfSWwflnt3z6jkrgxf3TFxmq4Q6RleMEC8xz7Zk99y1THW\nTTA+kQalC9pFDY5sB+g741rIvsEGuWAGdzBRHtMFV9nGUa73CR0uaUvajJb7\nc5zEcVCkVOkfe1D8RsBQxbNAdG/FcI9Hig1k2yFRPi20TvHRAPuwTaMpflp+\nWVvXo/EYDFf11J19IjZAY62+Y3MDZOP3nuepu1YDtFxhVpKmDXBpOmyAG5E4\nz2vhIAW3GuZ6QCXYXmm5c4RMiJm+nCb6aJhdd8qRuJyXW9vo1XhNDMO8Oeod\n2bhGyGxzvT2M+7AwHuDTr1tcwqKe0J3Ul0C5xJ3jxXAg2Q2/h5hja5Ax320A\n4AfX\r\n=5jig\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEiLF7+MGgyZdobUEJdsvec4lfkFoAoW1CGY0Kbx5MPAIgWyZuj9xbjX/QciR0MnZ4iCvktv0oYxkekPCAevyy4b4="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_0.2.0_1529874913260_0.5182970949858656"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"0.2.1":{"name":"pubsub-to-stream-api","version":"0.2.1","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"dependencies":{"deserialize-error":"^0.0.3","rxjs":"^6.2.2","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.22","@types/eventemitter3":"^2.0.2","@types/node":"^10.5.2","@types/sinon":"^5.0.1","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","pubsub-to-stream-api":">=0.2.0","rimraf":"^2.6.2","sinon":"^6.1.3","ts-node":"^7.0.0","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"7b7c7028aa1597afd56e0be9f282a85ad90e5f37","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@0.2.1","_npmVersion":"6.0.1","_nodeVersion":"8.9.4","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-hKvUIB7YALEggg5ffHyQqSqJ5wNeQjRWOegHr7ppHK0bQTlGyy4BfrwFB9cLaE5Lzwd+LwoZ+/51JlKMYiidEw==","shasum":"ed3cff471cd26dcdf316e3130080aae309bfe0ff","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-0.2.1.tgz","fileCount":9,"unpackedSize":21123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSn5YCRA9TVsSAnZWagAAqjIP/0qwiJLRjog6iQc+v+bs\nUF60MWpbMCT4ImUfH/afhC2mcf089BjRTAigEgCV4TL4X5mOajZg+hU/UCvj\nhxQ0nCI9O3oKxAK4JwzUEaU21IQSiNKIOrmlX1/qKiPUB7jb/um66tAlf0uF\nMOSmwLXpGHl8UjEoMF2lcBd484KdK7CzQ6OdD0PSAFZqunkRJ2Q6T38/09r7\nruSZEXk6zE/dZYVBsQryr/MI4xN+N5Zdo6eUcjIOtoUyHSsQ5xR0clbCGkpR\nMm+msX/ECykUXh2acUK035IyfmQ93bs91GOhLFMpMZdFqUmjBNEPz0sxXQv7\nSNWl8HdiIUmgTl7OWfLt1pf+S0+WO9XsvLvmVlClI42X8szW3Q4kTflvFq2Y\n3SDPAT7S2G4tRVkjx36VIt4mrLZp1+W9C+mjueyP0yMWoZaTu9dH/XlWPEhi\njs/Vhkf0cWW4GEWZjtb8mdx47DZGrE0TfdGjUt7hW6WL7tf/W2CuOBc3QyQ8\n+I6e7V/6GltbBsV/D4ZlSJu2tozrlPCLUKWo5IO4/PkTwgn27iTknh16KZem\ncA1DzBRdGY5GjDg0+xs4Ka1o6C1pG4MGj6IU/M8UtF5OIoXzjpUiby3cU5xF\nliCBs/gF5G+DErRP48yzFdcu52MnBjuLd3kv+n5hIvM5jlg+NZzzcs6viqAC\nuOoB\r\n=Gcz7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFKd+Mpy9JzfY+uR0/avCykMm/sOtFEICc946g8dK3IAiEAwBtLGzgAq+C8I8fQgHm9skeXC7YQY/4cCrM7iHWz3qw="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_0.2.1_1531608664664_0.23592572675734513"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"1.0.0":{"name":"pubsub-to-stream-api","version":"1.0.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.2.2"},"dependencies":{"deserialize-error":"^0.0.3","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.22","@types/node":"^10.5.2","@types/sinon":"^5.0.1","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rimraf":"^2.6.2","sinon":"^6.1.3","ts-node":"^7.0.0","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"e1def7ef1a8dba85edb28354523b926d88cd9b5c","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@1.0.0","_npmVersion":"6.0.1","_nodeVersion":"8.9.4","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-fd+75gl4ucoiz00yij8fCHUrS0yxdivD68SzUn5EO896IuK4MdYy9NVvw2FrSgTpb7yQGqWtOUMyq4zTGuVLIg==","shasum":"95c57c11613e237e4234c1c71fd3a8e62b87ba6a","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-1.0.0.tgz","fileCount":9,"unpackedSize":21774,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTcjTCRA9TVsSAnZWagAABSwP/jDTaRbvqfc+c4qzkn9d\n2yXgFSd5KxJRPVJRQ6eMXAJUIA0SV3SgkIeOgLisx1c8I6fZpsUJWJLGHAox\nhGxgW4FZ8/JiZA4HJeQQ7hEuz05ozjUAjekUa6OFZ+AbAbpiX0k0IdYDTT3r\nAZQZAqS5zVPztWwnxnYEJ031qHzv6gTIWFDW1iDUafFoWYPY8QzIimxPtfIL\n9blAWQZX9Mz9Gp4SScR136MuyIOq4wIIbI79eMP9WzLZ5G5BfCJOgUuMYnoG\ny04eXNXawaJBtTaVUKW2vTbbO+JBZb703WITMhyVx7mOEo9zd+GoRYi50eec\nIQEM8vvIpYA51OuCN7z4apEiEVr1LkoXZTIBwDRFTrOgQVZjlsDbZhkkxKjd\neJf9iDRr6iV8Wk9N5F2yKqiCp4Rn6dYu+rWzUDpmt89+GHZz5GhG7vzQogau\nMMx3wdvUoZU6nac/Z2eRgXUuhUCpVMmBgc7bbSzqAj3xZNoj22uk1/2yeITL\nIb3cX49CgO82kj6BLJj48DEg90RFgHNXLQNBDBesGwlmpoPNJaRW1WfWaz4J\nsbFT4rV5XdBSvIn4P41FBT+ZNA1Crv4YY5JtRkKdva1n2V+30nJqzufQ+vVN\nF4g1IaEfNFoaeXog0mhpPp55pAQs5x2VGmDZ9FCZJ/FM3jtUVmOQLlZyVfqB\nvpyO\r\n=ASHl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZRO0vg1GC/r62HYqzklL8SX2JZNw9lR2FLygHQBr3lwIgbP1Hsm2/k8l+5csWSxhegq9uROt5uSLaRZO9gwxMzdw="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_1.0.0_1531824339224_0.5086749472073449"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"1.0.1":{"name":"pubsub-to-stream-api","version":"1.0.1","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.2.2"},"dependencies":{"deserialize-error":"^0.0.3","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.22","@types/node":"^10.5.2","@types/sinon":"^5.0.1","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rimraf":"^2.6.2","sinon":"^6.1.3","ts-node":"^7.0.0","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"27fe6db8139902a31a6349f771097aa73b060a5b","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@1.0.1","_npmVersion":"6.0.1","_nodeVersion":"8.9.4","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-LTUTsMYj/lAW8ld8mIW8mKjNhkFi2+xcRg9p5XkNjR0lhwO2Tc/4nZStEbHLoyXYQoKZ7d3BLMPlEPgLGpArFw==","shasum":"9ec25ecaedd1a01cefe83a5dbea99957a9aeee04","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-1.0.1.tgz","fileCount":9,"unpackedSize":21869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTc7gCRA9TVsSAnZWagAASBQQAKESS6Go68e8Izx+v5n5\nfCP4OpbaKmmJOlzBfxpKigwjk420enVdGROCAtzN7oDjrljsQe3w30YUWImf\nPH9QVk/uSliIfBiCEPM4w/CVKFNkTvkqBbeImW589KSd8PzVw/daNf3mDO+1\nzfhfOUngRhsT4y9bv7z5Ug3IVs4Xcpf2wVHN8rLu49z4+9Ah4ZaCB/5pvlZ+\nlDL6xT0Eu1w1JDvI0TAVw34iwHRSetlxLCoiVLoq1SfQuxJDXLNMMlkw2SiC\nQ3ZWv8yDcrC+9kepn7mtv1uaMIXahZWsC84NKBHts/RYYYbNI05xIBnSqOiC\nsFOf5xoLNsPp1aNxl6vbfmWehTcaC+/rixHEfV8FnXjsQE4obIZolOW0m82S\nEjCeUJ2cP4BDW+yzQUl2+4f/3SzILdHagaO56DWCibvDdQr1KvNfq11laZlc\noj+NAoaHPR88zHSHBExiBVpE62tCZmQj+Thb3Ldwjy8n64T+vYI9SWeslmgY\nSC1x+SEO8KQs0jwmhh/r7Tk4p0IpFa/7K7v0gJonQhkFgcqZ6XIDGFa4qqIy\neTbLP3LwSzFRDlpXSP2i6B8/yFmojn23VQEZLJ8z1ZxtwMj9g//6WJyOYCmG\n8Tjoysch3lLmxQ0dBTlAoYfn5ii+oOVb4SadxcppS3AC1R5T7S8+MNJUWCql\nXWoJ\r\n=M1lM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFobPoTNM8tI56kh9ThIMZq2Jf0zoxX89G0MNHLA7Zc8AiEAgojt3e3Hs3SXLb5s8K7kpP7cnYWwHtoh/xdDxzgH+fo="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_1.0.1_1531825887957_0.03398817725115877"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"2.0.0":{"name":"pubsub-to-stream-api","version":"2.0.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.2.2"},"dependencies":{"deserialize-error":"^0.0.3","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.23","@types/node":"^10.5.3","@types/sinon":"^5.0.1","ava":"^1.0.0-beta.6","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rimraf":"^2.6.2","sinon":"^6.1.4","ts-node":"^7.0.0","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.4","typescript":"^2.9.2"},"gitHead":"7ba880ecc4eae5c25f0616291c9beaf746e37273","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@2.0.0","_npmVersion":"6.2.0","_nodeVersion":"10.7.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-BwwWligdH/SNTgu326i9JN0IO8aRSUmyjybHkTbE473Cg2YMwb8uxG7MzRK+iqvgi+HlXcEW2PNYHkLGvOX2og==","shasum":"c7a9945511b2bf67fe56e15ac619fc027487c7e1","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-2.0.0.tgz","fileCount":9,"unpackedSize":22124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWfo9CRA9TVsSAnZWagAADKQP/A7Clvf5b8JpmUb14XmW\nQYZ3KXOHh4iiu+VFFFKPr67ARtO0wgxLJFuah5aU7ozM6rpVntfGUyFUtzjT\njRlKCF8IOS8QuVh5B3z0GtK9AvW8nfDGzGx4lPosjk0h/DOygxMIDdCN3etr\nHbc43RZb4ptmAVVoeU2JU5NMHcLRiX5Gvl+Zo9WOpyNnZOayHxgG62pHCFO9\navfWsJQzEGLKYs6QozCVojpgwSNasffarCqgpyDK0bR8ZNMJFi3FIXGIzwrD\nAAxVtzRYGe2qdVXVdTimJStzCjMUXFtVaV8tQNGMUTckgkD9DBBMCmik8e24\nMKXOXPN6jm4KjiTYPyxNVOVQTXVpkswibmG97ChTN6ulqvPhpwAmlb80du3a\n49ztn65yJ8OwxDXZiF+JslPmIYBWDwVPX3ytJQa1ZZbvaMjyP7LfiDMzzNFP\nWTN56mYI4uy0C8uFo3wNY0k/uXgLP7LkXBS0dbdyH/b1VmBWzrYArcg8hh/f\n2Pp6W15OqnRRUrKCgcEQL6BiMomJac1G4FDegQ/m+YMx/sIkymgEZvqUZl13\n+6YKwtPAxaqi2XUo4L/wix60rZjRCEun7aDtsMl+1NvHfeg1hnV5vgDzE4pZ\nI6SWVKxFw5KemmmbCZi9PbZwJqcx7V60lrahiEagHq4Kii1h4VUmwMNdIBEk\nyPh6\r\n=iMsf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHd5dh8hkber0k2rBAw+6mHDcljvIA4e4/OkV9zLNhyYAiEA1cLeFy8KnegSiRCayf8A6bnIlUJcal9/nmlDXb7c29k="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_2.0.0_1532623421774_0.9989045356040478"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"2.1.0":{"name":"pubsub-to-stream-api","version":"2.1.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.1"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.10","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.9.4","@types/sinon":"^5.0.2","ava":"^1.0.0-beta.8","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rewiremock":"^3.7.7","rimraf":"^2.6.2","sinon":"^6.2.0","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.0.3"},"gitHead":"cd1779132e4ccbbda2db66c268d6357aa0a54399","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@2.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.9.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-ODR7cJdx0D67LI+MQ2HVCLC8DHyhP7CMZlCzHy5iB4s0+RtxLqYsPP61uzvGLUgxGe9Y0OPe5VYRFrbOa/QOKw==","shasum":"b57d3755f48e5a680ecf4686a9f090cf087d3e76","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-2.1.0.tgz","fileCount":9,"unpackedSize":22867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkNZgCRA9TVsSAnZWagAAY98P/i12PauMZtmyVR29lYA5\nmdzCJGFXovpFvO6WHolNltfbLTot3EBQFm75xaraRjFoipqNAhPb8V4A3ATz\nBxA0QUPv+P7Yudu1FVbS6kcg+lEsZTmxdul8q/Oh7OEt7PfBY/dJIFR38OSQ\nbWEKWP9EfveWk1Quzn5vIMPXK+6rlPxlQjm31DrRJKR22THStO2bRLE23+lq\nQcwz1jHBo0keo7jxF/CQXLGndSib5T/W9zy2sWi6jBpL5QeBRVOIaW8LUaI0\n1Wv+6PkYi25EBqvlf9jmO8hEm3kL69Uhgg1HfaMrPyjvIOv42vycsbC02hqt\nnZqjCid5HXAwt46iASFmgPBCcEwmyeHOILMuvFbBUW3e+xnshu5lIfEpMteQ\n4ivOqcD/pttqi2pRTtQYTO3UOC3qqFRx6DVqTCgRfGIJjdOs1YWSpI+FRj/A\nYn/NslpFRSlsjdHdU+2+B/rnBsn4sRljuXtYwJ94+ayqJ3DmVlsvhIOkFMeZ\nMoQw77kvEjE3H3NlnXmyTJHx9j8UkLMYJJcpinVRC5Brt+KyP2ZOEJIhC24E\nCDiX1t9ogx0TpSGAw2c8/tpG12JNaiddHd/LsiMn1p6iw1OVBgR9BByQA20h\nZGgs52GVft/LMAY0dVfN37gncFLPJ3Pkb43J6nMj1Xaw57L3MlP0JBPgyRUh\n52gG\r\n=y7iD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAeDCJATOj08g/1DfEaietbbai8QNNfnFjDmXENjfF1pAiEAya5J0bxql0EpG3TAAt3bDq4e2orT50WFIRtwUMsueXI="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_2.1.0_1536218719572_0.40089031448116796"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"3.0.0":{"name":"pubsub-to-stream-api","version":"3.0.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.1"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.10","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.9.4","@types/sinon":"^5.0.2","ava":"^1.0.0-beta.8","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rewiremock":"^3.7.7","rimraf":"^2.6.2","sinon":"^6.2.0","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.0.3"},"gitHead":"c87b2d693a550d4219312c77577e367787f038b0","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@3.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.9.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-ZnVz6MVjlkAZWjwPjoN9WhKWliEA1Buacujb/1OV7AErnSwfmdrxl+wm8s1bwQdWxjV40EwDomhLoIZ2H9nKEQ==","shasum":"cf91a4f6632dc38a7d6f8e56707fc6859a21750e","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-3.0.0.tgz","fileCount":9,"unpackedSize":22939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbkNjPCRA9TVsSAnZWagAAPTQQAJtxUkmCtt936hht7NNg\nXg4m0lBou8ZFqAw98mQ1XFd3O1hsJQcZc6kWPJoRs8z5Sw0ITfilvN6y4MDN\nZzgc4U5SG4gfGsVpXjj35GjiUZQXObcDv6eQUQHer8KLgW1QUtgLWP32mpAo\nSR/IIhMLoaUFs0zLn0SqP+0rTzdsELYH73dmsjoeVd0ycnTT98uCUiEk24NC\nVzVji69KCFV79+g+ItMioY2sN8eX6+t19qjRjkSSYdZeozLmc0et5D2ocg2h\niR9L8jZgPegc/bZJEz7JFcqtc5pGI6hVsb4xpQpCw/chpFL+D2CG+C0vWoq6\n6QnXfXjSNJwDIQUFvT/TL6P0gIuOt0lUA8/YCRx3S13NHuHkjOOWLs+puvPj\nYxCOTFgSuh9CgJxZDL9YbqhpH2sQ73FIRKsIp+mRrlxRLUQlWkUj4FS2y9xj\nlj9leJzv6YJuT9ardvCbh0hIy/kRmaOp5FELueD/1vCs8XludZuSS+Ee2i9b\nAPLApofUzhknFau9YI/G0SUsOeB+QvH4mtQIoB7FZRcb+sl29rwaY1H1FFl1\nCnAKTTYIrTlrU1jgDmF7lCDsp+nuwiEEgnC/veYPneo2NQua/lkTgAVB2yKi\nohsdzlKmGbuF6ZVGHR/XD9wW/HUjwv7/yk1/Kgce8sQo27T5Ed9omCETIkZ4\nZklu\r\n=HwzL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFH/5MIPoPyCtFbIcaNEXGVtP8cQicg3nwFozTMu+ZnrAiEA//hpnyPTtUKwCjH4SKYpEyakP+4SHKHrGKj2usFEJoI="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_3.0.0_1536219342784_0.21097517729877846"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"3.1.0":{"name":"pubsub-to-stream-api","version":"3.1.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.10","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.12.0","@types/sinon":"^5.0.5","ava":"^1.0.0-rc.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rewiremock":"^3.10.0","rimraf":"^2.6.2","sinon":"^7.0.0","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.1.3"},"gitHead":"f19ff5a7ece1051a75bd53a9139f149716c1ab00","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@3.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-4BIhqSUtOFejssfJo1wuEJuoupDj1C44OeqUkoGFZgHbyUe5cBPQHKemN8KA9qmObCHRqlONYnR2HDBUZ5p88w==","shasum":"db21659e86474bb13458e1b2fa253f2db73c6c8c","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-3.1.0.tgz","fileCount":9,"unpackedSize":25862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzcyzCRA9TVsSAnZWagAA/NgQAISyzLIu1EG+B8lxxXuj\nXt1Mie5mm//6x4rOBeYrBXDYsUtX4objCT6P7ihqTkdMg3trOsCrhj4CKwan\nVkyeLnD9GfE//Wya1/YW+cz/TWObM0SZwDhhivC4D0gtdJYSTkBUxhgib3pT\nF4+uLqpYnPcXkiJSaM1Yh0wGJdaUHm2doMpsainf6cY2WJqn1dWb4GQsECDN\nqCD0T/54iPiIwWVosrYbKeIpy2GbWftYWmSdG5K9hADyeSqfb4ZyAvhWBt+T\nb8+7ZNs9yyX9FGAojNv+yYQduBOtH5u2WyR6jE31zZ7ZXUxZV3KzvBeWCnq2\nMLzR2S71tnKo2Z4TFPrCR9XTIFTet1RgtyskQwDORIRETlSXZiJl6TLwjcQS\nBqRzlhRvoWrkBLF6FHMei5I94x3Nz90NUu+sxd1uaT66HvO/ZcA0R7q97ZA7\nkJ7bZlnORH838P9j1cUgS5Wdk3UEALnQ4q22ErJMr9unc+NxtFvkOK3CbENM\nJgwJSZSpoe1t3wezSAqrMVnmqQb6DBzZzq7XUsyHiD4iPUVOVjMYUf7GfF1g\nS1LPTemPgYknCcSt3FdrwlURM+u8TcUSjmlQb/f2mRAS8YoV5H4v8QG/j8AI\nuXFjs5wPjJ2QSg/ZgOCdbPzKxWz7+lSbxDFUmtdhmK8GkE3pW//NL1fbA3cK\nt20w\r\n=XSX1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCySdQt0bEqZG7N5zzb74A4aJ9oTd0uNUau9vBLYnOpwgIhANyC037TB78ZWCA/RVBzCgF49llyVBnorZ4Dya0iVD8w"}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_3.1.0_1540213938880_0.3389819988271414"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"3.2.0":{"name":"pubsub-to-stream-api","version":"3.2.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.10","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.12.0","@types/sinon":"^5.0.5","ava":"^1.0.0-rc.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.2","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rewiremock":"^3.10.0","rimraf":"^2.6.2","sinon":"^7.0.0","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.1.3"},"gitHead":"b554cdec10b6f4f2c7151a076c99d6455703ea7e","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@3.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-CkfNfo72oPU5vP1Fg80mnrniXPQ8l+pIMnTo1s8vjJbrTBjnU3T5k/wGt1NLpiuayN351fUXYpaKGlvVEbS6+Q==","shasum":"f445b6c23e7800f8b7ed201ba34852be9a804363","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-3.2.0.tgz","fileCount":9,"unpackedSize":25992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzc+kCRA9TVsSAnZWagAAv2YP+QDcihjAMidhM2su+8dW\n0sQyxnhsbHYZCRxN12ag87p6nCzuQy42oRDkYNdSNaVoPd5mdL6WXBtawZjE\nfIb2DIdZum27L6ZS5KJYhLTsYLianReEND6CAzHzpPdFkrkFUFb2tIN7Vy4I\nRN4US5Nc5lUlwTgX0+Z9GLsBm72sYvdeKeT89vAXxsCYdTjQVMZyQKjbvRu0\n5ODGv9q7o9ZAU12b8v5h2CBn/fKEfrBedwlWc+KFEiqTkj3QselZTanUiZYe\nzQ1t/j7ncYlTFgdDMVjPgJnUIShQsG95otaMtJE2lelBQVcz7z3jiMx0GJ2x\nZCKRsINr9J+V3zE5FxpL1H5uJuaBMYPpLQf0HrqScgZ0TMziesb4d29aEGIS\nKH97ywbxgMLR7ih3H63gKG1lm8zc5YbnwRaGFkMoGj4SWf8t8zGgXFHO/jff\nbxM0RnfBIyr03k3P8TAWg6zFyBW3qnvIrTBE+sHIlyI6QErUmnuVAvZQNnc+\noGW3z5mfHismCPZCIyo5JW8amxCcdPajzURK/HkrJ36CX0WYT7c1oo+ZGZRu\nj7IbH7+jnfsqynyC9SZAzEyOY/d03aDLBrsiRCIU5yRI2hIVV682v+S09MR6\nZ8yr6oBrh89mAK9TqL1UaG4xmIM6zq0HKue2wO6wsWB1BiY6oBfm3YeEFg0J\nut99\r\n=PalL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICoLfFkLSGLOfaAbGjo3aqHtN2HiTxRE82fpEixKXG6lAiANo4Tb2ZbG55U/nIcrxcs8xGBLVDseWHrhRb34x0q+hQ=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_3.2.0_1540214691598_0.7454938775573068"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"3.3.0":{"name":"pubsub-to-stream-api","version":"3.3.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.11","serializerr":"^1.0.3","tslib":"^1.9.2","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.12.9","@types/sinon":"^5.0.6","ava":"^1.0.0-rc.2","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.3","rewiremock":"^3.12.3","rimraf":"^2.6.2","sinon":"^7.1.1","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.1.6"},"gitHead":"18079d992becc56e758ee24364c2cd9c4015fd49","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@3.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-Qxn5T7LurfF2mgXz2o1VhKSVj3wMlo/SyKWdQI3JIV+Wx/ILb76eJqjhzbU1K2AOIBHy0J1zgPC8MkG9pxudRw==","shasum":"cf5f568c05d6de88e7f148653d641f0ed203eb5a","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-3.3.0.tgz","fileCount":9,"unpackedSize":26683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8xnxCRA9TVsSAnZWagAASA8P/R1kEN+jX50JmiS6ToRo\npx4PRPk/eQtBmjLa5v1heuzPHV3ISGAEJTrXotjWxaFyYErsDPABFLFTueQ+\n7DIcOmdl+QyGd3XhIlcIptYU8tFmvg/xpOB/bGPdxwooOxlOu559J/boZh6f\nOu9rt2zvgGC73OTAB9rl33xiz/QMQJm+Z96Qsa4ARci5tQeeylxLc3kBRkdt\n3wIyRNqHM5uRIFPxv3zYqjQbjn07+pf9o9GbzOp7kYcMg59+hAGmwvG/LydH\nK5o9nHNSOtQHrGj90ui1hfBpOWRx7S5a6kH0Uo5tcaRf9IvZn6wWzi52cNtR\n24DA4QOviCxOdtCiXcbsTfXG6U0V5DICnGBr41x6COfdb6NVIVPY2674dg9j\nTXvIHxrXnifda7iXz54GStqosAPtAoq15eHdyapAbSd+m2FAcE1z7obqUC/n\nJ6nBiCqIXtNI3dB14q6VVFLJiOBAPVu5Yu36CL87Zli2TEvfWgLhsk5JKUgh\n0vMMOasxIyTZb99FSNGFtvjqc3lPXX7OF+/bbleFPdeGrEBJ+QZHx23lM1io\nRBmMZTmP0JgRUEwBiwkfrhZQCu8e3DZoT/xD3UR/DGVSgllzAcslMUIWWIP+\nddNi7If0qLsh9eYyZJpD5u24Ar5Czb1xrui56IJr78OHS2UsxFS23Gg9OkiV\nmUTX\r\n=cUgI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAwt6c6a1HVy5+iwVuuzOwIEtjIG8icKr50tlhv3IkbAIgOzX5YTQ7KAyVmWWxvlXPS8H24OHELfwbnSuOyXN4Erg="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_3.3.0_1542658544034_0.5274504372415469"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"3.3.1":{"name":"pubsub-to-stream-api","version":"3.3.1","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.24","@types/node":"^10.12.9","@types/sinon":"^5.0.6","ava":"^1.0.0-rc.2","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.12.3","rimraf":"^2.6.2","sinon":"^7.1.1","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.5","typescript":"^3.2.1"},"gitHead":"99ceaab8bb9c74dec5fea6fb7cf197c757f08694","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@3.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-7BtQIVrQwedrBttlAU0SMN3ECfc2W2cCcRQzQwbva5HmyqHxpA8ZjUKvp4NgRzy8TVQMU/0WAGRFbAgkXJS1Aw==","shasum":"0a50289f4d99861d9266dbfcf43772e476311a99","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-3.3.1.tgz","fileCount":9,"unpackedSize":26863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcB5WICRA9TVsSAnZWagAA5OgQAKNRsSn8LCY8J91JLmZJ\nPFDNUEQo8K7rG9XhNwqVzyYUG+pq6CwlJCQqcWOMyWWowBS4Z1e3edOkwf2v\nrFlts2CdHJIwfgOmLquyUFxS5L3Kw7TFqe0Mfhm90wL3SAoYTei2dLsKDXJk\n/5rRhyVnY/zw2oDVQemEdvUimTdNhVDVBw75HCwYgZTDWza8lmhB2ZN7L4ro\nQpaKqvE907t2sxdtzLKg3SyaCfbm5lkHk8Htc0KWQPqwTS0R3Kh5p+AgTgfe\nIFeFNEpGymI5KYgm01iiHifkcvSpK/+Q4u8yI3U+htjqgVhcqzrKb0EC40wS\nBULcxultI7Z8dq6wZgUwTaEFDcvZ0u7F/yPEpWaGQU14lQGIP+WNXJtB/0n8\nk/4X19b1b34ETW17sPQRz/qFBsqiPp/EL7/s6WGjCATKq3vV7q4P2sHaeXGV\nBayUKccklG/aukpG/5JkQSYqDsa9eMUV9s2eJObdhOFNzwMYVNefebalGXLv\nwJfBsSvFjDuFDUEwkc5brY5LJfByx7mr9e27+XReaTI1fUXsc/xdoevCq5kT\nQta7TpbFx0nbkHnMvHpLKeVUlnKYCowA03vUE3cJdu52F7tfnp2ZoHR+5MTb\nSR1HJ8V/u8ylDcDjk+OpiqOaH+WSdpdLue5S75jw6fGUpOcNZeUSoK8Ylban\nmufB\r\n=JHPX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICM7vFKBaMPJAgW5jsC7xFmTTD+usOJfpcVslq6gxeMHAiBP+Y8N+iQhUvWhl/O6YSoag4vghjgV5NPdKTUJ+gF7mw=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_3.3.1_1544000903870_0.7733613895642857"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.0-beta.1":{"name":"pubsub-to-stream-api","version":"4.0.0-beta.1","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.25","@types/node":"^10.12.15","@types/sinon":"^7.0.0","ava":"^1.0.0-rc.2","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.12.3","rimraf":"^2.6.2","sinon":"^7.2.2","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.7","typescript":"^3.2.2"},"readme":"# pubsub-to-stream-api\n\nIs a Node.js / browser library that converts _publish-subscribe / IPC_ - like interaction model into the _request/response_ model with _provider_ and _client_ parties involved. So it's like flattening _pub/sub_ interactions into a RxJS streams. It comes with type safety out of the box, thanks to TypeScript.\n\n[![Build Status: Linux / MacOS](https://travis-ci.org/vladimiry/pubsub-to-stream-api.svg?branch=master)](https://travis-ci.org/vladimiry/pubsub-to-stream-api) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/5tk7cwgldmsd5r8n?svg=true)](https://ci.appveyor.com/project/vladimiry/pubsub-to-stream-api)\n\n## Getting started\n\nYour project needs `rxjs` module to be installed, which is a peer dependency of this project.\n\nRelated source code is located [here](src/example/readme), can be executed by running `yarn example` console command.\n\nLet's first describe API methods and create service instance (shared.ts):\n```typescript\n// no need to put implementation logic here\n// but only API structure definition and service instance creating\n// as this stuff is supposed to be shared between provider and client implementations\n\nimport {Model, Service} from \"pubsub-to-stream-api\";\n\n// API structure\nexport interface Api {\n    evaluateMathExpression: Model.Action<string, number>;\n    httpPing: Model.Action<Array<{ domain: string }>, Array<{ domain: string, time: number }>>;\n}\n\n// channel used to communicate between event emitters\nexport const CHANNEL = \"some-event-name\";\n\n// service shared between provider and client\n// there is no logic here, but channel and API structure definition only\nexport const SERVICE = new Service<Api>({channel: CHANNEL});\n```\n\nAPI implementation, ie provider side (provider.ts):\n```typescript\nimport ping from \"node-http-ping\";\nimport {evaluate} from \"maths.ts\";\nimport {from, of} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {Api, SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\n// API implementation\nexport const API_IMPL: Api = {\n    evaluateMathExpression: (input) => of(Number(String(evaluate(input)))),\n    httpPing: (items) => from(\n        Promise.all(items.map(({domain}) => ping(domain))),\n    ).pipe(\n        map((values) => values.map((time, i) => ({time, domain: items[i].domain}))),\n    ),\n};\n\nSERVICE.register(\n    API_IMPL,\n    EM_PROVIDER,\n    // this/3-rd parameter is optional\n    // if not defined, then \"EM_PROVIDER\" would be used for listening and emitting\n    // but normally listening and emitting happens on different instances, so specifying separate emitting instance as 3rd parameter\n    {\n        requestResolver: (payload) => ({payload, emitter: EM_CLIENT}),\n        // in a more real world case you would extract emitter from the payload, Electron.js related example:\n        // requestResolver: ({sender}, payload) => ({payload, emitter: {emit: sender.send.bind(sender)}}),\n    },\n);\n```\n\nNow we can call the defined and implemented methods in a type-safe way (client.ts):\n```typescript\nimport {SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\nconst client = SERVICE.caller({\n    emitter: EM_PROVIDER,\n    listener: EM_CLIENT,\n});\n\nclient(\"evaluateMathExpression\")(\"32 * 2\").subscribe(console.log);\n\nclient(\"httpPing\"/*, {timeoutMs: 600}*/)([\n    {domain: \"https://google.com\"},\n    {domain: \"google.com\"},\n    {domain: \"https://github.com\"},\n]).subscribe(console.log);\n```\n\nAnd here is how API methods test structure might look (we leverage combination of `Api` model and TypeScript's `Record` type to make sure that tests for all the methods got defined):\n```typescript\nimport test, {ExecutionContext, ImplementationResult} from \"ava\";\n\nimport {Api} from \"./shared\";\nimport {API_IMPL} from \"./provider\";\n\nconst tests: Record<keyof Api, (t: ExecutionContext) => ImplementationResult> = {\n    evaluateMathExpression: async (t) => {\n        t.is(25, await API_IMPL.evaluateMathExpression(\"12 * 2 + 1\").toPromise());\n    },\n    httpPing: async (t) => {\n        const input = [{domain: \"google.com\"}];\n        const result = await API_IMPL.httpPing(input).toPromise();\n        t.is(input.length, result.length);\n        t.is(input[0].domain, result[0].domain);\n        t.is(\"number\", typeof result[0].time);\n    },\n};\n\nObject\n    .entries(tests)\n    .forEach(([apiMethodName, testFn]) => {\n        test(`API: ${apiMethodName}`, testFn);\n    });\n```\n","readmeFilename":"README.md","gitHead":"d228df658bd2ab12070371edd5275c74ebd37b5e","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.0-beta.1","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-q9nDfm0FKVl7HqKet/ErUQY/FErO5qv1HhdtsfURkYoTM36H6mClsCi+sTdi+excZ98xDW+TkXN+FmDk4cZo9w==","shasum":"ea62c8d1e7408bfc12c9d26959eb97049be419e9","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.0-beta.1.tgz","fileCount":9,"unpackedSize":29277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcE0iWCRA9TVsSAnZWagAASrwP/1sFawG076G7AHRNaAWE\n1i+iI/+pZTGdIRah+CSJi6vVwNgv7/9yCLUDR7PQSfQVEjbLz4qiAOh0UDeE\nzvrbZwwZ7pxYwiQ/j9nTE3cm9yVahk04Ko5IzLDO9z/Yyt+xcu7ACvfUeMTM\n+wGOUqLrKoHyEhs8ChMxh87yGQ84BqI4KhCZinooOjqDmWA/Hrl6wfWfPffW\ngtI31dNSH/U06Cav72OZT1kvdDFiED3tN9M23Z7RODaqiSdgko41oy1wksoT\nk/QaugEwzvi8eW/opTbvOqSp3wG+zGP4eVylVhwKF7gBiaACeEPUTtrT8Ii9\n2GLFJuM08HwPAfjEnhc/yQY3lQNuC6LNHGx0o9xPnhmFVdDlDVuT9OEthbMu\nYpcuqUosVWErCGX9umYxiT6Arml7fGELhrAotintEGR3PP1S/C1zyc/Fa477\ni58wPOh0OHESSXVBn9BMcNs3vliDthUiBqIKhuul4XAztpAOdb/Y1dJwJDc1\n339n/d24hCi3aPpEWTPiR5KQ6kJ+bbPZtuinACtzCsl0GR+SlAL4mK4nWdnz\nGGdH1XQWu2qIySqafCE1QrtFhKOptXaBAr53HC6HXA1VmNNNxUZTK11GRLF9\ndSBWvx6qNxku8X+pOpAZtZpnWrK8dXnpD0T2+dZZcov9qyct+M+6B6HbHvhI\nVw15\r\n=Af5F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiaavpSElQe9Gzs+PmDP+j13O5TPEMiyS9w4KAnuh2dQIhAPQvSCKlDNQ8D0EjMxnvVFeFmaUQxZuQpg5V6suHzsF5"}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.0-beta.1_1544767637538_0.35385007626951026"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.0-beta.2":{"name":"pubsub-to-stream-api","version":"4.0.0-beta.2","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.25","@types/node":"^10.12.15","@types/sinon":"^7.0.0","ava":"^1.0.0-rc.2","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.12.3","rimraf":"^2.6.2","sinon":"^7.2.2","ts-node":"^7.0.1","tslint":"^5.10.0","tslint-rules-bunch":"^0.0.7","typescript":"^3.2.2"},"readme":"# pubsub-to-stream-api\n\nIs a Node.js / browser library that converts _publish-subscribe / IPC_ - like interaction model into the _request/response_ model with _provider_ and _client_ parties involved. So it's like flattening _pub/sub_ interactions into a RxJS streams. It comes with type safety out of the box, thanks to TypeScript.\n\n[![Build Status: Linux / MacOS](https://travis-ci.org/vladimiry/pubsub-to-stream-api.svg?branch=master)](https://travis-ci.org/vladimiry/pubsub-to-stream-api) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/5tk7cwgldmsd5r8n?svg=true)](https://ci.appveyor.com/project/vladimiry/pubsub-to-stream-api)\n\n## Getting started\n\nYour project needs `rxjs` module to be installed, which is a peer dependency of this project.\n\nRelated source code is located [here](src/example/readme), can be executed by running `yarn example` console command.\n\nLet's first describe API methods and create service instance (shared.ts):\n```typescript\n// no need to put implementation logic here\n// but only API structure definition and service instance creating\n// as this stuff is supposed to be shared between provider and client implementations\n\nimport {Model, Service} from \"pubsub-to-stream-api\";\n\n// API structure\nexport interface Api {\n    evaluateMathExpression: Model.Action<string, number>;\n    httpPing: Model.Action<Array<{ domain: string }>, Array<{ domain: string, time: number }>>;\n}\n\n// channel used to communicate between event emitters\nexport const CHANNEL = \"some-event-name\";\n\n// service shared between provider and client\n// there is no logic here, but channel and API structure definition only\nexport const SERVICE = new Service<Api>({channel: CHANNEL});\n```\n\nAPI implementation, ie provider side (provider.ts):\n```typescript\nimport ping from \"node-http-ping\";\nimport {evaluate} from \"maths.ts\";\nimport {from, of} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {Api, SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\n// API implementation\nexport const API_IMPL: Api = {\n    evaluateMathExpression: (input) => of(Number(String(evaluate(input)))),\n    httpPing: (items) => from(\n        Promise.all(items.map(({domain}) => ping(domain))),\n    ).pipe(\n        map((values) => values.map((time, i) => ({time, domain: items[i].domain}))),\n    ),\n};\n\nSERVICE.register(\n    API_IMPL,\n    EM_PROVIDER,\n    // this/3-rd parameter is optional\n    // if not defined, then \"EM_PROVIDER\" would be used for listening and emitting\n    // but normally listening and emitting happens on different instances, so specifying separate emitting instance as 3rd parameter\n    {\n        requestResolver: (payload) => ({payload, emitter: EM_CLIENT}),\n        // in a more real world case you would extract emitter from the payload, Electron.js related example:\n        // requestResolver: ({sender}, payload) => ({payload, emitter: {emit: sender.send.bind(sender)}}),\n    },\n);\n```\n\nNow we can call the defined and implemented methods in a type-safe way (client.ts):\n```typescript\nimport {SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\nconst client = SERVICE.caller({\n    emitter: EM_PROVIDER,\n    listener: EM_CLIENT,\n});\n\nclient(\"evaluateMathExpression\")(\"32 * 2\").subscribe(console.log);\n\nclient(\"httpPing\"/*, {timeoutMs: 600}*/)([\n    {domain: \"https://google.com\"},\n    {domain: \"google.com\"},\n    {domain: \"https://github.com\"},\n]).subscribe(console.log);\n```\n\nAnd here is how API methods test structure might look (we leverage combination of `Api` model and TypeScript's `Record` type to make sure that tests for all the methods got defined):\n```typescript\nimport test, {ExecutionContext, ImplementationResult} from \"ava\";\n\nimport {Api} from \"./shared\";\nimport {API_IMPL} from \"./provider\";\n\nconst tests: Record<keyof Api, (t: ExecutionContext) => ImplementationResult> = {\n    evaluateMathExpression: async (t) => {\n        t.is(25, await API_IMPL.evaluateMathExpression(\"12 * 2 + 1\").toPromise());\n    },\n    httpPing: async (t) => {\n        const input = [{domain: \"google.com\"}];\n        const result = await API_IMPL.httpPing(input).toPromise();\n        t.is(input.length, result.length);\n        t.is(input[0].domain, result[0].domain);\n        t.is(\"number\", typeof result[0].time);\n    },\n};\n\nObject\n    .entries(tests)\n    .forEach(([apiMethodName, testFn]) => {\n        test(`API: ${apiMethodName}`, testFn);\n    });\n```\n","readmeFilename":"README.md","gitHead":"e11f2b4a0ad3c47e0f21eb02fc50a52ed211dec5","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.0-beta.2","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-56tMo+lPQxOkpGHDD/9fhYQPq7Nm2/jIbV/CssFebrmS5kx00qq+e1mUE36GMb9BVM5GxDkDHqSGtgSRPB759g==","shasum":"e1b186264de4b7b64a7ad1513fbb2b1a3a2351ce","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.0-beta.2.tgz","fileCount":9,"unpackedSize":29408,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcE6uxCRA9TVsSAnZWagAADO8P/0lPPwAnKdBUt9Dlxux+\neBG409QN89LHB33Z327ldUGm/koxPFtAaNAoQ6QLVEwEgUN5pCpL2Za7/I76\nnqkKkURU9WD1H++YSr3L0LmmIJj8b8jxuevRuWhOsWfchzJ3zwBJayaOqxXn\nC6Mxb/yIpo+l3fl5i9Nr7osE1LI6ob/ZPLk1tQn1KSCGZ3X0+hcB4hiGPUl+\noWf2vn6AjekqzKIxqSEvcX/BnGpxEOaC5R53yfBRYpHQ1TjrXb4m//rfR5Xw\nJy+C6F5V7aTcid/PiX/dfb4qgHSMlO2Vn6/eH+NsTBAx1SQ7aTB86oqZgvB+\nXbIRYOyvUeeHckF0kTpas0/XxDy3Ui65ZOT+e5pKwEp0yGr2OLnu4+b1omKI\nXsrcmMrmx6ZKZotH1XTMev2iPMvm/vbB4FUnzMG/bg9GybwlDa73cy57G3AS\nm8DNPOTDoJYSqyPQfPiMwNu2S4Q3/qRLK98WhcTmKnEBtDOSAo1hz0dMM8OO\nzEzHW3nqrKj5d0MhSoZHCu1U46d6RXRk9Rkv+ZqEkT4+yYTANGLQpfXnnuGD\nDCC1CHmnS1WxGBCOmr1CaqC5MpZteoEEA6JcHKS831hix4PCc5kg/h0EFywo\nQpvNAB5vjDpz7hSRzhymH6SAPE++rzsVgoIMPzg4sCBxZlD8EtT9KsrcEWCz\nNEyz\r\n=GCeB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEZALxK2erEqACys0hII2wyw5pl2NFYf7CjpjE70h1JAiBuH5du/MOw/51Yj9zi+SbANGrF+rho9fCGP6USaTgAUQ=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.0-beta.2_1544793009159_0.543741460281284"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.0-beta.3":{"name":"pubsub-to-stream-api","version":"4.0.0-beta.3","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.25","@types/node":"^10.12.18","@types/sinon":"^7.0.3","ava":"^1.0.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.2","ts-node":"^7.0.1","tslint":"^5.12.0","tslint-rules-bunch":"^0.0.7","typescript":"^3.2.2"},"readme":"# pubsub-to-stream-api\n\nIs a Node.js / browser library that converts _publish-subscribe / IPC_ - like interaction model into the _request/response_ model with _provider_ and _client_ parties involved. So it's like flattening _pub/sub_ interactions into a RxJS streams. It comes with type safety out of the box, thanks to TypeScript.\n\n[![Build Status: Linux / MacOS](https://travis-ci.org/vladimiry/pubsub-to-stream-api.svg?branch=master)](https://travis-ci.org/vladimiry/pubsub-to-stream-api) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/5tk7cwgldmsd5r8n?svg=true)](https://ci.appveyor.com/project/vladimiry/pubsub-to-stream-api)\n\n## Getting started\n\nYour project needs `rxjs` module to be installed, which is a peer dependency of this project.\n\nRelated source code is located [here](src/example/readme), can be executed by running `yarn example` console command.\n\nLet's first describe API methods and create service instance (shared.ts):\n```typescript\n// no need to put implementation logic here\n// but only API structure definition and service instance creating\n// as this stuff is supposed to be shared between provider and client implementations\n\nimport {Model, Service} from \"pubsub-to-stream-api\";\n\n// API structure\nexport interface Api {\n    evaluateMathExpression: Model.Action<string, number>;\n    httpPing: Model.Action<Array<{ domain: string }>, Array<{ domain: string, time: number }>>;\n}\n\n// channel used to communicate between event emitters\nexport const CHANNEL = \"some-event-name\";\n\n// service shared between provider and client\n// there is no logic here, but channel and API structure definition only\nexport const SERVICE = new Service<Api>({channel: CHANNEL});\n```\n\nAPI implementation, ie provider side (provider.ts):\n```typescript\nimport ping from \"node-http-ping\";\nimport {evaluate} from \"maths.ts\";\nimport {from, of} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {Api, SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\n// API implementation\nexport const API_IMPL: Api = {\n    evaluateMathExpression: (input) => of(Number(String(evaluate(input)))),\n    httpPing: (items) => from(\n        Promise.all(items.map(({domain}) => ping(domain))),\n    ).pipe(\n        map((values) => values.map((time, i) => ({time, domain: items[i].domain}))),\n    ),\n};\n\nSERVICE.register(\n    API_IMPL,\n    EM_PROVIDER,\n    // this/3-rd parameter is optional\n    // if not defined, then \"EM_PROVIDER\" would be used for listening and emitting\n    // but normally listening and emitting happens on different instances, so specifying separate emitting instance as 3rd parameter\n    {\n        requestResolver: (payload) => ({payload, emitter: EM_CLIENT}),\n        // in a more real world case you would extract emitter from the payload, Electron.js related example:\n        // requestResolver: ({sender}, payload) => ({payload, emitter: {emit: sender.send.bind(sender)}}),\n    },\n);\n```\n\nNow we can call the defined and implemented methods in a type-safe way (client.ts):\n```typescript\nimport {SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\nconst client = SERVICE.caller({\n    emitter: EM_PROVIDER,\n    listener: EM_CLIENT,\n});\n\nclient(\"evaluateMathExpression\")(\"32 * 2\").subscribe(console.log);\n\nclient(\"httpPing\"/*, {timeoutMs: 600}*/)([\n    {domain: \"https://google.com\"},\n    {domain: \"google.com\"},\n    {domain: \"https://github.com\"},\n]).subscribe(console.log);\n```\n\nAnd here is how API methods test structure might look (we leverage combination of `Api` model and TypeScript's `Record` type to make sure that tests for all the methods got defined):\n```typescript\nimport test, {ExecutionContext, ImplementationResult} from \"ava\";\n\nimport {Api} from \"./shared\";\nimport {API_IMPL} from \"./provider\";\n\nconst tests: Record<keyof Api, (t: ExecutionContext) => ImplementationResult> = {\n    evaluateMathExpression: async (t) => {\n        t.is(25, await API_IMPL.evaluateMathExpression(\"12 * 2 + 1\").toPromise());\n    },\n    httpPing: async (t) => {\n        const input = [{domain: \"google.com\"}];\n        const result = await API_IMPL.httpPing(input).toPromise();\n        t.is(input.length, result.length);\n        t.is(input[0].domain, result[0].domain);\n        t.is(\"number\", typeof result[0].time);\n    },\n};\n\nObject\n    .entries(tests)\n    .forEach(([apiMethodName, testFn]) => {\n        test(`API: ${apiMethodName}`, testFn);\n    });\n```\n","readmeFilename":"README.md","gitHead":"300368acc01ef8685a531c140dc2351951b8a181","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.0-beta.3","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-ONVeqIpltfbKSCw/PR5XgH/5m6n/hO+vw5XetQoIBqIhuawz+iT3TZL6+h5LBoMH0yUBQdB52+n7odB7o2mLHw==","shasum":"5868eae92ef61de4824c8506c2b7ee304b4ee82d","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.0-beta.3.tgz","fileCount":9,"unpackedSize":30529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNm2SCRA9TVsSAnZWagAAc/kP/A934Fni7G2V1Uhi7tSl\nPyJ2F7fiAwrGpaxYYfsOkCfF7YvmlCDdPBTxcXTLm37+lZ9hifUQsJG/fnrk\nSg72rsF1CFN/nUPITpks8bUhppV3jB+ZIXIXOhZ5Q8hptJ9UF7LT9ti8CObs\ncqpUv7ucX/UyRMf94Rjt1iXJSnhQj4w5doT+YBSwPiwLm9gfFbl/lKaj1aS+\n0Z7Q36BkHZpTq5GvJp4K2Bv8BabOccvUNB9CC1K0US1sY0AGMOrVqK52E7qc\nND8nuQ7u2z0sr+hPDIppv4DQGX26s83i+z02KDxXCHhXiF/Vso7HNyQa530j\norXc2Gx7LztXqDsmQWPopOMLzcLgPUXzUKHNA+6DcJv09HKoKC/64LkB/V5S\nL0MmfKlsY0M/a60uVL0z9yZE59ASLX0ubCuU4Ko0wozaaTUahEIEOqFAF96b\n2HHlAmFXhhgp3TRzLWj3YHOn39k6VxSrKkSHNKdM6rTQFqhcm1dcJxwNba1Q\nTEaazFtTkQxrLgoBdxelWAq+q3YjsBpsa90RJ/p561u6FE4GqvCojbR+t+iV\nDU0rVVin+rnNuPxVRWQFIJJ5aAYH7ExxSsZD1ckq1ybFYGeoG2rSchqQH25O\nbalVXPAiftnreNjFOCacRCIFBCjgGRMPY9aZqZYCCGKZRmWZdk7qt312OUWt\nkuGH\r\n=7e0F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIARYjSNCJmowdiwjJmExS8eUT9fEIPonTUcooPwnl7XYAiAqi4GFOscsnUaCtSIS5zKTBhBi9zYga9X/4Q8OFORBZQ=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.0-beta.3_1547070866138_0.8512210905391855"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.0-beta.4":{"name":"pubsub-to-stream-api","version":"4.0.0-beta.4","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.25","@types/node":"^10.12.18","@types/sinon":"^7.0.3","ava":"^1.1.0","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.2","ts-node":"^7.0.1","tslint":"^5.12.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.2.2"},"gitHead":"3918369f222e65c4afb81649e15308189285ee8b","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.0-beta.4","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-j8CC6gZ0qcaHbsq7TafHpG2s5BTH0Gpn3/stxCpAY7RYyeszD8vKtTn5ifJZ8DYK8C+GLal8crHo17EWhktdtA==","shasum":"17ebcddcd345d631838ad318659e08393c7f2e43","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.0-beta.4.tgz","fileCount":9,"unpackedSize":30194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPOm5CRA9TVsSAnZWagAA9eYP/2yjqkV3anmyIld4mU0P\nxqSo7CAriZrOhOI/LnSBs/un3zvYhUQSfANe/HG/f4KY32ROdVUwZU9CfJqA\n3EE7PTYyfaoCY++cvc2IesfjTFyxlkuraUUD2gzKp34UiNoCpRtx0X1pj+Ra\nM1Xi0D7xaDzBtDC+otjmOLwx11qTPshSC4GLZSjA3/+GJq7Zi8E1gxEi3xXQ\nW3qM9dipLIbJy2Y5PL0FVMMkVE+C6d2i3bF4N7ju2Yec3IfSwWvLDZ0SYyWF\nFOS5DWfECQrPaR659JD/BBAoQRp6y0ap1zF/7kcKlO2MIo92KSawND2DPJg0\nmiutJ2sLpA2yzKogLJ3Q1SjkKbMzpgEWSL9nf+r3rcQ7cygJPGMjrmJUz054\n3LOPaTXtl5OQy1mYM3NIuHkXkzL07MF7BXc3P3q90Hn6c/tb+NiHqNOkXgsU\nJRtgWikhzDn/Jqg2BYLzHyLgR3jBBMvrxPfg1CkFRPc3EztEZnjt1xFuF9Zb\nsENyOhh8hDdXZDTGBM4IN86mT15Kk6MKwxTohGAL+FfETWFTvHslO1lmyCrY\njOa5IceyVgbU6/SiCH+OAlhaFkKfKdN4kcjn4lNthCJi70EwbC/Uni6P/Adn\nAiRlK2nxHW35UDkMmlqOM6WGjY0dPcWxGo+let1h/nC92BRHH6HhWOOmhvBV\npqkG\r\n=L1fy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF5OE4l35hiN27KNlRlxjPuezf7Hfi+vkjOmLfQP/IAeAiBfhnPZZLGYgfvOXvpl6EetWA7kddlkZtUKQcpLzHZiPQ=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.0-beta.4_1547495864695_0.668347658932213"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.0":{"name":"pubsub-to-stream-api","version":"4.0.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.25","@types/node":"^10.12.18","@types/sinon":"^7.0.3","ava":"^1.1.0","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.2","ts-node":"^7.0.1","tslint":"^5.12.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.2.2"},"gitHead":"3cddafbc385d5f79537a096411b672348ba4f126","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-BnPt4Cf/gYzgOiQ3WMWAbtESglwm3js+y33/bv1OZqCkwp3us3O/IleGvWi0TKTJl29PuLOoOwBMuzK1gti/ZA==","shasum":"01228e9e5a6f48cab32587ed37c682fdc87baf37","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.0.tgz","fileCount":9,"unpackedSize":30187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQIh8CRA9TVsSAnZWagAAwOoP/2GZu/t1vzyqy0QZKugb\nNZfJqozEhVm4kgDhz18kJUlPAujOaiKwwThvd4wGx7XUtzJP5qg0M5MIC+lu\nLpi9+oApBYLKpvcWtwCVSgvyHhn+tGtxwQgKBLlUWmGEnmACvss3l2N1O5Bv\nocskGZWLySLLvgg1g8uTJ3rzJxCAc/8cze76vqHh07RzJqlDXHCeBktIJtXI\n/1/V9lbE64hWXqD9AJYm9rdWCljNWzz8a35AKAOV8pe0salW/fEoR4FXawKX\nPS2luYG3LWgwGlG1Ks2PYRBUqZG1bocM2JKRIn2CLWoGE4Xyg5fCGY1BhVzC\n2K6/bd+t34NpPAyucHIgh7C19PrAqRV4Nwu54ODMz3gEvP56Jkdu+x/cMTbM\nP60WdHFXufzjuHxewgEQV3loXcIueJ4V13WQCsXaeYoToIvV4+ZoKSmpZyUG\nwTmvBGL3M7vitBLK40llPEi6CHjaJ9kXDagxxWS5IQCvjk1lYrDZ6DROh4hn\nZKc9hgyw73m4Y+aX9Dl4WelLu+Yf2UplAkQ8HbzI5cxyzVJMwDenl/Or29CQ\nYTrLDU/2Ua8/mLKRL0uc4UlGt6r3/KbjVZaBILbvpBMDVz2iNLd47/h5u3oV\nuk/R+7Scj8SwZs6ff112OF1PYyEkYeOqBH7QU0VEuOsDZb3lYmprmAJQWcqK\nGTi9\r\n=CPX6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGeEFNl+5oPHRNyS1tx8qcov7Uhf810jFxolqaUFxZ1AIhAI54KBG5N1gY8I8/Ul9any9tW/IWovhyAuNbz2FwJBZE"}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.0_1547733115366_0.6914926581423642"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.0.1":{"name":"pubsub-to-stream-api","version":"4.0.1","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.26","@types/node":"^11.9.6","@types/sinon":"^7.0.8","ava":"^1.2.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.5","ts-node":"^8.0.2","tslint":"^5.13.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.3.3333"},"gitHead":"74f2cd32d53a174a4893aafa3ee23316bc50b7f5","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-3eZywEPBWskgnJ+ZPRS3A8hJJxa117C/YrIk1D0MuP3/dgMGFxtpzjK4eL0aw7ljbPzjeKsmt40rV+/UOMJ33w==","shasum":"f799a34744536f40992465e8e4c740b34b7a5500","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.0.1.tgz","fileCount":9,"unpackedSize":30691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceU5MCRA9TVsSAnZWagAA1QsP/059pkf4Oo07vGBkNa07\nM3YJcJGkpSM8EDsJ/V/fdzNGY2yGmwPzQFF1wfpHW9VPrVa1xf9sILJt5iBp\n4Gxle81It0OHygcJDi44tgAd7zzxq35Ckn1/5z3c2A090o2kM+pQUxfCu/Ji\nXS4WPVzHMmeGMoEzUtsE+t/oSz1zwFOMEn+cQh+uc7gjznowrlDt1dVSBEpB\nxgpCw03/ki0iOmvy/233WdCxGgrs3LxiO+unIbvUYq8lN51dbCFei4q3D65c\nNNYFqqleJD6XmbjZb2pBtbk4MZgRm4SgWZ4cmdP7PbSXWo/4QpNZ9i3p+EsQ\nAxFXCcjjRtiTiO3CM04m720f3qGSZDeCu7z5Pe2HdflCYLqGRkBajFcZtfgi\nDiLujYg6ZRqrAUI1XgOzcrdAJmQfQA/19pJqtjZ4fdUIMh4iLwsAR2yw43V0\nx+e277bODn/Bbl7DkFTpDrazu9Ga9VCxJ8wxNV2cLhZMYh2XFKK7HXRv/P/j\nxM/7LV7Djjd1v6K75Xsq4ujTklgA9mklFcpfJiYmYiASH/cMoubMfdKTTMJj\nP1r913qldZnQ/sA/rFJS/lpA+Z12QkY+gtys56wO32eIoBbn+ePuYI+TbfgL\net2rx/1YJJeiVS5hzT965XVC+RmY5PIvTLR16AHD+EIH7gO+08kyaZ8ga0p8\nHuWL\r\n=Ghl2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMxLRkV7rDeRFsNXkB6Z8cn+Vavl3h5/HEXut4jncXSgIgDKT4N7FsyMpWwm/JUbDIEy7fK936y+BqB2d/QzcNWwA="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.0.1_1551453771680_0.5966697087076847"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.1.0":{"name":"pubsub-to-stream-api","version":"4.1.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.26","@types/node":"^11.9.6","@types/sinon":"^7.0.8","ava":"^1.2.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.5","ts-node":"^8.0.2","tslint":"^5.13.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.3.3333"},"gitHead":"d04a2f0b011500e62403782e2f04cba164557064","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-SklTvAf7P2x2/GISxR7EOCL4zvf6XzChaCsrx59HtP8tpLMqzM2aU7fHHi6t8r9UTHHK0oTSYjAr4z8XtQ/DLA==","shasum":"4ad5dc75ad66282ae5dfa147b18c2ec3e481d8cc","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.1.0.tgz","fileCount":9,"unpackedSize":31002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceVgQCRA9TVsSAnZWagAAc2EP/3DSUUoTzXlGXBF+5EOn\nt5buhIHDX1aAyd+HMRQXemrBF8A+Xjw7RQJcS2cul/2p7a3edvWsmRW6fCCN\nGrQQxNpktthNqAnAvInZ0crbM3VqCwqb87WTyIgxPtPP45lkt6RsaJoioKGp\nrKz9huQP3PDXrVVIqwqLNO118GUhvubnMKs1YWjUZvm7t6kkjT/fYRqXd/nV\nxCvbollnFodgwLumXsn7eANLdz2R9GioFdSVk+EiXLT5jvBkNniYGS3I83DN\n+hLYngNxD6zO4nXSeIfZinKYgjxLg9ExfIZWfCmLIP/xMU9KNYi3N7Mce2kX\n3QtTLqnyI1kgMFmtkYKcwxt/AfLuD1cw6SXz7ZgUipV3/6HTHDO/T12/bn9P\n9YHii7YCQvjC0z78Airli1If+Hb6lef1IZCdZQJ8IhT4mZbfJRJRs7giIOwo\nxFX04rfabjFPP594VFnL5pqymFz3+RacALtrgu5+dZXGO1u59LWNG8gDsVJP\nptglNjwgx9W04eCjhHSin8dOO7w/syA1p0KClkDfwL+cIqmBDC67k8l6ouQn\nitBVg3nUkB0L7iwYvabfR2Z6/rC7QBNukYS0n0g5PBX6xzylG3Z6zDMOBaA0\nRxp6kVoAnykYaprtC2kcawiI9Uueecu5I3vDXd5y96rvopP3x3UEspv/hdXg\nRF9C\r\n=UPit\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoaTdSg1SWXvCW6ENmWXKiHm0yLDC9OCtfPJ+59Fmb8gIgDr5W4JtH9yqrTIJo/IyY7AOEStcSG2j8TnCft5Q01r4="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.1.0_1551456271628_0.14803423148939854"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.2.0":{"name":"pubsub-to-stream-api","version":"4.2.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.26","@types/node":"^11.9.6","@types/sinon":"^7.0.8","ava":"^1.2.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.5","ts-node":"^8.0.2","tslint":"^5.13.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.3.3333"},"gitHead":"8961307fc2b49990739d4e8012fb192489b08f25","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-djr6Lcebi5CbnqKOQpCd5oXu02m0rSNIIJ98WY6dKVU/2+OM8jua/pU1rLTyD09eOLTD5Tm1ST1HFV9D+sSY3A==","shasum":"41207e5025203639faf4facc4b5c0cbf6a354a60","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.2.0.tgz","fileCount":9,"unpackedSize":31286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceWQACRA9TVsSAnZWagAANL4P/jwQwJ/EUB9qYjwTiKBf\nIKefa12CU4xMzmkcg0Z/gsThu+vTglSzVUqafdV42/JdOjm+d2zs3R3e/3vY\n1ia7l/LInYHGPo5JMaP5V3ssxP8N/sSOrM1jo7mW0NEr6vPgYrDiZDjZTIdS\nr+cyT8dU9YP/YwIvKA8hbkiAM022INpeTJpo80dOfnkxhN8e56XM94N6VF7m\nyAMHlWCtYJr9dWZQWpWxobkRpnrOiYlWbqgaJbD0oS1wb2/gxBnbu+BUrQN/\ngwdOjvrL6dENEUnlxXxrWGhIjuYYkjW1y3SUyta4aO1NnPSQEqnUnz281NA5\nhOyCtx5yLBBBCT5Mi/+4GhaBXHyOvEXOTfN+myHBJlHYH5alhGggnzG/Npe2\nos2R6ZRD3x+39AjVUF3Mxou0j/MCVQNZD6A3Hmq4VKRLQ9J9S2f2tk32nSbx\nJCnMJzly6IhkOBUfGAtNq3u+RP89On7ziLDQ3d53qlzL4gPT3Pck6Asm3g3d\nQmsg8O1GQrdHUygm6OQZ4L5SalvhhDiBD+0ispqhoOreKCNwhi7YKi/jpbVd\ndWwpA3+Co3VVlF31qrIZjN/f+ZOwRmGBfsyiAACqqnDZmAIkwDloq15kfJFi\nMgSrCeJZf0W5Itgw1HHYUpZMMD2EqdR0YkFXghxTLIMyDy/EntZWb5UQ7uQm\nMJn8\r\n=UrV+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBOffwdKdLtTkE67V+EbeK7QjNJwo5P+fMLvBS9j4cwZAiEA78j+tnhLI01FxEZTde3t80129YNFOGvlnRGz8knNxZQ="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.2.0_1551459328130_0.730878887851983"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.3.0":{"name":"pubsub-to-stream-api","version":"4.3.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.26","@types/node":"^11.10.4","@types/sinon":"^7.0.8","ava":"^1.2.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.6","ts-node":"^8.0.2","tslint":"^5.13.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.3.3333"},"gitHead":"70874ac13743866fccd96975be9a76485657699a","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-6VocKY4xvf5ax2J460R8BfMHjhPbX24gsZYDAB8tK5yR7MQxcLOCbMPFvu9rwlg4FqOaBXBUK/LiMiW0RcOLOg==","shasum":"094fd7259b2b0ca276da7681f63b152ba716c2ac","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.3.0.tgz","fileCount":9,"unpackedSize":31857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcen7gCRA9TVsSAnZWagAAwWIP/iJeCvX88uUH3Zj2d3uS\nuMUla646umOoSVWch4BJsdn/JyZyy4FxifKo6kdQy4Uwuc3fGlW1G3z83Noh\n4QKDEJjybGji3j/hag5f5kFyPGRLuHOhCSv21DQDh3Qur1U14Ws/9Vk1Ekxj\nVVMptfKmpzxZkHNu8wjsa32+EDXzzpClox7ZQc+TYCvusDsn2VzuNL7Jnc1L\npOd9RboKYottGOZf+7gagy9H+nv9y2O1yW29Y8yiEhEA3uxn9jMOVje4afXn\nd+q6RK1bJo/Q5pSXZOdH9BFT6wWzjwJoYM8MfJ57h1EEkm2UuLIqzLpyjZdz\nCI0qmYyJBlMGc2shO3rdw/qJ/XL2C0VEVt26IdHDi9IQe132w1XAZkM3fXBt\nGxkGPEVeW4U5PUPs/UYWElGgzsFUbQrLcAJeeb4dCnqq59J1NRwF2yo5qNt9\njV+uHyFWHaOJn1p2yVr/vyxGMoZOUQIuy3Dl7MNhdHgW5hlLbNxBsz7o2LaB\no4xLCSup0x54mOEcA+kzjqceaD5XXoPKQt3tR+hpC+OA/+sLnJnXlLBlSm1k\n2Q3iFIOPjxAeZCy+H4XjhzI+6jL0UWi93BIv+1KF8MDDY4xKUI7nMnAv195Y\nYxNHP/C46eMv9bMN62uR4ufCMroOuPjDOTyFEW0lpEhrF/kM+ivTqrgWSeKS\nXMrQ\r\n=1ABu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHI2XPWyDnQqamXAI46phs13VfMKA+8Q/llzbqwPOIEJAiEA/aCYVndkXhpw1YsAZ6BMqDGo5YVkWjAL8TC+X/mruzE="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.3.0_1551531743708_0.7317067593701612"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"},"4.4.0":{"name":"pubsub-to-stream-api","version":"4.4.0","description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"keywords":["pubsub","rxjs","stream","api"],"main":"./dist/index.js","engines":{"node":">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0"},"scripts":{"example":"npm-run-all dist example:start","example:test":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ava --verbose \"./src/example/**/*.{spec,test}.ts\"","example:start":"cross-env TS_NODE_PROJECT=./src/example/tsconfig.json ./node_modules/.bin/ts-node src/example/readme/index.ts","example:compile":"tsc --listEmittedFiles -p ./src/example/tsconfig.json --outDir ./output","example:compile:watch":"tsc -w -p ./src/example/tsconfig.json --outDir ./output","lib:compile":"tsc --listEmittedFiles -p ./src/lib/tsconfig.json","lib:compile:watch":"tsc -w -p ./src/lib/tsconfig.json","output:clean":"rimraf ./output","dist:clean":"rimraf ./dist","dist":"npm-run-all dist:clean lint lib:compile test","lint:lib":"tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/{lib,@types}/**/*.ts\"","lint:example":"tslint -p ./src/example/tsconfig.json -c ./src/example/tslint.json \"./src/example/**/*.ts\"","lint:test":"tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"","lint":"npm-run-all lint:lib lint:test lint:example","test":"cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose \"./test/**/*.{spec,test}.ts\""},"ava":{"compileEnhancements":false,"extensions":["ts"],"require":["ts-node/register"]},"peerDependencies":{"rxjs":"^6.3.3"},"dependencies":{"deserialize-error":"^0.0.3","jsan":"^3.1.13","serializerr":"^1.0.3","tslib":"^1.9.3","uuid-browser":"^3.1.0"},"devDependencies":{"@types/bluebird":"^3.5.26","@types/node":"^11.10.4","@types/sinon":"^7.0.8","ava":"^1.2.1","cross-env":"^5.2.0","eventemitter3":"^3.1.0","install-peers":"^1.0.3","maths.ts":"^0.0.8","node-http-ping":"^0.3.1","npm-run-all":"^4.1.5","rewiremock":"^3.13.0","rimraf":"^2.6.3","sinon":"^7.2.6","ts-node":"^8.0.2","tslint":"^5.13.1","tslint-rules-bunch":"^0.0.7","typescript":"^3.3.3333"},"gitHead":"27bc4b9967b1ed7cad454211518defe0d62c8e51","bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","_id":"pubsub-to-stream-api@4.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.11.0","_npmUser":{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"},"dist":{"integrity":"sha512-qr8mpVLIq9IVx1s7YRP7SJ/289OSW+DZNUTKs6ji5XoP8qrcVYFHWUpArKzbZdAwiX5iszWN77aIrqEaMEt6Zg==","shasum":"f51e7fec6f79e6a3939c7d14d01f1885893e8842","tarball":"https://registry.npmjs.org/pubsub-to-stream-api/-/pubsub-to-stream-api-4.4.0.tgz","fileCount":9,"unpackedSize":32066,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceoI1CRA9TVsSAnZWagAA1u0QAIn2bFm0Hd7h6GsKohRo\ntOLMKm7HS8vyF6HvFNdkD6ZXSCFUzJb0bs7E84Jcu7nwtMyTFZLz3/I0dcW0\nZmcBRP+zIli9ZKNxNKQofBfebNCHyC21xrEos8QdHW1ZcwTE3oDgc0dFuUaJ\n0yM1dweqUwqUydPjTUZ9rwnSMTF7lyrwyZVV3EYHobSEHUThIzpbJAV4FvkN\n2UKWPZ94sztyPAEJ94gQOrZQMyQR7qOOQt0kBEGzezzVdDT2k3uMTRLuP0OY\nTLfwRe3DLURDZbn0QoVRyJDNITKBuXrGCIBu0oLk0vEsfFM8QVEEK2dvsj5S\nZvc2jdpeiGcttjounMCY5+XayEDILmR6BbEls7C0bWQmXBcbi3KnQF6LSaxF\nXDKB0yvcQgenOGRI6VvIQ4CiCy0nzoQjUDm+29IJu5w8RMjViP5G5ugMsnl1\n6GqV7BFnYm3mPG6BPtDj6YWLONvytq88Lu2wx/14K7lGDA+095T8xx85If+M\nO/M7+U7PZc6QN2cfxlBHEjnC302BEKWmSef70r7+tdKRSNGNQDNL0T/6k9FV\nxIqHK8BU+N1QJulJygIcquqRvu0n+dLbU/8kNlbWBKHRAke96SrBKgX3kLl0\n9iDAJVDRws+47ZtfCMTwX8oiw0zl1jd1n1sEFLfNZbthsOoWZHTCKZvF7CVC\ndkl2\r\n=ydoH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCQy8tT0nISynKCglbZTLqndyYaIEaHKXtkJun7a6p+AiBbk18A20amAd/bUlDo8dTvaOjAWLkEN1gvg2xM2jazFw=="}]},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/pubsub-to-stream-api_4.4.0_1551532595947_0.550686340325512"},"_hasShrinkwrap":false,"deprecated":"deprecated in favor of https://www.npmjs.com/package/pubsub-to-rpc-api"}},"time":{"created":"2018-06-21T21:10:23.518Z","0.1.0":"2018-06-21T21:10:23.595Z","modified":"2022-05-13T16:02:11.834Z","0.2.0":"2018-06-24T21:15:13.365Z","0.2.1":"2018-07-14T22:51:04.768Z","1.0.0":"2018-07-17T10:45:39.281Z","1.0.1":"2018-07-17T11:11:28.008Z","2.0.0":"2018-07-26T16:43:41.846Z","2.1.0":"2018-09-06T07:25:19.710Z","3.0.0":"2018-09-06T07:35:42.899Z","3.1.0":"2018-10-22T13:12:18.999Z","3.2.0":"2018-10-22T13:24:51.745Z","3.3.0":"2018-11-19T20:15:44.254Z","3.3.1":"2018-12-05T09:08:24.011Z","4.0.0-beta.1":"2018-12-14T06:07:17.684Z","4.0.0-beta.2":"2018-12-14T13:10:09.311Z","4.0.0-beta.3":"2019-01-09T21:54:26.254Z","4.0.0-beta.4":"2019-01-14T19:57:44.910Z","4.0.0":"2019-01-17T13:51:55.531Z","4.0.1":"2019-03-01T15:22:51.818Z","4.1.0":"2019-03-01T16:04:31.740Z","4.2.0":"2019-03-01T16:55:28.311Z","4.3.0":"2019-03-02T13:02:23.910Z","4.4.0":"2019-03-02T13:16:36.686Z"},"maintainers":[{"name":"vladimiry","email":"dev.vladimir.y@gmail.com"}],"description":"Converting publish-subscribe/IPC-like interaction model into the request/response model powered by RxJS","homepage":"https://github.com/vladimiry/pubsub-to-stream-api#readme","keywords":["pubsub","rxjs","stream","api"],"repository":{"type":"git","url":"git+ssh://git@github.com/vladimiry/pubsub-to-stream-api.git"},"author":{"name":"Vladimir Yakovlev","email":"dev.vladimir.y@gmail.com","url":"https://github.com/vladimiry"},"bugs":{"url":"https://github.com/vladimiry/pubsub-to-stream-api/issues"},"license":"MIT","readme":"# pubsub-to-stream-api\n\nIs a Node.js / browser library that converts _publish-subscribe / IPC_ - like interaction model into the _request/response_ model with _provider_ and _client_ parties involved. So it's like flattening _pub/sub_ interactions into a RxJS streams. It comes with type safety out of the box, thanks to TypeScript.\n\n[![Build Status: Linux / MacOS](https://travis-ci.org/vladimiry/pubsub-to-stream-api.svg?branch=master)](https://travis-ci.org/vladimiry/pubsub-to-stream-api) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/5tk7cwgldmsd5r8n?svg=true)](https://ci.appveyor.com/project/vladimiry/pubsub-to-stream-api)\n\n## Getting started\n\nYour project needs `rxjs` module to be installed, which is a peer dependency of this project.\n\nRelated source code is located [here](src/example/readme), can be executed by running `yarn example` console command.\n\nLet's first describe API methods and create service instance (shared.ts):\n```typescript\n// no need to put implementation logic here\n// but only API structure definition and service instance creating\n// as this stuff is supposed to be shared between provider and client implementations\n\nimport {Model, Service} from \"pubsub-to-stream-api\";\n\n// API structure\nexport interface Api {\n    evaluateMathExpression: Model.Action<string, number>;\n    httpPing: Model.Action<Array<{ domain: string }>, Array<{ domain: string, time: number }>>;\n}\n\n// channel used to communicate between event emitters\nexport const CHANNEL = \"some-event-name\";\n\n// service shared between provider and client\n// there is no logic here, but channel and API structure definition only\nexport const SERVICE = new Service<Api>({channel: CHANNEL});\n```\n\nAPI implementation, ie provider side (provider.ts):\n```typescript\nimport ping from \"node-http-ping\";\nimport {evaluate} from \"maths.ts\";\nimport {from, of} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {Api, SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\n// API implementation\nexport const API_IMPL: Api = {\n    evaluateMathExpression: (input) => of(Number(String(evaluate(input)))),\n    httpPing: (items) => from(\n        Promise.all(items.map(({domain}) => ping(domain))),\n    ).pipe(\n        map((values) => values.map((time, i) => ({time, domain: items[i].domain}))),\n    ),\n};\n\nSERVICE.register(\n    API_IMPL,\n    EM_PROVIDER,\n    // this/3-rd parameter is optional\n    // if not defined, then \"EM_PROVIDER\" would be used for listening and emitting\n    // but normally listening and emitting happens on different instances, so specifying separate emitting instance as 3rd parameter\n    {\n        requestResolver: (payload) => ({payload, emitter: EM_CLIENT}),\n        // in a more real world case you would extract emitter from the payload, Electron.js related example:\n        // requestResolver: ({sender}, payload) => ({payload, emitter: {emit: sender.send.bind(sender)}}),\n    },\n);\n```\n\nNow we can call the defined and implemented methods in a type-safe way (client.ts):\n```typescript\nimport {SERVICE} from \"./shared\";\nimport {EM_CLIENT, EM_PROVIDER} from \"./event-emitters-mock\";\n\nconst client = SERVICE.caller({\n    emitter: EM_PROVIDER,\n    listener: EM_CLIENT,\n});\n\nclient(\"evaluateMathExpression\")(\"32 * 2\").subscribe(console.log);\n\nclient(\"httpPing\"/*, {timeoutMs: 600}*/)([\n    {domain: \"https://google.com\"},\n    {domain: \"google.com\"},\n    {domain: \"https://github.com\"},\n]).subscribe(console.log);\n```\n\nAnd here is how API methods test structure might look (we leverage combination of `Api` model and TypeScript's `Record` type to make sure that tests for all the methods got defined):\n```typescript\nimport test, {ExecutionContext, ImplementationResult} from \"ava\";\n\nimport {Api} from \"./shared\";\nimport {API_IMPL} from \"./provider\";\n\nconst tests: Record<keyof Api, (t: ExecutionContext) => ImplementationResult> = {\n    evaluateMathExpression: async (t) => {\n        t.is(25, await API_IMPL.evaluateMathExpression(\"12 * 2 + 1\").toPromise());\n    },\n    httpPing: async (t) => {\n        const input = [{domain: \"google.com\"}];\n        const result = await API_IMPL.httpPing(input).toPromise();\n        t.is(input.length, result.length);\n        t.is(input[0].domain, result[0].domain);\n        t.is(\"number\", typeof result[0].time);\n    },\n};\n\nObject\n    .entries(tests)\n    .forEach(([apiMethodName, testFn]) => {\n        test(`API: ${apiMethodName}`, testFn);\n    });\n```\n","readmeFilename":"README.md"}