@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.
Files changed (524) hide show
  1. package/LICENSE +236 -0
  2. package/dist/dataSources/MariaDB.d.mts +4 -0
  3. package/dist/dataSources/MariaDB.mjs +74 -0
  4. package/dist/dataSources/MariaDB.mjs.map +1 -0
  5. package/dist/dataSources/MongoDB.d.mts +2 -0
  6. package/dist/dataSources/MongoDB.mjs +35 -0
  7. package/dist/dataSources/MongoDB.mjs.map +1 -0
  8. package/dist/dataSources/PostgreSQL.d.mts +17 -0
  9. package/dist/dataSources/PostgreSQL.mjs +109 -0
  10. package/dist/dataSources/PostgreSQL.mjs.map +1 -0
  11. package/dist/dataSources/Redis.d.mts +4629 -0
  12. package/dist/dataSources/Redis.mjs +44 -0
  13. package/dist/dataSources/Redis.mjs.map +1 -0
  14. package/dist/email/SocketLabsLib.d.mts +109 -0
  15. package/dist/email/SocketLabsLib.mjs +500 -0
  16. package/dist/email/SocketLabsLib.mjs.map +1 -0
  17. package/dist/files/IUploadTemp.d.mts +4 -0
  18. package/dist/files/IUploadTemp.mjs +2 -0
  19. package/dist/files/IUploadTemp.mjs.map +1 -0
  20. package/dist/files/checkForNSFW.d.mts +1 -0
  21. package/dist/files/checkForNSFW.mjs +22 -0
  22. package/dist/files/checkForNSFW.mjs.map +1 -0
  23. package/dist/files/fileConst.d.mts +7 -0
  24. package/dist/files/fileConst.mjs +4 -0
  25. package/dist/files/fileConst.mjs.map +1 -0
  26. package/dist/files/moveFileStaticDomain.d.mts +8 -0
  27. package/dist/files/moveFileStaticDomain.mjs +13 -0
  28. package/dist/files/moveFileStaticDomain.mjs.map +1 -0
  29. package/dist/files/moveImageFile.d.mts +1 -0
  30. package/dist/files/moveImageFile.mjs +7 -0
  31. package/dist/files/moveImageFile.mjs.map +1 -0
  32. package/dist/files/moveTempFile.d.mts +7 -0
  33. package/dist/files/moveTempFile.mjs +18 -0
  34. package/dist/files/moveTempFile.mjs.map +1 -0
  35. package/dist/files/reEncodeToJpeg.d.mts +1 -0
  36. package/dist/files/reEncodeToJpeg.mjs +5 -0
  37. package/dist/files/reEncodeToJpeg.mjs.map +1 -0
  38. package/dist/files/reEncodeToPng.d.mts +1 -0
  39. package/dist/files/reEncodeToPng.mjs +5 -0
  40. package/dist/files/reEncodeToPng.mjs.map +1 -0
  41. package/dist/files/reEncodeToWebp.d.mts +1 -0
  42. package/dist/files/reEncodeToWebp.mjs +5 -0
  43. package/dist/files/reEncodeToWebp.mjs.map +1 -0
  44. package/dist/files/scanVirus.d.mts +6 -0
  45. package/dist/files/scanVirus.mjs +56 -0
  46. package/dist/files/scanVirus.mjs.map +1 -0
  47. package/dist/files/storeUploadAsTemp.d.mts +3 -0
  48. package/dist/files/storeUploadAsTemp.mjs +54 -0
  49. package/dist/files/storeUploadAsTemp.mjs.map +1 -0
  50. package/dist/files/uploadTempImage.d.mts +8 -0
  51. package/dist/files/uploadTempImage.mjs +42 -0
  52. package/dist/files/uploadTempImage.mjs.map +1 -0
  53. package/dist/files/uploadTempPdf.d.mts +8 -0
  54. package/dist/files/uploadTempPdf.mjs +42 -0
  55. package/dist/files/uploadTempPdf.mjs.map +1 -0
  56. package/dist/files/validateExtension.d.mts +6 -0
  57. package/dist/files/validateExtension.mjs +11 -0
  58. package/dist/files/validateExtension.mjs.map +1 -0
  59. package/dist/files/validateJpgPngExtension.d.mts +1 -0
  60. package/dist/files/validateJpgPngExtension.mjs +9 -0
  61. package/dist/files/validateJpgPngExtension.mjs.map +1 -0
  62. package/dist/files/validateMimeType.d.mts +6 -0
  63. package/dist/files/validateMimeType.mjs +18 -0
  64. package/dist/files/validateMimeType.mjs.map +1 -0
  65. package/dist/files/validateMimeTypeImages.d.mts +5 -0
  66. package/dist/files/validateMimeTypeImages.mjs +9 -0
  67. package/dist/files/validateMimeTypeImages.mjs.map +1 -0
  68. package/dist/files/validateMimeTypePdf.d.mts +5 -0
  69. package/dist/files/validateMimeTypePdf.mjs +9 -0
  70. package/dist/files/validateMimeTypePdf.mjs.map +1 -0
  71. package/dist/files/validatePdfExtension.d.mts +1 -0
  72. package/dist/files/validatePdfExtension.mjs +9 -0
  73. package/dist/files/validatePdfExtension.mjs.map +1 -0
  74. package/dist/graphQL/models/MongoDB/UserBase.d.mts +61 -0
  75. package/dist/graphQL/models/MongoDB/UserBase.mjs +112 -0
  76. package/dist/graphQL/models/MongoDB/UserBase.mjs.map +1 -0
  77. package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.d.mts +25 -0
  78. package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs +36 -0
  79. package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs.map +1 -0
  80. package/dist/graphQL/models/MongoDB/log/LogGlobalError.d.mts +16 -0
  81. package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs +25 -0
  82. package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs.map +1 -0
  83. package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.d.mts +18 -0
  84. package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs +33 -0
  85. package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs.map +1 -0
  86. package/dist/graphQL/models/MongoDB/log/LogThrow.d.mts +17 -0
  87. package/dist/graphQL/models/MongoDB/log/LogThrow.mjs +28 -0
  88. package/dist/graphQL/models/MongoDB/log/LogThrow.mjs.map +1 -0
  89. package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.d.mts +2 -0
  90. package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs +9 -0
  91. package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs.map +1 -0
  92. package/dist/graphQL/schema/context/IContextAuthenticatedResource.d.mts +16 -0
  93. package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs +2 -0
  94. package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs.map +1 -0
  95. package/dist/graphQL/schema/context/IContextKoaErrorHandler.d.mts +11 -0
  96. package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs +2 -0
  97. package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs.map +1 -0
  98. package/dist/graphQL/schema/context/IContextLogin.d.mts +4 -0
  99. package/dist/graphQL/schema/context/IContextLogin.mjs +2 -0
  100. package/dist/graphQL/schema/context/IContextLogin.mjs.map +1 -0
  101. package/dist/graphQL/schema/context/IContextLogout.d.mts +18 -0
  102. package/dist/graphQL/schema/context/IContextLogout.mjs +2 -0
  103. package/dist/graphQL/schema/context/IContextLogout.mjs.map +1 -0
  104. package/dist/graphQL/schema/context/IContextRefresh.d.mts +19 -0
  105. package/dist/graphQL/schema/context/IContextRefresh.mjs +2 -0
  106. package/dist/graphQL/schema/context/IContextRefresh.mjs.map +1 -0
  107. package/dist/graphQL/schema/context/TCommonHeaders.d.mts +15 -0
  108. package/dist/graphQL/schema/context/TCommonHeaders.mjs +2 -0
  109. package/dist/graphQL/schema/context/TCommonHeaders.mjs.map +1 -0
  110. package/dist/graphQL/schema/interfaces/IFindAndUpdate.d.mts +16 -0
  111. package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs +2 -0
  112. package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs.map +1 -0
  113. package/dist/graphQL/schema/mutations/emailChangeHashVerify.d.mts +22 -0
  114. package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs +94 -0
  115. package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs.map +1 -0
  116. package/dist/graphQL/schema/mutations/login4Ever.d.mts +22 -0
  117. package/dist/graphQL/schema/mutations/login4Ever.mjs +60 -0
  118. package/dist/graphQL/schema/mutations/login4Ever.mjs.map +1 -0
  119. package/dist/graphQL/schema/mutations/loginAdmin.d.mts +29 -0
  120. package/dist/graphQL/schema/mutations/loginAdmin.mjs +59 -0
  121. package/dist/graphQL/schema/mutations/loginAdmin.mjs.map +1 -0
  122. package/dist/graphQL/schema/mutations/loginRememberme.d.mts +26 -0
  123. package/dist/graphQL/schema/mutations/loginRememberme.mjs +54 -0
  124. package/dist/graphQL/schema/mutations/loginRememberme.mjs.map +1 -0
  125. package/dist/graphQL/schema/mutations/logout.d.mts +7 -0
  126. package/dist/graphQL/schema/mutations/logout.mjs +28 -0
  127. package/dist/graphQL/schema/mutations/logout.mjs.map +1 -0
  128. package/dist/graphQL/schema/mutations/refresh.d.mts +10 -0
  129. package/dist/graphQL/schema/mutations/refresh.mjs +59 -0
  130. package/dist/graphQL/schema/mutations/refresh.mjs.map +1 -0
  131. package/dist/graphQL/schema/mutations/resetPwd.d.mts +19 -0
  132. package/dist/graphQL/schema/mutations/resetPwd.mjs +91 -0
  133. package/dist/graphQL/schema/mutations/resetPwd.mjs.map +1 -0
  134. package/dist/graphQL/schema/mutations/signUp.d.mts +19 -0
  135. package/dist/graphQL/schema/mutations/signUp.mjs +55 -0
  136. package/dist/graphQL/schema/mutations/signUp.mjs.map +1 -0
  137. package/dist/graphQL/schema/mutations/updatePassword.d.mts +23 -0
  138. package/dist/graphQL/schema/mutations/updatePassword.mjs +70 -0
  139. package/dist/graphQL/schema/mutations/updatePassword.mjs.map +1 -0
  140. package/dist/graphQL/schema/types/DeleteType.d.mts +6 -0
  141. package/dist/graphQL/schema/types/DeleteType.mjs +13 -0
  142. package/dist/graphQL/schema/types/DeleteType.mjs.map +1 -0
  143. package/dist/graphQL/schema/types/DoneType.d.mts +2 -0
  144. package/dist/graphQL/schema/types/DoneType.mjs +10 -0
  145. package/dist/graphQL/schema/types/DoneType.mjs.map +1 -0
  146. package/dist/graphQL/schema/types/FindOneAndUpdateType.d.mts +2 -0
  147. package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs +15 -0
  148. package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs.map +1 -0
  149. package/dist/graphQL/schema/types/LoginAppType.d.mts +2 -0
  150. package/dist/graphQL/schema/types/LoginAppType.mjs +11 -0
  151. package/dist/graphQL/schema/types/LoginAppType.mjs.map +1 -0
  152. package/dist/graphQL/schema/types/LoginType.d.mts +2 -0
  153. package/dist/graphQL/schema/types/LoginType.mjs +9 -0
  154. package/dist/graphQL/schema/types/LoginType.mjs.map +1 -0
  155. package/dist/graphQL/schema/types/MidNameType.d.mts +5 -0
  156. package/dist/graphQL/schema/types/MidNameType.mjs +12 -0
  157. package/dist/graphQL/schema/types/MidNameType.mjs.map +1 -0
  158. package/dist/graphQL/schema/types/OnlyIdType.d.mts +2 -0
  159. package/dist/graphQL/schema/types/OnlyIdType.mjs +8 -0
  160. package/dist/graphQL/schema/types/OnlyIdType.mjs.map +1 -0
  161. package/dist/graphQL/schema/types/RefreshType.d.mts +2 -0
  162. package/dist/graphQL/schema/types/RefreshType.mjs +10 -0
  163. package/dist/graphQL/schema/types/RefreshType.mjs.map +1 -0
  164. package/dist/graphQL/schema/types/RetStatusMexType.d.mts +2 -0
  165. package/dist/graphQL/schema/types/RetStatusMexType.mjs +9 -0
  166. package/dist/graphQL/schema/types/RetStatusMexType.mjs.map +1 -0
  167. package/dist/graphQL/schema/types/RetStatusType.d.mts +2 -0
  168. package/dist/graphQL/schema/types/RetStatusType.mjs +8 -0
  169. package/dist/graphQL/schema/types/RetStatusType.mjs.map +1 -0
  170. package/dist/graphQL/schema/types/SaveType.d.mts +2 -0
  171. package/dist/graphQL/schema/types/SaveType.mjs +9 -0
  172. package/dist/graphQL/schema/types/SaveType.mjs.map +1 -0
  173. package/dist/graphQL/schema/types/SidNameType.d.mts +5 -0
  174. package/dist/graphQL/schema/types/SidNameType.mjs +12 -0
  175. package/dist/graphQL/schema/types/SidNameType.mjs.map +1 -0
  176. package/dist/graphQL/schema/types/SidNomeType.d.mts +5 -0
  177. package/dist/graphQL/schema/types/SidNomeType.mjs +12 -0
  178. package/dist/graphQL/schema/types/SidNomeType.mjs.map +1 -0
  179. package/dist/graphQL/schema/types/UpdateResultType.d.mts +2 -0
  180. package/dist/graphQL/schema/types/UpdateResultType.mjs +9 -0
  181. package/dist/graphQL/schema/types/UpdateResultType.mjs.map +1 -0
  182. package/dist/graphQL/status.d.mts +7 -0
  183. package/dist/graphQL/status.mjs +8 -0
  184. package/dist/graphQL/status.mjs.map +1 -0
  185. package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.d.mts +1 -0
  186. package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs +5 -0
  187. package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs.map +1 -0
  188. package/dist/graphQL/throw/throwAccessTokenRequired.d.mts +1 -0
  189. package/dist/graphQL/throw/throwAccessTokenRequired.mjs +5 -0
  190. package/dist/graphQL/throw/throwAccessTokenRequired.mjs.map +1 -0
  191. package/dist/graphQL/throw/throwAlreadyDone.d.mts +4 -0
  192. package/dist/graphQL/throw/throwAlreadyDone.mjs +8 -0
  193. package/dist/graphQL/throw/throwAlreadyDone.mjs.map +1 -0
  194. package/dist/graphQL/throw/throwAlreadyTakenError.d.mts +1 -0
  195. package/dist/graphQL/throw/throwAlreadyTakenError.mjs +6 -0
  196. package/dist/graphQL/throw/throwAlreadyTakenError.mjs.map +1 -0
  197. package/dist/graphQL/throw/throwConflictError.d.mts +1 -0
  198. package/dist/graphQL/throw/throwConflictError.mjs +6 -0
  199. package/dist/graphQL/throw/throwConflictError.mjs.map +1 -0
  200. package/dist/graphQL/throw/throwErrorWrongUserInput.d.mts +1 -0
  201. package/dist/graphQL/throw/throwErrorWrongUserInput.mjs +5 -0
  202. package/dist/graphQL/throw/throwErrorWrongUserInput.mjs.map +1 -0
  203. package/dist/graphQL/throw/throwForbiddenError.d.mts +1 -0
  204. package/dist/graphQL/throw/throwForbiddenError.mjs +5 -0
  205. package/dist/graphQL/throw/throwForbiddenError.mjs.map +1 -0
  206. package/dist/graphQL/throw/throwGoneError.d.mts +1 -0
  207. package/dist/graphQL/throw/throwGoneError.mjs +6 -0
  208. package/dist/graphQL/throw/throwGoneError.mjs.map +1 -0
  209. package/dist/graphQL/throw/throwGraphQLError.d.mts +1 -0
  210. package/dist/graphQL/throw/throwGraphQLError.mjs +10 -0
  211. package/dist/graphQL/throw/throwGraphQLError.mjs.map +1 -0
  212. package/dist/graphQL/throw/throwInternalError.d.mts +1 -0
  213. package/dist/graphQL/throw/throwInternalError.mjs +5 -0
  214. package/dist/graphQL/throw/throwInternalError.mjs.map +1 -0
  215. package/dist/graphQL/throw/throwMethodNotAllowedError.d.mts +1 -0
  216. package/dist/graphQL/throw/throwMethodNotAllowedError.mjs +6 -0
  217. package/dist/graphQL/throw/throwMethodNotAllowedError.mjs.map +1 -0
  218. package/dist/graphQL/throw/throwMissingMalformedInvalidToken.d.mts +1 -0
  219. package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs +5 -0
  220. package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs.map +1 -0
  221. package/dist/graphQL/throw/throwNotAcceptableError.d.mts +1 -0
  222. package/dist/graphQL/throw/throwNotAcceptableError.mjs +6 -0
  223. package/dist/graphQL/throw/throwNotAcceptableError.mjs.map +1 -0
  224. package/dist/graphQL/throw/throwNotFoundError.d.mts +1 -0
  225. package/dist/graphQL/throw/throwNotFoundError.mjs +6 -0
  226. package/dist/graphQL/throw/throwNotFoundError.mjs.map +1 -0
  227. package/dist/graphQL/throw/throwNotImplementedError.d.mts +1 -0
  228. package/dist/graphQL/throw/throwNotImplementedError.mjs +6 -0
  229. package/dist/graphQL/throw/throwNotImplementedError.mjs.map +1 -0
  230. package/dist/graphQL/throw/throwPaymentRequiredError.d.mts +1 -0
  231. package/dist/graphQL/throw/throwPaymentRequiredError.mjs +5 -0
  232. package/dist/graphQL/throw/throwPaymentRequiredError.mjs.map +1 -0
  233. package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.d.mts +1 -0
  234. package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs +5 -0
  235. package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs.map +1 -0
  236. package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.d.mts +1 -0
  237. package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs +5 -0
  238. package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs.map +1 -0
  239. package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.d.mts +1 -0
  240. package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs +5 -0
  241. package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs.map +1 -0
  242. package/dist/graphQL/throw/throwRefreshTokenRequired.d.mts +1 -0
  243. package/dist/graphQL/throw/throwRefreshTokenRequired.mjs +5 -0
  244. package/dist/graphQL/throw/throwRefreshTokenRequired.mjs.map +1 -0
  245. package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.d.mts +1 -0
  246. package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs +5 -0
  247. package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs.map +1 -0
  248. package/dist/graphQL/throw/throwTooManyRequestsError.d.mts +1 -0
  249. package/dist/graphQL/throw/throwTooManyRequestsError.mjs +5 -0
  250. package/dist/graphQL/throw/throwTooManyRequestsError.mjs.map +1 -0
  251. package/dist/graphQL/throw/throwUnauthorizedError.d.mts +1 -0
  252. package/dist/graphQL/throw/throwUnauthorizedError.mjs +5 -0
  253. package/dist/graphQL/throw/throwUnauthorizedError.mjs.map +1 -0
  254. package/dist/graphQL/throw/throwUnprocessableContentError.d.mts +1 -0
  255. package/dist/graphQL/throw/throwUnprocessableContentError.mjs +5 -0
  256. package/dist/graphQL/throw/throwUnprocessableContentError.mjs.map +1 -0
  257. package/dist/graphQL/throw/throwUnsupportedMediaTypeError.d.mts +1 -0
  258. package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs +5 -0
  259. package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs.map +1 -0
  260. package/dist/koa/IFileUpload.d.mts +6 -0
  261. package/dist/koa/IFileUpload.mjs +2 -0
  262. package/dist/koa/IFileUpload.mjs.map +1 -0
  263. package/dist/koa/IKoaError.d.mts +15 -0
  264. package/dist/koa/IKoaError.mjs +2 -0
  265. package/dist/koa/IKoaError.mjs.map +1 -0
  266. package/dist/koa/customFormatErrorFn.d.mts +2 -0
  267. package/dist/koa/customFormatErrorFn.mjs +10 -0
  268. package/dist/koa/customFormatErrorFn.mjs.map +1 -0
  269. package/dist/koa/logRequestToDb.d.mts +3 -0
  270. package/dist/koa/logRequestToDb.mjs +16 -0
  271. package/dist/koa/logRequestToDb.mjs.map +1 -0
  272. package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.d.mts +4 -0
  273. package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs +2 -0
  274. package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs.map +1 -0
  275. package/dist/koa/middleware/authenticatedAuthorizationHandler/index.d.mts +4 -0
  276. package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs +35 -0
  277. package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs.map +1 -0
  278. package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.d.mts +3 -0
  279. package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs +41 -0
  280. package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs.map +1 -0
  281. package/dist/koa/middleware/authenticatedLogoutHandler/index.d.mts +4 -0
  282. package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs +65 -0
  283. package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs.map +1 -0
  284. package/dist/koa/middleware/authenticatedResourceHandler/index.d.mts +6 -0
  285. package/dist/koa/middleware/authenticatedResourceHandler/index.mjs +47 -0
  286. package/dist/koa/middleware/authenticatedResourceHandler/index.mjs.map +1 -0
  287. package/dist/koa/middleware/debug/index.d.mts +3 -0
  288. package/dist/koa/middleware/debug/index.mjs +9 -0
  289. package/dist/koa/middleware/debug/index.mjs.map +1 -0
  290. package/dist/koa/router/verifyEmail.d.mts +2 -0
  291. package/dist/koa/router/verifyEmail.mjs +46 -0
  292. package/dist/koa/router/verifyEmail.mjs.map +1 -0
  293. package/dist/koa/tdwKoaErrorHandler.d.mts +3 -0
  294. package/dist/koa/tdwKoaErrorHandler.mjs +40 -0
  295. package/dist/koa/tdwKoaErrorHandler.mjs.map +1 -0
  296. package/dist/lib/ArrayLib.d.mts +4 -0
  297. package/dist/lib/ArrayLib.mjs +10 -0
  298. package/dist/lib/ArrayLib.mjs.map +1 -0
  299. package/dist/lib/Constants.d.mts +7 -0
  300. package/dist/lib/Constants.mjs +8 -0
  301. package/dist/lib/Constants.mjs.map +1 -0
  302. package/dist/lib/DateLib.d.mts +9 -0
  303. package/dist/lib/DateLib.mjs +36 -0
  304. package/dist/lib/DateLib.mjs.map +1 -0
  305. package/dist/lib/IAuthorizationDisDel.d.mts +4 -0
  306. package/dist/lib/IAuthorizationDisDel.mjs +2 -0
  307. package/dist/lib/IAuthorizationDisDel.mjs.map +1 -0
  308. package/dist/lib/ICookies.d.mts +13 -0
  309. package/dist/lib/ICookies.mjs +2 -0
  310. package/dist/lib/ICookies.mjs.map +1 -0
  311. package/dist/lib/MariaDB/IMariaDBErr.d.mts +6 -0
  312. package/dist/lib/MariaDB/IMariaDBErr.mjs +2 -0
  313. package/dist/lib/MariaDB/IMariaDBErr.mjs.map +1 -0
  314. package/dist/lib/MariaDB/MariaDBErrType.d.mts +3 -0
  315. package/dist/lib/MariaDB/MariaDBErrType.mjs +6 -0
  316. package/dist/lib/MariaDB/MariaDBErrType.mjs.map +1 -0
  317. package/dist/lib/MariaDB/throwSqlErrors.d.mts +2 -0
  318. package/dist/lib/MariaDB/throwSqlErrors.mjs +22 -0
  319. package/dist/lib/MariaDB/throwSqlErrors.mjs.map +1 -0
  320. package/dist/lib/MongoDB/IMongoDBError.d.mts +12 -0
  321. package/dist/lib/MongoDB/IMongoDBError.mjs +2 -0
  322. package/dist/lib/MongoDB/IMongoDBError.mjs.map +1 -0
  323. package/dist/lib/MongoDB/IOnboarding.d.mts +4 -0
  324. package/dist/lib/MongoDB/IOnboarding.mjs +2 -0
  325. package/dist/lib/MongoDB/IOnboarding.mjs.map +1 -0
  326. package/dist/lib/MongoDB/MongoDBErrType.d.mts +3 -0
  327. package/dist/lib/MongoDB/MongoDBErrType.mjs +5 -0
  328. package/dist/lib/MongoDB/MongoDBErrType.mjs.map +1 -0
  329. package/dist/lib/MongoDB/throwIfMongoErr.d.mts +2 -0
  330. package/dist/lib/MongoDB/throwIfMongoErr.mjs +16 -0
  331. package/dist/lib/MongoDB/throwIfMongoErr.mjs.map +1 -0
  332. package/dist/lib/MongoDB/throwMongoErrors.d.mts +2 -0
  333. package/dist/lib/MongoDB/throwMongoErrors.mjs +10 -0
  334. package/dist/lib/MongoDB/throwMongoErrors.mjs.map +1 -0
  335. package/dist/lib/NumLib.d.mts +10 -0
  336. package/dist/lib/NumLib.mjs +14 -0
  337. package/dist/lib/NumLib.mjs.map +1 -0
  338. package/dist/lib/PostgreSQL/IPostgresError.d.mts +6 -0
  339. package/dist/lib/PostgreSQL/IPostgresError.mjs +2 -0
  340. package/dist/lib/PostgreSQL/IPostgresError.mjs.map +1 -0
  341. package/dist/lib/PostgreSQL/IPostgresErrorCodes.d.mts +3 -0
  342. package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs +5 -0
  343. package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs.map +1 -0
  344. package/dist/lib/PostgreSQL/makePostgreSqlLogError.d.mts +2 -0
  345. package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs +4 -0
  346. package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs.map +1 -0
  347. package/dist/lib/Redis/RedisBoolean.d.mts +4 -0
  348. package/dist/lib/Redis/RedisBoolean.mjs +6 -0
  349. package/dist/lib/Redis/RedisBoolean.mjs.map +1 -0
  350. package/dist/lib/Redis/fromRedisBooleanValue.d.mts +2 -0
  351. package/dist/lib/Redis/fromRedisBooleanValue.mjs +5 -0
  352. package/dist/lib/Redis/fromRedisBooleanValue.mjs.map +1 -0
  353. package/dist/lib/Redis/toRedisBooleanValue.d.mts +2 -0
  354. package/dist/lib/Redis/toRedisBooleanValue.mjs +5 -0
  355. package/dist/lib/Redis/toRedisBooleanValue.mjs.map +1 -0
  356. package/dist/lib/StringLib.d.mts +16 -0
  357. package/dist/lib/StringLib.mjs +58 -0
  358. package/dist/lib/StringLib.mjs.map +1 -0
  359. package/dist/lib/checkEmailLen.d.mts +1 -0
  360. package/dist/lib/checkEmailLen.mjs +11 -0
  361. package/dist/lib/checkEmailLen.mjs.map +1 -0
  362. package/dist/lib/checkPwdLen.d.mts +1 -0
  363. package/dist/lib/checkPwdLen.mjs +13 -0
  364. package/dist/lib/checkPwdLen.mjs.map +1 -0
  365. package/dist/lib/db/log/hitStat.d.mts +1 -0
  366. package/dist/lib/db/log/hitStat.mjs +13 -0
  367. package/dist/lib/db/log/hitStat.mjs.map +1 -0
  368. package/dist/lib/db/log/logGlobalError.d.mts +6 -0
  369. package/dist/lib/db/log/logGlobalError.mjs +12 -0
  370. package/dist/lib/db/log/logGlobalError.mjs.map +1 -0
  371. package/dist/lib/db/log/logGraphql.d.mts +9 -0
  372. package/dist/lib/db/log/logGraphql.mjs +27 -0
  373. package/dist/lib/db/log/logGraphql.mjs.map +1 -0
  374. package/dist/lib/db/log/logThrow.d.mts +1 -0
  375. package/dist/lib/db/log/logThrow.mjs +15 -0
  376. package/dist/lib/db/log/logThrow.mjs.map +1 -0
  377. package/dist/lib/db/login/ILoginSet.d.mts +7 -0
  378. package/dist/lib/db/login/ILoginSet.mjs +2 -0
  379. package/dist/lib/db/login/ILoginSet.mjs.map +1 -0
  380. package/dist/lib/db/login/ILoginUnset.d.mts +5 -0
  381. package/dist/lib/db/login/ILoginUnset.mjs +2 -0
  382. package/dist/lib/db/login/ILoginUnset.mjs.map +1 -0
  383. package/dist/lib/db/registerNewUser.d.mts +2 -0
  384. package/dist/lib/db/registerNewUser.mjs +33 -0
  385. package/dist/lib/db/registerNewUser.mjs.map +1 -0
  386. package/dist/lib/db/userExist.d.mts +2 -0
  387. package/dist/lib/db/userExist.mjs +8 -0
  388. package/dist/lib/db/userExist.mjs.map +1 -0
  389. package/dist/lib/emailHash.d.mts +1 -0
  390. package/dist/lib/emailHash.mjs +7 -0
  391. package/dist/lib/emailHash.mjs.map +1 -0
  392. package/dist/lib/encryptPassword.d.mts +1 -0
  393. package/dist/lib/encryptPassword.mjs +6 -0
  394. package/dist/lib/encryptPassword.mjs.map +1 -0
  395. package/dist/lib/hash.d.mts +6 -0
  396. package/dist/lib/hash.mjs +15 -0
  397. package/dist/lib/hash.mjs.map +1 -0
  398. package/dist/lib/makeOnboardingData.d.mts +2 -0
  399. package/dist/lib/makeOnboardingData.mjs +4 -0
  400. package/dist/lib/makeOnboardingData.mjs.map +1 -0
  401. package/dist/lib/setLoginCookies.d.mts +2 -0
  402. package/dist/lib/setLoginCookies.mjs +10 -0
  403. package/dist/lib/setLoginCookies.mjs.map +1 -0
  404. package/dist/lib/sleepMs.d.mts +1 -0
  405. package/dist/lib/sleepMs.mjs +2 -0
  406. package/dist/lib/sleepMs.mjs.map +1 -0
  407. package/dist/lib/throwIfNotValidEnumValue.d.mts +1 -0
  408. package/dist/lib/throwIfNotValidEnumValue.mjs +8 -0
  409. package/dist/lib/throwIfNotValidEnumValue.mjs.map +1 -0
  410. package/dist/lib/tokenOptions.d.mts +12 -0
  411. package/dist/lib/tokenOptions.mjs +17 -0
  412. package/dist/lib/tokenOptions.mjs.map +1 -0
  413. package/dist/lib/tokens.d.mts +4 -0
  414. package/dist/lib/tokens.mjs +22 -0
  415. package/dist/lib/tokens.mjs.map +1 -0
  416. package/dist/lib/tryCatchRethrow.d.mts +2 -0
  417. package/dist/lib/tryCatchRethrow.mjs +20 -0
  418. package/dist/lib/tryCatchRethrow.mjs.map +1 -0
  419. package/dist/private/files/_validateMimeType.d.mts +6 -0
  420. package/dist/private/files/_validateMimeType.mjs +21 -0
  421. package/dist/private/files/_validateMimeType.mjs.map +1 -0
  422. package/dist/private/files/reEncode.d.mts +10 -0
  423. package/dist/private/files/reEncode.mjs +61 -0
  424. package/dist/private/files/reEncode.mjs.map +1 -0
  425. package/dist/private/graphQL/Consts.d.mts +2 -0
  426. package/dist/private/graphQL/Consts.mjs +3 -0
  427. package/dist/private/graphQL/Consts.mjs.map +1 -0
  428. package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.d.mts +58 -0
  429. package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs +107 -0
  430. package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs.map +1 -0
  431. package/dist/private/graphQL/schema/context/IContextLog.d.mts +15 -0
  432. package/dist/private/graphQL/schema/context/IContextLog.mjs +2 -0
  433. package/dist/private/graphQL/schema/context/IContextLog.mjs.map +1 -0
  434. package/dist/private/graphQL/schema/context/IContextVerifyEmail.d.mts +7 -0
  435. package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs +2 -0
  436. package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs.map +1 -0
  437. package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.d.mts +5 -0
  438. package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs +30 -0
  439. package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs.map +1 -0
  440. package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.d.mts +5 -0
  441. package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs +32 -0
  442. package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs.map +1 -0
  443. package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.d.mts +3 -0
  444. package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs +14 -0
  445. package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs.map +1 -0
  446. package/dist/private/graphQL/schema/mutations/infoUserForLogin.d.mts +3 -0
  447. package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs +14 -0
  448. package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs.map +1 -0
  449. package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.d.mts +8 -0
  450. package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs +16 -0
  451. package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs.map +1 -0
  452. package/dist/private/graphQL/schema/mutations/setLastLoginSQL.d.mts +1 -0
  453. package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs +25 -0
  454. package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs.map +1 -0
  455. package/dist/private/graphQL/schema/mutations/setRedisLoginSession.d.mts +2 -0
  456. package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs +33 -0
  457. package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs.map +1 -0
  458. package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.d.mts +2 -0
  459. package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs +27 -0
  460. package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs.map +1 -0
  461. package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.d.mts +2 -0
  462. package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs +18 -0
  463. package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs.map +1 -0
  464. package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.d.mts +2 -0
  465. package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs +27 -0
  466. package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs.map +1 -0
  467. package/dist/private/lib/access/Constants.d.mts +2 -0
  468. package/dist/private/lib/access/Constants.mjs +4 -0
  469. package/dist/private/lib/access/Constants.mjs.map +1 -0
  470. package/dist/private/lib/access/db/confirmNewEmail.d.mts +2 -0
  471. package/dist/private/lib/access/db/confirmNewEmail.mjs +13 -0
  472. package/dist/private/lib/access/db/confirmNewEmail.mjs.map +1 -0
  473. package/dist/private/lib/access/db/deleteUserByEmail.d.mts +1 -0
  474. package/dist/private/lib/access/db/deleteUserByEmail.mjs +8 -0
  475. package/dist/private/lib/access/db/deleteUserByEmail.mjs.map +1 -0
  476. package/dist/private/lib/access/db/enableEmailAccess.d.mts +2 -0
  477. package/dist/private/lib/access/db/enableEmailAccess.mjs +17 -0
  478. package/dist/private/lib/access/db/enableEmailAccess.mjs.map +1 -0
  479. package/dist/private/lib/access/db/getResetPwd.d.mts +7 -0
  480. package/dist/private/lib/access/db/getResetPwd.mjs +24 -0
  481. package/dist/private/lib/access/db/getResetPwd.mjs.map +1 -0
  482. package/dist/private/lib/access/db/incReqTimes.d.mts +2 -0
  483. package/dist/private/lib/access/db/incReqTimes.mjs +5 -0
  484. package/dist/private/lib/access/db/incReqTimes.mjs.map +1 -0
  485. package/dist/private/lib/access/db/removeResetReq.d.mts +2 -0
  486. package/dist/private/lib/access/db/removeResetReq.mjs +7 -0
  487. package/dist/private/lib/access/db/removeResetReq.mjs.map +1 -0
  488. package/dist/private/lib/access/db/saveResetReq.d.mts +2 -0
  489. package/dist/private/lib/access/db/saveResetReq.mjs +17 -0
  490. package/dist/private/lib/access/db/saveResetReq.mjs.map +1 -0
  491. package/dist/private/lib/access/db/setEmailHash.d.mts +2 -0
  492. package/dist/private/lib/access/db/setEmailHash.mjs +16 -0
  493. package/dist/private/lib/access/db/setEmailHash.mjs.map +1 -0
  494. package/dist/private/lib/access/db/updatePasswordDb.d.mts +2 -0
  495. package/dist/private/lib/access/db/updatePasswordDb.mjs +8 -0
  496. package/dist/private/lib/access/db/updatePasswordDb.mjs.map +1 -0
  497. package/dist/private/lib/access/db/userData4VerifyEmail.d.mts +3 -0
  498. package/dist/private/lib/access/db/userData4VerifyEmail.mjs +16 -0
  499. package/dist/private/lib/access/db/userData4VerifyEmail.mjs.map +1 -0
  500. package/dist/private/lib/access/handleBadDB.d.mts +1 -0
  501. package/dist/private/lib/access/handleBadDB.mjs +9 -0
  502. package/dist/private/lib/access/handleBadDB.mjs.map +1 -0
  503. package/dist/private/lib/access/handleIfAccountDeleted.d.mts +1 -0
  504. package/dist/private/lib/access/handleIfAccountDeleted.mjs +10 -0
  505. package/dist/private/lib/access/handleIfAccountDeleted.mjs.map +1 -0
  506. package/dist/private/lib/access/handleIfAccountDisabled.d.mts +1 -0
  507. package/dist/private/lib/access/handleIfAccountDisabled.mjs +10 -0
  508. package/dist/private/lib/access/handleIfAccountDisabled.mjs.map +1 -0
  509. package/dist/private/lib/access/handleIfEmailAlreadyValid.d.mts +1 -0
  510. package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs +10 -0
  511. package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs.map +1 -0
  512. package/dist/private/lib/access/handleIfHashBad.d.mts +11 -0
  513. package/dist/private/lib/access/handleIfHashBad.mjs +22 -0
  514. package/dist/private/lib/access/handleIfHashBad.mjs.map +1 -0
  515. package/dist/private/lib/access/handleIfMoreThan3DaysPassed.d.mts +1 -0
  516. package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs +23 -0
  517. package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs.map +1 -0
  518. package/dist/private/lib/access/handleIfTooMuchRequestsTimes.d.mts +1 -0
  519. package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs +13 -0
  520. package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs.map +1 -0
  521. package/dist/private/lib/makeBodyJson.d.mts +1 -0
  522. package/dist/private/lib/makeBodyJson.mjs +7 -0
  523. package/dist/private/lib/makeBodyJson.mjs.map +1 -0
  524. package/package.json +656 -0
