@axiumine/koa-utils 3.7.3 → 3.7.4

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 (215) hide show
  1. package/README.md +183 -0
  2. package/dist/dataSources/MariaDB.mjs +1 -0
  3. package/dist/dataSources/MariaDB.mjs.map +1 -1
  4. package/dist/dataSources/MongoDB.mjs +1 -0
  5. package/dist/dataSources/MongoDB.mjs.map +1 -1
  6. package/dist/dataSources/PostgreSQL.mjs +4 -2
  7. package/dist/dataSources/PostgreSQL.mjs.map +1 -1
  8. package/dist/dataSources/Redis.mjs +15 -13
  9. package/dist/dataSources/Redis.mjs.map +1 -1
  10. package/dist/email/SocketLabsLib.mjs +7 -10
  11. package/dist/email/SocketLabsLib.mjs.map +1 -1
  12. package/dist/files/IUploadTemp.mjs.map +1 -1
  13. package/dist/files/checkForNSFW.mjs.map +1 -1
  14. package/dist/files/fileConst.mjs.map +1 -1
  15. package/dist/files/moveFileStaticDomain.mjs.map +1 -1
  16. package/dist/files/moveImageFile.mjs.map +1 -1
  17. package/dist/files/moveTempFile.mjs.map +1 -1
  18. package/dist/files/reEncodeToJpeg.mjs.map +1 -1
  19. package/dist/files/reEncodeToPng.mjs.map +1 -1
  20. package/dist/files/reEncodeToWebp.mjs.map +1 -1
  21. package/dist/files/scanVirus.mjs.map +1 -1
  22. package/dist/files/storeUploadAsTemp.mjs +2 -0
  23. package/dist/files/storeUploadAsTemp.mjs.map +1 -1
  24. package/dist/files/uploadTempImage.mjs.map +1 -1
  25. package/dist/files/uploadTempPdf.mjs.map +1 -1
  26. package/dist/files/validateExtension.mjs.map +1 -1
  27. package/dist/files/validateJpgPngExtension.mjs.map +1 -1
  28. package/dist/files/validateMimeType.mjs.map +1 -1
  29. package/dist/files/validateMimeTypeImages.mjs.map +1 -1
  30. package/dist/files/validateMimeTypePdf.mjs.map +1 -1
  31. package/dist/files/validatePdfExtension.mjs.map +1 -1
  32. package/dist/graphQL/models/MongoDB/UserBase.mjs.map +1 -1
  33. package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs.map +1 -1
  34. package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs.map +1 -1
  35. package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs.map +1 -1
  36. package/dist/graphQL/models/MongoDB/log/LogThrow.mjs.map +1 -1
  37. package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs.map +1 -1
  38. package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs.map +1 -1
  39. package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs.map +1 -1
  40. package/dist/graphQL/schema/context/IContextLogin.mjs.map +1 -1
  41. package/dist/graphQL/schema/context/IContextLogout.mjs.map +1 -1
  42. package/dist/graphQL/schema/context/IContextRefresh.mjs.map +1 -1
  43. package/dist/graphQL/schema/context/TCommonHeaders.mjs.map +1 -1
  44. package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs.map +1 -1
  45. package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs.map +1 -1
  46. package/dist/graphQL/schema/mutations/login4Ever.mjs.map +1 -1
  47. package/dist/graphQL/schema/mutations/loginAdmin.mjs.map +1 -1
  48. package/dist/graphQL/schema/mutations/loginRememberme.mjs.map +1 -1
  49. package/dist/graphQL/schema/mutations/logout.mjs.map +1 -1
  50. package/dist/graphQL/schema/mutations/refresh.mjs +1 -4
  51. package/dist/graphQL/schema/mutations/refresh.mjs.map +1 -1
  52. package/dist/graphQL/schema/mutations/resetPwd.mjs +2 -3
  53. package/dist/graphQL/schema/mutations/resetPwd.mjs.map +1 -1
  54. package/dist/graphQL/schema/mutations/signUp.mjs.map +1 -1
  55. package/dist/graphQL/schema/mutations/updatePassword.mjs +2 -1
  56. package/dist/graphQL/schema/mutations/updatePassword.mjs.map +1 -1
  57. package/dist/graphQL/schema/types/DeleteType.mjs.map +1 -1
  58. package/dist/graphQL/schema/types/DoneType.mjs.map +1 -1
  59. package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs.map +1 -1
  60. package/dist/graphQL/schema/types/LoginAppType.mjs.map +1 -1
  61. package/dist/graphQL/schema/types/LoginType.mjs.map +1 -1
  62. package/dist/graphQL/schema/types/MidNameType.mjs.map +1 -1
  63. package/dist/graphQL/schema/types/OnlyIdType.mjs.map +1 -1
  64. package/dist/graphQL/schema/types/RefreshType.mjs.map +1 -1
  65. package/dist/graphQL/schema/types/RetStatusMexType.mjs.map +1 -1
  66. package/dist/graphQL/schema/types/RetStatusType.mjs.map +1 -1
  67. package/dist/graphQL/schema/types/SaveType.mjs.map +1 -1
  68. package/dist/graphQL/schema/types/SidNameType.mjs.map +1 -1
  69. package/dist/graphQL/schema/types/SidNomeType.mjs.map +1 -1
  70. package/dist/graphQL/schema/types/UpdateResultType.mjs.map +1 -1
  71. package/dist/graphQL/status.mjs.map +1 -1
  72. package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs.map +1 -1
  73. package/dist/graphQL/throw/throwAccessTokenRequired.mjs.map +1 -1
  74. package/dist/graphQL/throw/throwAlreadyDone.mjs.map +1 -1
  75. package/dist/graphQL/throw/throwAlreadyTakenError.mjs.map +1 -1
  76. package/dist/graphQL/throw/throwConflictError.mjs.map +1 -1
  77. package/dist/graphQL/throw/throwErrorWrongUserInput.mjs.map +1 -1
  78. package/dist/graphQL/throw/throwForbiddenError.mjs.map +1 -1
  79. package/dist/graphQL/throw/throwGoneError.mjs.map +1 -1
  80. package/dist/graphQL/throw/throwGraphQLError.mjs +1 -6
  81. package/dist/graphQL/throw/throwGraphQLError.mjs.map +1 -1
  82. package/dist/graphQL/throw/throwInternalError.mjs.map +1 -1
  83. package/dist/graphQL/throw/throwMethodNotAllowedError.mjs.map +1 -1
  84. package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs.map +1 -1
  85. package/dist/graphQL/throw/throwNotAcceptableError.mjs.map +1 -1
  86. package/dist/graphQL/throw/throwNotFoundError.mjs.map +1 -1
  87. package/dist/graphQL/throw/throwNotImplementedError.mjs.map +1 -1
  88. package/dist/graphQL/throw/throwPaymentRequiredError.mjs.map +1 -1
  89. package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs.map +1 -1
  90. package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs.map +1 -1
  91. package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs.map +1 -1
  92. package/dist/graphQL/throw/throwRefreshTokenRequired.mjs.map +1 -1
  93. package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs.map +1 -1
  94. package/dist/graphQL/throw/throwTooManyRequestsError.mjs.map +1 -1
  95. package/dist/graphQL/throw/throwUnauthorizedError.mjs.map +1 -1
  96. package/dist/graphQL/throw/throwUnprocessableContentError.mjs.map +1 -1
  97. package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs.map +1 -1
  98. package/dist/koa/IFileUpload.mjs.map +1 -1
  99. package/dist/koa/IKoaError.mjs.map +1 -1
  100. package/dist/koa/customFormatErrorFn.mjs.map +1 -1
  101. package/dist/koa/logRequestToDb.mjs.map +1 -1
  102. package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs.map +1 -1
  103. package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs.map +1 -1
  104. package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs.map +1 -1
  105. package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs.map +1 -1
  106. package/dist/koa/middleware/authenticatedResourceHandler/index.mjs +1 -2
  107. package/dist/koa/middleware/authenticatedResourceHandler/index.mjs.map +1 -1
  108. package/dist/koa/middleware/debug/index.mjs.map +1 -1
  109. package/dist/koa/router/verifyEmail.mjs +2 -0
  110. package/dist/koa/router/verifyEmail.mjs.map +1 -1
  111. package/dist/koa/tdwKoaErrorHandler.mjs.map +1 -1
  112. package/dist/lib/ArrayLib.mjs +3 -4
  113. package/dist/lib/ArrayLib.mjs.map +1 -1
  114. package/dist/lib/Constants.mjs.map +1 -1
  115. package/dist/lib/DateLib.mjs +2 -3
  116. package/dist/lib/DateLib.mjs.map +1 -1
  117. package/dist/lib/IAuthorizationDisDel.mjs.map +1 -1
  118. package/dist/lib/ICookies.mjs.map +1 -1
  119. package/dist/lib/MariaDB/IMariaDBErr.mjs.map +1 -1
  120. package/dist/lib/MariaDB/MariaDBErrType.mjs.map +1 -1
  121. package/dist/lib/MariaDB/throwSqlErrors.mjs +3 -5
  122. package/dist/lib/MariaDB/throwSqlErrors.mjs.map +1 -1
  123. package/dist/lib/MongoDB/IMongoDBError.mjs.map +1 -1
  124. package/dist/lib/MongoDB/IOnboarding.mjs.map +1 -1
  125. package/dist/lib/MongoDB/MongoDBErrType.mjs.map +1 -1
  126. package/dist/lib/MongoDB/throwIfMongoErr.mjs +2 -5
  127. package/dist/lib/MongoDB/throwIfMongoErr.mjs.map +1 -1
  128. package/dist/lib/MongoDB/throwMongoErrors.mjs.map +1 -1
  129. package/dist/lib/NumLib.mjs +2 -3
  130. package/dist/lib/NumLib.mjs.map +1 -1
  131. package/dist/lib/PostgreSQL/IPostgresError.mjs.map +1 -1
  132. package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs.map +1 -1
  133. package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs.map +1 -1
  134. package/dist/lib/Redis/RedisBoolean.mjs.map +1 -1
  135. package/dist/lib/Redis/fromRedisBooleanValue.mjs.map +1 -1
  136. package/dist/lib/Redis/toRedisBooleanValue.mjs.map +1 -1
  137. package/dist/lib/StringLib.mjs +3 -4
  138. package/dist/lib/StringLib.mjs.map +1 -1
  139. package/dist/lib/checkEmailLen.mjs +1 -1
  140. package/dist/lib/checkEmailLen.mjs.map +1 -1
  141. package/dist/lib/checkPwdLen.mjs.map +1 -1
  142. package/dist/lib/db/log/hitStat.mjs +1 -5
  143. package/dist/lib/db/log/hitStat.mjs.map +1 -1
  144. package/dist/lib/db/log/logGlobalError.mjs.map +1 -1
  145. package/dist/lib/db/log/logGraphql.mjs.map +1 -1
  146. package/dist/lib/db/log/logThrow.mjs.map +1 -1
  147. package/dist/lib/db/login/ILoginSet.mjs.map +1 -1
  148. package/dist/lib/db/login/ILoginUnset.mjs.map +1 -1
  149. package/dist/lib/db/registerNewUser.mjs.map +1 -1
  150. package/dist/lib/db/userExist.mjs +1 -3
  151. package/dist/lib/db/userExist.mjs.map +1 -1
  152. package/dist/lib/emailHash.mjs.map +1 -1
  153. package/dist/lib/encryptPassword.mjs.map +1 -1
  154. package/dist/lib/hash.mjs +2 -2
  155. package/dist/lib/hash.mjs.map +1 -1
  156. package/dist/lib/makeOnboardingData.mjs.map +1 -1
  157. package/dist/lib/setLoginCookies.mjs.map +1 -1
  158. package/dist/lib/sleepMs.mjs +1 -1
  159. package/dist/lib/sleepMs.mjs.map +1 -1
  160. package/dist/lib/throwIfNotValidEnumValue.mjs.map +1 -1
  161. package/dist/lib/tokenOptions.mjs +1 -1
  162. package/dist/lib/tokenOptions.mjs.map +1 -1
  163. package/dist/lib/tokens.mjs.map +1 -1
  164. package/dist/lib/tryCatchRethrow.mjs.map +1 -1
  165. package/dist/private/files/_validateMimeType.mjs.map +1 -1
  166. package/dist/private/files/reEncode.mjs +4 -20
  167. package/dist/private/files/reEncode.mjs.map +1 -1
  168. package/dist/private/graphQL/Consts.mjs.map +1 -1
  169. package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs.map +1 -1
  170. package/dist/private/graphQL/schema/context/IContextLog.mjs.map +1 -1
  171. package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs.map +1 -1
  172. package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.d.mts +19 -0
  173. package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.mjs +26 -0
  174. package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.mjs.map +1 -0
  175. package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.d.mts +19 -0
  176. package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.mjs +28 -0
  177. package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.mjs.map +1 -0
  178. package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs +2 -25
  179. package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs.map +1 -1
  180. package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs +2 -26
  181. package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs.map +1 -1
  182. package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs +1 -2
  183. package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs.map +1 -1
  184. package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs +1 -2
  185. package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs.map +1 -1
  186. package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs +1 -1
  187. package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs.map +1 -1
  188. package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs.map +1 -1
  189. package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs +2 -8
  190. package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs.map +1 -1
  191. package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs +2 -22
  192. package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs.map +1 -1
  193. package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs.map +1 -1
  194. package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs +2 -22
  195. package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs.map +1 -1
  196. package/dist/private/lib/access/Constants.mjs.map +1 -1
  197. package/dist/private/lib/access/db/confirmNewEmail.mjs.map +1 -1
  198. package/dist/private/lib/access/db/deleteUserByEmail.mjs.map +1 -1
  199. package/dist/private/lib/access/db/enableEmailAccess.mjs.map +1 -1
  200. package/dist/private/lib/access/db/getResetPwd.mjs.map +1 -1
  201. package/dist/private/lib/access/db/incReqTimes.mjs.map +1 -1
  202. package/dist/private/lib/access/db/removeResetReq.mjs.map +1 -1
  203. package/dist/private/lib/access/db/saveResetReq.mjs.map +1 -1
  204. package/dist/private/lib/access/db/setEmailHash.mjs.map +1 -1
  205. package/dist/private/lib/access/db/updatePasswordDb.mjs.map +1 -1
  206. package/dist/private/lib/access/db/userData4VerifyEmail.mjs.map +1 -1
  207. package/dist/private/lib/access/handleBadDB.mjs.map +1 -1
  208. package/dist/private/lib/access/handleIfAccountDeleted.mjs.map +1 -1
  209. package/dist/private/lib/access/handleIfAccountDisabled.mjs.map +1 -1
  210. package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs.map +1 -1
  211. package/dist/private/lib/access/handleIfHashBad.mjs.map +1 -1
  212. package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs.map +1 -1
  213. package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs.map +1 -1
  214. package/dist/private/lib/makeBodyJson.mjs.map +1 -1
  215. package/package.json +18 -1
