gitextract_1tm1fzl_/ ├── .editorconfig ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── demo/ │ ├── chapter-1/ │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── chapter-2/ │ │ ├── README.md │ │ ├── all.js │ │ ├── get-set.js │ │ ├── index.js │ │ └── package.json │ ├── chapter-3/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── query.js │ ├── chapter-4/ │ │ ├── README.md │ │ ├── alias.js │ │ ├── email.js │ │ ├── enum.js │ │ ├── index.js │ │ ├── length.js │ │ ├── package.json │ │ └── password.js │ ├── chapter-5/ │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── phone.js │ │ └── regex.js │ └── chapter-6/ │ ├── README.md │ ├── config/ │ │ └── waterline/ │ │ ├── adapter.js │ │ ├── connections.js │ │ ├── databases/ │ │ │ ├── mongodb.js │ │ │ └── mysql.js │ │ └── index.js │ ├── config.js │ ├── handlers/ │ │ └── user/ │ │ ├── add.js │ │ └── index.js │ ├── index.js │ ├── models/ │ │ └── User.js │ └── package.json ├── docs/ │ ├── README.md │ ├── Session.md │ ├── progress.md │ └── use.md ├── package.json ├── ppt/ │ └── intro.md ├── src/ │ ├── Components/ │ │ ├── HTTP.ts │ │ ├── VBase.ts │ │ ├── VConfig.ts │ │ ├── VError.ts │ │ ├── VEvent.ts │ │ ├── VHTTPBase.ts │ │ ├── VMiddleware.ts │ │ ├── VModel.ts │ │ ├── VRouter.ts │ │ ├── VWebSocket.ts │ │ └── index.ts │ ├── DefinitionParsers/ │ │ ├── VFallbackDefinition.ts │ │ └── VPolicyDefinition.ts │ ├── MiddlewareParsers/ │ │ ├── VBody.ts │ │ ├── VCondition.ts │ │ ├── VFallback.ts │ │ ├── VFile.ts │ │ ├── VLimitation.ts │ │ ├── VPager.ts │ │ ├── VPolicy.ts │ │ ├── VSession.ts │ │ ├── VValidator.ts │ │ └── index.ts │ ├── Templates/ │ │ ├── Filter.ts │ │ └── VTemplate.ts │ ├── VDefinition.ts │ ├── VEvent.ts │ ├── VHandler.ts │ ├── VService.ts │ ├── VWSServer.ts │ └── index.ts ├── test/ │ ├── Components/ │ │ ├── VBase.test.ts │ │ ├── VCondition.test.ts │ │ ├── VConfig.test.ts │ │ ├── VError.test.ts │ │ ├── VFallback.test.ts │ │ ├── VHTTPBase.test.ts │ │ ├── VMiddleware.test.ts │ │ ├── VPager.test.ts │ │ ├── VPolicy.test.ts │ │ ├── VRouter.test.ts │ │ └── VValidator.test.ts │ ├── VEvent.test.ts │ ├── VFailureDefinition.test.ts │ ├── VFile.test.ts │ ├── VHandler.test.ts │ ├── VModel.prepare.test.ts │ ├── VService.test.ts │ ├── VSession.test.ts │ ├── VTemplate.test.ts │ ├── bodies.test.ts │ ├── config.test.ts │ ├── data/ │ │ ├── component/ │ │ │ ├── conditions/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── configs/ │ │ │ │ └── test.js │ │ │ ├── errors/ │ │ │ │ ├── dir/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── no │ │ │ │ └── vig.js │ │ │ ├── events/ │ │ │ │ ├── hello.ts │ │ │ │ └── send.ts │ │ │ ├── fallbacks/ │ │ │ │ ├── condition.js │ │ │ │ ├── fuck.js │ │ │ │ ├── policy.js │ │ │ │ └── validation.js │ │ │ ├── handlers │ │ │ ├── middlewares/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── models/ │ │ │ │ ├── Pet.js │ │ │ │ └── User.js │ │ │ ├── pagers/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── policies/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── routers/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ └── validators/ │ │ │ ├── delete.js │ │ │ ├── get.js │ │ │ ├── options.js │ │ │ ├── post.js │ │ │ └── put.js │ │ ├── component.bodies/ │ │ │ ├── asyncs/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── bodies/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── routers/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ └── sessions/ │ │ │ ├── get.ts │ │ │ └── put.ts │ │ ├── component.inheritance/ │ │ │ ├── configs/ │ │ │ │ └── upload.ts │ │ │ ├── handlers/ │ │ │ │ └── send/ │ │ │ │ └── handlers/ │ │ │ │ ├── one/ │ │ │ │ │ ├── configs/ │ │ │ │ │ │ └── one.ts │ │ │ │ │ ├── routers/ │ │ │ │ │ │ └── get.ts │ │ │ │ │ └── urls.ts │ │ │ │ └── third/ │ │ │ │ ├── configs/ │ │ │ │ │ └── third.ts │ │ │ │ ├── routers/ │ │ │ │ │ └── get.ts │ │ │ │ └── urls.ts │ │ │ ├── middlewares/ │ │ │ │ ├── configs/ │ │ │ │ │ └── mad.ts │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ └── routers/ │ │ │ ├── fuck.js │ │ │ ├── get.ts │ │ │ ├── post.ts │ │ │ └── put.js │ │ ├── component.middleware/ │ │ │ ├── configs/ │ │ │ │ └── upload.ts │ │ │ ├── middlewares/ │ │ │ │ ├── delete.ts │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ └── routers/ │ │ │ ├── fuck.js │ │ │ ├── get.ts │ │ │ ├── post.ts │ │ │ └── put.js │ │ ├── component.middleware.all/ │ │ │ ├── middlewares/ │ │ │ │ ├── all.ts │ │ │ │ └── fuck.js │ │ │ └── routers/ │ │ │ ├── all.js │ │ │ └── fuck.js │ │ ├── component.models/ │ │ │ ├── conditions/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── configs/ │ │ │ │ └── test.js │ │ │ ├── errors/ │ │ │ │ ├── dir/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── no │ │ │ │ └── vig.js │ │ │ ├── events/ │ │ │ │ ├── hello.ts │ │ │ │ └── send.ts │ │ │ ├── fallbacks/ │ │ │ │ ├── condition.js │ │ │ │ ├── fuck.js │ │ │ │ ├── policy.js │ │ │ │ └── validation.js │ │ │ ├── middlewares/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── models/ │ │ │ │ ├── Pet.js │ │ │ │ └── User.js │ │ │ ├── pagers/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── policies/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── routers/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ └── validators/ │ │ │ ├── delete.js │ │ │ ├── get.js │ │ │ ├── options.js │ │ │ ├── post.js │ │ │ └── put.js │ │ ├── component.nomethod/ │ │ │ └── routers/ │ │ │ └── all.js │ │ ├── component.policies/ │ │ │ ├── definitions/ │ │ │ │ ├── fallbacks/ │ │ │ │ │ └── ok.ts │ │ │ │ └── policies/ │ │ │ │ ├── fail.ts │ │ │ │ ├── ok.ts │ │ │ │ └── test.ts │ │ │ ├── fallbacks/ │ │ │ │ └── policy.js │ │ │ ├── policies/ │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ └── routers/ │ │ │ ├── get.js │ │ │ ├── post.js │ │ │ └── put.js │ │ ├── component.sessions/ │ │ │ ├── routers/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── sessions/ │ │ │ │ └── all.ts │ │ │ └── urls.ts │ │ ├── component.templates/ │ │ │ ├── configs/ │ │ │ │ └── test.ts │ │ │ ├── handlers/ │ │ │ │ ├── a.ts │ │ │ │ └── send/ │ │ │ │ ├── handlers/ │ │ │ │ │ └── send/ │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ └── send/ │ │ │ │ │ │ ├── routers/ │ │ │ │ │ │ │ └── get.ts │ │ │ │ │ │ └── urls.ts │ │ │ │ │ ├── routers/ │ │ │ │ │ │ └── get.ts │ │ │ │ │ └── urls.ts │ │ │ │ ├── prefix.ts │ │ │ │ ├── routers/ │ │ │ │ │ └── get.ts │ │ │ │ ├── templates/ │ │ │ │ │ └── views/ │ │ │ │ │ └── h2.html │ │ │ │ └── urls.ts │ │ │ ├── middlewares/ │ │ │ │ ├── fuck.ts │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.ts │ │ │ ├── pagers/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── policies/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── routers/ │ │ │ │ ├── delete.ts │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── templates/ │ │ │ │ ├── filters/ │ │ │ │ │ └── name.js │ │ │ │ └── views/ │ │ │ │ └── layout.html │ │ │ └── urls.ts │ │ ├── component.urls/ │ │ │ ├── conditions/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── configs/ │ │ │ │ └── test.js │ │ │ ├── errors/ │ │ │ │ ├── dir/ │ │ │ │ │ └── .gitkeep │ │ │ │ ├── no │ │ │ │ └── vig.js │ │ │ ├── events/ │ │ │ │ ├── hello.ts │ │ │ │ └── send.ts │ │ │ ├── fallbacks/ │ │ │ │ ├── condition.js │ │ │ │ ├── fuck.js │ │ │ │ ├── policy.js │ │ │ │ └── validation.js │ │ │ ├── handlers/ │ │ │ │ ├── a.ts │ │ │ │ └── send/ │ │ │ │ ├── handlers/ │ │ │ │ │ └── send/ │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ └── send/ │ │ │ │ │ │ ├── routers/ │ │ │ │ │ │ │ └── get.ts │ │ │ │ │ │ └── urls.ts │ │ │ │ │ ├── routers/ │ │ │ │ │ │ └── get.ts │ │ │ │ │ └── urls.ts │ │ │ │ ├── routers/ │ │ │ │ │ └── get.ts │ │ │ │ └── urls.ts │ │ │ ├── middlewares/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── models/ │ │ │ │ ├── Pet.js │ │ │ │ └── User.js │ │ │ ├── pagers/ │ │ │ │ ├── get.ts │ │ │ │ └── post.ts │ │ │ ├── policies/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── prefix.ts │ │ │ ├── routers/ │ │ │ │ ├── delete.ts │ │ │ │ ├── fuck.js │ │ │ │ ├── get.js │ │ │ │ ├── post.js │ │ │ │ └── put.js │ │ │ ├── templates/ │ │ │ │ ├── filters/ │ │ │ │ │ └── name.ts │ │ │ │ └── views/ │ │ │ │ └── layout.html │ │ │ ├── urls.ts │ │ │ └── validators/ │ │ │ ├── delete.js │ │ │ ├── get.js │ │ │ ├── options.js │ │ │ ├── post.js │ │ │ └── put.js │ │ ├── component.websockets/ │ │ │ ├── configs/ │ │ │ │ ├── session.ts │ │ │ │ └── upload.ts │ │ │ ├── routers/ │ │ │ │ ├── fuck.js │ │ │ │ ├── get.ts │ │ │ │ ├── post.ts │ │ │ │ └── put.js │ │ │ ├── sessions/ │ │ │ │ └── all.ts │ │ │ └── websockets/ │ │ │ ├── broadcast.ts │ │ │ ├── enter.ts │ │ │ ├── false.ts │ │ │ ├── get.ts │ │ │ ├── leave.ts │ │ │ ├── post.ts │ │ │ ├── put.ts │ │ │ └── user.ts │ │ ├── configs/ │ │ │ └── test.js │ │ ├── errors/ │ │ │ ├── dir/ │ │ │ │ └── .gitkeep │ │ │ ├── no │ │ │ └── vig.js │ │ ├── errorsHandlers.ts │ │ ├── eventsHandlers.ts │ │ ├── fallbacks/ │ │ │ ├── ok.js │ │ │ └── test.js │ │ ├── fixtures/ │ │ │ ├── events.js │ │ │ └── events.once.js │ │ ├── models/ │ │ │ ├── Pet.js │ │ │ └── User.js │ │ ├── nomethodHandlers.ts │ │ ├── nourlsHandlers.ts │ │ ├── policies/ │ │ │ ├── ok.ts │ │ │ └── test.ts │ │ ├── policiesHandler.ts │ │ ├── prefixHandlers.ts │ │ ├── routersHandler.ts │ │ ├── uploader/ │ │ │ ├── a.txt │ │ │ └── b.txt │ │ ├── uploadersHandlers.ts │ │ └── validationsHandlers.ts │ ├── error.test.ts │ ├── handlers.test.ts │ ├── index.test.ts │ ├── inheritance.test.ts │ ├── middlewares.test.ts │ ├── nomethod.test.ts │ ├── pager.test.ts │ ├── policies.test.ts │ ├── prefix.test.ts │ ├── typings.d.test.ts │ └── validations.test.ts ├── tsconfig.json └── tslint.json