{"_id":"argo-server","_rev":"43-fe57dc3caa792728486c6f146be5e7b6","name":"argo-server","description":"Deprecated.  Please use `npm install argo`.","dist-tags":{"latest":"0.0.0"},"versions":{"0.1.2":{"name":"argo-server","version":"0.1.2","description":"An extensible, asynchronous HTTP reverse proxy and origin server.","main":"argo.js","directories":{"example":"example"},"license":"MIT","scripts":{"test":"node_modules/.bin/mocha -R spec","coverage":"bin/_coverage"},"repository":{"type":"git","url":"git://github.com/argo/argo.git"},"author":{"name":"Kevin Swiber","email":"kswiber@gmail.com"},"readmeFilename":"README.md","devDependencies":{"mocha":"~1.8.1"},"readme":"# Argo\n\nAn extensible, asynchronous HTTP reverse proxy and origin server.\n\n<!-- Argo is:\n\n* An API-focused HTTP server.\n* A reverse proxy to manage and modify HTTP requests and responses.\n* Modular using handlers for request and response pipelines.\n* Extensible using a package system.\n\nAs an API server:\n\n* Route requests to handlers.\n* Separate resources into modules.\n\nAs a reverse proxy:\n\n* Route requests to backend servers.\n* Transform HTTP messages on the fly.\n* Add OAuth 2.0 support to an existing API.\n* Create a RESTful API façade over legacy systems.\n-->\n\n## Examples\n\n### Adding Cross-Origin Resource Sharing\n\nSetup the server:\n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .use(function(addHandler) {\n    addHandler('response', function(env, next) {\n      env.response.setHeader('Access-Control-Allow-Origin', '*');\n      next(env);\n    });\n  })\n  .target('http://weather.yahooapis.com')\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/forecastrss?w=2467861\n\nHTTP/1.1 200 OK\nDate: Thu, 28 Feb 2013 20:55:03 GMT\nContent-Type: text/xml;charset=UTF-8\nConnection: keep-alive\nServer: YTS/1.20.13\nAccess-Control-Allow-Origin: *\nContent-Length: 2337\n\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<GiantXMLResponse/>\n```\n\n### Serving an API Response \n\nSetup the server: \n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .get('/dogs', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.statusCode = 200;\n      env.response.body = { dogs: ['Alfred', 'Rover', 'Dino'] };\n      next(env);\n    });\n  })\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/dogs\n\nHTTP/1.1 200 OK\nContent-Type: application/json\nContent-Length: 34 \nDate: Thu, 28 Feb 2013 20:44:46 GMT\nConnection: keep-alive\n\n{\"dogs\":[\"Alfred\",\"Rover\",\"Dino\"]}\n```\n\n## Install\n\n```bash\n$ npm install argo-server\n```\n\n## Usage\n\n### use(addHandlerFunction)\n\nParameters:\n\n`addHandler` has the signature `addHandler(type, [options], handler)`. The `addHandlerFunction` is used to set up request and response handlers.  \n\n#### `addHandler` Parameters:\n\n`type`: `'request'` or `'response'`\n\n`options`: Mostly used for internal purposes.  Optional.\n\n`handler`: A request or response handler.  `handler` has the signature `handler(env, next)`.\n\n#### `handler` Parameters:\n\n`env` is an environment context that is passed to every handler.\n\n`next` is a reference to the next function in the pipeline.\n\nWhen the handler is complete and wishes to pass to the next function in the pipeline, it must call `next(env)`.\n\nIt's implemented like so:\n\n```javascript\nargo()\n  .use(function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.request.headers['X-Custom-Header'] = 'Yippee!';\n      next(env);\n    });\n  })\n```\n\n### use(package)\n\nAlias for `include(package)`.\n\n### target(uri)\n\n`target` is used for proxying requests to a backend server.\n\nParameters:\n\n`uri`: a string pointing to the target URI.\n\nExample:\n\n```javascript\nargo()\n  .target('http://weather.yahooapis.com')\n```\n\n### route(path, [options], addHandlerFunction)\n\nParameters:\n\n`path`: a string used to match HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`addHandlerFunction`: Same as in `use`.\n\nExample:\n\n```javascript\nargo()\n  .route('/greeting', function(addHandler) {\n    addHandler('request, function(env, next) {\n      env.response.statusCode = 200;\n      env.response.headers = { 'Content-Type': 'text/plain' };\n      env.response.body = 'Hello World!';\n \n      next(env);\n    });\n  })\n```\n\n### get(path, addHandlerFunction)\n### post(path, addHandlerFunction)\n### put(path, addHandlerFunction)\n### del(path, addHandlerFunction)\n### options(path, addHandlerFunction)\n### trace(path, addHandlerFunction)\n\nMethod filters built on top of `route`.\n\nExample:\n\n```javascript\nargo()\n  .get('/puppies', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.body = JSON.stringify([{name: 'Sparky', breed: 'Fox Terrier' }]);\n      next(env);\n    });\n  })\n```\n\n### map(path, [options], argoSegmentFunction)\n\n`map` is used to delegate control to sub-Argo instances based on a request URI path.\n\nParameters:\n\n`path`: a string used to match the HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`argoSegmentFunction`: a function that is passed an instance of `argo` for additional setup.\n\nExample:\n\n```javascript\nargo()\n  .map('/payments', function(server) {\n    server\n      .use(oauth)\n      .target('http://backend_payment_server');\n  })\n```\n\n### include(package)\n\nParameters:\n\n`package`: An object that contains a `package` property.\n\nThe `package` property is a function that takes an argo instance as a paramter and returns an object that contains a `name` and an `install` function.\n\nExample:\n\n```javascript\nvar superPackage = function(argo) {\n  return {\n    name: 'Super Package',\n    install: function() {\n      argo\n        .use(oauth)\n        .route('/super', require('./super'));\n    }\n  };\n};\n\nargo()\n  .include(superPackage)\n```\n\n### listen(port)\n\nParameters:\n\n`port`: A port on which the server should listen.\n\n## Tests\n\nUnit tests: \n\n```bash\n$ npm test\n```\n\nTest Coverage:\n\n```bash\n$ npm run-script coverage\n```\n\n## On the Roadmap\n\n* HTTP Caching Support\n* Collapsed Forwarding\n* Parameterized Routing\n* Rate Limiting\n\n## License\nMIT\n","_id":"argo-server@0.1.2","dist":{"shasum":"ca4670859a22dd200bddfaa75b69aff09c9e9170","tarball":"https://registry.npmjs.org/argo-server/-/argo-server-0.1.2.tgz","integrity":"sha512-c+UMTzn63/OtVHsbMthmLS2G/ws9ihSJeyyL3YbI2ZUJCYMiuCum3tovqkIwaQHKqHxpx1AtUz0SsEm7vBF2Rg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICJ0djGBakgo+sFqUtUgZf6qa8tpE3+ckl5+O2f2QcEUAiAUUIWB+ff6OY4bkQDsK+jEUdAXI4p1CzI37xp3izRdgw=="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"kevinswiber","email":"kswiber@gmail.com"},"maintainers":[{"name":"kevinswiber","email":"kswiber@gmail.com"}]},"0.1.3":{"name":"argo-server","version":"0.1.3","description":"An extensible, asynchronous HTTP reverse proxy and origin server.","main":"argo.js","directories":{"example":"example"},"license":"MIT","scripts":{"test":"node_modules/.bin/mocha -R spec","coverage":"bin/_coverage"},"repository":{"type":"git","url":"git://github.com/argo/argo.git"},"author":{"name":"Kevin Swiber","email":"kswiber@gmail.com"},"readmeFilename":"README.md","devDependencies":{"mocha":"~1.8.1"},"readme":"# Argo\n\nAn extensible, asynchronous HTTP reverse proxy and origin server.\n\n<!-- Argo is:\n\n* An API-focused HTTP server.\n* A reverse proxy to manage and modify HTTP requests and responses.\n* Modular using handlers for request and response pipelines.\n* Extensible using a package system.\n\nAs an API server:\n\n* Route requests to handlers.\n* Separate resources into modules.\n\nAs a reverse proxy:\n\n* Route requests to backend servers.\n* Transform HTTP messages on the fly.\n* Add OAuth 2.0 support to an existing API.\n* Create a RESTful API façade over legacy systems.\n-->\n\n## Examples\n\n### Adding Cross-Origin Resource Sharing\n\nSetup the server:\n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .use(function(addHandler) {\n    addHandler('response', function(env, next) {\n      env.response.setHeader('Access-Control-Allow-Origin', '*');\n      next(env);\n    });\n  })\n  .target('http://weather.yahooapis.com')\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/forecastrss?w=2467861\n\nHTTP/1.1 200 OK\nDate: Thu, 28 Feb 2013 20:55:03 GMT\nContent-Type: text/xml;charset=UTF-8\nConnection: keep-alive\nServer: YTS/1.20.13\nAccess-Control-Allow-Origin: *\nContent-Length: 2337\n\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<GiantXMLResponse/>\n```\n\n### Serving an API Response \n\nSetup the server: \n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .get('/dogs', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.statusCode = 200;\n      env.response.body = { dogs: ['Alfred', 'Rover', 'Dino'] };\n      next(env);\n    });\n  })\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/dogs\n\nHTTP/1.1 200 OK\nContent-Type: application/json\nContent-Length: 34 \nDate: Thu, 28 Feb 2013 20:44:46 GMT\nConnection: keep-alive\n\n{\"dogs\":[\"Alfred\",\"Rover\",\"Dino\"]}\n```\n\n## Install\n\n```bash\n$ npm install argo-server\n```\n\n## Usage\n\n### use(addHandlerFunction)\n\nParameters:\n\n`addHandler` has the signature `addHandler(type, [options], handler)`. The `addHandlerFunction` is used to set up request and response handlers.  \n\n#### `addHandler` Parameters:\n\n`type`: `'request'` or `'response'`\n\n`options`: Mostly used for internal purposes.  Optional.\n\n`handler`: A request or response handler.  `handler` has the signature `handler(env, next)`.\n\n#### `handler` Parameters:\n\n`env` is an environment context that is passed to every handler.\n\n`next` is a reference to the next function in the pipeline.\n\nWhen the handler is complete and wishes to pass to the next function in the pipeline, it must call `next(env)`.\n\nIt's implemented like so:\n\n```javascript\nargo()\n  .use(function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.request.headers['X-Custom-Header'] = 'Yippee!';\n      next(env);\n    });\n  })\n```\n\n### use(package)\n\nAlias for `include(package)`.\n\n### target(uri)\n\n`target` is used for proxying requests to a backend server.\n\nParameters:\n\n`uri`: a string pointing to the target URI.\n\nExample:\n\n```javascript\nargo()\n  .target('http://weather.yahooapis.com')\n```\n\n### route(path, [options], addHandlerFunction)\n\nParameters:\n\n`path`: a string used to match HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`addHandlerFunction`: Same as in `use`.\n\nExample:\n\n```javascript\nargo()\n  .route('/greeting', function(addHandler) {\n    addHandler('request, function(env, next) {\n      env.response.statusCode = 200;\n      env.response.headers = { 'Content-Type': 'text/plain' };\n      env.response.body = 'Hello World!';\n \n      next(env);\n    });\n  })\n```\n\n### get(path, addHandlerFunction)\n### post(path, addHandlerFunction)\n### put(path, addHandlerFunction)\n### del(path, addHandlerFunction)\n### options(path, addHandlerFunction)\n### trace(path, addHandlerFunction)\n\nMethod filters built on top of `route`.\n\nExample:\n\n```javascript\nargo()\n  .get('/puppies', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.body = JSON.stringify([{name: 'Sparky', breed: 'Fox Terrier' }]);\n      next(env);\n    });\n  })\n```\n\n### map(path, [options], argoSegmentFunction)\n\n`map` is used to delegate control to sub-Argo instances based on a request URI path.\n\nParameters:\n\n`path`: a string used to match the HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`argoSegmentFunction`: a function that is passed an instance of `argo` for additional setup.\n\nExample:\n\n```javascript\nargo()\n  .map('/payments', function(server) {\n    server\n      .use(oauth)\n      .target('http://backend_payment_server');\n  })\n```\n\n### include(package)\n\nParameters:\n\n`package`: An object that contains a `package` property.\n\nThe `package` property is a function that takes an argo instance as a paramter and returns an object that contains a `name` and an `install` function.\n\nExample:\n\n```javascript\nvar superPackage = function(argo) {\n  return {\n    name: 'Super Package',\n    install: function() {\n      argo\n        .use(oauth)\n        .route('/super', require('./super'));\n    }\n  };\n};\n\nargo()\n  .include(superPackage)\n```\n\n### listen(port)\n\nParameters:\n\n`port`: A port on which the server should listen.\n\n## Tests\n\nUnit tests: \n\n```bash\n$ npm test\n```\n\nTest Coverage:\n\n```bash\n$ npm run-script coverage\n```\n\n## On the Roadmap\n\n* HTTP Caching Support\n* Collapsed Forwarding\n* Parameterized Routing\n* Rate Limiting\n\n## License\nMIT\n","_id":"argo-server@0.1.3","dist":{"shasum":"0830a488417f3239ac8a3a3dfff77ad621979d3d","tarball":"https://registry.npmjs.org/argo-server/-/argo-server-0.1.3.tgz","integrity":"sha512-C8PclIFrRds3weNoRMYc053mxv8Z9w5cH7Q7sdySr8CuZx/B3HjeyU38vZe68hGF1mjGNRsXsjPGaqeSQl1UMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1omIK4Y7KHK5Lc1l7Xb5LEcfoHdrNh5ScfbdYXdSHswIhAK3dL/pAq3bho4hUhkoTYyE/wt4RiOso9d7+bNs71pnL"}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"kevinswiber","email":"kswiber@gmail.com"},"maintainers":[{"name":"kevinswiber","email":"kswiber@gmail.com"}]},"0.1.4":{"name":"argo-server","version":"0.1.4","description":"An extensible, asynchronous HTTP reverse proxy and origin server.","main":"argo.js","directories":{"example":"example"},"license":"MIT","scripts":{"test":"node_modules/.bin/mocha -R spec","coverage":"bin/_coverage"},"repository":{"type":"git","url":"git://github.com/argo/argo.git"},"author":{"name":"Kevin Swiber","email":"kswiber@gmail.com"},"readmeFilename":"README.md","devDependencies":{"mocha":"~1.8.1"},"contributors":[{"name":"Kevin Swiber","email":"kswiber@gmail.com"},{"name":"Matthew Dobson","email":"mdobson4@gmail.com"}],"readme":"# Argo\n\nAn extensible, asynchronous HTTP reverse proxy and origin server.\n\n<!-- Argo is:\n\n* An API-focused HTTP server.\n* A reverse proxy to manage and modify HTTP requests and responses.\n* Modular using handlers for request and response pipelines.\n* Extensible using a package system.\n\nAs an API server:\n\n* Route requests to handlers.\n* Separate resources into modules.\n\nAs a reverse proxy:\n\n* Route requests to backend servers.\n* Transform HTTP messages on the fly.\n* Add OAuth 2.0 support to an existing API.\n* Create a RESTful API façade over legacy systems.\n-->\n\n## Examples\n\n### Adding Cross-Origin Resource Sharing\n\nSetup the server:\n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .use(function(addHandler) {\n    addHandler('response', function(env, next) {\n      env.response.setHeader('Access-Control-Allow-Origin', '*');\n      next(env);\n    });\n  })\n  .target('http://weather.yahooapis.com')\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/forecastrss?w=2467861\n\nHTTP/1.1 200 OK\nDate: Thu, 28 Feb 2013 20:55:03 GMT\nContent-Type: text/xml;charset=UTF-8\nConnection: keep-alive\nServer: YTS/1.20.13\nAccess-Control-Allow-Origin: *\nContent-Length: 2337\n\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n<GiantXMLResponse/>\n```\n\n### Serving an API Response \n\nSetup the server: \n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .get('/dogs', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.statusCode = 200;\n      env.response.body = { dogs: ['Alfred', 'Rover', 'Dino'] };\n      next(env);\n    });\n  })\n  .listen(1337);\n```\n\nMake a request:\n\n```bash\n$ curl -i http://localhost:1337/dogs\n\nHTTP/1.1 200 OK\nContent-Type: application/json\nContent-Length: 34 \nDate: Thu, 28 Feb 2013 20:44:46 GMT\nConnection: keep-alive\n\n{\"dogs\":[\"Alfred\",\"Rover\",\"Dino\"]}\n```\n\n## Install\n\n```bash\n$ npm install argo-server\n```\n\n## Usage\n\n### use(addHandlerFunction)\n\nParameters:\n\n`addHandler` has the signature `addHandler(type, [options], handler)`. The `addHandlerFunction` is used to set up request and response handlers.  \n\n#### `addHandler` Parameters:\n\n`type`: `'request'` or `'response'`\n\n`options`: Mostly used for internal purposes.  Optional.\n\n`handler`: A request or response handler.  `handler` has the signature `handler(env, next)`.\n\n#### `handler` Parameters:\n\n`env` is an environment context that is passed to every handler.\n\n`next` is a reference to the next function in the pipeline.\n\nWhen the handler is complete and wishes to pass to the next function in the pipeline, it must call `next(env)`.\n\nIt's implemented like so:\n\n```javascript\nargo()\n  .use(function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.request.headers['X-Custom-Header'] = 'Yippee!';\n      next(env);\n    });\n  })\n```\n\n### use(package)\n\nAlias for `include(package)`.\n\n### target(uri)\n\n`target` is used for proxying requests to a backend server.\n\nParameters:\n\n`uri`: a string pointing to the target URI.\n\nExample:\n\n```javascript\nargo()\n  .target('http://weather.yahooapis.com')\n```\n\n### route(path, [options], addHandlerFunction)\n\nParameters:\n\n`path`: a string used to match HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`addHandlerFunction`: Same as in `use`.\n\nExample:\n\n```javascript\nargo()\n  .route('/greeting', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.statusCode = 200;\n      env.response.headers = { 'Content-Type': 'text/plain' };\n      env.response.body = 'Hello World!';\n \n      next(env);\n    });\n  })\n```\n\n### get(path, addHandlerFunction)\n### post(path, addHandlerFunction)\n### put(path, addHandlerFunction)\n### del(path, addHandlerFunction)\n### options(path, addHandlerFunction)\n### trace(path, addHandlerFunction)\n\nMethod filters built on top of `route`.\n\nExample:\n\n```javascript\nargo()\n  .get('/puppies', function(addHandler) {\n    addHandler('request', function(env, next) {\n      env.response.body = JSON.stringify([{name: 'Sparky', breed: 'Fox Terrier' }]);\n      next(env);\n    });\n  })\n```\n\n### map(path, [options], argoSegmentFunction)\n\n`map` is used to delegate control to sub-Argo instances based on a request URI path.\n\nParameters:\n\n`path`: a string used to match the HTTP Request URI path.\n\n`options`: an object with a `methods` property to filter HTTP methods (e.g., `{ methods: ['GET','POST'] }`).  Optional.\n\n`argoSegmentFunction`: a function that is passed an instance of `argo` for additional setup.\n\nExample:\n\n```javascript\nargo()\n  .map('/payments', function(server) {\n    server\n      .use(oauth)\n      .target('http://backend_payment_server');\n  })\n```\n\n### include(package)\n\nParameters:\n\n`package`: An object that contains a `package` property.\n\nThe `package` property is a function that takes an argo instance as a paramter and returns an object that contains a `name` and an `install` function.\n\nExample:\n\n```javascript\nvar superPackage = function(argo) {\n  return {\n    name: 'Super Package',\n    install: function() {\n      argo\n        .use(oauth)\n        .route('/super', require('./super'));\n    }\n  };\n};\n\nargo()\n  .include(superPackage)\n```\n\n### listen(port)\n\nParameters:\n\n`port`: A port on which the server should listen.\n\n## Tests\n\nUnit tests: \n\n```bash\n$ npm test\n```\n\nTest Coverage:\n\n```bash\n$ npm run-script coverage\n```\n\n## On the Roadmap\n\n* HTTP Caching Support\n* Collapsed Forwarding\n* Parameterized Routing\n* Rate Limiting\n\n## License\nMIT\n","_id":"argo-server@0.1.4","dist":{"shasum":"4264d5572fa9b8f6fff6ca4db00090d162346dea","tarball":"https://registry.npmjs.org/argo-server/-/argo-server-0.1.4.tgz","integrity":"sha512-+UTZ34a6xiIaTpZSN6XtdZ6VZY133DfRh8ll/FOJQP81WXdzPp78tr7yryo7a3zvga4aR1lVxyPx0xiNAD2QAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6qoYvPaSx0HuyaExQ9laUKBI5vOWcafpPBG2xFSkEJAiBGAy3PxqZRFGxxB2LSB1gYdS8Loeqn6a5IeD6iIXkh7Q=="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"kevinswiber","email":"kswiber@gmail.com"},"maintainers":[{"name":"kevinswiber","email":"kswiber@gmail.com"}]},"0.0.0":{"name":"argo-server","version":"0.0.0","description":"Deprecated.  Please use `npm install argo`.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":"","author":{"name":"Kevin Swiber","email":"kswiber@gmail.com"},"license":"MIT","readme":"# argo-server\n\nThis project has been deprecated.  Please use `npm install argo`.\n","readmeFilename":"README.md","_id":"argo-server@0.0.0","dist":{"shasum":"3b7807cfbefef55da7b6c2bccbf89d76b53aa189","tarball":"https://registry.npmjs.org/argo-server/-/argo-server-0.0.0.tgz","integrity":"sha512-neUFSCl9F7R1C2wbmW7ZkkYGmLW1ZwPNMMSUQC46OnTIBA3+MBy0TXSgH1kAG7YWYpEJ4pUZ41wp5HjKxL59ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElxSsEnn9FIJl1yZgii+qhQdI8LSbz4t+QNaOct6Yg6AiEA8kb9Gkzvfchu83452bLGaMnpZjmwQhDxdOSudxBpbJ0="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"kevinswiber","email":"kswiber@gmail.com"},"maintainers":[{"name":"kevinswiber","email":"kswiber@gmail.com"}]}},"readme":"# argo\n\nArgo is an extensible, asynchronous API proxy and server.\n\nargo offers:\n\n* Asynchronous request and response pipelines.\n* Reverse proxy to backend servers.\n* Extensible package system.\n\n## Example\n\nAdding Cross-Origin Resource Sharing to an API You Don't Control\n\n```javascript\nvar argo = require('argo-server');\n\nargo()\n  .use(function(addHandler) {\n    addHandler('response', function(env, next) {\n      env.response.setHeader('Access-Control-Allow-Origin', '*');\n      next(env);\n    });\n  })\n  .target('http://weather.yahooapis.com')\n  .listen(1337);\n```\n\n## Install\n\n```bash\n$ npm install argo\n```\n\n## Usage\n\n### .use(1)\n### .target(1)\n### .route(2)\n### .map(2)\n### .include(1)\n\n## Tests\n\nUnit tests: \n\n```bash\n$ npm test\n```\n\nTest Coverage:\n\n```bash\n$ npm run-script coverage\n```\n\n## License\nMIT\n","maintainers":[{"name":"kevinswiber","email":"kswiber@gmail.com"}],"time":{"modified":"2022-06-13T03:26:14.762Z","created":"2013-02-13T17:48:55.782Z","0.0.0":"2013-04-26T22:25:06.335Z","0.0.1":"2013-02-25T16:46:07.582Z","0.0.2":"2013-02-26T18:16:31.755Z","0.0.3":"2013-02-26T19:30:33.774Z","0.0.4":"2013-02-26T20:10:52.500Z","0.1.0":"2013-02-27T23:53:59.883Z","0.1.1":"2013-03-05T18:28:11.019Z","0.1.2":"2013-03-05T23:11:59.555Z","0.1.3":"2013-03-06T16:21:46.058Z","0.1.4":"2013-04-08T18:50:34.780Z"},"author":{"name":"Kevin Swiber","email":"kswiber@gmail.com"},"repository":{"type":"git","url":"git://github.com/argo/argo.git"}}