jimpex 7.0.2 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -0
- package/LICENSE +1 -1
- package/README.md +447 -435
- package/dist/app/index.d.mts +14 -0
- package/dist/app/index.d.ts +14 -0
- package/dist/app/index.js +23 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/jimpex.d.mts +14 -0
- package/dist/app/jimpex.d.ts +14 -0
- package/dist/app/jimpex.js +665 -0
- package/dist/app/jimpex.js.map +1 -0
- package/dist/controllers/common/config.d.mts +79 -0
- package/dist/controllers/common/config.d.ts +79 -0
- package/dist/controllers/common/config.js +107 -0
- package/dist/controllers/common/config.js.map +1 -0
- package/dist/controllers/common/health.d.mts +83 -0
- package/dist/controllers/common/health.d.ts +83 -0
- package/dist/controllers/common/health.js +115 -0
- package/dist/controllers/common/health.js.map +1 -0
- package/dist/controllers/common/index.d.mts +21 -0
- package/dist/controllers/common/index.d.ts +21 -0
- package/dist/controllers/common/index.js +27 -0
- package/dist/controllers/common/index.js.map +1 -0
- package/dist/controllers/common/statics.d.mts +215 -0
- package/dist/controllers/common/statics.d.ts +215 -0
- package/dist/controllers/common/statics.js +253 -0
- package/dist/controllers/common/statics.js.map +1 -0
- package/dist/controllers/index.d.mts +24 -0
- package/dist/controllers/index.d.ts +24 -0
- package/dist/controllers/index.js +25 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/utils/gateway.d.mts +725 -0
- package/dist/controllers/utils/gateway.d.ts +725 -0
- package/dist/controllers/utils/gateway.js +577 -0
- package/dist/controllers/utils/gateway.js.map +1 -0
- package/dist/controllers/utils/index.d.mts +17 -0
- package/dist/controllers/utils/index.d.ts +17 -0
- package/dist/controllers/utils/index.js +23 -0
- package/dist/controllers/utils/index.js.map +1 -0
- package/dist/esm/app/index.js +2 -0
- package/dist/esm/app/index.js.map +1 -0
- package/dist/esm/app/jimpex.js +636 -0
- package/dist/esm/app/jimpex.js.map +1 -0
- package/dist/esm/chunk-2B2CG5KL.js +11 -0
- package/dist/esm/chunk-2B2CG5KL.js.map +1 -0
- package/dist/esm/controllers/common/config.js +80 -0
- package/dist/esm/controllers/common/config.js.map +1 -0
- package/dist/esm/controllers/common/health.js +88 -0
- package/dist/esm/controllers/common/health.js.map +1 -0
- package/dist/esm/controllers/common/index.js +4 -0
- package/dist/esm/controllers/common/index.js.map +1 -0
- package/dist/esm/controllers/common/statics.js +220 -0
- package/dist/esm/controllers/common/statics.js.map +1 -0
- package/dist/esm/controllers/index.js +3 -0
- package/dist/esm/controllers/index.js.map +1 -0
- package/dist/esm/controllers/utils/gateway.js +556 -0
- package/dist/esm/controllers/utils/gateway.js.map +1 -0
- package/dist/esm/controllers/utils/index.js +2 -0
- package/dist/esm/controllers/utils/index.js.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/middlewares/common/errorHandler.js +116 -0
- package/dist/esm/middlewares/common/errorHandler.js.map +1 -0
- package/dist/esm/middlewares/common/forceHTTPS.js +53 -0
- package/dist/esm/middlewares/common/forceHTTPS.js.map +1 -0
- package/dist/esm/middlewares/common/hsts.js +74 -0
- package/dist/esm/middlewares/common/hsts.js.map +1 -0
- package/dist/esm/middlewares/common/index.js +4 -0
- package/dist/esm/middlewares/common/index.js.map +1 -0
- package/dist/esm/middlewares/html/fastHTML.js +158 -0
- package/dist/esm/middlewares/html/fastHTML.js.map +1 -0
- package/dist/esm/middlewares/html/index.js +3 -0
- package/dist/esm/middlewares/html/index.js.map +1 -0
- package/dist/esm/middlewares/html/showHTML.js +100 -0
- package/dist/esm/middlewares/html/showHTML.js.map +1 -0
- package/dist/esm/middlewares/index.js +4 -0
- package/dist/esm/middlewares/index.js.map +1 -0
- package/dist/esm/middlewares/utils/index.js +2 -0
- package/dist/esm/middlewares/utils/index.js.map +1 -0
- package/dist/esm/middlewares/utils/versionValidator.js +135 -0
- package/dist/esm/middlewares/utils/versionValidator.js.map +1 -0
- package/dist/esm/services/common/appError.js +98 -0
- package/dist/esm/services/common/appError.js.map +1 -0
- package/dist/esm/services/common/httpError.js +28 -0
- package/dist/esm/services/common/httpError.js.map +1 -0
- package/dist/esm/services/common/index.js +17 -0
- package/dist/esm/services/common/index.js.map +1 -0
- package/dist/esm/services/common/sendFile.js +27 -0
- package/dist/esm/services/common/sendFile.js.map +1 -0
- package/dist/esm/services/frontend/frontendFs.js +66 -0
- package/dist/esm/services/frontend/frontendFs.js.map +1 -0
- package/dist/esm/services/frontend/index.js +11 -0
- package/dist/esm/services/frontend/index.js.map +1 -0
- package/dist/esm/services/html/htmlGenerator.js +194 -0
- package/dist/esm/services/html/htmlGenerator.js.map +1 -0
- package/dist/esm/services/html/index.js +11 -0
- package/dist/esm/services/html/index.js.map +1 -0
- package/dist/esm/services/http/apiClient.js +97 -0
- package/dist/esm/services/http/apiClient.js.map +1 -0
- package/dist/esm/services/http/http.js +174 -0
- package/dist/esm/services/http/http.js.map +1 -0
- package/dist/esm/services/http/index.js +17 -0
- package/dist/esm/services/http/index.js.map +1 -0
- package/dist/esm/services/http/responsesBuilder.js +152 -0
- package/dist/esm/services/http/responsesBuilder.js.map +1 -0
- package/dist/esm/services/index.js +6 -0
- package/dist/esm/services/index.js.map +1 -0
- package/dist/esm/services/utils/ensureBearerToken.js +94 -0
- package/dist/esm/services/utils/ensureBearerToken.js.map +1 -0
- package/dist/esm/services/utils/index.js +11 -0
- package/dist/esm/services/utils/index.js.map +1 -0
- package/dist/esm/types/events.js +1 -0
- package/dist/esm/types/events.js.map +1 -0
- package/dist/esm/types/express.js +1 -0
- package/dist/esm/types/express.js.map +1 -0
- package/dist/esm/types/http.js +1 -0
- package/dist/esm/types/http.js.map +1 -0
- package/dist/esm/types/index.js +7 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/options.js +1 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/types/utils.js +1 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/types/wootils.js +1 -0
- package/dist/esm/types/wootils.js.map +1 -0
- package/dist/esm/utils/fns/index.js +5 -0
- package/dist/esm/utils/fns/index.js.map +1 -0
- package/dist/esm/utils/fns/others.js +6 -0
- package/dist/esm/utils/fns/others.js.map +1 -0
- package/dist/esm/utils/fns/routes.js +25 -0
- package/dist/esm/utils/fns/routes.js.map +1 -0
- package/dist/esm/utils/fns/statuses.js +6 -0
- package/dist/esm/utils/fns/statuses.js.map +1 -0
- package/dist/esm/utils/fns/text.js +6 -0
- package/dist/esm/utils/fns/text.js.map +1 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/wrappers.js +41 -0
- package/dist/esm/utils/wrappers.js.map +1 -0
- package/dist/index-b2a04c78.d.ts +1282 -0
- package/dist/index-efeb437e.d.ts +1282 -0
- package/dist/index.d.mts +46 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/common/errorHandler.d.mts +132 -0
- package/dist/middlewares/common/errorHandler.d.ts +132 -0
- package/dist/middlewares/common/errorHandler.js +143 -0
- package/dist/middlewares/common/errorHandler.js.map +1 -0
- package/dist/middlewares/common/forceHTTPS.d.mts +69 -0
- package/dist/middlewares/common/forceHTTPS.d.ts +69 -0
- package/dist/middlewares/common/forceHTTPS.js +80 -0
- package/dist/middlewares/common/forceHTTPS.js.map +1 -0
- package/dist/middlewares/common/hsts.d.mts +110 -0
- package/dist/middlewares/common/hsts.d.ts +110 -0
- package/dist/middlewares/common/hsts.js +101 -0
- package/dist/middlewares/common/hsts.js.map +1 -0
- package/dist/middlewares/common/index.d.mts +22 -0
- package/dist/middlewares/common/index.d.ts +22 -0
- package/dist/middlewares/common/index.js +27 -0
- package/dist/middlewares/common/index.js.map +1 -0
- package/dist/middlewares/html/fastHTML.d.mts +180 -0
- package/dist/middlewares/html/fastHTML.d.ts +180 -0
- package/dist/middlewares/html/fastHTML.js +185 -0
- package/dist/middlewares/html/fastHTML.js.map +1 -0
- package/dist/middlewares/html/index.d.mts +21 -0
- package/dist/middlewares/html/index.d.ts +21 -0
- package/dist/middlewares/html/index.js +25 -0
- package/dist/middlewares/html/index.js.map +1 -0
- package/dist/middlewares/html/showHTML.d.mts +127 -0
- package/dist/middlewares/html/showHTML.d.ts +127 -0
- package/dist/middlewares/html/showHTML.js +127 -0
- package/dist/middlewares/html/showHTML.js.map +1 -0
- package/dist/middlewares/index.d.mts +30 -0
- package/dist/middlewares/index.d.ts +30 -0
- package/dist/middlewares/index.js +27 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/utils/index.d.mts +20 -0
- package/dist/middlewares/utils/index.d.ts +20 -0
- package/dist/middlewares/utils/index.js +23 -0
- package/dist/middlewares/utils/index.js.map +1 -0
- package/dist/middlewares/utils/versionValidator.d.mts +215 -0
- package/dist/middlewares/utils/versionValidator.d.ts +215 -0
- package/dist/middlewares/utils/versionValidator.js +162 -0
- package/dist/middlewares/utils/versionValidator.js.map +1 -0
- package/dist/services/common/appError.d.mts +139 -0
- package/dist/services/common/appError.d.ts +139 -0
- package/dist/services/common/appError.js +126 -0
- package/dist/services/common/appError.js.map +1 -0
- package/dist/services/common/httpError.d.mts +80 -0
- package/dist/services/common/httpError.d.ts +80 -0
- package/dist/services/common/httpError.js +53 -0
- package/dist/services/common/httpError.js.map +1 -0
- package/dist/services/common/index.d.mts +47 -0
- package/dist/services/common/index.d.ts +47 -0
- package/dist/services/common/index.js +44 -0
- package/dist/services/common/index.js.map +1 -0
- package/dist/services/common/sendFile.d.mts +102 -0
- package/dist/services/common/sendFile.d.ts +102 -0
- package/dist/services/common/sendFile.js +51 -0
- package/dist/services/common/sendFile.js.map +1 -0
- package/dist/services/frontend/frontendFs.d.mts +96 -0
- package/dist/services/frontend/frontendFs.d.ts +96 -0
- package/dist/services/frontend/frontendFs.js +103 -0
- package/dist/services/frontend/frontendFs.js.map +1 -0
- package/dist/services/frontend/index.d.mts +40 -0
- package/dist/services/frontend/index.d.ts +40 -0
- package/dist/services/frontend/index.js +36 -0
- package/dist/services/frontend/index.js.map +1 -0
- package/dist/services/html/htmlGenerator.d.mts +237 -0
- package/dist/services/html/htmlGenerator.d.ts +237 -0
- package/dist/services/html/htmlGenerator.js +221 -0
- package/dist/services/html/htmlGenerator.js.map +1 -0
- package/dist/services/html/index.d.mts +43 -0
- package/dist/services/html/index.d.ts +43 -0
- package/dist/services/html/index.js +36 -0
- package/dist/services/html/index.js.map +1 -0
- package/dist/services/http/apiClient.d.mts +170 -0
- package/dist/services/http/apiClient.d.ts +170 -0
- package/dist/services/http/apiClient.js +122 -0
- package/dist/services/http/apiClient.js.map +1 -0
- package/dist/services/http/http.d.mts +176 -0
- package/dist/services/http/http.d.ts +176 -0
- package/dist/services/http/http.js +211 -0
- package/dist/services/http/http.js.map +1 -0
- package/dist/services/http/index.d.mts +51 -0
- package/dist/services/http/index.d.ts +51 -0
- package/dist/services/http/index.js +44 -0
- package/dist/services/http/index.js.map +1 -0
- package/dist/services/http/responsesBuilder.d.mts +179 -0
- package/dist/services/http/responsesBuilder.d.ts +179 -0
- package/dist/services/http/responsesBuilder.js +179 -0
- package/dist/services/http/responsesBuilder.js.map +1 -0
- package/dist/services/index.d.mts +33 -0
- package/dist/services/index.d.ts +33 -0
- package/dist/services/index.js +31 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/utils/ensureBearerToken.d.mts +158 -0
- package/dist/services/utils/ensureBearerToken.d.ts +158 -0
- package/dist/services/utils/ensureBearerToken.js +121 -0
- package/dist/services/utils/ensureBearerToken.js.map +1 -0
- package/dist/services/utils/index.d.mts +44 -0
- package/dist/services/utils/index.d.ts +44 -0
- package/dist/services/utils/index.js +36 -0
- package/dist/services/utils/index.js.map +1 -0
- package/dist/types/events.d.mts +14 -0
- package/dist/types/events.d.ts +14 -0
- package/dist/types/events.js +17 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/express.d.mts +10 -0
- package/dist/types/express.d.ts +10 -0
- package/dist/types/express.js +17 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/http.d.mts +79 -0
- package/dist/types/http.d.ts +79 -0
- package/dist/types/http.js +17 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/index.d.mts +14 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.js +33 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/options.d.mts +14 -0
- package/dist/types/options.d.ts +14 -0
- package/dist/types/options.js +17 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/utils.d.mts +48 -0
- package/dist/types/utils.d.ts +48 -0
- package/dist/types/utils.js +17 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/types/wootils.d.mts +4 -0
- package/dist/types/wootils.d.ts +4 -0
- package/dist/types/wootils.js +17 -0
- package/dist/types/wootils.js.map +1 -0
- package/dist/utils/fns/index.d.mts +5 -0
- package/dist/utils/fns/index.d.ts +5 -0
- package/dist/utils/fns/index.js +29 -0
- package/dist/utils/fns/index.js.map +1 -0
- package/dist/utils/fns/others.d.mts +17 -0
- package/dist/utils/fns/others.d.ts +17 -0
- package/dist/utils/fns/others.js +29 -0
- package/dist/utils/fns/others.js.map +1 -0
- package/dist/utils/fns/routes.d.mts +39 -0
- package/dist/utils/fns/routes.d.ts +39 -0
- package/dist/utils/fns/routes.js +51 -0
- package/dist/utils/fns/routes.js.map +1 -0
- package/dist/utils/fns/statuses.d.mts +45 -0
- package/dist/utils/fns/statuses.d.ts +45 -0
- package/dist/utils/fns/statuses.js +39 -0
- package/dist/utils/fns/statuses.js.map +1 -0
- package/dist/utils/fns/text.d.mts +9 -0
- package/dist/utils/fns/text.d.ts +9 -0
- package/dist/utils/fns/text.js +29 -0
- package/dist/utils/fns/text.js.map +1 -0
- package/dist/utils/index.d.mts +19 -0
- package/dist/utils/index.d.ts +19 -0
- package/dist/utils/index.js +25 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/wrappers.d.mts +14 -0
- package/dist/utils/wrappers.d.ts +14 -0
- package/dist/utils/wrappers.js +68 -0
- package/dist/utils/wrappers.js.map +1 -0
- package/examples/basic/404.html +12 -0
- package/examples/basic/README.md +30 -0
- package/examples/basic/app.ts +18 -0
- package/examples/basic/controller.ts +45 -0
- package/examples/basic/index.ts +19 -0
- package/examples/basic/middleware.ts +13 -0
- package/examples/basic/service.ts +11 -0
- package/package.json +60 -39
- package/src/app/index.ts +1 -0
- package/src/app/jimpex.ts +743 -0
- package/src/controllers/common/config.ts +115 -0
- package/src/controllers/common/health.ts +128 -0
- package/src/controllers/common/index.ts +3 -0
- package/src/controllers/common/statics.ts +380 -0
- package/src/controllers/index.ts +2 -0
- package/src/controllers/utils/gateway.ts +1186 -0
- package/src/controllers/utils/index.ts +1 -0
- package/src/index.ts +6 -0
- package/src/middlewares/common/errorHandler.ts +203 -0
- package/src/middlewares/common/forceHTTPS.ts +83 -0
- package/src/middlewares/common/hsts.ts +135 -0
- package/src/middlewares/common/index.ts +3 -0
- package/src/middlewares/html/fastHTML.ts +255 -0
- package/src/middlewares/html/index.ts +2 -0
- package/src/middlewares/html/showHTML.ts +165 -0
- package/src/middlewares/index.ts +3 -0
- package/src/middlewares/utils/index.ts +1 -0
- package/src/middlewares/utils/versionValidator.ts +289 -0
- package/src/services/common/appError.ts +158 -0
- package/src/services/common/httpError.ts +74 -0
- package/src/services/common/index.ts +29 -0
- package/src/services/common/sendFile.ts +106 -0
- package/src/services/frontend/frontendFs.ts +101 -0
- package/src/services/frontend/index.ts +21 -0
- package/src/services/html/htmlGenerator.ts +356 -0
- package/src/services/html/index.ts +21 -0
- package/src/services/http/apiClient.ts +221 -0
- package/src/services/http/http.ts +286 -0
- package/src/services/http/index.ts +29 -0
- package/src/services/http/responsesBuilder.ts +265 -0
- package/src/services/index.ts +5 -0
- package/src/services/utils/ensureBearerToken.ts +202 -0
- package/src/services/utils/index.ts +21 -0
- package/src/types/events.ts +303 -0
- package/src/types/express.ts +21 -0
- package/src/types/http.ts +77 -0
- package/src/types/index.ts +6 -0
- package/src/types/options.ts +248 -0
- package/src/types/utils.ts +52 -0
- package/src/types/wootils.ts +4 -0
- package/src/utils/fns/index.ts +4 -0
- package/src/utils/fns/others.ts +15 -0
- package/src/utils/fns/routes.ts +64 -0
- package/src/utils/fns/statuses.ts +44 -0
- package/src/utils/fns/text.ts +8 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/wrappers.ts +537 -0
- package/tsconfig.json +5 -8
- package/tsup.config.ts +10 -0
- package/src/app/index.js +0 -692
- package/src/constants/eventNames.js +0 -48
- package/src/constants/index.js +0 -7
- package/src/controllers/common/configuration.js +0 -116
- package/src/controllers/common/health.js +0 -79
- package/src/controllers/common/index.js +0 -7
- package/src/controllers/common/statics.js +0 -336
- package/src/controllers/index.js +0 -9
- package/src/controllers/utils/gateway.js +0 -1039
- package/src/controllers/utils/index.js +0 -3
- package/src/index.js +0 -30
- package/src/middlewares/common/errorHandler.js +0 -185
- package/src/middlewares/common/forceHTTPS.js +0 -80
- package/src/middlewares/common/hsts.js +0 -122
- package/src/middlewares/common/index.js +0 -7
- package/src/middlewares/html/fastHTML.js +0 -298
- package/src/middlewares/html/index.js +0 -5
- package/src/middlewares/html/showHTML.js +0 -167
- package/src/middlewares/index.js +0 -11
- package/src/middlewares/utils/index.js +0 -3
- package/src/middlewares/utils/versionValidator.js +0 -261
- package/src/services/common/appError.js +0 -136
- package/src/services/common/httpError.js +0 -60
- package/src/services/common/index.js +0 -25
- package/src/services/common/sendFile.js +0 -68
- package/src/services/frontend/frontendFs.js +0 -85
- package/src/services/frontend/index.js +0 -17
- package/src/services/html/htmlGenerator.js +0 -391
- package/src/services/html/index.js +0 -17
- package/src/services/http/apiClient.js +0 -148
- package/src/services/http/http.js +0 -256
- package/src/services/http/index.js +0 -25
- package/src/services/http/responsesBuilder.js +0 -193
- package/src/services/index.js +0 -15
- package/src/services/utils/ensureBearerToken.js +0 -147
- package/src/services/utils/index.js +0 -19
- package/src/types.js +0 -377
- package/src/utils/functions.js +0 -78
- package/src/utils/wrappers.js +0 -131
- package/types/app/index.d.ts +0 -417
- package/types/constants/eventNames.d.ts +0 -93
- package/types/constants/index.d.ts +0 -2
- package/types/controllers/common/configuration.d.ts +0 -71
- package/types/controllers/common/health.d.ts +0 -55
- package/types/controllers/common/index.d.ts +0 -4
- package/types/controllers/common/statics.d.ts +0 -271
- package/types/controllers/index.d.ts +0 -3
- package/types/controllers/utils/gateway.d.ts +0 -947
- package/types/controllers/utils/index.d.ts +0 -2
- package/types/index.d.ts +0 -15
- package/types/middlewares/common/errorHandler.d.ts +0 -143
- package/types/middlewares/common/forceHTTPS.d.ts +0 -64
- package/types/middlewares/common/hsts.d.ts +0 -111
- package/types/middlewares/common/index.d.ts +0 -4
- package/types/middlewares/html/fastHTML.d.ts +0 -238
- package/types/middlewares/html/index.d.ts +0 -3
- package/types/middlewares/html/showHTML.d.ts +0 -128
- package/types/middlewares/index.d.ts +0 -4
- package/types/middlewares/utils/index.d.ts +0 -2
- package/types/middlewares/utils/versionValidator.d.ts +0 -247
- package/types/services/common/appError.d.ts +0 -89
- package/types/services/common/httpError.d.ts +0 -37
- package/types/services/common/index.d.ts +0 -18
- package/types/services/common/sendFile.d.ts +0 -56
- package/types/services/frontend/frontendFs.d.ts +0 -72
- package/types/services/frontend/index.d.ts +0 -3
- package/types/services/html/htmlGenerator.d.ts +0 -298
- package/types/services/html/index.d.ts +0 -3
- package/types/services/http/apiClient.d.ts +0 -141
- package/types/services/http/http.d.ts +0 -159
- package/types/services/http/index.d.ts +0 -18
- package/types/services/http/responsesBuilder.d.ts +0 -140
- package/types/services/index.d.ts +0 -6
- package/types/services/utils/ensureBearerToken.d.ts +0 -137
- package/types/services/utils/index.d.ts +0 -16
- package/types/types.d.ts +0 -280
- package/types/utils/functions.d.ts +0 -55
- package/types/utils/wrappers.d.ts +0 -127
package/src/index.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
const { Jimpex, jimpex } = require('./app');
|
|
2
|
-
const controllers = require('./controllers');
|
|
3
|
-
const middlewares = require('./middlewares');
|
|
4
|
-
const services = require('./services');
|
|
5
|
-
const { eventNames } = require('./constants');
|
|
6
|
-
const {
|
|
7
|
-
provider,
|
|
8
|
-
providerCreator,
|
|
9
|
-
providers,
|
|
10
|
-
controller,
|
|
11
|
-
controllerCreator,
|
|
12
|
-
middleware,
|
|
13
|
-
middlewareCreator,
|
|
14
|
-
} = require('./utils/wrappers');
|
|
15
|
-
const utils = require('./utils/functions');
|
|
16
|
-
|
|
17
|
-
module.exports.controller = controller;
|
|
18
|
-
module.exports.controllerCreator = controllerCreator;
|
|
19
|
-
module.exports.controllers = controllers;
|
|
20
|
-
module.exports.middleware = middleware;
|
|
21
|
-
module.exports.middlewareCreator = middlewareCreator;
|
|
22
|
-
module.exports.middlewares = middlewares;
|
|
23
|
-
module.exports.provider = provider;
|
|
24
|
-
module.exports.providerCreator = providerCreator;
|
|
25
|
-
module.exports.providers = providers;
|
|
26
|
-
module.exports.services = services;
|
|
27
|
-
module.exports.eventNames = eventNames;
|
|
28
|
-
module.exports.utils = utils;
|
|
29
|
-
module.exports.Jimpex = Jimpex;
|
|
30
|
-
module.exports.jimpex = jimpex;
|
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
const ObjectUtils = require('wootils/shared/objectUtils');
|
|
2
|
-
const { code: statuses } = require('statuses');
|
|
3
|
-
const { middlewareCreator } = require('../../utils/wrappers');
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
|
|
7
|
-
* @typedef {import('../../types').Logger} Logger
|
|
8
|
-
* @typedef {import('../../services/http/responsesBuilder').ResponsesBuilder} ResponsesBuilder
|
|
9
|
-
* @prettierignore
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
|
|
14
|
-
* @template O
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Before reading the recevied information, these will be the settings for the response.
|
|
19
|
-
*
|
|
20
|
-
* @typedef {Object} ErrorHandlerDefaultOptions
|
|
21
|
-
* @property {string} message The error message the response will show. Default `'Oops!
|
|
22
|
-
* Something went wrong, please try again'`.
|
|
23
|
-
* @property {number} status The HTTP status code for the response. Default `500`.
|
|
24
|
-
* @parent module:middlewares
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The options for how to build the middleware responses.
|
|
29
|
-
*
|
|
30
|
-
* @typedef {Object} ErrorHandlerOptions
|
|
31
|
-
* @property {ErrorHandlerDefaultOptions} default The options to build the default
|
|
32
|
-
* response,
|
|
33
|
-
* before the middleware analyzes the
|
|
34
|
-
* recevied error.
|
|
35
|
-
* @parent module:middlewares
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Provides the middleware to handle error responses for the app.
|
|
40
|
-
*
|
|
41
|
-
* @parent module:middlewares
|
|
42
|
-
*/
|
|
43
|
-
class ErrorHandler {
|
|
44
|
-
/**
|
|
45
|
-
* @param {Logger} appLogger To log the received errors.
|
|
46
|
-
* @param {ResponsesBuilder} responsesBuilder To generate the JSON response.
|
|
47
|
-
* @param {boolean} showErrors If `false`, unknown errors will show a
|
|
48
|
-
* generic message instead of real
|
|
49
|
-
* message. And if `true`,
|
|
50
|
-
* it will not only show all kind of
|
|
51
|
-
* errors but it will also show the error
|
|
52
|
-
* stack.
|
|
53
|
-
* @param {ClassAppError} AppError To validate if the received errors are
|
|
54
|
-
* known or not.
|
|
55
|
-
* @param {ErrorHandlerOptions} [options={}] Custom options to modify the
|
|
56
|
-
* middleware behavior.
|
|
57
|
-
*/
|
|
58
|
-
constructor(appLogger, responsesBuilder, showErrors, AppError, options = {}) {
|
|
59
|
-
/**
|
|
60
|
-
* A local reference for the `appLogger` service.
|
|
61
|
-
*
|
|
62
|
-
* @type {Logger}
|
|
63
|
-
* @access protected
|
|
64
|
-
* @ignore
|
|
65
|
-
*/
|
|
66
|
-
this._appLogger = appLogger;
|
|
67
|
-
/**
|
|
68
|
-
* A local reference for the `responsesBuilder` service.
|
|
69
|
-
*
|
|
70
|
-
* @type {ResponsesBuilder}
|
|
71
|
-
* @access protected
|
|
72
|
-
* @ignore
|
|
73
|
-
*/
|
|
74
|
-
this._responsesBuilder = responsesBuilder;
|
|
75
|
-
/**
|
|
76
|
-
* Whether or not to show unknown errors real messages.
|
|
77
|
-
*
|
|
78
|
-
* @type {boolean}
|
|
79
|
-
* @access protected
|
|
80
|
-
* @ignore
|
|
81
|
-
*/
|
|
82
|
-
this._showErrors = showErrors;
|
|
83
|
-
/**
|
|
84
|
-
* A local reference for the class the app uses to generate errors.
|
|
85
|
-
*
|
|
86
|
-
* @type {ClassAppError}
|
|
87
|
-
* @access protected
|
|
88
|
-
* @ignore
|
|
89
|
-
*/
|
|
90
|
-
this._AppError = AppError;
|
|
91
|
-
/**
|
|
92
|
-
* These are the "settings" the middleware will use in order to display the errors.
|
|
93
|
-
*
|
|
94
|
-
* @type {ErrorHandlerOptions}
|
|
95
|
-
* @access protected
|
|
96
|
-
* @ignore
|
|
97
|
-
*/
|
|
98
|
-
this._options = ObjectUtils.merge(
|
|
99
|
-
{
|
|
100
|
-
default: {
|
|
101
|
-
message: 'Oops! Something went wrong, please try again',
|
|
102
|
-
status: statuses['internal server error'],
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
options,
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Returns the Express middleware that shows the errors.
|
|
110
|
-
*
|
|
111
|
-
* @returns {ExpressMiddleware}
|
|
112
|
-
*/
|
|
113
|
-
middleware() {
|
|
114
|
-
return (err, req, res, next) => {
|
|
115
|
-
// If the middleware received an error...
|
|
116
|
-
if (err) {
|
|
117
|
-
// Define the error response basic template.
|
|
118
|
-
let data = {
|
|
119
|
-
error: true,
|
|
120
|
-
message: this._options.default.message,
|
|
121
|
-
};
|
|
122
|
-
// Define the error response default status.
|
|
123
|
-
let { status } = this._options.default;
|
|
124
|
-
// Validate if the error is known or not.
|
|
125
|
-
const knownError = err instanceof this._AppError;
|
|
126
|
-
// If the `showErrors` flag is enabled or the error is a known error...
|
|
127
|
-
if (this._showErrors || knownError) {
|
|
128
|
-
// ...set the error real message on the response.
|
|
129
|
-
data.message = err.message;
|
|
130
|
-
// If the error type is known...
|
|
131
|
-
if (knownError) {
|
|
132
|
-
// Try to get any extra information that should be included on the response.
|
|
133
|
-
data = Object.assign(data, err.response);
|
|
134
|
-
// Try to obtain the response status from the error
|
|
135
|
-
status = err.status || statuses['bad request'];
|
|
136
|
-
}
|
|
137
|
-
// If the `showErrors` flag is enabled...
|
|
138
|
-
if (this._showErrors) {
|
|
139
|
-
// Get the error stack and format it into an `Array`.
|
|
140
|
-
const stack = err.stack.split('\n').map((line) => line.trim());
|
|
141
|
-
// Add the stack to the response.
|
|
142
|
-
data.stack = stack;
|
|
143
|
-
// Remove the first item of the stack, since it's the same as the message.
|
|
144
|
-
stack.splice(0, 1);
|
|
145
|
-
// Log the error.
|
|
146
|
-
this._appLogger.error(`ERROR: ${err.message}`);
|
|
147
|
-
this._appLogger.info(stack);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Send the response.
|
|
151
|
-
this._responsesBuilder.json(res, data, status);
|
|
152
|
-
} else {
|
|
153
|
-
// ...otherwise, move to the next middleware.
|
|
154
|
-
next();
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* The options used to customize the middleware behavior.
|
|
160
|
-
*
|
|
161
|
-
* @returns {ErrorHandlerOptions}
|
|
162
|
-
*/
|
|
163
|
-
get options() {
|
|
164
|
-
return this._options;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Generates a middleware that show responses for unhandled errors thrown by the app.
|
|
169
|
-
*
|
|
170
|
-
* @type {MiddlewareCreator<ErrorHandlerOptions>}
|
|
171
|
-
* @parent module:middlewares
|
|
172
|
-
*/
|
|
173
|
-
const errorHandler = middlewareCreator((options) => (app) => {
|
|
174
|
-
const showErrors = app.get('appConfiguration').get('debug.showErrors') === true;
|
|
175
|
-
return new ErrorHandler(
|
|
176
|
-
app.get('appLogger'),
|
|
177
|
-
app.get('responsesBuilder'),
|
|
178
|
-
showErrors,
|
|
179
|
-
app.get('AppError'),
|
|
180
|
-
options,
|
|
181
|
-
).middleware();
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
module.exports.ErrorHandler = ErrorHandler;
|
|
185
|
-
module.exports.errorHandler = errorHandler;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
const { middlewareCreator } = require('../../utils/wrappers');
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
|
|
9
|
-
* @template O
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* @typedef {Object} ForceHTTPSMiddlewareOptions
|
|
14
|
-
* @property {RegExp[]} ignoredRoutes A list of regular expressions to match routes that
|
|
15
|
-
* should be ignored.
|
|
16
|
-
* @parent module:middlewares
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Force all the app traffice to be through HTTPS.
|
|
21
|
-
*
|
|
22
|
-
* @parent module:middlewares
|
|
23
|
-
*/
|
|
24
|
-
class ForceHTTPS {
|
|
25
|
-
/**
|
|
26
|
-
* @param {RegExp[]} [ignoredRoutes=[/^\/service\//]]
|
|
27
|
-
* A list of regular expressions to match routes that should be ignored.
|
|
28
|
-
*/
|
|
29
|
-
constructor(ignoredRoutes = [/^\/service\//]) {
|
|
30
|
-
/**
|
|
31
|
-
* A list of regular expressions to match routes that should be ignored.
|
|
32
|
-
*
|
|
33
|
-
* @type {RegExp[]}
|
|
34
|
-
* @access protected
|
|
35
|
-
* @ignore
|
|
36
|
-
*/
|
|
37
|
-
this._ignoredRoutes = ignoredRoutes;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Returns the Express middleware that forces the redirection to HTTPS.
|
|
41
|
-
*
|
|
42
|
-
* @returns {ExpressMiddleware}
|
|
43
|
-
*/
|
|
44
|
-
middleware() {
|
|
45
|
-
return (req, res, next) => {
|
|
46
|
-
if (
|
|
47
|
-
!req.secure &&
|
|
48
|
-
req.get('X-Forwarded-Proto') !== 'https' &&
|
|
49
|
-
!this._ignoredRoutes.some((expression) => expression.test(req.originalUrl))
|
|
50
|
-
) {
|
|
51
|
-
const host = req.get('Host');
|
|
52
|
-
res.redirect(`https://${host}${req.url}`);
|
|
53
|
-
} else {
|
|
54
|
-
next();
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* A list of regular expressions to match routes that should be ignored.
|
|
60
|
-
*
|
|
61
|
-
* @type {RegExp[]}
|
|
62
|
-
*/
|
|
63
|
-
get ignoredRoutes() {
|
|
64
|
-
return this._ignoredRoutes.slice();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* A middleware to force HTTPS redirections to all the routes.
|
|
69
|
-
*
|
|
70
|
-
* @type {MiddlewareCreator<ForceHTTPSMiddlewareOptions>}
|
|
71
|
-
* @parent module:middlewares
|
|
72
|
-
*/
|
|
73
|
-
const forceHTTPS = middlewareCreator((options = {}) => (app) =>
|
|
74
|
-
app.get('appConfiguration').get('forceHTTPS')
|
|
75
|
-
? new ForceHTTPS(options.ignoredRoutes).middleware()
|
|
76
|
-
: null,
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
module.exports.ForceHTTPS = ForceHTTPS;
|
|
80
|
-
module.exports.forceHTTPS = forceHTTPS;
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
const { middlewareCreator } = require('../../utils/wrappers');
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {import('../../types').ExpressMiddleware} ExpressMiddleware
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @typedef {import('../../types').MiddlewareCreator<O>} MiddlewareCreator<O>
|
|
9
|
-
* @template O
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The options to customize the HSTS header value.
|
|
14
|
-
*
|
|
15
|
-
* @typedef {Object} HSTSOptions
|
|
16
|
-
* @property {number} [maxAge=31536000] The time, in seconds, that the browser
|
|
17
|
-
* should remember that a site is only to be
|
|
18
|
-
* accessed using HTTPS.
|
|
19
|
-
* @property {boolean} [includeSubDomains=true] Whether or not the rule should apply to
|
|
20
|
-
* all sub domains.
|
|
21
|
-
* @property {boolean} [preload=false] Whether or not to include on the major
|
|
22
|
-
* browsers'
|
|
23
|
-
* preload list. This directive is not part
|
|
24
|
-
* of the specification, for more
|
|
25
|
-
* information about it, you should check
|
|
26
|
-
* the MDN documentation for the header.
|
|
27
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
|
|
28
|
-
* @parent module:middlewares
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* It configures a `Strict-Transport-Security` header and includes it on every response.
|
|
33
|
-
*
|
|
34
|
-
* @see https://tools.ietf.org/html/rfc6797
|
|
35
|
-
* @parent module:middlewares
|
|
36
|
-
*/
|
|
37
|
-
class HSTS {
|
|
38
|
-
/**
|
|
39
|
-
* @param {Partial<HSTSOptions>} [options={}] The options to customize the header
|
|
40
|
-
* value.
|
|
41
|
-
*/
|
|
42
|
-
constructor(options = {}) {
|
|
43
|
-
/**
|
|
44
|
-
* The value of the header that will be included on every response.
|
|
45
|
-
*
|
|
46
|
-
* @type {string}
|
|
47
|
-
* @access protected
|
|
48
|
-
* @ignore
|
|
49
|
-
*/
|
|
50
|
-
this._header = this._buildHeader({
|
|
51
|
-
maxAge: 31536000,
|
|
52
|
-
includeSubDomains: true,
|
|
53
|
-
preload: false,
|
|
54
|
-
...options,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Returns the Express middleware that includes the header on the response.
|
|
59
|
-
*
|
|
60
|
-
* @returns {ExpressMiddleware}
|
|
61
|
-
*/
|
|
62
|
-
middleware() {
|
|
63
|
-
return (req, res, next) => {
|
|
64
|
-
res.setHeader('Strict-Transport-Security', this._header);
|
|
65
|
-
next();
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* The value of the header that will be included on every response.
|
|
70
|
-
*
|
|
71
|
-
* @type {string}
|
|
72
|
-
*/
|
|
73
|
-
get header() {
|
|
74
|
-
return this._header;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Creates the value for the header.
|
|
78
|
-
*
|
|
79
|
-
* @param {HSTSOptions} options The options to customize the header value.
|
|
80
|
-
* @returns {string}
|
|
81
|
-
* @access protected
|
|
82
|
-
* @ignore
|
|
83
|
-
*/
|
|
84
|
-
_buildHeader(options) {
|
|
85
|
-
const directives = [`max-age=${options.maxAge}`];
|
|
86
|
-
if (options.includeSubDomains) {
|
|
87
|
-
directives.push('includeSubDomains');
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (options.preload) {
|
|
91
|
-
directives.push('preload');
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return directives.join('; ');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* A middleware that creates and includes a `Strict-Transport-Security` header on every
|
|
99
|
-
* response.
|
|
100
|
-
* If the `options` parameter doesn't include the value for `maxAge`, the middleware will
|
|
101
|
-
* ask the {@link AppConfiguration} service for the `hsts` settings as a fallback. You can
|
|
102
|
-
* take advantage of that fallback to use the middleware and manage its settings from your
|
|
103
|
-
* project configuration.
|
|
104
|
-
* Both the `options` parameter and the `hsts` can include a `enabled` (boolean) flag to
|
|
105
|
-
* either disable or enable the middleware.
|
|
106
|
-
*
|
|
107
|
-
* @type {MiddlewareCreator<HSTSOptions>}
|
|
108
|
-
* @parent module:middlewares
|
|
109
|
-
*/
|
|
110
|
-
const hsts = middlewareCreator((options = {}) => (app) => {
|
|
111
|
-
const useOptions =
|
|
112
|
-
typeof options.maxAge !== 'undefined'
|
|
113
|
-
? options
|
|
114
|
-
: app.get('appConfiguration').get('hsts') || {};
|
|
115
|
-
|
|
116
|
-
return typeof useOptions.enabled === 'undefined' || useOptions.enabled
|
|
117
|
-
? new HSTS(useOptions).middleware()
|
|
118
|
-
: null;
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
module.exports.HSTS = HSTS;
|
|
122
|
-
module.exports.hsts = hsts;
|