node-server-engine 1.1.4 → 1.1.6
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 +193 -193
- package/.mocharc.js +13 -13
- package/.nycrc +18 -18
- package/.prettierrc +7 -7
- package/Dockerfile +30 -30
- package/README.md +991 -991
- package/babel.config.json +34 -35
- package/dist/const/DebeziumEvent.js.map +1 -1
- package/dist/const/LogSeverity.js.map +1 -1
- package/dist/const/index.js.map +1 -1
- package/dist/const/metrics.js.map +1 -1
- package/dist/const/mime.js.map +1 -1
- package/dist/const/tokenIssuer.js.map +1 -1
- package/dist/db/migrations/20241030121500-create-sequelize-meta-table.js.map +1 -1
- package/dist/db/models/SequelizeMeta.js +1 -0
- package/dist/db/models/SequelizeMeta.js.map +1 -1
- package/dist/db/models/index.js.map +1 -1
- package/dist/entities/ElasticSearch/ElasticSearch.js +7 -7
- package/dist/entities/ElasticSearch/ElasticSearch.js.map +1 -1
- package/dist/entities/ElasticSearch/ElasticSearch.types.js.map +1 -1
- package/dist/entities/ElasticSearch/index.js.map +1 -1
- package/dist/entities/Endpoint/Endpoint.js +18 -17
- package/dist/entities/Endpoint/Endpoint.js.map +1 -1
- package/dist/entities/Endpoint/Endpoint.types.js.map +1 -1
- package/dist/entities/Endpoint/index.js.map +1 -1
- package/dist/entities/EngineError/EngineError.js +7 -6
- package/dist/entities/EngineError/EngineError.js.map +1 -1
- package/dist/entities/EngineError/EngineError.types.js.map +1 -1
- package/dist/entities/EngineError/index.js.map +1 -1
- package/dist/entities/KeySet/KeySet.js +10 -9
- package/dist/entities/KeySet/KeySet.js.map +1 -1
- package/dist/entities/KeySet/KeySet.types.js.map +1 -1
- package/dist/entities/KeySet/index.js.map +1 -1
- package/dist/entities/LifecycleController/LifecycleController.js.map +1 -1
- package/dist/entities/LifecycleController/LifecycleController.types.js.map +1 -1
- package/dist/entities/LifecycleController/index.js.map +1 -1
- package/dist/entities/Localizator/Localizator.js +7 -7
- package/dist/entities/Localizator/Localizator.js.map +1 -1
- package/dist/entities/Localizator/Localizator.types.js.map +1 -1
- package/dist/entities/Localizator/guessNamingConvention/guessNamingConvention.js.map +1 -1
- package/dist/entities/Localizator/guessNamingConvention/index.js.map +1 -1
- package/dist/entities/Localizator/index.js.map +1 -1
- package/dist/entities/MessageHandler/MessageHandler.js +7 -6
- package/dist/entities/MessageHandler/MessageHandler.js.map +1 -1
- package/dist/entities/MessageHandler/MessageHandler.types.js.map +1 -1
- package/dist/entities/MessageHandler/index.js.map +1 -1
- package/dist/entities/PubSub/PubSub.js +25 -25
- package/dist/entities/PubSub/PubSub.js.map +1 -1
- package/dist/entities/PubSub/PubSub.types.js.map +1 -1
- package/dist/entities/PubSub/handleMessage/handleMessage.js +6 -6
- package/dist/entities/PubSub/handleMessage/handleMessage.js.map +1 -1
- package/dist/entities/PubSub/handleMessage/index.js.map +1 -1
- package/dist/entities/PubSub/index.js.map +1 -1
- package/dist/entities/PushNotification/PushNotification.js +4 -4
- package/dist/entities/PushNotification/PushNotification.js.map +1 -1
- package/dist/entities/PushNotification/PushNotification.types.js.map +1 -1
- package/dist/entities/PushNotification/index.js.map +1 -1
- package/dist/entities/Redis/Redis.js +8 -8
- package/dist/entities/Redis/Redis.js.map +1 -1
- package/dist/entities/Redis/Redis.types.js.map +1 -1
- package/dist/entities/Redis/Redis.validate.js +2 -2
- package/dist/entities/Redis/Redis.validate.js.map +1 -1
- package/dist/entities/Redis/index.js.map +1 -1
- package/dist/entities/Sequelize/Sequelize.config.js.map +1 -1
- package/dist/entities/Sequelize/Sequelize.js +2 -2
- package/dist/entities/Sequelize/Sequelize.js.map +1 -1
- package/dist/entities/Sequelize/Sequelize.types.js.map +1 -1
- package/dist/entities/Sequelize/Sequelize.validate.js +2 -2
- package/dist/entities/Sequelize/Sequelize.validate.js.map +1 -1
- package/dist/entities/Sequelize/index.js.map +1 -1
- package/dist/entities/Server/Server.const.js.map +1 -1
- package/dist/entities/Server/Server.js +18 -17
- package/dist/entities/Server/Server.js.map +1 -1
- package/dist/entities/Server/Server.types.js.map +1 -1
- package/dist/entities/Server/index.js.map +1 -1
- package/dist/entities/SocketClient/SocketClient.js +33 -32
- package/dist/entities/SocketClient/SocketClient.js.map +1 -1
- package/dist/entities/SocketClient/SocketClient.types.js.map +1 -1
- package/dist/entities/SocketClient/index.js.map +1 -1
- package/dist/entities/SocketClient/parseMessage/index.js.map +1 -1
- package/dist/entities/SocketClient/parseMessage/parseMessage.js +2 -2
- package/dist/entities/SocketClient/parseMessage/parseMessage.js.map +1 -1
- package/dist/entities/Storage/Storage.js +20 -20
- package/dist/entities/Storage/Storage.js.map +1 -1
- package/dist/entities/Storage/Storage.types.js.map +1 -1
- package/dist/entities/Storage/index.js.map +1 -1
- package/dist/entities/ValidationError/ValidationError.js.map +1 -1
- package/dist/entities/ValidationError/index.js.map +1 -1
- package/dist/entities/WebError/WebError.js +7 -6
- package/dist/entities/WebError/WebError.js.map +1 -1
- package/dist/entities/WebError/WebError.types.js.map +1 -1
- package/dist/entities/WebError/index.js.map +1 -1
- package/dist/entities/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics/debug.js.map +1 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/request.js.map +1 -1
- package/dist/middleware/authAdmin/authAdmin.js.map +1 -1
- package/dist/middleware/authAdmin/authAdmin.types.js.map +1 -1
- package/dist/middleware/authAdmin/index.js.map +1 -1
- package/dist/middleware/authHmac/authHmac.js.map +1 -1
- package/dist/middleware/authHmac/authHmac.types.js.map +1 -1
- package/dist/middleware/authHmac/index.js.map +1 -1
- package/dist/middleware/authJwt/authJwt.js.map +1 -1
- package/dist/middleware/authJwt/authJwt.types.js.map +1 -1
- package/dist/middleware/authJwt/index.js.map +1 -1
- package/dist/middleware/authStatic/authStatic.js +3 -3
- package/dist/middleware/authStatic/authStatic.js.map +1 -1
- package/dist/middleware/authStatic/index.js.map +1 -1
- package/dist/middleware/authTls/authTls.js +8 -8
- package/dist/middleware/authTls/authTls.js.map +1 -1
- package/dist/middleware/authTls/authTls.types.js.map +1 -1
- package/dist/middleware/authTls/index.js.map +1 -1
- package/dist/middleware/checkPermission/checkPermission.js.map +1 -1
- package/dist/middleware/error/error.js.map +1 -1
- package/dist/middleware/error/index.js.map +1 -1
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js +2 -2
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.js.map +1 -1
- package/dist/middleware/fileUploader/compressAvatar/compressAvatar.types.js.map +1 -1
- package/dist/middleware/fileUploader/compressAvatar/index.js.map +1 -1
- package/dist/middleware/fileUploader/fileUploader.js +12 -12
- package/dist/middleware/fileUploader/fileUploader.js.map +1 -1
- package/dist/middleware/fileUploader/fileUploader.types.js.map +1 -1
- package/dist/middleware/fileUploader/index.js.map +1 -1
- package/dist/middleware/fileUploader/isMultiPart/index.js.map +1 -1
- package/dist/middleware/fileUploader/isMultiPart/isMultipart.js.map +1 -1
- package/dist/middleware/fileUploader/validate/index.js.map +1 -1
- package/dist/middleware/fileUploader/validate/validate.js.map +1 -1
- package/dist/middleware/fourOhFour/fourOhFour.js.map +1 -1
- package/dist/middleware/fourOhFour/index.js.map +1 -1
- package/dist/middleware/geminiFileUploader/geminiFileUploader.js.map +1 -1
- package/dist/middleware/geminiFileUploader/index.js.map +1 -1
- package/dist/middleware/healthCheck/healthCheck.js +2 -2
- package/dist/middleware/healthCheck/healthCheck.js.map +1 -1
- package/dist/middleware/healthCheck/index.js.map +1 -1
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/metrics/index.js.map +1 -1
- package/dist/middleware/metrics/metrics.js.map +1 -1
- package/dist/middleware/requestMetrics/index.js.map +1 -1
- package/dist/middleware/requestMetrics/requestMetrics.js.map +1 -1
- package/dist/middleware/swaggerDocs/index.js.map +1 -1
- package/dist/middleware/swaggerDocs/swaggerDocs.js +7 -7
- package/dist/middleware/swaggerDocs/swaggerDocs.js.map +1 -1
- package/dist/middleware/swaggerDocs/swaggerDocs.types.js.map +1 -1
- package/dist/middleware/userResolver/index.js.map +1 -1
- package/dist/middleware/userResolver/userResolver.js.map +1 -1
- package/dist/middleware/validate/index.js.map +1 -1
- package/dist/middleware/validate/validate.js.map +1 -1
- package/dist/middleware/version/index.js.map +1 -1
- package/dist/middleware/version/version.js +3 -3
- package/dist/middleware/version/version.js.map +1 -1
- package/dist/utils/checkEnvironment/index.js +13 -13
- package/dist/utils/checkEnvironment/index.js.map +1 -1
- package/dist/utils/createHttpServer/createHttpServer.js.map +1 -1
- package/dist/utils/createHttpServer/createHttpServer.validate.js +2 -2
- package/dist/utils/createHttpServer/createHttpServer.validate.js.map +1 -1
- package/dist/utils/createHttpServer/index.js.map +1 -1
- package/dist/utils/createSortedObject/createSortedObject.js.map +1 -1
- package/dist/utils/createSortedObject/index.js.map +1 -1
- package/dist/utils/dbMigration/dbMigration.js +8 -8
- package/dist/utils/dbMigration/dbMigration.js.map +1 -1
- package/dist/utils/dbMigration/dbMigration.types.js.map +1 -1
- package/dist/utils/dbMigration/index.js.map +1 -1
- package/dist/utils/dbMigration/migrateMetadataTable/index.js.map +1 -1
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +4 -4
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -1
- package/dist/utils/envAssert/envAssert.js +6 -6
- package/dist/utils/envAssert/envAssert.js.map +1 -1
- package/dist/utils/envAssert/index.js.map +1 -1
- package/dist/utils/envAssert/validators/hostList.js +2 -2
- package/dist/utils/envAssert/validators/hostList.js.map +1 -1
- package/dist/utils/envAssert/validators/index.js.map +1 -1
- package/dist/utils/envAssert/validators/ipList.js +2 -2
- package/dist/utils/envAssert/validators/ipList.js.map +1 -1
- package/dist/utils/envAssert/validators/path.js +2 -2
- package/dist/utils/envAssert/validators/path.js.map +1 -1
- package/dist/utils/envAssert/validators/string.js +2 -2
- package/dist/utils/envAssert/validators/string.js.map +1 -1
- package/dist/utils/envAssert/validators/stringList.js +3 -3
- package/dist/utils/envAssert/validators/stringList.js.map +1 -1
- package/dist/utils/filter/filter.js +4 -4
- package/dist/utils/filter/filter.js.map +1 -1
- package/dist/utils/filter/index.js.map +1 -1
- package/dist/utils/getDynamicLink/getDynamicLink.js.map +1 -1
- package/dist/utils/getDynamicLink/getDynamicLink.types.js.map +1 -1
- package/dist/utils/getDynamicLink/getDynamicLink.validate.js.map +1 -1
- package/dist/utils/getDynamicLink/index.js.map +1 -1
- package/dist/utils/hmac/checkEnv/checkEnv.js +2 -2
- package/dist/utils/hmac/checkEnv/checkEnv.js.map +1 -1
- package/dist/utils/hmac/checkEnv/index.js.map +1 -1
- package/dist/utils/hmac/createHmac/createHmac.js.map +1 -1
- package/dist/utils/hmac/createHmac/index.js.map +1 -1
- package/dist/utils/hmac/index.js.map +1 -1
- package/dist/utils/hmac/index.types.js.map +1 -1
- package/dist/utils/hmac/signPayload/index.js.map +1 -1
- package/dist/utils/hmac/signPayload/signPayload.js.map +1 -1
- package/dist/utils/hmac/verifySignature/index.js.map +1 -1
- package/dist/utils/hmac/verifySignature/verifySignature.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jwt/index.js.map +1 -1
- package/dist/utils/jwt/jwt.js.map +1 -1
- package/dist/utils/jwt/jwt.types.js.map +1 -1
- package/dist/utils/report/index.js.map +1 -1
- package/dist/utils/report/output.js.map +1 -1
- package/dist/utils/report/output.types.js.map +1 -1
- package/dist/utils/report/report.js.map +1 -1
- package/dist/utils/report/report.types.js.map +1 -1
- package/dist/utils/request/index.js.map +1 -1
- package/dist/utils/request/request.js.map +1 -1
- package/dist/utils/semverCompare/index.js.map +1 -1
- package/dist/utils/semverCompare/semverCompare.js +5 -5
- package/dist/utils/semverCompare/semverCompare.js.map +1 -1
- package/dist/utils/sendEmail/index.js.map +1 -1
- package/dist/utils/sendEmail/sendEmail.js +8 -8
- package/dist/utils/sendEmail/sendEmail.js.map +1 -1
- package/dist/utils/sendEmail/sendEmail.types.js.map +1 -1
- package/dist/utils/sendPush/index.js.map +1 -1
- package/dist/utils/sendPush/sendPush.js +5 -5
- package/dist/utils/sendPush/sendPush.js.map +1 -1
- package/dist/utils/sendPush/sendPush.types.js.map +1 -1
- package/dist/utils/tlsConfig/index.js.map +1 -1
- package/dist/utils/tlsConfig/tlsConfig.js +2 -2
- package/dist/utils/tlsConfig/tlsConfig.js.map +1 -1
- package/dist/utils/tlsConfig/tlsConfig.types.js.map +1 -1
- package/dist/utils/tlsConfig/tlsConfig.validate.js +2 -2
- package/dist/utils/tlsConfig/tlsConfig.validate.js.map +1 -1
- package/dist/utils/tlsRequest/index.js.map +1 -1
- package/dist/utils/tlsRequest/tlsRequest.js.map +1 -1
- package/dist/utils/trimPathSlash/index.js.map +1 -1
- package/dist/utils/trimPathSlash/trimPathSlash.js +4 -4
- package/dist/utils/trimPathSlash/trimPathSlash.js.map +1 -1
- package/eslint.config.mjs +11 -11
- package/package.json +159 -164
- package/src/const/DebeziumEvent.ts +6 -6
- package/src/const/LogSeverity.ts +7 -7
- package/src/const/index.ts +5 -5
- package/src/const/metrics.ts +6 -6
- package/src/const/mime.ts +37 -37
- package/src/const/tokenIssuer.ts +9 -9
- package/src/db/migrations/20241030121500-create-sequelize-meta-table.ts +29 -29
- package/src/db/models/SequelizeMeta.ts +16 -16
- package/src/db/models/index.ts +2 -2
- package/src/entities/ElasticSearch/ElasticSearch.ts +103 -103
- package/src/entities/ElasticSearch/ElasticSearch.types.ts +7 -7
- package/src/entities/ElasticSearch/index.ts +2 -2
- package/src/entities/Endpoint/Endpoint.test.ts +337 -337
- package/src/entities/Endpoint/Endpoint.ts +202 -202
- package/src/entities/Endpoint/Endpoint.types.ts +205 -205
- package/src/entities/Endpoint/index.ts +2 -2
- package/src/entities/EngineError/EngineError.ts +28 -28
- package/src/entities/EngineError/EngineError.types.ts +15 -15
- package/src/entities/EngineError/index.ts +2 -2
- package/src/entities/KeySet/KeySet.test.ts +126 -126
- package/src/entities/KeySet/KeySet.ts +172 -172
- package/src/entities/KeySet/KeySet.types.ts +28 -28
- package/src/entities/KeySet/index.ts +2 -2
- package/src/entities/LifecycleController/LifecycleController.test.ts +48 -48
- package/src/entities/LifecycleController/LifecycleController.ts +24 -24
- package/src/entities/LifecycleController/LifecycleController.types.ts +5 -5
- package/src/entities/LifecycleController/index.ts +2 -2
- package/src/entities/Localizator/Localizator.ts +139 -139
- package/src/entities/Localizator/Localizator.types.ts +52 -52
- package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.test.ts +165 -165
- package/src/entities/Localizator/guessNamingConvention/guessNamingConvention.ts +58 -58
- package/src/entities/Localizator/guessNamingConvention/index.ts +1 -1
- package/src/entities/Localizator/index.ts +2 -2
- package/src/entities/MessageHandler/MessageHandler.test.ts +130 -130
- package/src/entities/MessageHandler/MessageHandler.ts +72 -72
- package/src/entities/MessageHandler/MessageHandler.types.ts +15 -15
- package/src/entities/MessageHandler/index.ts +2 -2
- package/src/entities/PubSub/PubSub.test.ts +297 -297
- package/src/entities/PubSub/PubSub.ts +202 -202
- package/src/entities/PubSub/PubSub.types.ts +76 -76
- package/src/entities/PubSub/handleMessage/handleMessage.test.ts +102 -102
- package/src/entities/PubSub/handleMessage/handleMessage.ts +65 -65
- package/src/entities/PubSub/handleMessage/index.ts +1 -1
- package/src/entities/PubSub/index.ts +2 -2
- package/src/entities/PushNotification/PushNotification.test.ts +35 -35
- package/src/entities/PushNotification/PushNotification.ts +44 -44
- package/src/entities/PushNotification/PushNotification.types.ts +25 -25
- package/src/entities/PushNotification/index.ts +2 -2
- package/src/entities/Redis/Redis.ts +71 -71
- package/src/entities/Redis/Redis.types.ts +19 -19
- package/src/entities/Redis/Redis.validate.ts +17 -17
- package/src/entities/Redis/index.ts +2 -2
- package/src/entities/Sequelize/Sequelize.config.ts +59 -59
- package/src/entities/Sequelize/Sequelize.test.ts +21 -21
- package/src/entities/Sequelize/Sequelize.ts +75 -75
- package/src/entities/Sequelize/Sequelize.types.ts +10 -10
- package/src/entities/Sequelize/Sequelize.validate.ts +15 -15
- package/src/entities/Sequelize/index.ts +2 -2
- package/src/entities/Server/Server.const.ts +56 -56
- package/src/entities/Server/Server.test.ts +272 -272
- package/src/entities/Server/Server.ts +445 -445
- package/src/entities/Server/Server.types.ts +88 -88
- package/src/entities/Server/index.ts +2 -2
- package/src/entities/SocketClient/SocketClient.test.ts +392 -392
- package/src/entities/SocketClient/SocketClient.ts +401 -401
- package/src/entities/SocketClient/SocketClient.types.ts +62 -62
- package/src/entities/SocketClient/index.ts +2 -2
- package/src/entities/SocketClient/parseMessage/index.ts +1 -1
- package/src/entities/SocketClient/parseMessage/parseMessage.test.ts +20 -20
- package/src/entities/SocketClient/parseMessage/parseMessage.ts +26 -26
- package/src/entities/Storage/Storage.test.ts +58 -58
- package/src/entities/Storage/Storage.ts +219 -219
- package/src/entities/Storage/Storage.types.ts +57 -57
- package/src/entities/Storage/index.ts +2 -2
- package/src/entities/ValidationError/ValidationError.ts +34 -34
- package/src/entities/ValidationError/index.ts +1 -1
- package/src/entities/WebError/WebError.test.ts +18 -18
- package/src/entities/WebError/WebError.ts +23 -23
- package/src/entities/WebError/WebError.types.ts +9 -9
- package/src/entities/WebError/index.ts +2 -2
- package/src/entities/index.ts +16 -16
- package/src/index.ts +4 -4
- package/src/metrics/debug.ts +10 -10
- package/src/metrics/index.ts +2 -2
- package/src/metrics/request.ts +17 -17
- package/src/middleware/authAdmin/authAdmin.test.ts +199 -199
- package/src/middleware/authAdmin/authAdmin.ts +114 -114
- package/src/middleware/authAdmin/authAdmin.types.ts +19 -19
- package/src/middleware/authAdmin/index.ts +2 -2
- package/src/middleware/authHmac/authHmac.test.ts +86 -86
- package/src/middleware/authHmac/authHmac.ts +56 -56
- package/src/middleware/authHmac/authHmac.types.ts +7 -7
- package/src/middleware/authHmac/index.ts +2 -2
- package/src/middleware/authJwt/authJwt.test.ts +54 -54
- package/src/middleware/authJwt/authJwt.ts +55 -55
- package/src/middleware/authJwt/authJwt.types.ts +14 -14
- package/src/middleware/authJwt/index.ts +2 -2
- package/src/middleware/authStatic/authStatic.test.ts +36 -36
- package/src/middleware/authStatic/authStatic.ts +45 -45
- package/src/middleware/authStatic/index.ts +1 -1
- package/src/middleware/authTls/authTls.test.ts +138 -138
- package/src/middleware/authTls/authTls.ts +106 -106
- package/src/middleware/authTls/authTls.types.ts +13 -13
- package/src/middleware/authTls/index.ts +2 -2
- package/src/middleware/checkPermission/checkPermission.ts +32 -32
- package/src/middleware/error/error.test.ts +60 -60
- package/src/middleware/error/error.ts +25 -25
- package/src/middleware/error/index.ts +1 -1
- package/src/middleware/fileUploader/compressAvatar/compressAvatar.ts +25 -25
- package/src/middleware/fileUploader/compressAvatar/compressAvatar.types.ts +12 -12
- package/src/middleware/fileUploader/compressAvatar/index.ts +2 -2
- package/src/middleware/fileUploader/fileUploader.test.ts +310 -310
- package/src/middleware/fileUploader/fileUploader.ts +303 -303
- package/src/middleware/fileUploader/fileUploader.types.ts +52 -52
- package/src/middleware/fileUploader/index.ts +2 -2
- package/src/middleware/fileUploader/isMultiPart/index.ts +1 -1
- package/src/middleware/fileUploader/isMultiPart/isMultipart.ts +9 -9
- package/src/middleware/fileUploader/validate/index.ts +1 -1
- package/src/middleware/fileUploader/validate/validate.ts +27 -27
- package/src/middleware/fourOhFour/fourOhFour.test.ts +14 -14
- package/src/middleware/fourOhFour/fourOhFour.ts +13 -13
- package/src/middleware/fourOhFour/index.ts +1 -1
- package/src/middleware/geminiFileUploader/geminiFileUploader.ts +117 -117
- package/src/middleware/geminiFileUploader/index.ts +1 -1
- package/src/middleware/healthCheck/healthCheck.test.ts +12 -12
- package/src/middleware/healthCheck/healthCheck.ts +14 -14
- package/src/middleware/healthCheck/index.ts +1 -1
- package/src/middleware/index.ts +17 -17
- package/src/middleware/metrics/index.ts +1 -1
- package/src/middleware/metrics/metrics.test.ts +46 -46
- package/src/middleware/metrics/metrics.ts +24 -24
- package/src/middleware/requestMetrics/index.ts +1 -1
- package/src/middleware/requestMetrics/requestMetrics.test.ts +77 -77
- package/src/middleware/requestMetrics/requestMetrics.ts +20 -20
- package/src/middleware/swaggerDocs/index.ts +2 -2
- package/src/middleware/swaggerDocs/swaggerDocs.ts +114 -114
- package/src/middleware/swaggerDocs/swaggerDocs.types.ts +41 -41
- package/src/middleware/userResolver/index.ts +1 -1
- package/src/middleware/userResolver/userResolver.test.ts +35 -35
- package/src/middleware/userResolver/userResolver.ts +35 -35
- package/src/middleware/validate/index.ts +1 -1
- package/src/middleware/validate/validate.test.ts +43 -43
- package/src/middleware/validate/validate.ts +25 -25
- package/src/middleware/version/index.ts +1 -1
- package/src/middleware/version/version.test.ts +23 -23
- package/src/middleware/version/version.ts +12 -12
- package/src/utils/checkEnvironment/index.ts +49 -49
- package/src/utils/createHttpServer/createHttpServer.test.ts +24 -24
- package/src/utils/createHttpServer/createHttpServer.ts +34 -34
- package/src/utils/createHttpServer/createHttpServer.validate.ts +17 -17
- package/src/utils/createHttpServer/index.ts +1 -1
- package/src/utils/createSortedObject/createSortedObject.ts +20 -20
- package/src/utils/createSortedObject/createSortedObjet.test.ts +47 -47
- package/src/utils/createSortedObject/index.ts +1 -1
- package/src/utils/dbMigration/dbMigration.test.ts +209 -209
- package/src/utils/dbMigration/dbMigration.ts +199 -199
- package/src/utils/dbMigration/dbMigration.types.ts +11 -11
- package/src/utils/dbMigration/index.ts +2 -2
- package/src/utils/dbMigration/migrateMetadataTable/index.ts +1 -1
- package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.test.ts +59 -59
- package/src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts +102 -102
- package/src/utils/envAssert/envAssert.ts +31 -31
- package/src/utils/envAssert/index.ts +1 -1
- package/src/utils/envAssert/validators/hostList.ts +17 -17
- package/src/utils/envAssert/validators/index.ts +5 -5
- package/src/utils/envAssert/validators/ipList.ts +13 -13
- package/src/utils/envAssert/validators/path.ts +13 -13
- package/src/utils/envAssert/validators/string.ts +9 -9
- package/src/utils/envAssert/validators/stringList.ts +13 -13
- package/src/utils/filter/filter.ts +17 -17
- package/src/utils/filter/index.ts +1 -1
- package/src/utils/getDynamicLink/getDynamicLink.test.ts +51 -51
- package/src/utils/getDynamicLink/getDynamicLink.ts +28 -28
- package/src/utils/getDynamicLink/getDynamicLink.types.ts +11 -11
- package/src/utils/getDynamicLink/getDynamicLink.validate.ts +6 -6
- package/src/utils/getDynamicLink/index.ts +2 -2
- package/src/utils/hmac/checkEnv/checkEnv.test.ts +18 -18
- package/src/utils/hmac/checkEnv/checkEnv.ts +9 -9
- package/src/utils/hmac/checkEnv/index.ts +1 -1
- package/src/utils/hmac/createHmac/createHmac.ts +33 -33
- package/src/utils/hmac/createHmac/index.ts +1 -1
- package/src/utils/hmac/index.ts +4 -4
- package/src/utils/hmac/index.types.ts +13 -13
- package/src/utils/hmac/signPayload/index.ts +1 -1
- package/src/utils/hmac/signPayload/signPayload.ts +16 -16
- package/src/utils/hmac/verifySignature/index.ts +1 -1
- package/src/utils/hmac/verifySignature/verifySignature.ts +24 -24
- package/src/utils/index.ts +26 -26
- package/src/utils/jwt/index.ts +2 -2
- package/src/utils/jwt/jwt.test.ts +41 -41
- package/src/utils/jwt/jwt.ts +204 -204
- package/src/utils/jwt/jwt.types.ts +21 -21
- package/src/utils/report/index.ts +3 -3
- package/src/utils/report/output.ts +45 -45
- package/src/utils/report/output.types.ts +70 -70
- package/src/utils/report/report.test.ts +133 -133
- package/src/utils/report/report.ts +134 -134
- package/src/utils/report/report.types.ts +13 -13
- package/src/utils/request/index.ts +1 -1
- package/src/utils/request/request.test.ts +26 -26
- package/src/utils/request/request.ts +48 -48
- package/src/utils/semverCompare/index.ts +1 -1
- package/src/utils/semverCompare/semverCompare.test.ts +49 -49
- package/src/utils/semverCompare/semverCompare.ts +60 -60
- package/src/utils/sendEmail/index.ts +1 -1
- package/src/utils/sendEmail/sendEmail.ts +27 -27
- package/src/utils/sendEmail/sendEmail.types.ts +7 -7
- package/src/utils/sendPush/index.ts +2 -2
- package/src/utils/sendPush/sendPush.ts +20 -20
- package/src/utils/sendPush/sendPush.types.ts +25 -25
- package/src/utils/tlsConfig/index.ts +2 -2
- package/src/utils/tlsConfig/tlsConfig.test.ts +32 -32
- package/src/utils/tlsConfig/tlsConfig.ts +47 -47
- package/src/utils/tlsConfig/tlsConfig.types.ts +11 -11
- package/src/utils/tlsConfig/tlsConfig.validate.ts +25 -25
- package/src/utils/tlsRequest/index.ts +1 -1
- package/src/utils/tlsRequest/tlsRequest.test.ts +63 -63
- package/src/utils/tlsRequest/tlsRequest.ts +12 -12
- package/src/utils/trimPathSlash/index.ts +1 -1
- package/src/utils/trimPathSlash/trimPathSlash.test.ts +26 -26
- package/src/utils/trimPathSlash/trimPathSlash.ts +8 -8
- package/test/env.ts +56 -56
- package/test/factory/index.ts +8 -8
- package/test/factory/sequelizeMeta.ts +12 -12
- package/test/hooks.ts +37 -37
- package/test/index.ts +3 -3
- package/test/stub/index.ts +3 -3
- package/test/stub/stubLocales.ts +68 -68
- package/test/stub/stubPubSub.ts +7 -7
- package/test/stub/stubStorage.ts +77 -77
- package/test/stub/stubStorage.types.ts +11 -11
- package/test/utils/app.ts +31 -31
- package/test/utils/index.ts +1 -1
- package/tsconfig.build.json +5 -5
- package/tsconfig.json +32 -32
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.validateHttpEnvironment = validateHttpEnvironment;
|
|
7
7
|
var _ = require("./..");
|
|
8
|
-
/**
|
|
9
|
-
* Environment variable validator for the creation of a HTTP(S) server
|
|
8
|
+
/**
|
|
9
|
+
* Environment variable validator for the creation of a HTTP(S) server
|
|
10
10
|
*/
|
|
11
11
|
function validateHttpEnvironment() {
|
|
12
12
|
// We only check if there is at least the host specified
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHttpServer.validate.js","names":["_","require","validateHttpEnvironment","process","env","TLS_SERVER_CERT","assertEnvironment","TLS_SERVER_KEY","envAssert","isPath","TLS_SERVER_KEY_PASSPHRASE","isString","TLS_CA"],"sources":["../../../src/utils/createHttpServer/createHttpServer.validate.ts"],"sourcesContent":["import { assertEnvironment, envAssert } from 'utils';\
|
|
1
|
+
{"version":3,"file":"createHttpServer.validate.js","names":["_","require","validateHttpEnvironment","process","env","TLS_SERVER_CERT","assertEnvironment","TLS_SERVER_KEY","envAssert","isPath","TLS_SERVER_KEY_PASSPHRASE","isString","TLS_CA"],"sources":["../../../src/utils/createHttpServer/createHttpServer.validate.ts"],"sourcesContent":["import { assertEnvironment, envAssert } from 'utils';\n\n/**\n * Environment variable validator for the creation of a HTTP(S) server\n */\nexport function validateHttpEnvironment(): void {\n // We only check if there is at least the host specified\n if (process.env.TLS_SERVER_CERT && process.env.TLS_SERVER_CERT) {\n assertEnvironment({ TLS_SERVER_KEY: envAssert.isPath() });\n assertEnvironment({ TLS_SERVER_CERT: envAssert.isPath() });\n // Optional variables\n if (process.env.TLS_SERVER_KEY_PASSPHRASE) {\n assertEnvironment({ TLS_SERVER_KEY_PASSPHRASE: envAssert.isString() });\n }\n if (process.env.TLS_CA) assertEnvironment({ TLS_CA: envAssert.isPath() });\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACO,SAASC,uBAAuBA,CAAA,EAAS;EAC9C;EACA,IAAIC,OAAO,CAACC,GAAG,CAACC,eAAe,IAAIF,OAAO,CAACC,GAAG,CAACC,eAAe,EAAE;IAC9D,IAAAC,mBAAiB,EAAC;MAAEC,cAAc,EAAEC,WAAS,CAACC,MAAM,CAAC;IAAE,CAAC,CAAC;IACzD,IAAAH,mBAAiB,EAAC;MAAED,eAAe,EAAEG,WAAS,CAACC,MAAM,CAAC;IAAE,CAAC,CAAC;IAC1D;IACA,IAAIN,OAAO,CAACC,GAAG,CAACM,yBAAyB,EAAE;MACzC,IAAAJ,mBAAiB,EAAC;QAAEI,yBAAyB,EAAEF,WAAS,CAACG,QAAQ,CAAC;MAAE,CAAC,CAAC;IACxE;IACA,IAAIR,OAAO,CAACC,GAAG,CAACQ,MAAM,EAAE,IAAAN,mBAAiB,EAAC;MAAEM,MAAM,EAAEJ,WAAS,CAACC,MAAM,CAAC;IAAE,CAAC,CAAC;EAC3E;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_createHttpServer","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/createHttpServer/index.ts"],"sourcesContent":["export * from './createHttpServer';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_createHttpServer","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/createHttpServer/index.ts"],"sourcesContent":["export * from './createHttpServer';\n"],"mappings":";;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSortedObject.js","names":["createSortedObject","data","Object","Error","result","keys","sort","forEach","key","value","Array"],"sources":["../../../src/utils/createSortedObject/createSortedObject.ts"],"sourcesContent":["/** Deep sort the objects keys alphabetically */\
|
|
1
|
+
{"version":3,"file":"createSortedObject.js","names":["createSortedObject","data","Object","Error","result","keys","sort","forEach","key","value","Array"],"sources":["../../../src/utils/createSortedObject/createSortedObject.ts"],"sourcesContent":["/** Deep sort the objects keys alphabetically */\nexport function createSortedObject<T>(data: T): T {\n if (!(data instanceof Object)) throw new Error('Non');\n const result: Record<string, unknown> = {};\n Object.keys(data)\n .sort()\n .forEach((key: string) => {\n const value = (data as Record<string, unknown>)[key];\n if (\n typeof value !== 'object' ||\n value instanceof Array ||\n value === null\n ) {\n result[key] = value;\n } else {\n result[key] = createSortedObject(value);\n }\n });\n return result as T;\n}\n"],"mappings":";;;;;;AAAA;AACO,SAASA,kBAAkBA,CAAIC,IAAO,EAAK;EAChD,IAAI,EAAEA,IAAI,YAAYC,MAAM,CAAC,EAAE,MAAM,IAAIC,KAAK,CAAC,KAAK,CAAC;EACrD,MAAMC,MAA+B,GAAG,CAAC,CAAC;EAC1CF,MAAM,CAACG,IAAI,CAACJ,IAAI,CAAC,CACdK,IAAI,CAAC,CAAC,CACNC,OAAO,CAAEC,GAAW,IAAK;IACxB,MAAMC,KAAK,GAAIR,IAAI,CAA6BO,GAAG,CAAC;IACpD,IACE,OAAOC,KAAK,KAAK,QAAQ,IACzBA,KAAK,YAAYC,KAAK,IACtBD,KAAK,KAAK,IAAI,EACd;MACAL,MAAM,CAACI,GAAG,CAAC,GAAGC,KAAK;IACrB,CAAC,MAAM;MACLL,MAAM,CAACI,GAAG,CAAC,GAAGR,kBAAkB,CAACS,KAAK,CAAC;IACzC;EACF,CAAC,CAAC;EACJ,OAAOL,MAAM;AACf","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_createSortedObject","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/createSortedObject/index.ts"],"sourcesContent":["export * from './createSortedObject';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_createSortedObject","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/createSortedObject/index.ts"],"sourcesContent":["export * from './createSortedObject';\n"],"mappings":";;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,mBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,mBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,mBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -165,10 +165,10 @@ async function rollbackMigrations() {
|
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
/**
|
|
169
|
-
* Recreate the whole database
|
|
170
|
-
* Quick way to make sure that we are working on a clean database
|
|
171
|
-
* /!\ Should only be used when running tests
|
|
168
|
+
/**
|
|
169
|
+
* Recreate the whole database
|
|
170
|
+
* Quick way to make sure that we are working on a clean database
|
|
171
|
+
* /!\ Should only be used when running tests
|
|
172
172
|
*/
|
|
173
173
|
async function testRecreateDB(options = {}) {
|
|
174
174
|
if (!_Sequelize.sequelize) throw new _EngineError.EngineError({
|
|
@@ -179,10 +179,10 @@ async function testRecreateDB(options = {}) {
|
|
|
179
179
|
if (!options.clean) await runPendingMigrations();
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
/**
|
|
183
|
-
* Empty all the schemas in the database
|
|
184
|
-
* Quick way to flush the database data while keep the structure
|
|
185
|
-
* /!\ Should only be used when running tests
|
|
182
|
+
/**
|
|
183
|
+
* Empty all the schemas in the database
|
|
184
|
+
* Quick way to flush the database data while keep the structure
|
|
185
|
+
* /!\ Should only be used when running tests
|
|
186
186
|
*/
|
|
187
187
|
async function testClearDB(options = {}) {
|
|
188
188
|
if (!_Sequelize.sequelize) throw new _EngineError.EngineError({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbMigration.js","names":["_fs","require","_path","_umzug","_migrateMetadataTable","_models","_EngineError","_Sequelize","_report","_semverCompare","namespace","getMigrationPaths","prodDefaultPath","join","process","cwd","devDefaultPath","path","env","DB_MIGRATIONS_DIR","NODE_ENV","filter","existsSync","lstatSync","isDirectory","reportDebug","message","data","prodPath","devPath","customPath","map","p","runPendingMigrations","sequelize","EngineError","migrateMetadataTable","migrationPaths","length","forEach","migrator","Umzug","migrations","glob","resolve","name","context","migration","up","down","getQueryInterface","storage","SequelizeStorage","logger","console","log","rollbackMigrations","BUILD_ID","SequelizeMeta","findAll","order","raw","rollbackUntil","find","version","semverCompare","buildId","to","testRecreateDB","options","query","SQL_TYPE","clean","testClearDB","transaction","clearDbTransaction","t","model","Object","keys","models","includeMetadata","table","tableName"],"sources":["../../../src/utils/dbMigration/dbMigration.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-require-imports */\r\n// Register ts-node at the top of runMigrations.ts\r\nrequire('ts-node/register');\r\n\r\nimport { existsSync, lstatSync } from 'fs';\r\nimport { join } from 'path';\r\nimport { Sequelize, Transaction } from 'sequelize';\r\nimport { Umzug, SequelizeStorage } from 'umzug';\r\nimport { ClearDbOptions, RecreateDbOptions } from './dbMigration.types';\r\nimport { migrateMetadataTable } from './migrateMetadataTable';\r\nimport { SequelizeMeta } from 'db/models';\r\nimport { EngineError } from 'entities/EngineError';\r\nimport { sequelize } from 'entities/Sequelize';\r\nimport { reportDebug } from 'utils/report';\r\nimport { semverCompare } from 'utils/semverCompare';\r\n\r\nconst namespace = 'engine:utils:dbMigration';\r\n\r\nfunction getMigrationPaths(): Array<string> | undefined {\r\n // We look between possibilities for the first directory that exists and matches our expectations\r\n // First a user specified one, then the production default, then the development default\r\n const prodDefaultPath = join(process.cwd(), './dist/db/migrations');\r\n const devDefaultPath = join(process.cwd(), './src/db/migrations');\r\n const path = [\r\n process.env.DB_MIGRATIONS_DIR,\r\n process.env.NODE_ENV === 'prod' ? prodDefaultPath : devDefaultPath\r\n ].filter((path) => path && existsSync(path) && lstatSync(path).isDirectory());\r\n reportDebug({\r\n namespace,\r\n message: 'Obtaining Umzug migration options',\r\n data: {\r\n path,\r\n prodPath: prodDefaultPath,\r\n devPath: devDefaultPath,\r\n customPath: process.env.DB_MIGRATIONS_DIR\r\n }\r\n });\r\n return path.map((p) =>\r\n process.env.NODE_ENV === 'prod' ? `${p}/*.js` : `${p}/*.ts`\r\n );\r\n}\r\n\r\n/** Run all the non-executed migrations one by one */\r\nexport async function runPendingMigrations(): Promise<void> {\r\n if (!sequelize)\r\n throw new EngineError({ message: 'Sequelize is not initialized' });\r\n // First make sure that the metadata table is up to date\r\n await migrateMetadataTable(sequelize);\r\n const migrationPaths = getMigrationPaths();\r\n\r\n if (!migrationPaths || migrationPaths.length <= 0) {\r\n reportDebug({\r\n namespace,\r\n message: 'No valid migration paths found.',\r\n data: { migrationPaths }\r\n });\r\n return;\r\n }\r\n\r\n migrationPaths?.forEach(async (path) => {\r\n const migrator = new Umzug({\r\n migrations: {\r\n glob: path,\r\n resolve: ({ name, path, context }) => {\r\n // Use require to import the migration file\r\n const migration = require(path || '');\r\n return {\r\n name,\r\n up: async () => migration.up(context),\r\n down: async () => migration.down(context)\r\n };\r\n }\r\n },\r\n context: sequelize.getQueryInterface(),\r\n storage: new SequelizeStorage({ sequelize }),\r\n logger: console\r\n });\r\n\r\n reportDebug({\r\n namespace,\r\n message: 'Starting pending database migrations',\r\n data: { path }\r\n });\r\n await migrator.up();\r\n console.log('Db Migration Completed');\r\n });\r\n}\r\n\r\n/** Rollback all migrations up to a specified target version */\r\nexport async function rollbackMigrations(): Promise<void> {\r\n if (!sequelize)\r\n throw new EngineError({ message: 'Sequelize is not initialized' });\r\n if (!process.env.BUILD_ID)\r\n throw new EngineError({ message: 'BUILD_ID is not defined' });\r\n\r\n // Fetch executed migrations in ascending order\r\n const migrations = await SequelizeMeta.findAll({\r\n order: [['name', 'ASC']],\r\n raw: true\r\n });\r\n const rollbackUntil = migrations.find(\r\n (migration) =>\r\n migration.version &&\r\n semverCompare(migration.version, process.env.BUILD_ID as string) === 1\r\n );\r\n\r\n if (!rollbackUntil) {\r\n reportDebug({\r\n namespace,\r\n message: 'No rollback target found for the current BUILD_ID.',\r\n data: { buildId: process.env.BUILD_ID }\r\n });\r\n return;\r\n }\r\n\r\n const migrationPaths = getMigrationPaths();\r\n\r\n if (!migrationPaths || migrationPaths.length <= 0) {\r\n reportDebug({\r\n namespace,\r\n message: 'No valid migration paths found for rollback.',\r\n data: { migrationPaths }\r\n });\r\n return;\r\n }\r\n\r\n migrationPaths.forEach(async (path) => {\r\n const migrator = new Umzug({\r\n migrations: {\r\n glob: path,\r\n resolve: ({ name, path, context }) => {\r\n const migration = require(path || '');\r\n return {\r\n name,\r\n up: async () => migration.up(context),\r\n down: async () => migration.down(context)\r\n };\r\n }\r\n },\r\n context: sequelize.getQueryInterface(),\r\n storage: new SequelizeStorage({ sequelize }),\r\n logger: console\r\n });\r\n\r\n reportDebug({\r\n namespace,\r\n message: `Rolling back migrations up to: ${rollbackUntil.name}`,\r\n data: { path }\r\n });\r\n\r\n await migrator.down({ to: rollbackUntil.name });\r\n });\r\n}\r\n\r\n/**\r\n * Recreate the whole database\r\n * Quick way to make sure that we are working on a clean database\r\n * /!\\ Should only be used when running tests\r\n */\r\nexport async function testRecreateDB(\r\n options: RecreateDbOptions = {}\r\n): Promise<void> {\r\n if (!sequelize)\r\n throw new EngineError({ message: 'Sequelize is not initialized' });\r\n await sequelize.query(\r\n `DROP SCHEMA public${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''}`\r\n );\r\n await sequelize.query(`CREATE SCHEMA public`);\r\n if (!options.clean) await runPendingMigrations();\r\n}\r\n\r\n/**\r\n * Empty all the schemas in the database\r\n * Quick way to flush the database data while keep the structure\r\n * /!\\ Should only be used when running tests\r\n */\r\nexport async function testClearDB(options: ClearDbOptions = {}): Promise<void> {\r\n if (!sequelize)\r\n throw new EngineError({ message: 'Sequelize is not initialized' });\r\n await sequelize.transaction(clearDbTransaction(sequelize, options));\r\n}\r\n\r\n/** DB clearing transaction */\r\nfunction clearDbTransaction(sequelize: Sequelize, options: ClearDbOptions) {\r\n return async (t: Transaction): Promise<void> => {\r\n for (const model of Object.keys(sequelize.models)) {\r\n // We ignore the migration metadata schema\r\n if (!options.includeMetadata && model === 'sequelizeMeta') continue;\r\n const table = sequelize.models[model].tableName;\r\n await sequelize.query(\r\n `TRUNCATE ${table}${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''};`,\r\n {\r\n raw: true,\r\n transaction: t\r\n }\r\n );\r\n }\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"dbMigration.js","names":["_fs","require","_path","_umzug","_migrateMetadataTable","_models","_EngineError","_Sequelize","_report","_semverCompare","namespace","getMigrationPaths","prodDefaultPath","join","process","cwd","devDefaultPath","path","env","DB_MIGRATIONS_DIR","NODE_ENV","filter","existsSync","lstatSync","isDirectory","reportDebug","message","data","prodPath","devPath","customPath","map","p","runPendingMigrations","sequelize","EngineError","migrateMetadataTable","migrationPaths","length","forEach","migrator","Umzug","migrations","glob","resolve","name","context","migration","up","down","getQueryInterface","storage","SequelizeStorage","logger","console","log","rollbackMigrations","BUILD_ID","SequelizeMeta","findAll","order","raw","rollbackUntil","find","version","semverCompare","buildId","to","testRecreateDB","options","query","SQL_TYPE","clean","testClearDB","transaction","clearDbTransaction","t","model","Object","keys","models","includeMetadata","table","tableName"],"sources":["../../../src/utils/dbMigration/dbMigration.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-require-imports */\n// Register ts-node at the top of runMigrations.ts\nrequire('ts-node/register');\n\nimport { existsSync, lstatSync } from 'fs';\nimport { join } from 'path';\nimport { Sequelize, Transaction } from 'sequelize';\nimport { Umzug, SequelizeStorage } from 'umzug';\nimport { ClearDbOptions, RecreateDbOptions } from './dbMigration.types';\nimport { migrateMetadataTable } from './migrateMetadataTable';\nimport { SequelizeMeta } from 'db/models';\nimport { EngineError } from 'entities/EngineError';\nimport { sequelize } from 'entities/Sequelize';\nimport { reportDebug } from 'utils/report';\nimport { semverCompare } from 'utils/semverCompare';\n\nconst namespace = 'engine:utils:dbMigration';\n\nfunction getMigrationPaths(): Array<string> | undefined {\n // We look between possibilities for the first directory that exists and matches our expectations\n // First a user specified one, then the production default, then the development default\n const prodDefaultPath = join(process.cwd(), './dist/db/migrations');\n const devDefaultPath = join(process.cwd(), './src/db/migrations');\n const path = [\n process.env.DB_MIGRATIONS_DIR,\n process.env.NODE_ENV === 'prod' ? prodDefaultPath : devDefaultPath\n ].filter((path) => path && existsSync(path) && lstatSync(path).isDirectory());\n reportDebug({\n namespace,\n message: 'Obtaining Umzug migration options',\n data: {\n path,\n prodPath: prodDefaultPath,\n devPath: devDefaultPath,\n customPath: process.env.DB_MIGRATIONS_DIR\n }\n });\n return path.map((p) =>\n process.env.NODE_ENV === 'prod' ? `${p}/*.js` : `${p}/*.ts`\n );\n}\n\n/** Run all the non-executed migrations one by one */\nexport async function runPendingMigrations(): Promise<void> {\n if (!sequelize)\n throw new EngineError({ message: 'Sequelize is not initialized' });\n // First make sure that the metadata table is up to date\n await migrateMetadataTable(sequelize);\n const migrationPaths = getMigrationPaths();\n\n if (!migrationPaths || migrationPaths.length <= 0) {\n reportDebug({\n namespace,\n message: 'No valid migration paths found.',\n data: { migrationPaths }\n });\n return;\n }\n\n migrationPaths?.forEach(async (path) => {\n const migrator = new Umzug({\n migrations: {\n glob: path,\n resolve: ({ name, path, context }) => {\n // Use require to import the migration file\n const migration = require(path || '');\n return {\n name,\n up: async () => migration.up(context),\n down: async () => migration.down(context)\n };\n }\n },\n context: sequelize.getQueryInterface(),\n storage: new SequelizeStorage({ sequelize }),\n logger: console\n });\n\n reportDebug({\n namespace,\n message: 'Starting pending database migrations',\n data: { path }\n });\n await migrator.up();\n console.log('Db Migration Completed');\n });\n}\n\n/** Rollback all migrations up to a specified target version */\nexport async function rollbackMigrations(): Promise<void> {\n if (!sequelize)\n throw new EngineError({ message: 'Sequelize is not initialized' });\n if (!process.env.BUILD_ID)\n throw new EngineError({ message: 'BUILD_ID is not defined' });\n\n // Fetch executed migrations in ascending order\n const migrations = await SequelizeMeta.findAll({\n order: [['name', 'ASC']],\n raw: true\n });\n const rollbackUntil = migrations.find(\n (migration) =>\n migration.version &&\n semverCompare(migration.version, process.env.BUILD_ID as string) === 1\n );\n\n if (!rollbackUntil) {\n reportDebug({\n namespace,\n message: 'No rollback target found for the current BUILD_ID.',\n data: { buildId: process.env.BUILD_ID }\n });\n return;\n }\n\n const migrationPaths = getMigrationPaths();\n\n if (!migrationPaths || migrationPaths.length <= 0) {\n reportDebug({\n namespace,\n message: 'No valid migration paths found for rollback.',\n data: { migrationPaths }\n });\n return;\n }\n\n migrationPaths.forEach(async (path) => {\n const migrator = new Umzug({\n migrations: {\n glob: path,\n resolve: ({ name, path, context }) => {\n const migration = require(path || '');\n return {\n name,\n up: async () => migration.up(context),\n down: async () => migration.down(context)\n };\n }\n },\n context: sequelize.getQueryInterface(),\n storage: new SequelizeStorage({ sequelize }),\n logger: console\n });\n\n reportDebug({\n namespace,\n message: `Rolling back migrations up to: ${rollbackUntil.name}`,\n data: { path }\n });\n\n await migrator.down({ to: rollbackUntil.name });\n });\n}\n\n/**\n * Recreate the whole database\n * Quick way to make sure that we are working on a clean database\n * /!\\ Should only be used when running tests\n */\nexport async function testRecreateDB(\n options: RecreateDbOptions = {}\n): Promise<void> {\n if (!sequelize)\n throw new EngineError({ message: 'Sequelize is not initialized' });\n await sequelize.query(\n `DROP SCHEMA public${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''}`\n );\n await sequelize.query(`CREATE SCHEMA public`);\n if (!options.clean) await runPendingMigrations();\n}\n\n/**\n * Empty all the schemas in the database\n * Quick way to flush the database data while keep the structure\n * /!\\ Should only be used when running tests\n */\nexport async function testClearDB(options: ClearDbOptions = {}): Promise<void> {\n if (!sequelize)\n throw new EngineError({ message: 'Sequelize is not initialized' });\n await sequelize.transaction(clearDbTransaction(sequelize, options));\n}\n\n/** DB clearing transaction */\nfunction clearDbTransaction(sequelize: Sequelize, options: ClearDbOptions) {\n return async (t: Transaction): Promise<void> => {\n for (const model of Object.keys(sequelize.models)) {\n // We ignore the migration metadata schema\n if (!options.includeMetadata && model === 'sequelizeMeta') continue;\n const table = sequelize.models[model].tableName;\n await sequelize.query(\n `TRUNCATE ${table}${process.env.SQL_TYPE === 'postgres' ? ' CASCADE' : ''};`,\n {\n raw: true,\n transaction: t\n }\n );\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbMigration.types.js","names":[],"sources":["../../../src/utils/dbMigration/dbMigration.types.ts"],"sourcesContent":["/** Options to recreate the database */\
|
|
1
|
+
{"version":3,"file":"dbMigration.types.js","names":[],"sources":["../../../src/utils/dbMigration/dbMigration.types.ts"],"sourcesContent":["/** Options to recreate the database */\nexport interface RecreateDbOptions {\n /** Do not run the migrations, leave the DB empty */\n clean?: boolean;\n}\n\n/** Options to clear the database */\nexport interface ClearDbOptions {\n /** Also truncate the migration metadata table. This should only be used when testing on the metadata table itself */\n includeMetadata?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_dbMigration","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dbMigration2"],"sources":["../../../src/utils/dbMigration/index.ts"],"sourcesContent":["export * from './dbMigration';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_dbMigration","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dbMigration2"],"sources":["../../../src/utils/dbMigration/index.ts"],"sourcesContent":["export * from './dbMigration';\nexport * from './dbMigration.types';\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;AACA,IAAAK,aAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,aAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,aAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_migrateMetadataTable","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/dbMigration/migrateMetadataTable/index.ts"],"sourcesContent":["export * from './migrateMetadataTable';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_migrateMetadataTable","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/dbMigration/migrateMetadataTable/index.ts"],"sourcesContent":["export * from './migrateMetadataTable';\n"],"mappings":";;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,qBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,qBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,qBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -8,10 +8,10 @@ var _sequelize = require("sequelize");
|
|
|
8
8
|
var _report = require("../../report");
|
|
9
9
|
const namespace = 'engine:utils:dbMigration';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Run migrations on the metadata table
|
|
13
|
-
* The table containing the migrations metadata cannot be handled through migrations
|
|
14
|
-
* Therefore, we use a more classic approach with this function and pure SQL queries
|
|
11
|
+
/**
|
|
12
|
+
* Run migrations on the metadata table
|
|
13
|
+
* The table containing the migrations metadata cannot be handled through migrations
|
|
14
|
+
* Therefore, we use a more classic approach with this function and pure SQL queries
|
|
15
15
|
*/
|
|
16
16
|
async function migrateMetadataTable(sequelize) {
|
|
17
17
|
(0, _report.reportDebug)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateMetadataTable.js","names":["_sequelize","require","_report","namespace","migrateMetadataTable","sequelize","reportDebug","message","query","tables","type","QueryTypes","SELECT","hasCustomSequelizeMeta","process","env","SQL_TYPE","some","table","Object","values","hasLegacySequelizeMeta","createTableQuery","Error","RAW","migrations","insertQuery","map","migration","name","join","INSERT"],"sources":["../../../../src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts"],"sourcesContent":["import { Sequelize, QueryTypes } from 'sequelize';\
|
|
1
|
+
{"version":3,"file":"migrateMetadataTable.js","names":["_sequelize","require","_report","namespace","migrateMetadataTable","sequelize","reportDebug","message","query","tables","type","QueryTypes","SELECT","hasCustomSequelizeMeta","process","env","SQL_TYPE","some","table","Object","values","hasLegacySequelizeMeta","createTableQuery","Error","RAW","migrations","insertQuery","map","migration","name","join","INSERT"],"sources":["../../../../src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts"],"sourcesContent":["import { Sequelize, QueryTypes } from 'sequelize';\nimport { SequelizeMeta } from 'db/models';\nimport { reportDebug } from 'utils/report';\n\nconst namespace = 'engine:utils:dbMigration';\n\n/**\n * Run migrations on the metadata table\n * The table containing the migrations metadata cannot be handled through migrations\n * Therefore, we use a more classic approach with this function and pure SQL queries\n */\nexport async function migrateMetadataTable(\n sequelize: Sequelize\n): Promise<void> {\n reportDebug({ namespace, message: 'Executing metadata migration routine' });\n\n const query = `SELECT table_name FROM information_schema.tables`;\n\n // We check if we have a custom sequelize_meta table yet\n const tables = await sequelize.query<Array<string>>(query, {\n type: QueryTypes.SELECT\n });\n\n const hasCustomSequelizeMeta =\n process.env.SQL_TYPE === 'postgres'\n ? tables.some((table) => table[0] === 'sequelize_meta')\n : tables.some((table) => Object.values(table)[0] === 'sequelize_meta');\n const hasLegacySequelizeMeta =\n process.env.SQL_TYPE === 'postgres'\n ? tables.some((table) => table[0] === 'SequelizeMeta')\n : tables.some((table) => Object.values(table)[0] === 'SequelizeMeta');\n if (!hasCustomSequelizeMeta) {\n reportDebug({\n namespace,\n message: 'No metadata table found, creating new one'\n });\n\n // Define SQL for creating the table based on the database type\n let createTableQuery = '';\n\n switch (process.env.SQL_TYPE) {\n case 'mysql':\n case 'postgres':\n createTableQuery = `\n CREATE TABLE sequelize_meta (\n name VARCHAR(100) PRIMARY KEY,\n version VARCHAR(25),\n createdAt TIMESTAMP NOT NULL,\n updatedAt TIMESTAMP NOT NULL\n )`;\n break;\n case 'mssql':\n createTableQuery = `\n CREATE TABLE sequelize_meta (\n name VARCHAR(100) PRIMARY KEY,\n version VARCHAR(25),\n createdAt DATETIME NOT NULL,\n updatedAt DATETIME NOT NULL\n )`;\n break;\n default:\n throw new Error('Unsupported SQL type');\n }\n\n // Create the new sequelize_meta table if it does not exist\n await sequelize.query(createTableQuery, { type: QueryTypes.RAW });\n\n // Migrate the data from the old table to the new one if needed\n if (hasLegacySequelizeMeta) {\n reportDebug({\n namespace,\n message: 'Legacy metadata table found, migrating data'\n });\n\n const migrations = await sequelize.query<SequelizeMeta>(\n 'SELECT name FROM SequelizeMeta ORDER BY name',\n {\n type: QueryTypes.SELECT\n }\n );\n\n const insertQuery = `\n INSERT INTO sequelize_meta (name, version, createdAt, updatedAt) VALUES\n ${migrations\n .map((migration) => {\n switch (process.env.SQL_TYPE) {\n case 'mysql':\n case 'postgres':\n return `('${migration.name}', NULL, NOW(), NOW())`;\n case 'mssql':\n return `('${migration.name}', NULL, GETDATE(), GETDATE())`;\n default:\n throw new Error('Unsupported SQL type');\n }\n })\n .join(',')}\n `;\n\n await sequelize.query(insertQuery, { type: QueryTypes.INSERT });\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,SAAS,GAAG,0BAA0B;;AAE5C;AACA;AACA;AACA;AACA;AACO,eAAeC,oBAAoBA,CACxCC,SAAoB,EACL;EACf,IAAAC,mBAAW,EAAC;IAAEH,SAAS;IAAEI,OAAO,EAAE;EAAuC,CAAC,CAAC;EAE3E,MAAMC,KAAK,GAAG,kDAAkD;;EAEhE;EACA,MAAMC,MAAM,GAAG,MAAMJ,SAAS,CAACG,KAAK,CAAgBA,KAAK,EAAE;IACzDE,IAAI,EAAEC,qBAAU,CAACC;EACnB,CAAC,CAAC;EAEF,MAAMC,sBAAsB,GAC1BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,UAAU,GAC/BP,MAAM,CAACQ,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,GACrDT,MAAM,CAACQ,IAAI,CAAEC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;EAC1E,MAAMG,sBAAsB,GAC1BP,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,UAAU,GAC/BP,MAAM,CAACQ,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,GACpDT,MAAM,CAACQ,IAAI,CAAEC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC;EACzE,IAAI,CAACL,sBAAsB,EAAE;IAC3B,IAAAP,mBAAW,EAAC;MACVH,SAAS;MACTI,OAAO,EAAE;IACX,CAAC,CAAC;;IAEF;IACA,IAAIe,gBAAgB,GAAG,EAAE;IAEzB,QAAQR,OAAO,CAACC,GAAG,CAACC,QAAQ;MAC1B,KAAK,OAAO;MACZ,KAAK,UAAU;QACbM,gBAAgB,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY;QACJ;MACF,KAAK,OAAO;QACVA,gBAAgB,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY;QACJ;MACF;QACE,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;IAC3C;;IAEA;IACA,MAAMlB,SAAS,CAACG,KAAK,CAACc,gBAAgB,EAAE;MAAEZ,IAAI,EAAEC,qBAAU,CAACa;IAAI,CAAC,CAAC;;IAEjE;IACA,IAAIH,sBAAsB,EAAE;MAC1B,IAAAf,mBAAW,EAAC;QACVH,SAAS;QACTI,OAAO,EAAE;MACX,CAAC,CAAC;MAEF,MAAMkB,UAAU,GAAG,MAAMpB,SAAS,CAACG,KAAK,CACtC,8CAA8C,EAC9C;QACEE,IAAI,EAAEC,qBAAU,CAACC;MACnB,CACF,CAAC;MAED,MAAMc,WAAW,GAAG;AAC1B;AACA,UAAUD,UAAU,CACTE,GAAG,CAAEC,SAAS,IAAK;QAClB,QAAQd,OAAO,CAACC,GAAG,CAACC,QAAQ;UAC1B,KAAK,OAAO;UACZ,KAAK,UAAU;YACb,OAAO,KAAKY,SAAS,CAACC,IAAI,wBAAwB;UACpD,KAAK,OAAO;YACV,OAAO,KAAKD,SAAS,CAACC,IAAI,gCAAgC;UAC5D;YACE,MAAM,IAAIN,KAAK,CAAC,sBAAsB,CAAC;QAC3C;MACF,CAAC,CAAC,CACDO,IAAI,CAAC,GAAG,CAAC;AACpB,KAAK;MAEC,MAAMzB,SAAS,CAACG,KAAK,CAACkB,WAAW,EAAE;QAAEhB,IAAI,EAAEC,qBAAU,CAACoB;MAAO,CAAC,CAAC;IACjE;EACF;AACF","ignoreList":[]}
|
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.envAssert = void 0;
|
|
7
7
|
var _envalid = require("envalid");
|
|
8
8
|
var _validators = require("./validators");
|
|
9
|
-
/**
|
|
10
|
-
* envalid validators to use with checkEnvironment made with evalid.makeValidator and validator.js
|
|
11
|
-
* is* functions. + Also Added isString, isHost, and isIPList.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* envalid docs: https://github.com/af/envalid
|
|
9
|
+
/**
|
|
10
|
+
* envalid validators to use with checkEnvironment made with evalid.makeValidator and validator.js
|
|
11
|
+
* is* functions. + Also Added isString, isHost, and isIPList.
|
|
12
|
+
*
|
|
13
|
+
*
|
|
14
|
+
* envalid docs: https://github.com/af/envalid
|
|
15
15
|
*/
|
|
16
16
|
const envAssert = exports.envAssert = {
|
|
17
17
|
isString: _validators.envIsString,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envAssert.js","names":["_envalid","require","_validators","envAssert","exports","isString","envIsString","isBoolean","bool","isNumber","num","isEmail","email","isHost","host","isPort","port","isURL","url","isJSON","json","isIPList","envIsIpList","isPath","envIsPath","isHostList","envIsHostList","isStringList","envIsStringList"],"sources":["../../../src/utils/envAssert/envAssert.ts"],"sourcesContent":["import { bool, num, host, email, port, url, json } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"envAssert.js","names":["_envalid","require","_validators","envAssert","exports","isString","envIsString","isBoolean","bool","isNumber","num","isEmail","email","isHost","host","isPort","port","isURL","url","isJSON","json","isIPList","envIsIpList","isPath","envIsPath","isHostList","envIsHostList","isStringList","envIsStringList"],"sources":["../../../src/utils/envAssert/envAssert.ts"],"sourcesContent":["import { bool, num, host, email, port, url, json } from 'envalid';\n\nimport {\n envIsIpList,\n envIsPath,\n envIsHostList,\n envIsStringList,\n envIsString\n} from './validators';\n\n/**\n * envalid validators to use with checkEnvironment made with evalid.makeValidator and validator.js\n * is* functions. + Also Added isString, isHost, and isIPList.\n *\n *\n * envalid docs: https://github.com/af/envalid\n */\nexport const envAssert = {\n isString: envIsString,\n isBoolean: bool,\n isNumber: num,\n isEmail: email,\n isHost: host,\n isPort: port,\n isURL: url,\n isJSON: json,\n isIPList: envIsIpList,\n isPath: envIsPath,\n isHostList: envIsHostList,\n isStringList: envIsStringList\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvBE,QAAQ,EAAEC,uBAAW;EACrBC,SAAS,EAAEC,aAAI;EACfC,QAAQ,EAAEC,YAAG;EACbC,OAAO,EAAEC,cAAK;EACdC,MAAM,EAAEC,aAAI;EACZC,MAAM,EAAEC,aAAI;EACZC,KAAK,EAAEC,YAAG;EACVC,MAAM,EAAEC,aAAI;EACZC,QAAQ,EAAEC,uBAAW;EACrBC,MAAM,EAAEC,qBAAS;EACjBC,UAAU,EAAEC,yBAAa;EACzBC,YAAY,EAAEC;AAChB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_envAssert","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/envAssert/index.ts"],"sourcesContent":["export * from './envAssert';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_envAssert","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/envAssert/index.ts"],"sourcesContent":["export * from './envAssert';\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.envIsHostList = void 0;
|
|
8
8
|
var _envalid = require("envalid");
|
|
9
9
|
var _validator = _interopRequireDefault(require("validator"));
|
|
10
|
-
/**
|
|
11
|
-
* Validate that a string is a list of comma separated host names
|
|
10
|
+
/**
|
|
11
|
+
* Validate that a string is a list of comma separated host names
|
|
12
12
|
*/
|
|
13
13
|
const envIsHostList = exports.envIsHostList = (0, _envalid.makeValidator)(value => {
|
|
14
14
|
if (!value) throw new Error('expected a host name');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostList.js","names":["_envalid","require","_validator","_interopRequireDefault","envIsHostList","exports","makeValidator","value","Error","hosts","split","valid","every","host","validator","isIP","trim","isFQDN","require_tld"],"sources":["../../../../src/utils/envAssert/validators/hostList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"hostList.js","names":["_envalid","require","_validator","_interopRequireDefault","envIsHostList","exports","makeValidator","value","Error","hosts","split","valid","every","host","validator","isIP","trim","isFQDN","require_tld"],"sources":["../../../../src/utils/envAssert/validators/hostList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\nimport validator from 'validator';\n\n/**\n * Validate that a string is a list of comma separated host names\n */\nexport const envIsHostList = makeValidator((value): boolean => {\n if (!value) throw new Error('expected a host name');\n const hosts = value.split(',');\n const valid = hosts.every(\n (host) =>\n validator.isIP(host.trim()) ||\n validator.isFQDN(host.trim(), { require_tld: false })\n );\n if (!valid) throw new Error('expected a host name');\n return valid;\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,IAAAE,sBAAa,EAAEC,KAAK,IAAc;EAC7D,IAAI,CAACA,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,sBAAsB,CAAC;EACnD,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAC9B,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CACtBC,IAAI,IACHC,kBAAS,CAACC,IAAI,CAACF,IAAI,CAACG,IAAI,CAAC,CAAC,CAAC,IAC3BF,kBAAS,CAACG,MAAM,CAACJ,IAAI,CAACG,IAAI,CAAC,CAAC,EAAE;IAAEE,WAAW,EAAE;EAAM,CAAC,CACxD,CAAC;EACD,IAAI,CAACP,KAAK,EAAE,MAAM,IAAIH,KAAK,CAAC,sBAAsB,CAAC;EACnD,OAAOG,KAAK;AACd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_ipList","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_path","_hostList","_stringList","_string"],"sources":["../../../../src/utils/envAssert/validators/index.ts"],"sourcesContent":["export * from './ipList';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_ipList","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_path","_hostList","_stringList","_string"],"sources":["../../../../src/utils/envAssert/validators/index.ts"],"sourcesContent":["export * from './ipList';\nexport * from './path';\nexport * from './hostList';\nexport * from './stringList';\nexport * from './string';\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,KAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,KAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,KAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,KAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,SAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,SAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,SAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,SAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,WAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,WAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,WAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,WAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,OAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,OAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,OAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,OAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.envIsIpList = void 0;
|
|
8
8
|
var _envalid = require("envalid");
|
|
9
9
|
var _validator = _interopRequireDefault(require("validator"));
|
|
10
|
-
/**
|
|
11
|
-
* Validate that a string is a list of comma separated ip (V4/V6) addresses
|
|
10
|
+
/**
|
|
11
|
+
* Validate that a string is a list of comma separated ip (V4/V6) addresses
|
|
12
12
|
*/
|
|
13
13
|
const envIsIpList = exports.envIsIpList = (0, _envalid.makeValidator)(value => {
|
|
14
14
|
if (!value) throw new Error('expected an ip address');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipList.js","names":["_envalid","require","_validator","_interopRequireDefault","envIsIpList","exports","makeValidator","value","Error","ips","split","valid","every","v","validator","isIP"],"sources":["../../../../src/utils/envAssert/validators/ipList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"ipList.js","names":["_envalid","require","_validator","_interopRequireDefault","envIsIpList","exports","makeValidator","value","Error","ips","split","valid","every","v","validator","isIP"],"sources":["../../../../src/utils/envAssert/validators/ipList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\nimport validator from 'validator';\n\n/**\n * Validate that a string is a list of comma separated ip (V4/V6) addresses\n */\nexport const envIsIpList = makeValidator((value): boolean => {\n if (!value) throw new Error('expected an ip address');\n const ips = value.split(',');\n const valid = ips.every((v) => validator.isIP(v));\n if (!valid) throw new Error('expected an ip address');\n return valid;\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA;AACA;AACA;AACO,MAAMG,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,sBAAa,EAAEC,KAAK,IAAc;EAC3D,IAAI,CAACA,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EACrD,MAAMC,GAAG,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAC5B,MAAMC,KAAK,GAAGF,GAAG,CAACG,KAAK,CAAEC,CAAC,IAAKC,kBAAS,CAACC,IAAI,CAACF,CAAC,CAAC,CAAC;EACjD,IAAI,CAACF,KAAK,EAAE,MAAM,IAAIH,KAAK,CAAC,wBAAwB,CAAC;EACrD,OAAOG,KAAK;AACd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -7,8 +7,8 @@ exports.envIsPath = void 0;
|
|
|
7
7
|
var _envalid = require("envalid");
|
|
8
8
|
const pathRegex = /^(\.\.\/(?:\.\.\/)*)?(?!.*?\/\/)(?!(?:.*\/)?\.+(?:\/|$)).+$/;
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* Validate that a string is a system path (linux only)
|
|
10
|
+
/**
|
|
11
|
+
* Validate that a string is a system path (linux only)
|
|
12
12
|
*/
|
|
13
13
|
const envIsPath = exports.envIsPath = (0, _envalid.makeValidator)(value => {
|
|
14
14
|
if (!value) throw new Error('expected a path');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","names":["_envalid","require","pathRegex","envIsPath","exports","makeValidator","value","Error","valid","test"],"sources":["../../../../src/utils/envAssert/validators/path.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"path.js","names":["_envalid","require","pathRegex","envIsPath","exports","makeValidator","value","Error","valid","test"],"sources":["../../../../src/utils/envAssert/validators/path.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\n\nconst pathRegex = /^(\\.\\.\\/(?:\\.\\.\\/)*)?(?!.*?\\/\\/)(?!(?:.*\\/)?\\.+(?:\\/|$)).+$/;\n\n/**\n * Validate that a string is a system path (linux only)\n */\nexport const envIsPath = makeValidator((value): boolean => {\n if (!value) throw new Error('expected a path');\n const valid = pathRegex.test(value);\n if (!valid) throw new Error('expected a path');\n return valid;\n});\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,MAAMC,SAAS,GAAG,6DAA6D;;AAE/E;AACA;AACA;AACO,MAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,sBAAa,EAAEC,KAAK,IAAc;EACzD,IAAI,CAACA,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;EAC9C,MAAMC,KAAK,GAAGN,SAAS,CAACO,IAAI,CAACH,KAAK,CAAC;EACnC,IAAI,CAACE,KAAK,EAAE,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;EAC9C,OAAOC,KAAK;AACd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.envIsString = void 0;
|
|
7
7
|
var _envalid = require("envalid");
|
|
8
|
-
/**
|
|
9
|
-
* Validate that aa value is a string
|
|
8
|
+
/**
|
|
9
|
+
* Validate that aa value is a string
|
|
10
10
|
*/
|
|
11
11
|
const envIsString = exports.envIsString = (0, _envalid.makeValidator)(value => {
|
|
12
12
|
if (!value || typeof value !== 'string') throw new Error('expected a string');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","names":["_envalid","require","envIsString","exports","makeValidator","value","Error","length"],"sources":["../../../../src/utils/envAssert/validators/string.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"string.js","names":["_envalid","require","envIsString","exports","makeValidator","value","Error","length"],"sources":["../../../../src/utils/envAssert/validators/string.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\n\n/**\n * Validate that aa value is a string\n */\nexport const envIsString = makeValidator((value): boolean => {\n if (!value || typeof value !== 'string') throw new Error('expected a string');\n return value.length > 0;\n});\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,sBAAa,EAAEC,KAAK,IAAc;EAC3D,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;EAC7E,OAAOD,KAAK,CAACE,MAAM,GAAG,CAAC;AACzB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.envIsStringList = void 0;
|
|
7
7
|
var _envalid = require("envalid");
|
|
8
|
-
/**
|
|
9
|
-
* Validate that a string is a list of comma separated strings
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Validate that a string is a list of comma separated strings
|
|
10
|
+
|
|
11
11
|
*/
|
|
12
12
|
const envIsStringList = exports.envIsStringList = (0, _envalid.makeValidator)(value => {
|
|
13
13
|
if (!value) throw new Error('expected a string');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stringList.js","names":["_envalid","require","envIsStringList","exports","makeValidator","value","Error","strings","split","valid","every","v"],"sources":["../../../../src/utils/envAssert/validators/stringList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\
|
|
1
|
+
{"version":3,"file":"stringList.js","names":["_envalid","require","envIsStringList","exports","makeValidator","value","Error","strings","split","valid","every","v"],"sources":["../../../../src/utils/envAssert/validators/stringList.ts"],"sourcesContent":["import { makeValidator } from 'envalid';\n\n/**\n * Validate that a string is a list of comma separated strings\n\n */\nexport const envIsStringList = makeValidator((value): boolean => {\n if (!value) throw new Error('expected a string');\n const strings = value.split(',');\n const valid = strings.every((v) => typeof v === 'string');\n if (!valid) throw new Error('expected a string');\n return valid;\n});\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,IAAAE,sBAAa,EAAEC,KAAK,IAAc;EAC/D,IAAI,CAACA,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;EAChD,MAAMC,OAAO,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;EAChC,MAAMC,KAAK,GAAGF,OAAO,CAACG,KAAK,CAAEC,CAAC,IAAK,OAAOA,CAAC,KAAK,QAAQ,CAAC;EACzD,IAAI,CAACF,KAAK,EAAE,MAAM,IAAIH,KAAK,CAAC,mBAAmB,CAAC;EAChD,OAAOG,KAAK;AACd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.filter = filter;
|
|
7
|
-
/**
|
|
8
|
-
* Filters an object, returns a copy of that object with only the keys specified in the whitelist
|
|
9
|
-
* @param object - The object to filter
|
|
10
|
-
* @param whitelist - A list of keys to keep
|
|
7
|
+
/**
|
|
8
|
+
* Filters an object, returns a copy of that object with only the keys specified in the whitelist
|
|
9
|
+
* @param object - The object to filter
|
|
10
|
+
* @param whitelist - A list of keys to keep
|
|
11
11
|
*/
|
|
12
12
|
function filter(object, whitelist) {
|
|
13
13
|
const copy = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","names":["filter","object","whitelist","copy","key","Object","keys","includes"],"sources":["../../../src/utils/filter/filter.ts"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"filter.js","names":["filter","object","whitelist","copy","key","Object","keys","includes"],"sources":["../../../src/utils/filter/filter.ts"],"sourcesContent":["/**\n * Filters an object, returns a copy of that object with only the keys specified in the whitelist\n * @param object - The object to filter\n * @param whitelist - A list of keys to keep\n */\nexport function filter<T extends Record<string, unknown>>(\n object: T,\n whitelist: Array<string>\n): T {\n const copy: Record<string, unknown> = {};\n for (const key of Object.keys(object)) {\n if (whitelist.includes(key)) {\n copy[key] = object[key];\n }\n }\n return copy as T;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACO,SAASA,MAAMA,CACpBC,MAAS,EACTC,SAAwB,EACrB;EACH,MAAMC,IAA6B,GAAG,CAAC,CAAC;EACxC,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACL,MAAM,CAAC,EAAE;IACrC,IAAIC,SAAS,CAACK,QAAQ,CAACH,GAAG,CAAC,EAAE;MAC3BD,IAAI,CAACC,GAAG,CAAC,GAAGH,MAAM,CAACG,GAAG,CAAC;IACzB;EACF;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_filter","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/filter/index.ts"],"sourcesContent":["export * from './filter';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_filter","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../src/utils/filter/index.ts"],"sourcesContent":["export * from './filter';\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDynamicLink.js","names":["_getDynamicLink","require","_tlsRequest","getDynamicLink","path","options","validateDynamicLinkEnvironment","option","method","url","baseURL","process","env","LINKS_SERVICE_URL","params","short","data","link","tlsRequest"],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\
|
|
1
|
+
{"version":3,"file":"getDynamicLink.js","names":["_getDynamicLink","require","_tlsRequest","getDynamicLink","path","options","validateDynamicLinkEnvironment","option","method","url","baseURL","process","env","LINKS_SERVICE_URL","params","short","data","link","tlsRequest"],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\nimport {\n getDynamicLinksOptions,\n DynamicLinkResponseBody\n} from './getDynamicLink.types';\nimport { validateDynamicLinkEnvironment } from './getDynamicLink.validate';\nimport { tlsRequest } from 'utils/tlsRequest';\n\n/** Fetch a dynamic link from the links service */\nexport async function getDynamicLink(\n path: string,\n options: getDynamicLinksOptions = {}\n): Promise<string> {\n validateDynamicLinkEnvironment();\n const option: AxiosRequestConfig = {\n method: 'get',\n url: '/link',\n baseURL: process.env.LINKS_SERVICE_URL,\n params: {\n path,\n short: options.short ?? true\n }\n };\n const {\n data: { link }\n } = await tlsRequest<DynamicLinkResponseBody>(option);\n return link;\n}\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACO,eAAeE,cAAcA,CAClCC,IAAY,EACZC,OAA+B,GAAG,CAAC,CAAC,EACnB;EACjB,IAAAC,8CAA8B,EAAC,CAAC;EAChC,MAAMC,MAA0B,GAAG;IACjCC,MAAM,EAAE,KAAK;IACbC,GAAG,EAAE,OAAO;IACZC,OAAO,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB;IACtCC,MAAM,EAAE;MACNV,IAAI;MACJW,KAAK,EAAEV,OAAO,CAACU,KAAK,IAAI;IAC1B;EACF,CAAC;EACD,MAAM;IACJC,IAAI,EAAE;MAAEC;IAAK;EACf,CAAC,GAAG,MAAM,IAAAC,sBAAU,EAA0BX,MAAM,CAAC;EACrD,OAAOU,IAAI;AACb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDynamicLink.types.js","names":[],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.types.ts"],"sourcesContent":["/** Options to fetch dynamic links */\
|
|
1
|
+
{"version":3,"file":"getDynamicLink.types.js","names":[],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.types.ts"],"sourcesContent":["/** Options to fetch dynamic links */\nexport interface getDynamicLinksOptions {\n /** Make a shortened link */\n short?: boolean;\n}\n\n/** Dynamic link query server response */\nexport interface DynamicLinkResponseBody {\n /** The generated dynamic link */\n link: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDynamicLink.validate.js","names":["_","require","validateDynamicLinkEnvironment","assertEnvironment","LINKS_SERVICE_URL","envAssert","isURL"],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.validate.ts"],"sourcesContent":["import { assertEnvironment, envAssert } from 'utils';\
|
|
1
|
+
{"version":3,"file":"getDynamicLink.validate.js","names":["_","require","validateDynamicLinkEnvironment","assertEnvironment","LINKS_SERVICE_URL","envAssert","isURL"],"sources":["../../../src/utils/getDynamicLink/getDynamicLink.validate.ts"],"sourcesContent":["import { assertEnvironment, envAssert } from 'utils';\n\n/** Environment variable validator for get dynamic link from LinkService */\nexport function validateDynamicLinkEnvironment(): void {\n assertEnvironment({ LINKS_SERVICE_URL: envAssert.isURL() });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEA;AACO,SAASC,8BAA8BA,CAAA,EAAS;EACrD,IAAAC,mBAAiB,EAAC;IAAEC,iBAAiB,EAAEC,WAAS,CAACC,KAAK,CAAC;EAAE,CAAC,CAAC;AAC7D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_getDynamicLink","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getDynamicLink2"],"sources":["../../../src/utils/getDynamicLink/index.ts"],"sourcesContent":["export * from './getDynamicLink';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getDynamicLink","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_getDynamicLink2"],"sources":["../../../src/utils/getDynamicLink/index.ts"],"sourcesContent":["export * from './getDynamicLink';\nexport * from './getDynamicLink.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":[]}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.assertPayloadSignatureSecret = assertPayloadSignatureSecret;
|
|
7
7
|
var _checkEnvironment = require("../../checkEnvironment");
|
|
8
8
|
var _envAssert = require("../../envAssert");
|
|
9
|
-
/**
|
|
10
|
-
* Check that secret used to sign payloads is properly set in the environment
|
|
9
|
+
/**
|
|
10
|
+
* Check that secret used to sign payloads is properly set in the environment
|
|
11
11
|
*/
|
|
12
12
|
function assertPayloadSignatureSecret() {
|
|
13
13
|
(0, _checkEnvironment.assertEnvironment)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkEnv.js","names":["_checkEnvironment","require","_envAssert","assertPayloadSignatureSecret","assertEnvironment","PAYLOAD_SIGNATURE_SECRET","envAssert","isString"],"sources":["../../../../src/utils/hmac/checkEnv/checkEnv.ts"],"sourcesContent":["import { assertEnvironment } from 'utils/checkEnvironment';\
|
|
1
|
+
{"version":3,"file":"checkEnv.js","names":["_checkEnvironment","require","_envAssert","assertPayloadSignatureSecret","assertEnvironment","PAYLOAD_SIGNATURE_SECRET","envAssert","isString"],"sources":["../../../../src/utils/hmac/checkEnv/checkEnv.ts"],"sourcesContent":["import { assertEnvironment } from 'utils/checkEnvironment';\nimport { envAssert } from 'utils/envAssert';\n\n/**\n * Check that secret used to sign payloads is properly set in the environment\n */\nexport function assertPayloadSignatureSecret(): void {\n assertEnvironment({ PAYLOAD_SIGNATURE_SECRET: envAssert.isString() });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACO,SAASE,4BAA4BA,CAAA,EAAS;EACnD,IAAAC,mCAAiB,EAAC;IAAEC,wBAAwB,EAAEC,oBAAS,CAACC,QAAQ,CAAC;EAAE,CAAC,CAAC;AACvE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_checkEnv","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/checkEnv/index.ts"],"sourcesContent":["export * from './checkEnv';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_checkEnv","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/checkEnv/index.ts"],"sourcesContent":["export * from './checkEnv';\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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHmac.js","names":["_crypto","_interopRequireDefault","require","_checkEnv","_createSortedObject","createHmac","payload","options","secret","assertPayloadSignatureSecret","settings","algorithm","sort","encode","process","env","PAYLOAD_SIGNATURE_SECRET","sortedPayload","createSortedObject","stringifiedPayload","JSON","stringify","hmac","crypto","update","digest"],"sources":["../../../../src/utils/hmac/createHmac/createHmac.ts"],"sourcesContent":["import crypto from 'crypto';\
|
|
1
|
+
{"version":3,"file":"createHmac.js","names":["_crypto","_interopRequireDefault","require","_checkEnv","_createSortedObject","createHmac","payload","options","secret","assertPayloadSignatureSecret","settings","algorithm","sort","encode","process","env","PAYLOAD_SIGNATURE_SECRET","sortedPayload","createSortedObject","stringifiedPayload","JSON","stringify","hmac","crypto","update","digest"],"sources":["../../../../src/utils/hmac/createHmac/createHmac.ts"],"sourcesContent":["import crypto from 'crypto';\nimport { assertPayloadSignatureSecret } from '../checkEnv';\nimport { HmacOptions } from '../index.types';\nimport { createSortedObject } from 'utils/createSortedObject';\n\n/** Calculates the HMAC signature for a given payload */\nexport function createHmac(\n payload: unknown,\n options: HmacOptions = {}\n): Buffer | string {\n // Check env if no secret is specified\n if (!options.secret) {\n assertPayloadSignatureSecret();\n }\n // Set default values\n const settings = {\n algorithm: options.algorithm ?? 'sha512',\n sort: options.sort ?? true,\n encode: options.encode,\n secret: options.secret ?? (process.env.PAYLOAD_SIGNATURE_SECRET as string)\n };\n\n // Stringify the payload\n const sortedPayload = settings.sort ? createSortedObject(payload) : payload;\n const stringifiedPayload = JSON.stringify(sortedPayload);\n\n // Calculate the hash\n const hmac = crypto\n .createHmac(settings.algorithm, settings.secret)\n .update(stringifiedPayload);\n\n return settings.encode ? hmac.digest(settings.encode) : hmac.digest();\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,mBAAA,GAAAF,OAAA;AAEA;AACO,SAASG,UAAUA,CACxBC,OAAgB,EAChBC,OAAoB,GAAG,CAAC,CAAC,EACR;EACjB;EACA,IAAI,CAACA,OAAO,CAACC,MAAM,EAAE;IACnB,IAAAC,sCAA4B,EAAC,CAAC;EAChC;EACA;EACA,MAAMC,QAAQ,GAAG;IACfC,SAAS,EAAEJ,OAAO,CAACI,SAAS,IAAI,QAAQ;IACxCC,IAAI,EAAEL,OAAO,CAACK,IAAI,IAAI,IAAI;IAC1BC,MAAM,EAAEN,OAAO,CAACM,MAAM;IACtBL,MAAM,EAAED,OAAO,CAACC,MAAM,IAAKM,OAAO,CAACC,GAAG,CAACC;EACzC,CAAC;;EAED;EACA,MAAMC,aAAa,GAAGP,QAAQ,CAACE,IAAI,GAAG,IAAAM,sCAAkB,EAACZ,OAAO,CAAC,GAAGA,OAAO;EAC3E,MAAMa,kBAAkB,GAAGC,IAAI,CAACC,SAAS,CAACJ,aAAa,CAAC;;EAExD;EACA,MAAMK,IAAI,GAAGC,eAAM,CAChBlB,UAAU,CAACK,QAAQ,CAACC,SAAS,EAAED,QAAQ,CAACF,MAAM,CAAC,CAC/CgB,MAAM,CAACL,kBAAkB,CAAC;EAE7B,OAAOT,QAAQ,CAACG,MAAM,GAAGS,IAAI,CAACG,MAAM,CAACf,QAAQ,CAACG,MAAM,CAAC,GAAGS,IAAI,CAACG,MAAM,CAAC,CAAC;AACvE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_createHmac","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/createHmac/index.ts"],"sourcesContent":["export * from './createHmac';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_createHmac","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/createHmac/index.ts"],"sourcesContent":["export * from './createHmac';\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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_signPayload","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_verifySignature","_createHmac","_index"],"sources":["../../../src/utils/hmac/index.ts"],"sourcesContent":["export * from './signPayload';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_signPayload","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_verifySignature","_createHmac","_index"],"sources":["../../../src/utils/hmac/index.ts"],"sourcesContent":["export * from './signPayload';\nexport * from './verifySignature';\nexport * from './createHmac';\nexport * from './index.types';\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;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;AACA,IAAAM,WAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,WAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,WAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.types.js","names":[],"sources":["../../../src/utils/hmac/index.types.ts"],"sourcesContent":["import { BinaryToTextEncoding } from 'crypto';\
|
|
1
|
+
{"version":3,"file":"index.types.js","names":[],"sources":["../../../src/utils/hmac/index.types.ts"],"sourcesContent":["import { BinaryToTextEncoding } from 'crypto';\n\n/** HMAC calculation options */\nexport interface HmacOptions {\n /** Secret used to sign the payload */\n secret?: string;\n /** Hashing algorithm to use (default: SHA-512) */\n algorithm?: string;\n /** Should the object keys be sorted alphabetically (default: true) */\n sort?: boolean;\n /** The encoding of the signature (default: base64) */\n encode?: BinaryToTextEncoding;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_signPayload","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/signPayload/index.ts"],"sourcesContent":["export * from './signPayload';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_signPayload","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/signPayload/index.ts"],"sourcesContent":["export * from './signPayload';\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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signPayload.js","names":["_createHmac","require","signPayload","payload","options","signature","createHmac","encode"],"sources":["../../../../src/utils/hmac/signPayload/signPayload.ts"],"sourcesContent":["import { createHmac } from '../createHmac';\
|
|
1
|
+
{"version":3,"file":"signPayload.js","names":["_createHmac","require","signPayload","payload","options","signature","createHmac","encode"],"sources":["../../../../src/utils/hmac/signPayload/signPayload.ts"],"sourcesContent":["import { createHmac } from '../createHmac';\nimport { HmacOptions } from '../index.types';\n\n/** Add signature to a payload */\nexport function signPayload<T>(\n payload: T,\n options: HmacOptions = {}\n): T & {\n /** HMAC signature of the payload */\n signature: string;\n} {\n return {\n ...payload,\n signature: createHmac(payload, { ...options, encode: 'base64' }) as string\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA;AACO,SAASC,WAAWA,CACzBC,OAAU,EACVC,OAAoB,GAAG,CAAC,CAAC,EAIzB;EACA,OAAO;IACL,GAAGD,OAAO;IACVE,SAAS,EAAE,IAAAC,sBAAU,EAACH,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEG,MAAM,EAAE;IAAS,CAAC;EACjE,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_verifySignature","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/verifySignature/index.ts"],"sourcesContent":["export * from './verifySignature';\
|
|
1
|
+
{"version":3,"file":"index.js","names":["_verifySignature","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/hmac/verifySignature/index.ts"],"sourcesContent":["export * from './verifySignature';\n"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|