@starklabs/forge 1.3.23 → 1.3.24-beta.1
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/dist/js/account/index.d.ts +1 -1
- package/dist/js/account/index.d.ts.map +1 -1
- package/dist/js/account/index.js +14 -7
- package/dist/js/account/index.js.map +1 -1
- package/dist/js/account/me.delete.d.ts +2 -2
- package/dist/js/account/me.delete.d.ts.map +1 -1
- package/dist/js/account/me.delete.js +15 -6
- package/dist/js/account/me.delete.js.map +1 -1
- package/dist/js/account/me.update.d.ts +3 -3
- package/dist/js/account/me.update.d.ts.map +1 -1
- package/dist/js/account/me.update.js +20 -7
- package/dist/js/account/me.update.js.map +1 -1
- package/dist/js/app.js +21 -8
- package/dist/js/app.js.map +1 -1
- package/dist/js/auth/builtin/auth.collection.d.ts.map +1 -1
- package/dist/js/auth/builtin/auth.collection.js +21 -11
- package/dist/js/auth/builtin/auth.collection.js.map +1 -1
- package/dist/js/auth/forgotPassword.d.ts +4 -4
- package/dist/js/auth/forgotPassword.d.ts.map +1 -1
- package/dist/js/auth/forgotPassword.js +12 -6
- package/dist/js/auth/forgotPassword.js.map +1 -1
- package/dist/js/auth/index.d.ts +1 -1
- package/dist/js/auth/index.d.ts.map +1 -1
- package/dist/js/auth/index.js +16 -8
- package/dist/js/auth/index.js.map +1 -1
- package/dist/js/auth/login.d.ts +4 -4
- package/dist/js/auth/login.d.ts.map +1 -1
- package/dist/js/auth/login.js +8 -4
- package/dist/js/auth/login.js.map +1 -1
- package/dist/js/auth/logout.js +6 -1
- package/dist/js/auth/logout.js.map +1 -1
- package/dist/js/auth/refresh.js +9 -0
- package/dist/js/auth/refresh.js.map +1 -1
- package/dist/js/auth/resendOTP.d.ts +4 -4
- package/dist/js/auth/resendOTP.d.ts.map +1 -1
- package/dist/js/auth/resendOTP.js +14 -4
- package/dist/js/auth/resendOTP.js.map +1 -1
- package/dist/js/auth/resetPassword.d.ts +4 -4
- package/dist/js/auth/resetPassword.d.ts.map +1 -1
- package/dist/js/auth/resetPassword.js +14 -4
- package/dist/js/auth/resetPassword.js.map +1 -1
- package/dist/js/auth/signup.d.ts +4 -4
- package/dist/js/auth/signup.d.ts.map +1 -1
- package/dist/js/auth/signup.js +10 -5
- package/dist/js/auth/signup.js.map +1 -1
- package/dist/js/auth/utils/authenticateUser.d.ts +3 -3
- package/dist/js/auth/utils/authenticateUser.d.ts.map +1 -1
- package/dist/js/auth/utils/authenticateUser.js +13 -3
- package/dist/js/auth/utils/authenticateUser.js.map +1 -1
- package/dist/js/auth/utils/createOTPModel.d.ts +1 -1
- package/dist/js/auth/utils/createOTPModel.d.ts.map +1 -1
- package/dist/js/auth/utils/createOTPModel.js +8 -3
- package/dist/js/auth/utils/createOTPModel.js.map +1 -1
- package/dist/js/auth/utils/createOTPUser.d.ts +3 -3
- package/dist/js/auth/utils/createOTPUser.d.ts.map +1 -1
- package/dist/js/auth/utils/createOTPUser.js +11 -3
- package/dist/js/auth/utils/createOTPUser.js.map +1 -1
- package/dist/js/auth/utils/createUser.d.ts +3 -3
- package/dist/js/auth/utils/createUser.d.ts.map +1 -1
- package/dist/js/auth/utils/createUser.js +12 -2
- package/dist/js/auth/utils/createUser.js.map +1 -1
- package/dist/js/auth/utils/findRefreshToken.js +5 -1
- package/dist/js/auth/utils/findRefreshToken.js.map +1 -1
- package/dist/js/auth/utils/findRefreshTokenUser.js +1 -0
- package/dist/js/auth/utils/findRefreshTokenUser.js.map +1 -1
- package/dist/js/auth/utils/getOTPUser.js +3 -0
- package/dist/js/auth/utils/getOTPUser.js.map +1 -1
- package/dist/js/auth/utils/getUser.d.ts +3 -3
- package/dist/js/auth/utils/getUser.d.ts.map +1 -1
- package/dist/js/auth/utils/getUser.js +6 -2
- package/dist/js/auth/utils/getUser.js.map +1 -1
- package/dist/js/auth/utils/handleGetToken.d.ts.map +1 -1
- package/dist/js/auth/utils/handleGetToken.js +2 -2
- package/dist/js/auth/utils/handleGetToken.js.map +1 -1
- package/dist/js/auth/utils/handleRefreshTokenValidation.js +7 -1
- package/dist/js/auth/utils/handleRefreshTokenValidation.js.map +1 -1
- package/dist/js/auth/utils/handleRotateRefreshToken.js +7 -1
- package/dist/js/auth/utils/handleRotateRefreshToken.js.map +1 -1
- package/dist/js/auth/utils/modeMap.d.ts +12 -12
- package/dist/js/auth/utils/otpVerifiedResponse.js +1 -0
- package/dist/js/auth/utils/otpVerifiedResponse.js.map +1 -1
- package/dist/js/auth/utils/sendCookie.js +10 -0
- package/dist/js/auth/utils/sendCookie.js.map +1 -1
- package/dist/js/auth/utils/sendOTP.d.ts.map +1 -1
- package/dist/js/auth/utils/sendOTP.js +15 -14
- package/dist/js/auth/utils/sendOTP.js.map +1 -1
- package/dist/js/auth/utils/verifyCredentials.d.ts +3 -3
- package/dist/js/auth/utils/verifyCredentials.d.ts.map +1 -1
- package/dist/js/auth/utils/verifyCredentials.js +8 -6
- package/dist/js/auth/utils/verifyCredentials.js.map +1 -1
- package/dist/js/auth/verifyOTP.d.ts +4 -4
- package/dist/js/auth/verifyOTP.d.ts.map +1 -1
- package/dist/js/auth/verifyOTP.js +18 -5
- package/dist/js/auth/verifyOTP.js.map +1 -1
- package/dist/js/config/auth.envs.d.ts +4 -0
- package/dist/js/config/auth.envs.d.ts.map +1 -0
- package/dist/js/config/auth.envs.js +79 -0
- package/dist/js/config/auth.envs.js.map +1 -0
- package/dist/js/config/cloudinary.js +1 -0
- package/dist/js/config/cloudinary.js.map +1 -1
- package/dist/js/config/duration.js +7 -0
- package/dist/js/config/duration.js.map +1 -1
- package/dist/js/config/email.envs.d.ts +4 -0
- package/dist/js/config/email.envs.d.ts.map +1 -0
- package/dist/js/config/email.envs.js +50 -0
- package/dist/js/config/email.envs.js.map +1 -0
- package/dist/js/config/envs.d.ts.map +1 -1
- package/dist/js/config/envs.js +7 -57
- package/dist/js/config/envs.js.map +1 -1
- package/dist/js/config/handleReqType.d.ts +1 -1
- package/dist/js/config/handleReqType.d.ts.map +1 -1
- package/dist/js/config/handleReqType.js +4 -3
- package/dist/js/config/handleReqType.js.map +1 -1
- package/dist/js/config/handlerMap.js +4 -0
- package/dist/js/config/handlerMap.js.map +1 -1
- package/dist/js/config/refreshModel.js +1 -0
- package/dist/js/config/refreshModel.js.map +1 -1
- package/dist/js/config/sendEmail.d.ts.map +1 -1
- package/dist/js/config/sendEmail.js +4 -1
- package/dist/js/config/sendEmail.js.map +1 -1
- package/dist/js/crud/bunch.crud.js +2 -0
- package/dist/js/crud/bunch.crud.js.map +1 -1
- package/dist/js/crud/create.d.ts +4 -4
- package/dist/js/crud/create.d.ts.map +1 -1
- package/dist/js/crud/create.js +23 -8
- package/dist/js/crud/create.js.map +1 -1
- package/dist/js/crud/createBulk.d.ts +4 -4
- package/dist/js/crud/createBulk.d.ts.map +1 -1
- package/dist/js/crud/createBulk.js +8 -3
- package/dist/js/crud/createBulk.js.map +1 -1
- package/dist/js/crud/email/index.d.ts +2 -0
- package/dist/js/crud/email/index.d.ts.map +1 -0
- package/dist/js/crud/email/index.js +2 -0
- package/dist/js/crud/email/index.js.map +1 -0
- package/dist/js/crud/encryption/handleDecryption.js +8 -3
- package/dist/js/crud/encryption/handleDecryption.js.map +1 -1
- package/dist/js/crud/encryption/handleEncryption.js +7 -3
- package/dist/js/crud/encryption/handleEncryption.js.map +1 -1
- package/dist/js/crud/handleUploads/file.add.d.ts +4 -4
- package/dist/js/crud/handleUploads/file.add.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.add.js +16 -9
- package/dist/js/crud/handleUploads/file.add.js.map +1 -1
- package/dist/js/crud/handleUploads/file.delete.d.ts +4 -4
- package/dist/js/crud/handleUploads/file.delete.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.delete.js +14 -5
- package/dist/js/crud/handleUploads/file.delete.js.map +1 -1
- package/dist/js/crud/handleUploads/file.update.d.ts +4 -4
- package/dist/js/crud/handleUploads/file.update.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.update.js +15 -5
- package/dist/js/crud/handleUploads/file.update.js.map +1 -1
- package/dist/js/crud/index.d.ts +1 -1
- package/dist/js/crud/index.d.ts.map +1 -1
- package/dist/js/crud/index.js +18 -11
- package/dist/js/crud/index.js.map +1 -1
- package/dist/js/crud/read.d.ts +4 -4
- package/dist/js/crud/read.d.ts.map +1 -1
- package/dist/js/crud/read.js +19 -11
- package/dist/js/crud/read.js.map +1 -1
- package/dist/js/crud/readAll.d.ts +3 -3
- package/dist/js/crud/readAll.d.ts.map +1 -1
- package/dist/js/crud/readAll.js +16 -8
- package/dist/js/crud/readAll.js.map +1 -1
- package/dist/js/crud/remove.d.ts +3 -3
- package/dist/js/crud/remove.d.ts.map +1 -1
- package/dist/js/crud/remove.js +19 -8
- package/dist/js/crud/remove.js.map +1 -1
- package/dist/js/crud/removeAll.d.ts +3 -3
- package/dist/js/crud/removeAll.d.ts.map +1 -1
- package/dist/js/crud/removeAll.js +13 -5
- package/dist/js/crud/removeAll.js.map +1 -1
- package/dist/js/crud/removeMultiple.d.ts +4 -4
- package/dist/js/crud/removeMultiple.d.ts.map +1 -1
- package/dist/js/crud/removeMultiple.js +18 -7
- package/dist/js/crud/removeMultiple.js.map +1 -1
- package/dist/js/crud/security/handleDecryption.js +8 -3
- package/dist/js/crud/security/handleDecryption.js.map +1 -1
- package/dist/js/crud/security/handleEncryption.js +7 -3
- package/dist/js/crud/security/handleEncryption.js.map +1 -1
- package/dist/js/crud/security/handleHashing.js +8 -3
- package/dist/js/crud/security/handleHashing.js.map +1 -1
- package/dist/js/crud/update.d.ts +4 -4
- package/dist/js/crud/update.d.ts.map +1 -1
- package/dist/js/crud/update.js +24 -9
- package/dist/js/crud/update.js.map +1 -1
- package/dist/js/crud/utils/authorizeAccess.d.ts +2 -2
- package/dist/js/crud/utils/authorizeAccess.d.ts.map +1 -1
- package/dist/js/crud/utils/authorizeAccess.js +19 -13
- package/dist/js/crud/utils/authorizeAccess.js.map +1 -1
- package/dist/js/crud/utils/getItem.d.ts +3 -3
- package/dist/js/crud/utils/getItem.d.ts.map +1 -1
- package/dist/js/crud/utils/getItem.js +18 -9
- package/dist/js/crud/utils/getItem.js.map +1 -1
- package/dist/js/crud/utils/runActions.d.ts +2 -3
- package/dist/js/crud/utils/runActions.d.ts.map +1 -1
- package/dist/js/crud/utils/runActions.js +14 -4
- package/dist/js/crud/utils/runActions.js.map +1 -1
- package/dist/js/email/index.d.ts +4 -0
- package/dist/js/email/index.d.ts.map +1 -0
- package/dist/js/email/index.js +180 -0
- package/dist/js/email/index.js.map +1 -0
- package/dist/js/email/templates/account.created.d.ts +4 -0
- package/dist/js/email/templates/account.created.d.ts.map +1 -0
- package/dist/js/email/templates/account.created.email.d.ts +4 -0
- package/dist/js/email/templates/account.created.email.d.ts.map +1 -0
- package/dist/js/email/templates/account.created.email.js +165 -0
- package/dist/js/email/templates/account.created.email.js.map +1 -0
- package/dist/js/email/templates/account.created.js +122 -0
- package/dist/js/email/templates/account.created.js.map +1 -0
- package/dist/js/email/templates/account.deleted.d.ts +4 -0
- package/dist/js/email/templates/account.deleted.d.ts.map +1 -0
- package/dist/js/email/templates/account.deleted.js +111 -0
- package/dist/js/email/templates/account.deleted.js.map +1 -0
- package/dist/js/email/templates/account.updated.d.ts +4 -0
- package/dist/js/email/templates/account.updated.d.ts.map +1 -0
- package/dist/js/email/templates/account.updated.js +128 -0
- package/dist/js/email/templates/account.updated.js.map +1 -0
- package/dist/js/email/templates/announcement.d.ts +4 -0
- package/dist/js/email/templates/announcement.d.ts.map +1 -0
- package/dist/js/email/templates/announcement.js +122 -0
- package/dist/js/email/templates/announcement.js.map +1 -0
- package/dist/js/email/templates/api.key.created.d.ts +4 -0
- package/dist/js/email/templates/api.key.created.d.ts.map +1 -0
- package/dist/js/email/templates/api.key.created.js +159 -0
- package/dist/js/email/templates/api.key.created.js.map +1 -0
- package/dist/js/email/templates/api.key.revoked.d.ts +4 -0
- package/dist/js/email/templates/api.key.revoked.d.ts.map +1 -0
- package/dist/js/email/templates/api.key.revoked.js +134 -0
- package/dist/js/email/templates/api.key.revoked.js.map +1 -0
- package/dist/js/email/templates/contact.form.d.ts +4 -0
- package/dist/js/email/templates/contact.form.d.ts.map +1 -0
- package/dist/js/email/templates/contact.form.js +134 -0
- package/dist/js/email/templates/contact.form.js.map +1 -0
- package/dist/js/email/templates/daily.report.d.ts +4 -0
- package/dist/js/email/templates/daily.report.d.ts.map +1 -0
- package/dist/js/email/templates/daily.report.js +143 -0
- package/dist/js/email/templates/daily.report.js.map +1 -0
- package/dist/js/email/templates/email.changed.d.ts +4 -0
- package/dist/js/email/templates/email.changed.d.ts.map +1 -0
- package/dist/js/email/templates/email.changed.js +122 -0
- package/dist/js/email/templates/email.changed.js.map +1 -0
- package/dist/js/email/templates/feedback.d.ts +4 -0
- package/dist/js/email/templates/feedback.d.ts.map +1 -0
- package/dist/js/email/templates/feedback.js +136 -0
- package/dist/js/email/templates/feedback.js.map +1 -0
- package/dist/js/email/templates/index.d.ts +46 -0
- package/dist/js/email/templates/index.d.ts.map +1 -0
- package/dist/js/email/templates/index.js +46 -0
- package/dist/js/email/templates/index.js.map +1 -0
- package/dist/js/email/templates/invoice.d.ts +4 -0
- package/dist/js/email/templates/invoice.d.ts.map +1 -0
- package/dist/js/email/templates/invoice.js +147 -0
- package/dist/js/email/templates/invoice.js.map +1 -0
- package/dist/js/email/templates/login.alert.d.ts +4 -0
- package/dist/js/email/templates/login.alert.d.ts.map +1 -0
- package/dist/js/email/templates/login.alert.js +147 -0
- package/dist/js/email/templates/login.alert.js.map +1 -0
- package/dist/js/email/templates/magic.link.d.ts +4 -0
- package/dist/js/email/templates/magic.link.d.ts.map +1 -0
- package/dist/js/email/templates/magic.link.js +126 -0
- package/dist/js/email/templates/magic.link.js.map +1 -0
- package/dist/js/email/templates/maintenance.d.ts +4 -0
- package/dist/js/email/templates/maintenance.d.ts.map +1 -0
- package/dist/js/email/templates/maintenance.js +132 -0
- package/dist/js/email/templates/maintenance.js.map +1 -0
- package/dist/js/email/templates/member.added.d.ts +4 -0
- package/dist/js/email/templates/member.added.d.ts.map +1 -0
- package/dist/js/email/templates/member.added.js +122 -0
- package/dist/js/email/templates/member.added.js.map +1 -0
- package/dist/js/email/templates/member.removed.d.ts +4 -0
- package/dist/js/email/templates/member.removed.d.ts.map +1 -0
- package/dist/js/email/templates/member.removed.js +122 -0
- package/dist/js/email/templates/member.removed.js.map +1 -0
- package/dist/js/email/templates/mention.d.ts +4 -0
- package/dist/js/email/templates/mention.d.ts.map +1 -0
- package/dist/js/email/templates/mention.js +134 -0
- package/dist/js/email/templates/mention.js.map +1 -0
- package/dist/js/email/templates/monthly.report.d.ts +4 -0
- package/dist/js/email/templates/monthly.report.d.ts.map +1 -0
- package/dist/js/email/templates/monthly.report.js +143 -0
- package/dist/js/email/templates/monthly.report.js.map +1 -0
- package/dist/js/email/templates/new.comment.d.ts +4 -0
- package/dist/js/email/templates/new.comment.d.ts.map +1 -0
- package/dist/js/email/templates/new.comment.js +134 -0
- package/dist/js/email/templates/new.comment.js.map +1 -0
- package/dist/js/email/templates/new.device.login.d.ts +4 -0
- package/dist/js/email/templates/new.device.login.d.ts.map +1 -0
- package/dist/js/email/templates/new.device.login.js +147 -0
- package/dist/js/email/templates/new.device.login.js.map +1 -0
- package/dist/js/email/templates/new.message.d.ts +4 -0
- package/dist/js/email/templates/new.message.d.ts.map +1 -0
- package/dist/js/email/templates/new.message.js +134 -0
- package/dist/js/email/templates/new.message.js.map +1 -0
- package/dist/js/email/templates/notification.d.ts +4 -0
- package/dist/js/email/templates/notification.d.ts.map +1 -0
- package/dist/js/email/templates/notification.js +122 -0
- package/dist/js/email/templates/notification.js.map +1 -0
- package/dist/js/email/templates/order.cancelled.d.ts +4 -0
- package/dist/js/email/templates/order.cancelled.d.ts.map +1 -0
- package/dist/js/email/templates/order.cancelled.js +132 -0
- package/dist/js/email/templates/order.cancelled.js.map +1 -0
- package/dist/js/email/templates/order.confirmation.d.ts +4 -0
- package/dist/js/email/templates/order.confirmation.d.ts.map +1 -0
- package/dist/js/email/templates/order.confirmation.js +143 -0
- package/dist/js/email/templates/order.confirmation.js.map +1 -0
- package/dist/js/email/templates/order.delivered.d.ts +4 -0
- package/dist/js/email/templates/order.delivered.d.ts.map +1 -0
- package/dist/js/email/templates/order.delivered.js +122 -0
- package/dist/js/email/templates/order.delivered.js.map +1 -0
- package/dist/js/email/templates/order.shipped.d.ts +4 -0
- package/dist/js/email/templates/order.shipped.d.ts.map +1 -0
- package/dist/js/email/templates/order.shipped.js +143 -0
- package/dist/js/email/templates/order.shipped.js.map +1 -0
- package/dist/js/email/templates/organization.invitation.d.ts +4 -0
- package/dist/js/email/templates/organization.invitation.d.ts.map +1 -0
- package/dist/js/email/templates/organization.invitation.js +126 -0
- package/dist/js/email/templates/organization.invitation.js.map +1 -0
- package/dist/js/email/templates/otp.verfication.d.ts +4 -0
- package/dist/js/email/templates/otp.verfication.d.ts.map +1 -0
- package/dist/js/email/templates/otp.verfication.js +117 -0
- package/dist/js/email/templates/otp.verfication.js.map +1 -0
- package/dist/js/email/templates/password.changed.d.ts +4 -0
- package/dist/js/email/templates/password.changed.d.ts.map +1 -0
- package/dist/js/email/templates/password.changed.js +155 -0
- package/dist/js/email/templates/password.changed.js.map +1 -0
- package/dist/js/email/templates/password.expiring.d.ts +4 -0
- package/dist/js/email/templates/password.expiring.d.ts.map +1 -0
- package/dist/js/email/templates/password.expiring.js +122 -0
- package/dist/js/email/templates/password.expiring.js.map +1 -0
- package/dist/js/email/templates/password.reset.d.ts +4 -0
- package/dist/js/email/templates/password.reset.d.ts.map +1 -0
- package/dist/js/email/templates/password.reset.js +138 -0
- package/dist/js/email/templates/password.reset.js.map +1 -0
- package/dist/js/email/templates/payment.failed.d.ts +4 -0
- package/dist/js/email/templates/payment.failed.d.ts.map +1 -0
- package/dist/js/email/templates/payment.failed.js +155 -0
- package/dist/js/email/templates/payment.failed.js.map +1 -0
- package/dist/js/email/templates/payment.success.d.ts +4 -0
- package/dist/js/email/templates/payment.success.d.ts.map +1 -0
- package/dist/js/email/templates/payment.success.js +143 -0
- package/dist/js/email/templates/payment.success.js.map +1 -0
- package/dist/js/email/templates/receipt.d.ts +4 -0
- package/dist/js/email/templates/receipt.d.ts.map +1 -0
- package/dist/js/email/templates/receipt.js +147 -0
- package/dist/js/email/templates/receipt.js.map +1 -0
- package/dist/js/email/templates/reminder.d.ts +4 -0
- package/dist/js/email/templates/reminder.d.ts.map +1 -0
- package/dist/js/email/templates/reminder.js +122 -0
- package/dist/js/email/templates/reminder.js.map +1 -0
- package/dist/js/email/templates/security.alert.d.ts +4 -0
- package/dist/js/email/templates/security.alert.d.ts.map +1 -0
- package/dist/js/email/templates/security.alert.js +155 -0
- package/dist/js/email/templates/security.alert.js.map +1 -0
- package/dist/js/email/templates/subscription.cancelled.d.ts +4 -0
- package/dist/js/email/templates/subscription.cancelled.d.ts.map +1 -0
- package/dist/js/email/templates/subscription.cancelled.js +122 -0
- package/dist/js/email/templates/subscription.cancelled.js.map +1 -0
- package/dist/js/email/templates/subscription.created.d.ts +4 -0
- package/dist/js/email/templates/subscription.created.d.ts.map +1 -0
- package/dist/js/email/templates/subscription.created.js +143 -0
- package/dist/js/email/templates/subscription.created.js.map +1 -0
- package/dist/js/email/templates/subscription.renewed.d.ts +4 -0
- package/dist/js/email/templates/subscription.renewed.d.ts.map +1 -0
- package/dist/js/email/templates/subscription.renewed.js +143 -0
- package/dist/js/email/templates/subscription.renewed.js.map +1 -0
- package/dist/js/email/templates/support.ticket.d.ts +4 -0
- package/dist/js/email/templates/support.ticket.d.ts.map +1 -0
- package/dist/js/email/templates/support.ticket.js +143 -0
- package/dist/js/email/templates/support.ticket.js.map +1 -0
- package/dist/js/email/templates/team.invitation.d.ts +4 -0
- package/dist/js/email/templates/team.invitation.d.ts.map +1 -0
- package/dist/js/email/templates/team.invitation.js +126 -0
- package/dist/js/email/templates/team.invitation.js.map +1 -0
- package/dist/js/email/templates/trial.ending.d.ts +4 -0
- package/dist/js/email/templates/trial.ending.d.ts.map +1 -0
- package/dist/js/email/templates/trial.ending.js +122 -0
- package/dist/js/email/templates/trial.ending.js.map +1 -0
- package/dist/js/email/templates/two.factor.code.d.ts +4 -0
- package/dist/js/email/templates/two.factor.code.d.ts.map +1 -0
- package/dist/js/email/templates/two.factor.code.js +121 -0
- package/dist/js/email/templates/two.factor.code.js.map +1 -0
- package/dist/js/email/templates/verify.email.d.ts +4 -0
- package/dist/js/email/templates/verify.email.d.ts.map +1 -0
- package/dist/js/email/templates/verify.email.js +126 -0
- package/dist/js/email/templates/verify.email.js.map +1 -0
- package/dist/js/email/templates/weekly.report.d.ts +4 -0
- package/dist/js/email/templates/weekly.report.d.ts.map +1 -0
- package/dist/js/email/templates/weekly.report.js +143 -0
- package/dist/js/email/templates/weekly.report.js.map +1 -0
- package/dist/js/email/templates/welcome.d.ts +4 -0
- package/dist/js/email/templates/welcome.d.ts.map +1 -0
- package/dist/js/email/templates/welcome.email.d.ts +4 -0
- package/dist/js/email/templates/welcome.email.d.ts.map +1 -0
- package/dist/js/email/templates/welcome.email.js +417 -0
- package/dist/js/email/templates/welcome.email.js.map +1 -0
- package/dist/js/email/templates/welcome.js +122 -0
- package/dist/js/email/templates/welcome.js.map +1 -0
- package/dist/js/email/utils/auto-fields.d.ts +68 -0
- package/dist/js/email/utils/auto-fields.d.ts.map +1 -0
- package/dist/js/email/utils/auto-fields.js +232 -0
- package/dist/js/email/utils/auto-fields.js.map +1 -0
- package/dist/js/email/utils/auto-fields.type.d.ts +18 -0
- package/dist/js/email/utils/auto-fields.type.d.ts.map +1 -0
- package/dist/js/email/utils/auto-fields.type.js +2 -0
- package/dist/js/email/utils/auto-fields.type.js.map +1 -0
- package/dist/js/email/utils/emailTemplates.d.ts +2 -0
- package/dist/js/email/utils/emailTemplates.d.ts.map +1 -0
- package/dist/js/email/utils/emailTemplates.js +49 -0
- package/dist/js/email/utils/emailTemplates.js.map +1 -0
- package/dist/js/email/utils/handleEmailTemplateConfig.d.ts +4 -0
- package/dist/js/email/utils/handleEmailTemplateConfig.d.ts.map +1 -0
- package/dist/js/email/utils/handleEmailTemplateConfig.js +47 -0
- package/dist/js/email/utils/handleEmailTemplateConfig.js.map +1 -0
- package/dist/js/health/health.collection.js +11 -11
- package/dist/js/health/health.collection.js.map +1 -1
- package/dist/js/health/index.d.ts +1 -1
- package/dist/js/health/index.d.ts.map +1 -1
- package/dist/js/health/index.js +2 -2
- package/dist/js/health/index.js.map +1 -1
- package/dist/js/lib/OAuthProviders.js +1 -1
- package/dist/js/lib/OAuthProviders.js.map +1 -1
- package/dist/js/lib/db.js +1 -0
- package/dist/js/lib/db.js.map +1 -1
- package/dist/js/lib/model.factory.d.ts +10 -1
- package/dist/js/lib/model.factory.d.ts.map +1 -1
- package/dist/js/lib/model.factory.js +18 -4
- package/dist/js/lib/model.factory.js.map +1 -1
- package/dist/js/lib/model.registry.js +1 -0
- package/dist/js/lib/model.registry.js.map +1 -1
- package/dist/js/lib/mongoose.fields.js +20 -0
- package/dist/js/lib/mongoose.fields.js.map +1 -1
- package/dist/js/lib/schema.builder.js +3 -0
- package/dist/js/lib/schema.builder.js.map +1 -1
- package/dist/js/lib/unified.fields.d.ts +5 -0
- package/dist/js/lib/unified.fields.d.ts.map +1 -1
- package/dist/js/lib/unified.fields.js +56 -0
- package/dist/js/lib/unified.fields.js.map +1 -1
- package/dist/js/lib/unified.types.d.ts +3 -0
- package/dist/js/lib/unified.types.d.ts.map +1 -1
- package/dist/js/lib/zod.factory.d.ts +13 -0
- package/dist/js/lib/zod.factory.d.ts.map +1 -1
- package/dist/js/lib/zod.factory.js +14 -0
- package/dist/js/lib/zod.factory.js.map +1 -1
- package/dist/js/lib/zod.fields.d.ts +55 -0
- package/dist/js/lib/zod.fields.d.ts.map +1 -1
- package/dist/js/lib/zod.fields.js +56 -0
- package/dist/js/lib/zod.fields.js.map +1 -1
- package/dist/js/middleware/error.middleware.js +1 -0
- package/dist/js/middleware/error.middleware.js.map +1 -1
- package/dist/js/middleware/multer.middleware.d.ts +1 -1
- package/dist/js/middleware/multer.middleware.d.ts.map +1 -1
- package/dist/js/middleware/multer.middleware.js +22 -7
- package/dist/js/middleware/multer.middleware.js.map +1 -1
- package/dist/js/terminal/appInfo.js +11 -11
- package/dist/js/terminal/appInfo.js.map +1 -1
- package/dist/js/terminal/logger.js +1 -1
- package/dist/js/terminal/logger.js.map +1 -1
- package/dist/js/types/ActionHandler.d.ts +82 -14
- package/dist/js/types/ActionHandler.d.ts.map +1 -1
- package/dist/js/types/Collection.d.ts +104 -15
- package/dist/js/types/Collection.d.ts.map +1 -1
- package/dist/js/types/Constructor.d.ts +4 -2
- package/dist/js/types/Constructor.d.ts.map +1 -1
- package/dist/js/types/EmailActionTemplate.d.ts +52 -0
- package/dist/js/types/EmailActionTemplate.d.ts.map +1 -0
- package/dist/js/types/EmailActionTemplate.js +2 -0
- package/dist/js/types/EmailActionTemplate.js.map +1 -0
- package/dist/js/types/Route.d.ts +131 -14
- package/dist/js/types/Route.d.ts.map +1 -1
- package/dist/js/types/Routepath.js +15 -0
- package/dist/js/types/Routepath.js.map +1 -1
- package/dist/js/types/email/account.created.type.d.ts +10 -0
- package/dist/js/types/email/account.created.type.d.ts.map +1 -0
- package/dist/js/types/email/account.created.type.js +2 -0
- package/dist/js/types/email/account.created.type.js.map +1 -0
- package/dist/js/types/email/account.deleted.type.d.ts +10 -0
- package/dist/js/types/email/account.deleted.type.d.ts.map +1 -0
- package/dist/js/types/email/account.deleted.type.js +2 -0
- package/dist/js/types/email/account.deleted.type.js.map +1 -0
- package/dist/js/types/email/account.updated.type.d.ts +12 -0
- package/dist/js/types/email/account.updated.type.d.ts.map +1 -0
- package/dist/js/types/email/account.updated.type.js +2 -0
- package/dist/js/types/email/account.updated.type.js.map +1 -0
- package/dist/js/types/email/announcement.type.d.ts +13 -0
- package/dist/js/types/email/announcement.type.d.ts.map +1 -0
- package/dist/js/types/email/announcement.type.js +2 -0
- package/dist/js/types/email/announcement.type.js.map +1 -0
- package/dist/js/types/email/api.key.created.type.d.ts +14 -0
- package/dist/js/types/email/api.key.created.type.d.ts.map +1 -0
- package/dist/js/types/email/api.key.created.type.js +2 -0
- package/dist/js/types/email/api.key.created.type.js.map +1 -0
- package/dist/js/types/email/api.key.revoked.type.d.ts +14 -0
- package/dist/js/types/email/api.key.revoked.type.d.ts.map +1 -0
- package/dist/js/types/email/api.key.revoked.type.js +2 -0
- package/dist/js/types/email/api.key.revoked.type.js.map +1 -0
- package/dist/js/types/email/contact.form.type.d.ts +11 -0
- package/dist/js/types/email/contact.form.type.d.ts.map +1 -0
- package/dist/js/types/email/contact.form.type.js +2 -0
- package/dist/js/types/email/contact.form.type.js.map +1 -0
- package/dist/js/types/email/daily.report.type.d.ts +14 -0
- package/dist/js/types/email/daily.report.type.d.ts.map +1 -0
- package/dist/js/types/email/daily.report.type.js +2 -0
- package/dist/js/types/email/daily.report.type.js.map +1 -0
- package/dist/js/types/email/email.changed.type.d.ts +12 -0
- package/dist/js/types/email/email.changed.type.d.ts.map +1 -0
- package/dist/js/types/email/email.changed.type.js +2 -0
- package/dist/js/types/email/email.changed.type.js.map +1 -0
- package/dist/js/types/email/feedback.type.d.ts +11 -0
- package/dist/js/types/email/feedback.type.d.ts.map +1 -0
- package/dist/js/types/email/feedback.type.js +2 -0
- package/dist/js/types/email/feedback.type.js.map +1 -0
- package/dist/js/types/email/index.d.ts +46 -0
- package/dist/js/types/email/index.d.ts.map +1 -0
- package/dist/js/types/email/index.js +2 -0
- package/dist/js/types/email/index.js.map +1 -0
- package/dist/js/types/email/invoice.type.d.ts +14 -0
- package/dist/js/types/email/invoice.type.d.ts.map +1 -0
- package/dist/js/types/email/invoice.type.js +2 -0
- package/dist/js/types/email/invoice.type.js.map +1 -0
- package/dist/js/types/email/login.alert.type.d.ts +12 -0
- package/dist/js/types/email/login.alert.type.d.ts.map +1 -0
- package/dist/js/types/email/login.alert.type.js +2 -0
- package/dist/js/types/email/login.alert.type.js.map +1 -0
- package/dist/js/types/email/magic.link.type.d.ts +11 -0
- package/dist/js/types/email/magic.link.type.d.ts.map +1 -0
- package/dist/js/types/email/magic.link.type.js +2 -0
- package/dist/js/types/email/magic.link.type.js.map +1 -0
- package/dist/js/types/email/maintenance.type.d.ts +13 -0
- package/dist/js/types/email/maintenance.type.d.ts.map +1 -0
- package/dist/js/types/email/maintenance.type.js +2 -0
- package/dist/js/types/email/maintenance.type.js.map +1 -0
- package/dist/js/types/email/member.added.type.d.ts +14 -0
- package/dist/js/types/email/member.added.type.d.ts.map +1 -0
- package/dist/js/types/email/member.added.type.js +2 -0
- package/dist/js/types/email/member.added.type.js.map +1 -0
- package/dist/js/types/email/member.removed.type.d.ts +14 -0
- package/dist/js/types/email/member.removed.type.d.ts.map +1 -0
- package/dist/js/types/email/member.removed.type.js +2 -0
- package/dist/js/types/email/member.removed.type.js.map +1 -0
- package/dist/js/types/email/mention.type.d.ts +12 -0
- package/dist/js/types/email/mention.type.d.ts.map +1 -0
- package/dist/js/types/email/mention.type.js +2 -0
- package/dist/js/types/email/mention.type.js.map +1 -0
- package/dist/js/types/email/monthly.report.type.d.ts +14 -0
- package/dist/js/types/email/monthly.report.type.d.ts.map +1 -0
- package/dist/js/types/email/monthly.report.type.js +2 -0
- package/dist/js/types/email/monthly.report.type.js.map +1 -0
- package/dist/js/types/email/new.comment.type.d.ts +12 -0
- package/dist/js/types/email/new.comment.type.d.ts.map +1 -0
- package/dist/js/types/email/new.comment.type.js +2 -0
- package/dist/js/types/email/new.comment.type.js.map +1 -0
- package/dist/js/types/email/new.device.login.type.d.ts +11 -0
- package/dist/js/types/email/new.device.login.type.d.ts.map +1 -0
- package/dist/js/types/email/new.device.login.type.js +2 -0
- package/dist/js/types/email/new.device.login.type.js.map +1 -0
- package/dist/js/types/email/new.message.type.d.ts +11 -0
- package/dist/js/types/email/new.message.type.d.ts.map +1 -0
- package/dist/js/types/email/new.message.type.js +2 -0
- package/dist/js/types/email/new.message.type.js.map +1 -0
- package/dist/js/types/email/notification.type.d.ts +13 -0
- package/dist/js/types/email/notification.type.d.ts.map +1 -0
- package/dist/js/types/email/notification.type.js +2 -0
- package/dist/js/types/email/notification.type.js.map +1 -0
- package/dist/js/types/email/order.cancelled.type.d.ts +12 -0
- package/dist/js/types/email/order.cancelled.type.d.ts.map +1 -0
- package/dist/js/types/email/order.cancelled.type.js +2 -0
- package/dist/js/types/email/order.cancelled.type.js.map +1 -0
- package/dist/js/types/email/order.confirmation.type.d.ts +13 -0
- package/dist/js/types/email/order.confirmation.type.d.ts.map +1 -0
- package/dist/js/types/email/order.confirmation.type.js +2 -0
- package/dist/js/types/email/order.confirmation.type.js.map +1 -0
- package/dist/js/types/email/order.delivered.type.d.ts +12 -0
- package/dist/js/types/email/order.delivered.type.d.ts.map +1 -0
- package/dist/js/types/email/order.delivered.type.js +2 -0
- package/dist/js/types/email/order.delivered.type.js.map +1 -0
- package/dist/js/types/email/order.shipped.type.d.ts +14 -0
- package/dist/js/types/email/order.shipped.type.d.ts.map +1 -0
- package/dist/js/types/email/order.shipped.type.js +2 -0
- package/dist/js/types/email/order.shipped.type.js.map +1 -0
- package/dist/js/types/email/organization.invitation.type.d.ts +13 -0
- package/dist/js/types/email/organization.invitation.type.d.ts.map +1 -0
- package/dist/js/types/email/organization.invitation.type.js +2 -0
- package/dist/js/types/email/organization.invitation.type.js.map +1 -0
- package/dist/js/types/email/otp.verification.type.d.ts +11 -0
- package/dist/js/types/email/otp.verification.type.d.ts.map +1 -0
- package/dist/js/types/email/otp.verification.type.js +2 -0
- package/dist/js/types/email/otp.verification.type.js.map +1 -0
- package/dist/js/types/email/password.changed.type.d.ts +12 -0
- package/dist/js/types/email/password.changed.type.d.ts.map +1 -0
- package/dist/js/types/email/password.changed.type.js +2 -0
- package/dist/js/types/email/password.changed.type.js.map +1 -0
- package/dist/js/types/email/password.expiring.type.d.ts +12 -0
- package/dist/js/types/email/password.expiring.type.d.ts.map +1 -0
- package/dist/js/types/email/password.expiring.type.js +2 -0
- package/dist/js/types/email/password.expiring.type.js.map +1 -0
- package/dist/js/types/email/password.reset.type.d.ts +11 -0
- package/dist/js/types/email/password.reset.type.d.ts.map +1 -0
- package/dist/js/types/email/password.reset.type.js +2 -0
- package/dist/js/types/email/password.reset.type.js.map +1 -0
- package/dist/js/types/email/payment.failed.type.d.ts +14 -0
- package/dist/js/types/email/payment.failed.type.d.ts.map +1 -0
- package/dist/js/types/email/payment.failed.type.js +2 -0
- package/dist/js/types/email/payment.failed.type.js.map +1 -0
- package/dist/js/types/email/payment.success.type.d.ts +13 -0
- package/dist/js/types/email/payment.success.type.d.ts.map +1 -0
- package/dist/js/types/email/payment.success.type.js +2 -0
- package/dist/js/types/email/payment.success.type.js.map +1 -0
- package/dist/js/types/email/receipt.type.d.ts +14 -0
- package/dist/js/types/email/receipt.type.d.ts.map +1 -0
- package/dist/js/types/email/receipt.type.js +2 -0
- package/dist/js/types/email/receipt.type.js.map +1 -0
- package/dist/js/types/email/reminder.type.d.ts +12 -0
- package/dist/js/types/email/reminder.type.d.ts.map +1 -0
- package/dist/js/types/email/reminder.type.js +2 -0
- package/dist/js/types/email/reminder.type.js.map +1 -0
- package/dist/js/types/email/security.alert.type.d.ts +12 -0
- package/dist/js/types/email/security.alert.type.d.ts.map +1 -0
- package/dist/js/types/email/security.alert.type.js +2 -0
- package/dist/js/types/email/security.alert.type.js.map +1 -0
- package/dist/js/types/email/static-config.type.d.ts +8 -0
- package/dist/js/types/email/static-config.type.d.ts.map +1 -0
- package/dist/js/types/email/static-config.type.js +2 -0
- package/dist/js/types/email/static-config.type.js.map +1 -0
- package/dist/js/types/email/subscription.cancelled.type.d.ts +12 -0
- package/dist/js/types/email/subscription.cancelled.type.d.ts.map +1 -0
- package/dist/js/types/email/subscription.cancelled.type.js +2 -0
- package/dist/js/types/email/subscription.cancelled.type.js.map +1 -0
- package/dist/js/types/email/subscription.created.type.d.ts +13 -0
- package/dist/js/types/email/subscription.created.type.d.ts.map +1 -0
- package/dist/js/types/email/subscription.created.type.js +2 -0
- package/dist/js/types/email/subscription.created.type.js.map +1 -0
- package/dist/js/types/email/subscription.renewed.type.d.ts +14 -0
- package/dist/js/types/email/subscription.renewed.type.d.ts.map +1 -0
- package/dist/js/types/email/subscription.renewed.type.js +2 -0
- package/dist/js/types/email/subscription.renewed.type.js.map +1 -0
- package/dist/js/types/email/support.ticket.type.d.ts +14 -0
- package/dist/js/types/email/support.ticket.type.d.ts.map +1 -0
- package/dist/js/types/email/support.ticket.type.js +2 -0
- package/dist/js/types/email/support.ticket.type.js.map +1 -0
- package/dist/js/types/email/team.invitation.type.d.ts +13 -0
- package/dist/js/types/email/team.invitation.type.d.ts.map +1 -0
- package/dist/js/types/email/team.invitation.type.js +2 -0
- package/dist/js/types/email/team.invitation.type.js.map +1 -0
- package/dist/js/types/email/trial.ending.type.d.ts +13 -0
- package/dist/js/types/email/trial.ending.type.d.ts.map +1 -0
- package/dist/js/types/email/trial.ending.type.js +2 -0
- package/dist/js/types/email/trial.ending.type.js.map +1 -0
- package/dist/js/types/email/two.factor.code.type.d.ts +11 -0
- package/dist/js/types/email/two.factor.code.type.d.ts.map +1 -0
- package/dist/js/types/email/two.factor.code.type.js +2 -0
- package/dist/js/types/email/two.factor.code.type.js.map +1 -0
- package/dist/js/types/email/verify.email.type.d.ts +11 -0
- package/dist/js/types/email/verify.email.type.d.ts.map +1 -0
- package/dist/js/types/email/verify.email.type.js +2 -0
- package/dist/js/types/email/verify.email.type.js.map +1 -0
- package/dist/js/types/email/weekly.report.type.d.ts +14 -0
- package/dist/js/types/email/weekly.report.type.d.ts.map +1 -0
- package/dist/js/types/email/weekly.report.type.js +2 -0
- package/dist/js/types/email/weekly.report.type.js.map +1 -0
- package/dist/js/types/email/welcome.type.d.ts +10 -0
- package/dist/js/types/email/welcome.type.d.ts.map +1 -0
- package/dist/js/types/email/welcome.type.js +2 -0
- package/dist/js/types/email/welcome.type.js.map +1 -0
- package/dist/js/types/upload.d.ts +57 -5
- package/dist/js/types/upload.d.ts.map +1 -1
- package/dist/js/upload/create.js +9 -6
- package/dist/js/upload/create.js.map +1 -1
- package/dist/js/upload/delete.js +21 -21
- package/dist/js/upload/delete.js.map +1 -1
- package/dist/js/upload/update.js +21 -21
- package/dist/js/upload/update.js.map +1 -1
- package/dist/js/utils/getErrorDetail.d.ts +2 -2
- package/dist/js/utils/getErrorDetail.d.ts.map +1 -1
- package/dist/js/utils/getErrorDetail.js +2 -2
- package/dist/js/utils/getErrorDetail.js.map +1 -1
- package/dist/js/utils/getModel.d.ts +3 -3
- package/dist/js/utils/getModel.d.ts.map +1 -1
- package/dist/js/utils/getModel.js +6 -6
- package/dist/js/utils/getModel.js.map +1 -1
- package/dist/js/utils/libsodium.js +6 -0
- package/dist/js/utils/libsodium.js.map +1 -1
- package/dist/js/utils/otpPurposes.js +38 -0
- package/dist/js/utils/otpPurposes.js.map +1 -1
- package/dist/js/utils/sanitize.js +23 -2
- package/dist/js/utils/sanitize.js.map +1 -1
- package/dist/js/utils/saveRefreshToken.js +2 -1
- package/dist/js/utils/saveRefreshToken.js.map +1 -1
- package/dist/js/utils/validate.js +5 -3
- package/dist/js/utils/validate.js.map +1 -1
- package/dist/js/utils/validationKeyError.d.ts +1 -1
- package/dist/js/utils/validationKeyError.d.ts.map +1 -1
- package/dist/js/utils/validationKeyError.js +13 -8
- package/dist/js/utils/validationKeyError.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +29 -29
|
@@ -6,14 +6,17 @@ import getOTPModel from "./getOTPModel.js";
|
|
|
6
6
|
import verifyCredentials from "./verifyCredentials.js";
|
|
7
7
|
import getErrorDetail from "../../utils/getErrorDetail.js";
|
|
8
8
|
import { getEnvs } from "../../config/envs.js";
|
|
9
|
-
const createOTPUser = async ({ body, res, purpose,
|
|
9
|
+
const createOTPUser = async ({ body, res, purpose, route, model, routeObj, }) => {
|
|
10
|
+
// get dynamic auth field keys
|
|
10
11
|
const { authConfigObj } = getEnvs();
|
|
11
12
|
const { fieldsObj } = authConfigObj;
|
|
12
13
|
const emailKey = fieldsObj?.email;
|
|
13
14
|
const passwordKey = fieldsObj?.password;
|
|
14
15
|
const otpKey = fieldsObj?.otp;
|
|
15
16
|
const purposeKey = fieldsObj?.purpose;
|
|
17
|
+
// otp model
|
|
16
18
|
const OTPModel = getOTPModel(routeObj);
|
|
19
|
+
// if no purpose
|
|
17
20
|
if (!purpose)
|
|
18
21
|
throw new AppError({
|
|
19
22
|
message: `${purposeKey} is required.`,
|
|
@@ -25,6 +28,7 @@ const createOTPUser = async ({ body, res, purpose, routeName, modelName, routeOb
|
|
|
25
28
|
path: routeObj.path,
|
|
26
29
|
},
|
|
27
30
|
});
|
|
31
|
+
// if already requested otp
|
|
28
32
|
const existingOTPs = await OTPModel.find({
|
|
29
33
|
[emailKey]: body[emailKey],
|
|
30
34
|
});
|
|
@@ -37,23 +41,27 @@ const createOTPUser = async ({ body, res, purpose, routeName, modelName, routeOb
|
|
|
37
41
|
details: getErrorDetail(routeObj),
|
|
38
42
|
});
|
|
39
43
|
}
|
|
44
|
+
// if login - mode: otp
|
|
40
45
|
if (purpose === "login")
|
|
41
46
|
await verifyCredentials({
|
|
42
|
-
|
|
47
|
+
model,
|
|
43
48
|
body,
|
|
44
|
-
|
|
49
|
+
route,
|
|
45
50
|
routeObj,
|
|
46
51
|
});
|
|
52
|
+
// send otp + handle hashing
|
|
47
53
|
const { OTP, otpExpiry } = await sendOTP(body[emailKey], routeObj);
|
|
48
54
|
const hashedOTP = await hash(OTP, routeObj);
|
|
49
55
|
if (body?.[passwordKey])
|
|
50
56
|
body[passwordKey] = await hash(body[passwordKey], routeObj);
|
|
57
|
+
// create otp
|
|
51
58
|
await OTPModel.create({
|
|
52
59
|
...body,
|
|
53
60
|
[otpKey]: hashedOTP,
|
|
54
61
|
otpExpiry,
|
|
55
62
|
[purposeKey]: purpose,
|
|
56
63
|
});
|
|
64
|
+
// send response
|
|
57
65
|
appResponse({
|
|
58
66
|
res,
|
|
59
67
|
message: "OTP sent successfully!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOTPUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPUser.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,aAAa,GAAG,KAAK,EAAE,EAC3B,IAAI,EACJ,GAAG,EACH,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"createOTPUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createOTPUser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Response, Request } from "express";
|
|
2
2
|
import type { Route } from "../../types/Collection.js";
|
|
3
|
-
declare const createUser: ({ body,
|
|
3
|
+
declare const createUser: ({ body, model, res, route, routeObj, req, }: {
|
|
4
4
|
body: any;
|
|
5
|
-
|
|
5
|
+
model: string;
|
|
6
6
|
res: Response;
|
|
7
|
-
|
|
7
|
+
route: string;
|
|
8
8
|
routeObj: Route;
|
|
9
9
|
req: Request;
|
|
10
10
|
}) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,UAAU,GAAU,
|
|
1
|
+
{"version":3,"file":"createUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AASjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,UAAU,GAAU,6CAOvB;IACD,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd,kBAuFA,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -9,16 +9,20 @@ import { sendCookie } from "./sendCookie.js";
|
|
|
9
9
|
import { getEnvs } from "../../config/envs.js";
|
|
10
10
|
import tokenInfo from "./UAParser.js";
|
|
11
11
|
import saveRefreshToken from "../../utils/saveRefreshToken.js";
|
|
12
|
-
const createUser = async ({ body,
|
|
12
|
+
const createUser = async ({ body, model, res, route, routeObj, req, }) => {
|
|
13
|
+
// get dynamic auth field keys
|
|
13
14
|
const { authConfigObj } = getEnvs();
|
|
14
15
|
const { fieldsObj } = authConfigObj;
|
|
15
16
|
const emailKey = fieldsObj?.email;
|
|
16
17
|
const passwordKey = fieldsObj?.password;
|
|
17
18
|
const otpKey = fieldsObj?.otp;
|
|
18
19
|
const purposeKey = fieldsObj?.purpose;
|
|
19
|
-
|
|
20
|
+
// models
|
|
21
|
+
const Model = getModel({ model, route, routeObj });
|
|
20
22
|
const OTPModel = getOTPModel(routeObj);
|
|
23
|
+
// token info
|
|
21
24
|
const { deviceType, familyId, jti, deviceName, ipAddress, os } = tokenInfo(req);
|
|
25
|
+
// isVerified - mode:otp
|
|
22
26
|
let isVerified = false;
|
|
23
27
|
let isOTPUser = null;
|
|
24
28
|
if ("isVerified" in body)
|
|
@@ -27,6 +31,7 @@ const createUser = async ({ body, modelName, res, routeName, routeObj, req, }) =
|
|
|
27
31
|
purpose: "signup",
|
|
28
32
|
routeObj,
|
|
29
33
|
}));
|
|
34
|
+
// delete body._id | hash password
|
|
30
35
|
if (body instanceof mongoose.Document) {
|
|
31
36
|
body = body.toObject();
|
|
32
37
|
body.role = "user";
|
|
@@ -36,10 +41,13 @@ const createUser = async ({ body, modelName, res, routeName, routeObj, req, }) =
|
|
|
36
41
|
body[passwordKey] = await hash(body[passwordKey], routeObj);
|
|
37
42
|
body.role = "user";
|
|
38
43
|
}
|
|
44
|
+
// new user
|
|
39
45
|
const newUser = await Model.create(body);
|
|
46
|
+
// if from otp, remove it
|
|
40
47
|
if (isVerified)
|
|
41
48
|
await OTPModel.deleteOne({ _id: isOTPUser._id });
|
|
42
49
|
const { _id } = newUser.toObject();
|
|
50
|
+
// send cookie
|
|
43
51
|
const { accessToken, refreshToken, refreshTokenAge } = sendCookie({
|
|
44
52
|
res,
|
|
45
53
|
accessTokenName: authConfigObj.accessTokenName,
|
|
@@ -51,6 +59,7 @@ const createUser = async ({ body, modelName, res, routeName, routeObj, req, }) =
|
|
|
51
59
|
familyId,
|
|
52
60
|
jti,
|
|
53
61
|
});
|
|
62
|
+
// save refreshToken
|
|
54
63
|
const hashedToken = await hash(refreshToken);
|
|
55
64
|
await saveRefreshToken({
|
|
56
65
|
hashedToken,
|
|
@@ -64,6 +73,7 @@ const createUser = async ({ body, modelName, res, routeName, routeObj, req, }) =
|
|
|
64
73
|
os,
|
|
65
74
|
ipAddress,
|
|
66
75
|
});
|
|
76
|
+
// send response
|
|
67
77
|
appResponse({
|
|
68
78
|
res,
|
|
69
79
|
message: "Your account has been created successfully!",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAE/D,MAAM,UAAU,GAAG,KAAK,EAAE,EACxB,IAAI,EACJ,
|
|
1
|
+
{"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/createUser.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@ import getModel from "../../utils/getModel.js";
|
|
|
2
2
|
import AppError from "../../utils/AppError.js";
|
|
3
3
|
import getErrorDetail from "../../utils/getErrorDetail.js";
|
|
4
4
|
const findRefreshToken = async (owner, jti, routeObj) => {
|
|
5
|
-
|
|
5
|
+
// Model
|
|
6
|
+
const RefreshToken = getModel({ model: "RefreshToken", routeObj });
|
|
7
|
+
// find same device tokens
|
|
6
8
|
const foundRefreshToken = await RefreshToken.findOne({
|
|
7
9
|
owner,
|
|
8
10
|
jti,
|
|
9
11
|
});
|
|
12
|
+
// token not found
|
|
10
13
|
if (!foundRefreshToken)
|
|
11
14
|
throw new AppError({
|
|
12
15
|
message: "Refresh token session was not found",
|
|
@@ -15,6 +18,7 @@ const findRefreshToken = async (owner, jti, routeObj) => {
|
|
|
15
18
|
details: getErrorDetail(routeObj),
|
|
16
19
|
statusCode: 401,
|
|
17
20
|
});
|
|
21
|
+
// if token is revoked
|
|
18
22
|
if (foundRefreshToken.revoked)
|
|
19
23
|
throw new AppError({
|
|
20
24
|
message: "Refresh token has been revoked",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findRefreshToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshToken.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAa,EACb,GAAW,EACX,QAAe,EACf,EAAE;
|
|
1
|
+
{"version":3,"file":"findRefreshToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshToken.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,KAAa,EACb,GAAW,EACX,QAAe,EACf,EAAE;IACF,QAAQ;IACR,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnE,0BAA0B;IAC1B,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC;QACnD,KAAK;QACL,GAAG;KACJ,CAAC,CAAC;IAEH,kBAAkB;IAClB,IAAI,CAAC,iBAAiB;QACpB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,qCAAqC;YAC9C,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,uDAAuD;YAC7D,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IAEL,sBAAsB;IACtB,IAAI,iBAAiB,CAAC,OAAO;QAC3B,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,gCAAgC;YACzC,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uDAAuD;YAC7D,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;IAEL,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AACF,eAAe,gBAAgB,CAAC"}
|
|
@@ -5,6 +5,7 @@ import getErrorDetail from "../../utils/getErrorDetail.js";
|
|
|
5
5
|
const findRefreshTokenUser = async (id, routeObj) => {
|
|
6
6
|
const { userModelName } = getEnvs();
|
|
7
7
|
const user = await findUser(id, routeObj, userModelName);
|
|
8
|
+
// if user not found
|
|
8
9
|
if (!user)
|
|
9
10
|
throw new AppError({
|
|
10
11
|
message: "User associated with the refresh token was not found",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findRefreshTokenUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshTokenUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAU,EAAE,QAAe,EAAE,EAAE;IACjE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"findRefreshTokenUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/findRefreshTokenUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAU,EAAE,QAAe,EAAE,EAAE;IACjE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAuB,CAAC,CAAC;IAEnE,oBAAoB;IACpB,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,sDAAsD;YAC/D,IAAI,EAAE,wBAAwB;YAC9B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,yCAAyC;YAC/C,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,eAAe,oBAAoB,CAAC"}
|
|
@@ -2,11 +2,14 @@ import getOTPModel from "./getOTPModel.js";
|
|
|
2
2
|
import AppError from "../../utils/AppError.js";
|
|
3
3
|
import { getEnvs } from "../../config/envs.js";
|
|
4
4
|
const getOTPUser = async ({ email, purpose, routeObj, }) => {
|
|
5
|
+
// get dynamic auth field keys
|
|
5
6
|
const { authConfigObj } = getEnvs();
|
|
6
7
|
const { fieldsObj } = authConfigObj;
|
|
7
8
|
const emailKey = fieldsObj?.email;
|
|
8
9
|
const purposeKey = fieldsObj?.purpose;
|
|
10
|
+
// otp model
|
|
9
11
|
const OTPModel = getOTPModel(routeObj);
|
|
12
|
+
// otp user
|
|
10
13
|
const OTPUser = await OTPModel.findOne({
|
|
11
14
|
[emailKey]: email,
|
|
12
15
|
[purposeKey]: purpose,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOTPUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/getOTPUser.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,UAAU,GAAG,KAAK,EAAE,EACxB,KAAK,EACL,OAAO,EACP,QAAQ,GAKT,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"getOTPUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/getOTPUser.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,UAAU,GAAG,KAAK,EAAE,EACxB,KAAK,EACL,OAAO,EACP,QAAQ,GAKT,EAAE,EAAE;IACH,8BAA8B;IAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IAEpC,MAAM,QAAQ,GAAG,SAAS,EAAE,KAAK,CAAC;IAClC,MAAM,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC;IAEtC,YAAY;IACZ,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,WAAW;IACX,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;QACrC,CAAC,QAAS,CAAC,EAAE,KAAK;QAClB,CAAC,UAAW,CAAC,EAAE,OAAO;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,wBAAwB;YACjC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,4CAA4C,QAAQ,QAAQ,UAAU,GAAG;YAC/E,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB;SACF,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Route } from "../../types/Collection.js";
|
|
2
|
-
declare const getUser: ({
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
declare const getUser: ({ model, route, email, needPassword, routeObj, }: {
|
|
3
|
+
model: string;
|
|
4
|
+
route: string;
|
|
5
5
|
email: string;
|
|
6
6
|
needPassword?: boolean;
|
|
7
7
|
routeObj: Route;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/getUser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,OAAO,GAAU,
|
|
1
|
+
{"version":3,"file":"getUser.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/getUser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,OAAO,GAAU,kDAMpB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;CACjB,iBAsCA,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import getModel from "../../utils/getModel.js";
|
|
2
2
|
import AppError from "../../utils/AppError.js";
|
|
3
3
|
import { getEnvs } from "../../config/envs.js";
|
|
4
|
-
const getUser = async ({
|
|
4
|
+
const getUser = async ({ model, route, email, needPassword, routeObj, }) => {
|
|
5
|
+
// get dynamic auth field keys
|
|
5
6
|
const { authConfigObj } = getEnvs();
|
|
6
7
|
const { fieldsObj } = authConfigObj;
|
|
7
8
|
const emailKey = fieldsObj?.email;
|
|
8
9
|
const passwordKey = fieldsObj?.password;
|
|
9
|
-
|
|
10
|
+
// model
|
|
11
|
+
const Model = getModel({ model, route, routeObj });
|
|
12
|
+
// user
|
|
10
13
|
let user = null;
|
|
11
14
|
if (needPassword) {
|
|
12
15
|
user = await Model.findOne({
|
|
@@ -18,6 +21,7 @@ const getUser = async ({ modelName, routeName, email, needPassword, routeObj, })
|
|
|
18
21
|
[emailKey]: email,
|
|
19
22
|
});
|
|
20
23
|
}
|
|
24
|
+
// if user not found
|
|
21
25
|
if (!user)
|
|
22
26
|
throw new AppError({
|
|
23
27
|
message: "User not found.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/getUser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,
|
|
1
|
+
{"version":3,"file":"getUser.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/getUser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,GAOT,EAAE,EAAE;IACH,8BAA8B;IAC9B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IAEpC,MAAM,QAAQ,GAAG,SAAS,EAAE,KAAK,CAAC;IAClC,MAAM,WAAW,GAAG,SAAS,EAAE,QAAQ,CAAC;IAExC,QAAQ;IACR,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,OAAO;IACP,IAAI,IAAI,GAAQ,IAAI,CAAC;IAErB,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YACzB,CAAC,QAAS,CAAC,EAAE,KAAK;SACnB,CAAC,CAAC,MAAM,CAAC,IAAI,WAAY,EAAE,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YACzB,CAAC,QAAS,CAAC,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uBAAuB,QAAQ,2BAA2B;YAChE,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB;SACF,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGetToken.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleGetToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,QAAQ,GAAI,0BAIf;IACD,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;CAC9C,
|
|
1
|
+
{"version":3,"file":"handleGetToken.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleGetToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,QAAA,MAAM,QAAQ,GAAI,0BAIf;IACD,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,CAAC;CAC9C,WAmBA,CAAC;AACF,eAAe,QAAQ,CAAC"}
|
|
@@ -4,9 +4,9 @@ import { getEnvs } from "../../config/envs.js";
|
|
|
4
4
|
const getToken = ({ req, routeObj, type, }) => {
|
|
5
5
|
const { authConfigObj } = getEnvs();
|
|
6
6
|
const tokenName = authConfigObj[type];
|
|
7
|
-
let token = req.cookies[tokenName];
|
|
7
|
+
let token = req.cookies?.[tokenName];
|
|
8
8
|
if (!token)
|
|
9
|
-
token = req.body[tokenName];
|
|
9
|
+
token = req.body?.[tokenName];
|
|
10
10
|
if (!token || typeof token !== "string")
|
|
11
11
|
throw new AppError({
|
|
12
12
|
message: `'${tokenName}' is missing`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleGetToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleGetToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,QAAQ,GAAG,CAAC,EAChB,GAAG,EACH,QAAQ,EACR,IAAI,GAKL,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"handleGetToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleGetToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,QAAQ,GAAG,CAAC,EAChB,GAAG,EACH,QAAQ,EACR,IAAI,GAKL,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,SAAU,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,SAAU,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACrC,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,IAAI,SAAS,cAAc;YACpC,IAAI,EAAE,GAAG,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,gBAAgB;YAC1E,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,kDAAkD,SAAS,0KAA0K;YAC3O,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,eAAe,QAAQ,CAAC"}
|
|
@@ -4,8 +4,11 @@ import getModel from "../../utils/getModel.js";
|
|
|
4
4
|
import getErrorDetail from "../../utils/getErrorDetail.js";
|
|
5
5
|
import findRefreshToken from "./findRefreshToken.js";
|
|
6
6
|
const handleRefreshTokenValidation = async (token, routeObj, owner, jti) => {
|
|
7
|
-
|
|
7
|
+
// Model
|
|
8
|
+
const RefreshToken = getModel({ model: "RefreshToken", routeObj });
|
|
9
|
+
// find same device tokens
|
|
8
10
|
const foundToken = await findRefreshToken(owner, jti, routeObj);
|
|
11
|
+
// if token not found
|
|
9
12
|
if (!foundToken)
|
|
10
13
|
throw new AppError({
|
|
11
14
|
message: "Refresh token is not found.",
|
|
@@ -14,7 +17,9 @@ const handleRefreshTokenValidation = async (token, routeObj, owner, jti) => {
|
|
|
14
17
|
hint: "This refresh token is deleted. Sign in again to create a new authentication session.",
|
|
15
18
|
details: getErrorDetail(routeObj),
|
|
16
19
|
});
|
|
20
|
+
// token hash verification
|
|
17
21
|
const isValid = await verifyHash(token, foundToken.refreshTokenHash, routeObj);
|
|
22
|
+
// if token is revoked
|
|
18
23
|
if (foundToken.revoked)
|
|
19
24
|
throw new AppError({
|
|
20
25
|
message: "Refresh token black listed.",
|
|
@@ -23,6 +28,7 @@ const handleRefreshTokenValidation = async (token, routeObj, owner, jti) => {
|
|
|
23
28
|
hint: "This refresh token can't be used. Sign in again to create a new authentication session.",
|
|
24
29
|
details: getErrorDetail(routeObj),
|
|
25
30
|
});
|
|
31
|
+
// if invalid hash
|
|
26
32
|
if (!isValid) {
|
|
27
33
|
await RefreshToken.updateOne({
|
|
28
34
|
owner,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleRefreshTokenValidation.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleRefreshTokenValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,4BAA4B,GAAG,KAAK,EACxC,KAAa,EACb,QAAe,EACf,KAAa,EACb,GAAW,EACX,EAAE;
|
|
1
|
+
{"version":3,"file":"handleRefreshTokenValidation.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleRefreshTokenValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,4BAA4B,GAAG,KAAK,EACxC,KAAa,EACb,QAAe,EACf,KAAa,EACb,GAAW,EACX,EAAE;IACF,QAAQ;IACR,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnE,0BAA0B;IAC1B,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEhE,qBAAqB;IACrB,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,6BAA6B;YACtC,IAAI,EAAE,0BAA0B;YAChC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,sFAAsF;YAC5F,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;IAEL,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,KAAK,EACL,UAAU,CAAC,gBAAgB,EAC3B,QAAQ,CACT,CAAC;IAEF,sBAAsB;IACtB,IAAI,UAAU,CAAC,OAAO;QACpB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,6BAA6B;YACtC,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,yFAAyF;YAC/F,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;IAEL,kBAAkB;IAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,YAAY,CAAC,SAAS,CAC1B;YACE,KAAK;YACL,GAAG;YACH,OAAO,EAAE,KAAK;SACf,EACD,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAC5B,CAAC;QAEF,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,uBAAuB;YAC7B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,uDAAuD;YAC7D,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,eAAe,4BAA4B,CAAC"}
|
|
@@ -5,10 +5,11 @@ import { hash } from "../../utils/libsodium.js";
|
|
|
5
5
|
import saveRefreshToken from "../../utils/saveRefreshToken.js";
|
|
6
6
|
import getDuration from "../../config/duration.js";
|
|
7
7
|
const handleRotateRefreshToken = async ({ owner, currentTokenJTI, rotateTokenJTI, deviceType, familyId, res, routeObj, deviceName, ipAddress, os, iat, }) => {
|
|
8
|
-
const RefreshToken = getModel({
|
|
8
|
+
const RefreshToken = getModel({ model: "RefreshToken" });
|
|
9
9
|
const { authConfigObj } = getEnvs();
|
|
10
10
|
const { refreshTokenName, rotateRefreshToken, refreshTokenRotationInterval } = authConfigObj;
|
|
11
11
|
let REFRESH_TOKEN = null;
|
|
12
|
+
// update - last used
|
|
12
13
|
const updateLastUsed = async () => {
|
|
13
14
|
await RefreshToken.updateOne({
|
|
14
15
|
owner,
|
|
@@ -17,9 +18,11 @@ const handleRotateRefreshToken = async ({ owner, currentTokenJTI, rotateTokenJTI
|
|
|
17
18
|
}, { $set: { lastUsedAt: Date.now() } });
|
|
18
19
|
};
|
|
19
20
|
if (!rotateRefreshToken) {
|
|
21
|
+
// update lastUsed
|
|
20
22
|
await updateLastUsed();
|
|
21
23
|
}
|
|
22
24
|
else {
|
|
25
|
+
// check if rotationInterval is found
|
|
23
26
|
const rotationInterval = getDuration(refreshTokenRotationInterval, routeObj);
|
|
24
27
|
if (!!rotationInterval) {
|
|
25
28
|
const timeLeft = iat * 1000 + rotationInterval;
|
|
@@ -28,6 +31,7 @@ const handleRotateRefreshToken = async ({ owner, currentTokenJTI, rotateTokenJTI
|
|
|
28
31
|
return;
|
|
29
32
|
}
|
|
30
33
|
}
|
|
34
|
+
// cookie
|
|
31
35
|
const { refreshToken, refreshTokenAge } = sendCookie({
|
|
32
36
|
deviceType,
|
|
33
37
|
refreshTokenName: refreshTokenName,
|
|
@@ -40,7 +44,9 @@ const handleRotateRefreshToken = async ({ owner, currentTokenJTI, rotateTokenJTI
|
|
|
40
44
|
routeObj,
|
|
41
45
|
});
|
|
42
46
|
REFRESH_TOKEN = refreshToken;
|
|
47
|
+
// hashedToken
|
|
43
48
|
const hashedToken = await hash(refreshToken);
|
|
49
|
+
// check if old token
|
|
44
50
|
await RefreshToken.updateMany({
|
|
45
51
|
owner,
|
|
46
52
|
refreshTokenHash: { $ne: hashedToken },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleRotateRefreshToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleRotateRefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAgBnD,MAAM,wBAAwB,GAAG,KAAK,EAAE,EACtC,KAAK,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,UAAU,EACV,SAAS,EACT,EAAE,EACF,GAAG,GACkB,EAAE,EAAE;IACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"handleRotateRefreshToken.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/handleRotateRefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAgBnD,MAAM,wBAAwB,GAAG,KAAK,EAAE,EACtC,KAAK,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,UAAU,EACV,SAAS,EACT,EAAE,EACF,GAAG,GACkB,EAAE,EAAE;IACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,GAC1E,aAAa,CAAC;IAEhB,IAAI,aAAa,GAAG,IAAI,CAAC;IAEzB,qBAAqB;IACrB,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,YAAY,CAAC,SAAS,CAC1B;YACE,KAAK;YACL,GAAG,EAAE,eAAe;YACpB,OAAO,EAAE,KAAK;SACf,EACD,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,kBAAkB;QAClB,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,MAAM,gBAAgB,GAAG,WAAW,CAClC,4BAA6B,EAC7B,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,gBAAgB,CAAC;YAE/C,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC1B,MAAM,cAAc,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;YACnD,UAAU;YACV,gBAAgB,EAAE,gBAAiB;YACnC,GAAG,EAAE,cAAc;YACnB,QAAQ;YACR,mBAAmB,EAAE;gBACnB,GAAG,EAAE,KAAK;aACX;YACD,GAAG;YACH,QAAQ;SACT,CAAC,CAAC;QAEH,aAAa,GAAG,YAAY,CAAC;QAE7B,cAAc;QACd,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,CAAC;QAE9C,qBAAqB;QACrB,MAAM,YAAY,CAAC,UAAU,CAC3B;YACE,KAAK;YACL,gBAAgB,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;YACtC,QAAQ;YACR,OAAO,EAAE,KAAK;SACf,EACD,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAC5B,CAAC;QAEF,MAAM,gBAAgB,CAAC;YACrB,GAAG,EAAE,KAAK;YACV,QAAQ;YACR,GAAG,EAAE,cAAc;YACnB,WAAW;YACX,eAAe;YACf,QAAQ;YACR,UAAU;YACV,UAAU;YACV,SAAS;YACT,EAAE;SACH,CAAC,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
declare const modeMap: {
|
|
2
2
|
signup: {
|
|
3
|
-
otp: ({ body, res, purpose,
|
|
3
|
+
otp: ({ body, res, purpose, route, model, routeObj, }: {
|
|
4
4
|
body: any;
|
|
5
5
|
res: import("express").Response;
|
|
6
6
|
purpose: string;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
route: string;
|
|
8
|
+
model: string;
|
|
9
9
|
routeObj: import("../../types/Route.js").Route;
|
|
10
10
|
}) => Promise<void>;
|
|
11
|
-
credentials: ({ body,
|
|
11
|
+
credentials: ({ body, model, res, route, routeObj, req, }: {
|
|
12
12
|
body: any;
|
|
13
|
-
|
|
13
|
+
model: string;
|
|
14
14
|
res: import("express").Response;
|
|
15
|
-
|
|
15
|
+
route: string;
|
|
16
16
|
routeObj: import("../../types/Route.js").Route;
|
|
17
17
|
req: import("express").Request;
|
|
18
18
|
}) => Promise<void>;
|
|
19
19
|
};
|
|
20
20
|
login: {
|
|
21
|
-
otp: ({ body, res, purpose,
|
|
21
|
+
otp: ({ body, res, purpose, route, model, routeObj, }: {
|
|
22
22
|
body: any;
|
|
23
23
|
res: import("express").Response;
|
|
24
24
|
purpose: string;
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
route: string;
|
|
26
|
+
model: string;
|
|
27
27
|
routeObj: import("../../types/Route.js").Route;
|
|
28
28
|
}) => Promise<void>;
|
|
29
|
-
credentials: ({ body,
|
|
29
|
+
credentials: ({ body, model, res, req, route, routeObj, }: {
|
|
30
30
|
body: any;
|
|
31
|
-
|
|
31
|
+
model: string;
|
|
32
32
|
res: import("express").Response;
|
|
33
33
|
req: import("express").Request;
|
|
34
|
-
|
|
34
|
+
route: string;
|
|
35
35
|
routeObj: import("../../types/Route.js").Route;
|
|
36
36
|
}) => Promise<void>;
|
|
37
37
|
};
|
|
@@ -2,6 +2,7 @@ import appResponse from "../../utils/response.js";
|
|
|
2
2
|
import AppError from "../../utils/AppError.js";
|
|
3
3
|
import { getEnvs } from "../../config/envs.js";
|
|
4
4
|
const otpVerifiedResponse = ({ res, body, routeObj, }) => {
|
|
5
|
+
// get dynamic auth field key
|
|
5
6
|
const { authConfigObj } = getEnvs();
|
|
6
7
|
const { fieldsObj } = authConfigObj;
|
|
7
8
|
const purposeKey = fieldsObj?.purpose;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otpVerifiedResponse.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/otpVerifiedResponse.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,mBAAmB,GAAG,CAAC,EAC3B,GAAG,EACH,IAAI,EACJ,QAAQ,GAKT,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"otpVerifiedResponse.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/otpVerifiedResponse.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,mBAAmB,GAAG,CAAC,EAC3B,GAAG,EACH,IAAI,EACJ,QAAQ,GAKT,EAAE,EAAE;IACH,6BAA6B;IAC7B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IAEpC,MAAM,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC;IAEtC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAW,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,GAAG,UAAU,eAAe;YACrC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,WAAW,UAAU,gDAAgD;YAC3E,OAAO,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB;SACF,CAAC,CAAC;IAEL,WAAW,CAAC;QACV,GAAG;QACH,OAAO,EAAE,GAAG,IAAI,CAAC,UAAW,CAAC,8BAA8B;QAC3D,OAAO,EAAE,IAAI,CAAC,UAAW,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -2,9 +2,13 @@ import getDuration from "../../config/duration.js";
|
|
|
2
2
|
import { getEnvs } from "../../config/envs.js";
|
|
3
3
|
import AppError from "../../utils/AppError.js";
|
|
4
4
|
import { signJWT } from "../../utils/handleJWT.js";
|
|
5
|
+
// send cookie
|
|
5
6
|
export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTokenName, refreshTokenPayload, routeObj, jti, familyId, deviceType, }) => {
|
|
7
|
+
// envs
|
|
6
8
|
const { ENV, domain, authConfigObj } = getEnvs();
|
|
9
|
+
// authConfigObj
|
|
7
10
|
const { accessTokenAge, refreshTokenAge } = authConfigObj;
|
|
11
|
+
// if domain not found in production
|
|
8
12
|
if (ENV === "production" && !domain)
|
|
9
13
|
throw new AppError({
|
|
10
14
|
message: "domain is required in production.",
|
|
@@ -16,6 +20,7 @@ export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTo
|
|
|
16
20
|
path: routeObj.path,
|
|
17
21
|
},
|
|
18
22
|
});
|
|
23
|
+
// sign accessToken
|
|
19
24
|
let accessToken = null;
|
|
20
25
|
if (accessTokenName)
|
|
21
26
|
accessToken = signJWT({
|
|
@@ -23,8 +28,10 @@ export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTo
|
|
|
23
28
|
routeObj,
|
|
24
29
|
age: accessTokenAge,
|
|
25
30
|
});
|
|
31
|
+
// if refreshToken to send
|
|
26
32
|
let refreshToken = null;
|
|
27
33
|
if (refreshTokenName)
|
|
34
|
+
// sign refreshToken
|
|
28
35
|
refreshToken = signJWT({
|
|
29
36
|
routeObj,
|
|
30
37
|
age: refreshTokenAge,
|
|
@@ -35,6 +42,7 @@ export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTo
|
|
|
35
42
|
...refreshTokenPayload,
|
|
36
43
|
},
|
|
37
44
|
});
|
|
45
|
+
// send access token cookie
|
|
38
46
|
if (accessToken)
|
|
39
47
|
res.cookie(accessTokenName, accessToken, {
|
|
40
48
|
httpOnly: true,
|
|
@@ -43,6 +51,7 @@ export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTo
|
|
|
43
51
|
secure: ENV === "production",
|
|
44
52
|
domain: ENV === "production" ? domain : undefined,
|
|
45
53
|
});
|
|
54
|
+
// if refreshToken to send
|
|
46
55
|
if (refreshToken)
|
|
47
56
|
res.cookie(refreshTokenName, refreshToken, {
|
|
48
57
|
httpOnly: true,
|
|
@@ -57,6 +66,7 @@ export const sendCookie = ({ res, accessTokenName, accessTokenPayload, refreshTo
|
|
|
57
66
|
refreshTokenAge,
|
|
58
67
|
};
|
|
59
68
|
};
|
|
69
|
+
// clear cookie
|
|
60
70
|
export const clearCookie = ({ res, cookieName, routeObj, }) => {
|
|
61
71
|
const { ENV, domain } = getEnvs();
|
|
62
72
|
if (!ENV)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendCookie.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/sendCookie.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"sendCookie.js","sourceRoot":"","sources":["../../../../src/js/auth/utils/sendCookie.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendOTP.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/sendOTP.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"sendOTP.d.ts","sourceRoot":"","sources":["../../../../src/js/auth/utils/sendOTP.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKvD,QAAA,MAAM,OAAO,GACX,OAAO,MAAM,EACb,UAAU,KAAK,KACd,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4C5C,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -2,10 +2,13 @@ import { randomInt } from "crypto";
|
|
|
2
2
|
import { getEnvs } from "../../config/envs.js";
|
|
3
3
|
import sendEmail from "../../config/sendEmail.js";
|
|
4
4
|
import AppError from "../../utils/AppError.js";
|
|
5
|
+
import { validateFrom } from "../../config/email.envs.js";
|
|
6
|
+
import { twoFactorCode } from "../../email/templates/index.js";
|
|
7
|
+
import { getCurrentYear } from "../../email/utils/auto-fields.js";
|
|
5
8
|
const sendOTP = async (email, routeObj) => {
|
|
6
9
|
const OTP = randomInt(100000, 1000000).toString();
|
|
7
10
|
const otpExpiry = Date.now() + 1000 * 60 * 5;
|
|
8
|
-
const { isOffline,
|
|
11
|
+
const { isOffline, systemEmailSender, emailConfig } = getEnvs();
|
|
9
12
|
if (!isOffline && isOffline !== false)
|
|
10
13
|
throw new AppError({
|
|
11
14
|
message: "isOffline is required.",
|
|
@@ -21,20 +24,18 @@ const sendOTP = async (email, routeObj) => {
|
|
|
21
24
|
console.log(`OTP: ${OTP}`);
|
|
22
25
|
return { OTP, otpExpiry };
|
|
23
26
|
}
|
|
24
|
-
const htmlBody =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
});
|
|
27
|
+
const htmlBody = twoFactorCode({
|
|
28
|
+
otpCode: OTP,
|
|
29
|
+
expiryMinutes: new Date(otpExpiry).getMinutes() - new Date().getMinutes(),
|
|
30
|
+
currentYear: getCurrentYear(),
|
|
31
|
+
userEmail: email,
|
|
32
|
+
userName: "there",
|
|
33
|
+
...emailConfig,
|
|
34
|
+
});
|
|
35
|
+
// validateFrom -------------------------------------------------------------------------
|
|
36
|
+
validateFrom(systemEmailSender);
|
|
36
37
|
await sendEmail({
|
|
37
|
-
from:
|
|
38
|
+
from: systemEmailSender,
|
|
38
39
|
htmlBody,
|
|
39
40
|
subject: "OTP Verification",
|
|
40
41
|
to: email,
|