{"_id":"topological","_rev":"39-03f46112b36fbd9e0f208cdd4586d896","name":"topological","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","dist-tags":{"latest":"1.0.39"},"versions":{"1.0.0":{"name":"topological","version":"1.0.0","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":"","license":"MIT","devDependencies":{"mocha":"^4.0.1"},"dependencies":{"async":"^2.6.0"},"gitHead":"f54ad24fac746f6ae7a47b4c8ebbd455ebf63a83","_id":"topological@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-sJnNBkb0o7DIx6FUot4e/oFlv2+eOeQ2h5poY7sU3j5RCix8rxuiL6TWGxtEKoxgENseE/Aso+m7fSxdVp2QWA==","shasum":"82aeead3568ff2374122ad9fbf70000416bb59c8","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVHfRF8pzmB06CUcevVGKhbOimk4FZwu6mZenENBtmBAiEA5E2IB5QatJ3dIUnlUKuQjOP5lvNzety5gI4gazD4Ywc="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.0.tgz_1512851262084_0.8515397859737277"},"directories":{}},"1.0.1":{"name":"topological","version":"1.0.1","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":"","license":"MIT","devDependencies":{"mocha":"^4.0.1"},"dependencies":{"async":"^2.6.0"},"gitHead":"ad981741ff04809dcb7c382cb2ed9c63579564f0","_id":"topological@1.0.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-zHEBxPUJn5svd3Q7Qm4iy0XHrpn9MHOVQHxvaXgCt/xazuUMMH6Y1o87z4g+q5StJIfpNuXzgySpI4PPzCDV4A==","shasum":"9be7b49624ccf2a203099350bf3612a86156c8ca","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3cHDQUE2r/ajAqSNuLJigMXPAdtPnQ+c7OuVSKCK/9QIhAORFux5ga5Gc4IJfLT4rTTsnCePOwjJQQsYq/QINS6h+"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.1.tgz_1513085228818_0.5259464534465224"},"directories":{}},"1.0.2":{"name":"topological","version":"1.0.2","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1"},"dependencies":{"async":"^2.6.0"},"gitHead":"dee8a33604189e6cd820d3146ff821d29f46b894","_id":"topological@1.0.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-tR3GRHRwM9myxM6T3VTbRYYajFqiIZcXKWIKmqD6t8yiNN5F5jwIiEWP3R5J/6SBF8dMeyJqGDR0j5Z470shSQ==","shasum":"5bf569ef428105e27bc39eb6a682e7f46e845411","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB1o4MEgBxsqJewo5TIXB60UjYkbzElNYZzmiS1rVTEZAiAXZSWNLh5MspcOnz7OYVMrdgq18M2D8/97Sjl9gzxSTA=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.2.tgz_1513111877730_0.5944335691165179"},"directories":{}},"1.0.3":{"name":"topological","version":"1.0.3","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1"},"dependencies":{"async":"^2.6.0"},"gitHead":"dee8a33604189e6cd820d3146ff821d29f46b894","_id":"topological@1.0.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-P+QbtWJcoMWJ7AQdsHUiHjs16AO+ycOB3K9pS4j6t/BkdhKnaAlC6cgqqwjhhCYZDwqXpodMbXCaGzdMSVDwiA==","shasum":"1eafd19cb5f1492fe403178f31acbe73050645b9","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiXs7QOMpy8Wb77BLgZInR9bOAlAV1uiDhdzn6aDlR6AIgLpWqu3+8svlWBjsCqG8BvVwVrq7Fjy2BCaCA0/Fqhk0="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.3.tgz_1513111998339_0.034261315828189254"},"directories":{}},"1.0.4":{"name":"topological","version":"1.0.4","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1"},"dependencies":{"async":"^2.6.0"},"gitHead":"dee8a33604189e6cd820d3146ff821d29f46b894","_id":"topological@1.0.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-Df1L4OzrndHzJ4QReqqdjBvsBWB20xwkuRcVWg5GPBCPOIqxjtfhJhZvQzqPZyVKlKjf819VTfubd2yNvsIAJw==","shasum":"c0033c71e87aafb5748b39d3625a3bd08171abf3","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbx6L8C8ME8lbwU1Aef6bgX7lbJdIJdtu9OzKCZk9bXgIgAn/sWz7tjC6fp1gbFkn2+H1j2WNHqSpatjn+FU1ghsQ="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.4.tgz_1513112093402_0.14705965528264642"},"directories":{}},"1.0.5":{"name":"topological","version":"1.0.5","description":"Topological is a framework for building real time processing graphs on Kubernetes. It is inspired by the decades old dataflow processing pattern and more modern platforms like Apache Storm. It is container native, and leverages Kubernetes orchestration to","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.0"},"dependencies":{"async":"^2.6.0"},"gitHead":"4b5a4764fff9164fc1932f81089941f29043f039","_id":"topological@1.0.5","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-+lOw7k99NkS6Nf8mLDOvthf5HlKbAk7NLKfLo0rUzuqVOflsJkFi3ZYMRbVSjvmODDvs4AAFMxou7zwn864zwQ==","shasum":"1c19a82976e6fba4c3021806be2d89ff83796327","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICm1I2Gx/f+euzneNQtQJzVn8J8P/21eGBLMllRZ3xYBAiEA89gyhyO1ugshCwQddBrxIbXyrP8obkKehqjIbWrWpLs="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.5.tgz_1513269240163_0.6889825984835625"},"directories":{}},"1.0.7":{"name":"topological","version":"1.0.7","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.0"},"dependencies":{"async":"^2.6.0"},"gitHead":"6eadb7a394435e46fff9d3a4fe04a5bbb5c1bc7e","_id":"topological@1.0.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-DaoQiuopJsczdhOWKC+V7QEuTccy/kFF7Ni4HQPSRqI/e4WeUjHkQDrBPjiOSqWxob87IW881felOaYKBYi+FQ==","shasum":"c4fc3278ed00eef4a9ce0d72bdf25835a70d275e","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNRjlHCtvrkI1eOGa6/CEDrGYCg4A7+4NqgNGyG2TrnQIgS0ApRsBHJYQ/f4ARfjGjdLH4tepAlFzUinzFrzuMjxc="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.7.tgz_1513290384330_0.5418525938875973"},"directories":{}},"1.0.8":{"name":"topological","version":"1.0.8","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.0"},"dependencies":{"async":"^2.6.0"},"gitHead":"dbb3e5f814976a39452e5f83fea0f53010a5a61d","_id":"topological@1.0.8","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-WrClr+AUWlN3K5mvuhOb8IWAHrqvtILH6UCXGq+z8tkRwUkeFxK/FJoqlc1xbOoUuhzXx6kTvpwgW6iOgwqz7Q==","shasum":"bfebcc5448da6abab13e189f129e0238b8336628","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWJ4mP+3fmuakFNZbPr3MwpuRLaABae6tfG3s9+b//CAiEAwfStIkNgjImDmBEuUvLfp552AXaWzxWa+Ye5gDbVqQM="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.8.tgz_1513366998729_0.03347540786489844"},"directories":{}},"1.0.9":{"name":"topological","version":"1.0.9","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.0"},"dependencies":{"async":"^2.6.0"},"gitHead":"cb44c41346e1f76bf2b334aefc3c3ab3628d3f42","_id":"topological@1.0.9","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-asMYft5xwNSdbFrHl3xjw9QmkQqqX7xTHoNDRezRdK0/6HkoeAkBLFC6NVQF4U+HSXz6F/M8tk9345eHAr32hg==","shasum":"14203f535e2f34a834b8e2593b6504a19145e362","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcbjXhxJroSD74B877VSP4A0FsKZ26nXnn9nYfRY1OzQIgb24BQwDLnQIBoEPeVtJBoKkW0UDiA+zpK3LTc2ikl3c="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.9.tgz_1513787264846_0.380044371355325"},"directories":{}},"1.0.10":{"name":"topological","version":"1.0.10","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.2"},"dependencies":{"async":"^2.6.0"},"gitHead":"484147acc0af0f72a2b518ebf04d5454af6870e9","_id":"topological@1.0.10","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-lV2IlgYE19PGjDIA9sQ9dRdDQ7D9EwD5Je9VEyfXZjizcHxx7XXnD5dSBYQZQFSkrponGsYN3KDnnpwiCOQ24w==","shasum":"648709889004a19158f198889d632439edd03bb0","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfkOjOUKJjDJF3jzU8D0NwT/1MbnaVm3ITo1KfP2G0HAiBwxF0j7/E3kg8KJrUMUDm7P04Rwk2GG1v7hzBY172s+Q=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.10.tgz_1513795799886_0.09000542643480003"},"directories":{}},"1.0.11":{"name":"topological","version":"1.0.11","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.2"},"dependencies":{"async":"^2.6.0"},"gitHead":"bc2c896cbc77f39ac180f2ecabb99d30e08428bf","_id":"topological@1.0.11","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-IrdOWtscOE4bFf4x9lLFe+h9+N1L/ebFFxLRgDwFhoM4kRAWsYYShKHUW9g8Hwq9vAnC0NYVgXzM6+dfRAG8LA==","shasum":"169ed7a61fafc2809937ede33de97ceb586dc13a","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDiuYN+QYq0A/+0zxiFmyD0G8CngiiGyyaRGstznbei2AiB1y4b0ugzYkRcWirQG/dFQtxlhLqNs8K+AYRyCq72s/A=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.11.tgz_1514394328858_0.7762360924389213"},"directories":{}},"1.0.12":{"name":"topological","version":"1.0.12","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.2"},"dependencies":{"async":"^2.6.0"},"gitHead":"305f1bc3d60197786e62a8791a7223ad90674207","_id":"topological@1.0.12","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-8H1Ej8qCuWc/QnA9uGQ0e+q0v2lUI8ws/gOZkYX4OFo+Dzcg64cUDaXGgTgqKGKqbessYGI4rD89OQucNpFA5A==","shasum":"f050375f26486af6098238dbfdf2d04e45e96915","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaBtoawhyvBpu7ihAb6+neDm695KaiI4ZwRIQuqz+LMwIhAOsiP+gNJrgekw7PP6Cgre79ZYWCqwtOEOBQ6Xh6ONqs"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.12.tgz_1514419196653_0.904472368536517"},"directories":{}},"1.0.13":{"name":"topological","version":"1.0.13","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.2"},"dependencies":{"async":"^2.6.0"},"gitHead":"850bf1be5f7aa747fdb24f8b1d15d4961356fc04","_id":"topological@1.0.13","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-vJTgPOmfrIUOgd/lxfwVVk5RiHZGG0Xk3sMJQQcfj1nsOaawXaqCPWeBX9tUgQuJLRQSe2qqnweX2TRGyKmRFw==","shasum":"1b050bed631492dd5a80dd82517fafbc277889d1","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY8ZJ9Ck3UWsJNrvbCbokUdAjtzSHFCYrT+LxUvHrf5QIgTxc9ewJnrN1xy7vFJxrAU6GxyxOnE9POfElx/Dee25I="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.13.tgz_1514936601360_0.5564824561588466"},"directories":{}},"1.0.14":{"name":"topological","version":"1.0.14","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"./cpd && mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.5"},"dependencies":{"async":"^2.6.0"},"gitHead":"850bf1be5f7aa747fdb24f8b1d15d4961356fc04","_id":"topological@1.0.14","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-CNyT7QOIEx3uZ7bodSr2s4N/DhjSoqMrNmFA1zo4hrgLhsnQ6y7dy5yFpLTUnHp1Bl+eT5KgyhFYL1GWjOk53w==","shasum":"a21f0f701880282adf89440ee04adf4e42fcb765","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD353w0QrnzmFPbaz/dTw/MfDU7hfLm3Km0Ok8/5mK4AQIgPipxfVe7ushozbuvhXJYii8es+TDCJrV4G2et6wQ0EU="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.14.tgz_1515088562993_0.22572058718651533"},"directories":{}},"1.0.15":{"name":"topological","version":"1.0.15","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"./cpd && mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.6"},"dependencies":{"async":"^2.6.0"},"gitHead":"fdc3becb609135ad4d7518fa44b3a8bf7f9ee51f","_id":"topological@1.0.15","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-/uQJBAOSY1XHLlsb/N9y5tVsWMATPD3vAZI352Ui+1ZJeuPfoCmzSl+1Glodg8VceaON0QxbbzyT/TvA76LJ2g==","shasum":"d4e684b092b0521882ca1f31aba6dddfddec30b2","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENKub70XmFEqwE469fAtgs0AqE85mlvwLIXPft8ZOocAiA0QU4UUDVHGDmCeyrvzPCYtuThdN+/LgZF+iAaC74kUQ=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.15.tgz_1515090348093_0.18382414057850838"},"directories":{}},"1.0.16":{"name":"topological","version":"1.0.16","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.6"},"dependencies":{"async":"^2.6.0"},"gitHead":"d8cd56a5dae7c9abd483f8b101658b12e46b1beb","_id":"topological@1.0.16","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-jzPIHyUxhcmm/I4ppdOcV+y2U6io6L78u4GGZF47wZyznzBmQSdgS/Z9U4giLQW/UENqIAfFBgLygbPaod0WKQ==","shasum":"78ee489cca7e233a058171c55c640828cef187ea","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICj6WxH2MyCYxHbmMSCqOigy9R2L8TOr94JX2FnOuig5AiEAjNljSseSjCPDl0FSgXkg06H5ImRfr3t3tisMoupApK0="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.16.tgz_1515175418366_0.5624829414300621"},"directories":{}},"1.0.17":{"name":"topological","version":"1.0.17","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.6"},"dependencies":{"async":"^2.6.0"},"gitHead":"d8cd56a5dae7c9abd483f8b101658b12e46b1beb","_id":"topological@1.0.17","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-KAqG12uxJnovJvUK9at72rYMNjRKi25ypCSk8fe1Uqx0CiMiqrY4YJmL1M4X/288VT+3vgx5D6iXWpjNpsfkBQ==","shasum":"cc659b28caf8218db30cdc23981028fc244c14eb","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqrGPQr2mWyAaIgvrLWBmh3m7jzZvyyDnQfxEwAXjZDAiEA3kqzMiLn5rYkbfj6qtcx35oD1dTEYAwgkRAHG1YMAaQ="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.17.tgz_1515176624587_0.8114473288878798"},"directories":{}},"1.0.18":{"name":"topological","version":"1.0.18","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"b3e84664429af3b4baa73ea382f75982521d47ff","_id":"topological@1.0.18","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-WqUKOiVcIilCJUCL9ND3GC/9T7gQF4Ew84gdJL+pBeX8S2Q5IEu5HoSs6iK1p3pH47lA1RwgS896ntzQ8txmSw==","shasum":"860223563f2ae0995506fb79926108d03d715823","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk4vQvTU0CtkAmm1uneITNteg/DOWOGBw1rLE3iZIbugIgVcamq27/cJ7KGfJfWuUj4nE54Au1a9e/kvNJRW8kgHI="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.18.tgz_1515177500480_0.01976804225705564"},"directories":{}},"1.0.19":{"name":"topological","version":"1.0.19","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"b3e84664429af3b4baa73ea382f75982521d47ff","_id":"topological@1.0.19","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-jvF0mZCkz+ZTQAizzrroxCBwX8LCYEBhlNllGtMG4tXzM21AWdhKy4YEoH/p4VnebHCXLq0jF++fDslc/d9MdA==","shasum":"dae9fb59fc405e3c2689c5ef3a3d4506b9c51699","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.19.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrJAHt6zlqPq5V3ywBbALgDAZM+q2OFPoYkdw8vDEX8QIhAIdb0j6Cse5WQQ4WedDwWpvP+bx7bUJqeunHxEvNHOvs"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.19.tgz_1515189374274_0.3450504303909838"},"directories":{}},"1.0.20":{"name":"topological","version":"1.0.20","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"0bd8d8c1ff01bb899973b5741a15542d20cf441d","_id":"topological@1.0.20","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-/WFACHEDUxfpTR7rQQ+zv1QPYZ14viOpOw+YPLnshUeJCEf6xERAtmDI8FB7Z5Mwy534NWFwz1OS+tIOhJCxFQ==","shasum":"75a51c9f34ef166467d0a6fdfdacb67ad9607a3e","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.20.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9i9E1vSXkYNZoj+Xt2HaCK4eKeySIA1ifO9HK+qEt6gIgR/9SuDuxU7CKHrl0Edfiuv6JPRr2LecY+921UXGizWM="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.20.tgz_1515189961897_0.45027331612072885"},"directories":{}},"1.0.21":{"name":"topological","version":"1.0.21","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"501b6f39ee43fec6d21fa89ae402b4e02e77dcf8","_id":"topological@1.0.21","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-8o649oTjtQ6HTIr0O/iCY6S5NkhDwsZb1KikBEJMesTHLQJaFdgrmWryR3Sp8KIPb3rsfTekq5aI9pUujne37A==","shasum":"3b3a3ba1338bb2db74b9b1c661a28b6f37f014e8","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.21.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDivY4xYwDALCa8O6/9FZ7mWf30C3NXoioVYCP/Vvig/wIhAIbwrFQ/OO0s3uhL3NxTjQrWeVr0xvlDmC2GxH9G0LHW"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.21.tgz_1515433137017_0.9285480622202158"},"directories":{}},"1.0.22":{"name":"topological","version":"1.0.22","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"84bb368e4fa5d01048d1f7b9143656608ad8d30f","_id":"topological@1.0.22","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-QyJPSHj/Hr/EsHExO6pHVA63qPrUVURHzE2xxNyxJvOb9VGMACfTdyd4Trfn00i3Lmqgw2NSOpQsGn8+sYQ4FQ==","shasum":"014162354776213941fa80f5e7f43ddcd16b7bdc","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.22.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFPyecMXRDXO4VuiPG1AGCiIjx2aJ4lwmX7uDtLtuXsgIgNJzeIU0BHZevEktpWAoL2eJA3JQ/UXRZovnmPRhkYCs="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.22.tgz_1515469264920_0.6453060321509838"},"directories":{}},"1.0.23":{"name":"topological","version":"1.0.23","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"84bb368e4fa5d01048d1f7b9143656608ad8d30f","_id":"topological@1.0.23","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-M8iJzXIHSw2/O+Rl2tGBb/eHJKpjn1yh6UBhxyujze256s4xps9zvgV8MDu573nJSBhcNGwxQxw2OkETPxOTQw==","shasum":"080de9c442e6a6f60b497e353445785fa40e6237","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.23.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID7mxmrOLS/MWshD4soIwYPS8JgCaeWo5NT1R57ukJiZAiEAks/wvyOM+Vh721B4Aj+WlNUgs16txy/YOBxmWgbNcW4="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.23.tgz_1515469368597_0.4329664255492389"},"directories":{}},"1.0.24":{"name":"topological","version":"1.0.24","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0"},"gitHead":"84bb368e4fa5d01048d1f7b9143656608ad8d30f","_id":"topological@1.0.24","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-hx7k5aHoSIjh01HOe5WYjoJdC0hKeqXb0lWKUfqmnae1oft8ITlREPo8FQwoyShrr+loh0ViYmo8okKZpMHkbg==","shasum":"e11d52e3eb58fc8fbed5deb4b692ad0fb0a62d9e","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.24.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDw2m3HireV+zLe1pZYWNXM70hYDu5cqgCAYG3V7rGLdAiB4qFIKnbj4VSYg/jwJcWo+toonpU+y5X4Wqr5GQN4hmg=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.24.tgz_1515469397566_0.34538547275587916"},"directories":{}},"1.0.25":{"name":"topological","version":"1.0.25","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"a4d29b60d008178da0fd446529b9c69dcedfca72","_id":"topological@1.0.25","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-3WRopijCZxoy5ocuDZJxuhegtqFclc1wW8v4slsxmqvTaV5S3HGJ8M/UkEUGWfWcdnGPW8K9gfcRstGhWcPj8g==","shasum":"02bab559c38611e5884bf8bf40fa425d57e12d9a","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.25.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClc6lRk8N9QLbBuhR5EUBYpN2X452o0z5yBcEWEybaBgIgQ8K4LF9uKHGav4vTYkoga2YH/GdOMEtBXd2t8VHOldw="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.25.tgz_1515469636864_0.25675521534867585"},"directories":{}},"1.0.26":{"name":"topological","version":"1.0.26","description":"Topologic is a cloud native framework for building real time processing graphs on Kubernetes.","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"203884999de1dc67b0df743ec722e25e497e1ed0","_id":"topological@1.0.26","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-43lkfvvuzY/LI0Ns/paWJuWf16EGYEUfblTIhDrrToFBwA2QrI/DLoFHzUcf0xELC0s4naVEmVVp6Ro/wdN7VQ==","shasum":"96c765bdccf87bbb4d1a825388db00eeffcadf65","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.26.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHqbkP/AhJijfusIxbuXKHf14p3ASYtvNtzwj60OrXTAiAwgOzYJjUZnFjdDujqZdQ5Tv2DhzIuI8ZdTC4LZeC4AA=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.26.tgz_1515690011149_0.2793244058266282"},"directories":{}},"1.0.27":{"name":"topological","version":"1.0.27","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm. These platforms were built in a world where they had to also had to stand up a distribu","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"a42dcbfcdf9337f0d108a1a8b166bfceca0d6413","_id":"topological@1.0.27","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-0e2Uxf9cJflcP2A7xa8d1dGYudlzHG4hnGNltXVgPuU7fvwEFJZUCTwbvvV+SByyboagsSn5q+kh/a1ruQwpVA==","shasum":"11fb74cfc4e6cb6369434460caaff4fca042e5cd","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.27.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmHxqIt/lcDCSzc7ki01FEMP6YsjaIWuOd0gG5RQs4RAIgGPn1jLllhh6Wm/Bk+5R5M9ObmtITezT8iZc2VLT4ER0="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.27.tgz_1515774040501_0.031883117742836475"},"directories":{}},"1.0.28":{"name":"topological","version":"1.0.28","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm. These platforms were built in a world where they had to also had to stand up a distribu","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"9e71e9a9316182cc9bdc5aab9108952214e25ce5","_id":"topological@1.0.28","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-ioHcPAfk9wmgFK7zMfjL5oMg6rxukJn5BCjbxVXgoNcfiR1x5ROyPPcrl8+rRvC1eWqYdbxZTdr3MMehTW6iqw==","shasum":"bac24c46c6cceb14c7778564da7b145a8e5b8e2e","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.28.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGCBWhczadBWsHFBSYPvxnf6g/+Lar5v7/RvkyeV2JyZAiEAhDZ0vaDwcekKWj6TdqadEeKM+CofzZvYaXOh/X5cCaI="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.28.tgz_1515786137089_0.9169768828433007"},"directories":{}},"1.0.29":{"name":"topological","version":"1.0.29","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"efecc34c699cffa05f9a72399724e9edc0bd3038","_id":"topological@1.0.29","_npmVersion":"5.6.0","_nodeVersion":"8.9.0","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-X0TUZSe1kjY4Hxl+Pn2q4HdpRDgy3x7M+JNR0rkHhZHGFYe6+tO6hsMdtglUV4d26ngjEMH1v2KW/jIY8eqCjA==","shasum":"4ef9174f24bcaeef41d3c0fde4fdbd406ad06296","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.29.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUI9WYKdmbW/ingGRopOLDmhDFWZ2c2UrDH0dt0w5tpAiB+VUp5LmjYdH85iFLY0OwKHoQwI4hK0JkEUEtRmch3GQ=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological-1.0.29.tgz_1516674126987_0.03068501059897244"},"directories":{}},"1.0.30":{"name":"topological","version":"1.0.30","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"1cfaa4427fe0513495ea6a3df6b7e3f527527d85","_id":"topological@1.0.30","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-TcUVErL44qMGAPHGLTYh++0nVvt0+kqoRBePBinmdjNz6LnUWbPpAgCkMoe33gAn0yh97AWvk4I4D04CJpH3/g==","shasum":"2c1b1578251acbaa737cd78ad98b12eedefde2c8","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.30.tgz","fileCount":16,"unpackedSize":96591,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8cKKMDuuacHHglKW7vPSFAnMCFmQtV/QLhSauf/aIcAiEA3cNJVJu1kl4S28wK8X8MNrDIjy4wqIXtWu0ePbPewKI="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.30_1522175880756_0.1633254450894761"},"_hasShrinkwrap":false},"1.0.31":{"name":"topological","version":"1.0.31","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.0.1","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.0","prom-client":"^10.2.2"},"gitHead":"716258a1bda2a7ebc2fd3589490e4c57ddb2f834","_id":"topological@1.0.31","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-krBstwpxrvTdD4+o1HRSizyRptLQzeqDsUeDf/x5qIxdHzha1ll/3Zc4pIHYOf000V+GUdzUydDTqAgAlQaQbA==","shasum":"7dd85f7ac5994e86369565779cd6883cff6b53b0","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.31.tgz","fileCount":16,"unpackedSize":98123,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbexH0CRA9TVsSAnZWagAAgAgP/0IwKuutkl6JeZTzoaW1\nSzg7SR+P6ZbgxIPqk1YhbRjSP8nUHSTIYg8+RL+u7Iyxzc/oVEH/aiwuDONm\nUoGlviMHI2AB1OURor1bZ8o+COWTEzDuvLIHQcv8kj5gVIYTcwCUR5l49CNE\nsrBhaiQxUrUCe1QCAKNY7pHHCLQDUxEzl1AJBQi5D08Cy9n13DvnPVrhG0XP\nVnLwwcQwXwL4AAVbhjPN0M992EtmTJlXykhNF13rr0DkAI8jlSWVDlyaurIz\nGs8p/gDwkWz/riiitYUh5mFZH9xWNBbG0eY8XOsgMbaAaLTwP0+OYIVGmU29\nLbCooILkGmzhrTr5jRx9GqUHGyJdffYH1jy6rxQlZI9MCRkle3NLb/D5JCkm\nLSZhMM3ktJSuZgjkdiKRqK4Heq1YlYBYm06XzSoX0Yy7s8PJv+MxVuplXxqF\nxUoqcDEfqpvYlWHFJcKVWaI6DyXDdWgxbuMkOzUYAw80XsB4DXIXLtrkcLGo\nphd2+a8sToYmzbkA/FLgG4V3Ood37tIpPIeBeX0UEzHgeCXDM+03k0hG5hzv\n4qi/Erx7Z5uDj6lWd0O2le25nRRaU/8jTxMMzQBgV0N6kSrR8OZ0zbQ7hlgh\nMv5kr0AIFn/l+1Xv9/D9PA2ueYT4xsBcsURNN0uPvO1ybrqtAVUxUQ9JcYmX\n/Czv\r\n=Y0GZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUQI0n5hBSjT2AGSvwjH+jcBBgKNwSZIDCSwtWZtpAfAiAB7tPQHlyNN0v2FpDitduD1lFHZMtMHs41KL/qTwrq4w=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.31_1534792180218_0.416085055209221"},"_hasShrinkwrap":false},"1.0.32":{"name":"topological","version":"1.0.32","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"3704c53ef75a17ab369d5852d95c4d75f5830e1e","_id":"topological@1.0.32","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-ZdlGeON0MbRQDXhGDFkLebNRJvXHv2VP4BehcOHR0+v0hHd4ECEV8q7rRfPtqSX65ORBJrmzAx54Hp/PPSuh0A==","shasum":"7c8c9e8b7c2b7c6570f8ce4b18152f02cd8996d3","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.32.tgz","fileCount":16,"unpackedSize":98176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfz+ZCRA9TVsSAnZWagAAXSkP/RhzHe8E3E0xirmn3ey1\nwiuDzjX8D6GFwCpn9HrxY0ucn9mJOAvWygW/5XXfV15MbcouDRQ1CLuA75jh\n31cRrf5Rzj3X0Y4QWevfLSNKCu2ARQ+FCulJacckJl9Zm956v2Q0EV9TurV1\nyiA02GuevlvcZa1l+I8YSAm5TFWPNMrivdFnT86j4R+Y3Tddv4Kg5mdgMWdh\ntF6tvVv4nV3S4GN+TBRSDpEZZIYNAesAWv5njxuvPyzpsc2UdW0tqtrGUsws\n5BmMPfBJMR4WB5FMBrAORX54Rkctf64Nf4Qo3gzynA0TTORwgN4PpUghnT8S\nUTkk6kFDpie2aEEBQTv99o+tpxQflNr3cyDp59HyCentubi15a4DO/xuRmY6\nTJmTVFRfO5V5LYPTZXoEneJqYkuFw//ThLxEibm8m5jPz+HdlSQtnj82PJol\nEWfnMPpXgpUbdvwNf1Eoleb7rSxiL5T9c8d01qcu/tPEJS2IYG69TUGon4nu\nGHQHp4iptzk8ssOHHdXwvg+h6SNci1QMB+PbCKSSsenT59sgHqaWIoQzj4Kj\nOuw65zXvtmeoeq+pOYhTP4v6OdtknC3Aa8pq7VhQJUqeEtpCoRIbWQTRf8YF\n2CgxLLc3SYKbxAntHkqu2MFvv+LCX+GevZYRdMVhak7hZ36nQok//lRZP3vd\niXWc\r\n=Ifoc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQScCEi4sRsDwC7yAdK9SnLQaZdMiYi8IFAdT3LyPYMAiEAvcSvLn0opMv2yqDxRz/fZvAKjzNZTzil4xuAsEw5JfM="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.32_1535066008507_0.9971108383826244"},"_hasShrinkwrap":false},"1.0.33":{"name":"topological","version":"1.0.33","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"a412ecf80ffab97029d5f7460a61421caa53f934","_id":"topological@1.0.33","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-mO6vTYtUXnUarinOh1K+sF9BVn28nRhuwOqJKx+Rj3epPxrTaxKmvBwydZ/U/gQ2Gb9XH+QhD34PYhpBVcW58A==","shasum":"07e0785f24e95a3d2327ff7e8c18ac68870fc70a","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.33.tgz","fileCount":16,"unpackedSize":99277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiA6kCRA9TVsSAnZWagAAHukQAJ/+82rzZlsD4HYnnwoY\n3QBwFq45+jq24/218RdeV62YvpQo95vHaniP6hq1k1Kp1yp3wARbmQT6+WsN\ntI7Rqwm5AmFQXqhdiSrzksXn1oHuOzBwItlSYiOu5FBy8+sjmCUd6vmdoWAp\nac6bAH//FwwsZo1Ildcfpx9IalYwxQeT4Plmme7mZPddjjqUoT3H4Dva7UBp\nNgxLFg8CcVw9FDwdyuwzVv7a0VkoBPGeS9NRKpzgKjUvZFZ0tG3W17c4skS3\nnap4M/q2vLYN0VwWMwAXL5zq4n7py49m1tcDLO/AjXZVEOv2PNECQwwMKJ6D\nQ2ry1W6tWEFdOXHCaAMntyCA4ffoZCzdlZHZ6yJJd/ckRgy1Xyg5CQLJ6InT\ncDkFEB/5T6aex5iAYXjMkiteWkEvWHC9gqGJtgMgZN3ycdSFozZROW2C+X8/\nYTQMahOS93oi0/kTe2c8BbtvF+Ut7NMGd4YtgU99EkS1kbjxvKt5DTC1pmz1\nEdRfHL/KPS1PdMxQXEeeYdz9U/NV/Wt74VjUwbSCHugYZtv0oL+Jp1N/csg0\nl6aFFDRgtf2zLlrhAl5HZ0fK/04lVp4tI00fvXCALQO0Xl+b2mVYyFlVI/xd\n+yR7e9p4FiwzRclbzWFVlStm8B6MUiRbdllPw7+Yz0LbsBz1jCzZordlvcdK\n8U2a\r\n=AlYc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGvhrksLbvMkElzjBqa2xYiQlWFbppRaUE3XmUJFfwy4AiBFAdmF3M3PMXzBRCKTMH0yjJh6K04pRv216V0f3VGIqQ=="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.33_1535643299450_0.8647799503105948"},"_hasShrinkwrap":false},"1.0.34":{"name":"topological","version":"1.0.34","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"a412ecf80ffab97029d5f7460a61421caa53f934","_id":"topological@1.0.34","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-hgz6GRXPoQpdcEHZ3zaZt95rp9/q+K3LRrNZYIssCAXfvO9cJmcvG3btZiS4O0Rwcf58d3tWBOCMUJWAbSivAg==","shasum":"6d6b85460e35cd92753d9acaf7a9970b870e128c","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.34.tgz","fileCount":16,"unpackedSize":99560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiB9RCRA9TVsSAnZWagAAs5QP/jOKRd/BeAetKXTpjve3\n9nhFHsq3gxvKq2UNrb2HLmGjx2kHabN3Hw3tSpN4nBQ/L4qujKwi+BpU9Zc3\nNZks/45EuWEQPcUsIvPAYBJ3jflQHQBimLVeaApPTHI0fSTqGTpCDH5QWAmE\n8nFTk38laN1EK7MO79QM7vy/grXMwpzZwNm0weEcWxFGvw/wkqHa8X+7OF7q\nIbUkJqwLsVyaNn6ba+JZi8/vuiT8oW47V40X1/Q6HFTcJ1gpgNLJZwVdwsE+\ngPLNuvCdV51qbzj+vlXUaC3nivwJl51DcRpTIQTArt/vpLOInqo1CrPaIN/e\n8g+iyR3Ejbs2Rb95SBCCxtRONnW/ah1w/Xn0gTNCo/ybLjQaziChkl/Ucfq4\n2dVHr3XjTHGk9X90xggN0FdlmMlRJq6uHAsobhVS5E+n4pNY3demfjr2c9+z\nQBqJq+3nrz+xpDaVqKjISUUHgaOakC0MfvGGzpV22R0OnV4lWmGOPIunRh7S\nwxLlxrzidmYqKRgI9wfQAxrGf/g3JxnoMivCyalwqfxKkuFTqurfN01yKEDB\nZwAr+tCajp7kYWgA7vXgK+if0gCgBF/VCEeHhDR8bFiwpQDBqSRb0G1uJwtV\nd2OmV56aC6VprWtzoxR1vPxXKZhAvnIrTNOSLNlg9fsr8QLrbybhPLsW2yoF\nXTMn\r\n=r2CD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCb/My93mX2DnNrHjse0RXrZ/IrvP822ZfZQ+k4nDP+LgIhAIt1DigGj3ZPLjlrr5ScPcjfWKojLWOAkg/HYTzBzI+B"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.34_1535647568844_0.9872999928010191"},"_hasShrinkwrap":false},"1.0.36":{"name":"topological","version":"1.0.36","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.8"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"7963bb1899975e5ccca55d5fd11a8c7d85041e40","_id":"topological@1.0.36","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-I5jO7oemFFZTrStB6oU7/TbLqSOxeXMl62RArQe9f/nzDO/jF+vYhKik3cXheDApdZ/q7uaPFknEY7wFA273BA==","shasum":"9231a161ac33f0311c56bc85f0a980d4930aad22","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.36.tgz","fileCount":16,"unpackedSize":99741,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiEOLCRA9TVsSAnZWagAACLEP/Ah18P314++YvQcsFEAh\nKcyQcT1o9WvOM/ncCYKKOul17YhpNCkMMuABjaYZbq5tuE0KBHh8JaWkKX2A\n2cjkSuX2Z6scLdw5oqGvWi2p4eNDoscHC5lUdDl8IVuWuyWRyglSIE5mgBdj\noeZArSiUMleSYR9yt2XK5wKlDBh5OJji4xBKG0J7z9q5ILhlg1LHqb2VYikn\nwv4Ttdxhjs5+QBLPh2MshVEf44qTK3Jj2NQhGQLXsAZP8elf7w2GUQSsJXzD\nt7fxAHB/FadpDu8x9oeFrQH3nc6eypBGHjJx8Ek/kydw3scCAfva/6bKlqRr\nJ+L8MRpxK/lhLFzEfjVY8HVx8qRRe5es4cONr3VT/x/4i51l2rfs4YUFFUKd\nlalpZq9SmsSjJvhXy7OruEUzYLVi5QvY3bmnoM3Esq/V0xDMsT4a/Q/PDjJ8\nXO1hj2DxaMLI8yfdPs87LEP8dtWwvSniJASCWhbUqivn2DT7rtcxZtDGeplO\n9JBjkZhq+1EoD2YoJO44Icbtp+Gs3f9PuVk50b65t4Luxxfzr/A6ukSytp6w\n0lIsXSskDZahqwdBJn6ue1fVsX4Hz4/B4uNVwavN6BbkNCbfKBJCjoNcMCCJ\n5tz1N+wmT5IJtZwguZHQKndws6qy8clVgcgHU4Rb2m8bEsy/h/KOOXtcGpuQ\nDviI\r\n=h0r/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLYpKrl1abx7+wNO42UaXHK118j4oz7o2i8O0wejAU/gIgXfsGKJk1eS5e6FORFTsS3OmKAwr2Cz0ycVI/taSUPgE="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.36_1535656843186_0.4597165657596578"},"_hasShrinkwrap":false},"1.0.37":{"name":"topological","version":"1.0.37","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.9"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"910af3a610dfd2509b37028252f77f73c9d603a8","_id":"topological@1.0.37","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-XjivC/E7c/YjS09fZ3W92GdCYSb5UjxMUdPr9H1xlgDuRFjJIhOWLPWrSramCDxgWUHpkK7rUS4wF2KXKlxhkQ==","shasum":"3ba06eb4bf1eb573facec4b62a9c6d1a1385efb3","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.37.tgz","fileCount":16,"unpackedSize":100247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiGOSCRA9TVsSAnZWagAApVgP/0I8otj97tiKaCAsSx0c\n25FHcjC0mMyessnNTMCtPUFwHGJEiAfckDjLgqF1PGoe/MWpJqsM1jT99qgz\nTr4NYSluDYKAtPGleMXs//TRMKAngr+xOpdy8zsAbvwByNJn0aG3Crm6SG0G\nvVJbK/SP4ZjDPHF2O/1Y/wPVkcg4qgsMTnW+1gk2BRLUPARgd4DKuQNS6h7A\n/CBH434BvzqF4XdJzaGpWQVWKGV7DmiIKJk6BVXGubiqbwsIZsVWqgOkcXGV\n0EgFOPPBCoCTZusvW9yAMjdVI76SLIgF2yQPYny9R1qAe2SlQ7K//E6ht0jv\nF/dVMjKBGaph0UXnsmwDOGqnMkw8IUgykOEWI9InSzzMtH2IkSWREysl6LVx\ngQbnVibslATPr0FWKTyp5cblpsl7pSAklazoGAGW8B5X3DBDrhxjut2R57Ux\nWY6h0l4nv/xqwruaOszSjF029too3TEGq0B+k4cEUYqgE2Qtp2TGHmRdjH9R\nkvvgvrWDAAA6kP9k/PR9bCwPTUM9orAa0Ikq2tKt5AjtzCSuvC+pQy0Nrfc8\n7Wogd5BfEC55hdxOWiMMGEdBL8zFikl/S97iPcQuMKE5FYBJ/VZ2B3Y0XONr\nx3o4pBrwUoUKNUw1NguJaZ9JCUKYDT5NctzVwTG5u1ZUUSRRLXeenHfX5URm\no1Yf\r\n=1cmA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSHAuy2lYYbD3ggm5F+xyn9FhoiNWugCSCnquvfs7ogAiEArBtyPV6ulTCV+6PniMwUPsAQe1rU7XAqq4KfFl92Po8="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.37_1535665041460_0.5116860732650401"},"_hasShrinkwrap":false},"1.0.38":{"name":"topological","version":"1.0.38","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.9"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"910af3a610dfd2509b37028252f77f73c9d603a8","_id":"topological@1.0.38","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-R5WlTqvzkkQD2SP6sA2G9o1Gdh2KNKtl7Jm8p4RxEBqHMRbrcYCzli2LHymsohP5AVhafg+wRm49/8FedyU8Ow==","shasum":"610929e13a046849f3e56f3f7016f0cf715b19e9","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.38.tgz","fileCount":16,"unpackedSize":100927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjDwqCRA9TVsSAnZWagAAN6YQAJXTppN9YfPTgQ+6MRQZ\ndifREpGhftJpTKjLoj69fkPHu+r4Qr9gmTGw2DXUBdouLzmufG9AliNATU2c\nIe/OlnfqkYj1b5kXmffhN7wnYx7I8dQmt8gxC+Rdxt9whZ4cwzv5aHydO5bF\nUCyA38e7Qj/a2lzXFFAJpi1MxKUOIY9o5LXCT+LP8u2RUe2L//L/kA8HMM4O\nkFTxG66oTw7Qc5VXR1VL6r/4A7O+z4Lx5eXHdm+eXYm2iOn5BblzG/FdaISd\nm8sHvLj5bMk+7GNqy020fEnZx3b3TyXMQ8wCBESdL4tm55NmxsuvNCYEE8BN\nUPHhgrpRnFC3N6jq6csvR1y/f0alGYrgjiAARcnRsl9Zw/NkEHb6Z9mEi7dD\n0PhecBCwwZN+ETsDWU7KSx3W4BEr7HkGyscNxEd7pGWU+NBC3Haa2DWUyyV8\nbGQLh4yJcC3+rk1NrgLDwR3ePStndDFahOonNVElrL6WOs3V2Ae0bi6CxJ6o\nR5Z9D3NHx7vd8dsec+bZGhngUWrdcn8791lRFJGAOg2ItaOUcJNzvJmeWUIu\n/e0t2qhXvU0e8HUu4MtZtY65cO5ppziWKsV3GeubICBxytM7JpihOi0s+qGj\nu4q3Us37QEtmcsPtDMD4zgCOX9Mqfn2TOgyNJ2CeUsYPRiGeM++vDvs29j1f\nDbB/\r\n=18D3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJSC5/jfdOJGCBXdz5kSyBtMbtBI2gAopyTrDN9RBOZAIgdKOGCkWVzKX7BECb3HClchnJIn321Gpj2OsDsMrZL8c="}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.38_1535917097759_0.215247581197336"},"_hasShrinkwrap":false},"1.0.39":{"name":"topological","version":"1.0.39","description":"Topological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as ","main":"index.js","scripts":{"test":"mocha --exit"},"author":{"name":"Tim Park"},"license":"MIT","devDependencies":{"mocha":"^4.1.0","topological-direct":"^1.0.9"},"dependencies":{"async":"^2.6.1","prom-client":"^11.1.1"},"gitHead":"609f4375cb3c7e0c1677fd921021421f0768a42a","_id":"topological@1.0.39","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"tpark","email":"timfpark@gmail.com"},"dist":{"integrity":"sha512-8xfiP+WOdZFppizcyEF3Gi6E0+pvC4Z+sOTrorwImu0Q4+x8DD16LGLJXlbZ0YjKWJLbo4QRq0RgI8aTKcXUSQ==","shasum":"5384b2fbde55253e18acd169abe1285c2e5aa094","tarball":"https://registry.npmjs.org/topological/-/topological-1.0.39.tgz","fileCount":16,"unpackedSize":100927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjDxRCRA9TVsSAnZWagAAynsP/1AJPU3OIksGwYxp+b8U\niG39Le7idh5gO2kl/b/39HfyC9dTJo8v15GG0lUQ66MMWYwhgN946mfFIEES\nruJaBITSy+dgfD1LamTLbaVw4CRb+GlU/DAJEnadkev4WsvpDUOTShL6/e7S\nDv5lfj5AgagUVtOc/cjKChW+6gjxv5cWYUEZbh0BVsB6DDLNq9EZxXRgURQv\njOL7sgf2sy6rEh/tnO5Cavveb8SnyIeo92XMCFrMv3HUeSVq4XRY/FXGtcvE\n04AsNCj2GEV3/iSZcFXvlIPKndmeTzMyCpGULTDaXc1kvedzz09kxE/Co6Fn\nYTUtV7VHxVgt8MrS5N/lyuSQcXa7hhxFuEVzwbW/KgaCpK3bUzW1c+0HOStx\nR4d5pydDcPNIrPZHPoHJjMS2bP9BGul/Kd17dGnidhPivcKXYVjmz4RQ96Hf\nRtcwkfv/oYFTdvrL4PpqMRxSR9tqx2ofwFuV0CyIYf1jN1VUuIAcf70Ut6BY\nt380Csv4B/ypIyU1zWaMjtVLIRJvYUjCqGri25h6DwBoq6jblQi9jBOxCQ0Y\ngGGH3/+ZGuH75oyY9kj0ilwGZVeqNIud7OFZeEooeDBrjcePURoHx4s2blyz\nWHrkzc0CaSU8CYiSyVsiu8fjvvWD57cAOd62jE4qYNfkAcXojJ/W4KVXhP2J\nux43\r\n=Y/p9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDEIPg83OIhWVGcddj7TW/V3AsGWllX2E81Z4VG3bziQIhAJZTt2BxkcUQIC7Olh3q5TSXW5aT+yPJrQjyABbEFfzR"}]},"maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/topological_1.0.39_1535917137242_0.4214222625281214"},"_hasShrinkwrap":false}},"readme":"# The Topological Framework\n\nTopological is a framework for building stream processing topologies, inspired by decades old dataflow processing patterns and more modern platforms like Apache Storm, that were designed to be as much about the distributed cluster they had to stand up as they were about the streaming development model that they enabled.\n\nIn contrast, Topological is built from the ground up to be cloud native, leveraging Kubernetes to deploy, scale, and isolate processing. Its simplicity and low overhead makes it as equally applicable to small task queue processing as large scale data pipelines with dozens of stages.\n\nTopological also strives for developer simplicity as wel: Developers largely only have to concern themselves with writing message processing logic. The framework handles the rest including connections to common pieces of infrastructure like message brokers and queues that are typically used to interconnnect stages of a data pipeline.\n\nFinally, Topological aims to make deploying and operating data pipelines easy as well. Topological's tooling automatically generates the Helm deployment templates to deploy and scale your topology into a Kubernetes cluster from a logical description of the topology. Topological also provides Prometheus counters and metrics endpoints out of the box, making it easy to monitor the operation of the pipeline in production.\n\n## A Simple First Pipeline\n\nLet's look at a simple example to see how Topological works. Let's say that we have a very simple data pipeline that processees a stream of numbers between 0 and 100 and keeps a running tally of the split between how many are greater and less than 50.\n\nThis sample is [available on GitHub](https://github.com/timfpark/topological-sample) and has no infrastructure dependencies, so you can run it locally to get a feel for how the framework works.\n\nWe first define a Connection, which typically is a connection to a message broker, queue, or other real data source, but to keep this simple, we'll use a connection that emits messages periodically based on a random number generator that looks like this:\n\n```\nclass RandomNumberConnection extends Connection {\n    stream(callback) {\n        setInterval(() => {\n            return callback(null, {\n                body: Math.random() * this.config.scaleFactor\n            });\n        }, 1);\n    }\n}\n```\n\nThe Connection class in Topological is very simple. It essentially defines an interface for how messages are transited into and out of a node. In this example, our connection implementation emits a random number every millisecond to the downstream processor.\n\nOur processor implementation for counting numbers is equally simple:\n\n```\nconst { Processor } = require('topological');\n\nclass CountProcessor extends Processor {\n    start(callback) {\n        this.bins = [];\n        for(let idx=0; idx < 10; idx += 1) {\n            this.bins[idx] = 0;\n        }\n        return callback();\n    }\n\n    process(message, callback) {\n        let number = message.body;\n        let bin = Math.floor(number / 10.0);\n\n        this.bins[bin] += 1;\n        this.output([{\n            bins: this.bins\n        }], callback);\n    }\n}\n```\n\nWe set up a set of ten bins in the start method, which is called when the processor is started within the topology, and then as each message is received by the process method, we increment the bin that it belongs to. Finally, the process message passes the current bin state onwards to its outputs. Note that the processor doesn't have any knowledge of how it receives receives messages or to what is connected to downstream. This seperation encourages a clean seperation of concerns and makes it easier to swap out connections with different implementations when necessary, say between a development and production environment.\n\nInstead, processors and connections are connected together loosely by a pipeline that looks like this:\n\n```\nlet countProcessor = new CountProcessor({\n    id: 'countProcessor'\n});\n\nlet countToPrintConnection = new DirectConnection({\n    id: 'countToPrintConnection'\n});\n\nlet randomNumberConnection = new RandomNumberConnection({\n    id: 'randomNumberConnection',\n    config: {\n        scaleFactor: 100\n    }\n});\n\nlet printProcessor = new PrintProcessor({\n    id: 'printProcessor',\n    config: {\n        printInterval: 1000\n    }\n});\n\nlet topology = new Topology({\n    id: 'topology',\n    nodes: [\n        new Node({\n            id: 'count',\n            inputs: [randomNumberConnection],\n            processor: countProcessor,\n            outputs: [countToPrintConnection]\n        }),\n        new Node({\n            id: 'print',\n            inputs: [countToPrintConnection],\n            processor: printProcessor,\n            outputs: []\n        })\n    ]\n});\n\ntopology.start();\n```\n\nEssentially, this instantiates all of the processors and connections, then defines the topology for how they all connect together and flow, and starts it. Under the covers, topological starts all the connections, streaming messages from them into processors, and from processors to output to connections. We can see this by running the solution:\n\n```\n$ npm install\n$ npm start\n\nThu Jan 11 2018 16:11:56 GMT-0800 (PST) total: 1000\n0-9: 113\n10-19: 101\n20-29: 103\n30-39: 107\n40-49: 114\n50-59: 93\n60-69: 82\n70-79: 99\n80-89: 93\n90-99: 95\n\nThu Jan 11 2018 16:11:57 GMT-0800 (PST) total: 2000\n0-9: 212\n10-19: 214\n20-29: 198\n30-39: 205\n40-49: 216\n50-59: 186\n60-69: 186\n70-79: 201\n80-89: 191\n90-99: 191\n```\n\nAs the random number connection is generating a thousand random numbers a second, PrintProcessor outputs the running total for each bucket roughly once a second.\n\n## Pipeline and Deployment Generation\n\nMost developers using Topological won't actually write the pipeline.js code we saw in the simple example, but instead, they will write a pipeline definition that Topological will use to automatically build both the pipeline implementation and the templates for deploying it into Kubernetes.\n\nFor this example, let's pretend we run a bus system and want to build a data pipeline to ingest our fleet's location in real time, make arrival predictions for each stop in its schedule, and notify smartphone users with the latest estimate. One potential data pipeline that implements this looks architecturally like this:\n\n![Bus Location Pipeline](./docs/location-pipeline.png)\n\nIn topological, we define this pipeline using a topology definition that looks like this:\n\n```\n{\n    \"name\": \"location-pipeline\",\n    \"nodes\": [{\n        \"id\": \"writeLocation\",\n        \"inputs\": [\"locations\"],\n        \"processor\": {\n            \"platform\": \"node.js\",\n            \"file\": \"./processors/writeLocation.js\"\n        },\n        \"outputs\": []\n    }, {\n        \"id\": \"predictArrivals\",\n        \"inputs\": [\"locations\"],\n        \"processor\": {\n            \"platform\": \"node.js\",\n            \"file\": \"./processors/predictArrivals.js\"\n        },\n        \"outputs\": [\"estimatedArrivals\"]\n    }, {\n        \"id\": \"notifyArrivals\",\n        \"inputs\": [\"estimatedArrivals\"],\n        \"processor\": {\n            \"platform\": \"node.js\",\n            \"file\": \"./processors/notifyArrivals.js\"\n        },\n        \"outputs\": []\n    }]\n}\n```\n\nThis definition is essentially a JSON respresentation of the underlying graph of processors and abstract connections between them for the data pipeline that is described in the diagram above. We combine that with a seperate deployment definition that looks like this:\n\n```\n{\n    \"target\": \"kubernetes\",\n    \"connections\": [{\n        \"id\": \"locations\",\n        \"type\": \"kafka\",\n        \"config\": {\n            \"id\": \"locations\",\n            \"keyField\": \"busId\",\n            \"topic\": \"locations\",\n            \"endpoint\": \"configMap:kafka-endpoint\"\n        }\n    }, {\n        \"id\": \"estimatedArrivals\",\n        \"type\": \"kafka\",\n        \"config\": {\n            \"id\": \"locations\",\n            \"keyField\": \"busId\",\n            \"topic\": \"estimatedArrivals\",\n            \"endpoint\": \"configMap:kafka-endpoint\"\n        }\n    }],\n    \"processors\": {\n        \"writeLocation\": {\n            \"config\": {\n                \"user\": {\n                    \"accessToken\": \"secret:access-token\"\n                }\n            }\n        },\n        \"notifyArrivals\": {\n            \"config\": {\n                \"user\": {\n                    \"accessToken\": \"secret:rhom-user-token\"\n                }\n            }\n        }\n    },\n    \"deployments\": {\n        \"writeLocations\": {\n            \"nodes\": [\n                \"writeLocation\"\n            ],\n            \"replicas\": {\n                \"min\": 2,\n                \"max\": 1\n            }\n        },\n        \"predictAndNotify\": {\n            \"nodes\": [\n                \"predictArrivals\",\n                \"notifyArrivals\"\n            ],\n            \"replicas\": {\n                \"min\": 2,\n                \"max\": 1\n            }\n        }\n    }\n}\n```\n\nSeperating deployment from topology details allows us to both extract the environment (dev vs. staging vs. production) and the deployment target (Kubernetes vs. let's say a serverless evnironment) from the topology definition. In this case, we have a production deployment with two pipeline stage deployments. The first houses only the writeLocation processor while the second houses both the predictArrivals and notifyArrivals processors.\n\nTopological can then take these definitions and produces Helm Kubernentes deployment templates with just one command:\n\n```\n$ npm install -g topological-cli\n$ topo build topology.json prod.json\n```\n\nThis can be run directly in the CI/CD pipeline to generate the physical deployment artifacts that are then deployed on success. For a Kubernetes deployment, this takes the form of helm deployment scripts, which automatically pipes through the secrets and config maps stored seperately and securely through environmental variables to the pipeline stage.\n","maintainers":[{"name":"tpark","email":"timfpark@gmail.com"}],"time":{"modified":"2022-05-22T01:48:33.234Z","created":"2017-12-09T20:27:42.996Z","1.0.0":"2017-12-09T20:27:42.996Z","1.0.1":"2017-12-12T13:27:08.917Z","1.0.2":"2017-12-12T20:51:18.771Z","1.0.3":"2017-12-12T20:53:19.164Z","1.0.4":"2017-12-12T20:54:54.243Z","1.0.5":"2017-12-14T16:34:00.314Z","1.0.7":"2017-12-14T22:26:24.482Z","1.0.8":"2017-12-15T19:43:19.742Z","1.0.9":"2017-12-20T16:27:45.303Z","1.0.10":"2017-12-20T18:49:59.959Z","1.0.11":"2017-12-27T17:05:28.947Z","1.0.12":"2017-12-27T23:59:56.724Z","1.0.13":"2018-01-02T23:43:21.451Z","1.0.14":"2018-01-04T17:56:03.071Z","1.0.15":"2018-01-04T18:25:48.189Z","1.0.16":"2018-01-05T18:03:38.475Z","1.0.17":"2018-01-05T18:23:44.652Z","1.0.18":"2018-01-05T18:38:20.576Z","1.0.19":"2018-01-05T21:56:14.368Z","1.0.20":"2018-01-05T22:06:01.963Z","1.0.21":"2018-01-08T17:38:57.111Z","1.0.22":"2018-01-09T03:41:05.071Z","1.0.23":"2018-01-09T03:42:48.660Z","1.0.24":"2018-01-09T03:43:17.691Z","1.0.25":"2018-01-09T03:47:16.964Z","1.0.26":"2018-01-11T17:00:11.258Z","1.0.27":"2018-01-12T16:20:40.642Z","1.0.28":"2018-01-12T19:42:17.168Z","1.0.29":"2018-01-23T02:22:07.143Z","1.0.30":"2018-03-27T18:38:00.956Z","1.0.31":"2018-08-20T19:09:40.329Z","1.0.32":"2018-08-23T23:13:28.591Z","1.0.33":"2018-08-30T15:34:59.649Z","1.0.34":"2018-08-30T16:46:08.991Z","1.0.36":"2018-08-30T19:20:43.321Z","1.0.37":"2018-08-30T21:37:21.741Z","1.0.38":"2018-09-02T19:38:18.012Z","1.0.39":"2018-09-02T19:38:57.427Z"},"license":"MIT","readmeFilename":"README.md","author":{"name":"Tim Park"}}