@@ -1 +1 @@
1
- {"version":3,"file":"infoUserForLoginSQL.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/infoUserForLoginSQL.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4CAAgC;AACpD,OAAO,EAAE,wBAAwB,EAAE,+DAA2C;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAUtC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,KAAa;IAEb,MAAM,GAAG,GACR,4EAA4E,CAAA;IAE7E,IAAI,GAAG,GAA0B,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5D,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,YAAY,EAAE;YACb,KAAK,EAAE,KAAK;SACZ;KACD,CAAC,CAA0B,CAAA;IAE5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,wBAAwB,CAAC,sBAAsB,CAAC,CAAA;IAE5E,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"infoUserForLoginSQL.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/infoUserForLoginSQL.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4CAAgC;AACpD,OAAO,EAAE,wBAAwB,EAAE,+DAA2C;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAUtC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAa;IACtD,MAAM,GAAG,GAAG,4EAA4E,CAAA;IAExF,IAAI,GAAG,GAA0B,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5D,IAAI,EAAE,UAAU,CAAC,MAAM;QACvB,YAAY,EAAE;YACb,KAAK,EAAE,KAAK;SACZ;KACD,CAAC,CAA0B,CAAA;IAE5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,wBAAwB,CAAC,qBAAqB,CAAC,CAAA;IAE3E,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;AACd,CAAC","sourcesContent":["import { sequelize } from '@dataSources/MariaDB.mjs'\nimport { throwErrorWrongUserInput } from '@throw/throwErrorWrongUserInput.mjs'\nimport { QueryTypes } from 'sequelize'\n\nexport type InfoUserForLoginSQL = {\n\tid: number\n\tpassword: string\n\tvalid: boolean\n\tdeleted: boolean\n\tdisabled: boolean\n}\n\nexport async function infoUserForLoginSQL(email: string): Promise<InfoUserForLoginSQL> {\n\tconst sql = 'SELECT id, password, valid, deleted, disabled FROM user WHERE email=:email'\n\n\tlet ret: InfoUserForLoginSQL[] = (await sequelize.query(sql, {\n\t\ttype: QueryTypes.SELECT,\n\t\treplacements: {\n\t\t\temail: email\n\t\t}\n\t})) as InfoUserForLoginSQL[]\n\n\tif (ret.length === 0) throw throwErrorWrongUserInput(\"L'utente non esiste\")\n\n\treturn ret[0]\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"setLastLoginSQL.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/setLastLoginSQL.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4CAAgC;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC/C,4DAA4D;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,8BAA8B;IAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAEnE,IAAI,GAAG,GAAG,KAAK,CAAA;IACf,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG;4BACc,SAAS;sBACf,EAAE,EAAE,CAAA;QAExB,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YAC1B,IAAI,EAAE,UAAU,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,GAAG,GAAG,IAAI,CAAA;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"setLastLoginSQL.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/setLastLoginSQL.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4CAAgC;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU;IAC/C,4DAA4D;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,8BAA8B;IAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAEnE,IAAI,GAAG,GAAG,KAAK,CAAA;IACf,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG;4BACc,SAAS;sBACf,EAAE,EAAE,CAAA;QAExB,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YAC1B,IAAI,EAAE,UAAU,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,GAAG,GAAG,IAAI,CAAA;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC","sourcesContent":["import { sequelize } from '@dataSources/MariaDB.mjs'\nimport * as Sentry from '@sentry/node'\nimport { QueryTypes } from 'sequelize'\n\nexport async function setLastLoginSQL(id: number): Promise<boolean> {\n\t// Get the current time in milliseconds since the Unix Epoch\n\tconst now = Date.now()\n\t// Convert it to a Date object\n\tconst date = new Date(now)\n\tconst timestamp = date.toISOString().slice(0, 19).replace('T', ' ')\n\n\tlet ret = false\n\ttry {\n\t\tconst sql = `UPDATE user\n\t\t\t\t\t\t\t\t SET lastlogin = '${timestamp}'\n\t\t\t\t\t\t\t\t WHERE id = ${id}`\n\n\t\tawait sequelize.query(sql, {\n\t\t\ttype: QueryTypes.UPDATE\n\t\t})\n\n\t\tret = true\n\t} catch (e) {\n\t\tSentry.captureException(e)\n\t}\n\n\treturn ret\n}\n"]}
@@ -15,17 +15,11 @@ export async function setRedisLoginSession(id, accessToken, accTokenExp, refresh
15
15
  redisClient.hSet(keyAccess, keyDataAccess),
16
16
  redisClient.hSet(keyRefresh, keyDataRefresh) // 90 days
17
17
  ]);
18
- await Promise.all([
19
- redisClient.expire(keyAccess, accTokenExp),
20
- redisClient.expire(keyRefresh, REFRESH_TOKEN_EXPIRY)
21
- ]);
18
+ await Promise.all([redisClient.expire(keyAccess, accTokenExp), redisClient.expire(keyRefresh, REFRESH_TOKEN_EXPIRY)]);
22
19
  }
