@starklabs/forge 1.0.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/admin/index.d.ts +4 -0
- package/dist/js/admin/index.d.ts.map +1 -0
- package/dist/js/admin/index.js +5 -0
- package/dist/js/admin/index.js.map +1 -0
- package/dist/js/app.d.ts +3 -0
- package/dist/js/app.d.ts.map +1 -0
- package/dist/js/app.js +55 -0
- package/dist/js/app.js.map +1 -0
- package/dist/js/auth/bunch.auth.d.ts +8 -0
- package/dist/js/auth/bunch.auth.d.ts.map +1 -0
- package/dist/js/auth/bunch.auth.js +8 -0
- package/dist/js/auth/bunch.auth.js.map +1 -0
- package/dist/js/auth/createOTPModel.d.ts +2 -0
- package/dist/js/auth/createOTPModel.d.ts.map +1 -0
- package/dist/js/auth/createOTPModel.js +2 -0
- package/dist/js/auth/createOTPModel.js.map +1 -0
- package/dist/js/auth/forgotPassword.d.ts +10 -0
- package/dist/js/auth/forgotPassword.d.ts.map +1 -0
- package/dist/js/auth/forgotPassword.js +39 -0
- package/dist/js/auth/forgotPassword.js.map +1 -0
- package/dist/js/auth/index.d.ts +5 -0
- package/dist/js/auth/index.d.ts.map +1 -0
- package/dist/js/auth/index.js +26 -0
- package/dist/js/auth/index.js.map +1 -0
- package/dist/js/auth/login.d.ts +10 -0
- package/dist/js/auth/login.d.ts.map +1 -0
- package/dist/js/auth/login.js +32 -0
- package/dist/js/auth/login.js.map +1 -0
- package/dist/js/auth/logout.d.ts +5 -0
- package/dist/js/auth/logout.d.ts.map +1 -0
- package/dist/js/auth/logout.js +10 -0
- package/dist/js/auth/logout.js.map +1 -0
- package/dist/js/auth/resendOTP.d.ts +10 -0
- package/dist/js/auth/resendOTP.d.ts.map +1 -0
- package/dist/js/auth/resendOTP.js +62 -0
- package/dist/js/auth/resendOTP.js.map +1 -0
- package/dist/js/auth/resetPassword.d.ts +10 -0
- package/dist/js/auth/resetPassword.d.ts.map +1 -0
- package/dist/js/auth/resetPassword.js +60 -0
- package/dist/js/auth/resetPassword.js.map +1 -0
- package/dist/js/auth/sendOTP.d.ts +6 -0
- package/dist/js/auth/sendOTP.d.ts.map +1 -0
- package/dist/js/auth/sendOTP.js +28 -0
- package/dist/js/auth/sendOTP.js.map +1 -0
- package/dist/js/auth/signup.d.ts +10 -0
- package/dist/js/auth/signup.d.ts.map +1 -0
- package/dist/js/auth/signup.js +47 -0
- package/dist/js/auth/signup.js.map +1 -0
- package/dist/js/auth/twoFactorAuth.d.ts +2 -0
- package/dist/js/auth/twoFactorAuth.d.ts.map +1 -0
- package/dist/js/auth/twoFactorAuth.js +3 -0
- package/dist/js/auth/twoFactorAuth.js.map +1 -0
- package/dist/js/auth/utils/authenticateUser.d.ts +11 -0
- package/dist/js/auth/utils/authenticateUser.d.ts.map +1 -0
- package/dist/js/auth/utils/authenticateUser.js +60 -0
- package/dist/js/auth/utils/authenticateUser.js.map +1 -0
- package/dist/js/auth/utils/createOTPModel.d.ts +4 -0
- package/dist/js/auth/utils/createOTPModel.d.ts.map +1 -0
- package/dist/js/auth/utils/createOTPModel.js +28 -0
- package/dist/js/auth/utils/createOTPModel.js.map +1 -0
- package/dist/js/auth/utils/createOTPUser.d.ts +12 -0
- package/dist/js/auth/utils/createOTPUser.d.ts.map +1 -0
- package/dist/js/auth/utils/createOTPUser.js +63 -0
- package/dist/js/auth/utils/createOTPUser.js.map +1 -0
- package/dist/js/auth/utils/createUser.d.ts +11 -0
- package/dist/js/auth/utils/createUser.d.ts.map +1 -0
- package/dist/js/auth/utils/createUser.js +42 -0
- package/dist/js/auth/utils/createUser.js.map +1 -0
- package/dist/js/auth/utils/deleteOTPUser.d.ts +3 -0
- package/dist/js/auth/utils/deleteOTPUser.d.ts.map +1 -0
- package/dist/js/auth/utils/deleteOTPUser.js +3 -0
- package/dist/js/auth/utils/deleteOTPUser.js.map +1 -0
- package/dist/js/auth/utils/findUser.d.ts +2 -0
- package/dist/js/auth/utils/findUser.d.ts.map +1 -0
- package/dist/js/auth/utils/findUser.js +2 -0
- package/dist/js/auth/utils/findUser.js.map +1 -0
- package/dist/js/auth/utils/getModel.d.ts +6 -0
- package/dist/js/auth/utils/getModel.d.ts.map +1 -0
- package/dist/js/auth/utils/getModel.js +18 -0
- package/dist/js/auth/utils/getModel.js.map +1 -0
- package/dist/js/auth/utils/getOTPData.d.ts +9 -0
- package/dist/js/auth/utils/getOTPData.d.ts.map +1 -0
- package/dist/js/auth/utils/getOTPData.js +26 -0
- package/dist/js/auth/utils/getOTPData.js.map +1 -0
- package/dist/js/auth/utils/getOTPModel.d.ts +4 -0
- package/dist/js/auth/utils/getOTPModel.d.ts.map +1 -0
- package/dist/js/auth/utils/getOTPModel.js +20 -0
- package/dist/js/auth/utils/getOTPModel.js.map +1 -0
- package/dist/js/auth/utils/getOTPUser.d.ts +8 -0
- package/dist/js/auth/utils/getOTPUser.d.ts.map +1 -0
- package/dist/js/auth/utils/getOTPUser.js +21 -0
- package/dist/js/auth/utils/getOTPUser.js.map +1 -0
- package/dist/js/auth/utils/getUser.d.ts +10 -0
- package/dist/js/auth/utils/getUser.d.ts.map +1 -0
- package/dist/js/auth/utils/getUser.js +27 -0
- package/dist/js/auth/utils/getUser.js.map +1 -0
- package/dist/js/auth/utils/handleIsVerfieid.d.ts +9 -0
- package/dist/js/auth/utils/handleIsVerfieid.d.ts.map +1 -0
- package/dist/js/auth/utils/handleIsVerfieid.js +20 -0
- package/dist/js/auth/utils/handleIsVerfieid.js.map +1 -0
- package/dist/js/auth/utils/handleIsVerified.d.ts +11 -0
- package/dist/js/auth/utils/handleIsVerified.d.ts.map +1 -0
- package/dist/js/auth/utils/handleIsVerified.js +31 -0
- package/dist/js/auth/utils/handleIsVerified.js.map +1 -0
- package/dist/js/auth/utils/modeMap.d.ts +38 -0
- package/dist/js/auth/utils/modeMap.d.ts.map +1 -0
- package/dist/js/auth/utils/modeMap.js +15 -0
- package/dist/js/auth/utils/modeMap.js.map +1 -0
- package/dist/js/auth/utils/otpHTML.d.ts +2 -0
- package/dist/js/auth/utils/otpHTML.d.ts.map +1 -0
- package/dist/js/auth/utils/otpHTML.js +2 -0
- package/dist/js/auth/utils/otpHTML.js.map +1 -0
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts +9 -0
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts.map +1 -0
- package/dist/js/auth/utils/otpVerifiedResponse.js +22 -0
- package/dist/js/auth/utils/otpVerifiedResponse.js.map +1 -0
- package/dist/js/auth/utils/sendCookie.d.ts +14 -0
- package/dist/js/auth/utils/sendCookie.d.ts.map +1 -0
- package/dist/js/auth/utils/sendCookie.js +73 -0
- package/dist/js/auth/utils/sendCookie.js.map +1 -0
- package/dist/js/auth/utils/sendOTP.d.ts +7 -0
- package/dist/js/auth/utils/sendOTP.d.ts.map +1 -0
- package/dist/js/auth/utils/sendOTP.js +48 -0
- package/dist/js/auth/utils/sendOTP.js.map +1 -0
- package/dist/js/auth/utils/verifyCredentials.d.ts +9 -0
- package/dist/js/auth/utils/verifyCredentials.d.ts.map +1 -0
- package/dist/js/auth/utils/verifyCredentials.js +39 -0
- package/dist/js/auth/utils/verifyCredentials.js.map +1 -0
- package/dist/js/auth/verifyOTP.d.ts +10 -0
- package/dist/js/auth/verifyOTP.d.ts.map +1 -0
- package/dist/js/auth/verifyOTP.js +110 -0
- package/dist/js/auth/verifyOTP.js.map +1 -0
- package/dist/js/config/cloudinary.d.ts +5 -0
- package/dist/js/config/cloudinary.d.ts.map +1 -0
- package/dist/js/config/cloudinary.js +25 -0
- package/dist/js/config/cloudinary.js.map +1 -0
- package/dist/js/config/defaultConfig.d.ts +3 -0
- package/dist/js/config/defaultConfig.d.ts.map +1 -0
- package/dist/js/config/defaultConfig.js +12 -0
- package/dist/js/config/defaultConfig.js.map +1 -0
- package/dist/js/config/duration.d.ts +22 -0
- package/dist/js/config/duration.d.ts.map +1 -0
- package/dist/js/config/duration.js +35 -0
- package/dist/js/config/duration.js.map +1 -0
- package/dist/js/config/envs.d.ts +32 -0
- package/dist/js/config/envs.d.ts.map +1 -0
- package/dist/js/config/envs.js +10 -0
- package/dist/js/config/envs.js.map +1 -0
- package/dist/js/config/handleReqType.d.ts +7 -0
- package/dist/js/config/handleReqType.d.ts.map +1 -0
- package/dist/js/config/handleReqType.js +13 -0
- package/dist/js/config/handleReqType.js.map +1 -0
- package/dist/js/config/handlerMap.d.ts +3 -0
- package/dist/js/config/handlerMap.d.ts.map +1 -0
- package/dist/js/config/handlerMap.js +29 -0
- package/dist/js/config/handlerMap.js.map +1 -0
- package/dist/js/config/reqTypes.d.ts +2 -0
- package/dist/js/config/reqTypes.d.ts.map +1 -0
- package/dist/js/config/reqTypes.js +2 -0
- package/dist/js/config/reqTypes.js.map +1 -0
- package/dist/js/config/sendEmail.d.ts +11 -0
- package/dist/js/config/sendEmail.d.ts.map +1 -0
- package/dist/js/config/sendEmail.js +95 -0
- package/dist/js/config/sendEmail.js.map +1 -0
- package/dist/js/core/app.d.ts +3 -0
- package/dist/js/core/app.d.ts.map +1 -0
- package/dist/js/core/app.js +19 -0
- package/dist/js/core/app.js.map +1 -0
- package/dist/js/crud/bunch.crud.d.ts +11 -0
- package/dist/js/crud/bunch.crud.d.ts.map +1 -0
- package/dist/js/crud/bunch.crud.js +11 -0
- package/dist/js/crud/bunch.crud.js.map +1 -0
- package/dist/js/crud/create.d.ts +10 -0
- package/dist/js/crud/create.d.ts.map +1 -0
- package/dist/js/crud/create.js +72 -0
- package/dist/js/crud/create.js.map +1 -0
- package/dist/js/crud/createBulk.d.ts +10 -0
- package/dist/js/crud/createBulk.d.ts.map +1 -0
- package/dist/js/crud/createBulk.js +20 -0
- package/dist/js/crud/createBulk.js.map +1 -0
- package/dist/js/crud/files/file.update.d.ts +10 -0
- package/dist/js/crud/files/file.update.d.ts.map +1 -0
- package/dist/js/crud/files/file.update.js +28 -0
- package/dist/js/crud/files/file.update.js.map +1 -0
- package/dist/js/crud/handleUploads/file.add.d.ts +10 -0
- package/dist/js/crud/handleUploads/file.add.d.ts.map +1 -0
- package/dist/js/crud/handleUploads/file.add.js +61 -0
- package/dist/js/crud/handleUploads/file.add.js.map +1 -0
- package/dist/js/crud/handleUploads/file.create.d.ts +10 -0
- package/dist/js/crud/handleUploads/file.create.d.ts.map +1 -0
- package/dist/js/crud/handleUploads/file.create.js +33 -0
- package/dist/js/crud/handleUploads/file.create.js.map +1 -0
- package/dist/js/crud/handleUploads/file.delete.d.ts +10 -0
- package/dist/js/crud/handleUploads/file.delete.d.ts.map +1 -0
- package/dist/js/crud/handleUploads/file.delete.js +35 -0
- package/dist/js/crud/handleUploads/file.delete.js.map +1 -0
- package/dist/js/crud/handleUploads/file.update.d.ts +10 -0
- package/dist/js/crud/handleUploads/file.update.d.ts.map +1 -0
- package/dist/js/crud/handleUploads/file.update.js +30 -0
- package/dist/js/crud/handleUploads/file.update.js.map +1 -0
- package/dist/js/crud/index.d.ts +5 -0
- package/dist/js/crud/index.d.ts.map +1 -0
- package/dist/js/crud/index.js +36 -0
- package/dist/js/crud/index.js.map +1 -0
- package/dist/js/crud/read.d.ts +10 -0
- package/dist/js/crud/read.d.ts.map +1 -0
- package/dist/js/crud/read.js +27 -0
- package/dist/js/crud/read.js.map +1 -0
- package/dist/js/crud/readAll.d.ts +10 -0
- package/dist/js/crud/readAll.d.ts.map +1 -0
- package/dist/js/crud/readAll.js +24 -0
- package/dist/js/crud/readAll.js.map +1 -0
- package/dist/js/crud/remove.d.ts +10 -0
- package/dist/js/crud/remove.d.ts.map +1 -0
- package/dist/js/crud/remove.js +28 -0
- package/dist/js/crud/remove.js.map +1 -0
- package/dist/js/crud/removeAll.d.ts +10 -0
- package/dist/js/crud/removeAll.d.ts.map +1 -0
- package/dist/js/crud/removeAll.js +37 -0
- package/dist/js/crud/removeAll.js.map +1 -0
- package/dist/js/crud/update.d.ts +10 -0
- package/dist/js/crud/update.d.ts.map +1 -0
- package/dist/js/crud/update.js +33 -0
- package/dist/js/crud/update.js.map +1 -0
- package/dist/js/crud/utils/authroizeAccess.d.ts +10 -0
- package/dist/js/crud/utils/authroizeAccess.d.ts.map +1 -0
- package/dist/js/crud/utils/authroizeAccess.js +48 -0
- package/dist/js/crud/utils/authroizeAccess.js.map +1 -0
- package/dist/js/crud/utils/getItem.d.ts +11 -0
- package/dist/js/crud/utils/getItem.d.ts.map +1 -0
- package/dist/js/crud/utils/getItem.js +68 -0
- package/dist/js/crud/utils/getItem.js.map +1 -0
- package/dist/js/crud/utils/getParam.d.ts +8 -0
- package/dist/js/crud/utils/getParam.d.ts.map +1 -0
- package/dist/js/crud/utils/getParam.js +19 -0
- package/dist/js/crud/utils/getParam.js.map +1 -0
- package/dist/js/crud/utils/validateOwner.d.ts +7 -0
- package/dist/js/crud/utils/validateOwner.d.ts.map +1 -0
- package/dist/js/crud/utils/validateOwner.js +5 -0
- package/dist/js/crud/utils/validateOwner.js.map +1 -0
- package/dist/js/health/bunch.health.d.ts +6 -0
- package/dist/js/health/bunch.health.d.ts.map +1 -0
- package/dist/js/health/bunch.health.js +6 -0
- package/dist/js/health/bunch.health.js.map +1 -0
- package/dist/js/health/delete.health.d.ts +4 -0
- package/dist/js/health/delete.health.d.ts.map +1 -0
- package/dist/js/health/delete.health.js +5 -0
- package/dist/js/health/delete.health.js.map +1 -0
- package/dist/js/health/get.health.d.ts +4 -0
- package/dist/js/health/get.health.d.ts.map +1 -0
- package/dist/js/health/get.health.js +5 -0
- package/dist/js/health/get.health.js.map +1 -0
- package/dist/js/health/health.collection.d.ts +4 -0
- package/dist/js/health/health.collection.d.ts.map +1 -0
- package/dist/js/health/health.collection.js +39 -0
- package/dist/js/health/health.collection.js.map +1 -0
- package/dist/js/health/health.controller.d.ts +4 -0
- package/dist/js/health/health.controller.d.ts.map +1 -0
- package/dist/js/health/health.controller.js +5 -0
- package/dist/js/health/health.controller.js.map +1 -0
- package/dist/js/health/index.d.ts +5 -0
- package/dist/js/health/index.d.ts.map +1 -0
- package/dist/js/health/index.js +10 -0
- package/dist/js/health/index.js.map +1 -0
- package/dist/js/health/patch.health.d.ts +4 -0
- package/dist/js/health/patch.health.d.ts.map +1 -0
- package/dist/js/health/patch.health.js +5 -0
- package/dist/js/health/patch.health.js.map +1 -0
- package/dist/js/health/post.health.d.ts +4 -0
- package/dist/js/health/post.health.d.ts.map +1 -0
- package/dist/js/health/post.health.js +5 -0
- package/dist/js/health/post.health.js.map +1 -0
- package/dist/js/health/put.health.d.ts +4 -0
- package/dist/js/health/put.health.d.ts.map +1 -0
- package/dist/js/health/put.health.js +5 -0
- package/dist/js/health/put.health.js.map +1 -0
- package/dist/js/index.d.ts +13 -0
- package/dist/js/index.d.ts.map +1 -0
- package/dist/js/index.js +21 -0
- package/dist/js/index.js.map +1 -0
- package/dist/js/lib/Mongoose.d.ts +53 -0
- package/dist/js/lib/Mongoose.d.ts.map +1 -0
- package/dist/js/lib/Mongoose.js +2 -0
- package/dist/js/lib/Mongoose.js.map +1 -0
- package/dist/js/lib/OA.d.ts +2 -0
- package/dist/js/lib/OA.d.ts.map +1 -0
- package/dist/js/lib/OA.js +2 -0
- package/dist/js/lib/OA.js.map +1 -0
- package/dist/js/lib/OAuthProviders.d.ts +3 -0
- package/dist/js/lib/OAuthProviders.d.ts.map +1 -0
- package/dist/js/lib/OAuthProviders.js +18 -0
- package/dist/js/lib/OAuthProviders.js.map +1 -0
- package/dist/js/lib/PROVIDERS.d.ts +2 -0
- package/dist/js/lib/PROVIDERS.d.ts.map +1 -0
- package/dist/js/lib/PROVIDERS.js +2 -0
- package/dist/js/lib/PROVIDERS.js.map +1 -0
- package/dist/js/lib/db.d.ts +8 -0
- package/dist/js/lib/db.d.ts.map +1 -0
- package/dist/js/lib/db.js +28 -0
- package/dist/js/lib/db.js.map +1 -0
- package/dist/js/lib/handler.d.ts +9 -0
- package/dist/js/lib/handler.d.ts.map +1 -0
- package/dist/js/lib/handler.js +11 -0
- package/dist/js/lib/handler.js.map +1 -0
- package/dist/js/lib/handlerMap.d.ts +3 -0
- package/dist/js/lib/handlerMap.d.ts.map +1 -0
- package/dist/js/lib/handlerMap.js +18 -0
- package/dist/js/lib/handlerMap.js.map +1 -0
- package/dist/js/lib/model.factory.d.ts +8 -0
- package/dist/js/lib/model.factory.d.ts.map +1 -0
- package/dist/js/lib/model.factory.js +49 -0
- package/dist/js/lib/model.factory.js.map +1 -0
- package/dist/js/lib/model.registry.d.ts +4 -0
- package/dist/js/lib/model.registry.d.ts.map +1 -0
- package/dist/js/lib/model.registry.js +4 -0
- package/dist/js/lib/model.registry.js.map +1 -0
- package/dist/js/lib/mongoose.fields.d.ts +40 -0
- package/dist/js/lib/mongoose.fields.d.ts.map +1 -0
- package/dist/js/lib/mongoose.fields.js +187 -0
- package/dist/js/lib/mongoose.fields.js.map +1 -0
- package/dist/js/lib/roles.d.ts +3 -0
- package/dist/js/lib/roles.d.ts.map +1 -0
- package/dist/js/lib/roles.js +13 -0
- package/dist/js/lib/roles.js.map +1 -0
- package/dist/js/lib/schema.builder.d.ts +6 -0
- package/dist/js/lib/schema.builder.d.ts.map +1 -0
- package/dist/js/lib/schema.builder.js +28 -0
- package/dist/js/lib/schema.builder.js.map +1 -0
- package/dist/js/lib/zod.fields.d.ts +119 -0
- package/dist/js/lib/zod.fields.d.ts.map +1 -0
- package/dist/js/lib/zod.fields.js +133 -0
- package/dist/js/lib/zod.fields.js.map +1 -0
- package/dist/js/middleware/auth.middleware.d.ts +5 -0
- package/dist/js/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/js/middleware/auth.middleware.js +86 -0
- package/dist/js/middleware/auth.middleware.js.map +1 -0
- package/dist/js/middleware/error.middleware.d.ts +5 -0
- package/dist/js/middleware/error.middleware.d.ts.map +1 -0
- package/dist/js/middleware/error.middleware.js +25 -0
- package/dist/js/middleware/error.middleware.js.map +1 -0
- package/dist/js/middleware/multer.middleware.d.ts +5 -0
- package/dist/js/middleware/multer.middleware.d.ts.map +1 -0
- package/dist/js/middleware/multer.middleware.js +97 -0
- package/dist/js/middleware/multer.middleware.js.map +1 -0
- package/dist/js/middleware/rateLimit.middleware.d.ts +2 -0
- package/dist/js/middleware/rateLimit.middleware.d.ts.map +1 -0
- package/dist/js/middleware/rateLimit.middleware.js +19 -0
- package/dist/js/middleware/rateLimit.middleware.js.map +1 -0
- package/dist/js/realtime/index.d.ts +4 -0
- package/dist/js/realtime/index.d.ts.map +1 -0
- package/dist/js/realtime/index.js +5 -0
- package/dist/js/realtime/index.js.map +1 -0
- package/dist/js/types/Collection.d.ts +41 -0
- package/dist/js/types/Collection.d.ts.map +1 -0
- package/dist/js/types/Collection.js +2 -0
- package/dist/js/types/Collection.js.map +1 -0
- package/dist/js/types/Constructor.d.ts +30 -0
- package/dist/js/types/Constructor.d.ts.map +1 -0
- package/dist/js/types/Constructor.js +2 -0
- package/dist/js/types/Constructor.js.map +1 -0
- package/dist/js/types/MongooseOTPSchemaObj.d.ts +10 -0
- package/dist/js/types/MongooseOTPSchemaObj.d.ts.map +1 -0
- package/dist/js/types/MongooseOTPSchemaObj.js +2 -0
- package/dist/js/types/MongooseOTPSchemaObj.js.map +1 -0
- package/dist/js/types/Routepath.d.ts +2 -0
- package/dist/js/types/Routepath.d.ts.map +1 -0
- package/dist/js/types/Routepath.js +2 -0
- package/dist/js/types/Routepath.js.map +1 -0
- package/dist/js/types/StoreFile.d.ts +10 -0
- package/dist/js/types/StoreFile.d.ts.map +1 -0
- package/dist/js/types/StoreFile.js +2 -0
- package/dist/js/types/StoreFile.js.map +1 -0
- package/dist/js/types/ValidationsObj.d.ts +7 -0
- package/dist/js/types/ValidationsObj.d.ts.map +1 -0
- package/dist/js/types/ValidationsObj.js +2 -0
- package/dist/js/types/ValidationsObj.js.map +1 -0
- package/dist/js/types/authHandlers.d.ts +2 -0
- package/dist/js/types/authHandlers.d.ts.map +1 -0
- package/dist/js/types/authHandlers.js +2 -0
- package/dist/js/types/authHandlers.js.map +1 -0
- package/dist/js/types/crudHandlers.d.ts +2 -0
- package/dist/js/types/crudHandlers.d.ts.map +1 -0
- package/dist/js/types/crudHandlers.js +2 -0
- package/dist/js/types/crudHandlers.js.map +1 -0
- package/dist/js/types/email.d.ts +12 -0
- package/dist/js/types/email.d.ts.map +1 -0
- package/dist/js/types/email.js +2 -0
- package/dist/js/types/email.js.map +1 -0
- package/dist/js/types/healthHandlers.d.ts +2 -0
- package/dist/js/types/healthHandlers.d.ts.map +1 -0
- package/dist/js/types/healthHandlers.js +2 -0
- package/dist/js/types/healthHandlers.js.map +1 -0
- package/dist/js/types/upload.d.ts +9 -0
- package/dist/js/types/upload.d.ts.map +1 -0
- package/dist/js/types/upload.js +2 -0
- package/dist/js/types/upload.js.map +1 -0
- package/dist/js/types/uploadFile.d.ts +10 -0
- package/dist/js/types/uploadFile.d.ts.map +1 -0
- package/dist/js/types/uploadFile.js +2 -0
- package/dist/js/types/uploadFile.js.map +1 -0
- package/dist/js/types/uploadHandlers.d.ts +2 -0
- package/dist/js/types/uploadHandlers.d.ts.map +1 -0
- package/dist/js/types/uploadHandlers.js +2 -0
- package/dist/js/types/uploadHandlers.js.map +1 -0
- package/dist/js/upload/create.d.ts +8 -0
- package/dist/js/upload/create.d.ts.map +1 -0
- package/dist/js/upload/create.js +71 -0
- package/dist/js/upload/create.js.map +1 -0
- package/dist/js/upload/delete.d.ts +8 -0
- package/dist/js/upload/delete.d.ts.map +1 -0
- package/dist/js/upload/delete.js +107 -0
- package/dist/js/upload/delete.js.map +1 -0
- package/dist/js/upload/index.d.ts +3 -0
- package/dist/js/upload/index.d.ts.map +1 -0
- package/dist/js/upload/index.js +3 -0
- package/dist/js/upload/index.js.map +1 -0
- package/dist/js/upload/providers/cloudinary.provider.d.ts +2 -0
- package/dist/js/upload/providers/cloudinary.provider.d.ts.map +1 -0
- package/dist/js/upload/providers/cloudinary.provider.js +2 -0
- package/dist/js/upload/providers/cloudinary.provider.js.map +1 -0
- package/dist/js/upload/update.d.ts +10 -0
- package/dist/js/upload/update.d.ts.map +1 -0
- package/dist/js/upload/update.js +144 -0
- package/dist/js/upload/update.js.map +1 -0
- package/dist/js/utils/AppError.d.ts +26 -0
- package/dist/js/utils/AppError.d.ts.map +1 -0
- package/dist/js/utils/AppError.js +18 -0
- package/dist/js/utils/AppError.js.map +1 -0
- package/dist/js/utils/AppLog.d.ts +10 -0
- package/dist/js/utils/AppLog.d.ts.map +1 -0
- package/dist/js/utils/AppLog.js +12 -0
- package/dist/js/utils/AppLog.js.map +1 -0
- package/dist/js/utils/Applog.d.ts +2 -0
- package/dist/js/utils/Applog.d.ts.map +1 -0
- package/dist/js/utils/Applog.js +2 -0
- package/dist/js/utils/Applog.js.map +1 -0
- package/dist/js/utils/AsyncHandler.d.ts +4 -0
- package/dist/js/utils/AsyncHandler.d.ts.map +1 -0
- package/dist/js/utils/AsyncHandler.js +5 -0
- package/dist/js/utils/AsyncHandler.js.map +1 -0
- package/dist/js/utils/extractParamsNames.d.ts +2 -0
- package/dist/js/utils/extractParamsNames.d.ts.map +1 -0
- package/dist/js/utils/extractParamsNames.js +13 -0
- package/dist/js/utils/extractParamsNames.js.map +1 -0
- package/dist/js/utils/getErrorDetail.d.ts +8 -0
- package/dist/js/utils/getErrorDetail.d.ts.map +1 -0
- package/dist/js/utils/getErrorDetail.js +9 -0
- package/dist/js/utils/getErrorDetail.js.map +1 -0
- package/dist/js/utils/getModel.d.ts +8 -0
- package/dist/js/utils/getModel.d.ts.map +1 -0
- package/dist/js/utils/getModel.js +27 -0
- package/dist/js/utils/getModel.js.map +1 -0
- package/dist/js/utils/handleJWT.d.ts +11 -0
- package/dist/js/utils/handleJWT.d.ts.map +1 -0
- package/dist/js/utils/handleJWT.js +89 -0
- package/dist/js/utils/handleJWT.js.map +1 -0
- package/dist/js/utils/libsodium.d.ts +15 -0
- package/dist/js/utils/libsodium.d.ts.map +1 -0
- package/dist/js/utils/libsodium.js +185 -0
- package/dist/js/utils/libsodium.js.map +1 -0
- package/dist/js/utils/otpPurposes.d.ts +3 -0
- package/dist/js/utils/otpPurposes.d.ts.map +1 -0
- package/dist/js/utils/otpPurposes.js +38 -0
- package/dist/js/utils/otpPurposes.js.map +1 -0
- package/dist/js/utils/response.d.ts +10 -0
- package/dist/js/utils/response.d.ts.map +1 -0
- package/dist/js/utils/response.js +9 -0
- package/dist/js/utils/response.js.map +1 -0
- package/dist/js/utils/sanitize.d.ts +3 -0
- package/dist/js/utils/sanitize.d.ts.map +1 -0
- package/dist/js/utils/sanitize.js +13 -0
- package/dist/js/utils/sanitize.js.map +1 -0
- package/dist/js/utils/validate.d.ts +4 -0
- package/dist/js/utils/validate.d.ts.map +1 -0
- package/dist/js/utils/validate.js +59 -0
- package/dist/js/utils/validate.js.map +1 -0
- package/dist/js/utils/validationKeyError.d.ts +4 -0
- package/dist/js/utils/validationKeyError.d.ts.map +1 -0
- package/dist/js/utils/validationKeyError.js +38 -0
- package/dist/js/utils/validationKeyError.js.map +1 -0
- package/dist/js/validations.d.ts +3 -0
- package/dist/js/validations.d.ts.map +1 -0
- package/dist/js/validations.js +6 -0
- package/dist/js/validations.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getModel.d.ts","sourceRoot":"","sources":["../../../src/js/utils/getModel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,QAAA,MAAM,QAAQ,GAAI,kCAIf;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd,gFAwBA,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import registerModel from "../lib/model.registry.js";
|
|
2
|
+
import AppError from "./AppError.js";
|
|
3
|
+
import getErrorDetail from "./getErrorDetail.js";
|
|
4
|
+
const getModel = ({ modelName, routeName, route, }) => {
|
|
5
|
+
if (!modelName) {
|
|
6
|
+
throw new AppError({
|
|
7
|
+
message: `Model name is required for route '${routeName}'`,
|
|
8
|
+
statusCode: 500,
|
|
9
|
+
code: "MODEL_NAME_REQUIRED",
|
|
10
|
+
hint: "Provide a valid modelName when configuring the collection.",
|
|
11
|
+
details: getErrorDetail(route),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const Model = registerModel[modelName];
|
|
15
|
+
if (!Model) {
|
|
16
|
+
throw new AppError({
|
|
17
|
+
message: `Model '${modelName}' is not registered`,
|
|
18
|
+
statusCode: 500,
|
|
19
|
+
code: "MODEL_NOT_REGISTERED",
|
|
20
|
+
hint: "Register the model before using it in a collection.",
|
|
21
|
+
details: getErrorDetail(route),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return Model;
|
|
25
|
+
};
|
|
26
|
+
export default getModel;
|
|
27
|
+
//# sourceMappingURL=getModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getModel.js","sourceRoot":"","sources":["../../../src/js/utils/getModel.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,MAAM,QAAQ,GAAG,CAAC,EAChB,SAAS,EACT,SAAS,EACT,KAAK,GAKN,EAAE,EAAE;IACH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,qCAAqC,SAAS,GAAG;YAC1D,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,4DAA4D;YAClE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,UAAU,SAAS,qBAAqB;YACjD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,qDAAqD;YAC3D,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type JwtPayload } from "jsonwebtoken";
|
|
2
|
+
import type { Route } from "../types/Collection.js";
|
|
3
|
+
export declare const signJWT: ({ payload, route, }: {
|
|
4
|
+
payload: string | object | Buffer;
|
|
5
|
+
route: Route;
|
|
6
|
+
}) => string;
|
|
7
|
+
export declare const verifyJWT: ({ token, route, }: {
|
|
8
|
+
token: string;
|
|
9
|
+
route: Route;
|
|
10
|
+
}) => string | JwtPayload;
|
|
11
|
+
//# sourceMappingURL=handleJWT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleJWT.d.ts","sourceRoot":"","sources":["../../../src/js/utils/handleJWT.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,eAAO,MAAM,OAAO,GAAI,qBAGrB;IACD,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,KAAK,CAAC;CACd,KAAG,MAkDH,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,mBAGvB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,KAAG,MAAM,GAAG,UAsCZ,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import jwt, {} from "jsonwebtoken";
|
|
2
|
+
import AppError from "./AppError.js";
|
|
3
|
+
import getDuration from "../config/duration.js";
|
|
4
|
+
import { getEnvs } from "../config/envs.js";
|
|
5
|
+
import getErrorDetail from "./getErrorDetail.js";
|
|
6
|
+
export const signJWT = ({ payload, route, }) => {
|
|
7
|
+
try {
|
|
8
|
+
if (!payload) {
|
|
9
|
+
throw new AppError({
|
|
10
|
+
message: "Payload is required to sign a JWT",
|
|
11
|
+
statusCode: 400,
|
|
12
|
+
code: "JWT_SIGN_ERROR",
|
|
13
|
+
hint: "Provide a valid payload for JWT generation.",
|
|
14
|
+
details: getErrorDetail(route),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
const { jwtSecret, tokenExpiry } = getEnvs();
|
|
18
|
+
if (!jwtSecret) {
|
|
19
|
+
throw new AppError({
|
|
20
|
+
message: "JWT secret is required",
|
|
21
|
+
statusCode: 500,
|
|
22
|
+
code: "JWT_SIGN_ERROR",
|
|
23
|
+
hint: "Configure 'jwtSecret' in your environment variables.",
|
|
24
|
+
details: getErrorDetail(route),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (!tokenExpiry) {
|
|
28
|
+
throw new AppError({
|
|
29
|
+
message: "Token expiry is required",
|
|
30
|
+
statusCode: 500,
|
|
31
|
+
code: "JWT_SIGN_ERROR",
|
|
32
|
+
hint: "Configure 'tokenExpiry' in your environment variables.",
|
|
33
|
+
details: getErrorDetail(route),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return jwt.sign(payload, jwtSecret, {
|
|
37
|
+
expiresIn: Math.floor(getDuration(tokenExpiry, route) / 1000),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof AppError)
|
|
42
|
+
throw error;
|
|
43
|
+
console.error(error);
|
|
44
|
+
throw new AppError({
|
|
45
|
+
message: "Failed to sign JWT",
|
|
46
|
+
statusCode: 500,
|
|
47
|
+
code: "JWT_SIGN_ERROR",
|
|
48
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
49
|
+
details: getErrorDetail(route),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export const verifyJWT = ({ token, route, }) => {
|
|
54
|
+
try {
|
|
55
|
+
if (!token) {
|
|
56
|
+
throw new AppError({
|
|
57
|
+
message: "JWT token is required",
|
|
58
|
+
statusCode: 400,
|
|
59
|
+
code: "JWT_VERIFY_ERROR",
|
|
60
|
+
hint: "Provide a valid JWT for verification.",
|
|
61
|
+
details: getErrorDetail(route),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const { jwtSecret } = getEnvs();
|
|
65
|
+
if (!jwtSecret) {
|
|
66
|
+
throw new AppError({
|
|
67
|
+
message: "JWT secret is required",
|
|
68
|
+
statusCode: 500,
|
|
69
|
+
code: "JWT_VERIFY_ERROR",
|
|
70
|
+
hint: "Configure 'jwtSecret' in your environment variables.",
|
|
71
|
+
details: getErrorDetail(route),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return jwt.verify(token, jwtSecret);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (error instanceof AppError)
|
|
78
|
+
throw error;
|
|
79
|
+
console.error(error);
|
|
80
|
+
throw new AppError({
|
|
81
|
+
message: "Invalid or expired JWT",
|
|
82
|
+
statusCode: 401,
|
|
83
|
+
code: "JWT_VERIFY_ERROR",
|
|
84
|
+
hint: "Ensure the token is valid, has not expired, and was signed using the correct secret.",
|
|
85
|
+
details: getErrorDetail(route),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=handleJWT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleJWT.js","sourceRoot":"","sources":["../../../src/js/utils/handleJWT.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAmB,MAAM,cAAc,CAAC;AACpD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,OAAO,EACP,KAAK,GAIN,EAAU,EAAE;IACX,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,mCAAmC;gBAC5C,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,6CAA6C;gBACnD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;QAE7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,wBAAwB;gBACjC,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,sDAAsD;gBAC5D,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,0BAA0B;gBACnC,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,wDAAwD;gBAC9D,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;YAClC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ;YAAE,MAAM,KAAK,CAAC;QAE3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,oBAAoB;YAC7B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,yDAAyD;YAC/D,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,KAAK,EACL,KAAK,GAIN,EAAuB,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,uCAAuC;gBAC7C,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;QAEhC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,wBAAwB;gBACjC,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,sDAAsD;gBAC5D,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ;YAAE,MAAM,KAAK,CAAC;QAE3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,wBAAwB;YACjC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,sFAAsF;YAC5F,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Route } from "../types/Collection.js";
|
|
2
|
+
interface SealResult {
|
|
3
|
+
str: string;
|
|
4
|
+
nonce: string;
|
|
5
|
+
publicKey: string;
|
|
6
|
+
securedPrivateKey: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const hash: (str: string, route: Route) => Promise<string>;
|
|
9
|
+
export declare const verifyHash: (password: string, storedHash: string, route: Route) => Promise<boolean>;
|
|
10
|
+
export declare const generateMasterKey: () => Promise<string>;
|
|
11
|
+
export declare const generateJWTSecret: () => Promise<string>;
|
|
12
|
+
export declare const seal: (input: string, masterKey: string, route: Route) => Promise<SealResult>;
|
|
13
|
+
export declare const unSeal: (str: string, nonce: string, publicKey: string, securedPrivateKey: string, masterKey: string, route: Route) => Promise<string>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=libsodium.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsodium.d.ts","sourceRoot":"","sources":["../../../src/js/utils/libsodium.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAGD,eAAO,MAAM,IAAI,GAAU,KAAK,MAAM,EAAE,OAAO,KAAK,KAAG,OAAO,CAAC,MAAM,CAyBpE,CAAC;AAGF,eAAO,MAAM,UAAU,GACrB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,OAAO,KAAK,KACX,OAAO,CAAC,OAAO,CAgDjB,CAAC;AAGF,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CASxD,CAAC;AAGF,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CAYxD,CAAC;AAGF,eAAO,MAAM,IAAI,GACf,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,OAAO,KAAK,KACX,OAAO,CAAC,UAAU,CA6DpB,CAAC;AAGF,eAAO,MAAM,MAAM,GACjB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,mBAAmB,MAAM,EACzB,WAAW,MAAM,EACjB,OAAO,KAAK,KACX,OAAO,CAAC,MAAM,CA0FhB,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import sodium from "libsodium-wrappers-sumo";
|
|
2
|
+
import AppError from "./AppError.js";
|
|
3
|
+
import getErrorDetail from "./getErrorDetail.js";
|
|
4
|
+
export const hash = async (str, route) => {
|
|
5
|
+
if (!str) {
|
|
6
|
+
throw new AppError({
|
|
7
|
+
message: "string is required to hash",
|
|
8
|
+
statusCode: 404,
|
|
9
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
10
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
11
|
+
details: getErrorDetail(route),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
await sodium.ready;
|
|
15
|
+
const salt = sodium.randombytes_buf(sodium.crypto_pwhash_SALTBYTES);
|
|
16
|
+
const hashStr = sodium.crypto_pwhash(32, str, salt, sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE, sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE, sodium.crypto_pwhash_ALG_DEFAULT);
|
|
17
|
+
return `${sodium.to_base64(salt)}:${sodium.to_base64(hashStr)}`;
|
|
18
|
+
};
|
|
19
|
+
export const verifyHash = async (password, storedHash, route) => {
|
|
20
|
+
if (!password) {
|
|
21
|
+
throw new AppError({
|
|
22
|
+
message: "string is required to verify",
|
|
23
|
+
statusCode: 404,
|
|
24
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
25
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
26
|
+
details: getErrorDetail(route),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
if (!storedHash) {
|
|
30
|
+
throw new AppError({
|
|
31
|
+
message: "storedHash is required to verify",
|
|
32
|
+
statusCode: 404,
|
|
33
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
34
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
35
|
+
details: getErrorDetail(route),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
await sodium.ready;
|
|
39
|
+
const [saltB64, hashB64] = storedHash.split(":");
|
|
40
|
+
if (!saltB64 || !hashB64) {
|
|
41
|
+
throw new AppError({
|
|
42
|
+
message: "Invalid stored has format",
|
|
43
|
+
statusCode: 404,
|
|
44
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
45
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
46
|
+
details: getErrorDetail(route),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const salt = sodium.from_base64(saltB64);
|
|
50
|
+
const originalHash = sodium.from_base64(hashB64);
|
|
51
|
+
const testHash = sodium.crypto_pwhash(32, password, salt, sodium.crypto_pwhash_OPSLIMIT_INTERACTIVE, sodium.crypto_pwhash_MEMLIMIT_INTERACTIVE, sodium.crypto_pwhash_ALG_DEFAULT);
|
|
52
|
+
return sodium.memcmp(originalHash, testHash);
|
|
53
|
+
};
|
|
54
|
+
export const generateMasterKey = async () => {
|
|
55
|
+
await sodium.ready;
|
|
56
|
+
const key = sodium.crypto_secretbox_keygen();
|
|
57
|
+
const base64Key = sodium.to_base64(key, sodium.base64_variants.ORIGINAL);
|
|
58
|
+
console.log(base64Key);
|
|
59
|
+
return base64Key;
|
|
60
|
+
};
|
|
61
|
+
export const generateJWTSecret = async () => {
|
|
62
|
+
await sodium.ready;
|
|
63
|
+
const secret = sodium.randombytes_buf(64);
|
|
64
|
+
const base64Secret = sodium.to_base64(secret, sodium.base64_variants.ORIGINAL);
|
|
65
|
+
console.log(base64Secret);
|
|
66
|
+
return base64Secret;
|
|
67
|
+
};
|
|
68
|
+
export const seal = async (input, masterKey, route) => {
|
|
69
|
+
try {
|
|
70
|
+
if (!input) {
|
|
71
|
+
throw new AppError({
|
|
72
|
+
message: "string is required to encrypt",
|
|
73
|
+
statusCode: 404,
|
|
74
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
75
|
+
hint: "Provide a string to encrypt it.",
|
|
76
|
+
details: getErrorDetail(route),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (!masterKey) {
|
|
80
|
+
throw new AppError({
|
|
81
|
+
message: "Master key is required for encryption",
|
|
82
|
+
statusCode: 404,
|
|
83
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
84
|
+
hint: "Provide masterkey in StarkForge({}) - initializing class",
|
|
85
|
+
details: getErrorDetail(route),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
await sodium.ready;
|
|
89
|
+
const keyPair = sodium.crypto_box_keypair();
|
|
90
|
+
const strBytes = sodium.from_string(input);
|
|
91
|
+
const encrypted = sodium.crypto_box_seal(strBytes, keyPair.publicKey);
|
|
92
|
+
const masterKeyBytes = sodium.from_base64(masterKey, sodium.base64_variants.ORIGINAL);
|
|
93
|
+
const nonce = sodium.randombytes_buf(sodium.crypto_secretbox_NONCEBYTES);
|
|
94
|
+
const encryptedPrivateKey = sodium.crypto_secretbox_easy(keyPair.privateKey, nonce, masterKeyBytes);
|
|
95
|
+
return {
|
|
96
|
+
str: sodium.to_base64(encrypted),
|
|
97
|
+
nonce: sodium.to_base64(nonce),
|
|
98
|
+
publicKey: sodium.to_base64(keyPair.publicKey),
|
|
99
|
+
securedPrivateKey: sodium.to_base64(encryptedPrivateKey),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof AppError)
|
|
104
|
+
throw error;
|
|
105
|
+
console.error(error);
|
|
106
|
+
throw new AppError({
|
|
107
|
+
message: "Error while encrypting",
|
|
108
|
+
statusCode: 404,
|
|
109
|
+
code: "LIBSODIUM_HASH_ERROR",
|
|
110
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
111
|
+
details: getErrorDetail(route),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
export const unSeal = async (str, nonce, publicKey, securedPrivateKey, masterKey, route) => {
|
|
116
|
+
try {
|
|
117
|
+
if (!str) {
|
|
118
|
+
throw new AppError({
|
|
119
|
+
message: "Encrypted string is required for decryption",
|
|
120
|
+
statusCode: 400,
|
|
121
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
122
|
+
hint: "Provide the encrypted string returned by seal().",
|
|
123
|
+
details: getErrorDetail(route),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
if (!nonce) {
|
|
127
|
+
throw new AppError({
|
|
128
|
+
message: "Nonce is required for decryption",
|
|
129
|
+
statusCode: 400,
|
|
130
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
131
|
+
hint: "Provide the nonce returned by seal().",
|
|
132
|
+
details: getErrorDetail(route),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
if (!publicKey) {
|
|
136
|
+
throw new AppError({
|
|
137
|
+
message: "Public key is required for decryption",
|
|
138
|
+
statusCode: 400,
|
|
139
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
140
|
+
hint: "Provide the public key returned by seal().",
|
|
141
|
+
details: getErrorDetail(route),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (!securedPrivateKey) {
|
|
145
|
+
throw new AppError({
|
|
146
|
+
message: "Secured private key is required for decryption",
|
|
147
|
+
statusCode: 400,
|
|
148
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
149
|
+
hint: "Provide the secured private key returned by seal().",
|
|
150
|
+
details: getErrorDetail(route),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
if (!masterKey) {
|
|
154
|
+
throw new AppError({
|
|
155
|
+
message: "Master key is required for decryption",
|
|
156
|
+
statusCode: 400,
|
|
157
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
158
|
+
hint: "Provide the master key used during encryption.",
|
|
159
|
+
details: getErrorDetail(route),
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
await sodium.ready;
|
|
163
|
+
const masterKeyBytes = sodium.from_base64(masterKey, sodium.base64_variants.ORIGINAL);
|
|
164
|
+
const nonceBytes = sodium.from_base64(nonce);
|
|
165
|
+
const securedPrivateKeyBytes = sodium.from_base64(securedPrivateKey);
|
|
166
|
+
const publicKeyBytes = sodium.from_base64(publicKey);
|
|
167
|
+
const encryptedBytes = sodium.from_base64(str);
|
|
168
|
+
const privateKey = sodium.crypto_secretbox_open_easy(securedPrivateKeyBytes, nonceBytes, masterKeyBytes);
|
|
169
|
+
const decrypted = sodium.crypto_box_seal_open(encryptedBytes, publicKeyBytes, privateKey);
|
|
170
|
+
return sodium.to_string(decrypted);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (error instanceof AppError)
|
|
174
|
+
throw error;
|
|
175
|
+
console.error(error);
|
|
176
|
+
throw new AppError({
|
|
177
|
+
message: "Error while decrypting",
|
|
178
|
+
statusCode: 500,
|
|
179
|
+
code: "LIBSODIUM_DECRYPT_ERROR",
|
|
180
|
+
hint: "This issue requires a fix from the framework developer.",
|
|
181
|
+
details: getErrorDetail(route),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=libsodium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libsodium.js","sourceRoot":"","sources":["../../../src/js/utils/libsodium.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otpPurposes.d.ts","sourceRoot":"","sources":["../../../src/js/utils/otpPurposes.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,WAAW,EAAE,MAAM,EAgDxB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const otpPurposes = [
|
|
2
|
+
"login",
|
|
3
|
+
"signup",
|
|
4
|
+
"password_reset",
|
|
5
|
+
"email_verification",
|
|
6
|
+
"phone_verification",
|
|
7
|
+
"two_factor_auth",
|
|
8
|
+
"change_password",
|
|
9
|
+
"change_email",
|
|
10
|
+
"change_phone",
|
|
11
|
+
"new_device_login",
|
|
12
|
+
"verify_device",
|
|
13
|
+
"verify_session",
|
|
14
|
+
"confirm_action",
|
|
15
|
+
"sensitive_action",
|
|
16
|
+
"identity_verification",
|
|
17
|
+
"account_recovery",
|
|
18
|
+
"account_unlock",
|
|
19
|
+
"update_profile",
|
|
20
|
+
"authorize_device",
|
|
21
|
+
"verify_contact",
|
|
22
|
+
"magic_link_login",
|
|
23
|
+
"enable_two_factor_auth",
|
|
24
|
+
"disable_two_factor_auth",
|
|
25
|
+
"payment_verification",
|
|
26
|
+
"transaction_verification",
|
|
27
|
+
"bank_account_verification",
|
|
28
|
+
"withdrawal_verification",
|
|
29
|
+
"organization_invite",
|
|
30
|
+
"invite_acceptance",
|
|
31
|
+
"transfer_ownership",
|
|
32
|
+
"oauth_link",
|
|
33
|
+
"oauth_unlink",
|
|
34
|
+
"api_key_verification",
|
|
35
|
+
"delete_account",
|
|
36
|
+
];
|
|
37
|
+
export default otpPurposes;
|
|
38
|
+
//# sourceMappingURL=otpPurposes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otpPurposes.js","sourceRoot":"","sources":["../../../src/js/utils/otpPurposes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAa;IAE5B,OAAO;IACP,QAAQ;IACR,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IAGjB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;IACvB,kBAAkB;IAClB,gBAAgB;IAGhB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,wBAAwB;IACxB,yBAAyB;IAGzB,sBAAsB;IACtB,0BAA0B;IAC1B,2BAA2B;IAC3B,yBAAyB;IAGzB,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;IAGpB,YAAY;IACZ,cAAc;IACd,sBAAsB;IAGtB,gBAAgB;CACjB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Response } from "express";
|
|
2
|
+
export interface AppResponse {
|
|
3
|
+
res: Response;
|
|
4
|
+
data?: unknown;
|
|
5
|
+
message: string;
|
|
6
|
+
statusCode?: number;
|
|
7
|
+
}
|
|
8
|
+
declare const appResponse: ({ res, data, message, statusCode, }: AppResponse) => void;
|
|
9
|
+
export default appResponse;
|
|
10
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/js/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,WAAW,GAAI,qCAKlB,WAAW,KAAG,IAMhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/js/utils/response.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,GAAG,CAAC,EACnB,GAAG,EACH,IAAI,GAAG,SAAS,EAChB,OAAO,EACP,UAAU,GAAG,GAAG,GACJ,EAAQ,EAAE;IACtB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAC1B,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../src/js/utils/sanitize.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,QAGpC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,UAStC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const sanitizeOne = (item) => {
|
|
2
|
+
const { password, createdAt, updatedAt, __v, ...clean } = item;
|
|
3
|
+
return clean;
|
|
4
|
+
};
|
|
5
|
+
export const sanitizeMany = (items) => {
|
|
6
|
+
let cleaned = [];
|
|
7
|
+
items.map((el) => {
|
|
8
|
+
const { password, createdAt, updatedAt, __v, ...clean } = el.toObject();
|
|
9
|
+
cleaned.push(clean);
|
|
10
|
+
});
|
|
11
|
+
return cleaned;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/js/utils/sanitize.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,EAAE;IACvC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE;IACzC,IAAI,OAAO,GAAU,EAAE,CAAC;IAExB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE;QACpB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/js/utils/validate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,QAAA,MAAM,QAAQ,GAAI,kBAAkB,GAAG,EAAE,MAAM,GAAG,EAAE,OAAO,KAAK,4BAmE/D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import AppError from "./AppError.js";
|
|
2
|
+
import z from "zod";
|
|
3
|
+
import { closest, distance } from "fastest-levenshtein";
|
|
4
|
+
import getErrorDetail from "./getErrorDetail.js";
|
|
5
|
+
const validate = (validationSchema, body, route) => {
|
|
6
|
+
if (!validationSchema)
|
|
7
|
+
throw new AppError({
|
|
8
|
+
message: "validationSchema is required to validate",
|
|
9
|
+
statusCode: 409,
|
|
10
|
+
code: "VALIDATION_SCHEMA_REQUIRED",
|
|
11
|
+
details: getErrorDetail(route),
|
|
12
|
+
hint: "Provide validation in validationsObj. Use same name as key as provided in route configuration",
|
|
13
|
+
});
|
|
14
|
+
if (!body)
|
|
15
|
+
throw new AppError({
|
|
16
|
+
message: "body is required to validate",
|
|
17
|
+
statusCode: 409,
|
|
18
|
+
code: "BODY_MISSING",
|
|
19
|
+
details: getErrorDetail(route),
|
|
20
|
+
hint: "Provide body (Data from frontend or postman etc.)",
|
|
21
|
+
});
|
|
22
|
+
const zodBodyObj = z.object(validationSchema);
|
|
23
|
+
const isValid = zodBodyObj.safeParse(body);
|
|
24
|
+
if (!isValid.success) {
|
|
25
|
+
const issue = isValid.error.issues?.[0];
|
|
26
|
+
const field = issue?.path?.reduce((acc, part) => {
|
|
27
|
+
if (typeof part === "number")
|
|
28
|
+
return `${acc}[${part}]`;
|
|
29
|
+
return acc ? `${acc}.${String(part)}` : String(part);
|
|
30
|
+
}, "") || "body";
|
|
31
|
+
let message = issue?.message ?? "Invalid input";
|
|
32
|
+
if (issue?.code === "invalid_value" && "values" in issue) {
|
|
33
|
+
const values = issue.values.map(String);
|
|
34
|
+
const invalidValue = issue.path.reduce((obj, key) => obj?.[key], body);
|
|
35
|
+
if (typeof invalidValue === "string") {
|
|
36
|
+
const nearest = closest(invalidValue, values);
|
|
37
|
+
if (distance(invalidValue, nearest) <= 3) {
|
|
38
|
+
message = `Invalid value ${invalidValue}. Did you mean ${nearest}?`;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
message = `Expected one of: ${values.join(" | ")}`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
message = `Expected one of: ${values.join(" | ")}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
throw new AppError({
|
|
49
|
+
message: `${field}: ${message}`,
|
|
50
|
+
statusCode: 409,
|
|
51
|
+
code: "VALIDATION_FAILED",
|
|
52
|
+
details: getErrorDetail(route),
|
|
53
|
+
hint: "Check the keys you provided in collection -> valdiationsObj -> validationSchema. It should be similar to body -> item key"
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return isValid.data;
|
|
57
|
+
};
|
|
58
|
+
export default validate;
|
|
59
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/js/utils/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Route, ValidationsObj } from "../types/Collection.ts";
|
|
2
|
+
declare const getValidationKey: (route: Route, validationsObj: ValidationsObj) => import("../lib/zod.fields.js").ZodValidation | undefined;
|
|
3
|
+
export default getValidationKey;
|
|
4
|
+
//# sourceMappingURL=validationKeyError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationKeyError.d.ts","sourceRoot":"","sources":["../../../src/js/utils/validationKeyError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIpE,QAAA,MAAM,gBAAgB,GAAI,OAAO,KAAK,EAAE,gBAAgB,cAAc,6DA0CrE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import AppError from "./AppError.js";
|
|
2
|
+
import getErrorDetail from "./getErrorDetail.js";
|
|
3
|
+
const getValidationKey = (route, validationsObj) => {
|
|
4
|
+
const key = route.validationKey;
|
|
5
|
+
if (typeof key === "boolean")
|
|
6
|
+
if (key) {
|
|
7
|
+
throw new AppError({
|
|
8
|
+
message: "validationKey as boolean can only be 'false'",
|
|
9
|
+
statusCode: 400,
|
|
10
|
+
hint: "Make it false without ('', \"\" or ``)",
|
|
11
|
+
code: "ROUTE_VALIDATION_KEY_INVALID",
|
|
12
|
+
details: getErrorDetail(route),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (key == null)
|
|
19
|
+
throw new AppError({
|
|
20
|
+
message: "validationKey is required",
|
|
21
|
+
statusCode: 400,
|
|
22
|
+
code: "ROUTE_VALIDATION_KEY_REQUIRED",
|
|
23
|
+
hint: "Provide it or make it false if this route doesn't need validation",
|
|
24
|
+
details: getErrorDetail(route),
|
|
25
|
+
});
|
|
26
|
+
const validateObject = validationsObj[key];
|
|
27
|
+
if (!validateObject)
|
|
28
|
+
throw new AppError({
|
|
29
|
+
message: `validationKey: '${key}' is missing in validationsObj`,
|
|
30
|
+
statusCode: 400,
|
|
31
|
+
code: "VALIDATION_REQUIRED_FIELD_MISSING",
|
|
32
|
+
hint: `In validationsObj, use the '${key}' as key for validation`,
|
|
33
|
+
details: getErrorDetail(route),
|
|
34
|
+
});
|
|
35
|
+
return validateObject;
|
|
36
|
+
};
|
|
37
|
+
export default getValidationKey;
|
|
38
|
+
//# sourceMappingURL=validationKeyError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationKeyError.js","sourceRoot":"","sources":["../../../src/js/utils/validationKeyError.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,cAA8B,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;IAGhC,IAAI,OAAO,GAAG,KAAK,SAAS;QAC1B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,QAAQ,CAAC;gBACjB,OAAO,EAAE,8CAA8C;gBACvD,UAAU,EAAE,GAAG;gBACf,IAAI,EAAE,wCAAwC;gBAC9C,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;IAGH,IAAI,GAAG,IAAI,IAAI;QACb,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,2BAA2B;YACpC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,+BAA+B;YACrC,IAAI,EAAE,mEAAmE;YACzE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IAGL,MAAM,cAAc,GAAG,cAAc,CAAC,GAAa,CAAC,CAAC;IAGrD,IAAI,CAAC,cAAc;QACjB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,mBAAmB,GAAG,gCAAgC;YAC/D,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,+BAA+B,GAAG,yBAAyB;YACjE,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC,CAAC;IAGL,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/js/validations.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,UAAU,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CAGhC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../../src/js/validations.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAI,IAAO,EAAK,EAAE;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|