@axiumine/koa-utils 3.7.3
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/LICENSE +236 -0
- package/dist/dataSources/MariaDB.d.mts +4 -0
- package/dist/dataSources/MariaDB.mjs +74 -0
- package/dist/dataSources/MariaDB.mjs.map +1 -0
- package/dist/dataSources/MongoDB.d.mts +2 -0
- package/dist/dataSources/MongoDB.mjs +35 -0
- package/dist/dataSources/MongoDB.mjs.map +1 -0
- package/dist/dataSources/PostgreSQL.d.mts +17 -0
- package/dist/dataSources/PostgreSQL.mjs +109 -0
- package/dist/dataSources/PostgreSQL.mjs.map +1 -0
- package/dist/dataSources/Redis.d.mts +4629 -0
- package/dist/dataSources/Redis.mjs +44 -0
- package/dist/dataSources/Redis.mjs.map +1 -0
- package/dist/email/SocketLabsLib.d.mts +109 -0
- package/dist/email/SocketLabsLib.mjs +500 -0
- package/dist/email/SocketLabsLib.mjs.map +1 -0
- package/dist/files/IUploadTemp.d.mts +4 -0
- package/dist/files/IUploadTemp.mjs +2 -0
- package/dist/files/IUploadTemp.mjs.map +1 -0
- package/dist/files/checkForNSFW.d.mts +1 -0
- package/dist/files/checkForNSFW.mjs +22 -0
- package/dist/files/checkForNSFW.mjs.map +1 -0
- package/dist/files/fileConst.d.mts +7 -0
- package/dist/files/fileConst.mjs +4 -0
- package/dist/files/fileConst.mjs.map +1 -0
- package/dist/files/moveFileStaticDomain.d.mts +8 -0
- package/dist/files/moveFileStaticDomain.mjs +13 -0
- package/dist/files/moveFileStaticDomain.mjs.map +1 -0
- package/dist/files/moveImageFile.d.mts +1 -0
- package/dist/files/moveImageFile.mjs +7 -0
- package/dist/files/moveImageFile.mjs.map +1 -0
- package/dist/files/moveTempFile.d.mts +7 -0
- package/dist/files/moveTempFile.mjs +18 -0
- package/dist/files/moveTempFile.mjs.map +1 -0
- package/dist/files/reEncodeToJpeg.d.mts +1 -0
- package/dist/files/reEncodeToJpeg.mjs +5 -0
- package/dist/files/reEncodeToJpeg.mjs.map +1 -0
- package/dist/files/reEncodeToPng.d.mts +1 -0
- package/dist/files/reEncodeToPng.mjs +5 -0
- package/dist/files/reEncodeToPng.mjs.map +1 -0
- package/dist/files/reEncodeToWebp.d.mts +1 -0
- package/dist/files/reEncodeToWebp.mjs +5 -0
- package/dist/files/reEncodeToWebp.mjs.map +1 -0
- package/dist/files/scanVirus.d.mts +6 -0
- package/dist/files/scanVirus.mjs +56 -0
- package/dist/files/scanVirus.mjs.map +1 -0
- package/dist/files/storeUploadAsTemp.d.mts +3 -0
- package/dist/files/storeUploadAsTemp.mjs +54 -0
- package/dist/files/storeUploadAsTemp.mjs.map +1 -0
- package/dist/files/uploadTempImage.d.mts +8 -0
- package/dist/files/uploadTempImage.mjs +42 -0
- package/dist/files/uploadTempImage.mjs.map +1 -0
- package/dist/files/uploadTempPdf.d.mts +8 -0
- package/dist/files/uploadTempPdf.mjs +42 -0
- package/dist/files/uploadTempPdf.mjs.map +1 -0
- package/dist/files/validateExtension.d.mts +6 -0
- package/dist/files/validateExtension.mjs +11 -0
- package/dist/files/validateExtension.mjs.map +1 -0
- package/dist/files/validateJpgPngExtension.d.mts +1 -0
- package/dist/files/validateJpgPngExtension.mjs +9 -0
- package/dist/files/validateJpgPngExtension.mjs.map +1 -0
- package/dist/files/validateMimeType.d.mts +6 -0
- package/dist/files/validateMimeType.mjs +18 -0
- package/dist/files/validateMimeType.mjs.map +1 -0
- package/dist/files/validateMimeTypeImages.d.mts +5 -0
- package/dist/files/validateMimeTypeImages.mjs +9 -0
- package/dist/files/validateMimeTypeImages.mjs.map +1 -0
- package/dist/files/validateMimeTypePdf.d.mts +5 -0
- package/dist/files/validateMimeTypePdf.mjs +9 -0
- package/dist/files/validateMimeTypePdf.mjs.map +1 -0
- package/dist/files/validatePdfExtension.d.mts +1 -0
- package/dist/files/validatePdfExtension.mjs +9 -0
- package/dist/files/validatePdfExtension.mjs.map +1 -0
- package/dist/graphQL/models/MongoDB/UserBase.d.mts +61 -0
- package/dist/graphQL/models/MongoDB/UserBase.mjs +112 -0
- package/dist/graphQL/models/MongoDB/UserBase.mjs.map +1 -0
- package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.d.mts +25 -0
- package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs +36 -0
- package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs.map +1 -0
- package/dist/graphQL/models/MongoDB/log/LogGlobalError.d.mts +16 -0
- package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs +25 -0
- package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs.map +1 -0
- package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.d.mts +18 -0
- package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs +33 -0
- package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs.map +1 -0
- package/dist/graphQL/models/MongoDB/log/LogThrow.d.mts +17 -0
- package/dist/graphQL/models/MongoDB/log/LogThrow.mjs +28 -0
- package/dist/graphQL/models/MongoDB/log/LogThrow.mjs.map +1 -0
- package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.d.mts +2 -0
- package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs +9 -0
- package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs.map +1 -0
- package/dist/graphQL/schema/context/IContextAuthenticatedResource.d.mts +16 -0
- package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs +2 -0
- package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs.map +1 -0
- package/dist/graphQL/schema/context/IContextKoaErrorHandler.d.mts +11 -0
- package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs +2 -0
- package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs.map +1 -0
- package/dist/graphQL/schema/context/IContextLogin.d.mts +4 -0
- package/dist/graphQL/schema/context/IContextLogin.mjs +2 -0
- package/dist/graphQL/schema/context/IContextLogin.mjs.map +1 -0
- package/dist/graphQL/schema/context/IContextLogout.d.mts +18 -0
- package/dist/graphQL/schema/context/IContextLogout.mjs +2 -0
- package/dist/graphQL/schema/context/IContextLogout.mjs.map +1 -0
- package/dist/graphQL/schema/context/IContextRefresh.d.mts +19 -0
- package/dist/graphQL/schema/context/IContextRefresh.mjs +2 -0
- package/dist/graphQL/schema/context/IContextRefresh.mjs.map +1 -0
- package/dist/graphQL/schema/context/TCommonHeaders.d.mts +15 -0
- package/dist/graphQL/schema/context/TCommonHeaders.mjs +2 -0
- package/dist/graphQL/schema/context/TCommonHeaders.mjs.map +1 -0
- package/dist/graphQL/schema/interfaces/IFindAndUpdate.d.mts +16 -0
- package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs +2 -0
- package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/emailChangeHashVerify.d.mts +22 -0
- package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs +94 -0
- package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/login4Ever.d.mts +22 -0
- package/dist/graphQL/schema/mutations/login4Ever.mjs +60 -0
- package/dist/graphQL/schema/mutations/login4Ever.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/loginAdmin.d.mts +29 -0
- package/dist/graphQL/schema/mutations/loginAdmin.mjs +59 -0
- package/dist/graphQL/schema/mutations/loginAdmin.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/loginRememberme.d.mts +26 -0
- package/dist/graphQL/schema/mutations/loginRememberme.mjs +54 -0
- package/dist/graphQL/schema/mutations/loginRememberme.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/logout.d.mts +7 -0
- package/dist/graphQL/schema/mutations/logout.mjs +28 -0
- package/dist/graphQL/schema/mutations/logout.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/refresh.d.mts +10 -0
- package/dist/graphQL/schema/mutations/refresh.mjs +59 -0
- package/dist/graphQL/schema/mutations/refresh.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/resetPwd.d.mts +19 -0
- package/dist/graphQL/schema/mutations/resetPwd.mjs +91 -0
- package/dist/graphQL/schema/mutations/resetPwd.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/signUp.d.mts +19 -0
- package/dist/graphQL/schema/mutations/signUp.mjs +55 -0
- package/dist/graphQL/schema/mutations/signUp.mjs.map +1 -0
- package/dist/graphQL/schema/mutations/updatePassword.d.mts +23 -0
- package/dist/graphQL/schema/mutations/updatePassword.mjs +70 -0
- package/dist/graphQL/schema/mutations/updatePassword.mjs.map +1 -0
- package/dist/graphQL/schema/types/DeleteType.d.mts +6 -0
- package/dist/graphQL/schema/types/DeleteType.mjs +13 -0
- package/dist/graphQL/schema/types/DeleteType.mjs.map +1 -0
- package/dist/graphQL/schema/types/DoneType.d.mts +2 -0
- package/dist/graphQL/schema/types/DoneType.mjs +10 -0
- package/dist/graphQL/schema/types/DoneType.mjs.map +1 -0
- package/dist/graphQL/schema/types/FindOneAndUpdateType.d.mts +2 -0
- package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs +15 -0
- package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs.map +1 -0
- package/dist/graphQL/schema/types/LoginAppType.d.mts +2 -0
- package/dist/graphQL/schema/types/LoginAppType.mjs +11 -0
- package/dist/graphQL/schema/types/LoginAppType.mjs.map +1 -0
- package/dist/graphQL/schema/types/LoginType.d.mts +2 -0
- package/dist/graphQL/schema/types/LoginType.mjs +9 -0
- package/dist/graphQL/schema/types/LoginType.mjs.map +1 -0
- package/dist/graphQL/schema/types/MidNameType.d.mts +5 -0
- package/dist/graphQL/schema/types/MidNameType.mjs +12 -0
- package/dist/graphQL/schema/types/MidNameType.mjs.map +1 -0
- package/dist/graphQL/schema/types/OnlyIdType.d.mts +2 -0
- package/dist/graphQL/schema/types/OnlyIdType.mjs +8 -0
- package/dist/graphQL/schema/types/OnlyIdType.mjs.map +1 -0
- package/dist/graphQL/schema/types/RefreshType.d.mts +2 -0
- package/dist/graphQL/schema/types/RefreshType.mjs +10 -0
- package/dist/graphQL/schema/types/RefreshType.mjs.map +1 -0
- package/dist/graphQL/schema/types/RetStatusMexType.d.mts +2 -0
- package/dist/graphQL/schema/types/RetStatusMexType.mjs +9 -0
- package/dist/graphQL/schema/types/RetStatusMexType.mjs.map +1 -0
- package/dist/graphQL/schema/types/RetStatusType.d.mts +2 -0
- package/dist/graphQL/schema/types/RetStatusType.mjs +8 -0
- package/dist/graphQL/schema/types/RetStatusType.mjs.map +1 -0
- package/dist/graphQL/schema/types/SaveType.d.mts +2 -0
- package/dist/graphQL/schema/types/SaveType.mjs +9 -0
- package/dist/graphQL/schema/types/SaveType.mjs.map +1 -0
- package/dist/graphQL/schema/types/SidNameType.d.mts +5 -0
- package/dist/graphQL/schema/types/SidNameType.mjs +12 -0
- package/dist/graphQL/schema/types/SidNameType.mjs.map +1 -0
- package/dist/graphQL/schema/types/SidNomeType.d.mts +5 -0
- package/dist/graphQL/schema/types/SidNomeType.mjs +12 -0
- package/dist/graphQL/schema/types/SidNomeType.mjs.map +1 -0
- package/dist/graphQL/schema/types/UpdateResultType.d.mts +2 -0
- package/dist/graphQL/schema/types/UpdateResultType.mjs +9 -0
- package/dist/graphQL/schema/types/UpdateResultType.mjs.map +1 -0
- package/dist/graphQL/status.d.mts +7 -0
- package/dist/graphQL/status.mjs +8 -0
- package/dist/graphQL/status.mjs.map +1 -0
- package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.d.mts +1 -0
- package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs +5 -0
- package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs.map +1 -0
- package/dist/graphQL/throw/throwAccessTokenRequired.d.mts +1 -0
- package/dist/graphQL/throw/throwAccessTokenRequired.mjs +5 -0
- package/dist/graphQL/throw/throwAccessTokenRequired.mjs.map +1 -0
- package/dist/graphQL/throw/throwAlreadyDone.d.mts +4 -0
- package/dist/graphQL/throw/throwAlreadyDone.mjs +8 -0
- package/dist/graphQL/throw/throwAlreadyDone.mjs.map +1 -0
- package/dist/graphQL/throw/throwAlreadyTakenError.d.mts +1 -0
- package/dist/graphQL/throw/throwAlreadyTakenError.mjs +6 -0
- package/dist/graphQL/throw/throwAlreadyTakenError.mjs.map +1 -0
- package/dist/graphQL/throw/throwConflictError.d.mts +1 -0
- package/dist/graphQL/throw/throwConflictError.mjs +6 -0
- package/dist/graphQL/throw/throwConflictError.mjs.map +1 -0
- package/dist/graphQL/throw/throwErrorWrongUserInput.d.mts +1 -0
- package/dist/graphQL/throw/throwErrorWrongUserInput.mjs +5 -0
- package/dist/graphQL/throw/throwErrorWrongUserInput.mjs.map +1 -0
- package/dist/graphQL/throw/throwForbiddenError.d.mts +1 -0
- package/dist/graphQL/throw/throwForbiddenError.mjs +5 -0
- package/dist/graphQL/throw/throwForbiddenError.mjs.map +1 -0
- package/dist/graphQL/throw/throwGoneError.d.mts +1 -0
- package/dist/graphQL/throw/throwGoneError.mjs +6 -0
- package/dist/graphQL/throw/throwGoneError.mjs.map +1 -0
- package/dist/graphQL/throw/throwGraphQLError.d.mts +1 -0
- package/dist/graphQL/throw/throwGraphQLError.mjs +10 -0
- package/dist/graphQL/throw/throwGraphQLError.mjs.map +1 -0
- package/dist/graphQL/throw/throwInternalError.d.mts +1 -0
- package/dist/graphQL/throw/throwInternalError.mjs +5 -0
- package/dist/graphQL/throw/throwInternalError.mjs.map +1 -0
- package/dist/graphQL/throw/throwMethodNotAllowedError.d.mts +1 -0
- package/dist/graphQL/throw/throwMethodNotAllowedError.mjs +6 -0
- package/dist/graphQL/throw/throwMethodNotAllowedError.mjs.map +1 -0
- package/dist/graphQL/throw/throwMissingMalformedInvalidToken.d.mts +1 -0
- package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs +5 -0
- package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs.map +1 -0
- package/dist/graphQL/throw/throwNotAcceptableError.d.mts +1 -0
- package/dist/graphQL/throw/throwNotAcceptableError.mjs +6 -0
- package/dist/graphQL/throw/throwNotAcceptableError.mjs.map +1 -0
- package/dist/graphQL/throw/throwNotFoundError.d.mts +1 -0
- package/dist/graphQL/throw/throwNotFoundError.mjs +6 -0
- package/dist/graphQL/throw/throwNotFoundError.mjs.map +1 -0
- package/dist/graphQL/throw/throwNotImplementedError.d.mts +1 -0
- package/dist/graphQL/throw/throwNotImplementedError.mjs +6 -0
- package/dist/graphQL/throw/throwNotImplementedError.mjs.map +1 -0
- package/dist/graphQL/throw/throwPaymentRequiredError.d.mts +1 -0
- package/dist/graphQL/throw/throwPaymentRequiredError.mjs +5 -0
- package/dist/graphQL/throw/throwPaymentRequiredError.mjs.map +1 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.d.mts +1 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs +5 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs.map +1 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.d.mts +1 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs +5 -0
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs.map +1 -0
- package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.d.mts +1 -0
- package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs +5 -0
- package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs.map +1 -0
- package/dist/graphQL/throw/throwRefreshTokenRequired.d.mts +1 -0
- package/dist/graphQL/throw/throwRefreshTokenRequired.mjs +5 -0
- package/dist/graphQL/throw/throwRefreshTokenRequired.mjs.map +1 -0
- package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.d.mts +1 -0
- package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs +5 -0
- package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs.map +1 -0
- package/dist/graphQL/throw/throwTooManyRequestsError.d.mts +1 -0
- package/dist/graphQL/throw/throwTooManyRequestsError.mjs +5 -0
- package/dist/graphQL/throw/throwTooManyRequestsError.mjs.map +1 -0
- package/dist/graphQL/throw/throwUnauthorizedError.d.mts +1 -0
- package/dist/graphQL/throw/throwUnauthorizedError.mjs +5 -0
- package/dist/graphQL/throw/throwUnauthorizedError.mjs.map +1 -0
- package/dist/graphQL/throw/throwUnprocessableContentError.d.mts +1 -0
- package/dist/graphQL/throw/throwUnprocessableContentError.mjs +5 -0
- package/dist/graphQL/throw/throwUnprocessableContentError.mjs.map +1 -0
- package/dist/graphQL/throw/throwUnsupportedMediaTypeError.d.mts +1 -0
- package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs +5 -0
- package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs.map +1 -0
- package/dist/koa/IFileUpload.d.mts +6 -0
- package/dist/koa/IFileUpload.mjs +2 -0
- package/dist/koa/IFileUpload.mjs.map +1 -0
- package/dist/koa/IKoaError.d.mts +15 -0
- package/dist/koa/IKoaError.mjs +2 -0
- package/dist/koa/IKoaError.mjs.map +1 -0
- package/dist/koa/customFormatErrorFn.d.mts +2 -0
- package/dist/koa/customFormatErrorFn.mjs +10 -0
- package/dist/koa/customFormatErrorFn.mjs.map +1 -0
- package/dist/koa/logRequestToDb.d.mts +3 -0
- package/dist/koa/logRequestToDb.mjs +16 -0
- package/dist/koa/logRequestToDb.mjs.map +1 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.d.mts +4 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs +2 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs.map +1 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/index.d.mts +4 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs +35 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs.map +1 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.d.mts +3 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs +41 -0
- package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs.map +1 -0
- package/dist/koa/middleware/authenticatedLogoutHandler/index.d.mts +4 -0
- package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs +65 -0
- package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs.map +1 -0
- package/dist/koa/middleware/authenticatedResourceHandler/index.d.mts +6 -0
- package/dist/koa/middleware/authenticatedResourceHandler/index.mjs +47 -0
- package/dist/koa/middleware/authenticatedResourceHandler/index.mjs.map +1 -0
- package/dist/koa/middleware/debug/index.d.mts +3 -0
- package/dist/koa/middleware/debug/index.mjs +9 -0
- package/dist/koa/middleware/debug/index.mjs.map +1 -0
- package/dist/koa/router/verifyEmail.d.mts +2 -0
- package/dist/koa/router/verifyEmail.mjs +46 -0
- package/dist/koa/router/verifyEmail.mjs.map +1 -0
- package/dist/koa/tdwKoaErrorHandler.d.mts +3 -0
- package/dist/koa/tdwKoaErrorHandler.mjs +40 -0
- package/dist/koa/tdwKoaErrorHandler.mjs.map +1 -0
- package/dist/lib/ArrayLib.d.mts +4 -0
- package/dist/lib/ArrayLib.mjs +10 -0
- package/dist/lib/ArrayLib.mjs.map +1 -0
- package/dist/lib/Constants.d.mts +7 -0
- package/dist/lib/Constants.mjs +8 -0
- package/dist/lib/Constants.mjs.map +1 -0
- package/dist/lib/DateLib.d.mts +9 -0
- package/dist/lib/DateLib.mjs +36 -0
- package/dist/lib/DateLib.mjs.map +1 -0
- package/dist/lib/IAuthorizationDisDel.d.mts +4 -0
- package/dist/lib/IAuthorizationDisDel.mjs +2 -0
- package/dist/lib/IAuthorizationDisDel.mjs.map +1 -0
- package/dist/lib/ICookies.d.mts +13 -0
- package/dist/lib/ICookies.mjs +2 -0
- package/dist/lib/ICookies.mjs.map +1 -0
- package/dist/lib/MariaDB/IMariaDBErr.d.mts +6 -0
- package/dist/lib/MariaDB/IMariaDBErr.mjs +2 -0
- package/dist/lib/MariaDB/IMariaDBErr.mjs.map +1 -0
- package/dist/lib/MariaDB/MariaDBErrType.d.mts +3 -0
- package/dist/lib/MariaDB/MariaDBErrType.mjs +6 -0
- package/dist/lib/MariaDB/MariaDBErrType.mjs.map +1 -0
- package/dist/lib/MariaDB/throwSqlErrors.d.mts +2 -0
- package/dist/lib/MariaDB/throwSqlErrors.mjs +22 -0
- package/dist/lib/MariaDB/throwSqlErrors.mjs.map +1 -0
- package/dist/lib/MongoDB/IMongoDBError.d.mts +12 -0
- package/dist/lib/MongoDB/IMongoDBError.mjs +2 -0
- package/dist/lib/MongoDB/IMongoDBError.mjs.map +1 -0
- package/dist/lib/MongoDB/IOnboarding.d.mts +4 -0
- package/dist/lib/MongoDB/IOnboarding.mjs +2 -0
- package/dist/lib/MongoDB/IOnboarding.mjs.map +1 -0
- package/dist/lib/MongoDB/MongoDBErrType.d.mts +3 -0
- package/dist/lib/MongoDB/MongoDBErrType.mjs +5 -0
- package/dist/lib/MongoDB/MongoDBErrType.mjs.map +1 -0
- package/dist/lib/MongoDB/throwIfMongoErr.d.mts +2 -0
- package/dist/lib/MongoDB/throwIfMongoErr.mjs +16 -0
- package/dist/lib/MongoDB/throwIfMongoErr.mjs.map +1 -0
- package/dist/lib/MongoDB/throwMongoErrors.d.mts +2 -0
- package/dist/lib/MongoDB/throwMongoErrors.mjs +10 -0
- package/dist/lib/MongoDB/throwMongoErrors.mjs.map +1 -0
- package/dist/lib/NumLib.d.mts +10 -0
- package/dist/lib/NumLib.mjs +14 -0
- package/dist/lib/NumLib.mjs.map +1 -0
- package/dist/lib/PostgreSQL/IPostgresError.d.mts +6 -0
- package/dist/lib/PostgreSQL/IPostgresError.mjs +2 -0
- package/dist/lib/PostgreSQL/IPostgresError.mjs.map +1 -0
- package/dist/lib/PostgreSQL/IPostgresErrorCodes.d.mts +3 -0
- package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs +5 -0
- package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs.map +1 -0
- package/dist/lib/PostgreSQL/makePostgreSqlLogError.d.mts +2 -0
- package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs +4 -0
- package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs.map +1 -0
- package/dist/lib/Redis/RedisBoolean.d.mts +4 -0
- package/dist/lib/Redis/RedisBoolean.mjs +6 -0
- package/dist/lib/Redis/RedisBoolean.mjs.map +1 -0
- package/dist/lib/Redis/fromRedisBooleanValue.d.mts +2 -0
- package/dist/lib/Redis/fromRedisBooleanValue.mjs +5 -0
- package/dist/lib/Redis/fromRedisBooleanValue.mjs.map +1 -0
- package/dist/lib/Redis/toRedisBooleanValue.d.mts +2 -0
- package/dist/lib/Redis/toRedisBooleanValue.mjs +5 -0
- package/dist/lib/Redis/toRedisBooleanValue.mjs.map +1 -0
- package/dist/lib/StringLib.d.mts +16 -0
- package/dist/lib/StringLib.mjs +58 -0
- package/dist/lib/StringLib.mjs.map +1 -0
- package/dist/lib/checkEmailLen.d.mts +1 -0
- package/dist/lib/checkEmailLen.mjs +11 -0
- package/dist/lib/checkEmailLen.mjs.map +1 -0
- package/dist/lib/checkPwdLen.d.mts +1 -0
- package/dist/lib/checkPwdLen.mjs +13 -0
- package/dist/lib/checkPwdLen.mjs.map +1 -0
- package/dist/lib/db/log/hitStat.d.mts +1 -0
- package/dist/lib/db/log/hitStat.mjs +13 -0
- package/dist/lib/db/log/hitStat.mjs.map +1 -0
- package/dist/lib/db/log/logGlobalError.d.mts +6 -0
- package/dist/lib/db/log/logGlobalError.mjs +12 -0
- package/dist/lib/db/log/logGlobalError.mjs.map +1 -0
- package/dist/lib/db/log/logGraphql.d.mts +9 -0
- package/dist/lib/db/log/logGraphql.mjs +27 -0
- package/dist/lib/db/log/logGraphql.mjs.map +1 -0
- package/dist/lib/db/log/logThrow.d.mts +1 -0
- package/dist/lib/db/log/logThrow.mjs +15 -0
- package/dist/lib/db/log/logThrow.mjs.map +1 -0
- package/dist/lib/db/login/ILoginSet.d.mts +7 -0
- package/dist/lib/db/login/ILoginSet.mjs +2 -0
- package/dist/lib/db/login/ILoginSet.mjs.map +1 -0
- package/dist/lib/db/login/ILoginUnset.d.mts +5 -0
- package/dist/lib/db/login/ILoginUnset.mjs +2 -0
- package/dist/lib/db/login/ILoginUnset.mjs.map +1 -0
- package/dist/lib/db/registerNewUser.d.mts +2 -0
- package/dist/lib/db/registerNewUser.mjs +33 -0
- package/dist/lib/db/registerNewUser.mjs.map +1 -0
- package/dist/lib/db/userExist.d.mts +2 -0
- package/dist/lib/db/userExist.mjs +8 -0
- package/dist/lib/db/userExist.mjs.map +1 -0
- package/dist/lib/emailHash.d.mts +1 -0
- package/dist/lib/emailHash.mjs +7 -0
- package/dist/lib/emailHash.mjs.map +1 -0
- package/dist/lib/encryptPassword.d.mts +1 -0
- package/dist/lib/encryptPassword.mjs +6 -0
- package/dist/lib/encryptPassword.mjs.map +1 -0
- package/dist/lib/hash.d.mts +6 -0
- package/dist/lib/hash.mjs +15 -0
- package/dist/lib/hash.mjs.map +1 -0
- package/dist/lib/makeOnboardingData.d.mts +2 -0
- package/dist/lib/makeOnboardingData.mjs +4 -0
- package/dist/lib/makeOnboardingData.mjs.map +1 -0
- package/dist/lib/setLoginCookies.d.mts +2 -0
- package/dist/lib/setLoginCookies.mjs +10 -0
- package/dist/lib/setLoginCookies.mjs.map +1 -0
- package/dist/lib/sleepMs.d.mts +1 -0
- package/dist/lib/sleepMs.mjs +2 -0
- package/dist/lib/sleepMs.mjs.map +1 -0
- package/dist/lib/throwIfNotValidEnumValue.d.mts +1 -0
- package/dist/lib/throwIfNotValidEnumValue.mjs +8 -0
- package/dist/lib/throwIfNotValidEnumValue.mjs.map +1 -0
- package/dist/lib/tokenOptions.d.mts +12 -0
- package/dist/lib/tokenOptions.mjs +17 -0
- package/dist/lib/tokenOptions.mjs.map +1 -0
- package/dist/lib/tokens.d.mts +4 -0
- package/dist/lib/tokens.mjs +22 -0
- package/dist/lib/tokens.mjs.map +1 -0
- package/dist/lib/tryCatchRethrow.d.mts +2 -0
- package/dist/lib/tryCatchRethrow.mjs +20 -0
- package/dist/lib/tryCatchRethrow.mjs.map +1 -0
- package/dist/private/files/_validateMimeType.d.mts +6 -0
- package/dist/private/files/_validateMimeType.mjs +21 -0
- package/dist/private/files/_validateMimeType.mjs.map +1 -0
- package/dist/private/files/reEncode.d.mts +10 -0
- package/dist/private/files/reEncode.mjs +61 -0
- package/dist/private/files/reEncode.mjs.map +1 -0
- package/dist/private/graphQL/Consts.d.mts +2 -0
- package/dist/private/graphQL/Consts.mjs +3 -0
- package/dist/private/graphQL/Consts.mjs.map +1 -0
- package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.d.mts +58 -0
- package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs +107 -0
- package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs.map +1 -0
- package/dist/private/graphQL/schema/context/IContextLog.d.mts +15 -0
- package/dist/private/graphQL/schema/context/IContextLog.mjs +2 -0
- package/dist/private/graphQL/schema/context/IContextLog.mjs.map +1 -0
- package/dist/private/graphQL/schema/context/IContextVerifyEmail.d.mts +7 -0
- package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs +2 -0
- package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.d.mts +5 -0
- package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs +30 -0
- package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.d.mts +5 -0
- package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs +32 -0
- package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.d.mts +3 -0
- package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs +14 -0
- package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLogin.d.mts +3 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs +14 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.d.mts +8 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs +16 -0
- package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/setLastLoginSQL.d.mts +1 -0
- package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs +25 -0
- package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/setRedisLoginSession.d.mts +2 -0
- package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs +33 -0
- package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.d.mts +2 -0
- package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs +27 -0
- package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.d.mts +2 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs +18 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.d.mts +2 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs +27 -0
- package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs.map +1 -0
- package/dist/private/lib/access/Constants.d.mts +2 -0
- package/dist/private/lib/access/Constants.mjs +4 -0
- package/dist/private/lib/access/Constants.mjs.map +1 -0
- package/dist/private/lib/access/db/confirmNewEmail.d.mts +2 -0
- package/dist/private/lib/access/db/confirmNewEmail.mjs +13 -0
- package/dist/private/lib/access/db/confirmNewEmail.mjs.map +1 -0
- package/dist/private/lib/access/db/deleteUserByEmail.d.mts +1 -0
- package/dist/private/lib/access/db/deleteUserByEmail.mjs +8 -0
- package/dist/private/lib/access/db/deleteUserByEmail.mjs.map +1 -0
- package/dist/private/lib/access/db/enableEmailAccess.d.mts +2 -0
- package/dist/private/lib/access/db/enableEmailAccess.mjs +17 -0
- package/dist/private/lib/access/db/enableEmailAccess.mjs.map +1 -0
- package/dist/private/lib/access/db/getResetPwd.d.mts +7 -0
- package/dist/private/lib/access/db/getResetPwd.mjs +24 -0
- package/dist/private/lib/access/db/getResetPwd.mjs.map +1 -0
- package/dist/private/lib/access/db/incReqTimes.d.mts +2 -0
- package/dist/private/lib/access/db/incReqTimes.mjs +5 -0
- package/dist/private/lib/access/db/incReqTimes.mjs.map +1 -0
- package/dist/private/lib/access/db/removeResetReq.d.mts +2 -0
- package/dist/private/lib/access/db/removeResetReq.mjs +7 -0
- package/dist/private/lib/access/db/removeResetReq.mjs.map +1 -0
- package/dist/private/lib/access/db/saveResetReq.d.mts +2 -0
- package/dist/private/lib/access/db/saveResetReq.mjs +17 -0
- package/dist/private/lib/access/db/saveResetReq.mjs.map +1 -0
- package/dist/private/lib/access/db/setEmailHash.d.mts +2 -0
- package/dist/private/lib/access/db/setEmailHash.mjs +16 -0
- package/dist/private/lib/access/db/setEmailHash.mjs.map +1 -0
- package/dist/private/lib/access/db/updatePasswordDb.d.mts +2 -0
- package/dist/private/lib/access/db/updatePasswordDb.mjs +8 -0
- package/dist/private/lib/access/db/updatePasswordDb.mjs.map +1 -0
- package/dist/private/lib/access/db/userData4VerifyEmail.d.mts +3 -0
- package/dist/private/lib/access/db/userData4VerifyEmail.mjs +16 -0
- package/dist/private/lib/access/db/userData4VerifyEmail.mjs.map +1 -0
- package/dist/private/lib/access/handleBadDB.d.mts +1 -0
- package/dist/private/lib/access/handleBadDB.mjs +9 -0
- package/dist/private/lib/access/handleBadDB.mjs.map +1 -0
- package/dist/private/lib/access/handleIfAccountDeleted.d.mts +1 -0
- package/dist/private/lib/access/handleIfAccountDeleted.mjs +10 -0
- package/dist/private/lib/access/handleIfAccountDeleted.mjs.map +1 -0
- package/dist/private/lib/access/handleIfAccountDisabled.d.mts +1 -0
- package/dist/private/lib/access/handleIfAccountDisabled.mjs +10 -0
- package/dist/private/lib/access/handleIfAccountDisabled.mjs.map +1 -0
- package/dist/private/lib/access/handleIfEmailAlreadyValid.d.mts +1 -0
- package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs +10 -0
- package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs.map +1 -0
- package/dist/private/lib/access/handleIfHashBad.d.mts +11 -0
- package/dist/private/lib/access/handleIfHashBad.mjs +22 -0
- package/dist/private/lib/access/handleIfHashBad.mjs.map +1 -0
- package/dist/private/lib/access/handleIfMoreThan3DaysPassed.d.mts +1 -0
- package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs +23 -0
- package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs.map +1 -0
- package/dist/private/lib/access/handleIfTooMuchRequestsTimes.d.mts +1 -0
- package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs +13 -0
- package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs.map +1 -0
- package/dist/private/lib/makeBodyJson.d.mts +1 -0
- package/dist/private/lib/makeBodyJson.mjs +7 -0
- package/dist/private/lib/makeBodyJson.mjs.map +1 -0
- package/package.json +656 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IUploadTemp.mjs","sourceRoot":"","sources":["../../../src/files/IUploadTemp.mts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// const Sightengine = require('sightengine')('your-api-user', 'your-api-secret');
|
|
2
|
+
export {};
|
|
3
|
+
/*
|
|
4
|
+
// https://sightengine.com/ ma ci sono anche altri servizi
|
|
5
|
+
export async function checkForNSFW(imageUrl: string) {
|
|
6
|
+
try {
|
|
7
|
+
const result = await Sightengine.check(['nudity', 'wad']).set_url(imageUrl)
|
|
8
|
+
|
|
9
|
+
if (result.nudity.safe < 0.9) {
|
|
10
|
+
console.debug('NSFW content detected in the image')
|
|
11
|
+
return false
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
console.debug('No NSFW content detected in the image')
|
|
15
|
+
return true
|
|
16
|
+
} catch (err) {
|
|
17
|
+
console.error('Error during content moderation:', err)
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
*/
|
|
22
|
+
//# sourceMappingURL=checkForNSFW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkForNSFW.mjs","sourceRoot":"","sources":["../../../src/files/checkForNSFW.mts"],"names":[],"mappings":"AAAA,kFAAkF;;AAElF;;;;;;;;;;;;;;;;;;EAkBE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileConst.mjs","sourceRoot":"","sources":["../../../src/files/fileConst.mts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAA;AAC/C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* read .env STATIC_FOLDER path
|
|
3
|
+
* @param sourceFilePath
|
|
4
|
+
* @param folder
|
|
5
|
+
* @param secondFolder
|
|
6
|
+
* @param destFilename
|
|
7
|
+
*/
|
|
8
|
+
export declare function moveFileStaticDomain(sourceFilePath: string, folder: string, secondFolder: string, destFilename: string): Promise<void>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { moveTempFile } from './moveTempFile.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* read .env STATIC_FOLDER path
|
|
4
|
+
* @param sourceFilePath
|
|
5
|
+
* @param folder
|
|
6
|
+
* @param secondFolder
|
|
7
|
+
* @param destFilename
|
|
8
|
+
*/
|
|
9
|
+
export async function moveFileStaticDomain(sourceFilePath, folder, secondFolder, destFilename) {
|
|
10
|
+
const destinationDir = `${process.env.STATIC_FOLDER}/${folder}/${secondFolder}`;
|
|
11
|
+
await moveTempFile(sourceFilePath, destFilename, destinationDir);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=moveFileStaticDomain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveFileStaticDomain.mjs","sourceRoot":"","sources":["../../../src/files/moveFileStaticDomain.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,cAAsB,EACtB,MAAc,EACd,YAAoB,EACpB,YAAoB;IAEpB,MAAM,cAAc,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,IAAI,YAAY,EAAE,CAAA;IAE/E,MAAM,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function moveImageFile(sourceFilePath: string, folder: string, secondFolder: string, destFilename: string): Promise<void>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UPLOAD_IMG_DIRECTORY_URL } from './fileConst.mjs';
|
|
2
|
+
import { moveTempFile } from './moveTempFile.mjs';
|
|
3
|
+
export async function moveImageFile(sourceFilePath, folder, secondFolder, destFilename) {
|
|
4
|
+
const destinationDir = `${UPLOAD_IMG_DIRECTORY_URL}/${folder}/${secondFolder}`;
|
|
5
|
+
await moveTempFile(sourceFilePath, destFilename, destinationDir);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=moveImageFile.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveImageFile.mjs","sourceRoot":"","sources":["../../../src/files/moveImageFile.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,cAAsB,EACtB,MAAc,EACd,YAAoB,EACpB,YAAoB;IAEpB,MAAM,cAAc,GAAG,GAAG,wBAAwB,IAAI,MAAM,IAAI,YAAY,EAAE,CAAA;IAE9E,MAAM,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param sourceFilePath
|
|
6
|
+
* @param destFilename
|
|
7
|
+
* @param destinationDir
|
|
8
|
+
*/
|
|
9
|
+
export async function moveTempFile(sourceFilePath, destFilename, destinationDir) {
|
|
10
|
+
// Ensure the destination directory exists
|
|
11
|
+
await fs.ensureDir(destinationDir);
|
|
12
|
+
// Define the destination path
|
|
13
|
+
const ext = path.extname(sourceFilePath);
|
|
14
|
+
const destinationPath = path.join(destinationDir, `${destFilename}${ext}`);
|
|
15
|
+
// Move the file
|
|
16
|
+
await fs.move(sourceFilePath, destinationPath);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=moveTempFile.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"moveTempFile.mjs","sourceRoot":"","sources":["../../../src/files/moveTempFile.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,cAAsB,EACtB,YAAoB,EACpB,cAAsB;IAGtB,0CAA0C;IAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAElC,8BAA8B;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,YAAY,GAAG,GAAG,EAAE,CAAC,CAAA;IAE1E,gBAAgB;IAChB,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function reEncodeToJpeg(filename: string, quality?: number): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reEncodeToJpeg.mjs","sourceRoot":"","sources":["../../../src/files/reEncodeToJpeg.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sCAAmC;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAO,GAAG,GAAG;IACnE,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function reEncodeToPng(filename: string, quality?: number): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reEncodeToPng.mjs","sourceRoot":"","sources":["../../../src/files/reEncodeToPng.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sCAAmC;AAEtD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAO,GAAG,GAAG;IAClE,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function reEncodeToWebp(filename: string, quality?: number): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reEncodeToWebp.mjs","sourceRoot":"","sources":["../../../src/files/reEncodeToWebp.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sCAAmC;AAEtD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAO,GAAG,GAAG;IACnE,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as Sentry from '@sentry/node';
|
|
2
|
+
import NodeClam from 'clamscan';
|
|
3
|
+
let clamScanInstance = null;
|
|
4
|
+
/**********
|
|
5
|
+
* Call inside koa initialization
|
|
6
|
+
*/
|
|
7
|
+
export async function initClamScan(options) {
|
|
8
|
+
const defaultOptions = {
|
|
9
|
+
removeInfected: true,
|
|
10
|
+
quarantineInfected: false,
|
|
11
|
+
clamdscan: {
|
|
12
|
+
socket: '/var/run/clamav/clamd.ctl',
|
|
13
|
+
timeout: 60000,
|
|
14
|
+
multiscan: true,
|
|
15
|
+
localFallback: false
|
|
16
|
+
},
|
|
17
|
+
debugMode: false
|
|
18
|
+
};
|
|
19
|
+
console.info('[ClamScan] init...');
|
|
20
|
+
try {
|
|
21
|
+
const mergedOptions = { ...defaultOptions, ...options };
|
|
22
|
+
clamScanInstance = await new NodeClam().init(mergedOptions);
|
|
23
|
+
console.info('[ClamScan] OK: ClamScan has been initialized successfully');
|
|
24
|
+
return clamScanInstance;
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
console.error('[ClamScan] Error');
|
|
28
|
+
Sentry.captureException(e);
|
|
29
|
+
throw e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function scanVirus(filePath) {
|
|
33
|
+
if (!clamScanInstance) {
|
|
34
|
+
throw new Error('ClamScan has not been initialized. Call initClamScan first.');
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const { isInfected, viruses } = await clamScanInstance.scanFile(filePath);
|
|
38
|
+
if (isInfected) {
|
|
39
|
+
Sentry.withScope((scope) => {
|
|
40
|
+
scope.setTag('file', filePath);
|
|
41
|
+
scope.setContext('viruses', { list: viruses, count: viruses.length });
|
|
42
|
+
scope.setLevel('warning');
|
|
43
|
+
Sentry.captureMessage(`Infected file detected: ${filePath}`);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
//console.log(`The file ${filePath} is clean.`)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
Sentry.captureException(e, {
|
|
52
|
+
extra: { detail: `Error while scanning the file ${filePath}` }
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=scanVirus.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scanVirus.mjs","sourceRoot":"","sources":["../../../src/files/scanVirus.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B,IAAI,gBAAgB,GAAoB,IAAI,CAAA;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAmC;IACrE,MAAM,cAAc,GAAqB;QACxC,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,KAAK;QACzB,SAAS,EAAE;YACV,MAAM,EAAE,2BAA2B;YACnC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;SACpB;QACD,SAAS,EAAE,KAAK;KAChB,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAElC,IAAI,CAAC;QACJ,MAAM,aAAa,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAA;QACvD,gBAAgB,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3D,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;QACzE,OAAO,gBAAgB,CAAA;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACjC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,CAAC,CAAA;IACR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC/C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAC/E,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEzE,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBAC9B,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBACrE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACzB,MAAM,CAAC,cAAc,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;QACH,CAAC;aAAM,CAAC;YACP,+CAA+C;QAChD,CAAC;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,iCAAiC,QAAQ,EAAE,EAAE;SAC9D,CAAC,CAAA;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createWriteStream, unlink } from 'node:fs';
|
|
2
|
+
import * as Sentry from '@sentry/node';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
import { UPLOAD_TEMP_DIRECTORY_URL } from './fileConst.mjs';
|
|
6
|
+
// Simulating __dirname using process.cwd()
|
|
7
|
+
// const __dirname = process.cwd()
|
|
8
|
+
const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB size limit
|
|
9
|
+
export async function storeUploadAsTemp(upload, maxFileSize = MAX_FILE_SIZE) {
|
|
10
|
+
const { createReadStream, filename } = await upload;
|
|
11
|
+
const stream = createReadStream();
|
|
12
|
+
const storedFileName = uuidv4() + path.extname(filename).toLowerCase();
|
|
13
|
+
const storedFileUrl = `${UPLOAD_TEMP_DIRECTORY_URL}/${storedFileName}`;
|
|
14
|
+
let fileSize = 0; // Variable to track file size
|
|
15
|
+
// Store the file in the filesystem.
|
|
16
|
+
await new Promise((resolve, reject) => {
|
|
17
|
+
// Create a stream to which the upload will be written.
|
|
18
|
+
const writeStream = createWriteStream(storedFileUrl);
|
|
19
|
+
// Check file size during streaming
|
|
20
|
+
stream.on('data', (chunk) => {
|
|
21
|
+
fileSize += chunk.length;
|
|
22
|
+
if (fileSize > maxFileSize) {
|
|
23
|
+
writeStream.destroy(); // Stop the stream
|
|
24
|
+
unlink(storedFileUrl, () => reject(new Error(`File size exceeds the limit of {maxFileSize}MB`)));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// Resolve the Promise only once the file handle is fully closed
|
|
28
|
+
writeStream.on('close', () => resolve(undefined));
|
|
29
|
+
// If there's an error writing the file, remove the partially written file
|
|
30
|
+
// and reject the promise.
|
|
31
|
+
writeStream.on('error', (e) => {
|
|
32
|
+
unlink(storedFileUrl, (unlinkError) => {
|
|
33
|
+
if (unlinkError) {
|
|
34
|
+
// Log or handle the unlink error in some way
|
|
35
|
+
Sentry.captureException(e, {
|
|
36
|
+
extra: { detail: 'unlink error' }
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
reject(new Error('File size exceeds the limit.'));
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
// In Node.js <= v13, errors are not automatically propagated between piped streams. If there is an error receiving the upload, destroy the write stream with the corresponding error.
|
|
43
|
+
stream.on('error', (error) => writeStream.destroy(error));
|
|
44
|
+
// Pipe the upload into the write stream.
|
|
45
|
+
stream.pipe(writeStream);
|
|
46
|
+
});
|
|
47
|
+
//console.debug('storedFileName', storedFileName)
|
|
48
|
+
return {
|
|
49
|
+
originalFilename: filename,
|
|
50
|
+
fileName: storedFileName,
|
|
51
|
+
filePath: storedFileUrl
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=storeUploadAsTemp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storeUploadAsTemp.mjs","sourceRoot":"","sources":["../../../src/files/storeUploadAsTemp.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEnD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAAc,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEvE,2CAA2C;AAC3C,kCAAkC;AAClC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,iBAAiB;AAGvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAA4B,EAAE,cAAsB,aAAa;IACxG,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAA;IACnD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IACjC,MAAM,cAAc,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IACtE,MAAM,aAAa,GAAG,GAAG,yBAAyB,IAAI,cAAc,EAAE,CAAA;IACtE,IAAI,QAAQ,GAAG,CAAC,CAAA,CAAC,8BAA8B;IAE/C,oCAAoC;IACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,uDAAuD;QACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAEpD,mCAAmC;QACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACnC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAA;YACxB,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC5B,WAAW,CAAC,OAAO,EAAE,CAAA,CAAC,kBAAkB;gBACxC,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAA;YACjG,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,gEAAgE;QAChE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAEjD,0EAA0E;QAC1E,0BAA0B;QAC1B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7B,MAAM,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,EAAE;gBACrC,IAAI,WAAW,EAAE,CAAC;oBACjB,6CAA6C;oBAC7C,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE;wBAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;qBACjC,CAAC,CAAA;gBACH,CAAC;gBACD,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,sLAAsL;QACtL,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAEhE,yCAAyC;QACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,iDAAiD;IAEjD,OAAO;QACN,gBAAgB,EAAE,QAAQ;QAC1B,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,aAAa;KACvB,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IFileUpload } from '../koa/IFileUpload.mjs';
|
|
2
|
+
import { IUploadTemp } from './IUploadTemp.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Validate file extension, Mime Type, scan with ClamAV, re encode to webp, rename final file
|
|
5
|
+
* @todo log uploaded file
|
|
6
|
+
* @param img
|
|
7
|
+
*/
|
|
8
|
+
export declare function uploadTemp(img: Promise<IFileUpload>): Promise<IUploadTemp>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { reEncodeToWebp } from './reEncodeToWebp.mjs';
|
|
2
|
+
import { scanVirus } from './scanVirus.mjs';
|
|
3
|
+
import { storeUploadAsTemp } from './storeUploadAsTemp.mjs';
|
|
4
|
+
import { validateJpgPngExtension } from './validateJpgPngExtension.mjs';
|
|
5
|
+
import { validateJpgPngMimeType } from './validateMimeTypeImages.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* Validate file extension, Mime Type, scan with ClamAV, re encode to webp, rename final file
|
|
8
|
+
* @todo log uploaded file
|
|
9
|
+
* @param img
|
|
10
|
+
*/
|
|
11
|
+
export async function uploadTemp(img) {
|
|
12
|
+
let storedTempFile = '';
|
|
13
|
+
try {
|
|
14
|
+
// Step 1 - Readme.md
|
|
15
|
+
const { fileName, filePath } = await storeUploadAsTemp(img);
|
|
16
|
+
//console.debug(fileName, filePath)
|
|
17
|
+
await validateJpgPngExtension(fileName, filePath);
|
|
18
|
+
await validateJpgPngMimeType(filePath);
|
|
19
|
+
// step 2
|
|
20
|
+
await scanVirus(`${filePath}`);
|
|
21
|
+
// step 3
|
|
22
|
+
storedTempFile = await reEncodeToWebp(filePath);
|
|
23
|
+
// await checkForNSFW(filePath)
|
|
24
|
+
// step 4 - safe file name (ok)
|
|
25
|
+
// step 5 - rate limit (ok)
|
|
26
|
+
// step 6 - ok
|
|
27
|
+
// step 7 - ok
|
|
28
|
+
// step8 - log
|
|
29
|
+
// user's IP address, filename, and timestamp,
|
|
30
|
+
// @todo await logUpload('team', uId, originalFilename, fileName)
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
// error for file handling
|
|
34
|
+
console.error('Error storing image:', e);
|
|
35
|
+
throw new Error('Error storing image');
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
ext: 'webp',
|
|
39
|
+
tempFile: storedTempFile
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=uploadTempImage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadTempImage.mjs","sourceRoot":"","sources":["../../../src/files/uploadTempImage.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAyB;IACzD,IAAI,cAAc,GAAG,EAAE,CAAA;IAEvB,IAAI,CAAC;QACJ,qBAAqB;QACrB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3D,mCAAmC;QACnC,MAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACjD,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACtC,SAAS;QACT,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAA;QAC9B,SAAS;QAET,cAAc,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC/C,+BAA+B;QAC/B,+BAA+B;QAC/B,2BAA2B;QAC3B,cAAc;QACd,cAAc;QACd,cAAc;QACd,8CAA8C;QAC9C,iEAAiE;IAClE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,0BAA0B;QAC1B,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAA;QACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACvC,CAAC;IAED,OAAO;QACN,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,cAAc;KACxB,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IFileUpload } from '../koa/IFileUpload.mjs';
|
|
2
|
+
import { IUploadTemp } from './IUploadTemp.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* Validate file extension, Mime Type, scan with ClamAV, re encode to pdf, rename final file
|
|
5
|
+
* @todo log uploaded file, reencode pdf
|
|
6
|
+
* @param pdf
|
|
7
|
+
*/
|
|
8
|
+
export declare function uploadTempPdf(pdf: Promise<IFileUpload>): Promise<IUploadTemp>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { scanVirus } from './scanVirus.mjs';
|
|
2
|
+
import { storeUploadAsTemp } from './storeUploadAsTemp.mjs';
|
|
3
|
+
import { validateMimeTypePdf } from './validateMimeTypePdf.mjs';
|
|
4
|
+
import { validatePdfExtension } from './validatePdfExtension.mjs';
|
|
5
|
+
/**
|
|
6
|
+
* Validate file extension, Mime Type, scan with ClamAV, re encode to pdf, rename final file
|
|
7
|
+
* @todo log uploaded file, reencode pdf
|
|
8
|
+
* @param pdf
|
|
9
|
+
*/
|
|
10
|
+
export async function uploadTempPdf(pdf) {
|
|
11
|
+
let storedTempFile = '';
|
|
12
|
+
try {
|
|
13
|
+
// Step 1 - Readme.md
|
|
14
|
+
const { fileName, filePath } = await storeUploadAsTemp(pdf);
|
|
15
|
+
//console.log(fileName, filePath)
|
|
16
|
+
await validatePdfExtension(fileName, filePath);
|
|
17
|
+
await validateMimeTypePdf(filePath);
|
|
18
|
+
// step 2
|
|
19
|
+
await scanVirus(`${filePath}`);
|
|
20
|
+
// step 3
|
|
21
|
+
// @todo reencode with dangerzone https://github.com/freedomofpress/dangerzone/tree/main
|
|
22
|
+
storedTempFile = filePath;
|
|
23
|
+
// await checkForNSFW(filePath)
|
|
24
|
+
// step 4 - safe file name (ok)
|
|
25
|
+
// step 5 - rate limit (ok)
|
|
26
|
+
// step 6 - ok
|
|
27
|
+
// step 7 - ok
|
|
28
|
+
// step8 - log
|
|
29
|
+
// user's IP address, filename, and timestamp,
|
|
30
|
+
// @todo await logUpload('team', uId, originalFilename, fileName)
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
// error for file handling
|
|
34
|
+
console.error('Error storing pdf:', e);
|
|
35
|
+
throw new Error('Error storing pdf');
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
ext: 'pdf',
|
|
39
|
+
tempFile: storedTempFile
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=uploadTempPdf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadTempPdf.mjs","sourceRoot":"","sources":["../../../src/files/uploadTempPdf.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAyB;IAC5D,IAAI,cAAc,GAAG,EAAE,CAAA;IAEvB,IAAI,CAAC;QACJ,qBAAqB;QACrB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3D,iCAAiC;QACjC,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC9C,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACnC,SAAS;QACT,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAA;QAC9B,SAAS;QAET,wFAAwF;QACxF,cAAc,GAAG,QAAQ,CAAA;QACzB,+BAA+B;QAC/B,+BAA+B;QAC/B,2BAA2B;QAC3B,cAAc;QACd,cAAc;QACd,cAAc;QACd,8CAA8C;QAC9C,iEAAiE;IAClE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,0BAA0B;QAC1B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;QACtC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACrC,CAAC;IAED,OAAO;QACN,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,cAAc;KACxB,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
/**
|
|
3
|
+
* Utility function to validate file extension
|
|
4
|
+
* @param filename
|
|
5
|
+
* @param allowedExtensions
|
|
6
|
+
*/
|
|
7
|
+
export const validateExtension = (filename, allowedExtensions) => {
|
|
8
|
+
const ext = path.extname(filename).toLowerCase();
|
|
9
|
+
return allowedExtensions.includes(ext);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validateExtension.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateExtension.mjs","sourceRoot":"","sources":["../../../src/files/validateExtension.mts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,iBAA2B,EAAE,EAAE;IAClF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function validateJpgPngExtension(filename: string, filePath: string): Promise<void>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import { validateExtension } from './validateExtension.mjs';
|
|
3
|
+
export async function validateJpgPngExtension(filename, filePath) {
|
|
4
|
+
if (!validateExtension(filename, ['.jpg', '.jpeg', '.png'])) {
|
|
5
|
+
await fs.remove(filePath); // Clean up the file
|
|
6
|
+
throw new Error('Invalid file extension');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=validateJpgPngExtension.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateJpgPngExtension.mjs","sourceRoot":"","sources":["../../../src/files/validateJpgPngExtension.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAAgB,EAAE,QAAgB;IAC/E,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,oBAAoB;QAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC1C,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { _validateMimeType } from "../private/files/_validateMimeType.mjs";
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
/**
|
|
4
|
+
* Validate MIME type based on file content (magic number validation)
|
|
5
|
+
* @param filePath
|
|
6
|
+
* @param allowedMimeTypes
|
|
7
|
+
*/
|
|
8
|
+
export async function validateMimeType(filePath, allowedMimeTypes) {
|
|
9
|
+
const mimeType = await _validateMimeType(filePath, allowedMimeTypes);
|
|
10
|
+
if (mimeType === '') {
|
|
11
|
+
await fs.remove(filePath); // Clean up the file
|
|
12
|
+
throw new Error('Invalid file MIME type');
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return mimeType;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=validateMimeType.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateMimeType.mjs","sourceRoot":"","sources":["../../../src/files/validateMimeType.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+CAA4C;AACxE,OAAO,EAAE,MAAM,UAAU,CAAA;AAGzB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,gBAA0B;IAClF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IACpE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,oBAAoB;QAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACP,OAAO,QAAQ,CAAA;IAChB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { validateMimeType } from './validateMimeType.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Validate MIME type based on file content (magic number validation)
|
|
4
|
+
* @param filePath
|
|
5
|
+
*/
|
|
6
|
+
export async function validateJpgPngMimeType(filePath) {
|
|
7
|
+
return await validateMimeType(filePath, ['image/jpeg', 'image/png']);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=validateMimeTypeImages.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateMimeTypeImages.mjs","sourceRoot":"","sources":["../../../src/files/validateMimeTypeImages.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAAgB;IAC5D,OAAO,MAAM,gBAAgB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { validateMimeType } from './validateMimeType.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Validate MIME type based on file content (magic number validation)
|
|
4
|
+
* @param filePath
|
|
5
|
+
*/
|
|
6
|
+
export async function validateMimeTypePdf(filePath) {
|
|
7
|
+
return await validateMimeType(filePath, ['application/pdf']);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=validateMimeTypePdf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateMimeTypePdf.mjs","sourceRoot":"","sources":["../../../src/files/validateMimeTypePdf.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACzD,OAAO,MAAM,gBAAgB,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function validatePdfExtension(filename: string, filePath: string): Promise<void>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import { validateExtension } from './validateExtension.mjs';
|
|
3
|
+
export async function validatePdfExtension(filename, filePath) {
|
|
4
|
+
if (!validateExtension(filename, ['.pdf'])) {
|
|
5
|
+
await fs.remove(filePath); // Clean up the file
|
|
6
|
+
throw new Error('Invalid file extension');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=validatePdfExtension.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validatePdfExtension.mjs","sourceRoot":"","sources":["../../../src/files/validatePdfExtension.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAgB,EAAE,QAAgB;IAC5E,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,oBAAoB;QAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC1C,CAAC;AACF,CAAC"}
|