23
20
  catch (e) {
24
21
  // delete keys
25
- await Promise.all([
26
- redisClient.del(keyAccess),
27
- redisClient.del(keyRefresh)
28
- ]);
22
+ await Promise.all([redisClient.del(keyAccess), redisClient.del(keyRefresh)]);
29
23
  Sentry.captureException(e);
30
24
  throw throwInternalError();
31
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setRedisLoginSession.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/setRedisLoginSession.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,0CAA8B;AACpD,OAAO,EAAE,oBAAoB,EAAE,mCAAuB;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAE,yDAAqC;AAClE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAGhC,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,EAAkB,EAClB,WAAmB,EACnB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAEhE,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,WAAW,EAAE,CAAA;IACjE,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,YAAY,EAAE,CAAA;IAEpE,IAAI,CAAC;QACJ,yBAAyB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,UAAU;SACvD,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;YAC1C,WAAW,CAAC,MAAM,CACjB,UAAU,EACV,oBAAoB,CACpB;SACD,CAAC,CAAA;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,cAAc;QACd,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;SAC3B,CAAC,CAAA;QACF,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,kBAAkB,EAAE,CAAA;IAC3B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"setRedisLoginSession.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/setRedisLoginSession.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,0CAA8B;AACpD,OAAO,EAAE,oBAAoB,EAAE,mCAAuB;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAE,yDAAqC;AAClE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAGhC,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAkB,EAAE,WAAmB,EAAE,WAAmB,EAAE,YAAoB;IAC5H,MAAM,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAEhE,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,WAAW,EAAE,CAAA;IACjE,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,YAAY,EAAE,CAAA;IAEpE,IAAI,CAAC;QACJ,yBAAyB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,UAAU;SACvD,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;IACtH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,cAAc;QACd,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC5E,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,kBAAkB,EAAE,CAAA;IAC3B,CAAC;AACF,CAAC","sourcesContent":["import { redisClient } from '@dataSources/Redis.mjs'\nimport { REFRESH_TOKEN_EXPIRY } from '@lib/tokens.mjs'\nimport * as Sentry from '@sentry/node'\nimport { throwInternalError } from '@throw/throwInternalError.mjs'\nimport * as dotenv from 'dotenv'\nimport { Types } from 'mongoose'\n\ndotenv.config()\n\nexport async function setRedisLoginSession(id: Types.ObjectId, accessToken: string, accTokenExp: number, refreshToken: string) {\n\tconst keyDataAccess = { id: id.toString() }\n\tconst keyDataRefresh = { ...keyDataAccess, access: accessToken }\n\n\tconst keyAccess = `${process.env.REDIS_KEY}access:${accessToken}`\n\tconst keyRefresh = `${process.env.REDIS_KEY}refresh:${refreshToken}`\n\n\ttry {\n\t\t// Store session in Redis\n\t\tawait Promise.all([\n\t\t\tredisClient.hSet(keyAccess, keyDataAccess),\n\t\t\tredisClient.hSet(keyRefresh, keyDataRefresh) // 90 days\n\t\t])\n\n\t\tawait Promise.all([redisClient.expire(keyAccess, accTokenExp), redisClient.expire(keyRefresh, REFRESH_TOKEN_EXPIRY)])\n\t} catch (e) {\n\t\t// delete keys\n\t\tawait Promise.all([redisClient.del(keyAccess), redisClient.del(keyRefresh)])\n\t\tSentry.captureException(e)\n\t\tthrow throwInternalError()\n\t}\n}\n"]}
@@ -1,27 +1,7 @@
1
1
  import UserAdminKoaUtils from "../../models/MongoDB/private/UserAdminKoaUtils.mjs";
