@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.
- package/README.md +183 -0
- package/dist/dataSources/MariaDB.mjs +1 -0
- package/dist/dataSources/MariaDB.mjs.map +1 -1
- package/dist/dataSources/MongoDB.mjs +1 -0
- package/dist/dataSources/MongoDB.mjs.map +1 -1
- package/dist/dataSources/PostgreSQL.mjs +4 -2
- package/dist/dataSources/PostgreSQL.mjs.map +1 -1
- package/dist/dataSources/Redis.mjs +15 -13
- package/dist/dataSources/Redis.mjs.map +1 -1
- package/dist/email/SocketLabsLib.mjs +7 -10
- package/dist/email/SocketLabsLib.mjs.map +1 -1
- package/dist/files/IUploadTemp.mjs.map +1 -1
- package/dist/files/checkForNSFW.mjs.map +1 -1
- package/dist/files/fileConst.mjs.map +1 -1
- package/dist/files/moveFileStaticDomain.mjs.map +1 -1
- package/dist/files/moveImageFile.mjs.map +1 -1
- package/dist/files/moveTempFile.mjs.map +1 -1
- package/dist/files/reEncodeToJpeg.mjs.map +1 -1
- package/dist/files/reEncodeToPng.mjs.map +1 -1
- package/dist/files/reEncodeToWebp.mjs.map +1 -1
- package/dist/files/scanVirus.mjs.map +1 -1
- package/dist/files/storeUploadAsTemp.mjs +2 -0
- package/dist/files/storeUploadAsTemp.mjs.map +1 -1
- package/dist/files/uploadTempImage.mjs.map +1 -1
- package/dist/files/uploadTempPdf.mjs.map +1 -1
- package/dist/files/validateExtension.mjs.map +1 -1
- package/dist/files/validateJpgPngExtension.mjs.map +1 -1
- package/dist/files/validateMimeType.mjs.map +1 -1
- package/dist/files/validateMimeTypeImages.mjs.map +1 -1
- package/dist/files/validateMimeTypePdf.mjs.map +1 -1
- package/dist/files/validatePdfExtension.mjs.map +1 -1
- package/dist/graphQL/models/MongoDB/UserBase.mjs.map +1 -1
- package/dist/graphQL/models/MongoDB/log/DevStatsGraphQLCalls.mjs.map +1 -1
- package/dist/graphQL/models/MongoDB/log/LogGlobalError.mjs.map +1 -1
- package/dist/graphQL/models/MongoDB/log/LogStatsGraphql.mjs.map +1 -1
- package/dist/graphQL/models/MongoDB/log/LogThrow.mjs.map +1 -1
- package/dist/graphQL/schema/GraphQLInput/GraphQLInputLogin.mjs.map +1 -1
- package/dist/graphQL/schema/context/IContextAuthenticatedResource.mjs.map +1 -1
- package/dist/graphQL/schema/context/IContextKoaErrorHandler.mjs.map +1 -1
- package/dist/graphQL/schema/context/IContextLogin.mjs.map +1 -1
- package/dist/graphQL/schema/context/IContextLogout.mjs.map +1 -1
- package/dist/graphQL/schema/context/IContextRefresh.mjs.map +1 -1
- package/dist/graphQL/schema/context/TCommonHeaders.mjs.map +1 -1
- package/dist/graphQL/schema/interfaces/IFindAndUpdate.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/emailChangeHashVerify.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/login4Ever.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/loginAdmin.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/loginRememberme.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/logout.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/refresh.mjs +1 -4
- package/dist/graphQL/schema/mutations/refresh.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/resetPwd.mjs +2 -3
- package/dist/graphQL/schema/mutations/resetPwd.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/signUp.mjs.map +1 -1
- package/dist/graphQL/schema/mutations/updatePassword.mjs +2 -1
- package/dist/graphQL/schema/mutations/updatePassword.mjs.map +1 -1
- package/dist/graphQL/schema/types/DeleteType.mjs.map +1 -1
- package/dist/graphQL/schema/types/DoneType.mjs.map +1 -1
- package/dist/graphQL/schema/types/FindOneAndUpdateType.mjs.map +1 -1
- package/dist/graphQL/schema/types/LoginAppType.mjs.map +1 -1
- package/dist/graphQL/schema/types/LoginType.mjs.map +1 -1
- package/dist/graphQL/schema/types/MidNameType.mjs.map +1 -1
- package/dist/graphQL/schema/types/OnlyIdType.mjs.map +1 -1
- package/dist/graphQL/schema/types/RefreshType.mjs.map +1 -1
- package/dist/graphQL/schema/types/RetStatusMexType.mjs.map +1 -1
- package/dist/graphQL/schema/types/RetStatusType.mjs.map +1 -1
- package/dist/graphQL/schema/types/SaveType.mjs.map +1 -1
- package/dist/graphQL/schema/types/SidNameType.mjs.map +1 -1
- package/dist/graphQL/schema/types/SidNomeType.mjs.map +1 -1
- package/dist/graphQL/schema/types/UpdateResultType.mjs.map +1 -1
- package/dist/graphQL/status.mjs.map +1 -1
- package/dist/graphQL/throw/throwAccessTokenExpiredOrDeleted.mjs.map +1 -1
- package/dist/graphQL/throw/throwAccessTokenRequired.mjs.map +1 -1
- package/dist/graphQL/throw/throwAlreadyDone.mjs.map +1 -1
- package/dist/graphQL/throw/throwAlreadyTakenError.mjs.map +1 -1
- package/dist/graphQL/throw/throwConflictError.mjs.map +1 -1
- package/dist/graphQL/throw/throwErrorWrongUserInput.mjs.map +1 -1
- package/dist/graphQL/throw/throwForbiddenError.mjs.map +1 -1
- package/dist/graphQL/throw/throwGoneError.mjs.map +1 -1
- package/dist/graphQL/throw/throwGraphQLError.mjs +1 -6
- package/dist/graphQL/throw/throwGraphQLError.mjs.map +1 -1
- package/dist/graphQL/throw/throwInternalError.mjs.map +1 -1
- package/dist/graphQL/throw/throwMethodNotAllowedError.mjs.map +1 -1
- package/dist/graphQL/throw/throwMissingMalformedInvalidToken.mjs.map +1 -1
- package/dist/graphQL/throw/throwNotAcceptableError.mjs.map +1 -1
- package/dist/graphQL/throw/throwNotFoundError.mjs.map +1 -1
- package/dist/graphQL/throw/throwNotImplementedError.mjs.map +1 -1
- package/dist/graphQL/throw/throwPaymentRequiredError.mjs.map +1 -1
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthCookie.mjs.map +1 -1
- package/dist/graphQL/throw/throwPreconditionFailedNoAuthHeader.mjs.map +1 -1
- package/dist/graphQL/throw/throwRefreshTokenExpiredOrDeleted.mjs.map +1 -1
- package/dist/graphQL/throw/throwRefreshTokenRequired.mjs.map +1 -1
- package/dist/graphQL/throw/throwRefreshTokenSignatureRequired.mjs.map +1 -1
- package/dist/graphQL/throw/throwTooManyRequestsError.mjs.map +1 -1
- package/dist/graphQL/throw/throwUnauthorizedError.mjs.map +1 -1
- package/dist/graphQL/throw/throwUnprocessableContentError.mjs.map +1 -1
- package/dist/graphQL/throw/throwUnsupportedMediaTypeError.mjs.map +1 -1
- package/dist/koa/IFileUpload.mjs.map +1 -1
- package/dist/koa/IKoaError.mjs.map +1 -1
- package/dist/koa/customFormatErrorFn.mjs.map +1 -1
- package/dist/koa/logRequestToDb.mjs.map +1 -1
- package/dist/koa/middleware/authenticatedAuthorizationHandler/TCookieRefreshToken.mjs.map +1 -1
- package/dist/koa/middleware/authenticatedAuthorizationHandler/index.mjs.map +1 -1
- package/dist/koa/middleware/authenticatedAuthorizationHandler/verifySignedRefreshToken.mjs.map +1 -1
- package/dist/koa/middleware/authenticatedLogoutHandler/index.mjs.map +1 -1
- package/dist/koa/middleware/authenticatedResourceHandler/index.mjs +1 -2
- package/dist/koa/middleware/authenticatedResourceHandler/index.mjs.map +1 -1
- package/dist/koa/middleware/debug/index.mjs.map +1 -1
- package/dist/koa/router/verifyEmail.mjs +2 -0
- package/dist/koa/router/verifyEmail.mjs.map +1 -1
- package/dist/koa/tdwKoaErrorHandler.mjs.map +1 -1
- package/dist/lib/ArrayLib.mjs +3 -4
- package/dist/lib/ArrayLib.mjs.map +1 -1
- package/dist/lib/Constants.mjs.map +1 -1
- package/dist/lib/DateLib.mjs +2 -3
- package/dist/lib/DateLib.mjs.map +1 -1
- package/dist/lib/IAuthorizationDisDel.mjs.map +1 -1
- package/dist/lib/ICookies.mjs.map +1 -1
- package/dist/lib/MariaDB/IMariaDBErr.mjs.map +1 -1
- package/dist/lib/MariaDB/MariaDBErrType.mjs.map +1 -1
- package/dist/lib/MariaDB/throwSqlErrors.mjs +3 -5
- package/dist/lib/MariaDB/throwSqlErrors.mjs.map +1 -1
- package/dist/lib/MongoDB/IMongoDBError.mjs.map +1 -1
- package/dist/lib/MongoDB/IOnboarding.mjs.map +1 -1
- package/dist/lib/MongoDB/MongoDBErrType.mjs.map +1 -1
- package/dist/lib/MongoDB/throwIfMongoErr.mjs +2 -5
- package/dist/lib/MongoDB/throwIfMongoErr.mjs.map +1 -1
- package/dist/lib/MongoDB/throwMongoErrors.mjs.map +1 -1
- package/dist/lib/NumLib.mjs +2 -3
- package/dist/lib/NumLib.mjs.map +1 -1
- package/dist/lib/PostgreSQL/IPostgresError.mjs.map +1 -1
- package/dist/lib/PostgreSQL/IPostgresErrorCodes.mjs.map +1 -1
- package/dist/lib/PostgreSQL/makePostgreSqlLogError.mjs.map +1 -1
- package/dist/lib/Redis/RedisBoolean.mjs.map +1 -1
- package/dist/lib/Redis/fromRedisBooleanValue.mjs.map +1 -1
- package/dist/lib/Redis/toRedisBooleanValue.mjs.map +1 -1
- package/dist/lib/StringLib.mjs +3 -4
- package/dist/lib/StringLib.mjs.map +1 -1
- package/dist/lib/checkEmailLen.mjs +1 -1
- package/dist/lib/checkEmailLen.mjs.map +1 -1
- package/dist/lib/checkPwdLen.mjs.map +1 -1
- package/dist/lib/db/log/hitStat.mjs +1 -5
- package/dist/lib/db/log/hitStat.mjs.map +1 -1
- package/dist/lib/db/log/logGlobalError.mjs.map +1 -1
- package/dist/lib/db/log/logGraphql.mjs.map +1 -1
- package/dist/lib/db/log/logThrow.mjs.map +1 -1
- package/dist/lib/db/login/ILoginSet.mjs.map +1 -1
- package/dist/lib/db/login/ILoginUnset.mjs.map +1 -1
- package/dist/lib/db/registerNewUser.mjs.map +1 -1
- package/dist/lib/db/userExist.mjs +1 -3
- package/dist/lib/db/userExist.mjs.map +1 -1
- package/dist/lib/emailHash.mjs.map +1 -1
- package/dist/lib/encryptPassword.mjs.map +1 -1
- package/dist/lib/hash.mjs +2 -2
- package/dist/lib/hash.mjs.map +1 -1
- package/dist/lib/makeOnboardingData.mjs.map +1 -1
- package/dist/lib/setLoginCookies.mjs.map +1 -1
- package/dist/lib/sleepMs.mjs +1 -1
- package/dist/lib/sleepMs.mjs.map +1 -1
- package/dist/lib/throwIfNotValidEnumValue.mjs.map +1 -1
- package/dist/lib/tokenOptions.mjs +1 -1
- package/dist/lib/tokenOptions.mjs.map +1 -1
- package/dist/lib/tokens.mjs.map +1 -1
- package/dist/lib/tryCatchRethrow.mjs.map +1 -1
- package/dist/private/files/_validateMimeType.mjs.map +1 -1
- package/dist/private/files/reEncode.mjs +4 -20
- package/dist/private/files/reEncode.mjs.map +1 -1
- package/dist/private/graphQL/Consts.mjs.map +1 -1
- package/dist/private/graphQL/models/MongoDB/private/UserAdminKoaUtils.mjs.map +1 -1
- package/dist/private/graphQL/schema/context/IContextLog.mjs.map +1 -1
- package/dist/private/graphQL/schema/context/IContextVerifyEmail.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.d.mts +19 -0
- package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.mjs +26 -0
- package/dist/private/graphQL/schema/mutations/_buildLoginStatsUpdate.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.d.mts +19 -0
- package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.mjs +28 -0
- package/dist/private/graphQL/schema/mutations/_finalizeLoginCheck.mjs.map +1 -0
- package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs +2 -25
- package/dist/private/graphQL/schema/mutations/checkUserAdminLoginAuthorization.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs +2 -26
- package/dist/private/graphQL/schema/mutations/checkUserLoginAuthorization.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs +1 -2
- package/dist/private/graphQL/schema/mutations/infoUserAdminForLogin.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs +1 -2
- package/dist/private/graphQL/schema/mutations/infoUserForLogin.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs +1 -1
- package/dist/private/graphQL/schema/mutations/infoUserForLoginSQL.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/setLastLoginSQL.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs +2 -8
- package/dist/private/graphQL/schema/mutations/setRedisLoginSession.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs +2 -22
- package/dist/private/graphQL/schema/mutations/updateAdminLoginStats.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/updateLoginStats4ever.mjs.map +1 -1
- package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs +2 -22
- package/dist/private/graphQL/schema/mutations/updateLoginStatsRememberme.mjs.map +1 -1
- package/dist/private/lib/access/Constants.mjs.map +1 -1
- package/dist/private/lib/access/db/confirmNewEmail.mjs.map +1 -1
- package/dist/private/lib/access/db/deleteUserByEmail.mjs.map +1 -1
- package/dist/private/lib/access/db/enableEmailAccess.mjs.map +1 -1
- package/dist/private/lib/access/db/getResetPwd.mjs.map +1 -1
- package/dist/private/lib/access/db/incReqTimes.mjs.map +1 -1
- package/dist/private/lib/access/db/removeResetReq.mjs.map +1 -1
- package/dist/private/lib/access/db/saveResetReq.mjs.map +1 -1
- package/dist/private/lib/access/db/setEmailHash.mjs.map +1 -1
- package/dist/private/lib/access/db/updatePasswordDb.mjs.map +1 -1
- package/dist/private/lib/access/db/userData4VerifyEmail.mjs.map +1 -1
- package/dist/private/lib/access/handleBadDB.mjs.map +1 -1
- package/dist/private/lib/access/handleIfAccountDeleted.mjs.map +1 -1
- package/dist/private/lib/access/handleIfAccountDisabled.mjs.map +1 -1
- package/dist/private/lib/access/handleIfEmailAlreadyValid.mjs.map +1 -1
- package/dist/private/lib/access/handleIfHashBad.mjs.map +1 -1
- package/dist/private/lib/access/handleIfMoreThan3DaysPassed.mjs.map +1 -1
- package/dist/private/lib/access/handleIfTooMuchRequestsTimes.mjs.map +1 -1
- package/dist/private/lib/makeBodyJson.mjs.map +1 -1
- 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,
|
|
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,
|
|
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
|
|
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;
|
|
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;
|
|
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
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
+
"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"
|