From f14f8d3917f13ae980a935146936276069cf95fd Mon Sep 17 00:00:00 2001 From: Ardalan Amini Date: Thu, 5 Jul 2018 14:07:34 +0430 Subject: [PATCH] WIP --- CHANGELOG.md | 10 + docs/.nojekyll | 0 docs/assets/js/search.js | 2 +- docs/classes/encapsulation.html | 9 +- docs/classes/engine.html | 17 +- docs/classes/foxify.html | 1413 +++++++---------- docs/classes/httpexception.html | 19 +- docs/classes/route.html | 77 +- docs/classes/router.html | 19 +- docs/classes/server.html | 476 ++++++ docs/globals.html | 164 +- docs/index.html | 3 + docs/interfaces/__global.nodejs.global.html | 2 +- docs/interfaces/_http_.incomingmessage.html | 246 ++- docs/interfaces/_http_.serverresponse.html | 171 +- docs/interfaces/foxify.options.html | 25 +- docs/interfaces/foxify.settings.html | 40 +- docs/interfaces/route.jsonschema.html | 15 +- .../route.jsonschemaproperties.html | 3 + docs/interfaces/route.methodfunctions.html | 58 +- docs/interfaces/route.routeobject.html | 9 +- docs/interfaces/route.routeoptions.html | 5 +- docs/interfaces/route.routes.html | 55 +- docs/interfaces/server.options.html | 368 +++++ docs/modules/__global.html | 2 +- package.json | 6 +- scripts/doc.js | 24 + scripts/prepare.js | 6 +- src/Server.ts | 81 + src/index.ts | 100 +- src/patches/request.ts | 565 ++++--- src/patches/response.ts | 485 +++--- 32 files changed, 2674 insertions(+), 1801 deletions(-) create mode 100644 docs/.nojekyll create mode 100644 docs/classes/server.html create mode 100644 docs/interfaces/server.options.html create mode 100644 scripts/doc.js create mode 100644 src/Server.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index d96139f..537bcf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [next](https://github.com/foxifyjs/foxify/releases/tag/next) - *2018-__-__* + +**Implemented enhancements:** + +- added `https` option +- added `https.key` setting +- added `https.cert` setting +- added `json schema` option to routing +- improved performance + ## [v0.7.0](https://github.com/foxifyjs/foxify/releases/tag/v0.7.0) - *2018-05-19* **Implemented enhancements:** diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 0e87338..06ab38d 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":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":32,"name":"template","url":"globals.html#template","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":64,"kind":64,"name":"mixins","url":"globals.html#mixins","classes":"tsd-kind-function"},{"id":65,"kind":64,"name":"define","url":"globals.html#define","classes":"tsd-kind-function"},{"id":66,"kind":128,"name":"HttpException","url":"classes/httpexception.html","classes":"tsd-kind-class"},{"id":67,"kind":1024,"name":"code","url":"classes/httpexception.html#code","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":68,"kind":1024,"name":"errors","url":"classes/httpexception.html#errors","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":69,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpException"},{"id":70,"kind":1024,"name":"name","url":"classes/httpexception.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":71,"kind":1024,"name":"message","url":"classes/httpexception.html#message","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"HttpException"},{"id":72,"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":73,"kind":1024,"name":"Error","url":"classes/httpexception.html#error","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HttpException"},{"id":74,"kind":512,"name":"constructor","url":"classes/httpexception.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpException"},{"id":75,"kind":2048,"name":"handle","url":"classes/httpexception.html#handle-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":76,"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":77,"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":78,"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":79,"kind":1024,"name":"Error","url":"classes/httpexception.html#error-1","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"HttpException"},{"id":80,"kind":128,"name":"Encapsulation","url":"classes/encapsulation.html","classes":"tsd-kind-class"},{"id":81,"kind":1024,"name":"_fn","url":"classes/encapsulation.html#_fn","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Encapsulation"},{"id":82,"kind":65536,"name":"__type","url":"classes/encapsulation.html#_fn.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Encapsulation._fn"},{"id":83,"kind":512,"name":"constructor","url":"classes/encapsulation.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Encapsulation"},{"id":84,"kind":2048,"name":"run","url":"classes/encapsulation.html#run","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Encapsulation"},{"id":85,"kind":2,"name":"__global","url":"modules/__global.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":86,"kind":2,"name":"NodeJS","url":"modules/__global.nodejs.html","classes":"tsd-kind-module tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":87,"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":88,"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":89,"kind":32,"name":"HttpException","url":"modules/__global.html#httpexception","classes":"tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported","parent":"__global"},{"id":90,"kind":64,"name":"init","url":"globals.html#init","classes":"tsd-kind-function"},{"id":91,"kind":64,"name":"query","url":"globals.html#query","classes":"tsd-kind-function"},{"id":92,"kind":128,"name":"Route","url":"classes/route.html","classes":"tsd-kind-class"},{"id":93,"kind":1024,"name":"get","url":"classes/route.html#get","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":94,"kind":1024,"name":"post","url":"classes/route.html#post","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":95,"kind":1024,"name":"put","url":"classes/route.html#put","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":96,"kind":1024,"name":"head","url":"classes/route.html#head","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":97,"kind":1024,"name":"delete","url":"classes/route.html#delete","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":98,"kind":1024,"name":"options","url":"classes/route.html#options","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":99,"kind":1024,"name":"trace","url":"classes/route.html#trace","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":100,"kind":1024,"name":"copy","url":"classes/route.html#copy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":101,"kind":1024,"name":"lock","url":"classes/route.html#lock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":102,"kind":1024,"name":"mkcol","url":"classes/route.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":103,"kind":1024,"name":"move","url":"classes/route.html#move","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":104,"kind":1024,"name":"purge","url":"classes/route.html#purge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":105,"kind":1024,"name":"propfind","url":"classes/route.html#propfind","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":106,"kind":1024,"name":"proppatch","url":"classes/route.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":107,"kind":1024,"name":"unlock","url":"classes/route.html#unlock","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":108,"kind":1024,"name":"report","url":"classes/route.html#report","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":109,"kind":1024,"name":"mkactivity","url":"classes/route.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":110,"kind":1024,"name":"checkout","url":"classes/route.html#checkout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":111,"kind":1024,"name":"merge","url":"classes/route.html#merge","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":112,"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":113,"kind":1024,"name":"notify","url":"classes/route.html#notify","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":114,"kind":1024,"name":"subscribe","url":"classes/route.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":115,"kind":1024,"name":"unsubscribe","url":"classes/route.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":116,"kind":1024,"name":"patch","url":"classes/route.html#patch","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":117,"kind":1024,"name":"search","url":"classes/route.html#search","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":118,"kind":1024,"name":"connect","url":"classes/route.html#connect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Route"},{"id":119,"kind":1024,"name":"_routes","url":"classes/route.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":120,"kind":1024,"name":"_prefix","url":"classes/route.html#_prefix","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":121,"kind":262144,"name":"routes","url":"classes/route.html#routes-1","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"Route"},{"id":122,"kind":512,"name":"constructor","url":"classes/route.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Route"},{"id":123,"kind":2048,"name":"_push","url":"classes/route.html#_push","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Route"},{"id":124,"kind":2048,"name":"any","url":"classes/route.html#any","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":125,"kind":2048,"name":"oneOf","url":"classes/route.html#oneof","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":126,"kind":2048,"name":"use","url":"classes/route.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Route"},{"id":127,"kind":256,"name":"MethodFunctions","url":"interfaces/route.methodfunctions.html","classes":"tsd-kind-interface tsd-parent-kind-class tsd-has-type-parameter","parent":"Route"},{"id":128,"kind":1024,"name":"get","url":"interfaces/route.methodfunctions.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":129,"kind":1024,"name":"post","url":"interfaces/route.methodfunctions.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":130,"kind":1024,"name":"put","url":"interfaces/route.methodfunctions.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":131,"kind":1024,"name":"head","url":"interfaces/route.methodfunctions.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":132,"kind":1024,"name":"delete","url":"interfaces/route.methodfunctions.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":133,"kind":1024,"name":"options","url":"interfaces/route.methodfunctions.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":134,"kind":1024,"name":"trace","url":"interfaces/route.methodfunctions.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":135,"kind":1024,"name":"copy","url":"interfaces/route.methodfunctions.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":136,"kind":1024,"name":"lock","url":"interfaces/route.methodfunctions.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":137,"kind":1024,"name":"mkcol","url":"interfaces/route.methodfunctions.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":138,"kind":1024,"name":"move","url":"interfaces/route.methodfunctions.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":139,"kind":1024,"name":"purge","url":"interfaces/route.methodfunctions.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":140,"kind":1024,"name":"propfind","url":"interfaces/route.methodfunctions.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":141,"kind":1024,"name":"proppatch","url":"interfaces/route.methodfunctions.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":142,"kind":1024,"name":"unlock","url":"interfaces/route.methodfunctions.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":143,"kind":1024,"name":"report","url":"interfaces/route.methodfunctions.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":144,"kind":1024,"name":"mkactivity","url":"interfaces/route.methodfunctions.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":145,"kind":1024,"name":"checkout","url":"interfaces/route.methodfunctions.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":146,"kind":1024,"name":"merge","url":"interfaces/route.methodfunctions.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":147,"kind":1024,"name":"m-search","url":"interfaces/route.methodfunctions.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":148,"kind":1024,"name":"notify","url":"interfaces/route.methodfunctions.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":149,"kind":1024,"name":"subscribe","url":"interfaces/route.methodfunctions.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":150,"kind":1024,"name":"unsubscribe","url":"interfaces/route.methodfunctions.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":151,"kind":1024,"name":"patch","url":"interfaces/route.methodfunctions.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":152,"kind":1024,"name":"search","url":"interfaces/route.methodfunctions.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":153,"kind":1024,"name":"connect","url":"interfaces/route.methodfunctions.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.MethodFunctions"},{"id":154,"kind":256,"name":"Routes","url":"interfaces/route.routes.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":155,"kind":1024,"name":"get","url":"interfaces/route.routes.html#get","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":156,"kind":1024,"name":"post","url":"interfaces/route.routes.html#post","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":157,"kind":1024,"name":"put","url":"interfaces/route.routes.html#put","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":158,"kind":1024,"name":"head","url":"interfaces/route.routes.html#head","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":159,"kind":1024,"name":"delete","url":"interfaces/route.routes.html#delete","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":160,"kind":1024,"name":"options","url":"interfaces/route.routes.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":161,"kind":1024,"name":"trace","url":"interfaces/route.routes.html#trace","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":162,"kind":1024,"name":"copy","url":"interfaces/route.routes.html#copy","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":163,"kind":1024,"name":"lock","url":"interfaces/route.routes.html#lock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":164,"kind":1024,"name":"mkcol","url":"interfaces/route.routes.html#mkcol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":165,"kind":1024,"name":"move","url":"interfaces/route.routes.html#move","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":166,"kind":1024,"name":"purge","url":"interfaces/route.routes.html#purge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":167,"kind":1024,"name":"propfind","url":"interfaces/route.routes.html#propfind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":168,"kind":1024,"name":"proppatch","url":"interfaces/route.routes.html#proppatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":169,"kind":1024,"name":"unlock","url":"interfaces/route.routes.html#unlock","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":170,"kind":1024,"name":"report","url":"interfaces/route.routes.html#report","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":171,"kind":1024,"name":"mkactivity","url":"interfaces/route.routes.html#mkactivity","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":172,"kind":1024,"name":"checkout","url":"interfaces/route.routes.html#checkout","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":173,"kind":1024,"name":"merge","url":"interfaces/route.routes.html#merge","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":174,"kind":1024,"name":"m-search","url":"interfaces/route.routes.html#m_search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":175,"kind":1024,"name":"notify","url":"interfaces/route.routes.html#notify","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":176,"kind":1024,"name":"subscribe","url":"interfaces/route.routes.html#subscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":177,"kind":1024,"name":"unsubscribe","url":"interfaces/route.routes.html#unsubscribe","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":178,"kind":1024,"name":"patch","url":"interfaces/route.routes.html#patch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":179,"kind":1024,"name":"search","url":"interfaces/route.routes.html#search","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":180,"kind":1024,"name":"connect","url":"interfaces/route.routes.html#connect","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.Routes"},{"id":181,"kind":256,"name":"RouteObject","url":"interfaces/route.routeobject.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":182,"kind":1024,"name":"path","url":"interfaces/route.routeobject.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":183,"kind":1024,"name":"options","url":"interfaces/route.routeobject.html#options","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":184,"kind":1024,"name":"controller","url":"interfaces/route.routeobject.html#controller","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteObject"},{"id":185,"kind":256,"name":"JsonSchemaProperties","url":"interfaces/route.jsonschemaproperties.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":186,"kind":256,"name":"JsonSchema","url":"interfaces/route.jsonschema.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":187,"kind":1024,"name":"title","url":"interfaces/route.jsonschema.html#title","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":188,"kind":1024,"name":"type","url":"interfaces/route.jsonschema.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":189,"kind":1024,"name":"properties","url":"interfaces/route.jsonschema.html#properties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":190,"kind":1024,"name":"patternProperties","url":"interfaces/route.jsonschema.html#patternproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":191,"kind":1024,"name":"additionalProperties","url":"interfaces/route.jsonschema.html#additionalproperties","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":192,"kind":1024,"name":"required","url":"interfaces/route.jsonschema.html#required","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.JsonSchema"},{"id":193,"kind":256,"name":"RouteOptions","url":"interfaces/route.routeoptions.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Route"},{"id":194,"kind":1024,"name":"schema","url":"interfaces/route.routeoptions.html#schema","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Route.RouteOptions"},{"id":195,"kind":4194304,"name":"Controller","url":"classes/route.html#controller","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":196,"kind":65536,"name":"__type","url":"classes/route.html#controller.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Route.Controller"},{"id":197,"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":198,"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":199,"kind":4194304,"name":"JsonSchemaType","url":"classes/route.html#jsonschematype","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Route"},{"id":200,"kind":128,"name":"Router","url":"classes/router.html","classes":"tsd-kind-class"},{"id":201,"kind":1024,"name":"_routes","url":"classes/router.html#_routes","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":202,"kind":512,"name":"constructor","url":"classes/router.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Router"},{"id":203,"kind":2048,"name":"_next","url":"classes/router.html#_next","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":204,"kind":1024,"name":"_safeNext","url":"classes/router.html#_safenext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Router"},{"id":205,"kind":2048,"name":"initialize","url":"classes/router.html#initialize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":206,"kind":2048,"name":"prepend","url":"classes/router.html#prepend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":207,"kind":2048,"name":"push","url":"classes/router.html#push","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":208,"kind":2048,"name":"route","url":"classes/router.html#route","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Router"},{"id":209,"kind":128,"name":"Engine","url":"classes/engine.html","classes":"tsd-kind-class"},{"id":210,"kind":1024,"name":"_path","url":"classes/engine.html#_path","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":211,"kind":1024,"name":"_ext","url":"classes/engine.html#_ext","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":212,"kind":1024,"name":"_handler","url":"classes/engine.html#_handler","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-protected","parent":"Engine"},{"id":213,"kind":65536,"name":"__type","url":"classes/engine.html#_handler.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Engine._handler"},{"id":214,"kind":512,"name":"constructor","url":"classes/engine.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Engine"},{"id":215,"kind":2048,"name":"render","url":"classes/engine.html#render","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Engine"},{"id":216,"kind":2048,"name":"responsePatch","url":"classes/engine.html#responsepatch","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Engine"},{"id":217,"kind":4194304,"name":"Callback","url":"classes/engine.html#callback","classes":"tsd-kind-type-alias tsd-parent-kind-class tsd-is-static","parent":"Engine"},{"id":218,"kind":65536,"name":"__type","url":"classes/engine.html#callback.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"Engine.Callback"},{"id":219,"kind":128,"name":"Foxify","url":"classes/foxify.html","classes":"tsd-kind-class"},{"id":220,"kind":2048,"name":"get","url":"classes/foxify.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":221,"kind":2048,"name":"post","url":"classes/foxify.html#post","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":222,"kind":2048,"name":"put","url":"classes/foxify.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":223,"kind":2048,"name":"head","url":"classes/foxify.html#head","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":224,"kind":2048,"name":"delete","url":"classes/foxify.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":225,"kind":2048,"name":"options","url":"classes/foxify.html#options-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":226,"kind":2048,"name":"trace","url":"classes/foxify.html#trace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":227,"kind":2048,"name":"copy","url":"classes/foxify.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":228,"kind":2048,"name":"lock","url":"classes/foxify.html#lock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":229,"kind":2048,"name":"mkcol","url":"classes/foxify.html#mkcol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":230,"kind":2048,"name":"move","url":"classes/foxify.html#move","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":231,"kind":2048,"name":"purge","url":"classes/foxify.html#purge","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":232,"kind":2048,"name":"propfind","url":"classes/foxify.html#propfind","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":233,"kind":2048,"name":"proppatch","url":"classes/foxify.html#proppatch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":234,"kind":2048,"name":"unlock","url":"classes/foxify.html#unlock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":235,"kind":2048,"name":"report","url":"classes/foxify.html#report","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":236,"kind":2048,"name":"mkactivity","url":"classes/foxify.html#mkactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":237,"kind":2048,"name":"checkout","url":"classes/foxify.html#checkout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":238,"kind":2048,"name":"merge","url":"classes/foxify.html#merge","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":239,"kind":2048,"name":"m-search","url":"classes/foxify.html#m_search","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":240,"kind":2048,"name":"notify","url":"classes/foxify.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":241,"kind":2048,"name":"subscribe","url":"classes/foxify.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":242,"kind":2048,"name":"unsubscribe","url":"classes/foxify.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":243,"kind":2048,"name":"patch","url":"classes/foxify.html#patch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":244,"kind":2048,"name":"search","url":"classes/foxify.html#search","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":245,"kind":2048,"name":"connect","url":"classes/foxify.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":246,"kind":2048,"name":"use","url":"classes/foxify.html#use","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":247,"kind":1024,"name":"constants","url":"classes/foxify.html#constants","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":248,"kind":1024,"name":"Route","url":"classes/foxify.html#route","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":249,"kind":1024,"name":"static","url":"classes/foxify.html#static","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":250,"kind":2048,"name":"dotenv","url":"classes/foxify.html#dotenv","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Foxify"},{"id":251,"kind":2097152,"name":"_options","url":"classes/foxify.html#_options","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":252,"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":253,"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":254,"kind":2097152,"name":"routing","url":"classes/foxify.html#_options.routing","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":255,"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":256,"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":257,"kind":2097152,"name":"json","url":"classes/foxify.html#_options.json","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._options"},{"id":258,"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":259,"kind":2097152,"name":"_settings","url":"classes/foxify.html#_settings","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":260,"kind":32,"name":"env","url":"classes/foxify.html#_settings.env","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":261,"kind":32,"name":"url","url":"classes/foxify.html#_settings.url","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":262,"kind":32,"name":"port","url":"classes/foxify.html#_settings.port","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":263,"kind":32,"name":"workers","url":"classes/foxify.html#_settings.workers","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":264,"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":265,"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":266,"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":267,"kind":2097152,"name":"query","url":"classes/foxify.html#_settings.query","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Foxify._settings"},{"id":268,"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":269,"kind":1024,"name":"_router","url":"classes/foxify.html#_router","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":270,"kind":1024,"name":"_view","url":"classes/foxify.html#_view","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":271,"kind":512,"name":"constructor","url":"classes/foxify.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Foxify"},{"id":272,"kind":2048,"name":"_set","url":"classes/foxify.html#_set","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":273,"kind":2048,"name":"_use","url":"classes/foxify.html#_use","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Foxify"},{"id":274,"kind":2048,"name":"enable","url":"classes/foxify.html#enable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":275,"kind":2048,"name":"disable","url":"classes/foxify.html#disable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":276,"kind":2048,"name":"enabled","url":"classes/foxify.html#enabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":277,"kind":2048,"name":"disabled","url":"classes/foxify.html#disabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":278,"kind":2048,"name":"set","url":"classes/foxify.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":279,"kind":2048,"name":"engine","url":"classes/foxify.html#engine","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":280,"kind":2048,"name":"start","url":"classes/foxify.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Foxify"},{"id":281,"kind":256,"name":"Options","url":"interfaces/foxify.options.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":282,"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":283,"kind":1024,"name":"content-length","url":"interfaces/foxify.options.html#content_length","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":284,"kind":1024,"name":"routing","url":"interfaces/foxify.options.html#routing","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":285,"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":286,"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":287,"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":288,"kind":1024,"name":"json","url":"interfaces/foxify.options.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Options"},{"id":289,"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":290,"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":291,"kind":256,"name":"Settings","url":"interfaces/foxify.settings.html","classes":"tsd-kind-interface tsd-parent-kind-class","parent":"Foxify"},{"id":292,"kind":1024,"name":"env","url":"interfaces/foxify.settings.html#env","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":293,"kind":1024,"name":"url","url":"interfaces/foxify.settings.html#url","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":294,"kind":1024,"name":"port","url":"interfaces/foxify.settings.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":295,"kind":1024,"name":"workers","url":"interfaces/foxify.settings.html#workers","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":296,"kind":1024,"name":"json","url":"interfaces/foxify.settings.html#json","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":297,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#json.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.json"},{"id":298,"kind":32,"name":"replacer","url":"interfaces/foxify.settings.html#json.__type.replacer","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":299,"kind":32,"name":"spaces","url":"interfaces/foxify.settings.html#json.__type.spaces","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.json.__type"},{"id":300,"kind":1024,"name":"query","url":"interfaces/foxify.settings.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Foxify.Settings"},{"id":301,"kind":65536,"name":"__type","url":"interfaces/foxify.settings.html#query.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"Foxify.Settings.query"},{"id":302,"kind":32,"name":"parser","url":"interfaces/foxify.settings.html#query.__type-1.parser","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"Foxify.Settings.query.__type"},{"id":303,"kind":2,"name":"\"http\"","url":"modules/_http_.html","classes":"tsd-kind-module tsd-is-not-exported"},{"id":304,"kind":256,"name":"IncomingMessage","url":"interfaces/_http_.incomingmessage.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":305,"kind":1024,"name":"res","url":"interfaces/_http_.incomingmessage.html#res","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":306,"kind":1024,"name":"path","url":"interfaces/_http_.incomingmessage.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":307,"kind":1024,"name":"hostname","url":"interfaces/_http_.incomingmessage.html#hostname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":308,"kind":1024,"name":"fresh","url":"interfaces/_http_.incomingmessage.html#fresh","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":309,"kind":1024,"name":"query","url":"interfaces/_http_.incomingmessage.html#query","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":310,"kind":2048,"name":"get","url":"interfaces/_http_.incomingmessage.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":311,"kind":2048,"name":"head","url":"interfaces/_http_.incomingmessage.html#head","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":312,"kind":2048,"name":"accepts","url":"interfaces/_http_.incomingmessage.html#accepts","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":313,"kind":2048,"name":"acceptsEncodings","url":"interfaces/_http_.incomingmessage.html#acceptsencodings","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":314,"kind":2048,"name":"acceptsCharsets","url":"interfaces/_http_.incomingmessage.html#acceptscharsets","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":315,"kind":2048,"name":"acceptsLanguages","url":"interfaces/_http_.incomingmessage.html#acceptslanguages","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":316,"kind":2048,"name":"range","url":"interfaces/_http_.incomingmessage.html#range","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":317,"kind":2048,"name":"is","url":"interfaces/_http_.incomingmessage.html#is","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":318,"kind":2048,"name":"next","url":"interfaces/_http_.incomingmessage.html#next","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".IncomingMessage"},{"id":319,"kind":64,"name":"patch","url":"globals.html#patch","classes":"tsd-kind-function"},{"id":320,"kind":256,"name":"ServerResponse","url":"interfaces/_http_.serverresponse.html","classes":"tsd-kind-interface tsd-parent-kind-module","parent":"\"http\""},{"id":321,"kind":1024,"name":"req","url":"interfaces/_http_.serverresponse.html#req","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":322,"kind":1024,"name":"type","url":"interfaces/_http_.serverresponse.html#type","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":323,"kind":2048,"name":"append","url":"interfaces/_http_.serverresponse.html#append","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":324,"kind":2048,"name":"attachment","url":"interfaces/_http_.serverresponse.html#attachment","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":325,"kind":2048,"name":"clearCookie","url":"interfaces/_http_.serverresponse.html#clearcookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":326,"kind":2048,"name":"contentType","url":"interfaces/_http_.serverresponse.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":327,"kind":2048,"name":"cookie","url":"interfaces/_http_.serverresponse.html#cookie","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":328,"kind":2048,"name":"download","url":"interfaces/_http_.serverresponse.html#download","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":329,"kind":2048,"name":"format","url":"interfaces/_http_.serverresponse.html#format","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":330,"kind":2048,"name":"links","url":"interfaces/_http_.serverresponse.html#links","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":331,"kind":2048,"name":"status","url":"interfaces/_http_.serverresponse.html#status","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":332,"kind":2048,"name":"send","url":"interfaces/_http_.serverresponse.html#send","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":333,"kind":2048,"name":"json","url":"interfaces/_http_.serverresponse.html#json","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":334,"kind":2048,"name":"jsonp","url":"interfaces/_http_.serverresponse.html#jsonp","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":335,"kind":2048,"name":"sendStatus","url":"interfaces/_http_.serverresponse.html#sendstatus","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":336,"kind":2048,"name":"sendFile","url":"interfaces/_http_.serverresponse.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":337,"kind":2048,"name":"set","url":"interfaces/_http_.serverresponse.html#set","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":338,"kind":2048,"name":"header","url":"interfaces/_http_.serverresponse.html#header","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":339,"kind":2048,"name":"get","url":"interfaces/_http_.serverresponse.html#get","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":340,"kind":2048,"name":"location","url":"interfaces/_http_.serverresponse.html#location","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":341,"kind":2048,"name":"redirect","url":"interfaces/_http_.serverresponse.html#redirect","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":342,"kind":2048,"name":"vary","url":"interfaces/_http_.serverresponse.html#vary","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":343,"kind":2048,"name":"render","url":"interfaces/_http_.serverresponse.html#render","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"\"http\".ServerResponse"},{"id":344,"kind":32,"name":"resolve","url":"globals.html#resolve","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":345,"kind":32,"name":"STATUS_CODES","url":"globals.html#status_codes","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":346,"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":347,"kind":32,"name":"charsetRegExp","url":"globals.html#charsetregexp","classes":"tsd-kind-variable tsd-is-not-exported"},{"id":348,"kind":64,"name":"setCharset","url":"globals.html#setcharset","classes":"tsd-kind-function tsd-is-not-exported"},{"id":349,"kind":64,"name":"stringify","url":"globals.html#stringify","classes":"tsd-kind-function tsd-is-private tsd-is-not-exported"},{"id":350,"kind":64,"name":"isAbsolute","url":"globals.html#isabsolute","classes":"tsd-kind-function tsd-is-not-exported"},{"id":351,"kind":64,"name":"sendfile","url":"globals.html#sendfile","classes":"tsd-kind-function tsd-is-not-exported"},{"id":352,"kind":64,"name":"acceptParams","url":"globals.html#acceptparams","classes":"tsd-kind-function tsd-is-not-exported"},{"id":353,"kind":64,"name":"normalizeType","url":"globals.html#normalizetype","classes":"tsd-kind-function tsd-is-not-exported"},{"id":354,"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":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 diff --git a/docs/classes/encapsulation.html b/docs/classes/encapsulation.html index 3cd08c6..d516f16 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

    @@ -265,6 +265,9 @@

    Returns void Router

  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/classes/engine.html b/docs/classes/engine.html index f973c9c..49c07ad 100644 --- a/docs/classes/engine.html +++ b/docs/classes/engine.html @@ -116,7 +116,7 @@

    Static Callback

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

    constructor

  • Parameters

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

    Protected _ext

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

    Protected _handler

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

    Protected _path

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

    render

  • Parameters

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

    Static responsePatch

  • Parameters

    @@ -357,6 +357,9 @@

    Returns ServerRes
  • Router
  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/classes/foxify.html b/docs/classes/foxify.html index 88dadc7..30da776 100644 --- a/docs/classes/foxify.html +++ b/docs/classes/foxify.html @@ -70,7 +70,12 @@

    Class Foxify

    Hierarchy

    @@ -96,6 +101,31 @@

    Properties

  • + +
    + +

    checkout

    + + +
    +
    + +

    connect

    + + +
    +
    + +

    copy

    + + +
    +
    + +

    delete

    + + +
    +
    + +

    head

    + + +
    +
    + +

    lock

    + + +
    +
    + +

    m-search

    + + +
    +
    + +

    merge

    + + +
    +
    + +

    mkactivity

    +
    mkactivity: MethodFunction<Foxify>
    + +
    +
    + +

    mkcol

    + + +
    +
    + +

    move

    + + +
    +
    + +

    notify

    + + +
    +
    + +

    options

    + + +
    +
    + +

    patch

    + + +
    +
    + +

    post

    + + +
    +
    + +

    propfind

    + + +
    +
    + +

    proppatch

    + + +
    +
    + +

    purge

    + + +
    +
    + +

    put

    + + +
    +
    + +

    report

    + + +
    +
    + +

    search

    + + +
    +
    + +

    subscribe

    + + +
    +
    + +

    trace

    + + +
    +
    + +

    unlock

    + + +
    +
    + +

    unsubscribe

    +
    unsubscribe: MethodFunction<Foxify>
    +
    @@ -201,7 +481,7 @@

    Static Route

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

    Static constants

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

    Static static

    static: any = serveStatic

    Methods

    -
    - -

    Private _set

    -
      -
    • _set(setting: string, value: any, object: object): void
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        setting: string
        -
      • -
      • -
        value: any
        -
      • -
      • -
        object: object
        -
          -
        • -
          [key: string]: any
          -
        • -
        -
      • -
      -

      Returns void

      -
    • -
    -
    -
    - -

    Private _use

    - - -
    -
    - -

    checkout

    -
      -
    • checkout(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    connect

    -
      -
    • connect(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    copy

    -
      -
    • copy(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    delete

    -
      -
    • delete(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    disable

    -
      -
    • disable(option: string): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        option: string
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    disabled

    -
      -
    • disabled(option: string): boolean
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        option: string
        -
      • -
      -

      Returns boolean

      -
    • -
    -
    -
    - -

    enable

    -
      -
    • enable(option: string): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        option: string
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    enabled

    -
      -
    • enabled(option: string): boolean
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        option: string
        -
      • -
      -

      Returns boolean

      -
    • -
    -
    -
    - -

    engine

    -
      -
    • engine(extension: string, path: string, handler: function): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        extension: string
        -
      • -
      • -
        path: string
        -
      • -
      • -
        handler: function
        -
          -
        • -
            -
          • (): void
          • -
          -
            -
          • -

            Returns void

            -
          • -
          -
        • -
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    get

    -
      -
    • get(setting: string): any
    • -
    • get(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        setting: string
        -
      • -
      -

      Returns any

      -
    • -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    head

    -
      -
    • head(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    lock

    -
      -
    • lock(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    m-search

    -
      -
    • m-search(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    merge

    -
      -
    • merge(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    mkactivity

    -
      -
    • mkactivity(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    mkcol

    -
      -
    • mkcol(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    move

    -
      -
    • move(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    notify

    -
      -
    • notify(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    options

    -
      -
    • options(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    patch

    -
      -
    • patch(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    post

    -
      -
    • post(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    propfind

    -
      -
    • propfind(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    proppatch

    -
      -
    • proppatch(path: string, ...controllers: Controller[]): this
    • -
    -
      -
    • - -

      Parameters

      -
        -
      • -
        path: string
        -
      • -
      • -
        Rest ...controllers: Controller[]
        -
      • -
      -

      Returns this

      -
    • -
    -
    -
    - -

    purge

    -
      -
    • purge(path: string, ...controllers: Controller[]): this
    • +
      + +

      Private _set

      +
        +
      • _set(setting: string, value: any, object: object): void
      • Parameters

        • -
          path: string
          +
          setting: string
        • -
          Rest ...controllers: Controller[]
          +
          value: any
          +
        • +
        • +
          object: object
          +
            +
          • +
            [key: string]: any
            +
          • +
        -

        Returns this

        +

        Returns void

      -
      - -

      put

      -
        -
      • put(path: string, ...controllers: Controller[]): this
      • +
        + +

        Private _use

        +
        - -

        report

        + +

        disable

          -
        • report(path: string, ...controllers: Controller[]): this
        • +
        • disable(option: string): this
        • Parameters

          • -
            path: string
            -
          • -
          • -
            Rest ...controllers: Controller[]
            +
            option: string

          Returns this

          @@ -986,51 +595,45 @@

          Returns this

        - -

        search

        + +

        disabled

          -
        • search(path: string, ...controllers: Controller[]): this
        • +
        • disabled(option: string): boolean
        • Parameters

          • -
            path: string
            -
          • -
          • -
            Rest ...controllers: Controller[]
            +
            option: string
          -

          Returns this

          +

          Returns boolean

        - -

        set

        + +

        enable

          -
        • set(setting: string, value: any): this
        • +
        • enable(option: string): this
        • Parameters

          • -
            setting: string
            -
          • -
          • -
            value: any
            +
            option: string

          Returns this

          @@ -1038,100 +641,124 @@

          Returns this

        - -

        start

        + +

        enabled

          -
        • start(callback?: undefined | function): void
        • +
        • enabled(option: string): boolean
        • Parameters

          • -
            Optional callback: undefined | function
            +
            option: string
          -

          Returns void

          +

          Returns boolean

        - -

        subscribe

        + +

        engine

          -
        • subscribe(path: string, ...controllers: Controller[]): this
        • +
        • engine(extension: string, path: string, handler: function): this
        • +
          +
          +

          handle view

          +
          +

          Parameters

            +
          • +
            extension: string
            +
            +

            view template file extension

            +
            +
          • path: string
            +
            +

            the directory containing view templates

            +
          • -
            Rest ...controllers: Controller[]
            +
            handler: function
            +
              +
            • +
                +
              • (): void
              • +
              +
                +
              • +

                Returns void

                +
              • +
              +
            • +

          Returns this

        -
        - -

        trace

        -
          -
        • trace(path: string, ...controllers: Controller[]): this
        • +
          + +

          get

          +
            +
          • get(setting: string): any
          - -

          unlock

          + +

          set

            -
          • unlock(path: string, ...controllers: Controller[]): this
          • +
          • set(setting: string, value: any): this
          • Parameters

            • -
              path: string
              +
              setting: string
            • -
              Rest ...controllers: Controller[]
              +
              value: any

            Returns this

            @@ -1139,28 +766,25 @@

            Returns this

          - -

          unsubscribe

          + +

          start

            -
          • unsubscribe(path: string, ...controllers: Controller[]): this
          • +
          • start(callback?: undefined | function): void
          • Parameters

            • -
              path: string
              -
            • -
            • -
              Rest ...controllers: Controller[]
              +
              Optional callback: undefined | function
            -

            Returns this

            +

            Returns void

          @@ -1176,7 +800,7 @@

          use

        • Parameters

          @@ -1190,7 +814,7 @@

          Returns this

          Parameters

          @@ -1204,7 +828,7 @@

          Returns this

          Parameters

          @@ -1233,7 +857,7 @@

          Static dotenv

        • Parameters

          @@ -1255,7 +879,7 @@

          Private _options

          _options: object
          @@ -1264,7 +888,17 @@

          content-length

          content-length: true = true
          +
          +
          + +

          https

          +
          https: false = false
          +
          @@ -1274,7 +908,7 @@

          x-powered-by

          x-powered-by: true = true
        @@ -1284,7 +918,7 @@

        json

        json: object
        @@ -1293,7 +927,7 @@

        escape

        escape: false = false
        @@ -1304,7 +938,7 @@

        routing

        routing: object
        @@ -1313,7 +947,7 @@

        sensitive

        sensitive: true = true
        @@ -1323,7 +957,7 @@

        strict

        strict: false = false
      @@ -1335,7 +969,7 @@

      Private _settings

      _settings: object
      @@ -1344,7 +978,7 @@

      env

      env: string = process.env.NODE_ENV || "production"
      @@ -1354,7 +988,7 @@

      port

      port: number = process.env.APP_PORT ? +process.env.APP_PORT : 3000
    @@ -1364,7 +998,7 @@

    url

    url: string = process.env.APP_URL || "localhost"
    @@ -1374,9 +1008,39 @@

    workers

    workers: number = process.env.WORKERS ? +process.env.WORKERS : os.cpus().length
    + +
    + +

    https

    +
    https: object
    + +
    + +

    cert

    +
    cert: undefined = undefined
    + +
    +
    + +

    key

    +
    key: undefined = undefined
    + +
    @@ -1384,7 +1048,7 @@

    json

    json: object
    @@ -1393,7 +1057,7 @@

    replacer

    replacer: undefined = undefined
    @@ -1403,7 +1067,7 @@

    spaces

    spaces: undefined = undefined
    @@ -1414,7 +1078,7 @@

    query

    query: object
    @@ -1423,7 +1087,7 @@

    parser

    parser: undefined = undefined
    @@ -1467,119 +1131,119 @@

    parser

  • _view
  • -
  • - Route -
  • -
  • - constants -
  • -
  • - static -
  • -
  • - _set -
  • -
  • - _use -
  • -
  • +
  • checkout
  • -
  • +
  • connect
  • -
  • +
  • copy
  • -
  • +
  • delete
  • -
  • - disable -
  • -
  • - disabled -
  • -
  • - enable -
  • -
  • - enabled -
  • -
  • - engine -
  • -
  • - get -
  • -
  • +
  • head
  • -
  • +
  • lock
  • -
  • +
  • m-search
  • -
  • +
  • merge
  • -
  • +
  • mkactivity
  • -
  • +
  • mkcol
  • -
  • +
  • move
  • -
  • +
  • notify
  • -
  • +
  • options
  • -
  • +
  • patch
  • -
  • +
  • post
  • -
  • +
  • propfind
  • -
  • +
  • proppatch
  • -
  • +
  • purge
  • -
  • +
  • put
  • -
  • +
  • report
  • -
  • +
  • search
  • +
  • + subscribe +
  • +
  • + trace +
  • +
  • + unlock +
  • +
  • + unsubscribe +
  • +
  • + Route +
  • +
  • + constants +
  • +
  • + static +
  • +
  • + _set +
  • +
  • + _use +
  • - set + disable
  • - start + disabled
  • - subscribe + enable
  • - trace + enabled
  • - unlock + engine +
  • +
  • + get
  • - unsubscribe + set +
  • +
  • + start
  • use @@ -1606,6 +1270,9 @@

    parser

  • Router
  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/classes/httpexception.html b/docs/classes/httpexception.html index ec8308b..65c7a6d 100644 --- a/docs/classes/httpexception.html +++ b/docs/classes/httpexception.html @@ -132,7 +132,7 @@

    constructor

  • Parameters

    @@ -146,7 +146,7 @@

    Returns

    Parameters

    @@ -163,7 +163,7 @@

    Returns

    Parameters

    @@ -180,7 +180,7 @@

    Returns

    Parameters

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

    code

    code: number
    @@ -228,7 +228,7 @@

    errors

    errors: object
    @@ -323,7 +323,7 @@

    handle

  • Parameters

    @@ -352,7 +352,7 @@

    Static handle

  • Parameters

    @@ -446,6 +446,9 @@

    Returns void Router

  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/classes/route.html b/docs/classes/route.html index 88b5ce9..045265f 100644 --- a/docs/classes/route.html +++ b/docs/classes/route.html @@ -171,7 +171,7 @@

    Static Controller

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

    Static JsonSchemaType<
    JsonSchemaType: "string" | "integer" | "number" | "array" | "object" | "boolean" | "null"
    @@ -233,7 +233,7 @@

    Static MethodFunction

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

    constructor

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

    Protected _prefix

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

    Protected _routes

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

    checkout

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

    connect

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

    copy

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

    delete

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

    get

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

    head

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

    lock

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

    m-search

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

    merge

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

    mkactivity

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

    mkcol

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

    move

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

    notify

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

    options

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

    patch

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

    post

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

    propfind

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

    proppatch

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

    purge

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

    put

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

    report

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

    search

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

    subscribe

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

    trace

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

    unlock

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

    unsubscribe

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

    routes

  • Returns Routes

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

    Protected _push

  • Parameters

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

    any

  • Parameters

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

    oneOf

  • Parameters

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

    use

  • Parameters

    @@ -914,6 +914,9 @@

    Returns this Router

  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/classes/router.html b/docs/classes/router.html index c77821e..76451df 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

    @@ -339,6 +339,9 @@

    Returns void
      +
    • + Server +
    • STATUS_CODES
    • diff --git a/docs/classes/server.html b/docs/classes/server.html new file mode 100644 index 0000000..8c13ece --- /dev/null +++ b/docs/classes/server.html @@ -0,0 +1,476 @@ + + + + + + Server | foxify + + + + + +
      +
      +
      +
      + +
      +
      + Options +
      +
      + All +
        +
      • Public
      • +
      • Public/Protected
      • +
      • All
      • +
      +
      + + + + + + +
      +
      + Menu +
      +
      +
      +
      +
      +
      + +

      Class Server

      +
      +
      +
      +
      +
      +
      +
      +

      Hierarchy

      +
        +
      • + Server +
      • +
      +
      +
      +

      Index

      +
      +
      +
      +

      Interfaces

      + +
      +
      +

      Type aliases

      + +
      +
      +

      Constructors

      + +
      +
      +

      Properties

      + +
      +
      +

      Methods

      + +
      +
      +
      +
      +
      +

      Type aliases

      +
      + +

      Static Listener

      +
      Listener: function
      + +
      +

      Type declaration

      +
        +
      • +
          +
        • (request: IncomingMessage, response: ServerResponse): void
        • +
        +
          +
        • +

          Parameters

          +
            +
          • +
            request: IncomingMessage
            +
          • +
          • +
            response: ServerResponse
            +
          • +
          +

          Returns void

          +
        • +
        +
      • +
      +
      +
      +
      +
      +

      Constructors

      +
      + +

      constructor

      + +
        +
      • + +

        Parameters

        + +

        Returns Server

        +
      • +
      +
      +
      +
      +

      Properties

      +
      + +

      Protected _host

      +
      _host: string
      + +
      +
      + +

      Private Optional _instance

      +
      _instance: Server | Server
      + +
      +
      + +

      Protected _port

      +
      _port: number
      + +
      +
      +
      +

      Methods

      +
      + +

      reload

      +
        +
      • reload(callback?: undefined | function): void
      • +
      +
        +
      • + +

        Parameters

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

        Returns void

        +
      • +
      +
      +
      + +

      start

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

        Parameters

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

        Returns void

        +
      • +
      +
      +
      + +

      stop

      +
        +
      • stop(callback?: undefined | function): void
      • +
      +
        +
      • + +

        Parameters

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

        Returns void

        +
      • +
      +
      +
      +
      + +
      +
      +
      +
      +

      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/globals.html b/docs/globals.html index ea94584..e0c02b3 100644 --- a/docs/globals.html +++ b/docs/globals.html @@ -83,6 +83,7 @@

      Classes

    • HttpException
    • Route
    • Router
    • +
    • Server
    @@ -128,7 +129,7 @@

    Const STATUS_CODES

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

    Const charsetRegExp

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

    Const resolve

    resolve: resolve = path.resolve
    @@ -166,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>"
    @@ -183,7 +184,7 @@

    Const acceptParams

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

    define

  • Parameters

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

    Const

    Parameters

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

    Const isAbsolute

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

    mixins

  • Parameters

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

    Const normalizeType

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

    Const normalizeTypes

  • @@ -422,7 +423,7 @@

    Const

    Parameters

    @@ -439,7 +440,7 @@

    Returns void

    Parameters

    @@ -465,7 +466,7 @@

    Const

    Parameters

    @@ -488,7 +489,7 @@

    Const sendfile

  • @@ -543,7 +544,7 @@

    Const setCharset

  • @@ -577,7 +578,7 @@

    Private
    @@ -614,7 +615,7 @@

    Const HTTP: object

    @@ -630,7 +631,7 @@

    ACCEPTED

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

    ALREADY_REPORTED

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

    BAD_GATEWAY

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

    BAD_REQUEST

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

    CONFLICT

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

    CONTINUE

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

    CREATED

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

    EARLY_HINTS

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

    EXPECTATION_FAILED

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

    FAILED_DEPENDENCY

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

    FORBIDEN

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

    FOUND

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

    GATEWAY_TIMEOUT

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

    GONE

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

    HTTP_VERSION_NOT_SUPPORTED

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

    IM_A_TEAPOT

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

    IM_USED

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

    INSUFFICIENT_STORAGE

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

    INTERNAL_SERVER_ERROR

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

    LENGTH_REQUIRED

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

    LOCKED

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

    LOOP_DETECTED

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

    METHOD_NOT_ALLOWED

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

    MISDIRECET_REQUEST

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

    MOVED_PERMANENTLY

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

    MULTIPLE_CHOICES

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

    MULTI_STATUS

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

    NETWORK_AUTHENTICATION_REQUIRED

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

    NON_AUTHORITATIVE_INFORMATION

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

    NOT_ACCEPTABLE

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

    NOT_EXTENDED

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

    NOT_FOUND

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

    NOT_IMPLEMENTED

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

    NOT_MODIFIED

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

    NO_CONTENT

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

    OK

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

    PARTIAL_CONTENT

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

    PAYLOAD_TOO_LARGE

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

    PAYMENT_REQUIRED

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

    PERMANENT_REDIRECT

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

    PRECONDITION_FAILED

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

    PRECONDITION_REQUIRED

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

    PROCESSING

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

    PROXY_AUTHENTICATION_REQUIRED

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

    RANGE_NOT_SATISFIABLE

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

    REQUEST_HEADER_FIELDS_TOO_LARGE

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

    REQUEST_TIMEOUT

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

    RESET_CONTENT

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

    SEE_OTHER

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

    SERVICE_UNAVAILABLE

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

    SWITCHING_PROTOCOL

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

    SWITCH_PROXY

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

    TEMPORARY_REDIRECT

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

    TOO_MANY_REQUESTS

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

    UNAUTHORIZED

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

    UNAVAILABLE_FOR_LEGAL_REASONS

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

    UNPROCESSABLE_ENTITY

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

    UNSUPPORTED_MEDIA_TYPE

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

    UPGRADE_REQUIRED

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

    URI_TOO_LONG

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

    USE_PROXY

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

    VARIANT_ALSO_NEGOTIATES

    VARIANT_ALSO_NEGOTIATES: 506 = 506 as 506
    @@ -1284,6 +1285,9 @@

    VARIANT_ALSO_NEGOTIATES

  • Router
  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/index.html b/docs/index.html index ea6a83e..4cb4ecf 100644 --- a/docs/index.html +++ b/docs/index.html @@ -252,6 +252,9 @@

    Support

  • Router
  • +
  • + Server +
  • STATUS_CODES
  • diff --git a/docs/interfaces/__global.nodejs.global.html b/docs/interfaces/__global.nodejs.global.html index 031895f..a798a70 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 9720a8b..e87af69 100644 --- a/docs/interfaces/_http_.incomingmessage.html +++ b/docs/interfaces/_http_.incomingmessage.html @@ -85,10 +85,13 @@

    Index

    Properties

    @@ -99,7 +102,6 @@

    Methods

  • acceptsEncodings
  • acceptsLanguages
  • get
  • -
  • head
  • is
  • next
  • range
  • @@ -116,7 +118,24 @@

    fresh

    fresh: boolean
    +
    +
    +

    Check if the request is fresh, aka + Last-Modified and/or the ETag + still match.

    +
    +
    +
    +
    + +

    head

    +
    head: get
    +
    @@ -126,9 +145,17 @@

    Optional hostname

    hostname: undefined | string
    +
    +
    +

    Parse the "Host" header field to a hostname.

    +
    +

    When the "trust proxy" setting trusts the socket + address, the "X-Forwarded-Host" header field will + be trusted.

    +
    @@ -136,9 +163,14 @@

    path

    path: string
    +
    +
    +

    Short-hand for url.parseUrl(req.url).pathname.

    +
    +
    @@ -146,7 +178,7 @@

    query

    query: any
    @@ -156,10 +188,42 @@

    res

    res: ServerResponse
    +
    + +

    stale

    +
    stale: boolean
    + +
    +
    +

    Check if the request is stale, aka + "Last-Modified" and / or the "ETag" for the + resource has changed.

    +
    +
    +
    +
    + +

    xhr

    +
    xhr: boolean
    + +
    +
    +

    Check if the request was an _XMLHttpRequest_.

    +
    +
    +

    Methods

    @@ -173,9 +237,52 @@

    accepts

  • +
    +
    +

    TODO: update docs.

    +
    +

    Check if the given type(s) is acceptable, returning + the best match when true, otherwise undefined, in which + case you should respond with 406 "Not Acceptable".

    +

    The type value may be a single MIME type string + such as "application/json", an extension name + such as "json", a comma-delimited list such as "json, html, text/plain", + an argument list such as "json", "html", "text/plain", + or an array ["json", "html", "text/plain"]. When a list + or array is given, the best match, if any is returned.

    +

    Example 1

    +
    // Accept: text/html
    +req.accepts("html");
    +// => "html"
    +
    +

    Example 2

    +
    // Accept: text/*, application/json
    +req.accepts("html");
    +// => "html"
    +req.accepts("text/html");
    +// => "text/html"
    +req.accepts("json, text");
    +// => "json"
    +req.accepts("application/json");
    +// => "application/json"
    +
    +

    Example 3

    +
    // Accept: text/*, application/json
    +req.accepts("image/png");
    +req.accepts("png");
    +// => undefined
    +
    +

    Example 4

    +
    // Accept: text/*;q=.5, application/json
    +req.accepts(["html", "json"]);
    +req.accepts("html", "json");
    +req.accepts("html, json");
    +// => "json"
    +
    +

    Parameters

    • @@ -201,9 +308,15 @@

      acceptsCharsets

    • +
      +
      +

      Check if the given charsets are acceptable, + otherwise you should respond with 406 "Not Acceptable".

      +
      +

      Parameters

      • @@ -227,9 +340,14 @@

        acceptsEncodings

      • +
        +
        +

        Check if the given encodings are accepted.

        +
        +

        Parameters

        • @@ -253,9 +371,15 @@

          acceptsLanguages

        • +
          +
          +

          Check if the given langs are acceptable, + otherwise you should respond with 406 "Not Acceptable".

          +
          +

          Parameters

          • @@ -279,37 +403,25 @@

            get

          • -

            Parameters

            -
              -
            • -
              name: string
              -
            • -
            -

            Returns string - | - string[] - | - undefined -

            -
          • -
          -
  • -
    - -

    head

    -
      -
    • head(name: string): string | string[] | undefined
    • -
    -
      -
    • - +
      +
      +

      Return request header.

      +
      +

      The Referrer header field is special-cased, + both Referrer and Referer are interchangeable.

      +

      Example 1

      +
      req.get("Content-Type"); // => "text/plain"
      +
      +

      Example 2

      +
      req.get("content-type"); // => "text/plain"
      +
      +

      Example 3

      +
      req.get("Something"); // => undefined
      +
      +

      Parameters

      • @@ -335,9 +447,33 @@

        is

      • +
        +
        +

        Check if the incoming request contains the "Content-Type" + header field, and it contains the give mime type.

        +
        +

        Example 1

        +
        // With Content-Type: text/html; charset=utf-8
        +req.is("html");
        +req.is("text/html");
        +req.is("text/*");
        +// => true
        +
        +

        Example 2

        +
        // When Content-Type is application/json
        +req.is("json");
        +req.is("application/json");
        +req.is("application/*");
        +// => true
        +
        +

        Example 3

        +
        req.is("html");
        +// => false
        +
        +

        Parameters

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

          next

        • Returns void

          @@ -380,9 +516,23 @@

          range

        • +
          +
          +

          Parse Range header field, capping to the given size.

          +
          +

          Unspecified ranges such as "0-" require knowledge of your resource length. In + the case of a byte range this is of course the total number of bytes. If the + Range header field is not given undefined is returned, -1 when unsatisfiable, + and -2 when syntactically invalid.

          +

          When ranges are returned, the array has a "type" property which is the type of + range that is required (most commonly, "bytes"). Each array element is an object + with a "start" and "end" property for the portion of the range.

          +

          NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" + should respond with 4 users when available, not 3.

          +

          Parameters

          • @@ -430,6 +580,9 @@

            Returns parseRang
          • fresh
          • +
          • + head +
          • hostname
          • @@ -442,6 +595,12 @@

            Returns parseRang
          • res
          • +
          • + stale +
          • +
          • + xhr +
          • accepts
          • @@ -457,9 +616,6 @@

            Returns parseRang
          • get
          • -
          • - head -
          • is
          • diff --git a/docs/interfaces/_http_.serverresponse.html b/docs/interfaces/_http_.serverresponse.html index afd156a..fb47da0 100644 --- a/docs/interfaces/_http_.serverresponse.html +++ b/docs/interfaces/_http_.serverresponse.html @@ -77,10 +77,6 @@

            Hierarchy

    -
    -

    Indexable

    -
    [key: string]: any
    -

    Index

    @@ -89,6 +85,7 @@

    Index

    Properties

    @@ -113,7 +110,6 @@

    Methods

  • send
  • sendFile
  • sendStatus
  • -
  • set
  • status
  • vary
  • @@ -129,7 +125,17 @@

    req

    req: IncomingMessage
    +
    +
    + +

    set

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

    type

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

    append

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

    attachment

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

    clearCookie

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

    contentType

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

    cookie

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

    download

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

    format

  • @@ -470,9 +476,14 @@

    get

  • +
    +
    +

    Get value for header field.

    +
    +

    Parameters

    • @@ -500,9 +511,24 @@

      header

    • +
      +
      +

      Set header field to val, or pass + an object of header fields.

      +
      +

      Example 1

      +
      res.set("Foo", ["bar", "baz"]);
      +
      +

      Example 2

      +
      res.set("Accept", "application/json");
      +
      +

      Example 3

      +
      res.set({ Accept: "text/plain", "X-API-Key": "tobi" });
      +
      +

      Parameters

      • @@ -513,6 +539,7 @@
        value: stringReturns this
        +

        for chaining

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

      json

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

      jsonp

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

      links

    • @@ -628,9 +655,25 @@

      location

    • +
      +
      +

      Set the location header to url.

      +
      +

      The given url can also be "back", which redirects + to the Referrer or Referer headers or "/".

      +

      Example 1

      +
      res.location("/foo/bar").;
      +
      +

      Example 2

      +
      res.location("http://example.com");
      +
      +

      Example 3

      +
      res.location("../login");
      +
      +

      Parameters

      • @@ -638,6 +681,7 @@
        url: string

      Returns this

      +

      for chaining

    @@ -652,9 +696,30 @@

    redirect

  • +
    +
    +

    Redirect to the given url with optional response status + defaulting to 302.

    +
    +

    The resulting url is determined by res.location(), so + it will play nicely with mounted apps, relative paths, + "back" etc.

    +

    Example 1

    +
    res.redirect("/foo/bar");
    +
    +

    Example 2

    +
    res.redirect("http://example.com");
    +
    +

    Example 3

    +
    res.redirect(301, "http://example.com");
    +
    +

    Example 4

    +
    res.redirect("../login"); // /blog/post/1 -> /blog/login
    +
    +

    Parameters

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

      Returns void

      Parameters

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

      render

    • Parameters

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

      send

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

      sendFile

    • @@ -824,9 +889,20 @@

      sendStatus

    • +
      +
      +

      Send given HTTP status code.

      +
      +

      Sets the response status to statusCode and the body of the + response to the standard description from node's http.STATUS_CODES + or the statusCode number if no description.

      +

      Example

      +
      res.sendStatus(200);
      +
      +

      Parameters

      • @@ -837,32 +913,6 @@

        Returns this

      -
      - -

      set

      -
        -
      • set(field: string | number | any, value: string | string[]): this
      • -
      -
        -
      • - -

        Parameters

        -
          -
        • -
          field: string | number | any
          -
        • -
        • -
          value: string | string[]
          -
        • -
        -

        Returns this

        -
      • -
      -

      status

      @@ -873,7 +923,7 @@

      status

    • @@ -904,9 +954,15 @@

      vary

    • +
      +
      +

      Add field to Vary. If already present in the Vary set, then + this call is simply ignored.

      +
      +

      Parameters

      • @@ -914,6 +970,7 @@
        field: stringReturns this
        +

        for chaining

    • @@ -949,6 +1006,9 @@

      Returns this req

    • +
    • + set +
    • type
    • @@ -1006,9 +1066,6 @@

      Returns this sendStatus

    • -
    • - set -
    • status
    • diff --git a/docs/interfaces/foxify.options.html b/docs/interfaces/foxify.options.html index 1b3bbb8..4573a91 100644 --- a/docs/interfaces/foxify.options.html +++ b/docs/interfaces/foxify.options.html @@ -85,6 +85,7 @@

      Index

      Properties

      @@ -136,7 +139,7 @@

      checkout

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

      connect

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

      copy

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

      delete

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

      get

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

      head

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

      lock

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

      m-search

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

      merge

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

      mkactivity

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

      mkcol

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

      move

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

      notify

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

      options

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

      patch

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

      post

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

      propfind

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

      proppatch

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

      purge

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

      put

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

      report

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

      search

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

      subscribe

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

      trace

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

      unlock

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

      unsubscribe

      unsubscribe: MethodFunction<T>
      @@ -509,6 +512,9 @@

      unsubscribe

    • Router
    • +
    • + Server +
    • STATUS_CODES
    • diff --git a/docs/interfaces/route.routeobject.html b/docs/interfaces/route.routeobject.html index 5b64202..ab8ed99 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
      @@ -174,6 +174,9 @@

      path

    • Router
    • +
    • + Server +
    • STATUS_CODES
    • diff --git a/docs/interfaces/route.routeoptions.html b/docs/interfaces/route.routeoptions.html index dcecaa5..d4f1f27 100644 --- a/docs/interfaces/route.routeoptions.html +++ b/docs/interfaces/route.routeoptions.html @@ -98,7 +98,7 @@

      Optional schema

      schema: JsonSchema
      @@ -146,6 +146,9 @@

      Optional schema

    • Router
    • +
    • + Server +
    • STATUS_CODES
    • diff --git a/docs/interfaces/route.routes.html b/docs/interfaces/route.routes.html index f46c304..a602155 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[]
      @@ -500,6 +500,9 @@

      unsubscribe

    • Router
    • +
    • + Server +
    • STATUS_CODES
    • diff --git a/docs/interfaces/server.options.html b/docs/interfaces/server.options.html new file mode 100644 index 0000000..57662ea --- /dev/null +++ b/docs/interfaces/server.options.html @@ -0,0 +1,368 @@ + + + + + + Options | foxify + + + + + +
      +
      +
      +
      + +
      +
      + Options +
      +
      + All +
        +
      • Public
      • +
      • Public/Protected
      • +
      • All
      • +
      +
      + + + + + + +
      +
      + Menu +
      +
      +
      +
      +
      +
      + +

      Interface Options

      +
      +
      +
      +
      +
      +
      +
      +

      Hierarchy

      +
        +
      • + Options +
      • +
      +
      +
      +

      Index

      +
      +
      +
      +

      Properties

      + +
      +
      +
      +
      +
      +

      Properties

      +
      + +

      Optional cert

      +
      cert: undefined | string
      + +
      +
      + +

      host

      +
      host: string
      + +
      +
      + +

      Optional key

      +
      key: undefined | string
      + +
      +
      + +

      port

      +
      port: number
      + +
      +
      + +

      protocol

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

      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 4376232..bc871c2 100644 --- a/docs/modules/__global.html +++ b/docs/modules/__global.html @@ -93,7 +93,7 @@

      Const HttpException

      HttpException: HttpException
      diff --git a/package.json b/package.json index ad129f5..6513617 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,6 @@ "clustering", "database", "model", - "mongodb", - "graphql", - "relation", - "relationships", "framework", "foxify" ], @@ -49,7 +45,7 @@ "prepare": "npm run lint && node scripts/prepare.js", "lint": "tslint -p tsconfig.json -c tslint.json --exclude '**/*.d.ts'", "typedoc": "typedoc --out docs/ --mode file --module commonjs --target ES6 --plugin typedoc-plugin-example-tag src/", - "doc": "npm run typedoc" + "doc": "node scripts/doc.js" }, "dependencies": { "@types/node": "^10.5.1", diff --git a/scripts/doc.js b/scripts/doc.js new file mode 100644 index 0000000..03f876f --- /dev/null +++ b/scripts/doc.js @@ -0,0 +1,24 @@ +#!/usr/bin/env node + +const path = require('path'); +const rimraf = require('rimraf'); +const fs = require('fs'); +const { + execSync, +} = require('child_process'); + +const startTime = new Date().getTime(); + +const cwd = path.join(__dirname, '..'); +const outDir = path.join(cwd, 'docs'); + +rimraf.sync(outDir); + +console.log(execSync("npm run typedoc", { + cwd, +}).toString()); + +fs.writeFileSync(path.join(outDir, "CNAME"), "foxify.js.org", "utf8"); +fs.writeFileSync(path.join(outDir, ".nojekyll"), "", "utf8"); + +console.log(`finished in ${new Date().getTime() - startTime}ms`); \ No newline at end of file diff --git a/scripts/prepare.js b/scripts/prepare.js index 5b0b1be..0d625e4 100755 --- a/scripts/prepare.js +++ b/scripts/prepare.js @@ -2,7 +2,9 @@ const path = require('path') const rimraf = require('rimraf') -const {spawn} = require('child_process') +const { + spawn +} = require('child_process') const fs = require('fs') const readdir = require('fs-readdir-recursive') const UglifyEs = require('uglify-es') @@ -38,4 +40,4 @@ tsc.on('close', (code) => { if (code === 0) console.log(`finished in ${new Date().getTime() - startTime}ms`) else console.error(`child process exited with code ${code}`) -}) +}) \ No newline at end of file diff --git a/src/Server.ts b/src/Server.ts new file mode 100644 index 0000000..88d2c98 --- /dev/null +++ b/src/Server.ts @@ -0,0 +1,81 @@ +import * as http from "http"; +import * as https from "https"; +import * as cluster from "cluster"; +import * as async from "async"; + +module Server { + export interface Options { + protocol: "http" | "https"; + host: string; + port: number; + workers: number; + key?: string; + cert?: string; + } + + export type Listener = (request: http.IncomingMessage, response: http.ServerResponse) => void; +} + +class Server { + private _instance?: http.Server | https.Server; + + protected _host: string; + protected _port: number; + + constructor(options: Server.Options, listener: Server.Listener) { + this._host = options.host; + this._port = options.port; + + const SERVER: any = options.protocol === "https" ? https : http; + + const OPTIONS: any = {}; + + if (options.protocol === "https") { + OPTIONS.cert = options.cert; + OPTIONS.key = options.key; + } + + const workers = options.workers; + + if (workers > 1) { + if (cluster.isMaster) { + for (let i = 0; i < workers; i++) + cluster.fork(); + + return this; + } + + /* no server fail at any cost ;) */ + process.on("uncaughtException", (err) => console.error("Caught exception: ", err)) + .on("unhandledRejection", (err) => console.warn("Caught rejection: ", err)); + + this._instance = SERVER.createServer(OPTIONS, listener); + + return this; + } + + /* no server fail at any cost ;) */ + process.on("uncaughtException", (err) => console.error("Caught exception: ", err)) + .on("unhandledRejection", (err) => console.warn("Caught rejection: ", err)); + + this._instance = SERVER.createServer(OPTIONS, listener); + } + + start(callback?: () => void) { + const instance = this._instance; + + if (instance) instance.listen(this._port, this._host, callback); + } + + stop(callback?: () => void) { + const instance = this._instance; + + if (instance) instance.close(callback); + } + + reload(callback?: () => void) { + this.stop(() => this.start(callback)); + } +} + +export = Server; diff --git a/src/index.ts b/src/index.ts index 911b035..bf95b78 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,4 @@ import "./bootstrap"; -import * as cluster from "cluster"; import * as http from "http"; import * as os from "os"; import * as serveStatic from "serve-static"; @@ -8,10 +7,12 @@ 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"; import { Engine } from "./view"; module Foxify { export interface Options { + https: boolean; "x-powered-by": boolean; "content-length": boolean; routing: { @@ -28,6 +29,10 @@ module Foxify { url: string; port: number; workers: number; + https: { + cert?: string, + key?: string, + }; json: { replacer?: (...args: any[]) => any, spaces?: number, @@ -38,35 +43,8 @@ module Foxify { } } -interface Foxify { +interface Foxify extends Route.MethodFunctions { get(setting: string): any; - get(path: string, ...controllers: Route.Controller[]): this; - - post(path: string, ...controllers: Route.Controller[]): this; - put(path: string, ...controllers: Route.Controller[]): this; - head(path: string, ...controllers: Route.Controller[]): this; - delete(path: string, ...controllers: Route.Controller[]): this; - options(path: string, ...controllers: Route.Controller[]): this; - trace(path: string, ...controllers: Route.Controller[]): this; - copy(path: string, ...controllers: Route.Controller[]): this; - lock(path: string, ...controllers: Route.Controller[]): this; - mkcol(path: string, ...controllers: Route.Controller[]): this; - move(path: string, ...controllers: Route.Controller[]): this; - purge(path: string, ...controllers: Route.Controller[]): this; - propfind(path: string, ...controllers: Route.Controller[]): this; - proppatch(path: string, ...controllers: Route.Controller[]): this; - unlock(path: string, ...controllers: Route.Controller[]): this; - report(path: string, ...controllers: Route.Controller[]): this; - mkactivity(path: string, ...controllers: Route.Controller[]): this; - checkout(path: string, ...controllers: Route.Controller[]): this; - merge(path: string, ...controllers: Route.Controller[]): this; - ["m-search"](path: string, ...controllers: Route.Controller[]): this; - notify(path: string, ...controllers: Route.Controller[]): this; - subscribe(path: string, ...controllers: Route.Controller[]): this; - unsubscribe(path: string, ...controllers: Route.Controller[]): this; - patch(path: string, ...controllers: Route.Controller[]): this; - search(path: string, ...controllers: Route.Controller[]): this; - connect(path: string, ...controllers: Route.Controller[]): this; use(route: Route): this; use(...controllers: Route.Controller[]): this; @@ -88,6 +66,7 @@ class Foxify { } private _options: Foxify.Options = { + https: false, ["x-powered-by"]: true, ["content-length"]: true, routing: { @@ -104,6 +83,10 @@ class Foxify { url: process.env.APP_URL || "localhost", port: process.env.APP_PORT ? +process.env.APP_PORT : 3000, workers: process.env.WORKERS ? +process.env.WORKERS : os.cpus().length, + https: { + cert: undefined, + key: undefined, + }, json: { replacer: undefined, spaces: undefined, @@ -169,7 +152,7 @@ class Foxify { throw new TypeError("Argument 'option' should be an string"); if (!utils.array.contains( - ["x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) + ["https", "x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) throw new TypeError(`Unknown option '${option}'`); this._set(option, true, this._options); @@ -182,7 +165,7 @@ class Foxify { throw new TypeError("Argument 'option' should be an string"); if (!utils.array.contains( - ["x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) + ["https", "x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) throw new TypeError(`Unknown option '${option}'`); this._set(option, false, this._options); @@ -195,7 +178,7 @@ class Foxify { throw new TypeError("Argument 'option' should be an string"); if (!utils.array.contains( - ["x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) + ["https", "x-powered-by", "content-length", "routing.strict", "routing.sensitive", "json.escape"], option)) throw new TypeError(`Unknown option '${option}'`); const keys = option.split("."); @@ -233,6 +216,14 @@ class Foxify { if (value < 1) throw new TypeError(`setting '${setting}' should be a positive number`); break; + case "https.cert": + if (!utils.string.isString(value)) + throw new TypeError(`setting '${setting}' should be an string`); + break; + case "https.key": + if (!utils.string.isString(value)) + throw new TypeError(`setting '${setting}' should be an string`); + break; case "json.spaces": if (value == null) break; if (!utils.number.isNumber(value)) @@ -263,7 +254,8 @@ class Foxify { throw new TypeError("'setting' should be an string"); if (!utils.array.contains( - ["env", "url", "port", "workers", "json.spaces", "json.replacer", "query.parser"], setting)) + ["env", "url", "port", "workers", "https.cert", "https.key", + "json.spaces", "json.replacer", "query.parser"], setting)) throw new TypeError(`Unknown setting '${setting}'`); const keys = setting.split("."); @@ -291,7 +283,11 @@ class Foxify { return this; } - /* handle view */ + /** + * handle view + * @param extension view template file extension + * @param path the directory containing view templates + */ engine(extension: string, path: string, handler: () => void) { this._view = new Engine(path, extension, handler); @@ -337,31 +333,19 @@ class Foxify { /* initialize the router with provided options and settings */ this._router.initialize(this); - /* apply workers */ - const workers = this.get("workers"); - if (workers > 1) { - if (cluster.isMaster) { - for (let i = 0; i < workers; i++) cluster.fork(); - - return; - } - - /* no server fail at any cost ;) */ - process.on("uncaughtException", (err) => console.error(`Caught exception (worker pid: ${process.pid}): `, err)) - .on("unhandledRejection", (err) => console.warn(`Caught rejection (worker pid: ${process.pid}): `, err)); - - http.createServer((req, res) => this._router.route(req, res)) - .listen(this.get("port"), this.get("url"), callback); - - return; - } - - /* no server fail at any cost ;) */ - process.on("uncaughtException", (err) => console.error("Caught exception: ", err)) - .on("unhandledRejection", (err) => console.warn("Caught rejection: ", err)); + const server = new Server( + { + 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"), + }, + (req, res) => this._router.route(req, res), + ); - http.createServer((req, res) => this._router.route(req, res)) - .listen(this.get("port"), this.get("url"), callback); + server.start(callback); } } diff --git a/src/patches/request.ts b/src/patches/request.ts index b3578a1..7ec7aad 100644 --- a/src/patches/request.ts +++ b/src/patches/request.ts @@ -17,204 +17,252 @@ declare module "http" { export interface IncomingMessage { res: http.ServerResponse; - path: string; + /** + * Check if the request is fresh, aka + * Last-Modified and/or the ETag + * still match. + */ + fresh: boolean; + /** + * Parse the "Host" header field to a hostname. + * + * When the "trust proxy" setting trusts the socket + * address, the "X-Forwarded-Host" header field will + * be trusted. + */ hostname?: string; - fresh: boolean; + /** + * Short-hand for `url.parseUrl(req.url).pathname`. + */ + path: string; query: any; - get(name: string): string | string[] | undefined; - head(name: string): string | string[] | undefined; + /** + * Check if the request is stale, aka + * "Last-Modified" and / or the "ETag" for the + * resource has changed. + */ + stale: boolean; + + /** + * Check if the request was an `_XMLHttpRequest_`. + */ + xhr: boolean; + + head: http.IncomingMessage["get"]; + + /** + * TODO: update docs. + * + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single MIME type string + * such as "application/json", an extension name + * such as "json", a comma-delimited list such as "json, html, text/plain", + * an argument list such as `"json", "html", "text/plain"`, + * or an array `["json", "html", "text/plain"]`. When a list + * or array is given, the _best_ match, if any is returned. + * + * @example + * // Accept: text/html + * req.accepts("html"); + * // => "html" + * @example + * // Accept: text/*, application/json + * req.accepts("html"); + * // => "html" + * req.accepts("text/html"); + * // => "text/html" + * req.accepts("json, text"); + * // => "json" + * req.accepts("application/json"); + * // => "application/json" + * @example + * // Accept: text/*, application/json + * req.accepts("image/png"); + * req.accepts("png"); + * // => undefined + * @example + * // Accept: text/*;q=.5, application/json + * req.accepts(["html", "json"]); + * req.accepts("html", "json"); + * req.accepts("html, json"); + * // => "json" + */ accepts(type: string[] | ArrayLike | string): string | string[] | false; - acceptsEncodings(encoding?: string[] | ArrayLike | string): string | string[]; + + /** + * Check if the given `charset`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + */ acceptsCharsets(charset?: string[] | ArrayLike | string): string | string[]; + + /** + * Check if the given `encoding`s are accepted. + */ + acceptsEncodings(encoding?: string[] | ArrayLike | string): string | string[]; + + /** + * Check if the given `lang`s are acceptable, + * otherwise you should respond with 406 "Not Acceptable". + */ acceptsLanguages(lang?: string[] | ArrayLike | string): string | string[]; - range(size: number, options?: parseRange.Options): parseRange.Result | parseRange.Ranges | undefined; + + /** + * Return request header. + * + * The `Referrer` header field is special-cased, + * both `Referrer` and `Referer` are interchangeable. + * + * @example + * req.get("Content-Type"); // => "text/plain" + * @example + * req.get("content-type"); // => "text/plain" + * @example + * req.get("Something"); // => undefined + */ + get(name: string): string | string[] | undefined; + + /** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains the give mime `type`. + * + * @example + * // With Content-Type: text/html; charset=utf-8 + * req.is("html"); + * req.is("text/html"); + * req.is("text/*"); + * // => true + * @example + * // When Content-Type is application/json + * req.is("json"); + * req.is("application/json"); + * req.is("application/*"); + * // => true + * @example + * req.is("html"); + * // => false + */ is(types?: string | string[]): string | false | null; next(): void; + + /** + * Parse Range header field, capping to the given `size`. + * + * Unspecified ranges such as "0-" require knowledge of your resource length. In + * the case of a byte range this is of course the total number of bytes. If the + * Range header field is not given `undefined` is returned, `-1` when unsatisfiable, + * and `-2` when syntactically invalid. + * + * When ranges are returned, the array has a "type" property which is the type of + * range that is required (most commonly, "bytes"). Each array element is an object + * with a "start" and "end" property for the portion of the range. + * + * NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" + * should respond with 4 users when available, not 3. + */ + range(size: number, options?: parseRange.Options): parseRange.Result | parseRange.Ranges | undefined; } } const patch = (req: typeof http.IncomingMessage, app: Foxify) => { - /** - * Return request header. - * - * The `Referrer` header field is special-cased, - * both `Referrer` and `Referer` are interchangeable. - * - * @memberof http.IncomingMessage - * @alias header - * @param {String} name - * @return {String} - * @example - * req.get("Content-Type"); // => "text/plain" - * - * req.get("content-type"); // => "text/plain" - * - * req.get("Something"); // => undefined - * - * // Aliased as `req.header()`. - */ - req.prototype.get = req.prototype.head = function (name) { - 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"); + utils.define(req.prototype, "get", "fresh", function (this: http.IncomingMessage) { + const method = this.method; + const res = this.res; + const status = res.statusCode; - const header = name.toLowerCase(); + // GET or HEAD for weak freshness validation only + if ("GET" !== method && "HEAD" !== method) return false; - switch (header) { - case "referer": - case "referrer": - return this.headers.referrer || this.headers.referer; - default: - return this.headers[header]; - } - }; + // 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; + }); + + utils.define(req.prototype, "get", "hostname", function (this: http.IncomingMessage) { + let host = this.get("X-Forwarded-Host"); + + if (!host) host = this.get("Host"); + + if (!host) return; + + // IPv6 literal support + const offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; + + const index = host.indexOf(":", offset); + + return index !== -1 ? host.substring(0, index) : host; + }); + + utils.define(req.prototype, "get", "path", function (this: http.IncomingMessage) { + const url = parseUrl(this); + + return url ? url.pathname : ""; + }); + + utils.define(req.prototype, "get", "stale", function (this: http.IncomingMessage) { + return !this.fresh; + }); + + utils.define(req.prototype, "get", "xhr", function (this: http.IncomingMessage) { + const val = this.get("X-Requested-With") || ""; + + return val.toLowerCase() === "xmlhttprequest"; + }); - /** - * TODO: update docs. - * - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single MIME type string - * such as "application/json", an extension name - * such as "json", a comma-delimited list such as "json, html, text/plain", - * an argument list such as `"json", "html", "text/plain"`, - * or an array `["json", "html", "text/plain"]`. When a list - * or array is given, the _best_ match, if any is returned. - * - * @param {String|Array} type[s] - * @return {String|Array|Boolean} - * @example - * - * // Accept: text/html - * req.accepts("html"); - * // => "html" - * - * // Accept: text/*, application/json - * req.accepts("html"); - * // => "html" - * req.accepts("text/html"); - * // => "text/html" - * req.accepts("json, text"); - * // => "json" - * req.accepts("application/json"); - * // => "application/json" - * - * // Accept: text/*, application/json - * req.accepts("image/png"); - * req.accepts("png"); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * req.accepts(["html", "json"]); - * req.accepts("html", "json"); - * req.accepts("html, json"); - * // => "json" - */ req.prototype.accepts = function () { const accept = accepts(this); return accept.types.apply(accept, arguments); }; - /** - * Check if the given `encoding`s are accepted. - * - * @param {String} ...encoding - * @return {String|Array} - */ - req.prototype.acceptsEncodings = function () { + req.prototype.acceptsCharsets = function () { const accept = accepts(this); - return accept.encodings.apply(accept, arguments); + return accept.charsets.apply(accept, arguments); }; - /** - * Check if the given `charset`s are acceptable, - * otherwise you should respond with 406 "Not Acceptable". - * - * @param {String} ...charset - * @return {String|Array} - */ - req.prototype.acceptsCharsets = function () { + req.prototype.acceptsEncodings = function () { const accept = accepts(this); - return accept.charsets.apply(accept, arguments); + return accept.encodings.apply(accept, arguments); }; - /** - * Check if the given `lang`s are acceptable, - * otherwise you should respond with 406 "Not Acceptable". - * - * @param {String} ...lang - * @return {String|Array} - */ req.prototype.acceptsLanguages = function () { const accept = accepts(this); return accept.languages.apply(accept, arguments); }; - /** - * Parse Range header field, capping to the given `size`. - * - * Unspecified ranges such as "0-" require knowledge of your resource length. In - * the case of a byte range this is of course the total number of bytes. If the - * Range header field is not given `undefined` is returned, `-1` when unsatisfiable, - * and `-2` when syntactically invalid. - * - * When ranges are returned, the array has a "type" property which is the type of - * range that is required (most commonly, "bytes"). Each array element is an object - * with a "start" and "end" property for the portion of the range. - * - * NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" - * should respond with 4 users when available, not 3. - * - * @param {Number} size - * @param {Object} [options] - * @return {Number|Array} - */ - req.prototype.range = function (size, options) { - let range = this.get("Range"); + req.prototype.get = req.prototype.head = function (name) { + if (!name) throw new TypeError("name argument is required to req.get/req.head"); - if (!range) return; + if (!utils.string.isString(name)) throw new TypeError("name must be a string to req.get/req.head"); - if (Array.isArray(range)) range = range.join(","); + const header = name.toLowerCase(); - return parseRange(size, range, options); + switch (header) { + case "referer": + case "referrer": + return this.headers.referrer || this.headers.referer; + default: + return this.headers[header]; + } }; - /** - * Check if the incoming request contains the "Content-Type" - * header field, and it contains the give mime `type`. - * - * Examples: - * - * // With Content-Type: text/html; charset=utf-8 - * req.is("html"); - * req.is("text/html"); - * req.is("text/*"); - * // => true - * - * // When Content-Type is application/json - * req.is("json"); - * req.is("application/json"); - * req.is("application/*"); - * // => true - * - * req.is("html"); - * // => false - * - * @param {String|Array} types... - * @return {String|false|null} - * @public - */ req.prototype.is = function (types) { // support flattened arguments @@ -229,155 +277,78 @@ const patch = (req: typeof http.IncomingMessage, app: Foxify) => { return typeIs(this, types); }; - /** - * Return the remote address from the trusted proxy. - * - * The is the remote address on the socket unless - * "trust proxy" is set. - * - * @return {String} - * @public - */ - // utils.define(req.prototype, "get", "ip", function(this: http.IncomingMessage) { - // let trust = this.app.get("trust proxy fn") - // - // return proxyAddr(this, trust) - // }) - - /** - * When "trust proxy" is set, trusted proxy addresses + client. - * - * For example if the value were "client, proxy1, proxy2" - * you would receive the array `["client", "proxy1", "proxy2"]` - * where "proxy2" is the furthest down-stream and "proxy1" and - * "proxy2" were trusted. - * - * @return {Array} - * @public - */ - utils.define(req.prototype, "get", "ips", function (this: http.IncomingMessage) { - // let trust = this.app.get("trust proxy fn") - // let addrs = proxyAddr.all(this, trust) - const addrs = proxyAddr.all(this); - - // reverse the order (to farthest -> closest) - // and remove socket address - return utils.array.initial(addrs.reverse()); - }); - - /** - * Return subdomains as an array. - * - * Subdomains are the dot-separated parts of the host before the main domain of - * the app. By default, the domain of the app is assumed to be the last two - * parts of the host. This can be changed by setting "subdomain offset". - * - * For example, if the domain is "tobi.ferrets.example.com": - * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. - * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. - * - * @return {Array} - * @public - */ - utils.define(req.prototype, "get", "subdomains", function (this: http.IncomingMessage) { - const hostname = this.hostname; - - if (!hostname) return []; - - // let offset = this.app.get("subdomain offset") - const subdomains = !isIP(hostname) ? hostname.split(".").reverse() : [hostname]; - - // return subdomains.slice(offset) - return subdomains; - }); - - /** - * Short-hand for `url.parseUrl(req.url).pathname`. - * - * @return {String} - * @public - */ - utils.define(req.prototype, "get", "path", function (this: http.IncomingMessage) { - const url = parseUrl(this); - - return url ? url.pathname : ""; - }); - - /** - * Parse the "Host" header field to a hostname. - * - * When the "trust proxy" setting trusts the socket - * address, the "X-Forwarded-Host" header field will - * be trusted. - * - * @return {String} - * @public - */ - utils.define(req.prototype, "get", "hostname", function (this: http.IncomingMessage) { - let host = this.get("X-Forwarded-Host"); - - if (!host) host = this.get("Host"); - - if (!host) return; - - // IPv6 literal support - const offset = host[0] === "[" ? host.indexOf("]") + 1 : 0; - - const index = host.indexOf(":", offset); - - return index !== -1 ? host.substring(0, index) : host; - }); - - /** - * Check if the request is fresh, aka - * Last-Modified and/or the ETag - * still match. - * - * @return {Boolean} - * @public - */ - utils.define(req.prototype, "get", "fresh", function (this: http.IncomingMessage) { - 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; + req.prototype.range = function (size, options) { + let range = this.get("Range"); - // 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"), - }); + if (!range) return; - return false; - }); + if (Array.isArray(range)) range = range.join(","); - /** - * Check if the request is stale, aka - * "Last-Modified" and / or the "ETag" for the - * resource has changed. - * - * @return {Boolean} - * @public - */ - utils.define(req.prototype, "get", "stale", function (this: http.IncomingMessage) { - return !this.fresh; - }); + return parseRange(size, range, options); + }; - /** - * Check if the request was an _XMLHttpRequest_. - * - * @return {Boolean} - * @public - */ - utils.define(req.prototype, "get", "xhr", function (this: http.IncomingMessage) { - const val = this.get("X-Requested-With") || ""; + // /** + // * Return the remote address from the trusted proxy. + // * + // * The is the remote address on the socket unless + // * "trust proxy" is set. + // * + // * @return {String} + // * @public + // */ + // utils.define(req.prototype, "get", "ip", function (this: http.IncomingMessage) { + // const trust = (this as any).app.get("trust proxy fn"); + + // return proxyAddr(this, trust); + // }); + + // /** + // * When "trust proxy" is set, trusted proxy addresses + client. + // * + // * For example if the value were "client, proxy1, proxy2" + // * you would receive the array `["client", "proxy1", "proxy2"]` + // * where "proxy2" is the furthest down-stream and "proxy1" and + // * "proxy2" were trusted. + // * + // * @return {Array} + // * @public + // */ + // utils.define(req.prototype, "get", "ips", function (this: http.IncomingMessage) { + // // let trust = this.app.get("trust proxy fn") + // // let addrs = proxyAddr.all(this, trust) + // const addrs = proxyAddr.all(this); + + // // reverse the order (to farthest -> closest) + // // and remove socket address + // return utils.array.initial(addrs.reverse()); + // }); + + // /** + // * Return subdomains as an array. + // * + // * Subdomains are the dot-separated parts of the host before the main domain of + // * the app. By default, the domain of the app is assumed to be the last two + // * parts of the host. This can be changed by setting "subdomain offset". + // * + // * For example, if the domain is "tobi.ferrets.example.com": + // * If "subdomain offset" is not set, req.subdomains is `["ferrets", "tobi"]`. + // * If "subdomain offset" is 3, req.subdomains is `["tobi"]`. + // * + // * @return {Array} + // * @public + // */ + // utils.define(req.prototype, "get", "subdomains", function (this: http.IncomingMessage) { + // const hostname = this.hostname; + + // if (!hostname) return []; + + // // let offset = this.app.get("subdomain offset") + // const subdomains = !isIP(hostname) ? hostname.split(".").reverse() : [hostname]; + + // // return subdomains.slice(offset) + // return subdomains; + // }); - return val.toLowerCase() === "xmlhttprequest"; - }); }; export = patch; diff --git a/src/patches/response.ts b/src/patches/response.ts index 215f408..212409d 100644 --- a/src/patches/response.ts +++ b/src/patches/response.ts @@ -16,12 +16,16 @@ import { Engine } from "../view"; declare module "http" { export interface ServerResponse { - [key: string]: any; - req: http.IncomingMessage; + set: http.ServerResponse["header"]; type: http.ServerResponse["contentType"]; + /** + * @hidden + */ + stringify?: any; + /** * Append additional header `field` with value `val`. * @@ -152,6 +156,41 @@ declare module "http" { */ format(format: object): this; + /** + * Get value for header `field`. + */ + get(field: string): string | number | string[] | undefined; + + /** + * Set header `field` to `val`, or pass + * an object of header fields. + * + * @returns for chaining + * @example + * res.set("Foo", ["bar", "baz"]); + * @example + * res.set("Accept", "application/json"); + * @example + * res.set({ Accept: "text/plain", "X-API-Key": "tobi" }); + */ + header(field: string | object, value: string | string[]): this; + + /** + * Send JSON response. + * + * @example + * res.json({ user: "tj" }); + */ + json(response: object, status?: number): this; + + /** + * Send JSON response with JSONP callback support. + * + * @example + * res.jsonp({ user: "tj" }); + */ + jsonp(response: object, status?: number): this; + /** * Set Link header field with the given links. * @@ -164,41 +203,54 @@ declare module "http" { links(links: object): this; /** - * Set response status code. + * Set the location header to `url`. * - * @example - * res.status(500); - */ - status(code: number): this; - - /** - * Send a response. + * The given `url` can also be "back", which redirects + * to the _Referrer_ or _Referer_ headers or "/". * + * @returns for chaining * @example - * res.send(Buffer.from("wahoo")); + * res.location("/foo/bar").; * @example - * res.send({ some: "json" }); + * res.location("http://example.com"); * @example - * res.send("

      some html

      "); + * res.location("../login"); */ - send(body: string | object | Buffer): this; + location(url: string): this; /** - * Send JSON response. + * Redirect to the given `url` with optional response `status` + * defaulting to 302. + * + * The resulting `url` is determined by `res.location()`, so + * it will play nicely with mounted apps, relative paths, + * `"back"` etc. * * @example - * res.json({ user: "tj" }); + * res.redirect("/foo/bar"); + * @example + * res.redirect("http://example.com"); + * @example + * res.redirect(301, "http://example.com"); + * @example + * res.redirect("../login"); // /blog/post/1 -> /blog/login */ - json(response: object, status?: number): this; + redirect(url: string): void; + redirect(code: number, url: string): void; + + render(view: string, options?: object, callback?: Engine.Callback): void; /** - * Send JSON response with JSONP callback support. + * Send a response. * * @example - * res.jsonp({ user: "tj" }); + * res.send(Buffer.from("wahoo")); + * @example + * res.send({ some: "json" }); + * @example + * res.send("

      some html

      "); */ - jsonp(response: object, status?: number): this; - sendStatus(statusCode: number): this; + send(body: string | object | Buffer): this; /** * Transfer the file at the given `path`. @@ -237,15 +289,34 @@ declare module "http" { * }); */ sendFile(path: string, options?: object | ((...args: any[]) => void), callback?: (...args: any[]) => void): void; - set(field: string | number | object, value: string | string[]): this; - header(field: string | object, value: string | string[]): this; - get(field: string): string | number | string[] | undefined; - location(url: string): this; - redirect(url: string): void; - redirect(code: number, url: string): void; - vary(field: string | string[]): this; - render(view: string, options?: object, callback?: Engine.Callback): void; + /** + * Send given HTTP status code. + * + * Sets the response status to `statusCode` and the body of the + * response to the standard description from node's http.STATUS_CODES + * or the statusCode number if no description. + * + * @example + * res.sendStatus(200); + */ + sendStatus(statusCode: number): this; + + /** + * Set response status code. + * + * @example + * res.status(500); + */ + status(code: number): this; + + /** + * Add `field` to Vary. If already present in the Vary set, then + * this call is simply ignored. + * + * @returns for chaining + */ + vary(field: string | string[]): this; } } @@ -631,6 +702,95 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { return this; }; + res.prototype.get = res.prototype.getHeader; + + res.prototype.header = res.prototype.set = function (field, val?) { + if (val) { + let value = Array.isArray(val) + ? val.map((v) => `${v}`) + : `${val}`; + + // 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 (!charsetRegExp.test(value)) { + const charset = (send.mime as any).charsets.lookup(value.split(";")[0]); + + if (charset) value += "; charset=" + charset.toLowerCase(); + } + } + + this.setHeader(field, value); + } else + for (const key in field) this.set(key, (field as { [key: string]: any })[key]); + + return this; + }; + + /* json options */ + const jsonOptions = { + escape: app.enabled("json.escape"), + spaces: app.get("json.spaces") || undefined, + replacer: app.get("json.replacer") || undefined, + }; + + res.prototype.json = function (obj, status?) { + let body; + + if (this.stringify) body = this.stringify(obj); + else body = stringify(obj, jsonOptions.replacer, jsonOptions.spaces, jsonOptions.escape); + + // content-type + // if (!this.get("Content-Type")) this.setHeader("Content-Type", "application/json") + this.setHeader("Content-Type", "application/json"); + + if (status) this.status(status); + + return this.send(body); + }; + + 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"); + } + + // fixup callback + if (Array.isArray(callback)) callback = callback[0]; + + // jsonp + if (utils.string.isString(callback) && callback.length !== 0) { + this.set("X-Content-Type-Options", "nosniff"); + this.set("Content-Type", "text/javascript"); + + // restrict callback charset + callback = callback.replace(/[^\[\]\w$.]/g, ""); + + // 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); + }; + res.prototype.links = function (links: { [key: string]: string }) { const link = `${this.get("Link") || ""}, `; @@ -642,10 +802,54 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { ); }; - res.prototype.status = function (code) { - this.statusCode = code; + res.prototype.location = function (url) { + let loc = url; - return this; + // "back" is an alias for the referrer + if (url === "back") loc = this.req.get("Referrer") || "/"; + + // set location + return this.set("Location", encodeUrl(loc)); + }; + + res.prototype.redirect = function (url: string | number) { + let address = url; + let body: string = ""; + let status = 302; + + // allow status / url + if (arguments.length === 2) { + status = arguments[0]; + address = arguments[1]; + } + + // 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); }; if (app.enabled("content-length")) @@ -740,69 +944,6 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { return this; }; - /* json options */ - const jsonOptions = { - escape: app.enabled("json.escape"), - spaces: app.get("json.spaces") || undefined, - replacer: app.get("json.replacer") || undefined, - }; - - res.prototype.json = function (obj, status?) { - let body; - - if (this.stringify) body = this.stringify(obj); - else body = stringify(obj, jsonOptions.replacer, jsonOptions.spaces, jsonOptions.escape); - - // content-type - // if (!this.get("Content-Type")) this.setHeader("Content-Type", "application/json") - this.setHeader("Content-Type", "application/json"); - - if (status) this.status(status); - - return this.send(body); - }; - - res.prototype.jsonp = function (obj, status) { - // settings - const app = this.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"); - } - - // fixup callback - if (Array.isArray(callback)) callback = callback[0]; - - // jsonp - if (utils.string.isString(callback) && callback.length !== 0) { - this.set("X-Content-Type-Options", "nosniff"); - this.set("Content-Type", "text/javascript"); - - // restrict callback charset - callback = callback.replace(/[^\[\]\w$.]/g, ""); - - // 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); - }; - res.prototype.sendFile = function (path, options?, callback?) { let done = callback; const req = this.req; @@ -835,20 +976,6 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { }); }; - /** - * Send given HTTP status code. - * - * Sets the response status to `statusCode` and the body of the - * response to the standard description from node's http.STATUS_CODES - * or the statusCode number if no description. - * - * Examples: - * - * res.sendStatus(200); - * - * @param {number} statusCode - * @public - */ res.prototype.sendStatus = function (statusCode) { const body = STATUS_CODES[statusCode] || `${statusCode}`; @@ -858,152 +985,18 @@ const patch = (res: typeof http.ServerResponse, app: Foxify) => { return this.send(body); }; - /** - * Set header `field` to `val`, or pass - * an object of header fields. - * - * Examples: - * - * res.set("Foo", ["bar", "baz"]); - * res.set("Accept", "application/json"); - * res.set({ Accept: "text/plain", "X-API-Key": "tobi" }); - * - * Aliased as `res.header()`. - * - * @param {String|Object} field - * @param {String|Array} val - * @return {http.ServerResponse} for chaining - * @public - */ - res.prototype.set = res.prototype.header = function (field, val?) { - if (val) { - let value = Array.isArray(val) - ? val.map((v) => `${v}`) - : `${val}`; - - // 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 (!charsetRegExp.test(value)) { - const charset = (send.mime as any).charsets.lookup(value.split(";")[0]); - - if (charset) value += "; charset=" + charset.toLowerCase(); - } - } - - this.setHeader(field, value); - } else - for (const key in field) this.set(key, (field as { [key: string]: any })[key]); + res.prototype.status = function (code) { + this.statusCode = code; return this; }; - /** - * Get value for header `field`. - * - * @param {String} field - * @return {String} - * @public - */ - res.prototype.get = res.prototype.getHeader; - - /** - * Set the location header to `url`. - * - * The given `url` can also be "back", which redirects - * to the _Referrer_ or _Referer_ headers or "/". - * - * Examples: - * - * res.location("/foo/bar").; - * res.location("http://example.com"); - * res.location("../login"); - * - * @param {String} url - * @return {http.ServerResponse} for chaining - * @public - */ - res.prototype.location = function (url) { - let loc = url; - - // "back" is an alias for the referrer - if (url === "back") loc = this.req.get("Referrer") || "/"; - - // set location - return this.set("Location", encodeUrl(loc)); - }; - - /** - * Redirect to the given `url` with optional response `status` - * defaulting to 302. - * - * The resulting `url` is determined by `res.location()`, so - * it will play nicely with mounted apps, relative paths, - * `"back"` etc. - * - * Examples: - * - * res.redirect("/foo/bar"); - * res.redirect("http://example.com"); - * res.redirect(301, "http://example.com"); - * res.redirect("../login"); // /blog/post/1 -> /blog/login - * - * @public - */ - res.prototype.redirect = function (url: string | number) { - let address = url; - let body: string = ""; - let status = 302; - - // allow status / url - if (arguments.length === 2) { - status = arguments[0]; - address = arguments[1]; - } - - // 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); - }; - - /** - * Add `field` to Vary. If already present in the Vary set, then - * this call is simply ignored. - * - * @param {Array|String} field - * @return {http.ServerResponse} for chaining - * @public - */ res.prototype.vary = function (field) { vary(this, field); return this; }; + }; export = patch;