@@ -0,0 +1,4 @@
1
+ export interface IUploadTemp {
2
+ tempFile: string;
3
+ ext: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IUploadTemp.mjs.map
@@ -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,7 @@
1
+ export declare const UPLOAD_TEMP_DIRECTORY_URL = "/tmp";
2
+ export declare const UPLOAD_IMG_DIRECTORY_URL: string;
3
+ export interface IStoreFile {
4
+ originalFilename: string;
5
+ fileName: string;
6
+ filePath: string;
7
+ }
@@ -0,0 +1,4 @@
1
+ import path from 'path';
2
+ export const UPLOAD_TEMP_DIRECTORY_URL = '/tmp';
3
+ export const UPLOAD_IMG_DIRECTORY_URL = path.join(process.cwd(), 'upload/uimg');
4
+ //# sourceMappingURL=fileConst.mjs.map
@@ -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,7 @@
1
+ /**
2
+ *
3
+ * @param sourceFilePath
4
+ * @param destFilename
5
+ * @param destinationDir
6
+ */
7
+ export declare function moveTempFile(sourceFilePath: string, destFilename: string, destinationDir: string): Promise<void>;
@@ -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,5 @@
1
+ import { reEncode } from "../private/files/reEncode.mjs";
2
+ export async function reEncodeToJpeg(filename, quality = 100) {
3
+ return await reEncode(filename, 'jpeg', quality);
4
+ }
5
+ //# sourceMappingURL=reEncodeToJpeg.mjs.map
@@ -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,5 @@
1
+ import { reEncode } from "../private/files/reEncode.mjs";
2
+ export async function reEncodeToPng(filename, quality = 100) {
3
+ return await reEncode(filename, 'png', quality);
4
+ }
5
+ //# sourceMappingURL=reEncodeToPng.mjs.map
@@ -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,5 @@
1
+ import { reEncode } from "../private/files/reEncode.mjs";
2
+ export async function reEncodeToWebp(filename, quality = 100) {
3
+ return await reEncode(filename, 'webp', quality);
4
+ }
5
+ //# sourceMappingURL=reEncodeToWebp.mjs.map
@@ -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,6 @@
1
+ import NodeClam from 'clamscan';
2
+ /**********
3
+ * Call inside koa initialization
4
+ */
5
+ export declare function initClamScan(options?: Partial<NodeClam.Options>): Promise<NodeClam>;
6
+ export declare function scanVirus(filePath: string): Promise<void>;
@@ -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,3 @@
1
+ import { IFileUpload } from '../koa/IFileUpload.mjs';
2
+ import { IStoreFile } from './fileConst.mjs';
3
+ export declare function storeUploadAsTemp(upload: Promise<IFileUpload>, maxFileSize?: number): Promise<IStoreFile>;
@@ -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,6 @@
1
+ /**
2
+ * Utility function to validate file extension
3
+ * @param filename
4
+ * @param allowedExtensions
5
+ */
6
+ export declare const validateExtension: (filename: string, allowedExtensions: string[]) => boolean;
@@ -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,6 @@
1
+ /**
2
+ * Validate MIME type based on file content (magic number validation)
3
+ * @param filePath
4
+ * @param allowedMimeTypes
5
+ */
6
+ export declare function validateMimeType(filePath: string, allowedMimeTypes: string[]): Promise<string>;
@@ -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,5 @@
1
+ /**
2
+ * Validate MIME type based on file content (magic number validation)
3
+ * @param filePath
4
+ */
5
+ export declare function validateJpgPngMimeType(filePath: string): Promise<string>;
@@ -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,5 @@
1
+ /**
2
+ * Validate MIME type based on file content (magic number validation)
3
+ * @param filePath
4
+ */
5
+ export declare function validateMimeTypePdf(filePath: string): Promise<string>;
@@ -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"}