@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
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize an IP address.
|
|
3
|
+
*
|
|
4
|
+
* Node may return IPv4 addresses as IPv4-mapped IPv6 addresses:
|
|
5
|
+
*
|
|
6
|
+
* ::ffff:127.0.0.1
|
|
7
|
+
* ::ffff:192.168.1.10
|
|
8
|
+
*
|
|
9
|
+
* Converting them makes local/private IP detection much easier.
|
|
10
|
+
*/
|
|
11
|
+
function normalizeIp(ip) {
|
|
12
|
+
const value = ip.trim();
|
|
13
|
+
if (value.startsWith("::ffff:")) {
|
|
14
|
+
return value.slice(7);
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Whether an IP belongs to the local machine.
|
|
20
|
+
*/
|
|
21
|
+
function isLocalhostIp(ip) {
|
|
22
|
+
const normalized = normalizeIp(ip).toLowerCase();
|
|
23
|
+
return (normalized === "127.0.0.1" ||
|
|
24
|
+
normalized === "::1" ||
|
|
25
|
+
normalized === "0.0.0.0" ||
|
|
26
|
+
normalized === "::");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Whether an IPv4 address belongs to a private/local network.
|
|
30
|
+
*
|
|
31
|
+
* Private IPv4 ranges:
|
|
32
|
+
*
|
|
33
|
+
* 10.0.0.0/8
|
|
34
|
+
* 172.16.0.0/12
|
|
35
|
+
* 192.168.0.0/16
|
|
36
|
+
*/
|
|
37
|
+
function isPrivateIpv4(ip) {
|
|
38
|
+
const normalized = normalizeIp(ip);
|
|
39
|
+
const parts = normalized.split(".").map(Number);
|
|
40
|
+
if (parts.length !== 4 ||
|
|
41
|
+
parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const [a, b] = parts;
|
|
45
|
+
return (a === 10 ||
|
|
46
|
+
(a === 172 && b >= 16 && b <= 31) ||
|
|
47
|
+
(a === 192 && b === 168));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether an IP is a private/local address.
|
|
51
|
+
*/
|
|
52
|
+
function isPrivateIp(ip) {
|
|
53
|
+
const normalized = normalizeIp(ip).toLowerCase();
|
|
54
|
+
// IPv4 private ranges.
|
|
55
|
+
if (isPrivateIpv4(normalized)) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
// IPv6 unique-local addresses: fc00::/7
|
|
59
|
+
if (/^f[cd][0-9a-f]{2}:/i.test(normalized)) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
// IPv6 link-local: fe80::/10
|
|
63
|
+
if (/^fe[89ab][0-9a-f]{2}:/i.test(normalized)) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Extract a single User-Agent value from the request headers.
|
|
70
|
+
*/
|
|
71
|
+
function getUserAgent(req) {
|
|
72
|
+
const value = req.headers["user-agent"];
|
|
73
|
+
if (typeof value === "string") {
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
if (Array.isArray(value)) {
|
|
77
|
+
return value[0];
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Client IP address.
|
|
83
|
+
*
|
|
84
|
+
* Priority:
|
|
85
|
+
*
|
|
86
|
+
* 1. x-forwarded-for
|
|
87
|
+
* 2. framework-resolved req.ip
|
|
88
|
+
* 3. req.socket.remoteAddress
|
|
89
|
+
* 4. req.connection.remoteAddress
|
|
90
|
+
*
|
|
91
|
+
* NOTE:
|
|
92
|
+
* x-forwarded-for should only be trusted when your application is behind
|
|
93
|
+
* a trusted proxy/load balancer and proxy trust is configured correctly.
|
|
94
|
+
*/
|
|
95
|
+
export function getClientIp(req) {
|
|
96
|
+
const forwarded = req.headers["x-forwarded-for"];
|
|
97
|
+
if (typeof forwarded === "string") {
|
|
98
|
+
const firstIp = forwarded
|
|
99
|
+
.split(",")
|
|
100
|
+
.map((ip) => ip.trim())
|
|
101
|
+
.find(Boolean);
|
|
102
|
+
if (firstIp) {
|
|
103
|
+
return normalizeIp(firstIp);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (Array.isArray(forwarded)) {
|
|
107
|
+
const firstIp = forwarded
|
|
108
|
+
.map((ip) => ip.trim())
|
|
109
|
+
.find(Boolean);
|
|
110
|
+
if (firstIp) {
|
|
111
|
+
return normalizeIp(firstIp);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (req.ip) {
|
|
115
|
+
return normalizeIp(req.ip);
|
|
116
|
+
}
|
|
117
|
+
if (req.socket?.remoteAddress) {
|
|
118
|
+
return normalizeIp(req.socket.remoteAddress);
|
|
119
|
+
}
|
|
120
|
+
if (req.connection?.remoteAddress) {
|
|
121
|
+
return normalizeIp(req.connection.remoteAddress);
|
|
122
|
+
}
|
|
123
|
+
return "Unknown";
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Human-readable device name derived from User-Agent.
|
|
127
|
+
*
|
|
128
|
+
* This intentionally uses lightweight detection so Forge does not need
|
|
129
|
+
* a UA parsing dependency.
|
|
130
|
+
*/
|
|
131
|
+
export function getDeviceName(req) {
|
|
132
|
+
const userAgent = getUserAgent(req);
|
|
133
|
+
if (!userAgent) {
|
|
134
|
+
return "Unknown device";
|
|
135
|
+
}
|
|
136
|
+
if (/postmanruntime/i.test(userAgent)) {
|
|
137
|
+
return "Postman";
|
|
138
|
+
}
|
|
139
|
+
if (/ipad/i.test(userAgent)) {
|
|
140
|
+
return "iPad";
|
|
141
|
+
}
|
|
142
|
+
if (/iphone/i.test(userAgent)) {
|
|
143
|
+
return "iPhone";
|
|
144
|
+
}
|
|
145
|
+
if (/android/i.test(userAgent)) {
|
|
146
|
+
if (/mobile/i.test(userAgent)) {
|
|
147
|
+
return "Android phone";
|
|
148
|
+
}
|
|
149
|
+
return "Android device";
|
|
150
|
+
}
|
|
151
|
+
if (/windows phone/i.test(userAgent)) {
|
|
152
|
+
return "Windows phone";
|
|
153
|
+
}
|
|
154
|
+
if (/macintosh|mac os x/i.test(userAgent)) {
|
|
155
|
+
return "Mac";
|
|
156
|
+
}
|
|
157
|
+
if (/windows/i.test(userAgent)) {
|
|
158
|
+
return "Windows PC";
|
|
159
|
+
}
|
|
160
|
+
if (/linux/i.test(userAgent)) {
|
|
161
|
+
return "Linux device";
|
|
162
|
+
}
|
|
163
|
+
return "Unknown device";
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get a human-readable location for an IP.
|
|
167
|
+
*
|
|
168
|
+
* Localhost:
|
|
169
|
+
* ::1 / 127.0.0.1 -> "Localhost"
|
|
170
|
+
*
|
|
171
|
+
* Private LAN:
|
|
172
|
+
* 192.168.x.x
|
|
173
|
+
* 10.x.x.x
|
|
174
|
+
* 172.16.x.x - 172.31.x.x
|
|
175
|
+
*
|
|
176
|
+
* These addresses cannot be geolocated because they are not globally
|
|
177
|
+
* routable. We therefore return a useful development/network label.
|
|
178
|
+
*
|
|
179
|
+
* Public IPs require a GeoIP provider/database.
|
|
180
|
+
*/
|
|
181
|
+
export async function getLocationFromIp(ip) {
|
|
182
|
+
if (!ip || ip === "Unknown") {
|
|
183
|
+
return "Unknown location";
|
|
184
|
+
}
|
|
185
|
+
const normalized = normalizeIp(ip);
|
|
186
|
+
if (isLocalhostIp(normalized)) {
|
|
187
|
+
return "Localhost";
|
|
188
|
+
}
|
|
189
|
+
if (isPrivateIp(normalized)) {
|
|
190
|
+
return "Local network";
|
|
191
|
+
}
|
|
192
|
+
// TODO: Add a GeoIP provider here for public IP addresses.
|
|
193
|
+
//
|
|
194
|
+
// Example:
|
|
195
|
+
//
|
|
196
|
+
// const res = await fetch(`https://ipapi.co/${normalized}/json/`);
|
|
197
|
+
// const data = await res.json();
|
|
198
|
+
//
|
|
199
|
+
// if (data.city && data.country_name) {
|
|
200
|
+
// return `${data.city}, ${data.country_name}`;
|
|
201
|
+
// }
|
|
202
|
+
return "Unknown location";
|
|
203
|
+
}
|
|
204
|
+
/** Current year for email footer/copyright fields. */
|
|
205
|
+
export function getCurrentYear() {
|
|
206
|
+
return new Date().getFullYear();
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Current date/time formatted for human-readable email fields.
|
|
210
|
+
*/
|
|
211
|
+
export function getFormattedNow(locale = "en-US", timeZone) {
|
|
212
|
+
return new Date().toLocaleString(locale, {
|
|
213
|
+
dateStyle: "long",
|
|
214
|
+
timeStyle: "short",
|
|
215
|
+
timeZone,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Compute all automatically-derived email fields.
|
|
220
|
+
*/
|
|
221
|
+
export async function getAutoDerivedFields(req) {
|
|
222
|
+
const ipAddress = getClientIp(req);
|
|
223
|
+
const deviceName = getDeviceName(req);
|
|
224
|
+
const location = await getLocationFromIp(ipAddress);
|
|
225
|
+
return {
|
|
226
|
+
currentYear: getCurrentYear(),
|
|
227
|
+
ipAddress,
|
|
228
|
+
deviceName,
|
|
229
|
+
location,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=auto-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-fields.js","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fields the framework can figure out on its own at send time — from the
|
|
3
|
+
* incoming request or the system clock — so the developer using the
|
|
4
|
+
* framework never has to pass these in manually.
|
|
5
|
+
*
|
|
6
|
+
* Field -> where it's used (X/45 templates):
|
|
7
|
+
* currentYear -> every template (footer copyright year)
|
|
8
|
+
* ipAddress -> login-alert, new-device-login, password-changed
|
|
9
|
+
* deviceName -> login-alert, new-device-login, password-changed
|
|
10
|
+
* location -> login-alert, new-device-login, password-changed, security-alert
|
|
11
|
+
*/
|
|
12
|
+
export type AutoDerivedEmailFields = {
|
|
13
|
+
currentYear: number;
|
|
14
|
+
ipAddress: string;
|
|
15
|
+
deviceName: string;
|
|
16
|
+
location: string;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=auto-fields.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-fields.type.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-fields.type.js","sourceRoot":"","sources":["../../../../src/js/email/utils/auto-fields.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailTemplates.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/emailTemplates.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAuDL,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { accountCreated, accountDeleted, accountUpdated, announcement, apiKeyCreated, apiKeyRevoked, contactForm, dailyReport, emailChanged, feedback, invoice, loginAlert, magicLink, maintenance, memberAdded, memberRemoved, mention, monthlyReport, newComment, newDeviceLogin, newMessage, notification, orderCancelled, orderConfirmation, orderDelivered, orderShipped, organizationInvitation, passwordChanged, passwordExpiring, passwordReset, paymentFailed, paymentSuccess, receipt, reminder, securityAlert, subscriptionCancelled, subscriptionCreated, subscriptionRenewed, supportTicket, teamInvitation, trialEnding, twoFactorCode, verifyEmail, weeklyReport, welcome, } from "../templates/index.js";
|
|
2
|
+
export const emailTemplates = {
|
|
3
|
+
welcome: welcome,
|
|
4
|
+
"verify-email": verifyEmail,
|
|
5
|
+
"password-reset": passwordReset,
|
|
6
|
+
"password-changed": passwordChanged,
|
|
7
|
+
"login-alert": loginAlert,
|
|
8
|
+
"two-factor-code": twoFactorCode,
|
|
9
|
+
"magic-link": magicLink,
|
|
10
|
+
"account-created": accountCreated,
|
|
11
|
+
"account-updated": accountUpdated,
|
|
12
|
+
"account-deleted": accountDeleted,
|
|
13
|
+
"email-changed": emailChanged,
|
|
14
|
+
"team-invitation": teamInvitation,
|
|
15
|
+
"organization-invitation": organizationInvitation,
|
|
16
|
+
"member-added": memberAdded,
|
|
17
|
+
"member-removed": memberRemoved,
|
|
18
|
+
"new-message": newMessage,
|
|
19
|
+
"new-comment": newComment,
|
|
20
|
+
mention: mention,
|
|
21
|
+
notification: notification,
|
|
22
|
+
reminder: reminder,
|
|
23
|
+
invoice: invoice,
|
|
24
|
+
receipt: receipt,
|
|
25
|
+
"payment-success": paymentSuccess,
|
|
26
|
+
"payment-failed": paymentFailed,
|
|
27
|
+
"subscription-created": subscriptionCreated,
|
|
28
|
+
"subscription-renewed": subscriptionRenewed,
|
|
29
|
+
"subscription-cancelled": subscriptionCancelled,
|
|
30
|
+
"trial-ending": trialEnding,
|
|
31
|
+
"order-confirmation": orderConfirmation,
|
|
32
|
+
"order-shipped": orderShipped,
|
|
33
|
+
"order-delivered": orderDelivered,
|
|
34
|
+
"order-cancelled": orderCancelled,
|
|
35
|
+
"password-expiring": passwordExpiring,
|
|
36
|
+
"security-alert": securityAlert,
|
|
37
|
+
"new-device-login": newDeviceLogin,
|
|
38
|
+
"api-key-created": apiKeyCreated,
|
|
39
|
+
"api-key-revoked": apiKeyRevoked,
|
|
40
|
+
"contact-form": contactForm,
|
|
41
|
+
"support-ticket": supportTicket,
|
|
42
|
+
feedback: feedback,
|
|
43
|
+
"daily-report": dailyReport,
|
|
44
|
+
"weekly-report": weeklyReport,
|
|
45
|
+
"monthly-report": monthlyReport,
|
|
46
|
+
maintenance: maintenance,
|
|
47
|
+
announcement: announcement,
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=emailTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailTemplates.js","sourceRoot":"","sources":["../../../../src/js/email/utils/emailTemplates.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,OAAO,EACP,QAAQ,EACR,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,cAAc,GAAwB;IACjD,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,eAAe;IACnC,aAAa,EAAE,UAAU;IACzB,iBAAiB,EAAE,aAAa;IAChC,YAAY,EAAE,SAAS;IAEvB,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IACjC,eAAe,EAAE,YAAY;IAE7B,iBAAiB,EAAE,cAAc;IACjC,yBAAyB,EAAE,sBAAsB;IACjD,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAE/B,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,YAAY;IAC1B,QAAQ,EAAE,QAAQ;IAElB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,aAAa;IAC/B,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,cAAc,EAAE,WAAW;IAE3B,oBAAoB,EAAE,iBAAiB;IACvC,eAAe,EAAE,YAAY;IAC7B,iBAAiB,EAAE,cAAc;IACjC,iBAAiB,EAAE,cAAc;IAEjC,mBAAmB,EAAE,gBAAgB;IACrC,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,cAAc;IAClC,iBAAiB,EAAE,aAAa;IAChC,iBAAiB,EAAE,aAAa;IAEhC,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,aAAa;IAC/B,QAAQ,EAAE,QAAQ;IAElB,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,aAAa;IAE/B,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,YAAY;CACc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleEmailTemplateConfig.d.ts","sourceRoot":"","sources":["../../../../src/js/email/utils/handleEmailTemplateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAIlE,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,GAAG,EACX,SAAS,aAAa,iBAmDvB,CAAC;AACF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import AppLog from "../../utils/AppLog.js";
|
|
2
|
+
import { getAutoDerivedFields, getCurrentYear } from "./auto-fields.js";
|
|
3
|
+
const handleEmailTemplateConfig = async (config, context) => {
|
|
4
|
+
for (const [key, value] of Object.entries(config)) {
|
|
5
|
+
// current-date
|
|
6
|
+
if (value === "current-date") {
|
|
7
|
+
config[key] = new Date().toLocaleDateString("en-PK", {
|
|
8
|
+
dateStyle: "full",
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
// current-time
|
|
12
|
+
if (value === "current-time") {
|
|
13
|
+
config[key] = new Date().toLocaleTimeString("en-PK", {
|
|
14
|
+
timeStyle: "medium",
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
// function
|
|
18
|
+
if (typeof value === "function") {
|
|
19
|
+
try {
|
|
20
|
+
const result = await value(context);
|
|
21
|
+
config[key] = result;
|
|
22
|
+
if (result === undefined || result === null) {
|
|
23
|
+
AppLog("x", "emailTemplateConfig", `Invalid configuration for '${key}'. Make sure the function returns correct value in routes -> route -> actions.`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error(`Function '${key}' failed:`, error);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// autoDerivedFields
|
|
33
|
+
const autoDerivedFields = await getAutoDerivedFields({
|
|
34
|
+
headers: context.req.headers,
|
|
35
|
+
connection: context.req.connection,
|
|
36
|
+
ip: context.req.ip,
|
|
37
|
+
ips: context.req.ips,
|
|
38
|
+
socket: context.req.socket,
|
|
39
|
+
});
|
|
40
|
+
// return spread config
|
|
41
|
+
return {
|
|
42
|
+
...config,
|
|
43
|
+
...autoDerivedFields,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export default handleEmailTemplateConfig;
|
|
47
|
+
//# sourceMappingURL=handleEmailTemplateConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleEmailTemplateConfig.js","sourceRoot":"","sources":["../../../../src/js/email/utils/handleEmailTemplateConfig.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAW,EACX,OAAsB,EACtB,EAAE;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,eAAe;QACf,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBACnD,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;QACL,CAAC;QAED,WAAW;QACX,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAErB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,CACJ,GAAG,EACH,qBAAqB,EACrB,8BAA8B,GAAG,gFAAgF,CAClH,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC;QACnD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QAC5B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAClC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;QACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;KAC3B,CAAC,CAAC;IAEH,uBAAuB;IACvB,OAAO;QACL,GAAG,MAAM;QACT,GAAG,iBAAiB;KACrB,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,yBAAyB,CAAC"}
|
|
@@ -2,36 +2,36 @@ const collection = (vals) => {
|
|
|
2
2
|
return vals;
|
|
3
3
|
};
|
|
4
4
|
const healthCollection = collection({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
route: "health",
|
|
6
|
+
type: "health",
|
|
7
|
+
routes: [
|
|
8
8
|
{
|
|
9
9
|
handler: "healthGet",
|
|
10
10
|
method: "get",
|
|
11
11
|
path: "/",
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
auth: "public",
|
|
13
|
+
validation: false,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
handler: "healthPost",
|
|
17
17
|
method: "post",
|
|
18
18
|
path: "/",
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
auth: "public",
|
|
20
|
+
validation: false,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
handler: "healthPatch",
|
|
24
24
|
method: "patch",
|
|
25
25
|
path: "/",
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
auth: "public",
|
|
27
|
+
validation: false,
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
handler: "healthDelete",
|
|
31
31
|
method: "delete",
|
|
32
32
|
path: "/",
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
auth: "public",
|
|
34
|
+
validation: false,
|
|
35
35
|
},
|
|
36
36
|
],
|
|
37
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.collection.js","sourceRoot":"","sources":["../../../src/js/health/health.collection.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,EAAE;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,UAAU,CAAC;IAClC,
|
|
1
|
+
{"version":3,"file":"health.collection.js","sourceRoot":"","sources":["../../../src/js/health/health.collection.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,EAAE;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,UAAU,CAAC;IAClC,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE;QACN;YACE,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK;SAClB;QACD;YACE,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK;SAClB;QACD;YACE,OAAO,EAAE,aAAa;YACtB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK;SAClB;QACD;YACE,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK;SAClB;KACF;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Express } from "express";
|
|
2
2
|
import type { Route } from "../types/Collection.ts";
|
|
3
|
-
declare const health: (app: Express,
|
|
3
|
+
declare const health: (app: Express, route: string, routes: Route[]) => void;
|
|
4
4
|
export default health;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/js/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,wBAAwB,CAAC;AAIpE,QAAA,MAAM,MAAM,GACV,KAAK,OAAO,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/js/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAkB,MAAM,wBAAwB,CAAC;AAIpE,QAAA,MAAM,MAAM,GACV,KAAK,OAAO,EACZ,OAAO,MAAM,EACb,QAAQ,KAAK,EAAE,SAUhB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/js/health/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getEnvs } from "../config/envs.js";
|
|
2
2
|
import handlerMap from "../config/handlerMap.js";
|
|
3
|
-
const health = (app,
|
|
3
|
+
const health = (app, route, routes) => {
|
|
4
4
|
const { apiVersion } = getEnvs();
|
|
5
5
|
for (const routeObj of routes) {
|
|
6
|
-
app[routeObj.method](`/api/v${apiVersion}/${
|
|
6
|
+
app[routeObj.method](`/api/v${apiVersion}/${route}${routeObj.path}`, handlerMap[routeObj.handler]);
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
9
|
export default health;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/js/health/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,MAAM,MAAM,GAAG,CACb,GAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/js/health/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,UAAU,MAAM,yBAAyB,CAAC;AAEjD,MAAM,MAAM,GAAG,CACb,GAAY,EACZ,KAAa,EACb,MAAe,EACf,EAAE;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAClB,SAAS,UAAU,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,EAC9C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC7B,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuthProviders.js","sourceRoot":"","sources":["../../../src/js/lib/OAuthProviders.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,SAAS;IACT,UAAU;IACV,GAAG;
|
|
1
|
+
{"version":3,"file":"OAuthProviders.js","sourceRoot":"","sources":["../../../src/js/lib/OAuthProviders.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,WAAW;IACX,SAAS;IACT,UAAU;IACV,GAAG,EAAE,mBAAmB;IACxB,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;CACD,CAAC"}
|
package/dist/js/lib/db.js
CHANGED
package/dist/js/lib/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/js/lib/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,cAAc,GAAG,KAAK,EAAE,YAAY,GAAG,YAAY,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,IAAI,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CACJ,GAAG,EACH,IAAI,EACJ,2FAA2F,CAC5F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CACJ,OAAO,EACP,IAAI,EACJ,4CAA4C,YAAY,GAAG,CAC5D,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,SAAS,EACT,UAAU,EACV,YAAY,GACI,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,IAAI,SAAS;YAAE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU;YACb,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE5D,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,YAAY,CAAC;QAE/C,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACtD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACtC,MAAM,CACJ,OAAO,EACP,IAAI,EACJ,2CAA2C,YAAY,GAAG,CAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/js/lib/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,cAAc,GAAG,KAAK,EAAE,YAAY,GAAG,YAAY,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,OAAO,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,IAAI,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CACJ,GAAG,EACH,IAAI,EACJ,2FAA2F,CAC5F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CACJ,OAAO,EACP,IAAI,EACJ,4CAA4C,YAAY,GAAG,CAC5D,CAAC;AACJ,CAAC,CAAC;AAQF,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,SAAS,EACT,UAAU,EACV,YAAY,GACI,EAAE,EAAE;IACpB,IAAI,CAAC;QACH,IAAI,SAAS;YAAE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,UAAU;YACb,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAE5D,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,YAAY,CAAC;QAE/C,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;QACtD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACtC,MAAM,CACJ,OAAO,EACP,IAAI,EACJ,2CAA2C,YAAY,GAAG,CAC3D,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,qCAAqC,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,SAAS;AACT,eAAe,SAAS,CAAC"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { SchemaDefinitionProperty } from "mongoose";
|
|
2
2
|
type Primitive = string | number | boolean | Date;
|
|
3
|
+
/**
|
|
4
|
+
* A field can now be:
|
|
5
|
+
* 1. UnifiedField → { mongoose: ..., zod: ... }
|
|
6
|
+
* 2. Classic Mongoose definition (backward compatible)
|
|
7
|
+
* 3. Primitive value (also backward compatible)
|
|
8
|
+
*/
|
|
3
9
|
type ModelField = {
|
|
4
10
|
mongoose: SchemaDefinitionProperty<unknown>;
|
|
5
11
|
zod?: any;
|
|
6
12
|
} | SchemaDefinitionProperty<unknown> | Primitive;
|
|
7
13
|
type ModelDefinition = Record<string, ModelField>;
|
|
8
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Creates (or returns existing) Mongoose model.
|
|
16
|
+
*/
|
|
17
|
+
declare const createModel: (name: string, definition: ModelDefinition, route?: string) => any;
|
|
9
18
|
export default createModel;
|
|
10
19
|
//# sourceMappingURL=model.factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.factory.d.ts","sourceRoot":"","sources":["../../../src/js/lib/model.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAMzD,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"model.factory.d.ts","sourceRoot":"","sources":["../../../src/js/lib/model.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAMzD,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAElD;;;;;GAKG;AACH,KAAK,UAAU,GACX;IAAE,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,GAC1D,wBAAwB,CAAC,OAAO,CAAC,GACjC,SAAS,CAAC;AAEd,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AA2DlD;;GAEG;AACH,QAAA,MAAM,WAAW,GACf,MAAM,MAAM,EACZ,YAAY,eAAe,EAC3B,QAAQ,MAAM,KACb,GA6BF,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -2,19 +2,25 @@ import mongoose from "mongoose";
|
|
|
2
2
|
import buildSchema from "./schema.builder.js";
|
|
3
3
|
import AppLog from "../utils/AppLog.js";
|
|
4
4
|
import AppError from "../utils/AppError.js";
|
|
5
|
+
/**
|
|
6
|
+
* Extracts the pure Mongoose definition from any supported field format.
|
|
7
|
+
*/
|
|
5
8
|
const extractMongooseDefinition = (value) => {
|
|
9
|
+
// Case 1: Unified field → { mongoose, zod }
|
|
6
10
|
if (value &&
|
|
7
11
|
typeof value === "object" &&
|
|
8
12
|
!Array.isArray(value) &&
|
|
9
13
|
"mongoose" in value) {
|
|
10
14
|
return value.mongoose;
|
|
11
15
|
}
|
|
16
|
+
// Case 2: Already a classic Mongoose schema definition
|
|
12
17
|
if (value &&
|
|
13
18
|
typeof value === "object" &&
|
|
14
19
|
!Array.isArray(value) &&
|
|
15
20
|
"type" in value) {
|
|
16
21
|
return value;
|
|
17
22
|
}
|
|
23
|
+
// Case 3: Primitive values (string | number | boolean | Date)
|
|
18
24
|
switch (typeof value) {
|
|
19
25
|
case "number":
|
|
20
26
|
return { type: Number, default: value };
|
|
@@ -26,27 +32,35 @@ const extractMongooseDefinition = (value) => {
|
|
|
26
32
|
if (value instanceof Date) {
|
|
27
33
|
return { type: Date, default: value };
|
|
28
34
|
}
|
|
35
|
+
// Fallback (arrays, nested objects, etc.)
|
|
29
36
|
return value;
|
|
30
37
|
}
|
|
31
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* Converts the whole definition object into a clean Mongoose-compatible definition.
|
|
41
|
+
*/
|
|
32
42
|
const normalizeDefinition = (definition) => {
|
|
33
43
|
return Object.fromEntries(Object.entries(definition).map(([key, value]) => [
|
|
34
44
|
key,
|
|
35
45
|
extractMongooseDefinition(value),
|
|
36
46
|
]));
|
|
37
47
|
};
|
|
38
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Creates (or returns existing) Mongoose model.
|
|
50
|
+
*/
|
|
51
|
+
const createModel = (name, definition, route) => {
|
|
52
|
+
// Return existing model if already registered
|
|
39
53
|
if (mongoose.modelNames().includes(name)) {
|
|
40
54
|
return mongoose.model(name);
|
|
41
55
|
}
|
|
42
56
|
if (!definition) {
|
|
43
57
|
console.log(name);
|
|
44
58
|
throw new AppError({
|
|
45
|
-
message: `
|
|
59
|
+
message: `schema for ${route} is required`,
|
|
46
60
|
statusCode: 409,
|
|
47
61
|
hint: name.toLowerCase() === "users" || name.toLowerCase() === "user"
|
|
48
|
-
? "If
|
|
49
|
-
: `Make sure
|
|
62
|
+
? "If model for User model is written in auth collection, make sure schema is written there too."
|
|
63
|
+
: `Make sure schema is also written in ${route?.endsWith("s") ? route.slice(0, -1) : route} collection.`,
|
|
50
64
|
details: {
|
|
51
65
|
handler: "",
|
|
52
66
|
method: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.factory.js","sourceRoot":"","sources":["../../../src/js/lib/model.factory.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,QAAQ,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"model.factory.js","sourceRoot":"","sources":["../../../src/js/lib/model.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.registry.js","sourceRoot":"","sources":["../../../src/js/lib/model.registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.registry.js","sourceRoot":"","sources":["../../../src/js/lib/model.registry.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,aAAa,GAAmD,EAAE,CAAC;AAEzE,eAAe,aAAa,CAAC"}
|