node-server-engine 1.0.5
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/.env.example +191 -0
- package/.mocharc.js +13 -0
- package/.nycrc +18 -0
- package/.prettierrc +7 -0
- package/Dockerfile +31 -0
- package/README.md +960 -0
- package/babel.config.json +35 -0
- package/dist/const/DebeziumEvent.d.ts +6 -0
- package/dist/const/DebeziumEvent.js +14 -0
- package/dist/const/DebeziumEvent.js.map +1 -0
- package/dist/const/LogSeverity.d.ts +7 -0
- package/dist/const/LogSeverity.js +15 -0
- package/dist/const/LogSeverity.js.map +1 -0
- package/dist/const/index.d.ts +5 -0
- package/dist/const/index.js +61 -0
- package/dist/const/index.js.map +1 -0
- package/dist/const/metrics.d.ts +3 -0
- package/dist/const/metrics.js +12 -0
- package/dist/const/metrics.js.map +1 -0
- package/dist/const/mime.d.ts +9 -0
- package/dist/const/mime.js +16 -0
- package/dist/const/mime.js.map +1 -0
- package/dist/const/tokenIssuer.d.ts +8 -0
- package/dist/const/tokenIssuer.js +14 -0
- package/dist/const/tokenIssuer.js.map +1 -0
- package/dist/db/migrations/20241030121500-create-sequelize-meta-table.d.ts +3 -0
- package/dist/db/migrations/20241030121500-create-sequelize-meta-table.js +32 -0
- package/dist/db/migrations/20241030121500-create-sequelize-meta-table.js.map +1 -0
- package/dist/db/models/SequelizeMeta.d.ts +5 -0
- package/dist/db/models/SequelizeMeta.js +48 -0
- package/dist/db/models/SequelizeMeta.js.map +1 -0
- package/dist/db/models/index.d.ts +1 -0
- package/dist/db/models/index.js +17 -0
- package/dist/db/models/index.js.map +1 -0
- package/dist/entities/ElasticSearch/ElasticSearch.d.ts +15 -0
- package/dist/entities/ElasticSearch/ElasticSearch.js +114 -0
- package/dist/entities/ElasticSearch/ElasticSearch.js.map +1 -0
- package/dist/entities/ElasticSearch/ElasticSearch.types.d.ts +6 -0
- package/dist/entities/ElasticSearch/ElasticSearch.types.js +2 -0
- package/dist/entities/ElasticSearch/ElasticSearch.types.js.map +1 -0
- package/dist/entities/ElasticSearch/index.d.ts +2 -0
- package/dist/entities/ElasticSearch/index.js +28 -0
- package/dist/entities/ElasticSearch/index.js.map +1 -0
- package/dist/entities/Endpoint/Endpoint.d.ts +39 -0
- package/dist/entities/Endpoint/Endpoint.js +174 -0
- package/dist/entities/Endpoint/Endpoint.js.map +1 -0
- package/dist/entities/Endpoint/Endpoint.types.d.ts +133 -0
- package/dist/entities/Endpoint/Endpoint.types.js +63 -0
- package/dist/entities/Endpoint/Endpoint.types.js.map +1 -0
- package/dist/entities/Endpoint/index.d.ts +2 -0
- package/dist/entities/Endpoint/index.js +28 -0
- package/dist/entities/Endpoint/index.js.map +1 -0
- package/dist/entities/EngineError/EngineError.d.ts +17 -0
- package/dist/entities/EngineError/EngineError.js +46 -0
- package/dist/entities/EngineError/EngineError.js.map +1 -0
- package/dist/entities/EngineError/EngineError.types.d.ts +14 -0
- package/dist/entities/EngineError/EngineError.types.js +2 -0
- package/dist/entities/EngineError/EngineError.types.js.map +1 -0
- package/dist/entities/EngineError/index.d.ts +2 -0
- package/dist/entities/EngineError/index.js +28 -0
- package/dist/entities/EngineError/index.js.map +1 -0
- package/dist/entities/KeySet/KeySet.d.ts +33 -0
- package/dist/entities/KeySet/KeySet.js +201 -0
- package/dist/entities/KeySet/KeySet.js.map +1 -0
- package/dist/entities/KeySet/KeySet.types.d.ts +25 -0
- package/dist/entities/KeySet/KeySet.types.js +2 -0
- package/dist/entities/KeySet/KeySet.types.js.map +1 -0
- package/dist/entities/KeySet/index.d.ts +2 -0
- package/dist/entities/KeySet/index.js +28 -0
- package/dist/entities/KeySet/index.js.map +1 -0
- package/dist/entities/LifecycleController/LifecycleController.d.ts +10 -0
- package/dist/entities/LifecycleController/LifecycleController.js +28 -0
- package/dist/entities/LifecycleController/LifecycleController.js.map +1 -0
- package/dist/entities/LifecycleController/LifecycleController.types.d.ts +5 -0
- package/dist/entities/LifecycleController/LifecycleController.types.js +2 -0
- package/dist/entities/LifecycleController/LifecycleController.types.js.map +1 -0
- package/dist/entities/LifecycleController/index.d.ts +2 -0
- package/dist/entities/LifecycleController/index.js +28 -0
- package/dist/entities/LifecycleController/index.js.map +1 -0
- package/dist/entities/Localizator/Localizator.d.ts +28 -0
- package/dist/entities/Localizator/Localizator.js +128 -0
- package/dist/entities/Localizator/Localizator.js.map +1 -0
- package/dist/entities/Localizator/Localizator.types.d.ts +48 -0
- package/dist/entities/Localizator/Localizator.types.js +2 -0
- package/dist/entities/Localizator/Localizator.types.js.map +1 -0
- package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.d.ts +8 -0
- package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.js +48 -0
- package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.js.map +1 -0
- package/dist/entities/Localizator/guessNamingConvention/index.d.ts +1 -0
- package/dist/entities/Localizator/guessNamingConvention/index.js +17 -0
- package/dist/entities/Localizator/guessNamingConvention/index.js.map +1 -0
- package/dist/entities/Localizator/index.d.ts +2 -0
- package/dist/entities/Localizator/index.js +28 -0
- package/dist/entities/Localizator/index.js.map +1 -0
- package/dist/entities/MessageHandler/MessageHandler.d.ts +20 -0
- package/dist/entities/MessageHandler/MessageHandler.js +65 -0
- package/dist/entities/MessageHandler/MessageHandler.js.map +1 -0
- package/dist/entities/MessageHandler/MessageHandler.types.d.ts +10 -0
- package/dist/entities/MessageHandler/MessageHandler.types.js +2 -0
- package/dist/entities/MessageHandler/MessageHandler.types.js.map +1 -0
- package/dist/entities/MessageHandler/index.d.ts +2 -0
- package/dist/entities/MessageHandler/index.js +28 -0
- package/dist/entities/MessageHandler/index.js.map +1 -0
- package/dist/entities/PubSub/PubSub.d.ts +36 -0
- package/dist/entities/PubSub/PubSub.js +167 -0
- package/dist/entities/PubSub/PubSub.js.map +1 -0
- package/dist/entities/PubSub/PubSub.types.d.ts +61 -0
- package/dist/entities/PubSub/PubSub.types.js +2 -0
- package/dist/entities/PubSub/PubSub.types.js.map +1 -0
- package/dist/entities/PubSub/handleMessage/handleMessage.d.ts +10 -0
- package/dist/entities/PubSub/handleMessage/handleMessage.js +63 -0
- package/dist/entities/PubSub/handleMessage/handleMessage.js.map +1 -0
- package/dist/entities/PubSub/handleMessage/index.d.ts +1 -0
- package/dist/entities/PubSub/handleMessage/index.js +17 -0
- package/dist/entities/PubSub/handleMessage/index.js.map +1 -0
- package/dist/entities/PubSub/index.d.ts +2 -0
- package/dist/entities/PubSub/index.js +28 -0
- package/dist/entities/PubSub/index.js.map +1 -0
- package/dist/entities/PushNotification/PushNotification.d.ts +11 -0
- package/dist/entities/PushNotification/PushNotification.js +44 -0
- package/dist/entities/PushNotification/PushNotification.js.map +1 -0
- package/dist/entities/PushNotification/PushNotification.types.d.ts +25 -0
- package/dist/entities/PushNotification/PushNotification.types.js +2 -0
- package/dist/entities/PushNotification/PushNotification.types.js.map +1 -0
- package/dist/entities/PushNotification/index.d.ts +2 -0
- package/dist/entities/PushNotification/index.js +28 -0
- package/dist/entities/PushNotification/index.js.map +1 -0
- package/dist/entities/Redis/Redis.d.ts +19 -0
- package/dist/entities/Redis/Redis.js +75 -0
- package/dist/entities/Redis/Redis.js.map +1 -0
- package/dist/entities/Redis/Redis.types.d.ts +16 -0
- package/dist/entities/Redis/Redis.types.js +2 -0
- package/dist/entities/Redis/Redis.types.js.map +1 -0
- package/dist/entities/Redis/Redis.validate.d.ts +5 -0
- package/dist/entities/Redis/Redis.validate.js +21 -0
- package/dist/entities/Redis/Redis.validate.js.map +1 -0
- package/dist/entities/Redis/index.d.ts +2 -0
- package/dist/entities/Redis/index.js +35 -0
- package/dist/entities/Redis/index.js.map +1 -0
- package/dist/entities/Sequelize/Sequelize.config.d.ts +7 -0
- package/dist/entities/Sequelize/Sequelize.config.js +32 -0
- package/dist/entities/Sequelize/Sequelize.config.js.map +1 -0
- package/dist/entities/Sequelize/Sequelize.d.ts +14 -0
- package/dist/entities/Sequelize/Sequelize.js +70 -0
- package/dist/entities/Sequelize/Sequelize.js.map +1 -0
- package/dist/entities/Sequelize/Sequelize.types.d.ts +9 -0
- package/dist/entities/Sequelize/Sequelize.types.js +2 -0
- package/dist/entities/Sequelize/Sequelize.types.js.map +1 -0
- package/dist/entities/Sequelize/Sequelize.validate.d.ts +4 -0
- package/dist/entities/Sequelize/Sequelize.validate.js +27 -0
- package/dist/entities/Sequelize/Sequelize.validate.js.map +1 -0
- package/dist/entities/Sequelize/index.d.ts +2 -0
- package/dist/entities/Sequelize/index.js +28 -0
- package/dist/entities/Sequelize/index.js.map +1 -0
- package/dist/entities/Server/Server.const.d.ts +5 -0
- package/dist/entities/Server/Server.const.js +45 -0
- package/dist/entities/Server/Server.const.js.map +1 -0
- package/dist/entities/Server/Server.d.ts +61 -0
- package/dist/entities/Server/Server.js +380 -0
- package/dist/entities/Server/Server.js.map +1 -0
- package/dist/entities/Server/Server.types.d.ts +75 -0
- package/dist/entities/Server/Server.types.js +2 -0
- package/dist/entities/Server/Server.types.js.map +1 -0
- package/dist/entities/Server/index.d.ts +2 -0
- package/dist/entities/Server/index.js +28 -0
- package/dist/entities/Server/index.js.map +1 -0
- package/dist/entities/SocketClient/SocketClient.d.ts +79 -0
- package/dist/entities/SocketClient/SocketClient.js +394 -0
- package/dist/entities/SocketClient/SocketClient.js.map +1 -0
- package/dist/entities/SocketClient/SocketClient.types.d.ts +53 -0
- package/dist/entities/SocketClient/SocketClient.types.js +2 -0
- package/dist/entities/SocketClient/SocketClient.types.js.map +1 -0
- package/dist/entities/SocketClient/index.d.ts +2 -0
- package/dist/entities/SocketClient/index.js +28 -0
- package/dist/entities/SocketClient/index.js.map +1 -0
- package/dist/entities/SocketClient/parseMessage/index.d.ts +1 -0
- package/dist/entities/SocketClient/parseMessage/index.js +17 -0
- package/dist/entities/SocketClient/parseMessage/index.js.map +1 -0
- package/dist/entities/SocketClient/parseMessage/parseMessage.d.ts +5 -0
- package/dist/entities/SocketClient/parseMessage/parseMessage.js +34 -0
- package/dist/entities/SocketClient/parseMessage/parseMessage.js.map +1 -0
- package/dist/entities/Storage/Storage.d.ts +38 -0
- package/dist/entities/Storage/Storage.js +214 -0
- package/dist/entities/Storage/Storage.js.map +1 -0
- package/dist/entities/Storage/Storage.types.d.ts +52 -0
- package/dist/entities/Storage/Storage.types.js +2 -0
- package/dist/entities/Storage/Storage.types.js.map +1 -0
- package/dist/entities/Storage/index.d.ts +2 -0
- package/dist/entities/Storage/index.js +28 -0
- package/dist/entities/Storage/index.js.map +1 -0
- package/dist/entities/ValidationError/ValidationError.d.ts +7 -0
- package/dist/entities/ValidationError/ValidationError.js +44 -0
- package/dist/entities/ValidationError/ValidationError.js.map +1 -0
- package/dist/entities/ValidationError/index.d.ts +1 -0
- package/dist/entities/ValidationError/index.js +17 -0
- package/dist/entities/ValidationError/index.js.map +1 -0
- package/dist/entities/WebError/WebError.d.ts +15 -0
- package/dist/entities/WebError/WebError.js +42 -0
- package/dist/entities/WebError/WebError.js.map +1 -0
- package/dist/entities/WebError/WebError.types.d.ts +8 -0
- package/dist/entities/WebError/WebError.types.js +2 -0
- package/dist/entities/WebError/WebError.types.js.map +1 -0
- package/dist/entities/WebError/index.d.ts +2 -0
- package/dist/entities/WebError/index.js +28 -0
- package/dist/entities/WebError/index.js.map +1 -0
- package/dist/entities/index.d.ts +16 -0
- package/dist/entities/index.js +182 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/debug.d.ts +2 -0
- package/dist/metrics/debug.js +15 -0
- package/dist/metrics/debug.js.map +1 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.js +28 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/request.d.ts +3 -0
- package/dist/metrics/request.js +22 -0
- package/dist/metrics/request.js.map +1 -0
- package/dist/middleware/authAdmin/authAdmin.d.ts +4 -0
- package/dist/middleware/authAdmin/authAdmin.js +105 -0
- package/dist/middleware/authAdmin/authAdmin.js.map +1 -0
- package/dist/middleware/authAdmin/authAdmin.types.d.ts +16 -0
- package/dist/middleware/authAdmin/authAdmin.types.js +2 -0
- package/dist/middleware/authAdmin/authAdmin.types.js.map +1 -0
- package/dist/middleware/authAdmin/index.d.ts +2 -0
- package/dist/middleware/authAdmin/index.js +28 -0
- package/dist/middleware/authAdmin/index.js.map +1 -0
- package/dist/middleware/authHmac/authHmac.d.ts +4 -0
- package/dist/middleware/authHmac/authHmac.js +57 -0
- package/dist/middleware/authHmac/authHmac.js.map +1 -0
- package/dist/middleware/authHmac/authHmac.types.d.ts +7 -0
- package/dist/middleware/authHmac/authHmac.types.js +2 -0
- package/dist/middleware/authHmac/authHmac.types.js.map +1 -0
- package/dist/middleware/authHmac/index.d.ts +2 -0
- package/dist/middleware/authHmac/index.js +28 -0
- package/dist/middleware/authHmac/index.js.map +1 -0
- package/dist/middleware/authJwt/authJwt.d.ts +3 -0
- package/dist/middleware/authJwt/authJwt.js +56 -0
- package/dist/middleware/authJwt/authJwt.js.map +1 -0
- package/dist/middleware/authJwt/authJwt.types.d.ts +22 -0
- package/dist/middleware/authJwt/authJwt.types.js +2 -0
- package/dist/middleware/authJwt/authJwt.types.js.map +1 -0
- package/dist/middleware/authJwt/index.d.ts +2 -0
- package/dist/middleware/authJwt/index.js +28 -0
- package/dist/middleware/authJwt/index.js.map +1 -0
- package/dist/middleware/authStatic/authStatic.d.ts +6 -0
- package/dist/middleware/authStatic/authStatic.js +54 -0
- package/dist/middleware/authStatic/authStatic.js.map +1 -0
- package/dist/middleware/authStatic/index.d.ts +1 -0
- package/dist/middleware/authStatic/index.js +17 -0
- package/dist/middleware/authStatic/index.js.map +1 -0
- package/dist/middleware/authTls/authTls.d.ts +16 -0
- package/dist/middleware/authTls/authTls.js +102 -0
- package/dist/middleware/authTls/authTls.js.map +1 -0
- package/dist/middleware/authTls/authTls.types.d.ts +10 -0
- package/dist/middleware/authTls/authTls.types.js +6 -0
- package/dist/middleware/authTls/authTls.types.js.map +1 -0
- package/dist/middleware/authTls/index.d.ts +2 -0
- package/dist/middleware/authTls/index.js +18 -0
- package/dist/middleware/authTls/index.js.map +1 -0
- package/dist/middleware/error/error.d.ts +3 -0
- package/dist/middleware/error/error.js +34 -0
- package/dist/middleware/error/error.js.map +1 -0
- package/dist/middleware/error/index.d.ts +1 -0
- package/dist/middleware/error/index.js +17 -0
- package/dist/middleware/error/index.js.map +1 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.d.ts +6 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js +28 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js.map +1 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.d.ts +12 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js +2 -0
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js.map +1 -0
- package/dist/middleware/fileUploader/compressAvatar/index.d.ts +2 -0
- package/dist/middleware/fileUploader/compressAvatar/index.js +28 -0
- package/dist/middleware/fileUploader/compressAvatar/index.js.map +1 -0
- package/dist/middleware/fileUploader/fileUploader.d.ts +10 -0
- package/dist/middleware/fileUploader/fileUploader.js +296 -0
- package/dist/middleware/fileUploader/fileUploader.js.map +1 -0
- package/dist/middleware/fileUploader/fileUploader.types.d.ts +49 -0
- package/dist/middleware/fileUploader/fileUploader.types.js +2 -0
- package/dist/middleware/fileUploader/fileUploader.types.js.map +1 -0
- package/dist/middleware/fileUploader/index.d.ts +2 -0
- package/dist/middleware/fileUploader/index.js +28 -0
- package/dist/middleware/fileUploader/index.js.map +1 -0
- package/dist/middleware/fileUploader/isMultiPart/index.d.ts +1 -0
- package/dist/middleware/fileUploader/isMultiPart/index.js +17 -0
- package/dist/middleware/fileUploader/isMultiPart/index.js.map +1 -0
- package/dist/middleware/fileUploader/isMultiPart/isMultipart.d.ts +3 -0
- package/dist/middleware/fileUploader/isMultiPart/isMultipart.js +14 -0
- package/dist/middleware/fileUploader/isMultiPart/isMultipart.js.map +1 -0
- package/dist/middleware/fileUploader/validate/index.d.ts +1 -0
- package/dist/middleware/fileUploader/validate/index.js +17 -0
- package/dist/middleware/fileUploader/validate/index.js.map +1 -0
- package/dist/middleware/fileUploader/validate/validate.d.ts +4 -0
- package/dist/middleware/fileUploader/validate/validate.js +28 -0
- package/dist/middleware/fileUploader/validate/validate.js.map +1 -0
- package/dist/middleware/fourOhFour/fourOhFour.d.ts +3 -0
- package/dist/middleware/fourOhFour/fourOhFour.js +18 -0
- package/dist/middleware/fourOhFour/fourOhFour.js.map +1 -0
- package/dist/middleware/fourOhFour/index.d.ts +1 -0
- package/dist/middleware/fourOhFour/index.js +17 -0
- package/dist/middleware/fourOhFour/index.js.map +1 -0
- package/dist/middleware/healthCheck/healthCheck.d.ts +5 -0
- package/dist/middleware/healthCheck/healthCheck.js +18 -0
- package/dist/middleware/healthCheck/healthCheck.js.map +1 -0
- package/dist/middleware/healthCheck/index.d.ts +1 -0
- package/dist/middleware/healthCheck/index.js +17 -0
- package/dist/middleware/healthCheck/index.js.map +1 -0
- package/dist/middleware/index.d.ts +15 -0
- package/dist/middleware/index.js +171 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/metrics/index.d.ts +1 -0
- package/dist/middleware/metrics/index.js +17 -0
- package/dist/middleware/metrics/index.js.map +1 -0
- package/dist/middleware/metrics/metrics.d.ts +3 -0
- package/dist/middleware/metrics/metrics.js +28 -0
- package/dist/middleware/metrics/metrics.js.map +1 -0
- package/dist/middleware/requestMetrics/index.d.ts +1 -0
- package/dist/middleware/requestMetrics/index.js +17 -0
- package/dist/middleware/requestMetrics/index.js.map +1 -0
- package/dist/middleware/requestMetrics/requestMetrics.d.ts +2 -0
- package/dist/middleware/requestMetrics/requestMetrics.js +21 -0
- package/dist/middleware/requestMetrics/requestMetrics.js.map +1 -0
- package/dist/middleware/swaggerDocs/index.d.ts +2 -0
- package/dist/middleware/swaggerDocs/index.js +28 -0
- package/dist/middleware/swaggerDocs/index.js.map +1 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.d.ts +6 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.js +103 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.js.map +1 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.types.d.ts +37 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.types.js +2 -0
- package/dist/middleware/swaggerDocs/swaggerDocs.types.js.map +1 -0
- package/dist/middleware/userResolver/index.d.ts +1 -0
- package/dist/middleware/userResolver/index.js +17 -0
- package/dist/middleware/userResolver/index.js.map +1 -0
- package/dist/middleware/userResolver/userResolver.d.ts +3 -0
- package/dist/middleware/userResolver/userResolver.js +41 -0
- package/dist/middleware/userResolver/userResolver.js.map +1 -0
- package/dist/middleware/validate/index.d.ts +1 -0
- package/dist/middleware/validate/index.js +17 -0
- package/dist/middleware/validate/index.js.map +1 -0
- package/dist/middleware/validate/validate.d.ts +4 -0
- package/dist/middleware/validate/validate.js +19 -0
- package/dist/middleware/validate/validate.js.map +1 -0
- package/dist/middleware/version/index.d.ts +1 -0
- package/dist/middleware/version/index.js +17 -0
- package/dist/middleware/version/index.js.map +1 -0
- package/dist/middleware/version/version.d.ts +6 -0
- package/dist/middleware/version/version.js +21 -0
- package/dist/middleware/version/version.js.map +1 -0
- package/dist/utils/checkEnvironment/index.d.ts +13 -0
- package/dist/utils/checkEnvironment/index.js +62 -0
- package/dist/utils/checkEnvironment/index.js.map +1 -0
- package/dist/utils/createHttpServer/createHttpServer.d.ts +5 -0
- package/dist/utils/createHttpServer/createHttpServer.js +30 -0
- package/dist/utils/createHttpServer/createHttpServer.js.map +1 -0
- package/dist/utils/createHttpServer/createHttpServer.validate.d.ts +4 -0
- package/dist/utils/createHttpServer/createHttpServer.validate.js +31 -0
- package/dist/utils/createHttpServer/createHttpServer.validate.js.map +1 -0
- package/dist/utils/createHttpServer/index.d.ts +1 -0
- package/dist/utils/createHttpServer/index.js +17 -0
- package/dist/utils/createHttpServer/index.js.map +1 -0
- package/dist/utils/createSortedObject/createSortedObject.d.ts +2 -0
- package/dist/utils/createSortedObject/createSortedObject.js +21 -0
- package/dist/utils/createSortedObject/createSortedObject.js.map +1 -0
- package/dist/utils/createSortedObject/index.d.ts +1 -0
- package/dist/utils/createSortedObject/index.js +17 -0
- package/dist/utils/createSortedObject/index.js.map +1 -0
- package/dist/utils/dbMigration/dbMigration.d.ts +17 -0
- package/dist/utils/dbMigration/dbMigration.js +207 -0
- package/dist/utils/dbMigration/dbMigration.js.map +1 -0
- package/dist/utils/dbMigration/dbMigration.types.d.ts +10 -0
- package/dist/utils/dbMigration/dbMigration.types.js +2 -0
- package/dist/utils/dbMigration/dbMigration.types.js.map +1 -0
- package/dist/utils/dbMigration/index.d.ts +2 -0
- package/dist/utils/dbMigration/index.js +28 -0
- package/dist/utils/dbMigration/index.js.map +1 -0
- package/dist/utils/dbMigration/migrateMetadataTable/index.d.ts +1 -0
- package/dist/utils/dbMigration/migrateMetadataTable/index.js +17 -0
- package/dist/utils/dbMigration/migrateMetadataTable/index.js.map +1 -0
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.d.ts +7 -0
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +63 -0
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -0
- package/dist/utils/envAssert/envAssert.d.ts +21 -0
- package/dist/utils/envAssert/envAssert.js +30 -0
- package/dist/utils/envAssert/envAssert.js.map +1 -0
- package/dist/utils/envAssert/index.d.ts +1 -0
- package/dist/utils/envAssert/index.js +17 -0
- package/dist/utils/envAssert/index.js.map +1 -0
- package/dist/utils/envAssert/validators/hostList.d.ts +4 -0
- package/dist/utils/envAssert/validators/hostList.js +22 -0
- package/dist/utils/envAssert/validators/hostList.js.map +1 -0
- package/dist/utils/envAssert/validators/index.d.ts +5 -0
- package/dist/utils/envAssert/validators/index.js +61 -0
- package/dist/utils/envAssert/validators/index.js.map +1 -0
- package/dist/utils/envAssert/validators/ipList.d.ts +4 -0
- package/dist/utils/envAssert/validators/ipList.js +20 -0
- package/dist/utils/envAssert/validators/ipList.js.map +1 -0
- package/dist/utils/envAssert/validators/path.d.ts +4 -0
- package/dist/utils/envAssert/validators/path.js +19 -0
- package/dist/utils/envAssert/validators/path.js.map +1 -0
- package/dist/utils/envAssert/validators/string.d.ts +4 -0
- package/dist/utils/envAssert/validators/string.js +15 -0
- package/dist/utils/envAssert/validators/string.js.map +1 -0
- package/dist/utils/envAssert/validators/stringList.d.ts +5 -0
- package/dist/utils/envAssert/validators/stringList.js +19 -0
- package/dist/utils/envAssert/validators/stringList.js.map +1 -0
- package/dist/utils/filter/filter.d.ts +6 -0
- package/dist/utils/filter/filter.js +21 -0
- package/dist/utils/filter/filter.js.map +1 -0
- package/dist/utils/filter/index.d.ts +1 -0
- package/dist/utils/filter/index.js +17 -0
- package/dist/utils/filter/index.js.map +1 -0
- package/dist/utils/getDynamicLink/getDynamicLink.d.ts +3 -0
- package/dist/utils/getDynamicLink/getDynamicLink.js +28 -0
- package/dist/utils/getDynamicLink/getDynamicLink.js.map +1 -0
- package/dist/utils/getDynamicLink/getDynamicLink.types.d.ts +10 -0
- package/dist/utils/getDynamicLink/getDynamicLink.types.js +2 -0
- package/dist/utils/getDynamicLink/getDynamicLink.types.js.map +1 -0
- package/dist/utils/getDynamicLink/getDynamicLink.validate.d.ts +2 -0
- package/dist/utils/getDynamicLink/getDynamicLink.validate.js +14 -0
- package/dist/utils/getDynamicLink/getDynamicLink.validate.js.map +1 -0
- package/dist/utils/getDynamicLink/index.d.ts +2 -0
- package/dist/utils/getDynamicLink/index.js +28 -0
- package/dist/utils/getDynamicLink/index.js.map +1 -0
- package/dist/utils/hmac/checkEnv/checkEnv.d.ts +4 -0
- package/dist/utils/hmac/checkEnv/checkEnv.js +17 -0
- package/dist/utils/hmac/checkEnv/checkEnv.js.map +1 -0
- package/dist/utils/hmac/checkEnv/index.d.ts +1 -0
- package/dist/utils/hmac/checkEnv/index.js +17 -0
- package/dist/utils/hmac/checkEnv/index.js.map +1 -0
- package/dist/utils/hmac/createHmac/createHmac.d.ts +3 -0
- package/dist/utils/hmac/createHmac/createHmac.js +33 -0
- package/dist/utils/hmac/createHmac/createHmac.js.map +1 -0
- package/dist/utils/hmac/createHmac/index.d.ts +1 -0
- package/dist/utils/hmac/createHmac/index.js +17 -0
- package/dist/utils/hmac/createHmac/index.js.map +1 -0
- package/dist/utils/hmac/index.d.ts +4 -0
- package/dist/utils/hmac/index.js +50 -0
- package/dist/utils/hmac/index.js.map +1 -0
- package/dist/utils/hmac/index.types.d.ts +12 -0
- package/dist/utils/hmac/index.types.js +2 -0
- package/dist/utils/hmac/index.types.js.map +1 -0
- package/dist/utils/hmac/signPayload/index.d.ts +1 -0
- package/dist/utils/hmac/signPayload/index.js +17 -0
- package/dist/utils/hmac/signPayload/index.js.map +1 -0
- package/dist/utils/hmac/signPayload/signPayload.d.ts +6 -0
- package/dist/utils/hmac/signPayload/signPayload.js +18 -0
- package/dist/utils/hmac/signPayload/signPayload.js.map +1 -0
- package/dist/utils/hmac/verifySignature/index.d.ts +1 -0
- package/dist/utils/hmac/verifySignature/index.js +17 -0
- package/dist/utils/hmac/verifySignature/index.js.map +1 -0
- package/dist/utils/hmac/verifySignature/verifySignature.d.ts +3 -0
- package/dist/utils/hmac/verifySignature/verifySignature.js +23 -0
- package/dist/utils/hmac/verifySignature/verifySignature.js.map +1 -0
- package/dist/utils/index.d.ts +17 -0
- package/dist/utils/index.js +193 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/jwt/index.d.ts +2 -0
- package/dist/utils/jwt/index.js +28 -0
- package/dist/utils/jwt/index.js.map +1 -0
- package/dist/utils/jwt/jwt.d.ts +12 -0
- package/dist/utils/jwt/jwt.js +195 -0
- package/dist/utils/jwt/jwt.js.map +1 -0
- package/dist/utils/jwt/jwt.types.d.ts +20 -0
- package/dist/utils/jwt/jwt.types.js +2 -0
- package/dist/utils/jwt/jwt.types.js.map +1 -0
- package/dist/utils/report/index.d.ts +3 -0
- package/dist/utils/report/index.js +39 -0
- package/dist/utils/report/index.js.map +1 -0
- package/dist/utils/report/output.d.ts +4 -0
- package/dist/utils/report/output.js +49 -0
- package/dist/utils/report/output.js.map +1 -0
- package/dist/utils/report/output.types.d.ts +65 -0
- package/dist/utils/report/output.types.js +2 -0
- package/dist/utils/report/output.types.js.map +1 -0
- package/dist/utils/report/report.d.ts +18 -0
- package/dist/utils/report/report.js +119 -0
- package/dist/utils/report/report.js.map +1 -0
- package/dist/utils/report/report.types.d.ts +11 -0
- package/dist/utils/report/report.types.js +2 -0
- package/dist/utils/report/report.types.js.map +1 -0
- package/dist/utils/request/index.d.ts +1 -0
- package/dist/utils/request/index.js +17 -0
- package/dist/utils/request/index.js.map +1 -0
- package/dist/utils/request/request.d.ts +3 -0
- package/dist/utils/request/request.js +42 -0
- package/dist/utils/request/request.js.map +1 -0
- package/dist/utils/semverCompare/index.d.ts +1 -0
- package/dist/utils/semverCompare/index.js +17 -0
- package/dist/utils/semverCompare/index.js.map +1 -0
- package/dist/utils/semverCompare/semverCompare.d.ts +7 -0
- package/dist/utils/semverCompare/semverCompare.js +65 -0
- package/dist/utils/semverCompare/semverCompare.js.map +1 -0
- package/dist/utils/sendEmail/index.d.ts +1 -0
- package/dist/utils/sendEmail/index.js +17 -0
- package/dist/utils/sendEmail/index.js.map +1 -0
- package/dist/utils/sendEmail/sendEmail.d.ts +11 -0
- package/dist/utils/sendEmail/sendEmail.js +32 -0
- package/dist/utils/sendEmail/sendEmail.js.map +1 -0
- package/dist/utils/sendEmail/sendEmail.types.d.ts +7 -0
- package/dist/utils/sendEmail/sendEmail.types.js +2 -0
- package/dist/utils/sendEmail/sendEmail.types.js.map +1 -0
- package/dist/utils/sendPush/index.d.ts +2 -0
- package/dist/utils/sendPush/index.js +28 -0
- package/dist/utils/sendPush/index.js.map +1 -0
- package/dist/utils/sendPush/sendPush.d.ts +8 -0
- package/dist/utils/sendPush/sendPush.js +25 -0
- package/dist/utils/sendPush/sendPush.js.map +1 -0
- package/dist/utils/sendPush/sendPush.types.d.ts +25 -0
- package/dist/utils/sendPush/sendPush.types.js +2 -0
- package/dist/utils/sendPush/sendPush.types.js.map +1 -0
- package/dist/utils/tlsConfig/index.d.ts +2 -0
- package/dist/utils/tlsConfig/index.js +28 -0
- package/dist/utils/tlsConfig/index.js.map +1 -0
- package/dist/utils/tlsConfig/tlsConfig.d.ts +8 -0
- package/dist/utils/tlsConfig/tlsConfig.js +44 -0
- package/dist/utils/tlsConfig/tlsConfig.js.map +1 -0
- package/dist/utils/tlsConfig/tlsConfig.types.d.ts +11 -0
- package/dist/utils/tlsConfig/tlsConfig.types.js +2 -0
- package/dist/utils/tlsConfig/tlsConfig.types.js.map +1 -0
- package/dist/utils/tlsConfig/tlsConfig.validate.d.ts +4 -0
- package/dist/utils/tlsConfig/tlsConfig.validate.js +48 -0
- package/dist/utils/tlsConfig/tlsConfig.validate.js.map +1 -0
- package/dist/utils/tlsRequest/index.d.ts +1 -0
- package/dist/utils/tlsRequest/index.js +17 -0
- package/dist/utils/tlsRequest/index.js.map +1 -0
- package/dist/utils/tlsRequest/tlsRequest.d.ts +3 -0
- package/dist/utils/tlsRequest/tlsRequest.js +18 -0
- package/dist/utils/tlsRequest/tlsRequest.js.map +1 -0
- package/dist/utils/trimPathSlash/index.d.ts +1 -0
- package/dist/utils/trimPathSlash/index.js +17 -0
- package/dist/utils/trimPathSlash/index.js.map +1 -0
- package/dist/utils/trimPathSlash/trimPathSlash.d.ts +6 -0
- package/dist/utils/trimPathSlash/trimPathSlash.js +15 -0
- package/dist/utils/trimPathSlash/trimPathSlash.js.map +1 -0
- package/eslint.config.mjs +11 -0
- package/package.json +157 -0
- package/src/const/DebeziumEvent.ts +6 -0
- package/src/const/LogSeverity.ts +7 -0
- package/src/const/index.ts +5 -0
- package/src/const/metrics.ts +6 -0
- package/src/const/mime.ts +37 -0
- package/src/const/tokenIssuer.ts +9 -0
- package/src/db/migrations/20241030121500-create-sequelize-meta-table.ts +29 -0
- package/src/db/models/SequelizeMeta.ts +16 -0
- package/src/db/models/index.ts +2 -0
- package/src/entities/ElasticSearch/ElasticSearch.ts +103 -0
- package/src/entities/ElasticSearch/ElasticSearch.types.ts +7 -0
- package/src/entities/ElasticSearch/index.ts +2 -0
- package/src/entities/Endpoint/Endpoint.test.ts +337 -0
- package/src/entities/Endpoint/Endpoint.ts +202 -0
- package/src/entities/Endpoint/Endpoint.types.ts +205 -0
- package/src/entities/Endpoint/index.ts +2 -0
- package/src/entities/EngineError/EngineError.ts +28 -0
- package/src/entities/EngineError/EngineError.types.ts +15 -0
- package/src/entities/EngineError/index.ts +2 -0
- package/src/entities/KeySet/KeySet.test.ts +126 -0
- package/src/entities/KeySet/KeySet.ts +172 -0
- package/src/entities/KeySet/KeySet.types.ts +28 -0
- package/src/entities/KeySet/index.ts +2 -0
- package/src/entities/LifecycleController/LifecycleController.test.ts +48 -0
- package/src/entities/LifecycleController/LifecycleController.ts +24 -0
- package/src/entities/LifecycleController/LifecycleController.types.ts +5 -0
- package/src/entities/LifecycleController/index.ts +2 -0
- package/src/entities/Localizator/Localizator.ts +139 -0
- package/src/entities/Localizator/Localizator.types.ts +52 -0
- package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.test.ts +165 -0
- package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.ts +58 -0
- package/src/entities/Localizator/guessNamingConvention/index.ts +1 -0
- package/src/entities/Localizator/index.ts +2 -0
- package/src/entities/MessageHandler/MessageHandler.test.ts +130 -0
- package/src/entities/MessageHandler/MessageHandler.ts +72 -0
- package/src/entities/MessageHandler/MessageHandler.types.ts +15 -0
- package/src/entities/MessageHandler/index.ts +2 -0
- package/src/entities/PubSub/PubSub.test.ts +297 -0
- package/src/entities/PubSub/PubSub.ts +202 -0
- package/src/entities/PubSub/PubSub.types.ts +76 -0
- package/src/entities/PubSub/handleMessage/handleMessage.test.ts +102 -0
- package/src/entities/PubSub/handleMessage/handleMessage.ts +65 -0
- package/src/entities/PubSub/handleMessage/index.ts +1 -0
- package/src/entities/PubSub/index.ts +2 -0
- package/src/entities/PushNotification/PushNotification.test.ts +35 -0
- package/src/entities/PushNotification/PushNotification.ts +44 -0
- package/src/entities/PushNotification/PushNotification.types.ts +25 -0
- package/src/entities/PushNotification/index.ts +2 -0
- package/src/entities/Redis/Redis.ts +71 -0
- package/src/entities/Redis/Redis.types.ts +19 -0
- package/src/entities/Redis/Redis.validate.ts +17 -0
- package/src/entities/Redis/index.ts +2 -0
- package/src/entities/Sequelize/Sequelize.config.ts +29 -0
- package/src/entities/Sequelize/Sequelize.test.ts +21 -0
- package/src/entities/Sequelize/Sequelize.ts +75 -0
- package/src/entities/Sequelize/Sequelize.types.ts +10 -0
- package/src/entities/Sequelize/Sequelize.validate.ts +15 -0
- package/src/entities/Sequelize/index.ts +2 -0
- package/src/entities/Server/Server.const.ts +56 -0
- package/src/entities/Server/Server.test.ts +272 -0
- package/src/entities/Server/Server.ts +445 -0
- package/src/entities/Server/Server.types.ts +88 -0
- package/src/entities/Server/index.ts +2 -0
- package/src/entities/SocketClient/SocketClient.test.ts +392 -0
- package/src/entities/SocketClient/SocketClient.ts +401 -0
- package/src/entities/SocketClient/SocketClient.types.ts +62 -0
- package/src/entities/SocketClient/index.ts +2 -0
- package/src/entities/SocketClient/parseMessage/index.ts +1 -0
- package/src/entities/SocketClient/parseMessage/parseMessage.test.ts +20 -0
- package/src/entities/SocketClient/parseMessage/parseMessage.ts +26 -0
- package/src/entities/Storage/Storage.test.ts +58 -0
- package/src/entities/Storage/Storage.ts +219 -0
- package/src/entities/Storage/Storage.types.ts +57 -0
- package/src/entities/Storage/index.ts +2 -0
- package/src/entities/ValidationError/ValidationError.ts +34 -0
- package/src/entities/ValidationError/index.ts +1 -0
- package/src/entities/WebError/WebError.test.ts +18 -0
- package/src/entities/WebError/WebError.ts +23 -0
- package/src/entities/WebError/WebError.types.ts +9 -0
- package/src/entities/WebError/index.ts +2 -0
- package/src/entities/index.ts +16 -0
- package/src/index.ts +4 -0
- package/src/metrics/debug.ts +10 -0
- package/src/metrics/index.ts +2 -0
- package/src/metrics/request.ts +17 -0
- package/src/middleware/authAdmin/authAdmin.test.ts +199 -0
- package/src/middleware/authAdmin/authAdmin.ts +114 -0
- package/src/middleware/authAdmin/authAdmin.types.ts +19 -0
- package/src/middleware/authAdmin/index.ts +2 -0
- package/src/middleware/authHmac/authHmac.test.ts +86 -0
- package/src/middleware/authHmac/authHmac.ts +56 -0
- package/src/middleware/authHmac/authHmac.types.ts +7 -0
- package/src/middleware/authHmac/index.ts +2 -0
- package/src/middleware/authJwt/authJwt.test.ts +54 -0
- package/src/middleware/authJwt/authJwt.ts +55 -0
- package/src/middleware/authJwt/authJwt.types.ts +25 -0
- package/src/middleware/authJwt/index.ts +2 -0
- package/src/middleware/authStatic/authStatic.test.ts +36 -0
- package/src/middleware/authStatic/authStatic.ts +45 -0
- package/src/middleware/authStatic/index.ts +1 -0
- package/src/middleware/authTls/authTls.test.ts +138 -0
- package/src/middleware/authTls/authTls.ts +106 -0
- package/src/middleware/authTls/authTls.types.ts +13 -0
- package/src/middleware/authTls/index.ts +2 -0
- package/src/middleware/error/error.test.ts +60 -0
- package/src/middleware/error/error.ts +25 -0
- package/src/middleware/error/index.ts +1 -0
- package/src/middleware/fileUploader/compressAvatar/compressAvatar.ts +25 -0
- package/src/middleware/fileUploader/compressAvatar/compressAvatar.types.ts +12 -0
- package/src/middleware/fileUploader/compressAvatar/index.ts +2 -0
- package/src/middleware/fileUploader/fileUploader.test.ts +310 -0
- package/src/middleware/fileUploader/fileUploader.ts +303 -0
- package/src/middleware/fileUploader/fileUploader.types.ts +52 -0
- package/src/middleware/fileUploader/index.ts +2 -0
- package/src/middleware/fileUploader/isMultiPart/index.ts +1 -0
- package/src/middleware/fileUploader/isMultiPart/isMultipart.ts +9 -0
- package/src/middleware/fileUploader/validate/index.ts +1 -0
- package/src/middleware/fileUploader/validate/validate.ts +27 -0
- package/src/middleware/fourOhFour/fourOhFour.test.ts +14 -0
- package/src/middleware/fourOhFour/fourOhFour.ts +13 -0
- package/src/middleware/fourOhFour/index.ts +1 -0
- package/src/middleware/healthCheck/healthCheck.test.ts +12 -0
- package/src/middleware/healthCheck/healthCheck.ts +14 -0
- package/src/middleware/healthCheck/index.ts +1 -0
- package/src/middleware/index.ts +15 -0
- package/src/middleware/metrics/index.ts +1 -0
- package/src/middleware/metrics/metrics.test.ts +46 -0
- package/src/middleware/metrics/metrics.ts +24 -0
- package/src/middleware/requestMetrics/index.ts +1 -0
- package/src/middleware/requestMetrics/requestMetrics.test.ts +77 -0
- package/src/middleware/requestMetrics/requestMetrics.ts +20 -0
- package/src/middleware/swaggerDocs/index.ts +2 -0
- package/src/middleware/swaggerDocs/swaggerDocs.ts +114 -0
- package/src/middleware/swaggerDocs/swaggerDocs.types.ts +41 -0
- package/src/middleware/userResolver/index.ts +1 -0
- package/src/middleware/userResolver/userResolver.test.ts +35 -0
- package/src/middleware/userResolver/userResolver.ts +36 -0
- package/src/middleware/validate/index.ts +1 -0
- package/src/middleware/validate/validate.test.ts +43 -0
- package/src/middleware/validate/validate.ts +25 -0
- package/src/middleware/version/index.ts +1 -0
- package/src/middleware/version/version.test.ts +23 -0
- package/src/middleware/version/version.ts +12 -0
- package/src/utils/checkEnvironment/index.ts +49 -0
- package/src/utils/createHttpServer/createHttpServer.test.ts +24 -0
- package/src/utils/createHttpServer/createHttpServer.ts +34 -0
- package/src/utils/createHttpServer/createHttpServer.validate.ts +17 -0
- package/src/utils/createHttpServer/index.ts +1 -0
- package/src/utils/createSortedObject/createSortedObject.ts +20 -0
- package/src/utils/createSortedObject/createSortedObjet.test.ts +47 -0
- package/src/utils/createSortedObject/index.ts +1 -0
- package/src/utils/dbMigration/dbMigration.test.ts +209 -0
- package/src/utils/dbMigration/dbMigration.ts +196 -0
- package/src/utils/dbMigration/dbMigration.types.ts +11 -0
- package/src/utils/dbMigration/index.ts +2 -0
- package/src/utils/dbMigration/migrateMetadataTable/index.ts +1 -0
- package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.test.ts +59 -0
- package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts +70 -0
- package/src/utils/envAssert/envAssert.ts +31 -0
- package/src/utils/envAssert/index.ts +1 -0
- package/src/utils/envAssert/validators/hostList.ts +17 -0
- package/src/utils/envAssert/validators/index.ts +5 -0
- package/src/utils/envAssert/validators/ipList.ts +13 -0
- package/src/utils/envAssert/validators/path.ts +13 -0
- package/src/utils/envAssert/validators/string.ts +9 -0
- package/src/utils/envAssert/validators/stringList.ts +13 -0
- package/src/utils/filter/filter.ts +17 -0
- package/src/utils/filter/index.ts +1 -0
- package/src/utils/getDynamicLink/getDynamicLink.test.ts +51 -0
- package/src/utils/getDynamicLink/getDynamicLink.ts +28 -0
- package/src/utils/getDynamicLink/getDynamicLink.types.ts +11 -0
- package/src/utils/getDynamicLink/getDynamicLink.validate.ts +6 -0
- package/src/utils/getDynamicLink/index.ts +2 -0
- package/src/utils/hmac/checkEnv/checkEnv.test.ts +18 -0
- package/src/utils/hmac/checkEnv/checkEnv.ts +9 -0
- package/src/utils/hmac/checkEnv/index.ts +1 -0
- package/src/utils/hmac/createHmac/createHmac.ts +33 -0
- package/src/utils/hmac/createHmac/index.ts +1 -0
- package/src/utils/hmac/index.ts +4 -0
- package/src/utils/hmac/index.types.ts +13 -0
- package/src/utils/hmac/signPayload/index.ts +1 -0
- package/src/utils/hmac/signPayload/signPayload.ts +16 -0
- package/src/utils/hmac/verifySignature/index.ts +1 -0
- package/src/utils/hmac/verifySignature/verifySignature.ts +24 -0
- package/src/utils/index.ts +26 -0
- package/src/utils/jwt/index.ts +2 -0
- package/src/utils/jwt/jwt.test.ts +41 -0
- package/src/utils/jwt/jwt.ts +204 -0
- package/src/utils/jwt/jwt.types.ts +21 -0
- package/src/utils/report/index.ts +3 -0
- package/src/utils/report/output.ts +45 -0
- package/src/utils/report/output.types.ts +70 -0
- package/src/utils/report/report.test.ts +133 -0
- package/src/utils/report/report.ts +134 -0
- package/src/utils/report/report.types.ts +13 -0
- package/src/utils/request/index.ts +1 -0
- package/src/utils/request/request.test.ts +26 -0
- package/src/utils/request/request.ts +48 -0
- package/src/utils/semverCompare/index.ts +1 -0
- package/src/utils/semverCompare/semverCompare.test.ts +49 -0
- package/src/utils/semverCompare/semverCompare.ts +60 -0
- package/src/utils/sendEmail/index.ts +1 -0
- package/src/utils/sendEmail/sendEmail.ts +27 -0
- package/src/utils/sendEmail/sendEmail.types.ts +7 -0
- package/src/utils/sendPush/index.ts +2 -0
- package/src/utils/sendPush/sendPush.ts +20 -0
- package/src/utils/sendPush/sendPush.types.ts +25 -0
- package/src/utils/tlsConfig/index.ts +2 -0
- package/src/utils/tlsConfig/tlsConfig.test.ts +32 -0
- package/src/utils/tlsConfig/tlsConfig.ts +47 -0
- package/src/utils/tlsConfig/tlsConfig.types.ts +11 -0
- package/src/utils/tlsConfig/tlsConfig.validate.ts +25 -0
- package/src/utils/tlsRequest/index.ts +1 -0
- package/src/utils/tlsRequest/tlsRequest.test.ts +63 -0
- package/src/utils/tlsRequest/tlsRequest.ts +12 -0
- package/src/utils/trimPathSlash/index.ts +1 -0
- package/src/utils/trimPathSlash/trimPathSlash.test.ts +26 -0
- package/src/utils/trimPathSlash/trimPathSlash.ts +8 -0
- package/test/env.ts +56 -0
- package/test/factory/index.ts +8 -0
- package/test/factory/sequelizeMeta.ts +12 -0
- package/test/hooks.ts +37 -0
- package/test/index.ts +3 -0
- package/test/stub/index.ts +3 -0
- package/test/stub/stubLocales.ts +68 -0
- package/test/stub/stubPubSub.ts +7 -0
- package/test/stub/stubStorage.ts +77 -0
- package/test/stub/stubStorage.types.ts +11 -0
- package/test/utils/app.ts +31 -0
- package/test/utils/index.ts +1 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_compressAvatar","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_compressAvatar2"],"sources":["../../../../src/middleware/fileUploader/compressAvatar/index.ts"],"sourcesContent":["export * from './compressAvatar';\nexport * from './compressAvatar.types';\n"],"mappings":";;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,eAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,gBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,gBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,gBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,gBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Busboy from 'busboy';
|
|
2
|
+
import { Request, Response, NextFunction } from 'express';
|
|
3
|
+
import { Schema } from 'express-validator';
|
|
4
|
+
import { FileUploaderConfig } from './fileUploader.types';
|
|
5
|
+
/**
|
|
6
|
+
* Generate a custom fileUploader middleware
|
|
7
|
+
*/
|
|
8
|
+
export declare function fileUploader(options: Array<FileUploaderConfig>, validator: Schema): (request: Request, response: Response, next: NextFunction) => Busboy.Busboy;
|
|
9
|
+
/** Handle file upload and generic multi-part parsing */
|
|
10
|
+
export declare function fileUploaderMiddleware(request: Request, response: Response, next: NextFunction, filesOptions: Array<FileUploaderConfig>, validator: Schema): Busboy.Busboy;
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.fileUploader = fileUploader;
|
|
8
|
+
exports.fileUploaderMiddleware = fileUploaderMiddleware;
|
|
9
|
+
var _busboy = _interopRequireDefault(require("busboy"));
|
|
10
|
+
var _compressAvatar = require("./compressAvatar");
|
|
11
|
+
var _isMultiPart = require("./isMultiPart");
|
|
12
|
+
var _validate = require("./validate");
|
|
13
|
+
var _Storage = require("../../entities/Storage");
|
|
14
|
+
var _WebError = require("../../entities/WebError");
|
|
15
|
+
var _report = require("../../utils/report");
|
|
16
|
+
const namespace = 'engine:middleware:fileUploader';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generate a custom fileUploader middleware
|
|
20
|
+
*/
|
|
21
|
+
function fileUploader(options, validator) {
|
|
22
|
+
return (request, response, next) => fileUploaderMiddleware(request, response, next, options, validator);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Handle file upload and generic multi-part parsing */
|
|
26
|
+
function fileUploaderMiddleware(request, response, next, filesOptions, validator) {
|
|
27
|
+
(0, _report.reportDebug)({
|
|
28
|
+
namespace,
|
|
29
|
+
message: 'Received request to upload file',
|
|
30
|
+
data: {
|
|
31
|
+
filesOptions,
|
|
32
|
+
validator
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
// Check that the request is a proper multipart request
|
|
36
|
+
if (!(0, _isMultiPart.isMultipart)(request)) throw new _WebError.WebError({
|
|
37
|
+
statusCode: 415,
|
|
38
|
+
errorCode: 'invalid-content-type',
|
|
39
|
+
message: 'Request is not of type multipart/form-data',
|
|
40
|
+
data: {
|
|
41
|
+
contentType: request.get('Content-Type')
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
// If no files to handle ignore
|
|
45
|
+
if (!filesOptions.length) next();
|
|
46
|
+
// Parse multipart data with Busboy
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
const busboy = new _busboy.default({
|
|
49
|
+
headers: {
|
|
50
|
+
...request.headers,
|
|
51
|
+
'content-type': request.headers['content-type'] ?? ''
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
let hasError = false;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Function called when an error happened in the process
|
|
58
|
+
* It immediately stops and drains all connection and deletes all files that have already been uploaded
|
|
59
|
+
*/
|
|
60
|
+
function triggerError(error) {
|
|
61
|
+
pendingWrites--;
|
|
62
|
+
if (hasError) return;
|
|
63
|
+
hasError = true;
|
|
64
|
+
request.unpipe(busboy);
|
|
65
|
+
request.on('readable', request.read.bind(request));
|
|
66
|
+
busboy.removeAllListeners();
|
|
67
|
+
next(error);
|
|
68
|
+
if (request.files) {
|
|
69
|
+
Object.values(request.files).forEach(files => {
|
|
70
|
+
files.forEach(file => {
|
|
71
|
+
_Storage.Storage.delete(file.bucket, file.name).catch(error => {
|
|
72
|
+
(0, _report.reportError)(error);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
let readFinished = false;
|
|
79
|
+
let fieldsValidated = false;
|
|
80
|
+
let pendingWrites = 0;
|
|
81
|
+
|
|
82
|
+
/** Function called when all the body has been parsed */
|
|
83
|
+
function done() {
|
|
84
|
+
if (readFinished && pendingWrites === 0 && fieldsValidated && !hasError) {
|
|
85
|
+
const uploadedFiles = Object.keys(request.files ?? {});
|
|
86
|
+
if (filesOptions.some(options => options.required && !uploadedFiles.includes(options.key))) {
|
|
87
|
+
triggerError(new _WebError.WebError({
|
|
88
|
+
statusCode: 400,
|
|
89
|
+
errorCode: 'missing-field',
|
|
90
|
+
message: 'Some required files have not been uploaded',
|
|
91
|
+
data: {
|
|
92
|
+
filesOptions,
|
|
93
|
+
validator,
|
|
94
|
+
uploadedFiles
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
next();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/*
|
|
104
|
+
* On cancel request, while processing
|
|
105
|
+
*/
|
|
106
|
+
request.connection.on('close', function () {
|
|
107
|
+
if (!response.writableEnded) triggerError(new Error('Request cancelled'));
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Once all the fields have been read they are checked against the validation schema
|
|
112
|
+
*/
|
|
113
|
+
async function validateFields() {
|
|
114
|
+
try {
|
|
115
|
+
await (0, _validate.validate)(request, validator);
|
|
116
|
+
} catch (error) {
|
|
117
|
+
triggerError(error);
|
|
118
|
+
}
|
|
119
|
+
(0, _report.reportDebug)({
|
|
120
|
+
namespace,
|
|
121
|
+
message: 'Validation processed',
|
|
122
|
+
data: {
|
|
123
|
+
hasError,
|
|
124
|
+
filesOptions,
|
|
125
|
+
validator
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
fieldsValidated = true;
|
|
129
|
+
done();
|
|
130
|
+
}
|
|
131
|
+
busboy.on('file', (field, file, fileName, encoding, mimeType) => {
|
|
132
|
+
(async () => {
|
|
133
|
+
(0, _report.reportDebug)({
|
|
134
|
+
namespace,
|
|
135
|
+
message: 'Found file in request',
|
|
136
|
+
data: {
|
|
137
|
+
hasError,
|
|
138
|
+
field,
|
|
139
|
+
fileName,
|
|
140
|
+
encoding,
|
|
141
|
+
mimeType,
|
|
142
|
+
pendingWrites
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
// Do not handle the stream if there has been an error previously
|
|
146
|
+
if (hasError) file.destroy();
|
|
147
|
+
pendingWrites++;
|
|
148
|
+
// Find related file options based on the field name
|
|
149
|
+
const options = filesOptions.find(fileOption => fileOption.key === field);
|
|
150
|
+
// Make sure that the field is in the config
|
|
151
|
+
if (!options) {
|
|
152
|
+
triggerError(new _WebError.WebError({
|
|
153
|
+
statusCode: 400,
|
|
154
|
+
errorCode: 'invalid-file-field',
|
|
155
|
+
message: 'Request contains a file at an invalid field',
|
|
156
|
+
hint: {
|
|
157
|
+
field
|
|
158
|
+
},
|
|
159
|
+
data: {
|
|
160
|
+
field
|
|
161
|
+
}
|
|
162
|
+
}));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
(0, _report.reportDebug)({
|
|
166
|
+
namespace,
|
|
167
|
+
message: 'Found options for file',
|
|
168
|
+
data: {
|
|
169
|
+
hasError,
|
|
170
|
+
field,
|
|
171
|
+
fileName,
|
|
172
|
+
encoding,
|
|
173
|
+
mimeType,
|
|
174
|
+
pendingWrites,
|
|
175
|
+
options
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
// If a specific MIME type is required check it
|
|
179
|
+
if (options.mimeTypes && !options.mimeTypes.includes(mimeType)) {
|
|
180
|
+
triggerError(new _WebError.WebError({
|
|
181
|
+
statusCode: 415,
|
|
182
|
+
errorCode: 'invalid-mime-type',
|
|
183
|
+
message: 'Request contains a file with an invalid MIME type',
|
|
184
|
+
hint: {
|
|
185
|
+
field
|
|
186
|
+
},
|
|
187
|
+
data: {
|
|
188
|
+
field,
|
|
189
|
+
mimeType,
|
|
190
|
+
expected: options.mimeTypes
|
|
191
|
+
}
|
|
192
|
+
}));
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Generate the destination path of the file and upload
|
|
196
|
+
(0, _report.reportDebug)({
|
|
197
|
+
namespace,
|
|
198
|
+
message: 'Starting file upload',
|
|
199
|
+
data: {
|
|
200
|
+
hasError,
|
|
201
|
+
field,
|
|
202
|
+
fileName,
|
|
203
|
+
encoding,
|
|
204
|
+
mimeType,
|
|
205
|
+
pendingWrites,
|
|
206
|
+
options
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
try {
|
|
210
|
+
const fileToUpload = options.image ? (0, _compressAvatar.compressAvatar)(file, options.image) : file;
|
|
211
|
+
const uploadedFile = await _Storage.Storage.upload(fileToUpload, options.bucket, {
|
|
212
|
+
directory: options.path,
|
|
213
|
+
mime: mimeType,
|
|
214
|
+
noExtension: options.noExtension
|
|
215
|
+
}, {
|
|
216
|
+
metadata: {
|
|
217
|
+
contentType: mimeType
|
|
218
|
+
}
|
|
219
|
+
}, {
|
|
220
|
+
maxSize: options.maxSize
|
|
221
|
+
});
|
|
222
|
+
(0, _report.reportDebug)({
|
|
223
|
+
namespace,
|
|
224
|
+
message: 'File uploaded',
|
|
225
|
+
data: {
|
|
226
|
+
hasError,
|
|
227
|
+
field,
|
|
228
|
+
fileName,
|
|
229
|
+
encoding,
|
|
230
|
+
mimeType,
|
|
231
|
+
pendingWrites,
|
|
232
|
+
options,
|
|
233
|
+
uploadedFile
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
if (hasError) {
|
|
237
|
+
// If some other failed before this one terminated
|
|
238
|
+
// Delete file
|
|
239
|
+
await _Storage.Storage.delete(uploadedFile.bucket, uploadedFile.name);
|
|
240
|
+
} else {
|
|
241
|
+
// Handle successful upload
|
|
242
|
+
// Add the file's data to the request
|
|
243
|
+
pendingWrites--;
|
|
244
|
+
if (!request.files) request.files = {};
|
|
245
|
+
if (!request.files[field]) request.files[field] = [];
|
|
246
|
+
request.files[field].push({
|
|
247
|
+
...uploadedFile,
|
|
248
|
+
originalFileName: fileName
|
|
249
|
+
});
|
|
250
|
+
done();
|
|
251
|
+
}
|
|
252
|
+
} catch (error) {
|
|
253
|
+
triggerError(error);
|
|
254
|
+
}
|
|
255
|
+
})().catch(error => {
|
|
256
|
+
triggerError(error);
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Handle non file fields
|
|
262
|
+
* These fields will be pushed to the body as array of strings
|
|
263
|
+
*/
|
|
264
|
+
busboy.on('field', (fieldName, value) => {
|
|
265
|
+
if (!request.body) request.body = {};
|
|
266
|
+
if (request.body[fieldName]) {
|
|
267
|
+
request.body[fieldName].push(value);
|
|
268
|
+
} else {
|
|
269
|
+
request.body[fieldName] = [value];
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
busboy.on('error', function (error) {
|
|
273
|
+
triggerError(error);
|
|
274
|
+
});
|
|
275
|
+
busboy.on('finish', () => {
|
|
276
|
+
(async () => {
|
|
277
|
+
(0, _report.reportDebug)({
|
|
278
|
+
namespace,
|
|
279
|
+
message: 'Busboy finished reading',
|
|
280
|
+
data: {
|
|
281
|
+
hasError,
|
|
282
|
+
filesOptions,
|
|
283
|
+
validator,
|
|
284
|
+
pendingWrites
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
readFinished = true;
|
|
288
|
+
await validateFields();
|
|
289
|
+
done();
|
|
290
|
+
})().catch(error => {
|
|
291
|
+
triggerError(error);
|
|
292
|
+
});
|
|
293
|
+
});
|
|
294
|
+
return request.pipe(busboy);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=fileUploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileUploader.js","names":["_busboy","_interopRequireDefault","require","_compressAvatar","_isMultiPart","_validate","_Storage","_WebError","_report","namespace","fileUploader","options","validator","request","response","next","fileUploaderMiddleware","filesOptions","reportDebug","message","data","isMultipart","WebError","statusCode","errorCode","contentType","get","length","busboy","Busboy","headers","hasError","triggerError","error","pendingWrites","unpipe","on","read","bind","removeAllListeners","files","Object","values","forEach","file","Storage","delete","bucket","name","catch","reportError","readFinished","fieldsValidated","done","uploadedFiles","keys","some","required","includes","key","connection","writableEnded","Error","validateFields","validate","field","fileName","encoding","mimeType","destroy","find","fileOption","hint","mimeTypes","expected","fileToUpload","image","compressAvatar","uploadedFile","upload","directory","path","mime","noExtension","metadata","maxSize","push","originalFileName","fieldName","value","body","pipe"],"sources":["../../../src/middleware/fileUploader/fileUploader.ts"],"sourcesContent":["import Busboy from 'busboy';\nimport { Request, Response, NextFunction } from 'express';\nimport { Schema } from 'express-validator';\nimport { compressAvatar } from './compressAvatar';\nimport { FileUploaderConfig } from './fileUploader.types';\nimport { isMultipart } from './isMultiPart';\nimport { validate } from './validate';\nimport { Storage } from 'entities/Storage';\nimport { WebError } from 'entities/WebError';\nimport { reportError, reportDebug } from 'utils/report';\nimport { Readable } from 'stream';\n\nconst namespace = 'engine:middleware:fileUploader';\n\n/**\n * Generate a custom fileUploader middleware\n */\nexport function fileUploader(\n options: Array<FileUploaderConfig>,\n validator: Schema\n) {\n return (\n request: Request,\n response: Response,\n next: NextFunction\n ): Busboy.Busboy =>\n fileUploaderMiddleware(request, response, next, options, validator);\n}\n\n/** Handle file upload and generic multi-part parsing */\nexport function fileUploaderMiddleware(\n request: Request,\n response: Response,\n next: NextFunction,\n filesOptions: Array<FileUploaderConfig>,\n validator: Schema\n): Busboy.Busboy {\n reportDebug({\n namespace,\n message: 'Received request to upload file',\n data: { filesOptions, validator }\n });\n // Check that the request is a proper multipart request\n if (!isMultipart(request))\n throw new WebError({\n statusCode: 415,\n errorCode: 'invalid-content-type',\n message: 'Request is not of type multipart/form-data',\n data: { contentType: request.get('Content-Type') }\n });\n // If no files to handle ignore\n if (!filesOptions.length) next();\n // Parse multipart data with Busboy\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const busboy = new (Busboy as any)({\n headers: {\n ...request.headers,\n 'content-type': request.headers['content-type'] ?? ''\n }\n });\n\n let hasError = false;\n\n /**\n * Function called when an error happened in the process\n * It immediately stops and drains all connection and deletes all files that have already been uploaded\n */\n function triggerError(error: unknown): void {\n pendingWrites--;\n if (hasError) return;\n hasError = true;\n request.unpipe(busboy);\n request.on('readable', request.read.bind(request));\n busboy.removeAllListeners();\n next(error);\n if (request.files) {\n Object.values(request.files).forEach((files) => {\n files.forEach((file) => {\n Storage.delete(file.bucket, file.name).catch((error) => {\n reportError(error);\n });\n });\n });\n }\n }\n\n let readFinished = false;\n let fieldsValidated = false;\n let pendingWrites = 0;\n\n /** Function called when all the body has been parsed */\n function done(): void {\n if (readFinished && pendingWrites === 0 && fieldsValidated && !hasError) {\n const uploadedFiles = Object.keys(request.files ?? {});\n if (\n filesOptions.some(\n (options) => options.required && !uploadedFiles.includes(options.key)\n )\n ) {\n triggerError(\n new WebError({\n statusCode: 400,\n errorCode: 'missing-field',\n message: 'Some required files have not been uploaded',\n data: { filesOptions, validator, uploadedFiles }\n })\n );\n return;\n }\n next();\n }\n }\n\n /*\n * On cancel request, while processing\n */\n request.connection.on('close', function () {\n if (!response.writableEnded) triggerError(new Error('Request cancelled'));\n });\n\n /**\n * Once all the fields have been read they are checked against the validation schema\n */\n async function validateFields(): Promise<void> {\n try {\n await validate(request, validator);\n } catch (error) {\n triggerError(error);\n }\n reportDebug({\n namespace,\n message: 'Validation processed',\n data: { hasError, filesOptions, validator }\n });\n fieldsValidated = true;\n done();\n }\n\n busboy.on(\n 'file',\n (\n field: string,\n file: Readable,\n fileName: string,\n encoding: unknown,\n mimeType: string\n ) => {\n (async (): Promise<void> => {\n reportDebug({\n namespace,\n message: 'Found file in request',\n data: { hasError, field, fileName, encoding, mimeType, pendingWrites }\n });\n // Do not handle the stream if there has been an error previously\n if (hasError) file.destroy();\n pendingWrites++;\n // Find related file options based on the field name\n const options = filesOptions.find(\n (fileOption) => fileOption.key === field\n );\n // Make sure that the field is in the config\n if (!options) {\n triggerError(\n new WebError({\n statusCode: 400,\n errorCode: 'invalid-file-field',\n message: 'Request contains a file at an invalid field',\n hint: { field },\n data: { field }\n })\n );\n return;\n }\n reportDebug({\n namespace,\n message: 'Found options for file',\n data: {\n hasError,\n field,\n fileName,\n encoding,\n mimeType,\n pendingWrites,\n options\n }\n });\n // If a specific MIME type is required check it\n if (options.mimeTypes && !options.mimeTypes.includes(mimeType)) {\n triggerError(\n new WebError({\n statusCode: 415,\n errorCode: 'invalid-mime-type',\n message: 'Request contains a file with an invalid MIME type',\n hint: { field },\n data: { field, mimeType, expected: options.mimeTypes }\n })\n );\n return;\n }\n // Generate the destination path of the file and upload\n reportDebug({\n namespace,\n message: 'Starting file upload',\n data: {\n hasError,\n field,\n fileName,\n encoding,\n mimeType,\n pendingWrites,\n options\n }\n });\n try {\n const fileToUpload = options.image\n ? compressAvatar(file, options.image)\n : file;\n\n const uploadedFile = await Storage.upload(\n fileToUpload,\n options.bucket,\n {\n directory: options.path,\n mime: mimeType,\n noExtension: options.noExtension\n },\n {\n metadata: { contentType: mimeType }\n },\n { maxSize: options.maxSize }\n );\n\n reportDebug({\n namespace,\n message: 'File uploaded',\n data: {\n hasError,\n field,\n fileName,\n encoding,\n mimeType,\n pendingWrites,\n options,\n uploadedFile\n }\n });\n if (hasError) {\n // If some other failed before this one terminated\n // Delete file\n await Storage.delete(uploadedFile.bucket, uploadedFile.name);\n } else {\n // Handle successful upload\n // Add the file's data to the request\n pendingWrites--;\n if (!request.files) request.files = {};\n if (!request.files[field]) request.files[field] = [];\n request.files[field].push({\n ...uploadedFile,\n originalFileName: fileName\n });\n done();\n }\n } catch (error) {\n triggerError(error);\n }\n })().catch((error) => {\n triggerError(error);\n });\n }\n );\n\n /**\n * Handle non file fields\n * These fields will be pushed to the body as array of strings\n */\n busboy.on('field', (fieldName: string, value: unknown) => {\n if (!request.body) request.body = {};\n\n if (request.body[fieldName]) {\n request.body[fieldName].push(value);\n } else {\n request.body[fieldName] = [value];\n }\n });\n busboy.on('error', function (error: unknown) {\n triggerError(error);\n });\n busboy.on('finish', () => {\n (async (): Promise<void> => {\n reportDebug({\n namespace,\n message: 'Busboy finished reading',\n data: { hasError, filesOptions, validator, pendingWrites }\n });\n readFinished = true;\n await validateFields();\n done();\n })().catch((error) => {\n triggerError(error);\n });\n });\n return request.pipe(busboy);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CompressionOptions } from './compressAvatar';
|
|
2
|
+
import { StorageUploadedFile } from '../../entities/Storage';
|
|
3
|
+
declare global {
|
|
4
|
+
namespace Express {
|
|
5
|
+
/** Express request object */
|
|
6
|
+
interface Request {
|
|
7
|
+
/** Configuration for files that are uploaded with the request */
|
|
8
|
+
files?: {
|
|
9
|
+
[key: string]: Array<UploadedFile>;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Custom uploaded file metadata */
|
|
15
|
+
export interface UploadedFile extends StorageUploadedFile {
|
|
16
|
+
/** File name that was given to the file by the client */
|
|
17
|
+
originalFileName: string;
|
|
18
|
+
}
|
|
19
|
+
/** Outputs setting for the file upload. Defines where a file should be stored and how it should be processed. */
|
|
20
|
+
interface FileUploaderOutputs {
|
|
21
|
+
/** Name of the output */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Path to which this specific output is stored (defaults to default path if not set) */
|
|
24
|
+
path?: string;
|
|
25
|
+
/** Bucket to which this specific output is stored (defaults to default bucket if not set) */
|
|
26
|
+
bucket?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Configuration for a file upload */
|
|
29
|
+
export interface FileUploaderConfig {
|
|
30
|
+
/** Field key for which this configuration applies */
|
|
31
|
+
key: string;
|
|
32
|
+
/** A list of supported MIME Types for the file */
|
|
33
|
+
mimeTypes?: Array<string>;
|
|
34
|
+
/** Base path where the file should be stored (default used when no output config is set, will be used as temporary storage when outputs are set) */
|
|
35
|
+
path?: string;
|
|
36
|
+
/** Bucket in which the file should be stored (will be used as temporary storage when outputs are set) */
|
|
37
|
+
bucket: string;
|
|
38
|
+
/** Maximum size of the file (ex: 2MB) */
|
|
39
|
+
maxSize?: string;
|
|
40
|
+
/** Indicates that the file must be present */
|
|
41
|
+
required?: boolean;
|
|
42
|
+
/** Do not store with an extension (will simply be a uuid) */
|
|
43
|
+
noExtension?: boolean;
|
|
44
|
+
/** Specify multiple outputs with processing */
|
|
45
|
+
outputs?: Array<FileUploaderOutputs>;
|
|
46
|
+
/** @deprecated compression of images */
|
|
47
|
+
image?: CompressionOptions;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileUploader.types.js","names":[],"sources":["../../../src/middleware/fileUploader/fileUploader.types.ts"],"sourcesContent":["import { CompressionOptions } from './compressAvatar';\nimport { StorageUploadedFile } from 'entities/Storage';\n\n// Override the Express request object to add the files\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace Express {\n /** Express request object */\n interface Request {\n /** Configuration for files that are uploaded with the request */\n files?: { [key: string]: Array<UploadedFile> };\n }\n }\n}\n\n/** Custom uploaded file metadata */\nexport interface UploadedFile extends StorageUploadedFile {\n /** File name that was given to the file by the client */\n originalFileName: string;\n}\n\n/** Outputs setting for the file upload. Defines where a file should be stored and how it should be processed. */\ninterface FileUploaderOutputs {\n /** Name of the output */\n name: string;\n /** Path to which this specific output is stored (defaults to default path if not set) */\n path?: string;\n /** Bucket to which this specific output is stored (defaults to default bucket if not set) */\n bucket?: string;\n}\n\n/** Configuration for a file upload */\nexport interface FileUploaderConfig {\n /** Field key for which this configuration applies */\n key: string;\n /** A list of supported MIME Types for the file */\n mimeTypes?: Array<string>;\n /** Base path where the file should be stored (default used when no output config is set, will be used as temporary storage when outputs are set) */\n path?: string;\n /** Bucket in which the file should be stored (will be used as temporary storage when outputs are set) */\n bucket: string;\n /** Maximum size of the file (ex: 2MB) */\n maxSize?: string;\n /** Indicates that the file must be present */\n required?: boolean;\n /** Do not store with an extension (will simply be a uuid) */\n noExtension?: boolean;\n /** Specify multiple outputs with processing */\n outputs?: Array<FileUploaderOutputs>;\n /** @deprecated compression of images */\n image?: CompressionOptions;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _fileUploader = require("./fileUploader");
|
|
7
|
+
Object.keys(_fileUploader).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _fileUploader[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _fileUploader[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _fileUploader2 = require("./fileUploader.types");
|
|
18
|
+
Object.keys(_fileUploader2).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _fileUploader2[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _fileUploader2[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_fileUploader","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_fileUploader2"],"sources":["../../../src/middleware/fileUploader/index.ts"],"sourcesContent":["export * from './fileUploader';\nexport * from './fileUploader.types';\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,cAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,cAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,cAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,cAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './isMultipart';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _isMultipart = require("./isMultipart");
|
|
7
|
+
Object.keys(_isMultipart).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _isMultipart[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _isMultipart[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_isMultipart","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/middleware/fileUploader/isMultiPart/index.ts"],"sourcesContent":["export * from './isMultipart';\n"],"mappings":";;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,YAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isMultipart = isMultipart;
|
|
7
|
+
const multipartRegex = /^multipart\/form-data.+$/;
|
|
8
|
+
|
|
9
|
+
/** Determines if the content type of a request is multipart/form-data */
|
|
10
|
+
function isMultipart(request) {
|
|
11
|
+
const type = request.get('Content-Type');
|
|
12
|
+
return !!type && multipartRegex.test(type.toLowerCase());
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=isMultipart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isMultipart.js","names":["multipartRegex","isMultipart","request","type","get","test","toLowerCase"],"sources":["../../../../src/middleware/fileUploader/isMultiPart/isMultipart.ts"],"sourcesContent":["import { Request } from 'express';\n\nconst multipartRegex = /^multipart\\/form-data.+$/;\n\n/** Determines if the content type of a request is multipart/form-data */\nexport function isMultipart(request: Request): boolean {\n const type = request.get('Content-Type');\n return !!type && multipartRegex.test(type.toLowerCase());\n}\n"],"mappings":";;;;;;AAEA,MAAMA,cAAc,GAAG,0BAA0B;;AAEjD;AACO,SAASC,WAAWA,CAACC,OAAgB,EAAW;EACrD,MAAMC,IAAI,GAAGD,OAAO,CAACE,GAAG,CAAC,cAAc,CAAC;EACxC,OAAO,CAAC,CAACD,IAAI,IAAIH,cAAc,CAACK,IAAI,CAACF,IAAI,CAACG,WAAW,CAAC,CAAC,CAAC;AAC1D","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './validate';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _validate = require("./validate");
|
|
7
|
+
Object.keys(_validate).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _validate[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _validate[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_validate","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/middleware/fileUploader/validate/index.ts"],"sourcesContent":["export * from './validate';\n"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validate = validate;
|
|
7
|
+
var _validate = require("../../validate");
|
|
8
|
+
/** Validate a schema against a request using our validation middleware */
|
|
9
|
+
async function validate(request, schema) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
// Generate a validation chain using our middleware
|
|
12
|
+
const validationChain = (0, _validate.validate)(schema).flat();
|
|
13
|
+
if (!validationChain.length) resolve();
|
|
14
|
+
// Recursively go through each middleware by imitating the next function from express
|
|
15
|
+
let position = -1;
|
|
16
|
+
const next = error => {
|
|
17
|
+
if (error) reject(error);
|
|
18
|
+
position++;
|
|
19
|
+
if (position === validationChain.length) {
|
|
20
|
+
resolve();
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
validationChain[position](request, undefined, next);
|
|
24
|
+
};
|
|
25
|
+
next();
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","names":["_validate","require","validate","request","schema","Promise","resolve","reject","validationChain","validateMiddleware","flat","length","position","next","error","undefined"],"sources":["../../../../src/middleware/fileUploader/validate/validate.ts"],"sourcesContent":["import { Request } from 'express';\nimport { Schema } from 'express-validator';\nimport { validate as validateMiddleware } from 'middleware/validate';\n\n/** Validate a schema against a request using our validation middleware */\nexport async function validate(\n request: Request,\n schema: Schema\n): Promise<void> {\n return new Promise((resolve, reject) => {\n // Generate a validation chain using our middleware\n const validationChain = validateMiddleware(schema).flat();\n if (!validationChain.length) resolve();\n // Recursively go through each middleware by imitating the next function from express\n let position = -1;\n const next = (error?: unknown): void => {\n if (error) reject(error);\n position++;\n if (position === validationChain.length) {\n resolve();\n return;\n }\n validationChain[position](request, undefined, next);\n };\n next();\n });\n}\n"],"mappings":";;;;;;AAEA,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACO,eAAeC,QAAQA,CAC5BC,OAAgB,EAChBC,MAAc,EACC;EACf,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC;IACA,MAAMC,eAAe,GAAG,IAAAC,kBAAkB,EAACL,MAAM,CAAC,CAACM,IAAI,CAAC,CAAC;IACzD,IAAI,CAACF,eAAe,CAACG,MAAM,EAAEL,OAAO,CAAC,CAAC;IACtC;IACA,IAAIM,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAMC,IAAI,GAAIC,KAAe,IAAW;MACtC,IAAIA,KAAK,EAAEP,MAAM,CAACO,KAAK,CAAC;MACxBF,QAAQ,EAAE;MACV,IAAIA,QAAQ,KAAKJ,eAAe,CAACG,MAAM,EAAE;QACvCL,OAAO,CAAC,CAAC;QACT;MACF;MACAE,eAAe,CAACI,QAAQ,CAAC,CAACT,OAAO,EAAEY,SAAS,EAAEF,IAAI,CAAC;IACrD,CAAC;IACDA,IAAI,CAAC,CAAC;EACR,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fourOhFour = fourOhFour;
|
|
7
|
+
var _utils = require("../../utils");
|
|
8
|
+
const namespace = 'engine:middleware:fourOhFour';
|
|
9
|
+
|
|
10
|
+
/** Unhandled path middleware */
|
|
11
|
+
function fourOhFour(request, response) {
|
|
12
|
+
(0, _utils.reportDebug)({
|
|
13
|
+
namespace,
|
|
14
|
+
message: `No route found [${request.method} - ${request.path}]`
|
|
15
|
+
});
|
|
16
|
+
response.sendStatus(404);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=fourOhFour.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fourOhFour.js","names":["_utils","require","namespace","fourOhFour","request","response","reportDebug","message","method","path","sendStatus"],"sources":["../../../src/middleware/fourOhFour/fourOhFour.ts"],"sourcesContent":["import { Request, Response } from 'express';\nimport { reportDebug } from 'utils';\n\nconst namespace = 'engine:middleware:fourOhFour';\n\n/** Unhandled path middleware */\nexport function fourOhFour(request: Request, response: Response): void {\n reportDebug({\n namespace,\n message: `No route found [${request.method} - ${request.path}]`\n });\n response.sendStatus(404);\n}\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,SAAS,GAAG,8BAA8B;;AAEhD;AACO,SAASC,UAAUA,CAACC,OAAgB,EAAEC,QAAkB,EAAQ;EACrE,IAAAC,kBAAW,EAAC;IACVJ,SAAS;IACTK,OAAO,EAAE,mBAAmBH,OAAO,CAACI,MAAM,MAAMJ,OAAO,CAACK,IAAI;EAC9D,CAAC,CAAC;EACFJ,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC;AAC1B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fourOhFour';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _fourOhFour = require("./fourOhFour");
|
|
7
|
+
Object.keys(_fourOhFour).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _fourOhFour[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _fourOhFour[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_fourOhFour","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/middleware/fourOhFour/index.ts"],"sourcesContent":["export * from './fourOhFour';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.healthCheck = healthCheck;
|
|
7
|
+
var _express = require("express");
|
|
8
|
+
/**
|
|
9
|
+
* respond to Kubernetes health-checks with 200
|
|
10
|
+
*/
|
|
11
|
+
function healthCheck(path = '/heartbeat') {
|
|
12
|
+
return (0, _express.Router)().get('/', (req, res) => {
|
|
13
|
+
res.sendStatus(200);
|
|
14
|
+
}).get(path, (req, res) => {
|
|
15
|
+
res.sendStatus(200);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=healthCheck.js.map
|