2
+ import { _buildLoginStatsUpdate } from './_buildLoginStatsUpdate.mjs';
2
3
  export async function updateAdminLoginStats(id, lastLogin, rememberMe, session) {
3
- const now = new Date();
4
- // update last login
5
- const dbSet = {};
6
- const dbUnset = {};
7
- // @ts-expect-error avoid any
8
- dbSet['login.lastLogin'] = now;
9
- // set firstLogin if this is the first login.
10
- if (lastLogin === null) {
11
- // @ts-expect-error avoid any
12
- dbSet['login.firstLogin'] = now;
13
- }
14
- else {
15
- // not the first login
16
- }
17
- if (rememberMe) {
18
- // @ts-expect-error avoid any
19
- dbSet['account.rememberMe'] = true;
20
- }
21
- else {
22
- // @ts-expect-error avoid any
23
- dbUnset['account.rememberMe'] = 1;
24
- }
4
+ const { dbSet, dbUnset } = _buildLoginStatsUpdate(lastLogin, rememberMe);
25
5
  await UserAdminKoaUtils.updateOne({ _id: id }, { $set: dbSet, $unset: dbUnset }, { session, runValidators: true });
26
6
  }
27
7
  //# sourceMappingURL=updateAdminLoginStats.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateAdminLoginStats.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateAdminLoginStats.mts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,2DAAqE;AAmB7F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,EAAkB,EAClB,SAAsB,EACtB,UAAmB,EACnB,OAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,oBAAoB;IACpB,MAAM,KAAK,GAAS,EAAE,CAAA;IACtB,MAAM,OAAO,GAAW,EAAE,CAAA;IAE1B,6BAA6B;IAC7B,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAA;IAE9B,6CAA6C;IAC7C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,6BAA6B;QAC7B,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAA;IAChC,CAAC;SAAM,CAAC;QACP,sBAAsB;IACvB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QAChB,6BAA6B;QAC7B,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAA;IACnC,CAAC;SAAM,CAAC;QACP,6BAA6B;QAC7B,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,iBAAiB,CAAC,SAAS,CAChC,EAAE,GAAG,EAAE,EAAE,EAAE,EACX,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"updateAdminLoginStats.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateAdminLoginStats.mts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,2DAAqE;AAG7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,EAAkB,EAClB,SAAsB,EACtB,UAAmB,EACnB,OAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAExE,MAAM,iBAAiB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AACnH,CAAC","sourcesContent":["import UserAdminKoaUtils from '@private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs'\nimport { ClientSession, Types } from 'mongoose'\n\nimport { _buildLoginStatsUpdate } from './_buildLoginStatsUpdate.mjs'\n\nexport async function updateAdminLoginStats(\n\tid: Types.ObjectId,\n\tlastLogin: null | Date,\n\trememberMe: boolean,\n\tsession: ClientSession\n) {\n\tconst { dbSet, dbUnset } = _buildLoginStatsUpdate(lastLogin, rememberMe)\n\n\tawait UserAdminKoaUtils.updateOne({ _id: id }, { $set: dbSet, $unset: dbUnset }, { session, runValidators: true })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"updateLoginStats4ever.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateLoginStats4ever.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAWvD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,EAAkB,EAClB,SAAsB,EACtB,OAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,oBAAoB;IACpB,MAAM,KAAK,GAAS,EAAE,CAAA;IAEtB,6BAA6B;IAC7B,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAA;IAE9B,6CAA6C;IAC7C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,6BAA6B;QAC7B,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAA;IAChC,CAAC;SAAM,CAAC;QACP,sBAAsB;IACvB,CAAC;IAED,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EAAE,EAAE,EACX,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"updateLoginStats4ever.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateLoginStats4ever.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAUvD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAkB,EAAE,SAAsB,EAAE,OAAsB;IAC7G,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,oBAAoB;IACpB,MAAM,KAAK,GAAS,EAAE,CAAA;IAEtB,6BAA6B;IAC7B,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAA;IAE9B,6CAA6C;IAC7C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,6BAA6B;QAC7B,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAA;IAChC,CAAC;SAAM,CAAC;QACP,sBAAsB;IACvB,CAAC;IAED,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AACzF,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession, Types } from 'mongoose'\n\ninterface ISet {\n\tlogin?: {\n\t\tfirstLogin?: Date\n\t\tlastLogin?: Date\n\t}\n}\n\nexport async function updateLoginStats4ever(id: Types.ObjectId, lastLogin: null | Date, session: ClientSession) {\n\tconst now = new Date()\n\n\t// update last login\n\tconst dbSet: ISet = {}\n\n\t// @ts-expect-error avoid any\n\tdbSet['login.lastLogin'] = now\n\n\t// set firstLogin if this is the first login.\n\tif (lastLogin === null) {\n\t\t// @ts-expect-error avoid any\n\t\tdbSet['login.firstLogin'] = now\n\t} else {\n\t\t// not the first login\n\t}\n\n\tawait UserBase.updateOne({ _id: id }, { $set: dbSet }, { session, runValidators: true })\n}\n"]}
@@ -1,27 +1,7 @@
1
1
  import { UserBase } from "../../../../graphQL/models/MongoDB/UserBase.mjs";
