diff --git a/CHANGELOG.md b/CHANGELOG.md index 537bcf5..745c946 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [next](https://github.com/foxifyjs/foxify/releases/tag/next) - *2018-__-__* +## [v0.8.0](https://github.com/foxifyjs/foxify/releases/tag/v0.8.0) - *2018-07-09* **Implemented enhancements:** @@ -8,6 +8,8 @@ - added `https.key` setting - added `https.cert` setting - added `json schema` option to routing +- added `stop` ability +- added `reload` ability - improved performance ## [v0.7.0](https://github.com/foxifyjs/foxify/releases/tag/v0.7.0) - *2018-05-19* diff --git a/README.md b/README.md index 7355feb..3cb0825 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Foxify [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=The%20fast,%20easy%20to%20use%20&%20typescript%20ready%20web%20framework%20for%20Node.js&url=https://github.com/foxifyjs/foxify&via=foxifyjs&hashtags=foxify,nodejs,web,api,framework,typescript,developers,fast) +# Foxify [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Foxify,%20The%20fast,%20easy%20to%20use%20%26%20typescript%20ready%20web%20framework%20for%20Node.js&url=https://github.com/foxifyjs/foxify&via=foxifyjs&hashtags=foxify,nodejs,web,api,framework,typescript,developers,fast) -> Inspired by [Express](https://expressjs.com) +The **fast**, **easy to use** & **typescript ready** web framework for [Node.js](https://nodejs.org) -The **fast**, **easy to use** & **typescript ready** web framework for [Node.js](https://nodejs.org) +> Inspired by [Express](https://expressjs.com) [![Npm Version](https://img.shields.io/npm/v/foxify.svg)](https://www.npmjs.com/package/foxify) [![Node Version](https://img.shields.io/node/v/foxify.svg)](https://nodejs.org) @@ -21,8 +21,10 @@ The **fast**, **easy to use** & **typescript ready** web framework for [Node ## Table of Contents -- [Installation](#installation) -- [Usage](#usage) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Usage](#usage) - [Features](#features) - [Benchmarks](#benchmarks) - [TODO](#todo) @@ -31,16 +33,19 @@ The **fast**, **easy to use** & **typescript ready** web framework for [Node - [License](#license) - [Support](#support) -## Installation +## Getting Started + +### Prerequisites + +- [Node.js](https://nodejs.org/en/download) 8 or higher is required. -Before installing, [download and install Node.js](https://nodejs.org/en/download). -Node.js 8 or higher is required. +### Installation ```bash npm i -s foxify ``` -## Usage +### Usage ```javascript const Foxify = require('foxify'); @@ -66,14 +71,14 @@ app.start(); More detailed [sample](https://github.com/foxifyjs/foxify/tree/master/demo) is available. -You can also find all the documents [here](https://foxify.js.org/api.html). +You can also find all the documents [here](https://foxify.js.org). ## Features - Written in ES6 - Robust routing (faster than `Express`) - `Express` middleware support -- Robust database modeling ([Odin](https://github.com/foxifyjs/odin)) +- Robust database modeling ([`Odin`](https://github.com/foxifyjs/odin)) - Simple and powerful error handling - Focus on high performance - HTTP helpers (redirection, etc) @@ -83,7 +88,7 @@ You can also find all the documents [here](https://foxify.js.org/api.html). ## Benchmarks -**Machine**: Intel Virtual CPU (2 cores), 2GiB (DDR4) +**Machine**: Ubuntu 18.04 64-bit, Intel Core i7 (8 cores), 8GiB (DDR4) **Method**: `autocannon -c 100 -d 40 -p 10 localhost:3000` * 2, taking the second average @@ -91,13 +96,12 @@ You can also find all the documents [here](https://foxify.js.org/api.html). | Framework | Version | R/S | |:---------:|:-------:|:---:| -| `http.Server` | **10.1.0** | **71,892** | -| - | - | - | -| fastify | 1.4.0 | 70,793 | -| **Foxify** | **0.7.0** | **61,370** | -| restify | 6.4.0 | 50,616 | -| hapi | 17.4.0 | 42,384 | -| express | 4.16.3 | 41,146 | +| fastify | 1.7.0 | 26,819.6 | +| **bare** | **10.3.0** | **26,410** | +| **Foxify** | **0.8.0** | **23,928.4** | +| restify | 7.2.1 | 14,919.2 | +| hapi | 17.5.2 | 18756.6 | +| express | 4.16.3 | 18,454 | ## TODO @@ -107,7 +111,7 @@ You can also find all the documents [here](https://foxify.js.org/api.html). - [x] View engine - [x] Options - [x] Settings -- [x] [Database Model](https://github.com/foxifyjs/odin) +- [x] Database Model ([`Odin`](https://github.com/foxifyjs/odin)) - [x] Clustering - [ ] File storage - [ ] Job schedule diff --git a/demo/routes/index.js b/demo/routes/index.js index d181b92..baa9406 100644 --- a/demo/routes/index.js +++ b/demo/routes/index.js @@ -10,21 +10,30 @@ routes.get('/', (req, res) => { }) routes.get('/greet/', (req, res) => { - res.json({ hello: 'world' }) + res.json({ + hello: 'world' + }) }) const schema = { - title: 'Example Schema', - type: 'object', - properties: { - hello: { - type: 'string' + response: { + 200: { + type: 'object', + properties: { + hello: { + type: 'string' + } + } } } }; -routes.get('/greet-fast', { schema }, (req, res) => { - res.json({ hello: 'world' }) +routes.get('/greet-fast', { + schema +}, (req, res) => { + res.json({ + hello: 'world' + }) }) routes.get('/404', (req, res) => { @@ -35,4 +44,4 @@ routes.get('/error', async (req, res) => { throw new Error('Oops!') }) -module.exports = routes +module.exports = routes \ No newline at end of file diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 06ab38d..d695279 100644 --- a/docs/assets/js/search.js +++ b/docs/assets/js/search.js @@ -1,3 +1,3 @@ var typedoc = typedoc || {}; typedoc.search = typedoc.search || {}; - typedoc.search.data = {"kinds":{"2":"Module","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":128,"name":"Server","url":"classes/server.html","classes":"tsd-kind-class"},{"id":1,"kind":1024,"name":"_instance","url":"classes/server.html#_instance","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Server"},{"id":2,"kind":1024,"name":"_host","url":"classes/server.html#_host","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Server"},{"id":3,"kind":1024,"name":"_port","url":"classes/server.html#_port","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Server"},{"id":4,"kind":512,"name":"constructor","url":"classes/server.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Server"},{"id":5,"kind":2048,"name":"start","url":"classes/server.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":6,"kind":2048,"name":"stop","url":"classes/server.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":7,"kind":2048,"name":"reload","url":"classes/server.html#reload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":8,"kind":256,"name":"Options","url":"interfaces/server.options.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Server"},{"id":9,"kind":1024,"name":"protocol","url":"interfaces/server.options.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":10,"kind":1024,"name":"host","url":"interfaces/server.options.html#host","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":11,"kind":1024,"name":"port","url":"interfaces/server.options.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":12,"kind":1024,"name":"workers","url":"interfaces/server.options.html#workers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":13,"kind":1024,"name":"key","url":"interfaces/server.options.html#key","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":14,"kind":1024,"name":"cert","url":"interfaces/server.options.html#cert","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Options"},{"id":15,"kind":4194304,"name":"Listener","url":"classes/server.html#listener","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Server"},{"id":16,"kind":65536,"name":"__type","url":"classes/server.html#listener.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Server.Listener"},{"id":17,"kind":2097152,"name":"HTTP","url":"globals.html#http","classes":"tsd-kind-object-literal"},{"id":18,"kind":32,"name":"CONTINUE","url":"globals.html#http.continue","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":19,"kind":32,"name":"SWITCHING_PROTOCOL","url":"globals.html#http.switching_protocol","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":20,"kind":32,"name":"PROCESSING","url":"globals.html#http.processing","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":21,"kind":32,"name":"EARLY_HINTS","url":"globals.html#http.early_hints","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":22,"kind":32,"name":"OK","url":"globals.html#http.ok","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":23,"kind":32,"name":"CREATED","url":"globals.html#http.created","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":24,"kind":32,"name":"ACCEPTED","url":"globals.html#http.accepted","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":25,"kind":32,"name":"NON_AUTHORITATIVE_INFORMATION","url":"globals.html#http.non_authoritative_information","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":26,"kind":32,"name":"NO_CONTENT","url":"globals.html#http.no_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":27,"kind":32,"name":"RESET_CONTENT","url":"globals.html#http.reset_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":28,"kind":32,"name":"PARTIAL_CONTENT","url":"globals.html#http.partial_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":29,"kind":32,"name":"MULTI_STATUS","url":"globals.html#http.multi_status","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":30,"kind":32,"name":"ALREADY_REPORTED","url":"globals.html#http.already_reported","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":31,"kind":32,"name":"IM_USED","url":"globals.html#http.im_used","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":32,"kind":32,"name":"MULTIPLE_CHOICES","url":"globals.html#http.multiple_choices","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":33,"kind":32,"name":"MOVED_PERMANENTLY","url":"globals.html#http.moved_permanently","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":34,"kind":32,"name":"FOUND","url":"globals.html#http.found","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":35,"kind":32,"name":"SEE_OTHER","url":"globals.html#http.see_other","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":36,"kind":32,"name":"NOT_MODIFIED","url":"globals.html#http.not_modified","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":37,"kind":32,"name":"USE_PROXY","url":"globals.html#http.use_proxy","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":38,"kind":32,"name":"SWITCH_PROXY","url":"globals.html#http.switch_proxy","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":39,"kind":32,"name":"TEMPORARY_REDIRECT","url":"globals.html#http.temporary_redirect","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":40,"kind":32,"name":"PERMANENT_REDIRECT","url":"globals.html#http.permanent_redirect","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":41,"kind":32,"name":"BAD_REQUEST","url":"globals.html#http.bad_request","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":42,"kind":32,"name":"UNAUTHORIZED","url":"globals.html#http.unauthorized","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":43,"kind":32,"name":"PAYMENT_REQUIRED","url":"globals.html#http.payment_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":44,"kind":32,"name":"FORBIDEN","url":"globals.html#http.forbiden","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":45,"kind":32,"name":"NOT_FOUND","url":"globals.html#http.not_found","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":46,"kind":32,"name":"METHOD_NOT_ALLOWED","url":"globals.html#http.method_not_allowed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":47,"kind":32,"name":"NOT_ACCEPTABLE","url":"globals.html#http.not_acceptable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":48,"kind":32,"name":"PROXY_AUTHENTICATION_REQUIRED","url":"globals.html#http.proxy_authentication_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":49,"kind":32,"name":"REQUEST_TIMEOUT","url":"globals.html#http.request_timeout","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":50,"kind":32,"name":"CONFLICT","url":"globals.html#http.conflict","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":51,"kind":32,"name":"GONE","url":"globals.html#http.gone","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":52,"kind":32,"name":"LENGTH_REQUIRED","url":"globals.html#http.length_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":53,"kind":32,"name":"PRECONDITION_FAILED","url":"globals.html#http.precondition_failed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":54,"kind":32,"name":"PAYLOAD_TOO_LARGE","url":"globals.html#http.payload_too_large","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":55,"kind":32,"name":"URI_TOO_LONG","url":"globals.html#http.uri_too_long","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":56,"kind":32,"name":"UNSUPPORTED_MEDIA_TYPE","url":"globals.html#http.unsupported_media_type","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":57,"kind":32,"name":"RANGE_NOT_SATISFIABLE","url":"globals.html#http.range_not_satisfiable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":58,"kind":32,"name":"EXPECTATION_FAILED","url":"globals.html#http.expectation_failed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":59,"kind":32,"name":"IM_A_TEAPOT","url":"globals.html#http.im_a_teapot","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":60,"kind":32,"name":"MISDIRECET_REQUEST","url":"globals.html#http.misdirecet_request","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":61,"kind":32,"name":"UNPROCESSABLE_ENTITY","url":"globals.html#http.unprocessable_entity","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":62,"kind":32,"name":"LOCKED","url":"globals.html#http.locked","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":63,"kind":32,"name":"FAILED_DEPENDENCY","url":"globals.html#http.failed_dependency","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":64,"kind":32,"name":"UPGRADE_REQUIRED","url":"globals.html#http.upgrade_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":65,"kind":32,"name":"PRECONDITION_REQUIRED","url":"globals.html#http.precondition_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":66,"kind":32,"name":"TOO_MANY_REQUESTS","url":"globals.html#http.too_many_requests","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":67,"kind":32,"name":"REQUEST_HEADER_FIELDS_TOO_LARGE","url":"globals.html#http.request_header_fields_too_large","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":68,"kind":32,"name":"UNAVAILABLE_FOR_LEGAL_REASONS","url":"globals.html#http.unavailable_for_legal_reasons","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":69,"kind":32,"name":"INTERNAL_SERVER_ERROR","url":"globals.html#http.internal_server_error","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":70,"kind":32,"name":"NOT_IMPLEMENTED","url":"globals.html#http.not_implemented","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":71,"kind":32,"name":"BAD_GATEWAY","url":"globals.html#http.bad_gateway","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":72,"kind":32,"name":"SERVICE_UNAVAILABLE","url":"globals.html#http.service_unavailable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":73,"kind":32,"name":"GATEWAY_TIMEOUT","url":"globals.html#http.gateway_timeout","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":74,"kind":32,"name":"HTTP_VERSION_NOT_SUPPORTED","url":"globals.html#http.http_version_not_supported","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":75,"kind":32,"name":"VARIANT_ALSO_NEGOTIATES","url":"globals.html#http.variant_also_negotiates","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":76,"kind":32,"name":"INSUFFICIENT_STORAGE","url":"globals.html#http.insufficient_storage","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":77,"kind":32,"name":"LOOP_DETECTED","url":"globals.html#http.loop_detected","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":78,"kind":32,"name":"NOT_EXTENDED","url":"globals.html#http.not_extended","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":79,"kind":32,"name":"NETWORK_AUTHENTICATION_REQUIRED","url":"globals.html#http.network_authentication_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":80,"kind":32,"name":"template","url":"globals.html#template","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":81,"kind":64,"name":"mixins","url":"globals.html#mixins","classes":"tsd-kind-function"},{"id":82,"kind":64,"name":"define","url":"globals.html#define","classes":"tsd-kind-function"},{"id":83,"kind":128,"name":"HttpException","url":"classes/httpexception.html","classes":"tsd-kind-class"},{"id":84,"kind":1024,"name":"code","url":"classes/httpexception.html#code","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":85,"kind":1024,"name":"errors","url":"classes/httpexception.html#errors","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":86,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpException"},{"id":87,"kind":1024,"name":"name","url":"classes/httpexception.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":88,"kind":1024,"name":"message","url":"classes/httpexception.html#message","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":89,"kind":1024,"name":"stack","url":"classes/httpexception.html#stack","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"HttpException"},{"id":90,"kind":1024,"name":"Error","url":"classes/httpexception.html#error","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":91,"kind":512,"name":"constructor","url":"classes/httpexception.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpException"},{"id":92,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":93,"kind":1024,"name":"name","url":"classes/httpexception.html#name-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":94,"kind":1024,"name":"message","url":"classes/httpexception.html#message-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":95,"kind":1024,"name":"stack","url":"classes/httpexception.html#stack-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":96,"kind":1024,"name":"Error","url":"classes/httpexception.html#error-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":97,"kind":128,"name":"Encapsulation","url":"classes/encapsulation.html","classes":"tsd-kind-class"},{"id":98,"kind":1024,"name":"_fn","url":"classes/encapsulation.html#_fn","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Encapsulation"},{"id":99,"kind":65536,"name":"__type","url":"classes/encapsulation.html#_fn.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Encapsulation._fn"},{"id":100,"kind":512,"name":"constructor","url":"classes/encapsulation.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Encapsulation"},{"id":101,"kind":2048,"name":"run","url":"classes/encapsulation.html#run","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Encapsulation"},{"id":102,"kind":2,"name":"__global","url":"modules/__global.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":103,"kind":2,"name":"NodeJS","url":"modules/__global.nodejs.html","classes":"tsd-kind-module tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":104,"kind":256,"name":"Global","url":"interfaces/__global.nodejs.global.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"__global.NodeJS"},{"id":105,"kind":1024,"name":"HttpException","url":"interfaces/__global.nodejs.global.html#httpexception","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"__global.NodeJS.Global"},{"id":106,"kind":32,"name":"HttpException","url":"modules/__global.html#httpexception","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":107,"kind":64,"name":"init","url":"globals.html#init","classes":"tsd-kind-function"},{"id":108,"kind":64,"name":"query","url":"globals.html#query","classes":"tsd-kind-function"},{"id":109,"kind":128,"name":"Route","url":"classes/route.html","classes":"tsd-kind-class"},{"id":110,"kind":1024,"name":"get","url":"classes/route.html#get","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":111,"kind":1024,"name":"post","url":"classes/route.html#post","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":112,"kind":1024,"name":"put","url":"classes/route.html#put","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":113,"kind":1024,"name":"head","url":"classes/route.html#head","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":114,"kind":1024,"name":"delete","url":"classes/route.html#delete","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":115,"kind":1024,"name":"options","url":"classes/route.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":116,"kind":1024,"name":"trace","url":"classes/route.html#trace","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":117,"kind":1024,"name":"copy","url":"classes/route.html#copy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":118,"kind":1024,"name":"lock","url":"classes/route.html#lock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":119,"kind":1024,"name":"mkcol","url":"classes/route.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":120,"kind":1024,"name":"move","url":"classes/route.html#move","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":121,"kind":1024,"name":"purge","url":"classes/route.html#purge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":122,"kind":1024,"name":"propfind","url":"classes/route.html#propfind","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":123,"kind":1024,"name":"proppatch","url":"classes/route.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":124,"kind":1024,"name":"unlock","url":"classes/route.html#unlock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":125,"kind":1024,"name":"report","url":"classes/route.html#report","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":126,"kind":1024,"name":"mkactivity","url":"classes/route.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":127,"kind":1024,"name":"checkout","url":"classes/route.html#checkout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":128,"kind":1024,"name":"merge","url":"classes/route.html#merge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":129,"kind":1024,"name":"m-search","url":"classes/route.html#m_search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":130,"kind":1024,"name":"notify","url":"classes/route.html#notify","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":131,"kind":1024,"name":"subscribe","url":"classes/route.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":132,"kind":1024,"name":"unsubscribe","url":"classes/route.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":133,"kind":1024,"name":"patch","url":"classes/route.html#patch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":134,"kind":1024,"name":"search","url":"classes/route.html#search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":135,"kind":1024,"name":"connect","url":"classes/route.html#connect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":136,"kind":1024,"name":"_routes","url":"classes/route.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":137,"kind":1024,"name":"_prefix","url":"classes/route.html#_prefix","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":138,"kind":262144,"name":"routes","url":"classes/route.html#routes-1","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"Route"},{"id":139,"kind":512,"name":"constructor","url":"classes/route.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Route"},{"id":140,"kind":2048,"name":"_push","url":"classes/route.html#_push","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":141,"kind":2048,"name":"any","url":"classes/route.html#any","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":142,"kind":2048,"name":"oneOf","url":"classes/route.html#oneof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":143,"kind":2048,"name":"use","url":"classes/route.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":144,"kind":256,"name":"MethodFunctions","url":"interfaces/route.methodfunctions.html","classes":"tsd-kind-interface tsd-parent-kind-class tsd-has-type-parameter","parent":"Route"},{"id":145,"kind":1024,"name":"get","url":"interfaces/route.methodfunctions.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":146,"kind":1024,"name":"post","url":"interfaces/route.methodfunctions.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":147,"kind":1024,"name":"put","url":"interfaces/route.methodfunctions.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":148,"kind":1024,"name":"head","url":"interfaces/route.methodfunctions.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":149,"kind":1024,"name":"delete","url":"interfaces/route.methodfunctions.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":150,"kind":1024,"name":"options","url":"interfaces/route.methodfunctions.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":151,"kind":1024,"name":"trace","url":"interfaces/route.methodfunctions.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":152,"kind":1024,"name":"copy","url":"interfaces/route.methodfunctions.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":153,"kind":1024,"name":"lock","url":"interfaces/route.methodfunctions.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":154,"kind":1024,"name":"mkcol","url":"interfaces/route.methodfunctions.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":155,"kind":1024,"name":"move","url":"interfaces/route.methodfunctions.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":156,"kind":1024,"name":"purge","url":"interfaces/route.methodfunctions.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":157,"kind":1024,"name":"propfind","url":"interfaces/route.methodfunctions.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":158,"kind":1024,"name":"proppatch","url":"interfaces/route.methodfunctions.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":159,"kind":1024,"name":"unlock","url":"interfaces/route.methodfunctions.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":160,"kind":1024,"name":"report","url":"interfaces/route.methodfunctions.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":161,"kind":1024,"name":"mkactivity","url":"interfaces/route.methodfunctions.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":162,"kind":1024,"name":"checkout","url":"interfaces/route.methodfunctions.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":163,"kind":1024,"name":"merge","url":"interfaces/route.methodfunctions.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":164,"kind":1024,"name":"m-search","url":"interfaces/route.methodfunctions.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":165,"kind":1024,"name":"notify","url":"interfaces/route.methodfunctions.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":166,"kind":1024,"name":"subscribe","url":"interfaces/route.methodfunctions.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":167,"kind":1024,"name":"unsubscribe","url":"interfaces/route.methodfunctions.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":168,"kind":1024,"name":"patch","url":"interfaces/route.methodfunctions.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":169,"kind":1024,"name":"search","url":"interfaces/route.methodfunctions.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":170,"kind":1024,"name":"connect","url":"interfaces/route.methodfunctions.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":171,"kind":256,"name":"Routes","url":"interfaces/route.routes.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":172,"kind":1024,"name":"get","url":"interfaces/route.routes.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":173,"kind":1024,"name":"post","url":"interfaces/route.routes.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":174,"kind":1024,"name":"put","url":"interfaces/route.routes.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":175,"kind":1024,"name":"head","url":"interfaces/route.routes.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":176,"kind":1024,"name":"delete","url":"interfaces/route.routes.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":177,"kind":1024,"name":"options","url":"interfaces/route.routes.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":178,"kind":1024,"name":"trace","url":"interfaces/route.routes.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":179,"kind":1024,"name":"copy","url":"interfaces/route.routes.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":180,"kind":1024,"name":"lock","url":"interfaces/route.routes.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":181,"kind":1024,"name":"mkcol","url":"interfaces/route.routes.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":182,"kind":1024,"name":"move","url":"interfaces/route.routes.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":183,"kind":1024,"name":"purge","url":"interfaces/route.routes.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":184,"kind":1024,"name":"propfind","url":"interfaces/route.routes.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":185,"kind":1024,"name":"proppatch","url":"interfaces/route.routes.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":186,"kind":1024,"name":"unlock","url":"interfaces/route.routes.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":187,"kind":1024,"name":"report","url":"interfaces/route.routes.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":188,"kind":1024,"name":"mkactivity","url":"interfaces/route.routes.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":189,"kind":1024,"name":"checkout","url":"interfaces/route.routes.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":190,"kind":1024,"name":"merge","url":"interfaces/route.routes.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":191,"kind":1024,"name":"m-search","url":"interfaces/route.routes.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":192,"kind":1024,"name":"notify","url":"interfaces/route.routes.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":193,"kind":1024,"name":"subscribe","url":"interfaces/route.routes.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":194,"kind":1024,"name":"unsubscribe","url":"interfaces/route.routes.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":195,"kind":1024,"name":"patch","url":"interfaces/route.routes.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":196,"kind":1024,"name":"search","url":"interfaces/route.routes.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":197,"kind":1024,"name":"connect","url":"interfaces/route.routes.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":198,"kind":256,"name":"RouteObject","url":"interfaces/route.routeobject.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":199,"kind":1024,"name":"path","url":"interfaces/route.routeobject.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":200,"kind":1024,"name":"options","url":"interfaces/route.routeobject.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":201,"kind":1024,"name":"controller","url":"interfaces/route.routeobject.html#controller","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":202,"kind":256,"name":"JsonSchemaProperties","url":"interfaces/route.jsonschemaproperties.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":203,"kind":256,"name":"JsonSchema","url":"interfaces/route.jsonschema.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":204,"kind":1024,"name":"title","url":"interfaces/route.jsonschema.html#title","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":205,"kind":1024,"name":"type","url":"interfaces/route.jsonschema.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":206,"kind":1024,"name":"properties","url":"interfaces/route.jsonschema.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":207,"kind":1024,"name":"patternProperties","url":"interfaces/route.jsonschema.html#patternproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":208,"kind":1024,"name":"additionalProperties","url":"interfaces/route.jsonschema.html#additionalproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":209,"kind":1024,"name":"required","url":"interfaces/route.jsonschema.html#required","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":210,"kind":256,"name":"RouteOptions","url":"interfaces/route.routeoptions.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":211,"kind":1024,"name":"schema","url":"interfaces/route.routeoptions.html#schema","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteOptions"},{"id":212,"kind":4194304,"name":"Controller","url":"classes/route.html#controller","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":213,"kind":65536,"name":"__type","url":"classes/route.html#controller.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Route.Controller"},{"id":214,"kind":4194304,"name":"MethodFunction","url":"classes/route.html#methodfunction","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Route"},{"id":215,"kind":65536,"name":"__type","url":"classes/route.html#methodfunction.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Route.MethodFunction"},{"id":216,"kind":4194304,"name":"JsonSchemaType","url":"classes/route.html#jsonschematype","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":217,"kind":128,"name":"Router","url":"classes/router.html","classes":"tsd-kind-class"},{"id":218,"kind":1024,"name":"_routes","url":"classes/router.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":219,"kind":512,"name":"constructor","url":"classes/router.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Router"},{"id":220,"kind":2048,"name":"_next","url":"classes/router.html#_next","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":221,"kind":1024,"name":"_safeNext","url":"classes/router.html#_safenext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":222,"kind":2048,"name":"initialize","url":"classes/router.html#initialize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":223,"kind":2048,"name":"prepend","url":"classes/router.html#prepend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":224,"kind":2048,"name":"push","url":"classes/router.html#push","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":225,"kind":2048,"name":"route","url":"classes/router.html#route","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":226,"kind":128,"name":"Engine","url":"classes/engine.html","classes":"tsd-kind-class"},{"id":227,"kind":1024,"name":"_path","url":"classes/engine.html#_path","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":228,"kind":1024,"name":"_ext","url":"classes/engine.html#_ext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":229,"kind":1024,"name":"_handler","url":"classes/engine.html#_handler","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":230,"kind":65536,"name":"__type","url":"classes/engine.html#_handler.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Engine._handler"},{"id":231,"kind":512,"name":"constructor","url":"classes/engine.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Engine"},{"id":232,"kind":2048,"name":"render","url":"classes/engine.html#render","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Engine"},{"id":233,"kind":2048,"name":"responsePatch","url":"classes/engine.html#responsepatch","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Engine"},{"id":234,"kind":4194304,"name":"Callback","url":"classes/engine.html#callback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Engine"},{"id":235,"kind":65536,"name":"__type","url":"classes/engine.html#callback.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Engine.Callback"},{"id":236,"kind":128,"name":"Foxify","url":"classes/foxify.html","classes":"tsd-kind-class"},{"id":237,"kind":2048,"name":"get","url":"classes/foxify.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Foxify"},{"id":238,"kind":2048,"name":"use","url":"classes/foxify.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":239,"kind":1024,"name":"post","url":"classes/foxify.html#post","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":240,"kind":1024,"name":"put","url":"classes/foxify.html#put","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":241,"kind":1024,"name":"head","url":"classes/foxify.html#head","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":242,"kind":1024,"name":"delete","url":"classes/foxify.html#delete","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":243,"kind":1024,"name":"options","url":"classes/foxify.html#options-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":244,"kind":1024,"name":"trace","url":"classes/foxify.html#trace","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":245,"kind":1024,"name":"copy","url":"classes/foxify.html#copy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":246,"kind":1024,"name":"lock","url":"classes/foxify.html#lock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":247,"kind":1024,"name":"mkcol","url":"classes/foxify.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":248,"kind":1024,"name":"move","url":"classes/foxify.html#move","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":249,"kind":1024,"name":"purge","url":"classes/foxify.html#purge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":250,"kind":1024,"name":"propfind","url":"classes/foxify.html#propfind","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":251,"kind":1024,"name":"proppatch","url":"classes/foxify.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":252,"kind":1024,"name":"unlock","url":"classes/foxify.html#unlock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":253,"kind":1024,"name":"report","url":"classes/foxify.html#report","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":254,"kind":1024,"name":"mkactivity","url":"classes/foxify.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":255,"kind":1024,"name":"checkout","url":"classes/foxify.html#checkout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":256,"kind":1024,"name":"merge","url":"classes/foxify.html#merge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":257,"kind":1024,"name":"m-search","url":"classes/foxify.html#m_search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":258,"kind":1024,"name":"notify","url":"classes/foxify.html#notify","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":259,"kind":1024,"name":"subscribe","url":"classes/foxify.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":260,"kind":1024,"name":"unsubscribe","url":"classes/foxify.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":261,"kind":1024,"name":"patch","url":"classes/foxify.html#patch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":262,"kind":1024,"name":"search","url":"classes/foxify.html#search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":263,"kind":1024,"name":"connect","url":"classes/foxify.html#connect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":264,"kind":1024,"name":"constants","url":"classes/foxify.html#constants","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":265,"kind":1024,"name":"Route","url":"classes/foxify.html#route","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":266,"kind":1024,"name":"static","url":"classes/foxify.html#static","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":267,"kind":2048,"name":"dotenv","url":"classes/foxify.html#dotenv","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":268,"kind":2097152,"name":"_options","url":"classes/foxify.html#_options","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":269,"kind":32,"name":"https","url":"classes/foxify.html#_options.https","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":270,"kind":32,"name":"x-powered-by","url":"classes/foxify.html#_options.x_powered_by","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":271,"kind":32,"name":"content-length","url":"classes/foxify.html#_options.content_length","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":272,"kind":2097152,"name":"routing","url":"classes/foxify.html#_options.routing","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":273,"kind":32,"name":"strict","url":"classes/foxify.html#_options.routing.strict","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.routing"},{"id":274,"kind":32,"name":"sensitive","url":"classes/foxify.html#_options.routing.sensitive","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.routing"},{"id":275,"kind":2097152,"name":"json","url":"classes/foxify.html#_options.json","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":276,"kind":32,"name":"escape","url":"classes/foxify.html#_options.json.escape","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.json"},{"id":277,"kind":2097152,"name":"_settings","url":"classes/foxify.html#_settings","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":278,"kind":32,"name":"env","url":"classes/foxify.html#_settings.env","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":279,"kind":32,"name":"url","url":"classes/foxify.html#_settings.url","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":280,"kind":32,"name":"port","url":"classes/foxify.html#_settings.port","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":281,"kind":32,"name":"workers","url":"classes/foxify.html#_settings.workers","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":282,"kind":2097152,"name":"https","url":"classes/foxify.html#_settings.https-1","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":283,"kind":32,"name":"cert","url":"classes/foxify.html#_settings.https-1.cert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.https"},{"id":284,"kind":32,"name":"key","url":"classes/foxify.html#_settings.https-1.key","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.https"},{"id":285,"kind":2097152,"name":"json","url":"classes/foxify.html#_settings.json-1","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":286,"kind":32,"name":"replacer","url":"classes/foxify.html#_settings.json-1.replacer","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.json"},{"id":287,"kind":32,"name":"spaces","url":"classes/foxify.html#_settings.json-1.spaces","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.json"},{"id":288,"kind":2097152,"name":"query","url":"classes/foxify.html#_settings.query","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":289,"kind":32,"name":"parser","url":"classes/foxify.html#_settings.query.parser","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.query"},{"id":290,"kind":1024,"name":"_router","url":"classes/foxify.html#_router","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":291,"kind":1024,"name":"_view","url":"classes/foxify.html#_view","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":292,"kind":512,"name":"constructor","url":"classes/foxify.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Foxify"},{"id":293,"kind":2048,"name":"_set","url":"classes/foxify.html#_set","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":294,"kind":2048,"name":"_use","url":"classes/foxify.html#_use","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":295,"kind":2048,"name":"enable","url":"classes/foxify.html#enable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":296,"kind":2048,"name":"disable","url":"classes/foxify.html#disable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":297,"kind":2048,"name":"enabled","url":"classes/foxify.html#enabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":298,"kind":2048,"name":"disabled","url":"classes/foxify.html#disabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":299,"kind":2048,"name":"set","url":"classes/foxify.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":300,"kind":2048,"name":"engine","url":"classes/foxify.html#engine","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":301,"kind":2048,"name":"start","url":"classes/foxify.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":302,"kind":256,"name":"Options","url":"interfaces/foxify.options.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":303,"kind":1024,"name":"https","url":"interfaces/foxify.options.html#https","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":304,"kind":1024,"name":"x-powered-by","url":"interfaces/foxify.options.html#x_powered_by","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":305,"kind":1024,"name":"content-length","url":"interfaces/foxify.options.html#content_length","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":306,"kind":1024,"name":"routing","url":"interfaces/foxify.options.html#routing","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":307,"kind":65536,"name":"__type","url":"interfaces/foxify.options.html#routing.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Options.routing"},{"id":308,"kind":32,"name":"strict","url":"interfaces/foxify.options.html#routing.__type-1.strict","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.routing.__type"},{"id":309,"kind":32,"name":"sensitive","url":"interfaces/foxify.options.html#routing.__type-1.sensitive","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.routing.__type"},{"id":310,"kind":1024,"name":"json","url":"interfaces/foxify.options.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":311,"kind":65536,"name":"__type","url":"interfaces/foxify.options.html#json.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Options.json"},{"id":312,"kind":32,"name":"escape","url":"interfaces/foxify.options.html#json.__type.escape","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.json.__type"},{"id":313,"kind":256,"name":"Settings","url":"interfaces/foxify.settings.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":314,"kind":1024,"name":"env","url":"interfaces/foxify.settings.html#env","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":315,"kind":1024,"name":"url","url":"interfaces/foxify.settings.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":316,"kind":1024,"name":"port","url":"interfaces/foxify.settings.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":317,"kind":1024,"name":"workers","url":"interfaces/foxify.settings.html#workers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":318,"kind":1024,"name":"https","url":"interfaces/foxify.settings.html#https","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":319,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#https.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.https"},{"id":320,"kind":32,"name":"cert","url":"interfaces/foxify.settings.html#https.__type.cert","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.https.__type"},{"id":321,"kind":32,"name":"key","url":"interfaces/foxify.settings.html#https.__type.key","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.https.__type"},{"id":322,"kind":1024,"name":"json","url":"interfaces/foxify.settings.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":323,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#json.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.json"},{"id":324,"kind":32,"name":"replacer","url":"interfaces/foxify.settings.html#json.__type-1.replacer","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":325,"kind":32,"name":"spaces","url":"interfaces/foxify.settings.html#json.__type-1.spaces","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":326,"kind":1024,"name":"query","url":"interfaces/foxify.settings.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":327,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#query.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.query"},{"id":328,"kind":32,"name":"parser","url":"interfaces/foxify.settings.html#query.__type-2.parser","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.query.__type"},{"id":329,"kind":2,"name":"\"http\"","url":"modules/_http_.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":330,"kind":256,"name":"IncomingMessage","url":"interfaces/_http_.incomingmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":331,"kind":1024,"name":"res","url":"interfaces/_http_.incomingmessage.html#res","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":332,"kind":1024,"name":"fresh","url":"interfaces/_http_.incomingmessage.html#fresh","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":333,"kind":1024,"name":"hostname","url":"interfaces/_http_.incomingmessage.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":334,"kind":1024,"name":"path","url":"interfaces/_http_.incomingmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":335,"kind":1024,"name":"query","url":"interfaces/_http_.incomingmessage.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":336,"kind":1024,"name":"stale","url":"interfaces/_http_.incomingmessage.html#stale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":337,"kind":1024,"name":"xhr","url":"interfaces/_http_.incomingmessage.html#xhr","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":338,"kind":1024,"name":"head","url":"interfaces/_http_.incomingmessage.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":339,"kind":2048,"name":"accepts","url":"interfaces/_http_.incomingmessage.html#accepts","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":340,"kind":2048,"name":"acceptsCharsets","url":"interfaces/_http_.incomingmessage.html#acceptscharsets","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":341,"kind":2048,"name":"acceptsEncodings","url":"interfaces/_http_.incomingmessage.html#acceptsencodings","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":342,"kind":2048,"name":"acceptsLanguages","url":"interfaces/_http_.incomingmessage.html#acceptslanguages","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":343,"kind":2048,"name":"get","url":"interfaces/_http_.incomingmessage.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":344,"kind":2048,"name":"is","url":"interfaces/_http_.incomingmessage.html#is","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":345,"kind":2048,"name":"next","url":"interfaces/_http_.incomingmessage.html#next","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":346,"kind":2048,"name":"range","url":"interfaces/_http_.incomingmessage.html#range","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":347,"kind":64,"name":"patch","url":"globals.html#patch","classes":"tsd-kind-function"},{"id":348,"kind":256,"name":"ServerResponse","url":"interfaces/_http_.serverresponse.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":349,"kind":1024,"name":"req","url":"interfaces/_http_.serverresponse.html#req","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":350,"kind":1024,"name":"set","url":"interfaces/_http_.serverresponse.html#set","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":351,"kind":1024,"name":"type","url":"interfaces/_http_.serverresponse.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":352,"kind":2048,"name":"append","url":"interfaces/_http_.serverresponse.html#append","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":353,"kind":2048,"name":"attachment","url":"interfaces/_http_.serverresponse.html#attachment","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":354,"kind":2048,"name":"clearCookie","url":"interfaces/_http_.serverresponse.html#clearcookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":355,"kind":2048,"name":"contentType","url":"interfaces/_http_.serverresponse.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":356,"kind":2048,"name":"cookie","url":"interfaces/_http_.serverresponse.html#cookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":357,"kind":2048,"name":"download","url":"interfaces/_http_.serverresponse.html#download","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":358,"kind":2048,"name":"format","url":"interfaces/_http_.serverresponse.html#format","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":359,"kind":2048,"name":"get","url":"interfaces/_http_.serverresponse.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":360,"kind":2048,"name":"header","url":"interfaces/_http_.serverresponse.html#header","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":361,"kind":2048,"name":"json","url":"interfaces/_http_.serverresponse.html#json","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":362,"kind":2048,"name":"jsonp","url":"interfaces/_http_.serverresponse.html#jsonp","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":363,"kind":2048,"name":"links","url":"interfaces/_http_.serverresponse.html#links","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":364,"kind":2048,"name":"location","url":"interfaces/_http_.serverresponse.html#location","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":365,"kind":2048,"name":"redirect","url":"interfaces/_http_.serverresponse.html#redirect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":366,"kind":2048,"name":"render","url":"interfaces/_http_.serverresponse.html#render","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":367,"kind":2048,"name":"send","url":"interfaces/_http_.serverresponse.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":368,"kind":2048,"name":"sendFile","url":"interfaces/_http_.serverresponse.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":369,"kind":2048,"name":"sendStatus","url":"interfaces/_http_.serverresponse.html#sendstatus","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":370,"kind":2048,"name":"status","url":"interfaces/_http_.serverresponse.html#status","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":371,"kind":2048,"name":"vary","url":"interfaces/_http_.serverresponse.html#vary","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":372,"kind":32,"name":"resolve","url":"globals.html#resolve","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":373,"kind":32,"name":"STATUS_CODES","url":"globals.html#status_codes","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":374,"kind":65536,"name":"__type","url":"globals.html#status_codes.__type","classes":"tsd-kind-type-literal tsd-parent-kind-variable tsd-is-not-exported","parent":"STATUS_CODES"},{"id":375,"kind":32,"name":"charsetRegExp","url":"globals.html#charsetregexp","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":376,"kind":64,"name":"setCharset","url":"globals.html#setcharset","classes":"tsd-kind-function tsd-is-not-exported"},{"id":377,"kind":64,"name":"stringify","url":"globals.html#stringify","classes":"tsd-kind-function tsd-is-private tsd-is-not-exported"},{"id":378,"kind":64,"name":"isAbsolute","url":"globals.html#isabsolute","classes":"tsd-kind-function tsd-is-not-exported"},{"id":379,"kind":64,"name":"sendfile","url":"globals.html#sendfile","classes":"tsd-kind-function tsd-is-not-exported"},{"id":380,"kind":64,"name":"acceptParams","url":"globals.html#acceptparams","classes":"tsd-kind-function tsd-is-not-exported"},{"id":381,"kind":64,"name":"normalizeType","url":"globals.html#normalizetype","classes":"tsd-kind-function tsd-is-not-exported"},{"id":382,"kind":64,"name":"normalizeTypes","url":"globals.html#normalizetypes","classes":"tsd-kind-function tsd-is-not-exported"}]}; \ No newline at end of file + typedoc.search.data = {"kinds":{"2":"Module","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":2097152,"name":"HTTP","url":"globals.html#http","classes":"tsd-kind-object-literal"},{"id":1,"kind":32,"name":"CONTINUE","url":"globals.html#http.continue","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":2,"kind":32,"name":"SWITCHING_PROTOCOL","url":"globals.html#http.switching_protocol","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":3,"kind":32,"name":"PROCESSING","url":"globals.html#http.processing","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":4,"kind":32,"name":"EARLY_HINTS","url":"globals.html#http.early_hints","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":5,"kind":32,"name":"OK","url":"globals.html#http.ok","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":6,"kind":32,"name":"CREATED","url":"globals.html#http.created","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":7,"kind":32,"name":"ACCEPTED","url":"globals.html#http.accepted","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":8,"kind":32,"name":"NON_AUTHORITATIVE_INFORMATION","url":"globals.html#http.non_authoritative_information","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":9,"kind":32,"name":"NO_CONTENT","url":"globals.html#http.no_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":10,"kind":32,"name":"RESET_CONTENT","url":"globals.html#http.reset_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":11,"kind":32,"name":"PARTIAL_CONTENT","url":"globals.html#http.partial_content","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":12,"kind":32,"name":"MULTI_STATUS","url":"globals.html#http.multi_status","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":13,"kind":32,"name":"ALREADY_REPORTED","url":"globals.html#http.already_reported","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":14,"kind":32,"name":"IM_USED","url":"globals.html#http.im_used","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":15,"kind":32,"name":"MULTIPLE_CHOICES","url":"globals.html#http.multiple_choices","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":16,"kind":32,"name":"MOVED_PERMANENTLY","url":"globals.html#http.moved_permanently","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":17,"kind":32,"name":"FOUND","url":"globals.html#http.found","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":18,"kind":32,"name":"SEE_OTHER","url":"globals.html#http.see_other","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":19,"kind":32,"name":"NOT_MODIFIED","url":"globals.html#http.not_modified","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":20,"kind":32,"name":"USE_PROXY","url":"globals.html#http.use_proxy","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":21,"kind":32,"name":"SWITCH_PROXY","url":"globals.html#http.switch_proxy","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":22,"kind":32,"name":"TEMPORARY_REDIRECT","url":"globals.html#http.temporary_redirect","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":23,"kind":32,"name":"PERMANENT_REDIRECT","url":"globals.html#http.permanent_redirect","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":24,"kind":32,"name":"BAD_REQUEST","url":"globals.html#http.bad_request","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":25,"kind":32,"name":"UNAUTHORIZED","url":"globals.html#http.unauthorized","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":26,"kind":32,"name":"PAYMENT_REQUIRED","url":"globals.html#http.payment_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":27,"kind":32,"name":"FORBIDEN","url":"globals.html#http.forbiden","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":28,"kind":32,"name":"NOT_FOUND","url":"globals.html#http.not_found","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":29,"kind":32,"name":"METHOD_NOT_ALLOWED","url":"globals.html#http.method_not_allowed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":30,"kind":32,"name":"NOT_ACCEPTABLE","url":"globals.html#http.not_acceptable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":31,"kind":32,"name":"PROXY_AUTHENTICATION_REQUIRED","url":"globals.html#http.proxy_authentication_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":32,"kind":32,"name":"REQUEST_TIMEOUT","url":"globals.html#http.request_timeout","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":33,"kind":32,"name":"CONFLICT","url":"globals.html#http.conflict","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":34,"kind":32,"name":"GONE","url":"globals.html#http.gone","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":35,"kind":32,"name":"LENGTH_REQUIRED","url":"globals.html#http.length_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":36,"kind":32,"name":"PRECONDITION_FAILED","url":"globals.html#http.precondition_failed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":37,"kind":32,"name":"PAYLOAD_TOO_LARGE","url":"globals.html#http.payload_too_large","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":38,"kind":32,"name":"URI_TOO_LONG","url":"globals.html#http.uri_too_long","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":39,"kind":32,"name":"UNSUPPORTED_MEDIA_TYPE","url":"globals.html#http.unsupported_media_type","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":40,"kind":32,"name":"RANGE_NOT_SATISFIABLE","url":"globals.html#http.range_not_satisfiable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":41,"kind":32,"name":"EXPECTATION_FAILED","url":"globals.html#http.expectation_failed","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":42,"kind":32,"name":"IM_A_TEAPOT","url":"globals.html#http.im_a_teapot","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":43,"kind":32,"name":"MISDIRECET_REQUEST","url":"globals.html#http.misdirecet_request","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":44,"kind":32,"name":"UNPROCESSABLE_ENTITY","url":"globals.html#http.unprocessable_entity","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":45,"kind":32,"name":"LOCKED","url":"globals.html#http.locked","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":46,"kind":32,"name":"FAILED_DEPENDENCY","url":"globals.html#http.failed_dependency","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":47,"kind":32,"name":"UPGRADE_REQUIRED","url":"globals.html#http.upgrade_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":48,"kind":32,"name":"PRECONDITION_REQUIRED","url":"globals.html#http.precondition_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":49,"kind":32,"name":"TOO_MANY_REQUESTS","url":"globals.html#http.too_many_requests","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":50,"kind":32,"name":"REQUEST_HEADER_FIELDS_TOO_LARGE","url":"globals.html#http.request_header_fields_too_large","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":51,"kind":32,"name":"UNAVAILABLE_FOR_LEGAL_REASONS","url":"globals.html#http.unavailable_for_legal_reasons","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":52,"kind":32,"name":"INTERNAL_SERVER_ERROR","url":"globals.html#http.internal_server_error","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":53,"kind":32,"name":"NOT_IMPLEMENTED","url":"globals.html#http.not_implemented","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":54,"kind":32,"name":"BAD_GATEWAY","url":"globals.html#http.bad_gateway","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":55,"kind":32,"name":"SERVICE_UNAVAILABLE","url":"globals.html#http.service_unavailable","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":56,"kind":32,"name":"GATEWAY_TIMEOUT","url":"globals.html#http.gateway_timeout","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":57,"kind":32,"name":"HTTP_VERSION_NOT_SUPPORTED","url":"globals.html#http.http_version_not_supported","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":58,"kind":32,"name":"VARIANT_ALSO_NEGOTIATES","url":"globals.html#http.variant_also_negotiates","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":59,"kind":32,"name":"INSUFFICIENT_STORAGE","url":"globals.html#http.insufficient_storage","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":60,"kind":32,"name":"LOOP_DETECTED","url":"globals.html#http.loop_detected","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":61,"kind":32,"name":"NOT_EXTENDED","url":"globals.html#http.not_extended","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":62,"kind":32,"name":"NETWORK_AUTHENTICATION_REQUIRED","url":"globals.html#http.network_authentication_required","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"HTTP"},{"id":63,"kind":64,"name":"mixins","url":"globals.html#mixins","classes":"tsd-kind-function"},{"id":64,"kind":64,"name":"define","url":"globals.html#define","classes":"tsd-kind-function"},{"id":65,"kind":2,"name":"\"http\"","url":"modules/_http_.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":66,"kind":256,"name":"IncomingMessage","url":"interfaces/_http_.incomingmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":67,"kind":1024,"name":"res","url":"interfaces/_http_.incomingmessage.html#res","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":68,"kind":1024,"name":"fresh","url":"interfaces/_http_.incomingmessage.html#fresh","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":69,"kind":1024,"name":"hostname","url":"interfaces/_http_.incomingmessage.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":70,"kind":1024,"name":"path","url":"interfaces/_http_.incomingmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":71,"kind":1024,"name":"query","url":"interfaces/_http_.incomingmessage.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":72,"kind":1024,"name":"stale","url":"interfaces/_http_.incomingmessage.html#stale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":73,"kind":1024,"name":"xhr","url":"interfaces/_http_.incomingmessage.html#xhr","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":74,"kind":1024,"name":"head","url":"interfaces/_http_.incomingmessage.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":75,"kind":2048,"name":"accepts","url":"interfaces/_http_.incomingmessage.html#accepts","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":76,"kind":2048,"name":"acceptsCharsets","url":"interfaces/_http_.incomingmessage.html#acceptscharsets","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":77,"kind":2048,"name":"acceptsEncodings","url":"interfaces/_http_.incomingmessage.html#acceptsencodings","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":78,"kind":2048,"name":"acceptsLanguages","url":"interfaces/_http_.incomingmessage.html#acceptslanguages","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":79,"kind":2048,"name":"get","url":"interfaces/_http_.incomingmessage.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":80,"kind":2048,"name":"is","url":"interfaces/_http_.incomingmessage.html#is","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":81,"kind":2048,"name":"next","url":"interfaces/_http_.incomingmessage.html#next","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":82,"kind":2048,"name":"range","url":"interfaces/_http_.incomingmessage.html#range","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":83,"kind":64,"name":"patch","url":"globals.html#patch","classes":"tsd-kind-function"},{"id":84,"kind":128,"name":"Engine","url":"classes/engine.html","classes":"tsd-kind-class"},{"id":85,"kind":1024,"name":"_path","url":"classes/engine.html#_path","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":86,"kind":1024,"name":"_ext","url":"classes/engine.html#_ext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":87,"kind":1024,"name":"_handler","url":"classes/engine.html#_handler","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":88,"kind":65536,"name":"__type","url":"classes/engine.html#_handler.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Engine._handler"},{"id":89,"kind":512,"name":"constructor","url":"classes/engine.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Engine"},{"id":90,"kind":2048,"name":"render","url":"classes/engine.html#render","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Engine"},{"id":91,"kind":4194304,"name":"Callback","url":"classes/engine.html#callback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Engine"},{"id":92,"kind":65536,"name":"__type","url":"classes/engine.html#callback.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Engine.Callback"},{"id":93,"kind":256,"name":"ServerResponse","url":"interfaces/_http_.serverresponse.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":94,"kind":1024,"name":"req","url":"interfaces/_http_.serverresponse.html#req","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":95,"kind":1024,"name":"set","url":"interfaces/_http_.serverresponse.html#set","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":96,"kind":1024,"name":"type","url":"interfaces/_http_.serverresponse.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":97,"kind":2048,"name":"append","url":"interfaces/_http_.serverresponse.html#append","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":98,"kind":2048,"name":"attachment","url":"interfaces/_http_.serverresponse.html#attachment","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":99,"kind":2048,"name":"clearCookie","url":"interfaces/_http_.serverresponse.html#clearcookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":100,"kind":2048,"name":"contentType","url":"interfaces/_http_.serverresponse.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":101,"kind":2048,"name":"cookie","url":"interfaces/_http_.serverresponse.html#cookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":102,"kind":2048,"name":"download","url":"interfaces/_http_.serverresponse.html#download","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":103,"kind":2048,"name":"format","url":"interfaces/_http_.serverresponse.html#format","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":104,"kind":2048,"name":"get","url":"interfaces/_http_.serverresponse.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":105,"kind":2048,"name":"header","url":"interfaces/_http_.serverresponse.html#header","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":106,"kind":2048,"name":"json","url":"interfaces/_http_.serverresponse.html#json","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":107,"kind":2048,"name":"jsonp","url":"interfaces/_http_.serverresponse.html#jsonp","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":108,"kind":2048,"name":"links","url":"interfaces/_http_.serverresponse.html#links","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":109,"kind":2048,"name":"location","url":"interfaces/_http_.serverresponse.html#location","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":110,"kind":2048,"name":"redirect","url":"interfaces/_http_.serverresponse.html#redirect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":111,"kind":2048,"name":"render","url":"interfaces/_http_.serverresponse.html#render","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":112,"kind":2048,"name":"send","url":"interfaces/_http_.serverresponse.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":113,"kind":2048,"name":"sendFile","url":"interfaces/_http_.serverresponse.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":114,"kind":2048,"name":"sendStatus","url":"interfaces/_http_.serverresponse.html#sendstatus","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":115,"kind":2048,"name":"status","url":"interfaces/_http_.serverresponse.html#status","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":116,"kind":2048,"name":"vary","url":"interfaces/_http_.serverresponse.html#vary","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":117,"kind":32,"name":"resolve","url":"globals.html#resolve","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":118,"kind":32,"name":"STATUS_CODES","url":"globals.html#status_codes","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":119,"kind":65536,"name":"__type","url":"globals.html#status_codes.__type","classes":"tsd-kind-type-literal tsd-parent-kind-variable tsd-is-not-exported","parent":"STATUS_CODES"},{"id":120,"kind":32,"name":"charsetRegExp","url":"globals.html#charsetregexp","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":121,"kind":64,"name":"setCharset","url":"globals.html#setcharset","classes":"tsd-kind-function tsd-is-not-exported"},{"id":122,"kind":64,"name":"stringify","url":"globals.html#stringify","classes":"tsd-kind-function tsd-is-private tsd-is-not-exported"},{"id":123,"kind":64,"name":"isAbsolute","url":"globals.html#isabsolute","classes":"tsd-kind-function tsd-is-not-exported"},{"id":124,"kind":64,"name":"sendfile","url":"globals.html#sendfile","classes":"tsd-kind-function tsd-is-not-exported"},{"id":125,"kind":64,"name":"acceptParams","url":"globals.html#acceptparams","classes":"tsd-kind-function tsd-is-not-exported"},{"id":126,"kind":64,"name":"normalizeType","url":"globals.html#normalizetype","classes":"tsd-kind-function tsd-is-not-exported"},{"id":127,"kind":64,"name":"normalizeTypes","url":"globals.html#normalizetypes","classes":"tsd-kind-function tsd-is-not-exported"},{"id":128,"kind":32,"name":"template","url":"globals.html#template","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":129,"kind":128,"name":"HttpException","url":"classes/httpexception.html","classes":"tsd-kind-class"},{"id":130,"kind":1024,"name":"code","url":"classes/httpexception.html#code","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":131,"kind":1024,"name":"errors","url":"classes/httpexception.html#errors","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":132,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpException"},{"id":133,"kind":1024,"name":"name","url":"classes/httpexception.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":134,"kind":1024,"name":"message","url":"classes/httpexception.html#message","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":135,"kind":1024,"name":"stack","url":"classes/httpexception.html#stack","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"HttpException"},{"id":136,"kind":1024,"name":"Error","url":"classes/httpexception.html#error","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":137,"kind":512,"name":"constructor","url":"classes/httpexception.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpException"},{"id":138,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":139,"kind":1024,"name":"name","url":"classes/httpexception.html#name-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":140,"kind":1024,"name":"message","url":"classes/httpexception.html#message-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":141,"kind":1024,"name":"stack","url":"classes/httpexception.html#stack-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"HttpException"},{"id":142,"kind":1024,"name":"Error","url":"classes/httpexception.html#error-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":143,"kind":128,"name":"Encapsulation","url":"classes/encapsulation.html","classes":"tsd-kind-class"},{"id":144,"kind":1024,"name":"_fn","url":"classes/encapsulation.html#_fn","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Encapsulation"},{"id":145,"kind":65536,"name":"__type","url":"classes/encapsulation.html#_fn.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Encapsulation._fn"},{"id":146,"kind":512,"name":"constructor","url":"classes/encapsulation.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Encapsulation"},{"id":147,"kind":2048,"name":"run","url":"classes/encapsulation.html#run","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Encapsulation"},{"id":148,"kind":2,"name":"__global","url":"modules/__global.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":149,"kind":2,"name":"NodeJS","url":"modules/__global.nodejs.html","classes":"tsd-kind-module tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":150,"kind":256,"name":"Global","url":"interfaces/__global.nodejs.global.html","classes":"tsd-kind-interface tsd-parent-kind-module tsd-is-not-exported","parent":"__global.NodeJS"},{"id":151,"kind":1024,"name":"HttpException","url":"interfaces/__global.nodejs.global.html#httpexception","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-not-exported","parent":"__global.NodeJS.Global"},{"id":152,"kind":32,"name":"HttpException","url":"modules/__global.html#httpexception","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":153,"kind":64,"name":"init","url":"globals.html#init","classes":"tsd-kind-function"},{"id":154,"kind":64,"name":"query","url":"globals.html#query","classes":"tsd-kind-function"},{"id":155,"kind":128,"name":"Route","url":"classes/route.html","classes":"tsd-kind-class"},{"id":156,"kind":1024,"name":"get","url":"classes/route.html#get","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":157,"kind":1024,"name":"post","url":"classes/route.html#post","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":158,"kind":1024,"name":"put","url":"classes/route.html#put","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":159,"kind":1024,"name":"head","url":"classes/route.html#head","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":160,"kind":1024,"name":"delete","url":"classes/route.html#delete","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":161,"kind":1024,"name":"options","url":"classes/route.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":162,"kind":1024,"name":"trace","url":"classes/route.html#trace","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":163,"kind":1024,"name":"copy","url":"classes/route.html#copy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":164,"kind":1024,"name":"lock","url":"classes/route.html#lock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":165,"kind":1024,"name":"mkcol","url":"classes/route.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":166,"kind":1024,"name":"move","url":"classes/route.html#move","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":167,"kind":1024,"name":"purge","url":"classes/route.html#purge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":168,"kind":1024,"name":"propfind","url":"classes/route.html#propfind","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":169,"kind":1024,"name":"proppatch","url":"classes/route.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":170,"kind":1024,"name":"unlock","url":"classes/route.html#unlock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":171,"kind":1024,"name":"report","url":"classes/route.html#report","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":172,"kind":1024,"name":"mkactivity","url":"classes/route.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":173,"kind":1024,"name":"checkout","url":"classes/route.html#checkout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":174,"kind":1024,"name":"merge","url":"classes/route.html#merge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":175,"kind":1024,"name":"m-search","url":"classes/route.html#m_search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":176,"kind":1024,"name":"notify","url":"classes/route.html#notify","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":177,"kind":1024,"name":"subscribe","url":"classes/route.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":178,"kind":1024,"name":"unsubscribe","url":"classes/route.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":179,"kind":1024,"name":"patch","url":"classes/route.html#patch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":180,"kind":1024,"name":"search","url":"classes/route.html#search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":181,"kind":1024,"name":"connect","url":"classes/route.html#connect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":182,"kind":1024,"name":"_routes","url":"classes/route.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":183,"kind":1024,"name":"_prefix","url":"classes/route.html#_prefix","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":184,"kind":262144,"name":"routes","url":"classes/route.html#routes-1","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"Route"},{"id":185,"kind":512,"name":"constructor","url":"classes/route.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Route"},{"id":186,"kind":2048,"name":"_push","url":"classes/route.html#_push","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":187,"kind":2048,"name":"any","url":"classes/route.html#any","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":188,"kind":2048,"name":"oneOf","url":"classes/route.html#oneof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":189,"kind":2048,"name":"use","url":"classes/route.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":190,"kind":256,"name":"MethodFunctions","url":"interfaces/route.methodfunctions.html","classes":"tsd-kind-interface tsd-parent-kind-class tsd-has-type-parameter","parent":"Route"},{"id":191,"kind":1024,"name":"get","url":"interfaces/route.methodfunctions.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":192,"kind":1024,"name":"post","url":"interfaces/route.methodfunctions.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":193,"kind":1024,"name":"put","url":"interfaces/route.methodfunctions.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":194,"kind":1024,"name":"head","url":"interfaces/route.methodfunctions.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":195,"kind":1024,"name":"delete","url":"interfaces/route.methodfunctions.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":196,"kind":1024,"name":"options","url":"interfaces/route.methodfunctions.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":197,"kind":1024,"name":"trace","url":"interfaces/route.methodfunctions.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":198,"kind":1024,"name":"copy","url":"interfaces/route.methodfunctions.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":199,"kind":1024,"name":"lock","url":"interfaces/route.methodfunctions.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":200,"kind":1024,"name":"mkcol","url":"interfaces/route.methodfunctions.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":201,"kind":1024,"name":"move","url":"interfaces/route.methodfunctions.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":202,"kind":1024,"name":"purge","url":"interfaces/route.methodfunctions.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":203,"kind":1024,"name":"propfind","url":"interfaces/route.methodfunctions.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":204,"kind":1024,"name":"proppatch","url":"interfaces/route.methodfunctions.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":205,"kind":1024,"name":"unlock","url":"interfaces/route.methodfunctions.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":206,"kind":1024,"name":"report","url":"interfaces/route.methodfunctions.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":207,"kind":1024,"name":"mkactivity","url":"interfaces/route.methodfunctions.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":208,"kind":1024,"name":"checkout","url":"interfaces/route.methodfunctions.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":209,"kind":1024,"name":"merge","url":"interfaces/route.methodfunctions.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":210,"kind":1024,"name":"m-search","url":"interfaces/route.methodfunctions.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":211,"kind":1024,"name":"notify","url":"interfaces/route.methodfunctions.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":212,"kind":1024,"name":"subscribe","url":"interfaces/route.methodfunctions.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":213,"kind":1024,"name":"unsubscribe","url":"interfaces/route.methodfunctions.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":214,"kind":1024,"name":"patch","url":"interfaces/route.methodfunctions.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":215,"kind":1024,"name":"search","url":"interfaces/route.methodfunctions.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":216,"kind":1024,"name":"connect","url":"interfaces/route.methodfunctions.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":217,"kind":256,"name":"Routes","url":"interfaces/route.routes.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":218,"kind":1024,"name":"get","url":"interfaces/route.routes.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":219,"kind":1024,"name":"post","url":"interfaces/route.routes.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":220,"kind":1024,"name":"put","url":"interfaces/route.routes.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":221,"kind":1024,"name":"head","url":"interfaces/route.routes.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":222,"kind":1024,"name":"delete","url":"interfaces/route.routes.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":223,"kind":1024,"name":"options","url":"interfaces/route.routes.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":224,"kind":1024,"name":"trace","url":"interfaces/route.routes.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":225,"kind":1024,"name":"copy","url":"interfaces/route.routes.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":226,"kind":1024,"name":"lock","url":"interfaces/route.routes.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":227,"kind":1024,"name":"mkcol","url":"interfaces/route.routes.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":228,"kind":1024,"name":"move","url":"interfaces/route.routes.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":229,"kind":1024,"name":"purge","url":"interfaces/route.routes.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":230,"kind":1024,"name":"propfind","url":"interfaces/route.routes.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":231,"kind":1024,"name":"proppatch","url":"interfaces/route.routes.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":232,"kind":1024,"name":"unlock","url":"interfaces/route.routes.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":233,"kind":1024,"name":"report","url":"interfaces/route.routes.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":234,"kind":1024,"name":"mkactivity","url":"interfaces/route.routes.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":235,"kind":1024,"name":"checkout","url":"interfaces/route.routes.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":236,"kind":1024,"name":"merge","url":"interfaces/route.routes.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":237,"kind":1024,"name":"m-search","url":"interfaces/route.routes.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":238,"kind":1024,"name":"notify","url":"interfaces/route.routes.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":239,"kind":1024,"name":"subscribe","url":"interfaces/route.routes.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":240,"kind":1024,"name":"unsubscribe","url":"interfaces/route.routes.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":241,"kind":1024,"name":"patch","url":"interfaces/route.routes.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":242,"kind":1024,"name":"search","url":"interfaces/route.routes.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":243,"kind":1024,"name":"connect","url":"interfaces/route.routes.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":244,"kind":256,"name":"RouteObject","url":"interfaces/route.routeobject.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":245,"kind":1024,"name":"path","url":"interfaces/route.routeobject.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":246,"kind":1024,"name":"options","url":"interfaces/route.routeobject.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":247,"kind":1024,"name":"controller","url":"interfaces/route.routeobject.html#controller","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":248,"kind":256,"name":"JsonSchemaProperties","url":"interfaces/route.jsonschemaproperties.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":249,"kind":256,"name":"JsonSchema","url":"interfaces/route.jsonschema.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":250,"kind":1024,"name":"title","url":"interfaces/route.jsonschema.html#title","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":251,"kind":1024,"name":"type","url":"interfaces/route.jsonschema.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":252,"kind":1024,"name":"properties","url":"interfaces/route.jsonschema.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":253,"kind":1024,"name":"patternProperties","url":"interfaces/route.jsonschema.html#patternproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":254,"kind":1024,"name":"additionalProperties","url":"interfaces/route.jsonschema.html#additionalproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":255,"kind":1024,"name":"required","url":"interfaces/route.jsonschema.html#required","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":256,"kind":256,"name":"Schema","url":"interfaces/route.schema.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":257,"kind":1024,"name":"response","url":"interfaces/route.schema.html#response","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Schema"},{"id":258,"kind":65536,"name":"__type","url":"interfaces/route.schema.html#response.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Route.Schema.response"},{"id":259,"kind":256,"name":"RouteOptions","url":"interfaces/route.routeoptions.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":260,"kind":1024,"name":"schema","url":"interfaces/route.routeoptions.html#schema","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteOptions"},{"id":261,"kind":4194304,"name":"Controller","url":"classes/route.html#controller","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":262,"kind":65536,"name":"__type","url":"classes/route.html#controller.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Route.Controller"},{"id":263,"kind":4194304,"name":"MethodFunction","url":"classes/route.html#methodfunction","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Route"},{"id":264,"kind":65536,"name":"__type","url":"classes/route.html#methodfunction.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Route.MethodFunction"},{"id":265,"kind":4194304,"name":"JsonSchemaType","url":"classes/route.html#jsonschematype","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":266,"kind":128,"name":"Router","url":"classes/router.html","classes":"tsd-kind-class"},{"id":267,"kind":1024,"name":"_routes","url":"classes/router.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":268,"kind":512,"name":"constructor","url":"classes/router.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Router"},{"id":269,"kind":2048,"name":"_next","url":"classes/router.html#_next","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":270,"kind":1024,"name":"_safeNext","url":"classes/router.html#_safenext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":271,"kind":2048,"name":"initialize","url":"classes/router.html#initialize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":272,"kind":2048,"name":"prepend","url":"classes/router.html#prepend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":273,"kind":2048,"name":"push","url":"classes/router.html#push","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":274,"kind":2048,"name":"route","url":"classes/router.html#route","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":275,"kind":128,"name":"Foxify","url":"classes/foxify.html","classes":"tsd-kind-class"},{"id":276,"kind":2048,"name":"get","url":"classes/foxify.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Foxify"},{"id":277,"kind":2048,"name":"use","url":"classes/foxify.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":278,"kind":1024,"name":"post","url":"classes/foxify.html#post","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":279,"kind":1024,"name":"put","url":"classes/foxify.html#put","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":280,"kind":1024,"name":"head","url":"classes/foxify.html#head","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":281,"kind":1024,"name":"delete","url":"classes/foxify.html#delete","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":282,"kind":1024,"name":"options","url":"classes/foxify.html#options-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":283,"kind":1024,"name":"trace","url":"classes/foxify.html#trace","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":284,"kind":1024,"name":"copy","url":"classes/foxify.html#copy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":285,"kind":1024,"name":"lock","url":"classes/foxify.html#lock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":286,"kind":1024,"name":"mkcol","url":"classes/foxify.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":287,"kind":1024,"name":"move","url":"classes/foxify.html#move","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":288,"kind":1024,"name":"purge","url":"classes/foxify.html#purge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":289,"kind":1024,"name":"propfind","url":"classes/foxify.html#propfind","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":290,"kind":1024,"name":"proppatch","url":"classes/foxify.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":291,"kind":1024,"name":"unlock","url":"classes/foxify.html#unlock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":292,"kind":1024,"name":"report","url":"classes/foxify.html#report","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":293,"kind":1024,"name":"mkactivity","url":"classes/foxify.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":294,"kind":1024,"name":"checkout","url":"classes/foxify.html#checkout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":295,"kind":1024,"name":"merge","url":"classes/foxify.html#merge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":296,"kind":1024,"name":"m-search","url":"classes/foxify.html#m_search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":297,"kind":1024,"name":"notify","url":"classes/foxify.html#notify","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":298,"kind":1024,"name":"subscribe","url":"classes/foxify.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":299,"kind":1024,"name":"unsubscribe","url":"classes/foxify.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":300,"kind":1024,"name":"patch","url":"classes/foxify.html#patch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":301,"kind":1024,"name":"search","url":"classes/foxify.html#search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":302,"kind":1024,"name":"connect","url":"classes/foxify.html#connect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Foxify"},{"id":303,"kind":1024,"name":"constants","url":"classes/foxify.html#constants","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":304,"kind":1024,"name":"Route","url":"classes/foxify.html#route","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":305,"kind":1024,"name":"static","url":"classes/foxify.html#static","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":306,"kind":2048,"name":"dotenv","url":"classes/foxify.html#dotenv","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":307,"kind":2097152,"name":"_options","url":"classes/foxify.html#_options","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":308,"kind":32,"name":"https","url":"classes/foxify.html#_options.https","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":309,"kind":32,"name":"x-powered-by","url":"classes/foxify.html#_options.x_powered_by","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":310,"kind":32,"name":"content-length","url":"classes/foxify.html#_options.content_length","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":311,"kind":2097152,"name":"routing","url":"classes/foxify.html#_options.routing","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":312,"kind":32,"name":"strict","url":"classes/foxify.html#_options.routing.strict","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.routing"},{"id":313,"kind":32,"name":"sensitive","url":"classes/foxify.html#_options.routing.sensitive","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.routing"},{"id":314,"kind":2097152,"name":"json","url":"classes/foxify.html#_options.json","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":315,"kind":32,"name":"escape","url":"classes/foxify.html#_options.json.escape","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._options.json"},{"id":316,"kind":2097152,"name":"_settings","url":"classes/foxify.html#_settings","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":317,"kind":32,"name":"env","url":"classes/foxify.html#_settings.env","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":318,"kind":32,"name":"url","url":"classes/foxify.html#_settings.url","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":319,"kind":32,"name":"port","url":"classes/foxify.html#_settings.port","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":320,"kind":32,"name":"workers","url":"classes/foxify.html#_settings.workers","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":321,"kind":2097152,"name":"https","url":"classes/foxify.html#_settings.https-1","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":322,"kind":32,"name":"cert","url":"classes/foxify.html#_settings.https-1.cert","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.https"},{"id":323,"kind":32,"name":"key","url":"classes/foxify.html#_settings.https-1.key","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.https"},{"id":324,"kind":2097152,"name":"json","url":"classes/foxify.html#_settings.json-1","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":325,"kind":32,"name":"replacer","url":"classes/foxify.html#_settings.json-1.replacer","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.json"},{"id":326,"kind":32,"name":"spaces","url":"classes/foxify.html#_settings.json-1.spaces","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.json"},{"id":327,"kind":2097152,"name":"query","url":"classes/foxify.html#_settings.query","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":328,"kind":32,"name":"parser","url":"classes/foxify.html#_settings.query.parser","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings.query"},{"id":329,"kind":1024,"name":"_router","url":"classes/foxify.html#_router","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":330,"kind":1024,"name":"_view","url":"classes/foxify.html#_view","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":331,"kind":512,"name":"constructor","url":"classes/foxify.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Foxify"},{"id":332,"kind":2048,"name":"_set","url":"classes/foxify.html#_set","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":333,"kind":2048,"name":"_use","url":"classes/foxify.html#_use","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":334,"kind":2048,"name":"enable","url":"classes/foxify.html#enable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":335,"kind":2048,"name":"disable","url":"classes/foxify.html#disable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":336,"kind":2048,"name":"enabled","url":"classes/foxify.html#enabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":337,"kind":2048,"name":"disabled","url":"classes/foxify.html#disabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":338,"kind":2048,"name":"set","url":"classes/foxify.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":339,"kind":2048,"name":"engine","url":"classes/foxify.html#engine","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":340,"kind":2048,"name":"start","url":"classes/foxify.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":341,"kind":256,"name":"Options","url":"interfaces/foxify.options.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":342,"kind":1024,"name":"https","url":"interfaces/foxify.options.html#https","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":343,"kind":1024,"name":"x-powered-by","url":"interfaces/foxify.options.html#x_powered_by","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":344,"kind":1024,"name":"content-length","url":"interfaces/foxify.options.html#content_length","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":345,"kind":1024,"name":"routing","url":"interfaces/foxify.options.html#routing","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":346,"kind":65536,"name":"__type","url":"interfaces/foxify.options.html#routing.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Options.routing"},{"id":347,"kind":32,"name":"strict","url":"interfaces/foxify.options.html#routing.__type-1.strict","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.routing.__type"},{"id":348,"kind":32,"name":"sensitive","url":"interfaces/foxify.options.html#routing.__type-1.sensitive","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.routing.__type"},{"id":349,"kind":1024,"name":"json","url":"interfaces/foxify.options.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":350,"kind":65536,"name":"__type","url":"interfaces/foxify.options.html#json.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Options.json"},{"id":351,"kind":32,"name":"escape","url":"interfaces/foxify.options.html#json.__type.escape","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Options.json.__type"},{"id":352,"kind":256,"name":"Settings","url":"interfaces/foxify.settings.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":353,"kind":1024,"name":"env","url":"interfaces/foxify.settings.html#env","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":354,"kind":1024,"name":"url","url":"interfaces/foxify.settings.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":355,"kind":1024,"name":"port","url":"interfaces/foxify.settings.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":356,"kind":1024,"name":"workers","url":"interfaces/foxify.settings.html#workers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":357,"kind":1024,"name":"https","url":"interfaces/foxify.settings.html#https","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":358,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#https.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.https"},{"id":359,"kind":32,"name":"cert","url":"interfaces/foxify.settings.html#https.__type.cert","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.https.__type"},{"id":360,"kind":32,"name":"key","url":"interfaces/foxify.settings.html#https.__type.key","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.https.__type"},{"id":361,"kind":1024,"name":"json","url":"interfaces/foxify.settings.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":362,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#json.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.json"},{"id":363,"kind":32,"name":"replacer","url":"interfaces/foxify.settings.html#json.__type-1.replacer","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":364,"kind":32,"name":"spaces","url":"interfaces/foxify.settings.html#json.__type-1.spaces","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":365,"kind":1024,"name":"query","url":"interfaces/foxify.settings.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":366,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#query.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.query"},{"id":367,"kind":32,"name":"parser","url":"interfaces/foxify.settings.html#query.__type-2.parser","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.query.__type"},{"id":368,"kind":128,"name":"Server","url":"classes/server.html","classes":"tsd-kind-class"},{"id":369,"kind":1024,"name":"_instance","url":"classes/server.html#_instance","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Server"},{"id":370,"kind":1024,"name":"_host","url":"classes/server.html#_host","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Server"},{"id":371,"kind":1024,"name":"_port","url":"classes/server.html#_port","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Server"},{"id":372,"kind":1024,"name":"_listening","url":"classes/server.html#_listening","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Server"},{"id":373,"kind":512,"name":"constructor","url":"classes/server.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Server"},{"id":374,"kind":262144,"name":"listening","url":"classes/server.html#listening","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"Server"},{"id":375,"kind":2048,"name":"start","url":"classes/server.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":376,"kind":2048,"name":"stop","url":"classes/server.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":377,"kind":2048,"name":"reload","url":"classes/server.html#reload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Server"},{"id":378,"kind":256,"name":"Options","url":"interfaces/server.options.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Server"},{"id":379,"kind":1024,"name":"https","url":"interfaces/server.options.html#https","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Options"},{"id":380,"kind":1024,"name":"x-powered-by","url":"interfaces/server.options.html#x_powered_by","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Options"},{"id":381,"kind":1024,"name":"content-length","url":"interfaces/server.options.html#content_length","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Options"},{"id":382,"kind":1024,"name":"routing","url":"interfaces/server.options.html#routing","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Options"},{"id":383,"kind":65536,"name":"__type","url":"interfaces/server.options.html#routing.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Server.Options.routing"},{"id":384,"kind":32,"name":"strict","url":"interfaces/server.options.html#routing.__type-1.strict","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Options.routing.__type"},{"id":385,"kind":32,"name":"sensitive","url":"interfaces/server.options.html#routing.__type-1.sensitive","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Options.routing.__type"},{"id":386,"kind":1024,"name":"json","url":"interfaces/server.options.html#json","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Options"},{"id":387,"kind":65536,"name":"__type","url":"interfaces/server.options.html#json.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Server.Options.json"},{"id":388,"kind":32,"name":"escape","url":"interfaces/server.options.html#json.__type.escape","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Options.json.__type"},{"id":389,"kind":256,"name":"Settings","url":"interfaces/server.settings.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Server"},{"id":390,"kind":1024,"name":"view","url":"interfaces/server.settings.html#view","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Server.Settings"},{"id":391,"kind":1024,"name":"env","url":"interfaces/server.settings.html#env","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":392,"kind":1024,"name":"url","url":"interfaces/server.settings.html#url","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":393,"kind":1024,"name":"port","url":"interfaces/server.settings.html#port","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":394,"kind":1024,"name":"workers","url":"interfaces/server.settings.html#workers","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":395,"kind":1024,"name":"https","url":"interfaces/server.settings.html#https","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":396,"kind":65536,"name":"__type","url":"interfaces/server.settings.html#https.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Server.Settings.https"},{"id":397,"kind":32,"name":"cert","url":"interfaces/server.settings.html#https.__type.cert","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Settings.https.__type"},{"id":398,"kind":32,"name":"key","url":"interfaces/server.settings.html#https.__type.key","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Settings.https.__type"},{"id":399,"kind":1024,"name":"json","url":"interfaces/server.settings.html#json","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":400,"kind":65536,"name":"__type","url":"interfaces/server.settings.html#json.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Server.Settings.json"},{"id":401,"kind":32,"name":"replacer","url":"interfaces/server.settings.html#json.__type-1.replacer","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Settings.json.__type"},{"id":402,"kind":32,"name":"spaces","url":"interfaces/server.settings.html#json.__type-1.spaces","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Settings.json.__type"},{"id":403,"kind":1024,"name":"query","url":"interfaces/server.settings.html#query","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited","parent":"Server.Settings"},{"id":404,"kind":65536,"name":"__type","url":"interfaces/server.settings.html#query.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Server.Settings.query"},{"id":405,"kind":32,"name":"parser","url":"interfaces/server.settings.html#query.__type-2.parser","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Server.Settings.query.__type"},{"id":406,"kind":4194304,"name":"Listener","url":"classes/server.html#listener","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Server"},{"id":407,"kind":65536,"name":"__type","url":"classes/server.html#listener.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Server.Listener"},{"id":408,"kind":4194304,"name":"Callback","url":"classes/server.html#callback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Server"},{"id":409,"kind":65536,"name":"__type","url":"classes/server.html#callback.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Server.Callback"}]}; \ No newline at end of file diff --git a/docs/classes/encapsulation.html b/docs/classes/encapsulation.html index d516f16..58e2462 100644 --- a/docs/classes/encapsulation.html +++ b/docs/classes/encapsulation.html @@ -111,7 +111,7 @@

constructor

  • Parameters

    @@ -157,7 +157,7 @@

    Protected _fn

    _fn: function
    @@ -201,7 +201,7 @@

    run

  • Parameters

    diff --git a/docs/classes/engine.html b/docs/classes/engine.html index 49c07ad..763567c 100644 --- a/docs/classes/engine.html +++ b/docs/classes/engine.html @@ -102,7 +102,6 @@

    Properties

    Methods

    @@ -116,7 +115,7 @@

    Static Callback

    Callback: function
    @@ -157,7 +156,7 @@

    constructor

  • Parameters

    @@ -197,7 +196,7 @@

    Protected _ext

    _ext: string
    @@ -207,7 +206,7 @@

    Protected _handler

    _handler: function
    @@ -238,7 +237,7 @@

    Protected _path

    _path: string
    @@ -255,7 +254,7 @@

    render

  • Parameters

    @@ -274,32 +273,6 @@

    Returns void -
    - -

    Static responsePatch

    -
      -
    • responsePatch(res: ServerResponse, engine?: Engine): ServerResponse
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        res: ServerResponse
        -
      • -
      • -
        Optional engine: Engine
        -
      • -
      -

      Returns ServerResponse

      -
    • -
    -

  • diff --git a/docs/classes/foxify.html b/docs/classes/foxify.html index 30da776..100a02e 100644 --- a/docs/classes/foxify.html +++ b/docs/classes/foxify.html @@ -170,7 +170,7 @@

    constructor

  • Returns Foxify

    @@ -186,7 +186,7 @@

    Private _router

    _router: Router = new Router()
    @@ -196,7 +196,7 @@

    Private _view: Engine @@ -207,7 +207,7 @@

    checkout

    @@ -218,7 +218,7 @@

    connect

    @@ -229,7 +229,7 @@

    copy

    @@ -240,7 +240,7 @@

    delete

    @@ -251,7 +251,7 @@

    head

    @@ -262,7 +262,7 @@

    lock

    @@ -273,7 +273,7 @@

    m-search

    @@ -284,7 +284,7 @@

    merge

    @@ -295,7 +295,7 @@

    mkactivity

    @@ -306,7 +306,7 @@

    mkcol

    @@ -317,7 +317,7 @@

    move

    @@ -328,7 +328,7 @@

    notify

    @@ -339,7 +339,7 @@

    options

    @@ -350,7 +350,7 @@

    patch

    @@ -361,7 +361,7 @@

    post

    @@ -372,7 +372,7 @@

    propfind

    @@ -383,7 +383,7 @@

    proppatch

    @@ -394,7 +394,7 @@

    purge

    @@ -405,7 +405,7 @@

    put

    @@ -416,7 +416,7 @@

    report

    @@ -427,7 +427,7 @@

    search

    @@ -438,7 +438,7 @@

    subscribe

    @@ -449,7 +449,7 @@

    trace

    @@ -460,7 +460,7 @@

    unlock

    @@ -471,7 +471,7 @@

    unsubscribe

    @@ -481,7 +481,7 @@

    Static Route

    Route: Route = Route
    @@ -491,7 +491,7 @@

    Static constants

    constants: "/home/ardalan/Projects/Github/foxifyjs/foxify/src/constants/index" = constants
    @@ -501,7 +501,7 @@

    Static static

    static: any = serveStatic
    @@ -518,7 +518,7 @@

    Private _set

  • Parameters

    @@ -552,7 +552,7 @@

    Private _use

  • Parameters

    @@ -581,7 +581,7 @@

    disable

  • Parameters

    @@ -604,7 +604,7 @@

    disabled

  • Parameters

    @@ -627,7 +627,7 @@

    enable

  • Parameters

    @@ -650,7 +650,7 @@

    enabled

  • Parameters

    @@ -673,7 +673,7 @@

    engine

  • @@ -720,13 +720,14 @@

    Returns thisget

    Returns any

  • +
  • + +

    Parameters

    + +

    Returns this

    +
  • @@ -749,7 +771,7 @@

    set

  • Parameters

    @@ -769,13 +791,13 @@

    Returns this

    start

      -
    • start(callback?: undefined | function): void
    • +
    • start(callback?: undefined | function): Server
    • Parameters

      @@ -784,7 +806,7 @@

      Parameters

      Optional callback: undefined | function
    -

    Returns void

    +

    Returns Server

  • @@ -800,7 +822,7 @@

    use

  • Parameters

    @@ -814,7 +836,7 @@

    Returns this

    Parameters

    @@ -828,7 +850,7 @@

    Returns this

    Parameters

    @@ -851,19 +873,19 @@

    Returns this

    Static dotenv

      -
    • dotenv(dotenv: string): void
    • +
    • dotenv(path: string): void
    @@ -171,7 +172,7 @@

    Static Controller

    Controller: function
    @@ -223,7 +224,7 @@

    Static JsonSchemaType<
    JsonSchemaType: "string" | "integer" | "number" | "array" | "object" | "boolean" | "null"

    @@ -233,7 +234,7 @@

    Static MethodFunction

    MethodFunction: function
    @@ -277,7 +278,7 @@

    constructor

  • @@ -304,7 +305,7 @@

    Protected _prefix

    _prefix: string
    @@ -314,7 +315,7 @@

    Protected _routes

    _routes: Routes = {} as Route.Routes
    @@ -325,7 +326,7 @@

    checkout

    @@ -336,7 +337,7 @@

    connect

    @@ -347,7 +348,7 @@

    copy

    @@ -358,7 +359,7 @@

    delete

    @@ -369,7 +370,7 @@

    get

    @@ -380,7 +381,7 @@

    head

    @@ -391,7 +392,7 @@

    lock

    @@ -402,7 +403,7 @@

    m-search

    @@ -413,7 +414,7 @@

    merge

    @@ -424,7 +425,7 @@

    mkactivity

    @@ -435,7 +436,7 @@

    mkcol

    @@ -446,7 +447,7 @@

    move

    @@ -457,7 +458,7 @@

    notify

    @@ -468,7 +469,7 @@

    options

    @@ -479,7 +480,7 @@

    patch

    @@ -490,7 +491,7 @@

    post

    @@ -501,7 +502,7 @@

    propfind

    @@ -512,7 +513,7 @@

    proppatch

    @@ -523,7 +524,7 @@

    purge

    @@ -534,7 +535,7 @@

    put

    @@ -545,7 +546,7 @@

    report

    @@ -556,7 +557,7 @@

    search

    @@ -567,7 +568,7 @@

    subscribe

    @@ -578,7 +579,7 @@

    trace

    @@ -589,7 +590,7 @@

    unlock

    @@ -600,7 +601,7 @@

    unsubscribe

    @@ -617,7 +618,7 @@

    routes

  • Returns Routes

    @@ -637,7 +638,7 @@

    Protected _push

  • Parameters

    @@ -669,7 +670,7 @@

    any

  • Parameters

    @@ -698,7 +699,7 @@

    oneOf

  • Parameters

    @@ -730,7 +731,7 @@

    use

  • Parameters

    @@ -796,6 +797,9 @@

    Returns this Routes

  • +
  • + Schema +
  • Controller
  • diff --git a/docs/classes/router.html b/docs/classes/router.html index 76451df..046e572 100644 --- a/docs/classes/router.html +++ b/docs/classes/router.html @@ -116,7 +116,7 @@

    constructor

  • Returns Router

    @@ -132,7 +132,7 @@

    Protected _routes

    _routes: Routes = {} as Route.Routes
    @@ -142,7 +142,7 @@

    Protected _safeNext

    _safeNext: Encapsulation = new Encapsulation(this._next)
    @@ -159,7 +159,7 @@

    Protected _next

  • Parameters

    @@ -194,7 +194,7 @@

    initialize

  • Parameters

    @@ -217,7 +217,7 @@

    prepend

  • Parameters

    @@ -240,7 +240,7 @@

    push

  • Parameters

    @@ -263,7 +263,7 @@

    route

  • Parameters

    diff --git a/docs/classes/server.html b/docs/classes/server.html index 8c13ece..974d79a 100644 --- a/docs/classes/server.html +++ b/docs/classes/server.html @@ -82,11 +82,13 @@

    Index

    Interfaces

    Type aliases

    @@ -101,9 +103,16 @@

    Properties

    +
    +

    Accessors

    + +

    Methods

      @@ -117,13 +126,44 @@

      Methods

    Type aliases

    +
    + +

    Static Callback

    +
    Callback: function
    + +
    +

    Type declaration

    +
      +
    • + +
        +
      • +

        Parameters

        + +

        Returns void

        +
      • +
      +
    • +
    +
    +

    Static Listener

    Listener: function
    @@ -158,13 +198,13 @@

    Constructors

    constructor

    • Parameters

      @@ -172,6 +212,9 @@

      Parameters

    • options: Options
    • +
    • +
      settings: Settings
      +
    • listener: Listener
    • @@ -189,7 +232,7 @@

      Protected _host

      _host: string
    @@ -199,7 +242,17 @@

    Private _instance: Server | Server

  • + +
    + +

    Protected _listening

    +
    _listening: boolean = false
    +
    @@ -209,33 +262,53 @@

    Protected _port

    _port: number
    +
    +

    Accessors

    +
    + +

    listening

    +
      +
    • get listening(): boolean
    • +
    + +
    +

    Methods

    reload

      -
    • reload(callback?: undefined | function): void
    • +
    • reload(callback?: Callback): this
    • Parameters

      • -
        Optional callback: undefined | function
        +
        Optional callback: Callback
      -

      Returns void

      +

      Returns this

    @@ -243,22 +316,22 @@

    Returns void

    start

      -
    • start(callback?: undefined | function): void
    • +
    • start(callback?: Callback): this
    • Parameters

      • -
        Optional callback: undefined | function
        +
        Optional callback: Callback
      -

      Returns void

      +

      Returns this

    @@ -266,22 +339,22 @@

    Returns void

    stop

      -
    • stop(callback?: undefined | function): void
    • +
    • stop(callback?: Callback): this
    • Parameters

      • -
        Optional callback: undefined | function
        +
        Optional callback: Callback
      -

      Returns void

      +

      Returns this

    @@ -323,6 +396,12 @@

    Returns void Options

  • +
  • + Settings +
  • +
  • + Callback +
  • Listener
  • @@ -335,9 +414,15 @@

    Returns void _instance

  • +
  • + _listening +
  • _port
  • +
  • + listening +
  • reload
  • diff --git a/docs/globals.html b/docs/globals.html index e0c02b3..5d82218 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -129,7 +129,7 @@

    Const STATUS_CODES

    STATUS_CODES: object = http.STATUS_CODES
    @@ -147,7 +147,7 @@

    Const charsetRegExp

    charsetRegExp: RegExp = /;\s*charset\s*=/
    @@ -157,7 +157,7 @@

    Const resolve

    resolve: resolve = path.resolve
    @@ -167,7 +167,7 @@

    Const template

    template: "<!DOCTYPE html><html><head><title>Error&nbsp;{{code}}{{title}}</title><link rel='stylesheet' type='text/css' href='https://fonts.googleapis.com/css?family=Open+Sans'/><style>html,body{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;font-family: Open Sans, Arial;font-size: 16px;line-height: 1.4;text-align: justify;background-color: #e74c3c;color: #fefefe;}html{display: flex; align-items: center; justify-content: center; height: 100vh;}body{display: flex; align-items: center; justify-content: center;margin: 2em auto;max-width: 800px;padding: 1em;}a{color: #07a}a:visited{color: #941352}@media screen and (max-width:500px){html,body{text-align: left}}</style></head><body><div><h1>Error&nbsp;{{code}}{{title}}</h1>{{message}}</div></body></html>" = "<!DOCTYPE html><html><head><title>Error&nbsp;{{code}}{{title}}</title><link rel='stylesheet' type='text/css' href='https://fonts.googleapis.com/css?family=Open+Sans'/><style>html,body{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;font-family: Open Sans, Arial;font-size: 16px;line-height: 1.4;text-align: justify;background-color: #e74c3c;color: #fefefe;}html{display: flex; align-items: center; justify-content: center; height: 100vh;}body{display: flex; align-items: center; justify-content: center;margin: 2em auto;max-width: 800px;padding: 1em;}a{color: #07a}a:visited{color: #941352}@media screen and (max-width:500px){html,body{text-align: left}}</style></head><body><div><h1>Error&nbsp;{{code}}{{title}}</h1>{{message}}</div></body></html>"
    @@ -184,7 +184,7 @@

    Const acceptParams

  • @@ -236,7 +236,7 @@

    define

  • Parameters

    @@ -286,7 +286,7 @@

    Const

    Parameters

    @@ -309,7 +309,7 @@

    Const isAbsolute

  • @@ -340,7 +340,7 @@

    mixins

  • Parameters

    @@ -363,7 +363,7 @@

    Const normalizeType

  • @@ -394,7 +394,7 @@

    Const normalizeTypes

  • @@ -416,14 +416,14 @@

    Returns any

    Const Export assignment patch

      -
    • patch(req: IncomingMessage, app: Foxify): void
    • -
    • patch(res: ServerResponse, app: Foxify): void
    • +
    • patch(req: IncomingMessage, options: Options, settings: Settings): any
    • +
    • patch(res: ServerResponse, options: Options, settings: Settings): any
    -

    Returns void

    +

    Returns any

  • Parameters

    @@ -449,10 +452,13 @@

    Parameters

    res: ServerResponse
  • -
    app: Foxify
    +
    options: Options
    +
  • +
  • +
    settings: Settings
  • -

    Returns void

    +

    Returns any

  • @@ -466,7 +472,7 @@

    Const

    Parameters

    @@ -489,7 +495,7 @@

    Const sendfile

  • @@ -544,7 +550,7 @@

    Const setCharset

  • @@ -578,7 +584,7 @@

    Private
    @@ -615,7 +621,7 @@

    Const HTTP: object

    @@ -631,7 +637,7 @@

    ACCEPTED

    ACCEPTED: 202 = 202 as 202
    @@ -641,7 +647,7 @@

    ALREADY_REPORTED

    ALREADY_REPORTED: 208 = 208 as 208
    @@ -651,7 +657,7 @@

    BAD_GATEWAY

    BAD_GATEWAY: 502 = 502 as 502
    @@ -661,7 +667,7 @@

    BAD_REQUEST

    BAD_REQUEST: 400 = 400 as 400
    @@ -671,7 +677,7 @@

    CONFLICT

    CONFLICT: 409 = 409 as 409
    @@ -681,7 +687,7 @@

    CONTINUE

    CONTINUE: 100 = 100 as 100
    @@ -691,7 +697,7 @@

    CREATED

    CREATED: 201 = 201 as 201
    @@ -701,7 +707,7 @@

    EARLY_HINTS

    EARLY_HINTS: 103 = 103 as 103
    @@ -711,7 +717,7 @@

    EXPECTATION_FAILED

    EXPECTATION_FAILED: 417 = 417 as 417
    @@ -721,7 +727,7 @@

    FAILED_DEPENDENCY

    FAILED_DEPENDENCY: 424 = 424 as 424
    @@ -731,7 +737,7 @@

    FORBIDEN

    FORBIDEN: 403 = 403 as 403
    @@ -741,7 +747,7 @@

    FOUND

    FOUND: 302 = 302 as 302
    @@ -751,7 +757,7 @@

    GATEWAY_TIMEOUT

    GATEWAY_TIMEOUT: 504 = 504 as 504
    @@ -761,7 +767,7 @@

    GONE

    GONE: 410 = 410 as 410
    @@ -771,7 +777,7 @@

    HTTP_VERSION_NOT_SUPPORTED

    HTTP_VERSION_NOT_SUPPORTED: 505 = 505 as 505
    @@ -781,7 +787,7 @@

    IM_A_TEAPOT

    IM_A_TEAPOT: 418 = 418 as 418
    @@ -791,7 +797,7 @@

    IM_USED

    IM_USED: 226 = 226 as 226
    @@ -801,7 +807,7 @@

    INSUFFICIENT_STORAGE

    INSUFFICIENT_STORAGE: 507 = 507 as 507
    @@ -811,7 +817,7 @@

    INTERNAL_SERVER_ERROR

    INTERNAL_SERVER_ERROR: 500 = 500 as 500
    @@ -821,7 +827,7 @@

    LENGTH_REQUIRED

    LENGTH_REQUIRED: 411 = 411 as 411
    @@ -831,7 +837,7 @@

    LOCKED

    LOCKED: 423 = 423 as 423
    @@ -841,7 +847,7 @@

    LOOP_DETECTED

    LOOP_DETECTED: 508 = 508 as 508
    @@ -851,7 +857,7 @@

    METHOD_NOT_ALLOWED

    METHOD_NOT_ALLOWED: 405 = 405 as 405
    @@ -861,7 +867,7 @@

    MISDIRECET_REQUEST

    MISDIRECET_REQUEST: 421 = 421 as 421
    @@ -871,7 +877,7 @@

    MOVED_PERMANENTLY

    MOVED_PERMANENTLY: 301 = 301 as 301
    @@ -881,7 +887,7 @@

    MULTIPLE_CHOICES

    MULTIPLE_CHOICES: 300 = 300 as 300
    @@ -891,7 +897,7 @@

    MULTI_STATUS

    MULTI_STATUS: 207 = 207 as 207
    @@ -901,7 +907,7 @@

    NETWORK_AUTHENTICATION_REQUIRED

    NETWORK_AUTHENTICATION_REQUIRED: 511 = 511 as 511
    @@ -911,7 +917,7 @@

    NON_AUTHORITATIVE_INFORMATION

    NON_AUTHORITATIVE_INFORMATION: 203 = 203 as 203
    @@ -921,7 +927,7 @@

    NOT_ACCEPTABLE

    NOT_ACCEPTABLE: 406 = 406 as 406
    @@ -931,7 +937,7 @@

    NOT_EXTENDED

    NOT_EXTENDED: 510 = 510 as 510
    @@ -941,7 +947,7 @@

    NOT_FOUND

    NOT_FOUND: 404 = 404 as 404
    @@ -951,7 +957,7 @@

    NOT_IMPLEMENTED

    NOT_IMPLEMENTED: 501 = 501 as 501
    @@ -961,7 +967,7 @@

    NOT_MODIFIED

    NOT_MODIFIED: 304 = 304 as 304
    @@ -971,7 +977,7 @@

    NO_CONTENT

    NO_CONTENT: 204 = 204 as 204
    @@ -981,7 +987,7 @@

    OK

    OK: 200 = 200 as 200
    @@ -991,7 +997,7 @@

    PARTIAL_CONTENT

    PARTIAL_CONTENT: 206 = 206 as 206
    @@ -1001,7 +1007,7 @@

    PAYLOAD_TOO_LARGE

    PAYLOAD_TOO_LARGE: 413 = 413 as 413
    @@ -1011,7 +1017,7 @@

    PAYMENT_REQUIRED

    PAYMENT_REQUIRED: 402 = 402 as 402
    @@ -1021,7 +1027,7 @@

    PERMANENT_REDIRECT

    PERMANENT_REDIRECT: 308 = 308 as 308
    @@ -1031,7 +1037,7 @@

    PRECONDITION_FAILED

    PRECONDITION_FAILED: 412 = 412 as 412
    @@ -1041,7 +1047,7 @@

    PRECONDITION_REQUIRED

    PRECONDITION_REQUIRED: 428 = 428 as 428
    @@ -1051,7 +1057,7 @@

    PROCESSING

    PROCESSING: 102 = 102 as 102
    @@ -1061,7 +1067,7 @@

    PROXY_AUTHENTICATION_REQUIRED

    PROXY_AUTHENTICATION_REQUIRED: 407 = 407 as 407
    @@ -1071,7 +1077,7 @@

    RANGE_NOT_SATISFIABLE

    RANGE_NOT_SATISFIABLE: 416 = 416 as 416
    @@ -1081,7 +1087,7 @@

    REQUEST_HEADER_FIELDS_TOO_LARGE

    REQUEST_HEADER_FIELDS_TOO_LARGE: 431 = 431 as 431
    @@ -1091,7 +1097,7 @@

    REQUEST_TIMEOUT

    REQUEST_TIMEOUT: 408 = 408 as 408
    @@ -1101,7 +1107,7 @@

    RESET_CONTENT

    RESET_CONTENT: 205 = 205 as 205
    @@ -1111,7 +1117,7 @@

    SEE_OTHER

    SEE_OTHER: 303 = 303 as 303
    @@ -1121,7 +1127,7 @@

    SERVICE_UNAVAILABLE

    SERVICE_UNAVAILABLE: 503 = 503 as 503
    @@ -1131,7 +1137,7 @@

    SWITCHING_PROTOCOL

    SWITCHING_PROTOCOL: 101 = 101 as 101
    @@ -1141,7 +1147,7 @@

    SWITCH_PROXY

    SWITCH_PROXY: 306 = 306 as 306
    @@ -1151,7 +1157,7 @@

    TEMPORARY_REDIRECT

    TEMPORARY_REDIRECT: 307 = 307 as 307
    @@ -1161,7 +1167,7 @@

    TOO_MANY_REQUESTS

    TOO_MANY_REQUESTS: 429 = 429 as 429
    @@ -1171,7 +1177,7 @@

    UNAUTHORIZED

    UNAUTHORIZED: 401 = 401 as 401
    @@ -1181,7 +1187,7 @@

    UNAVAILABLE_FOR_LEGAL_REASONS

    UNAVAILABLE_FOR_LEGAL_REASONS: 451 = 451 as 451
    @@ -1191,7 +1197,7 @@

    UNPROCESSABLE_ENTITY

    UNPROCESSABLE_ENTITY: 422 = 422 as 422
    @@ -1201,7 +1207,7 @@

    UNSUPPORTED_MEDIA_TYPE

    UNSUPPORTED_MEDIA_TYPE: 415 = 415 as 415
    @@ -1211,7 +1217,7 @@

    UPGRADE_REQUIRED

    UPGRADE_REQUIRED: 426 = 426 as 426
    @@ -1221,7 +1227,7 @@

    URI_TOO_LONG

    URI_TOO_LONG: 414 = 414 as 414
    @@ -1231,7 +1237,7 @@

    USE_PROXY

    USE_PROXY: 305 = 305 as 305
    @@ -1241,7 +1247,7 @@

    VARIANT_ALSO_NEGOTIATES

    VARIANT_ALSO_NEGOTIATES: 506 = 506 as 506
    diff --git a/docs/interfaces/__global.nodejs.global.html b/docs/interfaces/__global.nodejs.global.html index a798a70..46e6b9a 100644 --- a/docs/interfaces/__global.nodejs.global.html +++ b/docs/interfaces/__global.nodejs.global.html @@ -101,7 +101,7 @@

    HttpException

    HttpException: HttpException
    diff --git a/docs/interfaces/_http_.incomingmessage.html b/docs/interfaces/_http_.incomingmessage.html index e87af69..594d17f 100644 --- a/docs/interfaces/_http_.incomingmessage.html +++ b/docs/interfaces/_http_.incomingmessage.html @@ -118,7 +118,7 @@

    fresh

    fresh: boolean
    @@ -135,7 +135,7 @@

    head

    head: get
    @@ -145,7 +145,7 @@

    Optional hostname

    hostname: undefined | string
    @@ -163,7 +163,7 @@

    path

    path: string
    @@ -178,7 +178,7 @@

    query

    query: any
    @@ -188,7 +188,7 @@

    res

    res: ServerResponse
    @@ -198,7 +198,7 @@

    stale

    stale: boolean
    @@ -215,7 +215,7 @@

    xhr

    xhr: boolean
    @@ -237,7 +237,7 @@

    accepts

  • @@ -308,7 +308,7 @@

    acceptsCharsets

  • @@ -340,7 +340,7 @@

    acceptsEncodings

  • @@ -371,7 +371,7 @@

    acceptsLanguages

  • @@ -403,7 +403,7 @@

    get

  • @@ -447,7 +447,7 @@

    is

  • @@ -499,7 +499,7 @@

    next

  • Returns void

    @@ -516,7 +516,7 @@

    range

  • diff --git a/docs/interfaces/_http_.serverresponse.html b/docs/interfaces/_http_.serverresponse.html index fb47da0..15f4a5f 100644 --- a/docs/interfaces/_http_.serverresponse.html +++ b/docs/interfaces/_http_.serverresponse.html @@ -125,7 +125,7 @@

    req

    req: IncomingMessage
    @@ -135,7 +135,7 @@

    set

    set: header
    @@ -145,7 +145,7 @@

    type

    @@ -162,7 +162,7 @@

    append

  • @@ -203,7 +203,7 @@

    attachment

  • @@ -231,7 +231,7 @@

    clearCookie

  • @@ -263,7 +263,7 @@

    contentType

  • @@ -308,7 +308,7 @@

    cookie

  • @@ -357,7 +357,7 @@

    download

  • @@ -403,7 +403,7 @@

    format

  • @@ -476,7 +476,7 @@

    get

  • @@ -505,13 +505,13 @@

    Returns string

    header

      -
    • header(field: string | any, value: string | string[]): this
    • +
    • header(field: string | any, value?: string | string[]): this

    Returns this

    @@ -553,7 +553,7 @@

    json

  • @@ -587,7 +587,7 @@

    jsonp

  • @@ -621,7 +621,7 @@

    links

  • @@ -655,7 +655,7 @@

    location

  • @@ -696,7 +696,7 @@

    redirect

  • @@ -731,7 +731,7 @@

    Returns void

    Parameters

    @@ -757,7 +757,7 @@

    render

  • Parameters

    @@ -786,7 +786,7 @@

    send

  • @@ -823,7 +823,7 @@

    sendFile

  • @@ -889,7 +889,7 @@

    sendStatus

  • @@ -923,7 +923,7 @@

    status

  • @@ -954,7 +954,7 @@

    vary

  • diff --git a/docs/interfaces/foxify.options.html b/docs/interfaces/foxify.options.html index 4573a91..669ab67 100644 --- a/docs/interfaces/foxify.options.html +++ b/docs/interfaces/foxify.options.html @@ -74,6 +74,11 @@

    Hierarchy

    @@ -102,7 +107,7 @@

    content-length

    content-length: boolean
    @@ -112,7 +117,7 @@

    https

    https: boolean
    @@ -122,7 +127,7 @@

    json

    json: object
    @@ -140,7 +145,7 @@

    routing

    routing: object
    @@ -161,7 +166,7 @@

    x-powered-by

    x-powered-by: boolean
    diff --git a/docs/interfaces/foxify.settings.html b/docs/interfaces/foxify.settings.html index f3bc2f3..31e6f29 100644 --- a/docs/interfaces/foxify.settings.html +++ b/docs/interfaces/foxify.settings.html @@ -74,6 +74,11 @@

    Hierarchy

    @@ -104,7 +109,7 @@

    env

    env: string
    @@ -114,7 +119,7 @@

    https

    https: object
    @@ -135,7 +140,7 @@

    json

    json: object
    @@ -156,7 +161,7 @@

    port

    port: number
    @@ -166,7 +171,7 @@

    query

    query: object
    @@ -184,7 +189,7 @@

    url

    url: string
    @@ -194,7 +199,7 @@

    workers

    workers: number
    diff --git a/docs/interfaces/route.jsonschema.html b/docs/interfaces/route.jsonschema.html index 70f1c86..ab94ae3 100644 --- a/docs/interfaces/route.jsonschema.html +++ b/docs/interfaces/route.jsonschema.html @@ -103,7 +103,7 @@

    Optional additionalProper
    additionalProperties: undefined | object
    @@ -113,7 +113,7 @@

    Optional patternPropertie
    patternProperties: JsonSchemaProperties
    @@ -123,7 +123,7 @@

    Optional properties

    @@ -133,17 +133,17 @@

    Optional required

    required: string[]
    -

    title

    -
    title: string
    +

    Optional title

    +
    title: undefined | string
    @@ -153,7 +153,7 @@

    type

    type: object
    diff --git a/docs/interfaces/route.jsonschemaproperties.html b/docs/interfaces/route.jsonschemaproperties.html index da0f670..a9fb945 100644 --- a/docs/interfaces/route.jsonschemaproperties.html +++ b/docs/interfaces/route.jsonschemaproperties.html @@ -79,7 +79,7 @@

    Hierarchy

    Indexable

    -
    [key: string]: object
    +
    [property: string]: object
    • Optional default?: any
      diff --git a/docs/interfaces/route.methodfunctions.html b/docs/interfaces/route.methodfunctions.html index 01bcab7..1f17302 100644 --- a/docs/interfaces/route.methodfunctions.html +++ b/docs/interfaces/route.methodfunctions.html @@ -139,7 +139,7 @@

      checkout

      checkout: MethodFunction<T>
    @@ -149,7 +149,7 @@

    connect

    connect: MethodFunction<T>
    @@ -159,7 +159,7 @@

    copy

    @@ -169,7 +169,7 @@

    delete

    delete: MethodFunction<T>
    @@ -179,7 +179,7 @@

    get

    @@ -189,7 +189,7 @@

    head

    @@ -199,7 +199,7 @@

    lock

    @@ -209,7 +209,7 @@

    m-search

    m-search: MethodFunction<T>
    @@ -219,7 +219,7 @@

    merge

    merge: MethodFunction<T>
    @@ -229,7 +229,7 @@

    mkactivity

    mkactivity: MethodFunction<T>
    @@ -239,7 +239,7 @@

    mkcol

    mkcol: MethodFunction<T>
    @@ -249,7 +249,7 @@

    move

    @@ -259,7 +259,7 @@

    notify

    notify: MethodFunction<T>
    @@ -269,7 +269,7 @@

    options

    options: MethodFunction<T>
    @@ -279,7 +279,7 @@

    patch

    patch: MethodFunction<T>
    @@ -289,7 +289,7 @@

    post

    @@ -299,7 +299,7 @@

    propfind

    propfind: MethodFunction<T>
    @@ -309,7 +309,7 @@

    proppatch

    proppatch: MethodFunction<T>
    @@ -319,7 +319,7 @@

    purge

    purge: MethodFunction<T>
    @@ -329,7 +329,7 @@

    put

    @@ -339,7 +339,7 @@

    report

    report: MethodFunction<T>
    @@ -349,7 +349,7 @@

    search

    search: MethodFunction<T>
    @@ -359,7 +359,7 @@

    subscribe

    subscribe: MethodFunction<T>
    @@ -369,7 +369,7 @@

    trace

    trace: MethodFunction<T>
    @@ -379,7 +379,7 @@

    unlock

    unlock: MethodFunction<T>
    @@ -389,7 +389,7 @@

    unsubscribe

    unsubscribe: MethodFunction<T>
    diff --git a/docs/interfaces/route.routeobject.html b/docs/interfaces/route.routeobject.html index ab8ed99..7697937 100644 --- a/docs/interfaces/route.routeobject.html +++ b/docs/interfaces/route.routeobject.html @@ -100,7 +100,7 @@

    controller

    controller: Encapsulation
    @@ -110,7 +110,7 @@

    options

    options: RouteOptions
    @@ -120,7 +120,7 @@

    path

    path: string | RegExp
    diff --git a/docs/interfaces/route.routeoptions.html b/docs/interfaces/route.routeoptions.html index d4f1f27..10a0a67 100644 --- a/docs/interfaces/route.routeoptions.html +++ b/docs/interfaces/route.routeoptions.html @@ -95,10 +95,10 @@

    Properties

    Optional schema

    -
    schema: JsonSchema
    +
    schema: Schema
    diff --git a/docs/interfaces/route.routes.html b/docs/interfaces/route.routes.html index a602155..ad2ff9b 100644 --- a/docs/interfaces/route.routes.html +++ b/docs/interfaces/route.routes.html @@ -127,7 +127,7 @@

    checkout

    checkout: RouteObject[]
    @@ -137,7 +137,7 @@

    connect

    connect: RouteObject[]
    @@ -147,7 +147,7 @@

    copy

    copy: RouteObject[]
    @@ -157,7 +157,7 @@

    delete

    delete: RouteObject[]
    @@ -167,7 +167,7 @@

    get

    @@ -177,7 +177,7 @@

    head

    head: RouteObject[]
    @@ -187,7 +187,7 @@

    lock

    lock: RouteObject[]
    @@ -197,7 +197,7 @@

    m-search

    m-search: RouteObject[]
    @@ -207,7 +207,7 @@

    merge

    merge: RouteObject[]
    @@ -217,7 +217,7 @@

    mkactivity

    mkactivity: RouteObject[]
    @@ -227,7 +227,7 @@

    mkcol

    mkcol: RouteObject[]
    @@ -237,7 +237,7 @@

    move

    move: RouteObject[]
    @@ -247,7 +247,7 @@

    notify

    notify: RouteObject[]
    @@ -257,7 +257,7 @@

    options

    options: RouteObject[]
    @@ -267,7 +267,7 @@

    patch

    patch: RouteObject[]
    @@ -277,7 +277,7 @@

    post

    post: RouteObject[]
    @@ -287,7 +287,7 @@

    propfind

    propfind: RouteObject[]
    @@ -297,7 +297,7 @@

    proppatch

    proppatch: RouteObject[]
    @@ -307,7 +307,7 @@

    purge

    purge: RouteObject[]
    @@ -317,7 +317,7 @@

    put

    @@ -327,7 +327,7 @@

    report

    report: RouteObject[]
    @@ -337,7 +337,7 @@

    search

    search: RouteObject[]
    @@ -347,7 +347,7 @@

    subscribe

    subscribe: RouteObject[]
    @@ -357,7 +357,7 @@

    trace

    trace: RouteObject[]
    @@ -367,7 +367,7 @@

    unlock

    unlock: RouteObject[]
    @@ -377,7 +377,7 @@

    unsubscribe

    unsubscribe: RouteObject[]
    diff --git a/docs/interfaces/route.schema.html b/docs/interfaces/route.schema.html new file mode 100644 index 0000000..1b5734a --- /dev/null +++ b/docs/interfaces/route.schema.html @@ -0,0 +1,282 @@ + + + + + + Schema | foxify + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Schema

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    +
      +
    • + Schema +
    • +
    +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    response

    +
    response: object
    + +
    +

    Type declaration

    + +
    +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Module
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Index signature
    • +
    • Type alias
    • +
    +
      +
    • Enumeration
    • +
    • Enumeration member
    • +
    • Property
    • +
    • Method
    • +
    +
      +
    • Interface
    • +
    • Interface with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Index signature
    • +
    +
      +
    • Class
    • +
    • Class with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Accessor
    • +
    • Index signature
    • +
    +
      +
    • Inherited constructor
    • +
    • Inherited property
    • +
    • Inherited method
    • +
    • Inherited accessor
    • +
    +
      +
    • Protected property
    • +
    • Protected method
    • +
    • Protected accessor
    • +
    +
      +
    • Private property
    • +
    • Private method
    • +
    • Private accessor
    • +
    +
      +
    • Static property
    • +
    • Static method
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + + \ No newline at end of file diff --git a/docs/interfaces/server.options.html b/docs/interfaces/server.options.html index 57662ea..220b5a0 100644 --- a/docs/interfaces/server.options.html +++ b/docs/interfaces/server.options.html @@ -73,7 +73,12 @@

    Interface Options

    Hierarchy

    • - Options + Options +
        +
      • + Options +
      • +
    @@ -81,79 +86,92 @@

    Hierarchy

    Index

    -
    +

    Properties

    -
    +

    Properties

    -
    - -

    Optional cert

    -
    cert: undefined | string
    +
    + +

    content-length

    +
    content-length: boolean
    -
    - -

    host

    -
    host: string
    +
    + +

    https

    +
    https: boolean
    -
    - -

    Optional key

    -
    key: undefined | string
    +
    + +

    json

    +
    json: object
    -
    -
    - -

    port

    -
    port: number
    - +
    -
    - -

    protocol

    -
    protocol: "http" | "https"
    +
    + +

    routing

    +
    routing: object
    +
    +

    Type declaration

    +
      +
    • +
      sensitive: boolean
      +
    • +
    • +
      strict: boolean
      +
    • +
    +
    -
    - -

    workers

    -
    workers: number
    +
    + +

    x-powered-by

    +
    x-powered-by: boolean
    @@ -195,26 +213,29 @@

    workers

  • Options
  • +
  • + Settings +
  • +
  • + Callback +
  • Listener
  • @@ -227,9 +248,15 @@

    workers

  • _instance
  • +
  • + _listening +
  • _port
  • +
  • + listening +
  • reload
  • diff --git a/docs/interfaces/server.settings.html b/docs/interfaces/server.settings.html new file mode 100644 index 0000000..60b0076 --- /dev/null +++ b/docs/interfaces/server.settings.html @@ -0,0 +1,450 @@ + + + + + + Settings | foxify + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    + +

    Interface Settings

    +
    +
    +
    +
    +
    +
    +
    +

    Hierarchy

    + +
    +
    +

    Index

    +
    +
    +
    +

    Properties

    + +
    +
    +
    +
    +
    +

    Properties

    +
    + +

    env

    +
    env: string
    + +
    +
    + +

    https

    +
    https: object
    + +
    +

    Type declaration

    +
      +
    • +
      Optional cert?: undefined | string
      +
    • +
    • +
      Optional key?: undefined | string
      +
    • +
    +
    +
    +
    + +

    json

    +
    json: object
    + +
    +

    Type declaration

    +
      +
    • +
      Optional replacer?: undefined | function
      +
    • +
    • +
      Optional spaces?: undefined | number
      +
    • +
    +
    +
    +
    + +

    port

    +
    port: number
    + +
    +
    + +

    query

    +
    query: object
    + +
    +

    Type declaration

    +
      +
    • +
      Optional parser?: undefined | function
      +
    • +
    +
    +
    +
    + +

    url

    +
    url: string
    + +
    +
    + +

    Optional view

    +
    view: Engine
    + +
    +
    + +

    workers

    +
    workers: number
    + +
    +
    +
    + +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Module
    • +
    • Object literal
    • +
    • Variable
    • +
    • Function
    • +
    • Function with type parameter
    • +
    • Index signature
    • +
    • Type alias
    • +
    +
      +
    • Enumeration
    • +
    • Enumeration member
    • +
    • Property
    • +
    • Method
    • +
    +
      +
    • Interface
    • +
    • Interface with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Index signature
    • +
    +
      +
    • Class
    • +
    • Class with type parameter
    • +
    • Constructor
    • +
    • Property
    • +
    • Method
    • +
    • Accessor
    • +
    • Index signature
    • +
    +
      +
    • Inherited constructor
    • +
    • Inherited property
    • +
    • Inherited method
    • +
    • Inherited accessor
    • +
    +
      +
    • Protected property
    • +
    • Protected method
    • +
    • Protected accessor
    • +
    +
      +
    • Private property
    • +
    • Private method
    • +
    • Private accessor
    • +
    +
      +
    • Static property
    • +
    • Static method
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + + \ No newline at end of file diff --git a/docs/modules/__global.html b/docs/modules/__global.html index bc871c2..89a70ec 100644 --- a/docs/modules/__global.html +++ b/docs/modules/__global.html @@ -93,7 +93,7 @@

    Const HttpException

    HttpException: HttpException
    diff --git a/package-lock.json b/package-lock.json index 3691ceb..86e7ba1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "foxify", - "version": "0.7.1", + "version": "0.8.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -133,9 +133,9 @@ "dev": true }, "@types/node": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.1.tgz", - "integrity": "sha512-AFLl1IALIuyt6oK4AYZsgWVJ/5rnyzQWud7IebaZWWV3YmgtPZkQmYio9R5Ze/2pdd7XfqF5bP+hWS11mAKoOQ==" + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", + "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==" }, "@types/on-finished": { "version": "2.3.1", @@ -223,9 +223,9 @@ } }, "ajv": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", - "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -617,12 +617,12 @@ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-json-stringify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.5.4.tgz", - "integrity": "sha512-rasizCB0oTM1OORpgt37bEuRHI3i5UYkG9BHhhopPEb9ZJ9UsU5v8uFnA4Dpl6xXfBP+uFFyIwHbJDUfJU5eiw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.6.0.tgz", + "integrity": "sha512-WbJ7USEIg0kd45KBYiiHbpJk1Q6Fb0QJM0Siog7NNj+CfQzOxIB1YdhUtIMhwMmM6diWMAEZ/hgax7bgFvnLhg==", "requires": { - "ajv": "^6.5.0", - "deepmerge": "^2.1.0" + "ajv": "^6.5.1", + "deepmerge": "^2.1.1" } }, "forwarded": { diff --git a/package.json b/package.json index 6513617..8b4d62b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "foxify", - "version": "0.7.1", + "version": "0.8.0", "description": "The fast, easy to use & typescript ready web framework for Node.js", "author": "Ardalan Amini ", "contributors": [ @@ -48,7 +48,7 @@ "doc": "node scripts/doc.js" }, "dependencies": { - "@types/node": "^10.5.1", + "@types/node": "^10.5.2", "@types/range-parser": "^1.2.2", "accepts": "^1.3.5", "async": "^2.6.1", @@ -59,7 +59,7 @@ "dotenv": "^6.0.0", "encodeurl": "^1.0.2", "escape-html": "^1.0.3", - "fast-json-stringify": "^1.5.4", + "fast-json-stringify": "^1.6.0", "fresh": "^0.5.2", "methods": "^1.1.2", "on-finished": "^2.3.0", diff --git a/src/Server.ts b/src/Server.ts index 88d2c98..bab2b63 100644 --- a/src/Server.ts +++ b/src/Server.ts @@ -1,19 +1,21 @@ import * as http from "http"; import * as https from "https"; import * as cluster from "cluster"; -import * as async from "async"; +import { request, response } from "./patches"; +import * as Foxify from "./index"; +import { Engine } from "./view"; module Server { - export interface Options { - protocol: "http" | "https"; - host: string; - port: number; - workers: number; - key?: string; - cert?: string; + export interface Options extends Foxify.Options { + } + + export interface Settings extends Foxify.Settings { + view?: Engine; } export type Listener = (request: http.IncomingMessage, response: http.ServerResponse) => void; + + export type Callback = (server: Server) => void; } class Server { @@ -22,20 +24,32 @@ class Server { protected _host: string; protected _port: number; - constructor(options: Server.Options, listener: Server.Listener) { - this._host = options.host; - this._port = options.port; + protected _listening = false; + + constructor(options: Server.Options, settings: Server.Settings, listener: Server.Listener) { + const isHttps = options.https; + + this._host = settings.url; + this._port = settings.port; + + const SERVER: any = isHttps ? https : http; + + const IncomingMessage = request(http.IncomingMessage, options, settings); + const ServerResponse = response(http.ServerResponse, options, settings); - const SERVER: any = options.protocol === "https" ? https : http; + const OPTIONS: any = { + IncomingMessage, + ServerResponse, + }; - const OPTIONS: any = {}; + if (isHttps) { + const httpsSettings = settings.https; - if (options.protocol === "https") { - OPTIONS.cert = options.cert; - OPTIONS.key = options.key; + OPTIONS.cert = httpsSettings.cert; + OPTIONS.key = httpsSettings.key; } - const workers = options.workers; + const workers = settings.workers; if (workers > 1) { if (cluster.isMaster) { @@ -61,20 +75,35 @@ class Server { this._instance = SERVER.createServer(OPTIONS, listener); } - start(callback?: () => void) { + get listening() { + return this._listening; + } + + start(callback?: Server.Callback) { + this._listening = true; + const instance = this._instance; - if (instance) instance.listen(this._port, this._host, callback); + if (instance) instance.listen(this._port, this._host, callback && (() => callback(this))); + + return this; } - stop(callback?: () => void) { + stop(callback?: Server.Callback) { + this._listening = false; + const instance = this._instance; - if (instance) instance.close(callback); + if (instance) instance.close(callback && (() => callback(this))); + + return this; } - reload(callback?: () => void) { - this.stop(() => this.start(callback)); + reload(callback?: Server.Callback) { + if (this._listening) + return this.stop((server) => server.start(callback)); + + return this.start(callback); } } diff --git a/src/index.ts b/src/index.ts index bf95b78..11c5a79 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,8 @@ import "./bootstrap"; -import * as http from "http"; import * as os from "os"; import * as serveStatic from "serve-static"; import * as constants from "./constants"; import { init, query } from "./middleware"; -import { request, response } from "./patches"; import { httpMethods, Route, Router } from "./routing"; import * as utils from "./utils"; import * as Server from "./Server"; @@ -45,6 +43,7 @@ module Foxify { interface Foxify extends Route.MethodFunctions { get(setting: string): any; + get(path: string, options: Route.RouteOptions | Route.Controller, ...controllers: Route.Controller[]): this; use(route: Route): this; use(...controllers: Route.Controller[]): this; @@ -56,13 +55,11 @@ class Foxify { static Route = Route; static static = serveStatic; - static dotenv = (dotenv: string) => { - if (!utils.string.isString(dotenv)) - throw new TypeError(`Expected 'dotenv' to be an string, got ${typeof dotenv} instead`); + static dotenv = (path: string) => { + if (!utils.string.isString(path)) + throw new TypeError(`Expected 'dotenv' to be an string, got ${typeof path} instead`); - require("dotenv").config({ - path: dotenv, - }); + require("dotenv").config({ path }); } private _options: Foxify.Options = { @@ -247,7 +244,7 @@ class Foxify { } get(path: string, options?: Route.RouteOptions | Route.Controller, ...controllers: Route.Controller[]): any { - if (controllers.length === 0) { + if (!options) { const setting = path; if (!utils.string.isString(setting)) @@ -325,27 +322,19 @@ class Foxify { query(this), ); - /* apply http patches */ - request(http.IncomingMessage, this); - response(http.ServerResponse, this); - Engine.responsePatch(http.ServerResponse, this._view); - /* initialize the router with provided options and settings */ this._router.initialize(this); const server = new Server( + this._options, { - protocol: this.enabled("https") ? "https" : "http", - host: this.get("url"), - port: this.get("port"), - workers: this.get("workers"), - cert: this.get("https.cert"), - key: this.get("https.key"), + ...this._settings, + view: this._view, }, (req, res) => this._router.route(req, res), ); - server.start(callback); + return server.start(callback); } } diff --git a/src/patches/request.ts b/src/patches/request.ts index 7ec7aad..981b584 100644 --- a/src/patches/request.ts +++ b/src/patches/request.ts @@ -7,7 +7,7 @@ import proxyAddr = require("proxy-addr"); import * as parseUrl from "parseurl"; import fresh = require("fresh"); import * as constants from "../constants"; -import * as Foxify from "../index"; +import * as Server from "../Server"; import * as utils from "../utils"; /** @@ -171,121 +171,126 @@ declare module "http" { } } -const patch = (req: typeof http.IncomingMessage, app: Foxify) => { +const patch = (req: typeof http.IncomingMessage, options: Server.Options, settings: Server.Settings): any => { - utils.define(req.prototype, "get", "fresh", function (this: http.IncomingMessage) { - const method = this.method; - const res = this.res; - const status = res.statusCode; + class IncomingMessage extends req { + get fresh() { + const method = this.method; + const res = this.res; + const status = res.statusCode; - // GET or HEAD for weak freshness validation only - if ("GET" !== method && "HEAD" !== method) return false; + // GET or HEAD for weak freshness validation only + if ("GET" !== method && "HEAD" !== method) return false; - // 2xx or 304 as per rfc2616 14.26 - if ((status >= constants.http.OK && status < constants.http.MULTIPLE_CHOICES) || - constants.http.NOT_MODIFIED === status) - return fresh(this.headers, { - "etag": res.get("ETag"), - "last-modified": res.get("Last-Modified"), - }); + // 2xx or 304 as per rfc2616 14.26 + if ((status >= constants.http.OK && status < constants.http.MULTIPLE_CHOICES) || + constants.http.NOT_MODIFIED === status) + return fresh(this.headers, { + "etag": res.get("ETag"), + "last-modified": res.get("Last-Modified"), + }); - return false; - }); + return false; + } - utils.define(req.prototype, "get", "hostname", function (this: http.IncomingMessage) { - let host = this.get("X-Forwarded-Host"); + get hostname() { + let host = this.get("X-Forwarded-Host"); - if (!host) host = this.get("Host"); + if (!host) host = this.get("Host"); - if (!host) return; + if (!host) return; - // IPv6 literal support - const offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; + // IPv6 literal support + const offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; - const index = host.indexOf(":", offset); + const index = host.indexOf(":", offset); - return index !== -1 ? host.substring(0, index) : host; - }); + return index !== -1 ? host.substring(0, index) : host; + } - utils.define(req.prototype, "get", "path", function (this: http.IncomingMessage) { - const url = parseUrl(this); + get path() { + const url: any = parseUrl(this); - return url ? url.pathname : ""; - }); + return url ? url.pathname : ""; + } - utils.define(req.prototype, "get", "stale", function (this: http.IncomingMessage) { - return !this.fresh; - }); + get stale() { + return !this.fresh; + } - utils.define(req.prototype, "get", "xhr", function (this: http.IncomingMessage) { - const val = this.get("X-Requested-With") || ""; + get xhr() { + const val = this.get("X-Requested-With") || ""; - return val.toLowerCase() === "xmlhttprequest"; - }); + return val.toLowerCase() === "xmlhttprequest"; + } - req.prototype.accepts = function () { - const accept = accepts(this); + accepts() { + const accept = accepts(this); - return accept.types.apply(accept, arguments); - }; + return accept.types.apply(accept, arguments); + } - req.prototype.acceptsCharsets = function () { - const accept = accepts(this); + acceptsCharsets() { + const accept = accepts(this); - return accept.charsets.apply(accept, arguments); - }; + return accept.charsets.apply(accept, arguments); + } - req.prototype.acceptsEncodings = function () { - const accept = accepts(this); + acceptsEncodings() { + const accept = accepts(this); - return accept.encodings.apply(accept, arguments); - }; + return accept.encodings.apply(accept, arguments); + } - req.prototype.acceptsLanguages = function () { - const accept = accepts(this); + acceptsLanguages() { + const accept = accepts(this); - return accept.languages.apply(accept, arguments); - }; + return accept.languages.apply(accept, arguments); + } - req.prototype.get = req.prototype.head = function (name) { - if (!name) throw new TypeError("name argument is required to req.get/req.head"); + get(name: string) { + if (!name) throw new TypeError("name argument is required to req.get/req.head"); - if (!utils.string.isString(name)) throw new TypeError("name must be a string to req.get/req.head"); + if (!utils.string.isString(name)) throw new TypeError("name must be a string to req.get/req.head"); - const header = name.toLowerCase(); + const header = name.toLowerCase(); - switch (header) { - case "referer": - case "referrer": - return this.headers.referrer || this.headers.referer; - default: - return this.headers[header]; + switch (header) { + case "referer": + case "referrer": + return this.headers.referrer || this.headers.referer; + default: + return this.headers[header]; + } } - }; - req.prototype.is = function (types) { + is(types?: string | string[]): string | false | null { + // support flattened arguments + if (!Array.isArray(types)) { + const arr = new Array(arguments.length); - // support flattened arguments - if (!Array.isArray(types)) { - const arr = new Array(arguments.length); + for (let i = 0; i < arr.length; i++) arr[i] = arguments[i]; - for (let i = 0; i < arr.length; i++) arr[i] = arguments[i]; + return typeIs(this, arr); + } - return typeIs(this, arr); + return typeIs(this, types); } - return typeIs(this, types); - }; + range(size: number, options?: parseRange.Options) { + let range = this.get("Range"); - req.prototype.range = function (size, options) { - let range = this.get("Range"); + if (!range) return; - if (!range) return; + if (Array.isArray(range)) range = range.join(","); + + return parseRange(size, range, options); + } + } - if (Array.isArray(range)) range = range.join(","); + IncomingMessage.prototype.head = IncomingMessage.prototype.get; - return parseRange(size, range, options); - }; + return IncomingMessage; // /** // * Return the remote address from the trusted proxy. diff --git a/src/patches/response.ts b/src/patches/response.ts index 212409d..29cebb2 100644 --- a/src/patches/response.ts +++ b/src/patches/response.ts @@ -10,7 +10,7 @@ import * as contentDisposition from "content-disposition"; import * as vary from "vary"; import send = require("send"); import * as constants from "../constants"; -import * as Foxify from "../index"; +import * as Server from "../Server"; import * as utils from "../utils"; import { Engine } from "../view"; @@ -24,7 +24,7 @@ declare module "http" { /** * @hidden */ - stringify?: any; + stringify?: { [statusCode: number]: any }; /** * Append additional header `field` with value `val`. @@ -173,7 +173,7 @@ declare module "http" { * @example * res.set({ Accept: "text/plain", "X-API-Key": "tobi" }); */ - header(field: string | object, value: string | string[]): this; + header(field: string | object, value?: string | string[]): this; /** * Send JSON response. @@ -564,296 +564,373 @@ const normalizeTypes = (types: string[]) => { return ret; }; -const patch = (res: typeof http.ServerResponse, app: Foxify) => { +const patch = (res: typeof http.ServerResponse, options: Server.Options, settings: Server.Settings): any => { - res.prototype.append = function (field, val) { - const prev = this.get(field); - let value: any = val; + const engine = settings.view; - if (prev) - // concat the new and prev vals - value = Array.isArray(prev) ? prev.concat(val) - : Array.isArray(val) ? [prev].concat(val) - : [prev, val]; - - return this.set(field, value); + /* json options */ + const jsonOptions = { + escape: options.json.escape, + spaces: settings.json.spaces, + replacer: settings.json.replacer, }; - res.prototype.attachment = function (filename) { - if (filename) this.type(path.extname(filename)); + class ServerResponse extends res { + append(field: string, val: string | string[]) { + const prev = this.get(field); + let value: any = val; - this.set("Content-Disposition", contentDisposition(filename)); + if (prev) + // concat the new and prev vals + value = Array.isArray(prev) ? prev.concat(val) + : Array.isArray(val) ? [prev].concat(val) + : [prev, val]; - return this; - }; + return this.set(field, value) as any; + } - res.prototype.clearCookie = function (name, options = {}) { - const opts = Object.assign({}, { expires: new Date(1), path: "/" }, options); + attachment(filename?: string) { + if (filename) this.type(path.extname(filename)); - return this.cookie(name, "", opts); - }; + this.set("Content-Disposition", contentDisposition(filename)); - res.prototype.contentType = res.prototype.type = function (type) { - return this.set("Content-Type", type.indexOf("/") === -1 - ? (send.mime as any).lookup(type) - : type, - ); - }; + return this; + } - res.prototype.cookie = function (name, value, options = {}) { - const opts: { [key: string]: any } = Object.assign({}, options); - const secret = (this.req as any).secret; - const signed = opts.signed; + clearCookie(name: string, options: object = {}) { + const opts = Object.assign({}, { expires: new Date(1), path: "/" }, options); - if (signed && !secret) throw new Error("cookieParser('secret') required for signed cookies"); + return this.cookie(name, "", opts); + } - let val = utils.object.isObject(value) - ? "j:" + JSON.stringify(value) - : String(value); + contentType(type: string) { + return this.set("Content-Type", type.indexOf("/") === -1 + ? (send.mime as any).lookup(type) + : type, + ) as any; + } - if (signed) val = "s:" + sign(val, secret); + cookie(name: string, value: string | object, options: object = {}) { + const opts: { [key: string]: any } = Object.assign({}, options); + const secret = (this.req as any).secret; + const signed = opts.signed; - if ("maxAge" in opts) { - opts.expires = new Date(Date.now() + opts.maxAge); - opts.maxAge /= 1000; - } + if (signed && !secret) throw new Error("cookieParser('secret') required for signed cookies"); - if (opts.path == null) opts.path = "/"; + let val = utils.object.isObject(value) + ? "j:" + JSON.stringify(value) + : String(value); - this.append("Set-Cookie", cookie.serialize(name, String(val), opts)); + if (signed) val = "s:" + sign(val, secret); - return this; - }; + if ("maxAge" in opts) { + opts.expires = new Date(Date.now() + opts.maxAge); + opts.maxAge /= 1000; + } + + if (opts.path == null) opts.path = "/"; - res.prototype.download = function (path, filename, options, callback) { - let done: any = callback; - let name: any = filename; - let opts = options || null; - - // support function as second or third arg - if (utils.function.isFunction(filename)) { - done = filename; - name = null; - opts = null; - } else if (utils.function.isFunction(options)) { - done = options; - opts = null; + this.append("Set-Cookie", cookie.serialize(name, String(val), opts)); + + return this; } - // set Content-Disposition when file is sent - const headers = { - "Content-Disposition": contentDisposition(name || path), - }; + download(path: string, filename: string, options?: object, callback?: (...args: any[]) => void) { + let done: any = callback; + let name: any = filename; + let opts = options || null; + + // support function as second or third arg + if (utils.function.isFunction(filename)) { + done = filename; + name = null; + opts = null; + } else if (utils.function.isFunction(options)) { + done = options; + opts = null; + } - // merge user-provided headers - if (opts && (opts as { [key: string]: any }).headers) { - const keys = Object.keys((opts as { [key: string]: any }).headers); + // set Content-Disposition when file is sent + const headers = { + "Content-Disposition": contentDisposition(name || path), + }; - let key; - for (let i = 0; i < keys.length; i++) { - key = keys[i]; + // merge user-provided headers + if (opts && (opts as { [key: string]: any }).headers) { + const keys = Object.keys((opts as { [key: string]: any }).headers); + + let key; + for (let i = 0; i < keys.length; i++) { + key = keys[i]; - if (key.toLowerCase() !== "content-disposition") - (headers as { [key: string]: any })[key] = (opts as { [key: string]: any }).headers[key]; + if (key.toLowerCase() !== "content-disposition") + (headers as { [key: string]: any })[key] = (opts as { [key: string]: any }).headers[key]; + } } - } - // merge user-provided options - opts = Object.create(opts) - (opts as { [key: string]: any }).headers = headers; + // merge user-provided options + opts = Object.create(opts) + (opts as { [key: string]: any }).headers = headers; - // Resolve the full path for sendFile - const fullPath = resolve(path); + // Resolve the full path for sendFile + const fullPath = resolve(path); - // send file - return this.sendFile(fullPath, opts, done); - }; + // send file + return this.sendFile(fullPath, opts, done); + } + + format(obj: { [key: string]: any }) { + const req = this.req; + const next = req.next; - res.prototype.format = function (obj: { [key: string]: any }) { - const req = this.req; - const next = req.next; + const fn = obj.default; - const fn = obj.default; + if (fn) delete obj.default; - if (fn) delete obj.default; + const keys = Object.keys(obj); - const keys = Object.keys(obj); + const key = keys.length > 0 + ? req.accepts(keys) + : false; - const key = keys.length > 0 - ? req.accepts(keys) - : false; + this.vary("Accept"); - this.vary("Accept"); + if (key) { + this.set("Content-Type", normalizeType(key).value); + obj[key](req, this, next); + } else if (fn) + fn(); + else { + const err: any = new Error("Not Acceptable"); - if (key) { - this.set("Content-Type", normalizeType(key).value); - obj[key](req, this, next); - } else if (fn) - fn(); - else { - const err: any = new Error("Not Acceptable"); + err.status = err.statusCode = 406; + err.types = normalizeTypes(keys).map((o) => o.value); - err.status = err.statusCode = 406; - err.types = normalizeTypes(keys).map((o) => o.value); + throw err; + } - throw err; + return this; } - return this; - }; + header(field: string | object, val?: string | string[]) { + if (val) { + let value = Array.isArray(val) + ? val.map((v) => `${v}`) + : `${val}`; - res.prototype.get = res.prototype.getHeader; + // add charset to content-type + if ((field as string).toLowerCase() === "content-type") { + if (Array.isArray(value)) throw new TypeError("Content-Type cannot be set to an Array"); - res.prototype.header = res.prototype.set = function (field, val?) { - if (val) { - let value = Array.isArray(val) - ? val.map((v) => `${v}`) - : `${val}`; + if (!charsetRegExp.test(value)) { + const charset = (send.mime as any).charsets.lookup(value.split(";")[0]); - // add charset to content-type - if ((field as string).toLowerCase() === "content-type") { - if (Array.isArray(value)) throw new TypeError("Content-Type cannot be set to an Array"); + if (charset) value += "; charset=" + charset.toLowerCase(); + } + } - if (!charsetRegExp.test(value)) { - const charset = (send.mime as any).charsets.lookup(value.split(";")[0]); + this.setHeader(field, value); + } else + for (const key in field) this.set(key, (field as { [key: string]: any })[key]); - if (charset) value += "; charset=" + charset.toLowerCase(); - } - } + return this; + } - this.setHeader(field, value); - } else - for (const key in field) this.set(key, (field as { [key: string]: any })[key]); + json(obj: object, status?: number) { + if (status) this.status(status); - return this; - }; + const _stringify = (this.stringify && this.stringify[this.statusCode]) || stringify; - /* json options */ - const jsonOptions = { - escape: app.enabled("json.escape"), - spaces: app.get("json.spaces") || undefined, - replacer: app.get("json.replacer") || undefined, - }; + // if (!this.get("Content-Type")) this.setHeader("Content-Type", "application/json"); + this.setHeader("Content-Type", "application/json"); - res.prototype.json = function (obj, status?) { - let body; + return this.send( + _stringify( + obj, + jsonOptions.replacer, + jsonOptions.spaces, + jsonOptions.escape, + ), + ); + } - if (this.stringify) body = this.stringify(obj); - else body = stringify(obj, jsonOptions.replacer, jsonOptions.spaces, jsonOptions.escape); + jsonp(obj: object, status?: number) { + // settings + const app = (this as any).app; + const escape = jsonOptions.escape; + const replacer = jsonOptions.replacer; + const spaces = jsonOptions.spaces; + let body = stringify(obj, replacer, spaces, escape); + let callback = this.req.query[app.get("jsonp callback name")]; + + if (status) this.status(status); + + // content-type + if (!this.get("Content-Type")) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "application/json"); + } - // content-type - // if (!this.get("Content-Type")) this.setHeader("Content-Type", "application/json") - this.setHeader("Content-Type", "application/json"); + // fixup callback + if (Array.isArray(callback)) callback = callback[0]; - if (status) this.status(status); + // jsonp + if (utils.string.isString(callback) && callback.length !== 0) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "text/javascript"); - return this.send(body); - }; + // restrict callback charset + callback = callback.replace(/[^\[\]\w$.]/g, ""); - res.prototype.jsonp = function (obj, status) { - // settings - const app = (this as any).app; - const escape = jsonOptions.escape; - const replacer = jsonOptions.replacer; - const spaces = jsonOptions.spaces; - let body = stringify(obj, replacer, spaces, escape); - let callback = this.req.query[app.get("jsonp callback name")]; - - if (status) this.status(status); - - // content-type - if (!this.get("Content-Type")) { - this.set("X-Content-Type-Options", "nosniff"); - this.set("Content-Type", "application/json"); + // replace chars not allowed in JavaScript that are in JSON + body = body + .replace(/\u2028/g, "\\u2028") + .replace(/\u2029/g, "\\u2029"); + + // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse" + // the typeof check is just to reduce client error noise + body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");"; + } + + return this.send(body); } - // fixup callback - if (Array.isArray(callback)) callback = callback[0]; + links(links: { [key: string]: string }) { + const link = `${this.get("Link") || ""}, `; + + return this.set( + "Link", + link + Object.keys(links) + .map((rel) => `<${links[rel]}>; rel="${rel}"`) + .join(", "), + ) as any; + } - // jsonp - if (utils.string.isString(callback) && callback.length !== 0) { - this.set("X-Content-Type-Options", "nosniff"); - this.set("Content-Type", "text/javascript"); + location(url: string) { + // set location + return this.set( + "Location", + encodeUrl( + // "back" is an alias for the referrer + url === "back" ? + this.req.get("Referrer") || "/" : + url, + ), + ) as any; + } - // restrict callback charset - callback = callback.replace(/[^\[\]\w$.]/g, ""); + redirect(url: string | number) { + let address = url; + let body: string = ""; + let status = 302; - // replace chars not allowed in JavaScript that are in JSON - body = body - .replace(/\u2028/g, "\\u2028") - .replace(/\u2029/g, "\\u2029"); + // allow status / url + if (arguments.length === 2) { + status = arguments[0]; + address = arguments[1]; + } - // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse" - // the typeof check is just to reduce client error noise - body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");"; + // Set location header + address = this.location(address).get("Location"); + + // Support text/{plain,html} by default + this.format({ + text: () => { + body = STATUS_CODES[status] + ". Redirecting to " + address; + }, + + html: () => { + const u = escapeHtml(address); + body = "

    " + STATUS_CODES[status] + ". Redirecting to ' + u + '

    "; + }, + + default: () => { + body = ""; + }, + }); + + // Respond + this.statusCode = status; + this.set("Content-Length", Buffer.byteLength(body)); + + if (this.req.method === "HEAD") + this.end(); + else + this.end(body); } - return this.send(body); - }; + render(view: string, data?: object, callback?: Engine.Callback) { + if (!engine) throw new Error("View engine is not specified"); - res.prototype.links = function (links: { [key: string]: string }) { - const link = `${this.get("Link") || ""}, `; + if (!callback) + callback = (err, str) => { + if (err) throw err; - return this.set( - "Link", - link + Object.keys(links) - .map((rel) => `<${links[rel]}>; rel="${rel}"`) - .join(", "), - ); - }; + this.send(str); + }; + + engine.render(view, data, callback); + } - res.prototype.location = function (url) { - let loc = url; + sendFile(path: string, options?: object | ((...args: any[]) => void), callback?: (...args: any[]) => void) { + let done = callback; + const req = this.req; + const res = this; + const next = req.next; + let opts = options || {}; - // "back" is an alias for the referrer - if (url === "back") loc = this.req.get("Referrer") || "/"; + if (!path) throw new TypeError("path argument is required to res.sendFile"); - // set location - return this.set("Location", encodeUrl(loc)); - }; + // support function as second arg + if (utils.function.isFunction(options)) { + done = options; + opts = {}; + } - res.prototype.redirect = function (url: string | number) { - let address = url; - let body: string = ""; - let status = 302; + if (!(opts as any).root && !isAbsolute(path)) + throw new TypeError("path must be absolute or specify root to res.sendFile"); - // allow status / url - if (arguments.length === 2) { - status = arguments[0]; - address = arguments[1]; + // create file stream + const pathname = encodeURI(path); + const file = send(req, pathname, opts); + + // transfer + sendfile(res, file, opts, (err: any) => { + if (done) return done(err); + if (err && err.code === "EISDIR") return next(); + + // next() all but write errors + if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") throw err; + }); } - // Set location header - address = this.location(address).get("Location"); + sendStatus(statusCode: number) { + this.statusCode = statusCode; - // Support text/{plain,html} by default - this.format({ - text: () => { - body = STATUS_CODES[status] + ". Redirecting to " + address; - }, + this.type("txt"); - html: () => { - const u = escapeHtml(address); - body = "

    " + STATUS_CODES[status] + ". Redirecting to ' + u + '

    "; - }, + return this.send(STATUS_CODES[statusCode] || `${statusCode}`); + } - default: () => { - body = ""; - }, - }); + status(code: number) { + this.statusCode = code; - // Respond - this.statusCode = status; - this.set("Content-Length", Buffer.byteLength(body)); + return this; + } - if (this.req.method === "HEAD") - this.end(); - else - this.end(body); - }; + vary(field: string | string[]) { + vary(this, field); - if (app.enabled("content-length")) - res.prototype.send = function (body) { + return this; + } + } + + ServerResponse.prototype.type = ServerResponse.prototype.contentType; + ServerResponse.prototype.set = ServerResponse.prototype.header; + ServerResponse.prototype.get = ServerResponse.prototype.getHeader; + + if (options["content-length"]) + ServerResponse.prototype.send = function (body) { const req = this.req; let contentType = this.get("Content-Type"); let chunk = body; @@ -911,7 +988,7 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { return this; }; else - res.prototype.send = function (body) { + ServerResponse.prototype.send = function (body) { const req = this.req; const contentType = this.get("Content-Type") as string; let chunk = body; @@ -944,59 +1021,7 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { return this; }; - res.prototype.sendFile = function (path, options?, callback?) { - let done = callback; - const req = this.req; - const res = this; - const next = req.next; - let opts = options || {}; - - if (!path) throw new TypeError("path argument is required to res.sendFile"); - - // support function as second arg - if (utils.function.isFunction(options)) { - done = options; - opts = {}; - } - - if (!(opts as any).root && !isAbsolute(path)) - throw new TypeError("path must be absolute or specify root to res.sendFile"); - - // create file stream - const pathname = encodeURI(path); - const file = send(req, pathname, opts); - - // transfer - sendfile(res, file, opts, (err: any) => { - if (done) return done(err); - if (err && err.code === "EISDIR") return next(); - - // next() all but write errors - if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") throw err; - }); - }; - - res.prototype.sendStatus = function (statusCode) { - const body = STATUS_CODES[statusCode] || `${statusCode}`; - - this.statusCode = statusCode; - this.type("txt"); - - return this.send(body); - }; - - res.prototype.status = function (code) { - this.statusCode = code; - - return this; - }; - - res.prototype.vary = function (field) { - vary(this, field); - - return this; - }; - + return ServerResponse; }; export = patch; diff --git a/src/routing/Route.ts b/src/routing/Route.ts index 8995b83..3db0595 100644 --- a/src/routing/Route.ts +++ b/src/routing/Route.ts @@ -79,14 +79,14 @@ module Route { export type JsonSchemaType = "string" | "integer" | "number" | "array" | "object" | "boolean" | "null"; export interface JsonSchemaProperties { - [key: string]: { + [property: string]: { type: JsonSchemaType; default?: any; }; } export interface JsonSchema { - title: string; + title?: string; type: object; properties?: JsonSchemaProperties; patternProperties?: JsonSchemaProperties; @@ -96,8 +96,12 @@ module Route { required?: string[]; } + export interface Schema { + response: { [statusCode: number]: JsonSchema }; + } + export interface RouteOptions { - schema?: JsonSchema; + schema?: Schema; } } diff --git a/src/routing/Router.ts b/src/routing/Router.ts index d279bcd..59e009e 100644 --- a/src/routing/Router.ts +++ b/src/routing/Router.ts @@ -28,18 +28,18 @@ class Router { let i = index; for (; i < length; i++) { - const route = routes[i]; + const { path, controller, options: { schema } } = routes[i]; - const params = (route.path as RegExp).exec(url); + const params = (path as RegExp).exec(url); if (params) { const next = () => this._safeNext.run(req, res, url, routes, i + 1); req.next = next; - res.stringify = (route.options as any).stringify; + res.stringify = schema && schema.response; - return route.controller.run(req, res, next, ...utils.array.tail(params)); + return controller.run(req, res, next, ...utils.array.tail(params)); } } @@ -52,14 +52,23 @@ class Router { const strict = app.enabled("routing.strict"); const sensitive = app.enabled("routing.sensitive"); - httpMethods.map((method) => this._routes[method] = this._routes[method].map((route) => ({ - ...route, - options: { - ...route.options, - stringify: route.options.schema && fastStringify(route.options.schema), - }, - path: pathToRegExp(route.path, [], { strict, sensitive }), - }))); + httpMethods.map((method) => this._routes[method] = this._routes[method].map((route) => { + const options = route.options; + + const schema: { response: { [statusCode: number]: any } } | undefined = options.schema; + + if (schema) + schema.response = utils.object.map(schema.response, (value) => fastStringify(value)); + + return { + ...route, + options: { + ...options, + schema, + }, + path: pathToRegExp(route.path, [], { strict, sensitive }), + }; + })); } prepend(routes: Route.Routes) { diff --git a/src/view/Engine.ts b/src/view/Engine.ts index 04d317d..7d6c953 100644 --- a/src/view/Engine.ts +++ b/src/view/Engine.ts @@ -19,23 +19,6 @@ class Engine { render(filename: string, opts: object = {}, cb?: Engine.Callback) { this._handler(path.join(this._path, `${filename}.${this._ext}`), opts, cb); } - - static responsePatch(res: typeof http.ServerResponse, engine?: Engine) { - res.prototype.render = function(view: string, data?: object, callback?: Engine.Callback) { - if (!engine) throw new Error("View engine is not specified"); - - if (!callback) - callback = (err, str) => { - if (err) throw err; - - this.send(str); - }; - - engine.render(view, data, callback); - }; - - return res; - } } export = Engine;