{"_id":"f","_rev":"29-9331587c93e61b901356c55b45d58b83","name":"f","description":"Functional Microservice Request Library","dist-tags":{"latest":"1.4.0"},"versions":{"0.0.1":{"author":{"name":"Enrico Marino","email":"enrico.marino@email.com","url":"http://onirame.no.de"},"name":"f","description":"JavaScript functional library","version":"0.0.1","homepage":"https://github.com/onirame/f","repository":{"type":"git","url":"git://github.com/onirame/f.git"},"main":"./index.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{},"_npmUser":{"name":"onirame","email":"enrico.marino@email.com"},"_id":"f@0.0.1","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"543268d6791c895334cf34b045cbc695bf72fb82","tarball":"https://registry.npmjs.org/f/-/f-0.0.1.tgz","integrity":"sha512-jwDqmZoVfvqysKgsbgOLFnK9U7cCr2eckuRPj5Ywf2tyxFKuyIjBMrv38+EicvVEJNjS49XuoE0SYLreDwdkMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuGVwdzDMztCFUH2wLC7sq3g3n5tA8iush8L37eRKu8QIhAI54LNbwp85+v9g5+0xvIjGNYOsflzV087Ag1J5rgIYP"}]},"maintainers":[{"name":"onirame","email":"enrico.marino@email.com"}]},"0.1.0":{"author":{"name":"Enrico Marino","email":"enrico.marino@email.com","url":"http://onirame.no.de"},"name":"f","description":"JavaScript functional library","version":"0.1.0","homepage":"https://github.com/onirame/f","repository":{"type":"git","url":"git://github.com/onirame/f.git"},"main":"./index.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{},"_npmUser":{"name":"onirame","email":"enrico.marino@email.com"},"_id":"f@0.1.0","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"e133e4ff80c99313c9eda426baaf285e11a13d89","tarball":"https://registry.npmjs.org/f/-/f-0.1.0.tgz","integrity":"sha512-GcgBUx1TdCL8zh3nIsEAcIlWKnixUo1uKNxR4/dZw/vmSADqNgkQnsrXLf5tAZS04INkZg4ubEgFxnZe9ewlvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4OY0LH1NWyZwsVdwMovEoe4TiZY5Qq1vWmdwzuzkosAiAHNZVWEM+CqQRn/mcNxmlFOybVrD2e1fyAtzm1+xj8+w=="}]},"maintainers":[{"name":"onirame","email":"enrico.marino@email.com"}]},"0.5.0":{"author":{"name":"Enrico Marino","email":"enrico.marino@email.com","url":"http://onirame.no.de"},"name":"f","description":"JavaScript functional library","version":"0.5.0","homepage":"https://github.com/onirame/f","repository":{"type":"git","url":"git://github.com/onirame/f.git"},"main":"./index.js","engines":{"node":"*"},"dependencies":{},"devDependencies":{},"_npmUser":{"name":"onirame","email":"enrico.marino@email.com"},"_id":"f@0.5.0","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"73ff50ff3da2856f409ba713f8231dbfc8812678","tarball":"https://registry.npmjs.org/f/-/f-0.5.0.tgz","integrity":"sha512-3D03GfKnr0Te/H8WW8HlcGHEjXWAbPnN1xtR9aCrXVmKMn7DM34ZUEC3yRr/lsFmhzx40y9VROGcptfgIAFfQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyrZ1Q8aIxIzxzW/ibzQBsbHq3ofD+hhFQGxmeGhiXIAiEA2mNYtPzzKjms+NpyvKRHzrAGEWP4c8GI1OAW5wPqaPc="}]},"maintainers":[{"name":"onirame","email":"enrico.marino@email.com"}]},"1.0.0":{"name":"f","version":"1.0.0","description":"Functional Microservice Request Library","main":"index.js","bin":{"f":"cli/bin.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"license":"MIT","gitHead":"473dacf360394486e944a1fc7800a0aa4fdb023d","_id":"f@1.0.0","_shasum":"aa114de4653e10e541ae1efd1594bdf9add6cd21","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"aa114de4653e10e541ae1efd1594bdf9add6cd21","tarball":"https://registry.npmjs.org/f/-/f-1.0.0.tgz","integrity":"sha512-IrLxmcNTKevz4mRKWjzgQlGQTr8Br4+UM/O1KRIgDXRD2auM0x9vSIEnq2ZtTtLHrhIAawy7HPAneIreoLXpRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFVJPSf7aun9geX+tXItkTKdFGU+CIpTl+ygAI54z3RgIgAabYvN2ZgBU8IeSBRsNSrRL1yXcqHw/5uhvJ/KFqNNY="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/f-1.0.0.tgz_1474397212554_0.08987183589488268"}},"1.0.1":{"name":"f","version":"1.0.1","description":"Functional Microservice Request Library","main":"lib/f.js","bin":{"f":"cli/bin.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"eec03a047f44d5bd986d65c88c3169e73222726c","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.0.1","_shasum":"4d87e6707ccaae751b18096e8c01483c621efcff","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"4d87e6707ccaae751b18096e8c01483c621efcff","tarball":"https://registry.npmjs.org/f/-/f-1.0.1.tgz","integrity":"sha512-4Uh0gjITKO4E3fkRg4W3mE4xT4lB8wVTs2yMBtCa7btrqRFb3cizHBzJi9gC47X0QndJyzFL/sYpL6CetIu0/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBBwtlC8cc1C5NU3G1ulsxHKUwb/a40YoeeQ1jTEl/AwIgAr/FIhkT/5uoLdPOK5tMXIhPNQYqNCve2WZnw3G+TXc="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/f-1.0.1.tgz_1474450453440_0.9501486937515438"}},"1.0.2":{"name":"f","version":"1.0.2","description":"Functional Microservice Request Library","main":"lib/f.js","bin":{"f":"cli/bin.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"bd2f4f5baa44b059e8cb5cf19c01012da421fbc5","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.0.2","_shasum":"3423d3b138d0d5e8dfc19f1023136d868ecc2088","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"3423d3b138d0d5e8dfc19f1023136d868ecc2088","tarball":"https://registry.npmjs.org/f/-/f-1.0.2.tgz","integrity":"sha512-oqiGf1hI/NyMquZX6jR4OHmiXkG01Uk6arcz5zKHJ2p8ys7+cKn+jzUB+r5kUBYd8Sjt2ghwAnFZfxwV13rymg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMwoOR6CfM1V49lt1O/yF4EA+Z8y9rBy4lx7BgNSq22AiBErLTpFTNnsjomTOtkrI5bePhuqQoMmX/sfH0Qj7ksCA=="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.0.2.tgz_1474455827968_0.3539920828770846"}},"1.1.0":{"name":"f","version":"1.1.0","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"78aa605f15120be7e558e440c84027b5d14b5f5a","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.1.0","_shasum":"a52de1f386fd4e2f3816817b69e2df77ad2574f6","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"a52de1f386fd4e2f3816817b69e2df77ad2574f6","tarball":"https://registry.npmjs.org/f/-/f-1.1.0.tgz","integrity":"sha512-zyFNrdiergzPrLn8zzAwEOX/vRvGgXShx2ZHAk2XhB3Yumutu0lDeyiLQS5Gfyrr4GwM91amYPwM4psU/BONkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjokJmqxOe2RHmKOPifpxan4wZPPG2xrObLs+n14m5uAiEAmEH/2Ip2Jt2R7WiNaZ3h6oWJIH8x6K3ofSNNwKvOAks="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/f-1.1.0.tgz_1477041149987_0.7490058275870979"}},"1.1.1":{"name":"f","version":"1.1.1","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"186eb9721480a073023e3f90c1c094dc976183ec","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.1.1","_shasum":"e72b99aa3b6f025487dcaf7ebad0321b37d5bf88","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"e72b99aa3b6f025487dcaf7ebad0321b37d5bf88","tarball":"https://registry.npmjs.org/f/-/f-1.1.1.tgz","integrity":"sha512-pAn7A2aAHB2iq6WgFYlbmHlvt3yzIswBIY4/P1bczuSC9yrP3jvHG8m/GDmVps63gknuPg1LaXiPjeOwEoOWSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxFMKXhUS7k4MSmkXXBb2TnHJmspdXFoOOFjWoxbTvigIhANdrscG5wVx2rcZ61c5Ee7Y1w45ylmqbknHwiIk0KDNt"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/f-1.1.1.tgz_1481310006101_0.8040621753316373"}},"1.2.0":{"name":"f","version":"1.2.0","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"d71316deeeceb3ca8d56413ac35a7e4ceaf3b481","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.2.0","_shasum":"54acf2f2564b8ffa39cbc10ca7ac4ac6d93448f8","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"54acf2f2564b8ffa39cbc10ca7ac4ac6d93448f8","tarball":"https://registry.npmjs.org/f/-/f-1.2.0.tgz","integrity":"sha512-qd/z2NEXxstp+pVGgNz3rAabG8dBE+sHEB54CSK/minWIbzSmPtt7baOA/hWtN2f9zUTzMtUaKDYXncMHFKVxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX1nlXfQYls882nTQt0zDi+JrqKjFt4S5ENiF85U0/DAIhAOWxdFYYzmJILmLq3d4qR6ObhgYo3ac2aX/+CmW8Vwxz"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/f-1.2.0.tgz_1481674269494_0.12399637699127197"}},"1.2.1":{"name":"f","version":"1.2.1","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"cc2a80c7b6e7bb1b470300579c9c8ade02a1db66","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.2.1","_shasum":"1d3a9a36416f93f4b2c42b1a9568c717661803ed","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"1d3a9a36416f93f4b2c42b1a9568c717661803ed","tarball":"https://registry.npmjs.org/f/-/f-1.2.1.tgz","integrity":"sha512-Un+DbbCni412uxBTAqT88KxBbQpUHVn/8+/wOdpdTOTfRqjxLhwcurapsf2pNGiUuVnFLAs+tOMwZTZ8UETZ7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVIblokF4YgN0nQzLQTnqarygzwks+3ZvT7xITk02O+wIhAJRfRiqNeNhtFsNujUpfUWFNGkUUYV7T3VPIl62BdNyn"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.2.1.tgz_1481705381936_0.8978233782108873"}},"1.2.2":{"name":"f","version":"1.2.2","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"abde3fd1fec476c52f2b617f846181d1b2c6947b","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.2.2","_shasum":"4f658a0617c2c11eefa8b6b6a119cf1815ecefc7","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"4f658a0617c2c11eefa8b6b6a119cf1815ecefc7","tarball":"https://registry.npmjs.org/f/-/f-1.2.2.tgz","integrity":"sha512-jwCCugxYIlWV+sLkqrZkANMlFM4FU04VXoBWdb91lDoPAhva5Mxt9VGbYnGQ5z+aDzs1ej4JBq0fNUk9EXp9BA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAAiE93UQBBWbM/HppQ8lSoQ6zhU31QD9REGcyDL7WWAIhAKifCTNLpOBrTkjZLSlUvbYu92zuBvdDeK60lqxLmGle"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/f-1.2.2.tgz_1481705567200_0.9862017545383424"}},"1.2.3":{"name":"f","version":"1.2.3","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"8d4a43c3e8d3052b9b3ba2c8b34e2f6df7b9c09c","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.2.3","_shasum":"d96dc08caefac3e90238c3985be09c53949892ed","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"d96dc08caefac3e90238c3985be09c53949892ed","tarball":"https://registry.npmjs.org/f/-/f-1.2.3.tgz","integrity":"sha512-hUjjqX2Z/9mPFjLjwie1p2tXn61A3/yEBSPjaoLBswxNFzzRdiiSlTAfdZfOOb/Q7I7MddOLCmTe87AytZJ5KA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDObZLiXmbs4qGrXAIVCsmlKCCehjEXpWuqeOhvQXj2ZQIge2+XyDClhBT/uy3tKNUrSYK4wFsvoIBoo5YsANlsIvU="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.2.3.tgz_1482117455189_0.35662848013453186"}},"1.3.0":{"name":"f","version":"1.3.0","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"9799bd0965fc463d88d56780303bbf592ba19dfb","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.3.0","_shasum":"b4eddfd4aa0cb6c9c353e6b9c16a3094659de302","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"b4eddfd4aa0cb6c9c353e6b9c16a3094659de302","tarball":"https://registry.npmjs.org/f/-/f-1.3.0.tgz","integrity":"sha512-W5oWPNeCfAhk2uUqXoiJJI5h6FM853LB5nMDFrB500C3jvfbBDAGG9gijxwVfywYC26rd8Vs39KBqudWdDJ5Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQQFAcIniYNvcvNOA7eFER0W414nfeCPg5kaKz13A1GgIgaLqoQvAWXhbFvojfUFGUvVkHPx6JBsAydgnSs2zSN3E="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.3.0.tgz_1482118168436_0.5350318374112248"}},"1.3.1":{"name":"f","version":"1.3.1","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"2d3a3f86c951025ee5a241f9ff9c1e48eda4102f","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.3.1","_shasum":"6398fb094054ee87bc210c7e2ee90c45faa1311a","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"6398fb094054ee87bc210c7e2ee90c45faa1311a","tarball":"https://registry.npmjs.org/f/-/f-1.3.1.tgz","integrity":"sha512-ZCAwDNGmVMirU8aNjqm4Joe9s8Uu+LtRsiIzhXZyEqdCLAP0K+5IRzOkQBrCgXePu7I6YozytXVAb9XKclzNAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDBdN2SBPCgWVXbCaZi3fTQW/ui9WENmkiRjN9tF3NTgIgJicxB2j+AI4VoB/f4rikVNfmbE5l35UBXxO0BFTwpLQ="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.3.1.tgz_1482119254588_0.4581169565208256"}},"1.3.2-dev":{"name":"f","version":"1.3.2-dev","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"48be706edbe4ed116c315d0e2f0c48a25552c466","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.3.2-dev","_shasum":"74480e7675719009e853ccccf3ed4bdca35c3161","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"74480e7675719009e853ccccf3ed4bdca35c3161","tarball":"https://registry.npmjs.org/f/-/f-1.3.2-dev.tgz","integrity":"sha512-qXfrmnV35ttRaKJ+3UWjxYHFOP9Q0N3dEp6TDgzLX0Mpuwvdg5tq6PqRkZr2/9GuLKTUHnG8myAG49omIxRqPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGWZt1mwBwQzoPfe+KhAx/8ZpWWgy3uKfD5oxHQ+tlxAIhAO1vsUPGFIPmITUoqq2LpQmrNWtIkgmlNL3qD0k9rIhK"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.3.2-dev.tgz_1482209483422_0.33314808178693056"}},"1.3.2":{"name":"f","version":"1.3.2","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"c56292eb017a61081bf6973aa26d75201feab73b","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.3.2","_shasum":"9fd4214ea15e46eb533b8526629e78d6eadd0f55","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"9fd4214ea15e46eb533b8526629e78d6eadd0f55","tarball":"https://registry.npmjs.org/f/-/f-1.3.2.tgz","integrity":"sha512-CfHQdyhBhAZMYr5cpgetp/03qWSRxZKIZYaZyscUZqJH+7T5h+YtMbDhREGXHy/UHJKZnu8QZXI+om4IHeEsrQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICZ1DYaip7p4PVGagB3SyNxocSqE4s3uluwO2GbCmpIXAiBB4A5ATeFdWNN6YgHNl2zTxPdaoAvS3qPDf24OtD85Vg=="}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/f-1.3.2.tgz_1484672368911_0.34805624396540225"}},"1.4.0":{"name":"f","version":"1.4.0","description":"Functional Microservice Request Library","main":"lib/f.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Keith Horwood"},"repository":{"type":"git","url":"git://github.com/poly/f.git"},"license":"MIT","gitHead":"52f4a545115bd7e93ea9b96c21816c9e1588faa9","bugs":{"url":"https://github.com/poly/f/issues"},"homepage":"https://github.com/poly/f#readme","_id":"f@1.4.0","_shasum":"4952b44d9ce451ce6ecf64f8cb503dfe24a8fd02","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.1","_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"dist":{"shasum":"4952b44d9ce451ce6ecf64f8cb503dfe24a8fd02","tarball":"https://registry.npmjs.org/f/-/f-1.4.0.tgz","integrity":"sha512-THMsoTpFuIFoQ538jpbW7x/9pVaE0jdKN2O+nd7xpeUT17lECGX8M+QOaZ186ipc3XSzSFOytaXFidItHix44Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmfbQogi3pTdJG8VZJPGFmabI6J/AAJ83fuuCK/odskQIhAOmZh/hLyVxm4idEEs8DL2L2W90aXNOcT3fHgcx5TcW8"}]},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/f-1.4.0.tgz_1492757386049_0.786115437746048"}}},"readme":"# ![f](http://stdlib.com/static/images/f-128.png)\n## Functional Microservice Request Library\n\n`f` is a Functional Microservice Request Library. It's a zero-dependency module\nthat wraps HTTP(S) requests, intended for use with stateless, functional\nmicroservices. It's built to work out-of-the-box with services created using\n[the stdlib microservice registry](https://stdlib.com), but can be\nconfigured to use any gateway (and associated platform or infrastructure provider).\n\n## Installation\n\n### Node.js\n\nFor usage in an existing Node.js project, add it to your dependencies:\n\n```\n$ npm install f\n```\n\nAnd use it with the following line wherever you need it:\n\n```javascript\nconst f = require('f');\n```\n\n### Web\n\nUsing Bower...\n\n```\n$ bower install poly/f\n```\n\nOr, simply copy `web/f.js` to wherever you keep your vendor scripts and include\nit as a script:\n\n```html\n<script src=\"path/to/f.js\"></script>\n```\n\n## How do I use f?\n\n`f` creates HTTP(S) requests following a custom specification that maps very\nclosely to function invocation you're used to (as if it were running in a\n\tnative environment). Let's say we have a microservice running on\n\t[stdlib](https://stdlib.com) that calculates great-circle distances given\n\ttwo sets of coordinates using the [Haversine formula](https://en.wikipedia.org/wiki/Haversine_formula).\n\nThe call to this service using `f`, might look like this;\n\n```javascript\n// Calculate distance from Toronto to San Francisco\nf('polybit/haversine')({\n\tfrom: [43.65, -79.38],\n\tto: [37.77, -122.42]\n}, (err, result) => {\n\n\tconsole.log(result); // logs 3644329 (metres!)\n\n});\n```\n\n## Parameters: Arguments and Keyword Arguments\n\nUsually when we make HTTP requests we think of querystring parameters, form-data,\nurlencoded variables and of course, json. With `f`, our goal is to standardize\nthe way functional microservices are invoked (and deal with parameters) by\nreferencing familiar concepts; function *arguments* and *keyword arguments*.\n\nArguments (`args`) are passed to functions as an array of basic JSON types\n(non-objects); number, boolean, string, null. Keyword arguments are allowed to\nbe anything JSON-serializable (Objects and Arrays). The basic structure for\nfunction calls with `f` is the following;\n\n```javascript\nlet fn = f('route/to/function');\nfn(arg_1, ..., arg_n, {kwarg_1: val_1, ... kwarg_n: val_n}, callback);\n```\n\nThis maps to an HTTP request with the following POST data in the body;\n\n```\n{\n\t\"args\": [arg_1, ..., arg_n],\n\t\"kwargs\": {\n\t\t\"kwarg_1\": val_1,\n\t\t...\n\t\t\"kwarg_n\": val_n\n\t}\n}\n```\n\nWhich should be interpreted by a functional microservice (server-side) as;\n\n```javascript\nmodule.exports = (params, callback) => {\n\t// params.args == [arg_1, ..., arg_n]\n\t// params.kwargs == {kwarg_1: val_1, ..., kwarg_n: val_n}\n\tcallback(null, 'Hello World');\n};\n```\n\n**Note** that every parameter is optional. It's up to whoever creates the\nmicroservice to lay out the expectation of which arguments / keyword arguments\nare supported, which can be done using descriptions on services like\n[stdlib](https://stdlib.com) or [GitHub](https://github.com).\n\n## Sending Files\n\nTo send raw file (`Buffer`) data, simply provide `'file'` as a string to the\nsecond argument when referencing the function:\n\n```javascript\nf('path/to/func', 'file')(new Buffer(0), callback);\n```\n\nThis will send POST data with exactly the `Buffer` contents.\n\n## Configuring Gateway\n\nIf you don't feel like using stdlib's gateway at https://f.stdlib.com/, simply\nconfigure the gateway as follows;\n\n```javascript\nconst f = require('f');\nf.config.gateway = {\n\thost: 'my.host',\n\tport: 8080,\n\tpath: '/'\n};\n```\n\nYou can, alternatively, pass in custom configuration as a third parameter on a\nper-function basis.\n\n```javascript\nlet fn = f('path/to/func', 'json', {host: 'my.host', port: 8080, path: '/'});\nfn(arg0, ..., callback);\n```\n\n## Why Use Microservices?\n\nMicroservices are tremendously useful for offloading computationally\nexpensive tasks from your core infrastructure, or providing standardized\nfunctionality to many different systems (at the cost of a few ms of network latency).\n\nAn example would be image processing. Resizing, cropping and editing may not be\ndone frequently on your webserver, but when it does happen, it can slow everything\ndown. Offloading to a scalable, stateless microservice that your application simply\ncalls via the `f` module is a simple solution.\n\nAnother example would be the haversine distance formula given above. You may\nhave found a great npm package, but what if that service functionality needs\nto be shared across multiple applications written in different languages? Python\nand Ruby are both capable of making simple HTTP requests to a microservice, but\ndo not share packages in common with the Node ecosystem. Microservices solve\nthis problem.\n\nWe plan to have more SDKs out in the coming months. :)\n\n## Where can I find Microservices to use?\n\nYou can find a list of available microservices on [stdlib's search page](https://stdlib.com/search),\nwhere the `f` team (Polybit Inc.) is hard at work creating a central registry\nof microservices for the web. Feel free to test drive a basic service or create\nyour own.\n\nYou can create microservices using the [stdlib CLI tools](https://github.com/poly/stdlib),\nbut microservice development is out of the scope of the `f`\npackage directly. It is handled on a platform and infrastructure provider basis.\n\n## Thanks!\n\nThe `f` package is &copy; 2016 Polybit Inc. and happily MIT licensed.\n\nGo wild! Contributors welcome, but we ask that PRs don't introduce\ndependencies and mostly focus on bugfixes and usability.\n\nSign up for [stdlib: A Standard Library for Microservices](https://stdlib.com).\n\nFollow us on Twitter [@polybit](https://twitter.com/polybit).\n","maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"time":{"modified":"2022-06-17T23:07:22.942Z","created":"2012-02-26T19:35:03.172Z","0.0.1":"2012-02-26T19:35:05.490Z","0.1.0":"2012-03-15T16:33:36.267Z","0.5.0":"2012-03-16T18:15:36.469Z","1.0.0":"2016-09-20T18:46:55.761Z","1.0.1":"2016-09-21T09:34:17.311Z","1.0.2":"2016-09-21T11:03:48.218Z","1.1.0":"2016-10-21T09:12:32.363Z","1.1.1":"2016-12-09T19:00:07.895Z","1.2.0":"2016-12-14T00:11:11.520Z","1.2.1":"2016-12-14T08:49:42.175Z","1.2.2":"2016-12-14T08:52:49.270Z","1.2.3":"2016-12-19T03:17:35.422Z","1.3.0":"2016-12-19T03:29:28.702Z","1.3.1":"2016-12-19T03:47:34.828Z","1.3.2-dev":"2016-12-20T04:51:23.651Z","1.3.2":"2017-01-17T16:59:30.663Z","1.4.0":"2017-04-21T06:49:46.495Z"},"author":{"name":"Keith Horwood"},"readmeFilename":"README.md","license":"MIT","homepage":"https://github.com/poly/f#readme","repository":{"type":"git","url":"git://github.com/poly/f.git"},"bugs":{"url":"https://github.com/poly/f/issues"},"users":{"shiningray":true}}