2
+ import { _buildLoginStatsUpdate } from './_buildLoginStatsUpdate.mjs';
2
3
  export async function updateLoginStatsRememberme(id, lastLogin, rememberMe, session) {
3
- const now = new Date();
4
- // update last login
5
- const dbSet = {};
6
- const dbUnset = {};
7
- // @ts-expect-error avoid any
8
- dbSet['login.lastLogin'] = now;
9
- // set firstLogin if this is the first login.
10
- if (lastLogin === null) {
11
- // @ts-expect-error avoid any
12
- dbSet['login.firstLogin'] = now;
13
- }
14
- else {
15
- // not the first login
16
- }
17
- if (rememberMe) {
18
- // @ts-expect-error avoid any
19
- dbSet['account.rememberMe'] = true;
20
- }
21
- else {
22
- // @ts-expect-error avoid any
23
- dbUnset['account.rememberMe'] = 1;
24
- }
4
+ const { dbSet, dbUnset } = _buildLoginStatsUpdate(lastLogin, rememberMe);
25
5
  await UserBase.updateOne({ _id: id }, { $set: dbSet, $unset: dbUnset }, { session, runValidators: true });
26
6
  }
27
7
  //# sourceMappingURL=updateLoginStatsRememberme.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"updateLoginStatsRememberme.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateLoginStatsRememberme.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAmBvD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,EAAkB,EAClB,SAAsB,EACtB,UAAmB,EACnB,OAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,oBAAoB;IACpB,MAAM,KAAK,GAAS,EAAE,CAAA;IACtB,MAAM,OAAO,GAAW,EAAE,CAAA;IAE1B,6BAA6B;IAC7B,KAAK,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAA;IAE9B,6CAA6C;IAC7C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,6BAA6B;QAC7B,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAA;IAChC,CAAC;SAAM,CAAC;QACP,sBAAsB;IACvB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QAChB,6BAA6B;QAC7B,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAA;IACnC,CAAC;SAAM,CAAC;QACP,6BAA6B;QAC7B,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EAAE,EAAE,EACX,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAChC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"updateLoginStatsRememberme.mjs","sourceRoot":"","sources":["../../../../../../src/private/graphQL/schema/mutations/updateLoginStatsRememberme.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,EAAkB,EAClB,SAAsB,EACtB,UAAmB,EACnB,OAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAExE,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1G,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession, Types } from 'mongoose'\n\nimport { _buildLoginStatsUpdate } from './_buildLoginStatsUpdate.mjs'\n\nexport async function updateLoginStatsRememberme(\n\tid: Types.ObjectId,\n\tlastLogin: null | Date,\n\trememberMe: boolean,\n\tsession: ClientSession\n) {\n\tconst { dbSet, dbUnset } = _buildLoginStatsUpdate(lastLogin, rememberMe)\n\n\tawait UserBase.updateOne({ _id: id }, { $set: dbSet, $unset: dbUnset }, { session, runValidators: true })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/Constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAA;AAE7B,QAAQ;AACR,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAA"}
