{"_id":"ts-echo","_rev":"27-d8f4aca31680e5a484b7b4a965b87da6","name":"ts-echo","time":{"modified":"2022-05-22T07:06:22.802Z","created":"2017-11-22T06:47:53.979Z","1.0.0":"2017-11-22T06:47:53.979Z","0.0.0":"2017-11-22T07:00:26.378Z","0.0.1":"2017-11-22T07:22:49.514Z","0.0.2":"2017-11-23T05:26:05.035Z","0.0.3":"2017-11-23T05:34:29.773Z","0.0.4":"2017-11-23T06:57:07.480Z","0.0.5":"2017-11-23T10:57:18.008Z","0.0.6":"2017-11-24T07:48:11.186Z","0.0.7":"2017-11-24T07:51:16.054Z","0.0.9":"2017-11-25T06:41:36.145Z","0.0.10":"2017-11-27T05:38:46.413Z","0.0.11":"2017-11-28T02:39:39.258Z","0.0.12":"2017-11-28T10:23:43.982Z","0.0.13":"2017-11-29T05:33:25.921Z","0.0.14":"2017-11-29T06:00:08.869Z","0.0.15":"2017-11-29T08:36:21.410Z","0.0.16":"2017-11-29T08:39:35.658Z","0.0.17":"2017-11-30T05:00:29.596Z","0.0.18":"2017-11-30T07:12:21.319Z","0.0.19":"2017-11-30T07:54:25.213Z","0.1.0":"2017-12-01T02:30:12.049Z","1.0.1":"2017-12-04T11:28:05.888Z","1.1.0":"2017-12-12T08:00:29.588Z","1.1.1":"2017-12-15T03:07:44.576Z","1.1.2":"2017-12-15T04:17:06.256Z"},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"dist-tags":{"latest":"1.1.2"},"readme":"# An easy http restful framework written by `Typescript`\n\n[![Build Status](https://travis-ci.org/DarthPestilane/ts-echo.svg?branch=master)](https://travis-ci.org/DarthPestilane/ts-echo)\n[![npm version](https://badge.fury.io/js/ts-echo.svg)](https://badge.fury.io/js/ts-echo)\n[![dependencies Status](https://david-dm.org/DarthPestilane/ts-echo/status.svg)](https://david-dm.org/DarthPestilane/ts-echo)\n[![devDependencies Status](https://david-dm.org/DarthPestilane/ts-echo/dev-status.svg)](https://david-dm.org/DarthPestilane/ts-echo?type=dev)\n\n![image](https://user-images.githubusercontent.com/15375753/33418288-2607056a-d5e0-11e7-9339-f02c1fc32bb0.png)\n\nPackage includes both compiled `javascript` and `typescript` declaration(.d.ts) files\n\nDevelopers can continue coding in both `typescript` and `javascript`\n\n## Features:\n\n- Basic routes\n- Group routes\n- Middleware\n- Custom exception handler\n- Log supports\n- **NOT support optional route path like `/path/[maybe]`** (The author doesn't want to do that. (╯‵□′)╯ ┻━┻)\n\n## Installation:\n\n```sh\nnpm install --save ts-echo\n```\n\n## Usage:\n\n### Basic routes:\n\n```typescript\nimport { Server, Router, Context } from \"ts-echo\";\n\n// create router\nconst router = new Router();\n\n// define routes\nrouter.GET(\"/hello\", async (ctx: Context) => {\n    ctx.response.string(\"Hi there.\");\n    return; // with or without `return` are both working\n});\n\n// run server\nServer.loadRouter(router);\nServer.run(3000, \"127.0.0.1\");\n```\n\n### Access parameters:\n\n```typescript\n// create router\nconst router = new Router();\n\n// define routes\nrouter.PATCH(\"/user/{user_id}\", async (ctx: Context) => {\n    const routeParams = ctx.params; // access route parameters\n    const requestBody = await ctx.request.body(); // access request body\n    const queryParams = ctx.request.query(); // access query string parameters\n    const headers = ctx.request.header(); // access request headers\n\n    // send response in application/json\n    ctx.response.json({\n        routeParams,\n        requestBody,\n        queryParams,\n        headers,\n    });\n    return;\n});\n```\n\n### Response:\n\n```typescript\n// create router\nconst router = new Router();\n\n// define routes\nrouter.GET(\"/string\", async (ctx: Context) => {\n    ctx.response.string(\"response in string\"); // which will set `Content-Type: text/html` in response header\n    return;\n});\nrouter.GET(\"/json\", async (ctx: Context) => {\n    ctx.response.json({ // which will set `Content-Type: application/json` in response header\n        success: true,\n        message: \"json\",\n    });\n    return;\n});\nrouter.GET(\"/json/but/string\", async (ctx: Context) => {\n    ctx.response.json({\n        success: true,\n        message: \"json\",\n    });\n    // modify response header\n    ctx.response.setHeader(\"Content-Type\", \"text/html\"); // which will set `Content-Type` back to `text/html`\n    return;\n});\n```\n\n### Group routes:\n\n```typescript\n// create router\nconst router = new Router();\n\n// define routes\nrouter.group(\"/v1\", (r: Router) => {\n    r.GET(\"/hello\", async (ctx: Context) => {\n        // should visit /v1/hello now.\n        ctx.response.string(\"Hi there.\");\n        return;\n    });\n});\n```\n\n### Middleware:\n\n```typescript\nclass GroupMiddleware extends Middleware { // import { Middleware } from \"ts-echo\"\n    public async before(ctx: Context) {\n        console.log(\"before group\");\n        // return ctx.response.string(\"stop now.\");\n        // In before() method, if a `Response` instance returns, it will directly send response and end the request\n    }\n    public async after(ctx: Context) {\n        console.log(\"after group\");\n    }\n}\n\nclass SingleMiddleware extends Middleware {\n    public async before(ctx: Context) {\n        console.log(\"before single\");\n    }\n    public async after(ctx: Context) {\n        console.log(\"after single\");\n    }\n}\n\n// create router\nconst router = new Router();\n\n// define routes with middleware\nrouter.group(\"/v1\", (r: Router) => {\n    r.GET(\"/hello\", async (ctx: Context) => {\n        ctx.response.string(\"Hi there.\");\n        return;\n    }, [new SingleMiddleware()]);\n}, [new GroupMiddleware()]);\n// the order of middleware execution should be:\n// before group -> before single -> after single -> after group\n\nServer.loadRouter(router);\n// ...\n```\n\n### Log:\n\n```typescript\n// enable log print\nServer.printLogs(true);\n\n// then you can use the default logger which will print logs to console\n// or set your logger which must be a winston.Logger\nconst logger = new winston.Logger({  // import * as winston from \"winston\"\n    level: \"debug\",\n    transports: [\n        new winston.transports.Console({\n            label: \"APP_NAME\",\n            align: false,\n            colorize: true,\n            timestamp: true,\n        })\n    ],\n});\nServer.setLogger(logger); // set logger before you load router\n\n// load router as always\nServer.loadRouter(router);\n\n// run server and execute the callback function\nServer.run(3000, \"127.0.0.1\", () => {\n    logger.info(\"Let's roll!\");\n});\n```\n\n### Exception handler:\n\n```typescript\nclass Exception extends Error {\n    public statusCode: number = 400;\n    public message: string = \"\";\n    protected __proto__: Error; // in order to be caught correctly\n\n    constructor(statusCode: number = 200, message: string = \"\") {\n        super(message);\n        this.__proto__ = new.target.prototype; // in order to be caught correctly\n        this.message = message;\n        this.statusCode = statusCode;\n    }\n}\n\n// set custom exception handler to catch and handle errors\nrouter.setExceptionHandler((err: Error, ctx: Context) => {\n    const resp = ctx.response;\n    if (err instanceof Exception) {\n        resp.json({\n            message: err.message,\n        }, err.statusCode);\n    } else if (err instanceof Error) {\n        resp.json({\n            code: \"SERVER ERROR\",\n            message: err.message,\n            stack: err.stack,\n        }, 500);\n    }\n});\nrouter.GET(\"/not-found\", async (ctx) => {\n    throw new Exception(404, \"missing\");\n});\n// then load router\nServer.loadRouter(router);\n// ...\n```\n\n---\n\n### All together in `javascript`:\n\n```javascript\nconst Server = require(\"ts-echo\").Server;\nconst Router = require(\"ts-echo\").Router;\nconst HttpException = require(\"ts-echo\").HttpException;\nconst Middleware = require(\"ts-echo\").Middleware;\n\n// create a router\nconst router = new Router();\n\n// add routes\nrouter.group(\"/v1\", router => {\n    router.group(\"/users\", router => {\n        router.GET(\"/\", async (ctx) => {\n            // basic response\n            ctx.response.string(\"user list here\");\n            return;\n        });\n        router.GET(\"/{user_id}\", async (ctx) => {\n            // access route params\n            ctx.response.string(\"user detail for \" + ctx.params.user_id);\n            return;\n        });\n        router.GET(\"/{user_id}/papers/{paper_id}\", async (ctx) => {\n            ctx.response.string(\"paper: \" + ctx.params.paper_id + \" from user: \" + ctx.params.user_id);\n            return;\n        });\n    });\n    router.GET(\"/hello\", async (ctx) => {\n        // response with custom status-code and headers\n        ctx.response.string(\"hi there.\", 200, { hello: \"world\" });\n        return;\n    });\n});\n\n// set custom exception handler to catch and handle errors\nrouter.setExceptionHandler((err, ctx) => {\n    const resp = ctx.response;\n    if (err instanceof HttpException) {\n        resp.json({\n            message: err.message,\n        }, err.statusCode);\n    } else if (err instanceof Error) {\n        resp.json({\n            type: \"SERVER ERROR\",\n            message: err.message,\n            stack: err.stack,\n        }, 500);\n    }\n});\nrouter.GET(\"/not-found\", async (ctx) => {\n    throw new HttpException(404, \"missing\");\n});\n\n// access request body, query params and route params\nrouter.PATCH(\"/article/{id}\", async (ctx) => {\n    ctx.response.json({\n        request_body: await ctx.request.body(),\n        query: ctx.request.query(),\n        router_param: ctx.params,\n    });\n    return;\n})\n\n// with middlewares\nclass ExampleMiddleware extends Middleware {\n    async before() {\n        console.log(\"before example\");\n    }\n    async after() {\n        console.log(\"after example\");\n    }\n}\nclass AnotherMiddleware extends Middleware {\n    async before() {\n        console.log(\"before another\");\n    }\n    async after() {\n        console.log(\"after another\");\n    }\n}\nconst em = new ExampleMiddleware();\nconst am = new AnotherMiddleware();\nrouter.group(\"/middleware\", router => {\n    router.GET(\"another\", async (ctx) => {\n        ctx.response.json({ success: true, message: \"test middleware\" });\n        return;\n    }, [am]);\n}, [em]);\n\n// start the server, load routes and run\n// enable log prints\nServer.printLogs(true);\n\n// set custom logger\n// logger must be a winston.LoggerInstance\nconst winston = require(\"winston\");\nconst logger = new winston.Logger({\n    level: \"debug\",\n    transports: [\n        new winston.transports.Console({\n            label: \"APP_NAME\",\n            align: true,\n            colorize: true,\n            timestamp: true,\n        })\n    ],\n});\nServer.setLogger(logger);\nServer.loadRouter(router);\nServer.run(3000, \"127.0.0.1\", () => {\n    logger.info(\"let's roll!\");\n});\n```\n","versions":{"0.0.1":{"name":"ts-echo","version":"0.0.1","description":"# usage","main":"index.js","author":"","license":"ISC","devDependencies":{"@types/node":"^8.0.51","gulp":"^3.9.1","gulp-nodemon":"^2.2.1","gulp-typescript":"^3.2.3","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"_id":"ts-echo@0.0.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-ePVrn2nlVNIW/20aIKI001ZAg2t0AkVG0B3A43LuENDLLf5FLNbUaEK804F3rAFZM8hRUKj4c4JJaT85F6/M5w==","shasum":"b126a8b5c3c57d36674c7159a80e09d90e94818b","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFK2/lglsbSyfCaKVEUWfPtJHGroTRUMkl5AoEmQH8KSAiB+jdtfU/79D4Nr7CSiqZsP4rShQtzprP7NVvHjis4u8w=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.1.tgz_1511335369448_0.7578821540810168"}},"0.0.2":{"name":"ts-echo","version":"0.0.2","description":"an http restful framework","module":"index","author":{"name":"Darth Minion"},"license":"ISC","scripts":{"start":"node server.js"},"_id":"ts-echo@0.0.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-smeZt0nK4FdtJl6V1vvc9gp61tWF6/p04zKW9BL0OThWsbeSDST7LDUbB+HJcOWc5YbxU03C1iR93oSUF2hFGw==","shasum":"6031bbb3026c870415a33a620b87d1e8d7fa9adb","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTin9K4mV/8xC1pkGejh6nqqn9Nyw+sQm2/yOJI+xf5wIgcvCSGs+alvIObMlkBiT3QgcQiIQz1nesqh4cYYRJF7M="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.2.tgz_1511414764704_0.5547613694798201"}},"0.0.3":{"name":"ts-echo","version":"0.0.3","description":"an http restful framework","author":{"name":"Darth Minion"},"license":"ISC","scripts":{"start":"node server.js"},"_id":"ts-echo@0.0.3","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-CG+aKuPWbrCclHuPjxalvhyJfzWt0LyRNifbCobdFUCpt8idV3T+gbSWXN+e0mHqpsBO/wrWlecMvaOMljMvPA==","shasum":"fac1661b6ed104580c64b4c4aea3edeb1948f23a","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZvEP0Sw/3OXSYibBwIDVhYMr/gT4cJdLnDXu5yfo0TwIhAN6MefVHL7fi+JlY8z5/FrFIVCRJEajuPGX3oQP+4Zrc"}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.3.tgz_1511415269652_0.5558836997952312"}},"0.0.4":{"name":"ts-echo","version":"0.0.4","private":false,"description":"","author":"","license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/node":"^8.0.51","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"scripts":{"compile":"tsc","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-j28b78JPkuUzHNiLflMhszl9Hf9rs7EStxwQna9g3omCSM61SRcjxKXfZ7p2aggiZtZdCCa9xnCt98bTLbbPsQ==","shasum":"86fbba099bd7dd4c5f9fad768ced22025c6a3142","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCjhp3vVX+pKjeN+1kHV+iQotAz8JgH5pj9NhwIRghkgIhANmNE42AckRlevErp3+FDzBcmoGrqPJcigUuzXFjMSvq"}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.4.tgz_1511420227410_0.3789199157617986"}},"0.0.5":{"name":"ts-echo","version":"0.0.5","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/node":"^8.0.51","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile":"tsc","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.5","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-BGzUSht0JCBh/YyAJBJ8PcPDbPsSnm4Q7rgQbwlsCOCS+yTS57EydtyUiM0PIESaHODCq7dWKyS9+rKrvAJYEA==","shasum":"94fc7d0dfb34ee006530ef85f4c9b3f580c50670","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEZA73efosQC63WV3vScpJWM+uo+pGfpyCSnuCn0nkeAAiBmAYbTzywqb+KR7YrUzByyg047ut8ME7dh4cBOY9WSCw=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.5.tgz_1511434637889_0.8888740441761911"}},"0.0.6":{"name":"ts-echo","version":"0.0.6","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","gulp-typescript":"^3.2.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile:src":"tsc","test":"./node_modules/mocha/bin/mocha","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.6","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-F/pSy0u/lIDjnp/bpcxd1gboJA/3LQPGVN9gPZLnAR/c+bQviHoImqcMqJ0gKWThhwhC+RDpHHA8ZMOFTbmPDQ==","shasum":"52a5ac0b214f8df31881454afce091c016289675","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCghOhavPsAZkQiTAY1jgQf2ElfoA88PfNdZ1e1KIRLtwIgHOX4JeqgxRzTcunoFd1ize3pynu3su7cMrHeFJ7Qwe8="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.6.tgz_1511509691096_0.7995878355577588"}},"0.0.7":{"name":"ts-echo","version":"0.0.7","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","gulp-typescript":"^3.2.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile:src":"tsc","test":"./node_modules/mocha/bin/mocha","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-n+DBLe8JkG3uG7Tcoz1N8xTihF+rXc14DPVaZ+LgZIWmp3fluvWw+rwTSPJ0rjcvC1C7fVzKpW++GlcPLDubQg==","shasum":"6546dccccd072cd1168d69a55583b88dd9e2e243","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNkO6K5r/RWxHJb1TJ9jLeumrDk5hq6gYxctLbsxCteAIgdQeSFlGthvHA62rpv0tZVkczVLvn++uH0MhPO37tDzo="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.7.tgz_1511509875890_0.4810849721543491"}},"0.0.9":{"name":"ts-echo","version":"0.0.9","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","gulp-typescript":"^3.2.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.9","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-NZc20+0t1QYdczOOs8Oahi4wR8CD7DprWouHsQ9OYcKhKLgD+YQqE3nOBcAqmq/T9Vz6MyOt0cGyyIhO575drg==","shasum":"9fd9846b5fea17e7a30b3c67685b53cd3323b85e","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBkyiUHnwRN2vjZjAw1oFbFP65Gh4n7xv8KaRpfgtJaQIgY2zjgaSFUMioTJTOZ8x3DjSwhpqgSAiuqykiZpVygX0="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.9.tgz_1511592096067_0.3555401894263923"}},"0.0.10":{"name":"ts-echo","version":"0.0.10","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","gulp-typescript":"^3.2.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.10","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-5tP5qLnEFPpw7xT1T9cYCIuTpBHrvgiHiPQao3jHjSMTvkJrvH3JBCmVsSmdGLamKLnboA03vv6442TLF3iFlg==","shasum":"a3f9ae103396f9ca808bc3f824e6c181494d4f24","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpjyu/HR/RF5KG625SKFw1/9GWRBsG/8aMTDE+7UOS5AiBBEJfs/I4DraM/FEsphV8rEDy2mSWn8J0eVcR8UBJ74A=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.10.tgz_1511761126313_0.28597355517558753"}},"0.0.11":{"name":"ts-echo","version":"0.0.11","private":false,"description":"An easy http restful framework","author":{"name":"Darth Minion"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.11","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-RxZX3y4jjVzfr8dQBLs96ZoIEizcqbmgpgflAsPixqbFT7IHchkoAux8KrD+gfIG+cYFoLRWCexCgj0wQ9fneg==","shasum":"3217af5ad55cf308f0803bb94df3e70ff412603d","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJ+y2UPoMpQFRbhgULA8NtaeMqjN3DMsKn9hL20jkRaQIhANu3/S4qBKs4fbtFtdGjklP2HDgdwoNqGxDN+LFVhWgB"}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.11.tgz_1511836779183_0.9444359079934657"}},"0.0.12":{"name":"ts-echo","version":"0.0.12","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.12","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-1zE2RExk8KP5X6eNf/HNU8Y8fA8BvL7pMqeg8s2X02veyxrhHBb5PV93yOI5x++BzBQVrA1PC0PdPv48Zp/ugQ==","shasum":"0155722f8a6fa70b3aa51a47a7c62bd874f796b7","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIGc0JjM7NafTb098/BYicNFcUGdi0MY+CxKCgWQA1sh5Ah8shFJuTt/qTlD7ub0xXBMDLC/g+Y5xSRfUWRER5ca7"}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.12.tgz_1511864623566_0.5370349898003042"}},"0.0.13":{"name":"ts-echo","version":"0.0.13","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.13","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-tLVoVoCjfZBOrFZALg3bTDdfPr7FPqIrgWNSacSfXC60dy4kPxCiUgpHZT993lFGjg43ox0G6lQxHq7p/mizJQ==","shasum":"3ba6bc9402fcef506c8275b625a251009c4ae948","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA46cCXISXbQLJSHMFfnEqeyEC2eg1RVLSqytLhLnWc3AiBmGTYamIGNzolNmcjTxsJyRfTYJkQ29wNDphQU8PumtQ=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.13.tgz_1511933605836_0.4194883278105408"}},"0.0.14":{"name":"ts-echo","version":"0.0.14","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.14","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-kZE3AUer1F4Nsc8lJDQjFcP1bgeamfhJZpQyPl6yhFeQ0hydTyn+HsWtdN+btDTx4jEocxXtwRCtXsr+/KJLKA==","shasum":"9a844071840912cf2d006a8250efc960cdca617c","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.14.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJAJUy7OZmbXXU2L3i6WwDLh7VTz4z/0jfarkQbEMN3wIgK8Si1qRBhvgsg3f5Q+bQP7FU2miFTkcwQE0K9n0lNl4="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.14.tgz_1511935208618_0.0690102456137538"}},"0.0.15":{"name":"ts-echo","version":"0.0.15","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.15","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-hgkYItWuEG7akWirr6XU5DLx/dIoYzQ1N13zCsm285500ntLuG6PvEeTNbfofc7U3E4qeb3MrrR5sSLVV9fhVA==","shasum":"c2d2c94dacb84df83d778e7b57b54c0509f5b9c7","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnZtqscCIj2Mns0vBEf4cxpOzSx7ZKKKkFgndXVo5bdAiAHr5MDxYMCfYzkCGIRAITYqGz+0fanOMsC3hQ/Yw0NsA=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.15.tgz_1511944581305_0.5793047598563135"}},"0.0.16":{"name":"ts-echo","version":"0.0.16","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.16","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-Qstwq4h7yaAyIpQ1gvtcU16YJuh460vvbxUUb3sCketrcUuF7t+rElebhJfSwGBLLKuLVxv8j43jo47f9idFug==","shasum":"dca59a8d8d7f82fca5858d32660062e915fcface","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.16.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7alF/lbBLP0ulEkhNOjMQn+9N2ETXUslanbfNvg4WRAiEA2QZCc9p+rs6fjCTs9OguzstoM6aPuIWReAkcCesxco4="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.16.tgz_1511944775545_0.4888469665311277"}},"0.0.17":{"name":"ts-echo","version":"0.0.17","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.17","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-kgdCGxmHDkTm3yoZFpsqN2TKbSPxcgUErJBIHjyUDDY55UyHvAhSSjNpgp3BhG3ahPSS4ORXl/gCi9JpfXxp9w==","shasum":"3c3db80b65f30df06e9b692acc04dd49e616e9a3","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.17.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDItceXl41qzTZJ+zpBxNMV6YR5dXSRxRM36ZXxAnHt2AiA2UluuqrlAdFwZAQipEebSQcjhf7CfqYczzoL5lAWchQ=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.17.tgz_1512018029418_0.8213435024954379"}},"0.0.18":{"name":"ts-echo","version":"0.0.18","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.18","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-2X5bLFgWZawCgG0+d5gQFeHejPWg57jYMtvsNiy6Remra4PlspctGzuJy4+AabDgNtFFsyFLG939RRP0PjG3zg==","shasum":"cae68f059e2f536ce3de69d710bd8034d980d495","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.18.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDx4R/tiQ1EqeF4WOznVO0Ve4JXAZVPY1ojf4+Sveg6ggIhAMaz/XAZy/ebe1QtqPeyCJLJOyrkyXJkXu6Ayst7mjDs"}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.18.tgz_1512025941213_0.7250135960057378"}},"0.0.19":{"name":"ts-echo","version":"0.0.19","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.0.19","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-iQb4HZ7+nzRtYgj5FNit1pVcuuHsXLSPO+x/jm8woOfMCaC7oNcoH360wtPfZPB9e2X3hxgDtZBqJbF193H/QQ==","shasum":"9f92348183b97c7b517456c9b9ff01d1e8dc9665","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.0.19.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZlc/+ypfR5nyxL1h3+h4H29OtwDKKw0SnlVJlXl5kcAIgOkn4jJLJQEwAfAwqjNShOmDlJP3H4zQ3ojZRePayHug="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.0.19.tgz_1512028464997_0.4016167938243598"}},"0.1.0":{"name":"ts-echo","version":"0.1.0","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-xaFRBsTCwOQqxaKgGbeN1X+G1i2TtbXLC+/Yk/Vz6LIv+FMaDnmyHgeOQupE828cp8FXuC1IK3pYhu3tQyv7aA==","shasum":"3d601fea257c410ad0daa50fcbcf18ed2cad5595","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-0.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZWX8eW7GiOCs885uvNKTliLrttPH7yV1B3vYZCOyGxAiBhaGD7pR+sSe/+LkYa/Q0mMcHWy4XYpKeMbsTLrAwzdw=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-0.1.0.tgz_1512095410840_0.5030914512462914"}},"1.0.1":{"name":"ts-echo","version":"1.0.1","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-D3CAF3EC5NysVplj/cAlVau5LBCF4aQPUSM3MuWfYMbQpHq1mMeACTJDOU50YllsLzjwZGaxfdmAxdk/VfiykQ==","shasum":"3799edf85be67d62deedd57e92cc9a0cfcc73503","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-1.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDl39RejmKrUkw1emDjfTp+0x4nsffciSNyY12Cz+sLfwIgOhVvO568/S38LLTkn1gZ//bhQETzx9y+B7uJ3pnaQxs="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-1.0.1.tgz_1512386885743_0.5367245017550886"}},"1.1.0":{"name":"ts-echo","version":"1.1.0","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"./node_modules/mocha/bin/mocha --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.2.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-PV3sVOxdJSXAwhdvGegYr6p1Mb35McB/on/ndE3svTyzuLlt8WU/2M60Br2Li0rMzirdCYMmyNi1pjMpj/Zy7Q==","shasum":"76dfe189a530ceb482c79a37ac26fa987b7f9306","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKGVhEcpzDLDgZBth8hzp1fus8We4WfTkHUekGzPGyPAiEAtBbQIkVO7Nwo81RaRTSg4xpAHGUJOPXFJCHDRYWYNzc="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-1.1.0.tgz_1513065629501_0.30239438777789474"}},"1.1.1":{"name":"ts-echo","version":"1.1.1","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@1.1.1","_npmVersion":"5.6.0","_nodeVersion":"9.2.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-NFbI4P+ISRvJ150YvIzh0eFLmNfo0B2NFpt3mP5wc1nQ0Uazbug/UvEKcvJt1CeDm3j4cXuhPyy43GSpDXjNlg==","shasum":"471e83a698233ff31a8db9bf798fb8413e829400","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-1.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF5MTovRACYAyj08OQOnit7A2gH7r8qLr0nbfY4dAJWwAiA/Va3bWlJKPEzbPi8Vr4TCdtozop+T2ohwFyXix7CLWw=="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-1.1.1.tgz_1513307264469_0.2977814828045666"}},"1.1.2":{"name":"ts-echo","version":"1.1.2","private":false,"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"license":"ISC","keywords":["easy","typescript","http","restful","framework"],"repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"devDependencies":{"@types/mocha":"^2.2.44","@types/node":"^8.0.51","del":"^3.0.0","gulp":"^3.9.1","gulp-replace":"^0.6.1","gulp-shell":"^0.6.3","mocha":"^4.0.1","run-sequence":"^2.2.0","tslint":"^5.8.0","typescript":"^2.6.1"},"dependencies":{"@types/winston":"^2.3.7","winston":"^2.4.0"},"module":"index","scripts":{"compile":"tsc","compile:watch":"tsc -w","test":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- --recursive","start":"node server.js"},"homepage":"https://github.com/DarthPestilane/ts-echo#readme","_id":"ts-echo@1.1.2","_npmVersion":"5.6.0","_nodeVersion":"9.2.1","_npmUser":{"name":"darthminion","email":"553061376@qq.com"},"dist":{"integrity":"sha512-SzVmLpYYLCN2v+R9EWE6LUe1KYL6ro+cCfkepdki2T+BvXAX58Ca1Gm3UR2Yl7zmBLKBjqrKmp/BNvPGdo3hiw==","shasum":"31e913f265ecaba575b84256275fc4f8772e2ef1","tarball":"https://registry.npmjs.org/ts-echo/-/ts-echo-1.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfvtsAnbdqeY0LFzt50YifQAaEEL7cZe/Bwnxy79b0LwIgOwtGgVDreSDif/z7HzvLfZritqfLEd8EFvkXzpJLjxI="}]},"maintainers":[{"name":"darthminion","email":"553061376@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-echo-1.1.2.tgz_1513311426138_0.9635930876247585"}}},"license":"ISC","readmeFilename":"README.MD","homepage":"https://github.com/DarthPestilane/ts-echo#readme","repository":{"type":"git","url":"git+https://github.com/DarthPestilane/ts-echo.git"},"bugs":{"url":"https://github.com/DarthPestilane/ts-echo/issues"},"description":"An easy http restful framework written by typescript","author":{"name":"Darth Minion","email":"553061376@qq.com"},"keywords":["easy","typescript","http","restful","framework"]}