1
+ {"version":3,"file":"Constants.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/Constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAA;AAE7B,QAAQ;AACR,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAA","sourcesContent":["export const SALT_ROUNDS = 14\n\n// links\nexport const EMAIL_CHECK_LINK = '/x/email-check'\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"confirmNewEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/confirmNewEmail.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAC5C,GAA4B,EAC5B,KAAa;IAEb,OAAO,MAAM,QAAQ,CAAC,SAAS,CAC9B,EAAE,GAAG,EAAE,EACP;QACC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;QAC9B,MAAM,EAAE;YACP,oBAAoB,EAAE,EAAE;YACxB,2BAA2B,EAAE,EAAE;YAC/B,4BAA4B,EAAE,EAAE;YAChC,2BAA2B,EAAE,EAAE;SAC/B;KACD,CACD,CAAC,IAAI,EAAE,CAAA;AACT,CAAC"}
1
+ {"version":3,"file":"confirmNewEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/confirmNewEmail.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAAC,GAA4B,EAAE,KAAa;IACxF,OAAO,MAAM,QAAQ,CAAC,SAAS,CAC9B,EAAE,GAAG,EAAE,EACP;QACC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;QAC9B,MAAM,EAAE;YACP,oBAAoB,EAAE,EAAE;YACxB,2BAA2B,EAAE,EAAE;YAC/B,4BAA4B,EAAE,EAAE;YAChC,2BAA2B,EAAE,EAAE;SAC/B;KACD,CACD,CAAC,IAAI,EAAE,CAAA;AACT,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport mongoose from 'mongoose'\n\nexport default async function confirmNewEmail(_id: mongoose.Types.ObjectId, email: string) {\n\treturn await UserBase.updateOne(\n\t\t{ _id },\n\t\t{\n\t\t\t$set: { 'login.email': email },\n\t\t\t$unset: {\n\t\t\t\t'account.email.hash': '',\n\t\t\t\t'account.email.dateLastReq': '',\n\t\t\t\t'account.email.requestTimes': '',\n\t\t\t\t'account.email.newEmailTmp': ''\n\t\t\t}\n\t\t}\n\t).exec()\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteUserByEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/deleteUserByEmail.mts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAEvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa;IAC5D,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;IAElD;MACK;AACN,CAAC"}
1
+ {"version":3,"file":"deleteUserByEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/deleteUserByEmail.mts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAEvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa;IAC5D,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;IAElD;MACK;AACN,CAAC","sourcesContent":["// @todo report on Sentry\nimport { UserBase } from '@models/MongoDB/UserBase.mjs'\n\nexport default async function deleteUserByEmail(email: string) {\n\tawait UserBase.deleteOne({ 'login.email': email })\n\n\t/* if (ret.deletedCount === 0) {\n } */\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"enableEmailAccess.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/enableEmailAccess.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,4CAAgC;AACxD,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,GAA4B,EAC5B,KAAa;IAEb,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EACP;QACC,IAAI,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;QACrC,MAAM,EAAE;YACP,oBAAoB,EAAE,EAAE;YACxB,2BAA2B,EAAE,EAAE;YAC/B,4BAA4B,EAAE,EAAE;SAChC;KACD,EACD;QACC,aAAa,EAAE,IAAI;KACnB,CACD,CAAA;IAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IACzC,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC"}
1
+ {"version":3,"file":"enableEmailAccess.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/enableEmailAccess.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,4CAAgC;AACxD,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAA4B,EAAE,KAAa;IAClF,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EACP;QACC,IAAI,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE;QACrC,MAAM,EAAE;YACP,oBAAoB,EAAE,EAAE;YACxB,2BAA2B,EAAE,EAAE;YAC/B,4BAA4B,EAAE,EAAE;SAChC;KACD,EACD;QACC,aAAa,EAAE,IAAI;KACnB,CACD,CAAA;IAED,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;IACzC,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\nimport { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport mongoose from 'mongoose'\n\nexport async function enableEmailAccess(_id: mongoose.Types.ObjectId, email: string) {\n\tawait UserBase.updateOne(\n\t\t{ _id },\n\t\t{\n\t\t\t$set: { 'account.email.valid': true },\n\t\t\t$unset: {\n\t\t\t\t'account.email.hash': '',\n\t\t\t\t'account.email.dateLastReq': '',\n\t\t\t\t'account.email.requestTimes': ''\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\trunValidators: true\n\t\t}\n\t)\n\n\tconst SocketLabsObj = new SocketLabsLib()\n\tawait SocketLabsObj.sendWelcome(email)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getResetPwd.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/getResetPwd.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,WAC/B,OAAsB,EACtB,KAAa;IAEb,IAAI,GAAG,GAAG,IAAI,CAAA;IAEd,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SAC/D,MAAM,CAAC,+DAA+D,CAAC;SACvE,OAAO,CAAC,OAAO,CAAC;SAChB,IAAI,EAAE,CAAA;IAER,kCAAkC;IAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAA;QAClD,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACzC,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;QAC7C,CAAC;QAED,GAAG,GAAG;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY;YACZ,SAAS;YACT,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE;SACvC,CAAA;IACF,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC,CAAA"}
1
+ {"version":3,"file":"getResetPwd.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/getResetPwd.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,WAAW,OAAsB,EAAE,KAAa;IAC/E,IAAI,GAAG,GAAG,IAAI,CAAA;IAEd,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SAC/D,MAAM,CAAC,+DAA+D,CAAC;SACvE,OAAO,CAAC,OAAO,CAAC;SAChB,IAAI,EAAE,CAAA;IAER,kCAAkC;IAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAA;QAClD,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACzC,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;QAC7C,CAAC;QAED,GAAG,GAAG;YACL,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,YAAY;YACZ,SAAS;YACT,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE;SACvC,CAAA;IACF,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC,CAAA","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession } from 'mongoose'\n\nexport const getResetPwd = async function (session: ClientSession, email: string) {\n\tlet ret = null\n\n\tconst queryRet = await UserBase.findOne({ 'login.email': email })\n\t\t.select('_id personalData.name account.resetDateReq account.email.hash')\n\t\t.session(session)\n\t\t.lean()\n\n\t// se trova una richiesta di reset\n\tif (queryRet !== null) {\n\t\tconst resetDateReq = queryRet.account.resetDateReq\n\t\tlet resetHash = null\n\n\t\tif (typeof resetDateReq !== 'undefined') {\n\t\t\tresetHash = '' + queryRet.account.email.hash\n\t\t}\n\n\t\tret = {\n\t\t\t_id: queryRet._id,\n\t\t\tresetDateReq,\n\t\t\tresetHash,\n\t\t\tname: queryRet.personalData?.name || ''\n\t\t}\n\t}\n\treturn ret\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"incReqTimes.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/incReqTimes.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAA4B;IAC7D,OAAO,QAAQ,CAAC,SAAS,CACxB,EAAE,GAAG,EAAE,EACP,EAAE,IAAI,EAAE,EAAE,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAC7C,EAAE,aAAa,EAAE,IAAI,EAAE,CACvB,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"incReqTimes.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/incReqTimes.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAA4B;IAC7D,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3G,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport mongoose from 'mongoose'\n\nexport async function incReqTimes(_id: mongoose.Types.ObjectId) {\n\treturn UserBase.updateOne({ _id }, { $inc: { 'account.email.requestTimes': 1 } }, { runValidators: true })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"removeResetReq.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/removeResetReq.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC3C,OAAsB,EACtB,KAAa;IAEb,OAAO,QAAQ,CAAC,SAAS,CACxB,EAAE,aAAa,EAAE,KAAK,EAAE,EACxB,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EACnE,EAAE,MAAM,EAAE,IAAI,EAAE,CAChB;SACC,OAAO,CAAC,OAAO,CAAC;SAChB,IAAI,EAAE,CAAA;AACT,CAAC"}
1
+ {"version":3,"file":"removeResetReq.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/removeResetReq.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,KAAa;IACjF,OAAO,QAAQ,CAAC,SAAS,CACxB,EAAE,aAAa,EAAE,KAAK,EAAE,EACxB,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EACnE,EAAE,MAAM,EAAE,IAAI,EAAE,CAChB;SACC,OAAO,CAAC,OAAO,CAAC;SAChB,IAAI,EAAE,CAAA;AACT,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession } from 'mongoose'\n\nexport default async function removeResetReq(session: ClientSession, email: string) {\n\treturn UserBase.updateOne(\n\t\t{ 'login.email': email },\n\t\t{ $unset: { 'account.resetDateReq': '', 'account.resetHash': '' } },\n\t\t{ upsert: true }\n\t)\n\t\t.session(session)\n\t\t.exec()\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"saveResetReq.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/saveResetReq.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,qDAAyC;AACtE,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,WAChC,OAAsB,EACtB,GAAmB,EACnB,GAAS,EACT,IAAY;IAEZ,gDAAgD;IAChD,IAAI,CAAC;QACJ,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EACP;YACC,IAAI,EAAE;gBACL,sBAAsB,EAAE,GAAG;gBAC3B,oBAAoB,EAAE,IAAI;aAC1B;SACD,EACD,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,kBAAkB,CAAC,CAAkB,CAAC,CAAA;IAC7C,CAAC;AACF,CAAC,CAAA"}
1
+ {"version":3,"file":"saveResetReq.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/saveResetReq.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,qDAAyC;AACtE,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,WAAW,OAAsB,EAAE,GAAmB,EAAE,GAAS,EAAE,IAAY;IAC/G,gDAAgD;IAChD,IAAI,CAAC;QACJ,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,EACP;YACC,IAAI,EAAE;gBACL,sBAAsB,EAAE,GAAG;gBAC3B,oBAAoB,EAAE,IAAI;aAC1B;SACD,EACD,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;IACF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,kBAAkB,CAAC,CAAkB,CAAC,CAAA;IAC7C,CAAC;AACF,CAAC,CAAA","sourcesContent":["import { IMongoDBError } from '@lib/MongoDB/IMongoDBError.mjs'\nimport { throwMongoDBErrors } from '@lib/MongoDB/throwMongoErrors.mjs'\nimport { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession, Types } from 'mongoose'\n\nexport const saveResetReq = async function (session: ClientSession, _id: Types.ObjectId, now: Date, hash: string) {\n\t// console.debug('imposto reset in coll Utenti')\n\ttry {\n\t\tawait UserBase.updateOne(\n\t\t\t{ _id },\n\t\t\t{\n\t\t\t\t$set: {\n\t\t\t\t\t'account.resetDateReq': now,\n\t\t\t\t\t'account.email.hash': hash\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ session, runValidators: true }\n\t\t)\n\t} catch (e) {\n\t\tthrow throwMongoDBErrors(e as IMongoDBError)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"setEmailHash.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/setEmailHash.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sCAA0B;AAC9C,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB,EAAE,QAAwB;IAClF,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;IAExB,6BAA6B;IAC7B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IAExB,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB;QACC,IAAI,EAAE;YACL,oBAAoB,EAAE,IAAI;YAC1B,4BAA4B,EAAE,CAAC,EAAE,KAAK;YACtC,2BAA2B,EAAE,KAAK;SAClC;KACD,EACD,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;IAED,OAAO,IAAI,CAAA,CAAC,0CAA0C;AACvD,CAAC"}
1
+ {"version":3,"file":"setEmailHash.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/setEmailHash.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,sCAA0B;AAC9C,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AAGvD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB,EAAE,QAAwB;IAClF,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;IAExB,6BAA6B;IAC7B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;IAExB,MAAM,QAAQ,CAAC,SAAS,CACvB,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB;QACC,IAAI,EAAE;YACL,oBAAoB,EAAE,IAAI;YAC1B,4BAA4B,EAAE,CAAC,EAAE,KAAK;YACtC,2BAA2B,EAAE,KAAK;SAClC;KACD,EACD,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;IAED,OAAO,IAAI,CAAA,CAAC,0CAA0C;AACvD,CAAC","sourcesContent":["import { emailHash } from '@lib/emailHash.mjs'\nimport { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { ClientSession, Types } from 'mongoose'\n\nexport async function setEmailHash(session: ClientSession, idUtente: Types.ObjectId) {\n\tconst hash = emailHash()\n\n\t//calcola hash della password\n\tconst dtNow = new Date()\n\n\tawait UserBase.updateOne(\n\t\t{ _id: idUtente },\n\t\t{\n\t\t\t$set: {\n\t\t\t\t'account.email.hash': hash,\n\t\t\t\t'account.email.requestTimes': 1, // ok\n\t\t\t\t'account.email.dateLastReq': dtNow\n\t\t\t}\n\t\t},\n\t\t{ session, runValidators: true }\n\t)\n\n\treturn hash // else va in exception @fixme controllare\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"updatePasswordDb.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/updatePasswordDb.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,yBAAyC;AAG/D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC3C,OAAsB,EACtB,GAA4B,EAC5B,QAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEjD,OAAO,QAAQ,CAAC,SAAS,CACxB,EAAE,GAAG,EAAE,EACP,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EACvC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAChC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"updatePasswordDb.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/updatePasswordDb.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,yBAAyC;AAG/D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAAC,OAAsB,EAAE,GAA4B,EAAE,QAAgB;IAClH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEjD,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AAC9G,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { hash } from '@node-rs/bcrypt'\nimport { SALT_ROUNDS } from '@private/lib/access/Constants.mjs'\nimport mongoose, { ClientSession } from 'mongoose'\n\nexport default async function updatePassword(session: ClientSession, _id: mongoose.Types.ObjectId, password: string) {\n\tconst hashVal = await hash(password, SALT_ROUNDS)\n\n\treturn UserBase.updateOne({ _id }, { $set: { 'login.password': hashVal } }, { session, runValidators: true })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"userData4VerifyEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/userData4VerifyEmail.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AACvD,OAAO,EAAE,gBAAgB,EAAE,yBAAyC;AACpE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;SAC5D,MAAM,CACN,kGAAkG;QAClG,kCAAkC,CAClC;SACA,IAAI,EAAE,CAAA;IAER,gDAAgD;IAChD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QAEjD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"userData4VerifyEmail.mjs","sourceRoot":"","sources":["../../../../../../src/private/lib/access/db/userData4VerifyEmail.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wDAAoC;AACvD,OAAO,EAAE,gBAAgB,EAAE,yBAAyC;AACpE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACxD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;SAC5D,MAAM,CACN,kGAAkG;QACjG,kCAAkC,CACnC;SACA,IAAI,EAAE,CAAA;IAER,gDAAgD;IAChD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,QAAQ,MAAM,YAAY,CAAC,CAAA;QAEjD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC","sourcesContent":["import { UserBase } from '@models/MongoDB/UserBase.mjs'\nimport { EMAIL_CHECK_LINK } from '@private/lib/access/Constants.mjs'\nimport * as Sentry from '@sentry/node'\n\nexport async function userData4VerifyEmail(uEmail: string) {\n\tconst user = await UserBase.findOne({ 'login.email': uEmail })\n\t\t.select(\n\t\t\t'_id account.email.hash account.email.valid account.email.dateLastReq account.email.requestTimes ' +\n\t\t\t\t'account.deleted account.disabled'\n\t\t)\n\t\t.lean()\n\n\t// if email not found, return stNotFoundNotMatch\n\tif (user === null) {\n\t\tSentry.captureMessage(`User ${uEmail} not exist`)\n\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n\treturn user\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleBadDB.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleBadDB.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,WAAW,CAAC,YAAqB,EAAE,WAAkB;IACpE,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;QAExD,wEAAwE;QACxE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleBadDB.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleBadDB.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,MAAM,UAAU,WAAW,CAAC,YAAqB,EAAE,WAAkB;IACpE,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;QAExD,wEAAwE;QACxE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;AACF,CAAC","sourcesContent":["import * as Sentry from '@sentry/node'\n\nexport function handleBadDB(requestTimes?: number, dateLastReq?: Date) {\n\tif (typeof requestTimes === 'undefined' || dateLastReq === undefined) {\n\t\tSentry.captureMessage('[handleBadDB] DB ERROR', 'error')\n\n\t\t// it's an our error !! cannot be present the hash without requestTimes!\n\t\tthrow new Error('/x/error')\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfAccountDeleted.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfAccountDeleted.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,KAAa,EACb,UAAmB,KAAK;IAExB,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfAccountDeleted.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfAccountDeleted.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAa,EAAE,UAAmB,KAAK;IACnF,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\n\nexport async function handleIfAccountDeleted(email: string, deleted: boolean = false) {\n\tif (deleted) {\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\n\t\tawait SocketLabsObj.accountDisabled(email)\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfAccountDisabled.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfAccountDisabled.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,KAAa,EACb,WAAoB,KAAK;IAEzB,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfAccountDisabled.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfAccountDisabled.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAa,EAAE,WAAoB,KAAK;IACrF,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\n\nexport async function handleIfAccountDisabled(email: string, disabled: boolean = false) {\n\tif (disabled) {\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\n\t\tawait SocketLabsObj.accountDisabled(email)\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfEmailAlreadyValid.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfEmailAlreadyValid.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,MAAc,EACd,KAAc;IAEd,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfEmailAlreadyValid.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfEmailAlreadyValid.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAAc,EAAE,KAAc;IAC7E,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QAEzC,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\n\nexport async function handleIfEmailAlreadyValid(uEmail: string, valid: boolean) {\n\tif (valid) {\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\n\t\tawait SocketLabsObj.emailAlreadyValid(uEmail)\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfHashBad.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfHashBad.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,GAA4B,EAC5B,MAAc,EACd,IAAY,EACZ,eAAuB,CAAC,EAAE,qCAAqC;AAC/D,MAAe;IAEf,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,cAAc;QACd,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAA;QACvD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfHashBad.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfHashBad.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,GAA4B,EAC5B,MAAc,EACd,IAAY,EACZ,eAAuB,CAAC,EAAE,qCAAqC;AAC/D,MAAe;IAEf,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,cAAc;QACd,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAA;QACvD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\nimport mongoose from 'mongoose'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\nimport { incReqTimes } from './db/incReqTimes.mjs'\n\n/**\n * l'hash dell'url di attivazione è errato\n * @param uId\n * @param uEmail\n * @param hash\n * @param requestTimes\n * @param dbHash\n */\nexport async function handleIfHashBad(\n\tuId: mongoose.Types.ObjectId,\n\tuEmail: string,\n\thash: string,\n\trequestTimes: number = 0, // but the check is already performed\n\tdbHash?: string\n) {\n\tif (hash !== dbHash) {\n\t\t// hash failed\n\t\tawait incReqTimes(uId)\n\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\t\tawait SocketLabsObj.wrongHash(uEmail, requestTimes + 1)\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfMoreThan3DaysPassed.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfMoreThan3DaysPassed.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AACxD,OAAO,EAAE,SAAS,EAAE,mCAA0B;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,MAAc,EACd,cAAoB,IAAI,IAAI,EAAE,CAAC,4BAA4B;;IAE3D;;OAEG;IAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAEnD,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;QACvB,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfMoreThan3DaysPassed.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfMoreThan3DaysPassed.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AACxD,OAAO,EAAE,SAAS,EAAE,mCAA0B;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,MAAc,EACd,cAAoB,IAAI,IAAI,EAAE,CAAC,4BAA4B;;IAE3D;;OAEG;IAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAEnD,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;QACvB,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\nimport { StringLib } from '@lib/StringLib.mjs'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\nimport deleteUserByEmail from './db/deleteUserByEmail.mjs'\n\nexport async function handleIfMoreThan3DaysPassed(\n\tuEmail: string,\n\tdateLastReq: Date = new Date() // but it is already handled\n) {\n\t/****************************************************\n\t * if dateLastReq too old then 3 days send email\n\t */\n\n\tconst now = new Date()\n\tconst day3ago = new Date(now.setDate(now.getDate() - 3))\n\tconst StrLibObj = new StringLib()\n\tconst tsReq = StrLibObj.isoToTimestamp(dateLastReq)\n\tconst ts3DayAgo = StrLibObj.isoToTimestamp(day3ago)\n\n\tif (ts3DayAgo > tsReq) {\n\t\t// dateLastReq too old then 3 days\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\t\tawait SocketLabsObj.hashReqTooOld(uEmail)\n\n\t\tawait deleteUserByEmail(uEmail)\n\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleIfTooMuchRequestsTimes.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfTooMuchRequestsTimes.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,MAAc,EACd,eAAuB,EAAE,CAAC,4BAA4B;;IAEtD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAEjD,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"handleIfTooMuchRequestsTimes.mjs","sourceRoot":"","sources":["../../../../../src/private/lib/access/handleIfTooMuchRequestsTimes.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yCAAgC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,MAAc,EACd,eAAuB,EAAE,CAAC,4BAA4B;;IAEtD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;QACzC,MAAM,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAEjD,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;AACF,CAAC","sourcesContent":["import { SocketLabsLib } from '@email/SocketLabsLib.mjs'\n\nimport { EMAIL_CHECK_LINK } from './Constants.mjs'\nimport deleteUserByEmail from './db/deleteUserByEmail.mjs'\n\nexport async function handleIfTooMuchRequestsTimes(\n\tuEmail: string,\n\trequestTimes: number = 99 // but it is already handled\n) {\n\tif (requestTimes >= 5) {\n\t\tconst SocketLabsObj = new SocketLabsLib()\n\t\tawait SocketLabsObj.tooMuchVerifyRequests(uEmail)\n\n\t\tawait deleteUserByEmail(uEmail)\n\n\t\tthrow new Error(EMAIL_CHECK_LINK)\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"makeBodyJson.mjs","sourceRoot":"","sources":["../../../../src/private/lib/makeBodyJson.mts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,WAAmB;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO;QACP,WAAW;KACX,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"makeBodyJson.mjs","sourceRoot":"","sources":["../../../../src/private/lib/makeBodyJson.mts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,WAAmB;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC;QACrB,OAAO;QACP,WAAW;KACX,CAAC,CAAA;AACH,CAAC","sourcesContent":["export function makeBodyJson(message: string, description: string) {\n\treturn JSON.stringify({\n\t\tmessage,\n\t\tdescription\n\t})\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiumine/koa-utils",
3
- "version": "3.7.3",
3
+ "version": "3.7.4",
4
4
  "description": "Koa Utils",
5
5
  "type": "module",
6
6
  "repository": {
@@ -22,6 +22,12 @@
22
22
  "build:esm": "yarn run tspc -p tsconfig.json && find dist/esm -type f -name \"*.js\" -exec bash -c 'mv \"$0\" \"${0%.js}.mjs\"' {} \\; && cp -R dist/esm/* dist/ && rm -rf dist/esm",
23
23
  "lint": "eslint --fix && prettier --write 'src/**/*.mts'",
24
24
  "clean": "rm -rf ./dist",
25
+ "build:tests": "rm -rf dist-test && yarn run tspc -p tsconfig.build-tests.json && find dist-test -type f -name \"*.js\" -exec bash -c 'mv \"$0\" \"${0%.js}.mjs\"' {} \\;",
26
+ "test": "yarn build && yarn build:tests && mocha",
27
+ "test:watch": "mocha --watch",
28
+ "test:coverage": "yarn build && yarn build:tests && c8 mocha",
29
+ "qodana": "yarn test:coverage && mkdir -p .qodana/results && docker run --rm --env-file .env -v \"$PWD\":/data/project -v \"$PWD\"/.qodana/results:/data/results jetbrains/qodana-js:2025.2 --show-report",
30
+ "qodana:cli": "yarn test:coverage && set -a && . ./.env && set +a && qodana scan --show-report",
25
31
  "upload": "npm publish",
26
32
  "update": "yarn upgrade-interactive --latest --network-timeout 100000",
27
33
  "cloc": "cloc . --exclude-dir=node_modules,dist,.hg,upload",
@@ -614,17 +620,23 @@
614
620
  "@sentry/node": "^10.42.0",
615
621
  "@socketlabs/email": "^1.4.4",
616
622
  "@types/bcrypt": "^6.0.0",
623
+ "@types/chai": "^5.2.3",
617
624
  "@types/clamscan": "^2.4.0",
618
625
  "@types/fs-extra": "^11.0.4",
619
626
  "@types/koa": "^3.0.1",
627
+ "@types/mocha": "^10.0.10",
620
628
  "@types/node": "^25.4.0",
621
629
  "@types/pg": "^8.18.0",
630
+ "@types/sinon": "^21.0.1",
622
631
  "@types/uuid": "^11.0.0",
623
632
  "@typescript-eslint/eslint-plugin": "^8.57.0",
624
633
  "@typescript-eslint/parser": "^8.57.0",
634
+ "c8": "^10.1.3",
635
+ "chai": "^6.2.2",
625
636
  "clamscan": "^2.4.0",
626
637
  "dotenv": "^17.2.3",
627
638
  "eslint": "^9.39.2",
639
+ "eslint-config-prettier": "^10.1.8",
628
640
  "eslint-config-standard": "^17.1.0",
629
641
  "eslint-import-resolver-typescript": "^4.4.4",
630
642
  "eslint-plugin-import": "^2.29.1",
@@ -638,7 +650,10 @@
638
650
  "koa": "^3.1.1",
639
651
  "koa-logger": "^4.0.0",
640
652
  "lint-staged": "^16.3.2",
653
+ "mariadb": "^3.5.2",
654
+ "mocha": "^11.7.6",
641
655
  "module-alias": "^2.2.3",
656
+ "mongodb-memory-server": "^11.1.0",
642
657
  "mongoose": "^9.2.4",
643
658
  "pg": "^8.20.0",
644
659
  "prettier": "^3.8.1",
@@ -647,8 +662,10 @@
647
662
  "sequelize": "^6.37.8",
648
663
  "sequelize-typescript": "^2.1.6",
649
664
  "sharp": "^0.34.5",
665
+ "sinon": "^22.0.0",
650
666
  "ts-node": "^10.9.2",
651
667
  "ts-patch": "^3.3.0",
668
+ "tsx": "^4.22.3",
652
669
  "typescript": "^5.9.3",
653
670
  "typescript-transform-paths": "^3.5.6",
654
671
  "uuid": "^13.0.0"