@starklabs/forge 1.1.1 → 1.1.3
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/app.d.ts +2 -1
- package/dist/js/app.d.ts.map +1 -1
- package/dist/js/app.js +1 -1
- package/dist/js/app.js.map +1 -1
- package/dist/js/auth/forgotPassword.d.ts +2 -2
- package/dist/js/auth/forgotPassword.d.ts.map +1 -1
- package/dist/js/auth/forgotPassword.js +6 -6
- package/dist/js/auth/forgotPassword.js.map +1 -1
- package/dist/js/auth/index.js +5 -5
- package/dist/js/auth/index.js.map +1 -1
- package/dist/js/auth/login.d.ts +2 -2
- package/dist/js/auth/login.d.ts.map +1 -1
- package/dist/js/auth/login.js +6 -6
- package/dist/js/auth/login.js.map +1 -1
- package/dist/js/auth/logout.d.ts +1 -1
- package/dist/js/auth/logout.d.ts.map +1 -1
- package/dist/js/auth/logout.js +2 -2
- package/dist/js/auth/logout.js.map +1 -1
- package/dist/js/auth/resendOTP.d.ts +2 -2
- package/dist/js/auth/resendOTP.d.ts.map +1 -1
- package/dist/js/auth/resendOTP.js +8 -8
- package/dist/js/auth/resendOTP.js.map +1 -1
- package/dist/js/auth/resetPassword.d.ts +2 -2
- package/dist/js/auth/resetPassword.d.ts.map +1 -1
- package/dist/js/auth/resetPassword.js +9 -9
- package/dist/js/auth/resetPassword.js.map +1 -1
- package/dist/js/auth/signup.d.ts +2 -2
- package/dist/js/auth/signup.d.ts.map +1 -1
- package/dist/js/auth/signup.js +8 -8
- package/dist/js/auth/signup.js.map +1 -1
- package/dist/js/auth/utils/authenticateUser.d.ts +2 -2
- package/dist/js/auth/utils/authenticateUser.d.ts.map +1 -1
- package/dist/js/auth/utils/authenticateUser.js +8 -8
- 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 +17 -8
- package/dist/js/auth/utils/createOTPModel.js.map +1 -1
- package/dist/js/auth/utils/createOTPUser.d.ts +2 -2
- package/dist/js/auth/utils/createOTPUser.d.ts.map +1 -1
- package/dist/js/auth/utils/createOTPUser.js +10 -10
- package/dist/js/auth/utils/createOTPUser.js.map +1 -1
- package/dist/js/auth/utils/createUser.d.ts +2 -2
- package/dist/js/auth/utils/createUser.d.ts.map +1 -1
- package/dist/js/auth/utils/createUser.js +7 -7
- package/dist/js/auth/utils/createUser.js.map +1 -1
- package/dist/js/auth/utils/getOTPModel.d.ts +1 -1
- package/dist/js/auth/utils/getOTPModel.d.ts.map +1 -1
- package/dist/js/auth/utils/getOTPModel.js +4 -4
- package/dist/js/auth/utils/getOTPModel.js.map +1 -1
- package/dist/js/auth/utils/getOTPUser.d.ts +2 -2
- package/dist/js/auth/utils/getOTPUser.d.ts.map +1 -1
- package/dist/js/auth/utils/getOTPUser.js +5 -5
- package/dist/js/auth/utils/getOTPUser.js.map +1 -1
- package/dist/js/auth/utils/getUser.d.ts +2 -2
- package/dist/js/auth/utils/getUser.d.ts.map +1 -1
- package/dist/js/auth/utils/getUser.js +5 -5
- package/dist/js/auth/utils/getUser.js.map +1 -1
- package/dist/js/auth/utils/handleIsVerified.d.ts +2 -2
- package/dist/js/auth/utils/handleIsVerified.d.ts.map +1 -1
- package/dist/js/auth/utils/handleIsVerified.js +3 -3
- package/dist/js/auth/utils/handleIsVerified.js.map +1 -1
- package/dist/js/auth/utils/modeMap.d.ts +8 -8
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts +2 -2
- package/dist/js/auth/utils/otpVerifiedResponse.d.ts.map +1 -1
- package/dist/js/auth/utils/otpVerifiedResponse.js +4 -4
- package/dist/js/auth/utils/otpVerifiedResponse.js.map +1 -1
- package/dist/js/auth/utils/sendCookie.d.ts +4 -4
- package/dist/js/auth/utils/sendCookie.d.ts.map +1 -1
- package/dist/js/auth/utils/sendCookie.js +16 -16
- package/dist/js/auth/utils/sendCookie.js.map +1 -1
- package/dist/js/auth/utils/sendOTP.d.ts +1 -1
- package/dist/js/auth/utils/sendOTP.d.ts.map +1 -1
- package/dist/js/auth/utils/sendOTP.js +8 -8
- package/dist/js/auth/utils/sendOTP.js.map +1 -1
- package/dist/js/auth/utils/verifyCredentials.d.ts +2 -2
- package/dist/js/auth/utils/verifyCredentials.d.ts.map +1 -1
- package/dist/js/auth/utils/verifyCredentials.js +9 -9
- package/dist/js/auth/utils/verifyCredentials.js.map +1 -1
- package/dist/js/auth/verifyOTP.d.ts +2 -2
- package/dist/js/auth/verifyOTP.d.ts.map +1 -1
- package/dist/js/auth/verifyOTP.js +14 -14
- package/dist/js/auth/verifyOTP.js.map +1 -1
- package/dist/js/config/cloudinary.d.ts +1 -1
- package/dist/js/config/cloudinary.d.ts.map +1 -1
- package/dist/js/config/cloudinary.js +4 -4
- package/dist/js/config/cloudinary.js.map +1 -1
- package/dist/js/config/duration.d.ts +1 -1
- package/dist/js/config/duration.d.ts.map +1 -1
- package/dist/js/config/duration.js +4 -4
- package/dist/js/config/duration.js.map +1 -1
- package/dist/js/config/handleReqType.d.ts.map +1 -1
- package/dist/js/config/handleReqType.js +3 -1
- package/dist/js/config/handleReqType.js.map +1 -1
- package/dist/js/config/sendEmail.d.ts +2 -2
- package/dist/js/config/sendEmail.d.ts.map +1 -1
- package/dist/js/config/sendEmail.js +19 -19
- package/dist/js/config/sendEmail.js.map +1 -1
- package/dist/js/crud/create.d.ts +2 -2
- package/dist/js/crud/create.d.ts.map +1 -1
- package/dist/js/crud/create.js +11 -11
- package/dist/js/crud/create.js.map +1 -1
- package/dist/js/crud/createBulk.d.ts +2 -2
- package/dist/js/crud/createBulk.d.ts.map +1 -1
- package/dist/js/crud/createBulk.js +5 -5
- package/dist/js/crud/createBulk.js.map +1 -1
- package/dist/js/crud/handleUploads/file.add.d.ts +2 -2
- package/dist/js/crud/handleUploads/file.add.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.add.js +12 -12
- package/dist/js/crud/handleUploads/file.add.js.map +1 -1
- package/dist/js/crud/handleUploads/file.delete.d.ts +2 -2
- package/dist/js/crud/handleUploads/file.delete.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.delete.js +8 -8
- package/dist/js/crud/handleUploads/file.delete.js.map +1 -1
- package/dist/js/crud/handleUploads/file.update.d.ts +2 -2
- package/dist/js/crud/handleUploads/file.update.d.ts.map +1 -1
- package/dist/js/crud/handleUploads/file.update.js +8 -8
- package/dist/js/crud/handleUploads/file.update.js.map +1 -1
- package/dist/js/crud/index.d.ts.map +1 -1
- package/dist/js/crud/index.js +14 -11
- package/dist/js/crud/index.js.map +1 -1
- package/dist/js/crud/read.d.ts +2 -2
- package/dist/js/crud/read.d.ts.map +1 -1
- package/dist/js/crud/read.js +6 -6
- package/dist/js/crud/read.js.map +1 -1
- package/dist/js/crud/readAll.d.ts +2 -2
- package/dist/js/crud/readAll.d.ts.map +1 -1
- package/dist/js/crud/readAll.js +5 -5
- package/dist/js/crud/readAll.js.map +1 -1
- package/dist/js/crud/remove.d.ts +2 -2
- package/dist/js/crud/remove.d.ts.map +1 -1
- package/dist/js/crud/remove.js +6 -6
- package/dist/js/crud/remove.js.map +1 -1
- package/dist/js/crud/removeAll.d.ts +2 -2
- package/dist/js/crud/removeAll.d.ts.map +1 -1
- package/dist/js/crud/removeAll.js +5 -5
- package/dist/js/crud/removeAll.js.map +1 -1
- package/dist/js/crud/update.d.ts +2 -2
- package/dist/js/crud/update.d.ts.map +1 -1
- package/dist/js/crud/update.js +8 -8
- package/dist/js/crud/update.js.map +1 -1
- package/dist/js/crud/utils/authroizeAccess.d.ts +2 -2
- package/dist/js/crud/utils/authroizeAccess.d.ts.map +1 -1
- package/dist/js/crud/utils/authroizeAccess.js +11 -11
- package/dist/js/crud/utils/authroizeAccess.js.map +1 -1
- package/dist/js/crud/utils/getItem.d.ts +2 -2
- package/dist/js/crud/utils/getItem.d.ts.map +1 -1
- package/dist/js/crud/utils/getItem.js +9 -9
- package/dist/js/crud/utils/getItem.js.map +1 -1
- package/dist/js/crud/utils/getParam.d.ts +2 -2
- package/dist/js/crud/utils/getParam.d.ts.map +1 -1
- package/dist/js/crud/utils/getParam.js +4 -4
- package/dist/js/crud/utils/getParam.js.map +1 -1
- package/dist/js/health/health.collection.d.ts +1 -2
- package/dist/js/health/health.collection.d.ts.map +1 -1
- package/dist/js/health/health.collection.js.map +1 -1
- package/dist/js/health/index.js +2 -2
- package/dist/js/health/index.js.map +1 -1
- package/dist/js/index.d.ts +5 -3
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +5 -3
- package/dist/js/index.js.map +1 -1
- package/dist/js/lib/db.d.ts.map +1 -1
- package/dist/js/lib/db.js +10 -3
- package/dist/js/lib/db.js.map +1 -1
- package/dist/js/lib/model.factory.d.ts +1 -2
- package/dist/js/lib/model.factory.d.ts.map +1 -1
- package/dist/js/lib/model.factory.js +3 -3
- package/dist/js/lib/model.factory.js.map +1 -1
- package/dist/js/lib/mongoose.fields.d.ts.map +1 -1
- package/dist/js/lib/mongoose.fields.js +0 -1
- package/dist/js/lib/mongoose.fields.js.map +1 -1
- package/dist/js/lib/zod.fields.d.ts +10 -6
- package/dist/js/lib/zod.fields.d.ts.map +1 -1
- package/dist/js/lib/zod.fields.js +5 -1
- package/dist/js/lib/zod.fields.js.map +1 -1
- package/dist/js/middleware/auth.middleware.d.ts +1 -1
- package/dist/js/middleware/auth.middleware.d.ts.map +1 -1
- package/dist/js/middleware/auth.middleware.js +11 -11
- package/dist/js/middleware/auth.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 +11 -11
- package/dist/js/middleware/multer.middleware.js.map +1 -1
- package/dist/js/types/Collection.d.ts +1 -2
- package/dist/js/types/Collection.d.ts.map +1 -1
- package/dist/js/types/Routepath.d.ts +1 -1
- package/dist/js/types/Routepath.d.ts.map +1 -1
- package/dist/js/upload/create.d.ts +1 -1
- package/dist/js/upload/create.d.ts.map +1 -1
- package/dist/js/upload/create.js +18 -16
- package/dist/js/upload/create.js.map +1 -1
- package/dist/js/upload/delete.d.ts +1 -1
- package/dist/js/upload/delete.d.ts.map +1 -1
- package/dist/js/upload/delete.js +28 -28
- package/dist/js/upload/delete.js.map +1 -1
- package/dist/js/upload/update.d.ts +1 -1
- package/dist/js/upload/update.d.ts.map +1 -1
- package/dist/js/upload/update.js +37 -35
- package/dist/js/upload/update.js.map +1 -1
- package/dist/js/utils/getErrorDetail.d.ts +1 -1
- package/dist/js/utils/getErrorDetail.d.ts.map +1 -1
- package/dist/js/utils/getErrorDetail.js +4 -4
- 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 +4 -4
- package/dist/js/utils/getModel.js.map +1 -1
- package/dist/js/utils/handleJWT.d.ts +4 -4
- package/dist/js/utils/handleJWT.d.ts.map +1 -1
- package/dist/js/utils/handleJWT.js +10 -10
- package/dist/js/utils/handleJWT.js.map +1 -1
- package/dist/js/utils/libsodium.d.ts +4 -4
- package/dist/js/utils/libsodium.d.ts.map +1 -1
- package/dist/js/utils/libsodium.js +17 -17
- package/dist/js/utils/libsodium.js.map +1 -1
- package/dist/js/utils/sanitize.d.ts +2 -2
- package/dist/js/utils/sanitize.d.ts.map +1 -1
- package/dist/js/utils/sanitize.js +33 -7
- package/dist/js/utils/sanitize.js.map +1 -1
- package/dist/js/utils/validate.d.ts +1 -1
- package/dist/js/utils/validate.d.ts.map +1 -1
- package/dist/js/utils/validate.js +7 -7
- 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 +6 -6
- package/dist/js/utils/validationKeyError.js.map +1 -1
- package/package.json +3 -2
- package/readme.md +6 -6
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
export const sanitizeOne = (item,
|
|
2
|
-
["password"
|
|
1
|
+
export const sanitizeOne = (item, routeObj) => {
|
|
2
|
+
const defaultExcluded = ["password"];
|
|
3
|
+
const fields = routeObj?.mongooseConfigObj?.hiddenFieldsArray?.filter(() => true) ?? [];
|
|
4
|
+
let merged = [...defaultExcluded, ...fields];
|
|
5
|
+
for (const el of fields) {
|
|
6
|
+
if (el.startsWith("!")) {
|
|
7
|
+
const clean = el.split("!")[1];
|
|
8
|
+
if (defaultExcluded.includes(clean))
|
|
9
|
+
merged = merged.filter((i) => i !== clean);
|
|
10
|
+
merged = merged.filter((i) => i !== el);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
for (const el of merged) {
|
|
14
|
+
delete item[el];
|
|
15
|
+
}
|
|
3
16
|
return item;
|
|
4
17
|
};
|
|
5
|
-
export const sanitizeMany = (items,
|
|
6
|
-
return items.map((
|
|
7
|
-
const
|
|
8
|
-
["password"
|
|
9
|
-
|
|
18
|
+
export const sanitizeMany = (items, routeObj) => {
|
|
19
|
+
return items.map((el) => {
|
|
20
|
+
const item = el.toObject();
|
|
21
|
+
const defaultExcluded = ["password"];
|
|
22
|
+
const fields = routeObj?.mongooseConfigObj?.hiddenFieldsArray?.filter(() => true) ?? [];
|
|
23
|
+
let merged = [...defaultExcluded, ...fields];
|
|
24
|
+
for (const el of fields) {
|
|
25
|
+
if (el.startsWith("!")) {
|
|
26
|
+
const clean = el.split("!")[1];
|
|
27
|
+
if (defaultExcluded.includes(clean))
|
|
28
|
+
merged = merged.filter((i) => i !== clean);
|
|
29
|
+
merged = merged.filter((i) => i !== el);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
for (const el of merged) {
|
|
33
|
+
delete item[el];
|
|
34
|
+
}
|
|
35
|
+
return item;
|
|
10
36
|
});
|
|
11
37
|
};
|
|
12
38
|
//# sourceMappingURL=sanitize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/js/utils/sanitize.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/js/utils/sanitize.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,QAAe,EAAE,EAAE;IAExD,MAAM,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;IAGrC,MAAM,MAAM,GACV,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAG3E,IAAI,MAAM,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,CAAC;IAG7C,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAExB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAEvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YAGhC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACjC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAG7C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAGD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,QAAe,EAAE,EAAE;IAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAEtB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAG3B,MAAM,eAAe,GAAG,CAAC,UAAU,CAAC,CAAC;QAGrC,MAAM,MAAM,GACV,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAG3E,IAAI,MAAM,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,CAAC;QAG7C,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YAExB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;gBAGhC,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACjC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;gBAG7C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAGD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Route } from "../types/Collection.js";
|
|
2
|
-
declare const validate: (validationSchema: any, body: any,
|
|
2
|
+
declare const validate: (validationSchema: any, body: any, routeObj: Route) => Record<string, unknown>;
|
|
3
3
|
export default validate;
|
|
4
4
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +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,
|
|
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,UAAU,KAAK,4BAmElE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -2,22 +2,22 @@ import AppError from "./AppError.js";
|
|
|
2
2
|
import z from "zod";
|
|
3
3
|
import { closest, distance } from "fastest-levenshtein";
|
|
4
4
|
import getErrorDetail from "./getErrorDetail.js";
|
|
5
|
-
const validate = (validationSchema, body,
|
|
5
|
+
const validate = (validationSchema, body, routeObj) => {
|
|
6
6
|
if (!validationSchema)
|
|
7
7
|
throw new AppError({
|
|
8
8
|
message: "validationSchema is required to validate",
|
|
9
9
|
statusCode: 409,
|
|
10
10
|
code: "VALIDATION_SCHEMA_REQUIRED",
|
|
11
|
-
details: getErrorDetail(
|
|
12
|
-
hint: "Provide validation in validationsObj. Use same name as key as provided in
|
|
11
|
+
details: getErrorDetail(routeObj),
|
|
12
|
+
hint: "Provide validation in validationsObj. Use same name as key as provided in routeObj configuration",
|
|
13
13
|
});
|
|
14
14
|
if (!body)
|
|
15
15
|
throw new AppError({
|
|
16
16
|
message: "body is required to validate",
|
|
17
17
|
statusCode: 409,
|
|
18
18
|
code: "BODY_MISSING",
|
|
19
|
-
details: getErrorDetail(
|
|
20
|
-
hint: "Provide body (Data from frontend or postman etc.)",
|
|
19
|
+
details: getErrorDetail(routeObj),
|
|
20
|
+
hint: "Provide body (Data from frontend or postman etc.) or if uploading a file, write fileArray : [{...}] in collection -> routesArray -> routeObj.",
|
|
21
21
|
});
|
|
22
22
|
const zodBodyObj = z.object(validationSchema);
|
|
23
23
|
const isValid = zodBodyObj.safeParse(body);
|
|
@@ -49,8 +49,8 @@ const validate = (validationSchema, body, route) => {
|
|
|
49
49
|
message: `${field}: ${message}`,
|
|
50
50
|
statusCode: 409,
|
|
51
51
|
code: "VALIDATION_FAILED",
|
|
52
|
-
details: getErrorDetail(
|
|
53
|
-
hint:
|
|
52
|
+
details: getErrorDetail(routeObj),
|
|
53
|
+
hint: `Check the keys you provided in collection -> valdiationsObj -> ${routeObj.validationKey}. It should be similar to body -> item key`,
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
return isValid.data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/js/utils/validate.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,MAAM,QAAQ,GAAG,CAAC,gBAAqB,EAAE,IAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/js/utils/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Route, ValidationsObj } from "../types/Collection.ts";
|
|
2
|
-
declare const getValidationKey: (
|
|
2
|
+
declare const getValidationKey: (routeObj: Route, validationsObj: ValidationsObj) => import("../lib/zod.fields.js").ZodValidation | undefined;
|
|
3
3
|
export default getValidationKey;
|
|
4
4
|
//# sourceMappingURL=validationKeyError.d.ts.map
|
|
@@ -1 +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,
|
|
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,UAAU,KAAK,EAAE,gBAAgB,cAAc,6DA0CxE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AppError from "./AppError.js";
|
|
2
2
|
import getErrorDetail from "./getErrorDetail.js";
|
|
3
|
-
const getValidationKey = (
|
|
4
|
-
const key =
|
|
3
|
+
const getValidationKey = (routeObj, validationsObj) => {
|
|
4
|
+
const key = routeObj.validationKey;
|
|
5
5
|
if (typeof key === "boolean")
|
|
6
6
|
if (key) {
|
|
7
7
|
throw new AppError({
|
|
@@ -9,7 +9,7 @@ const getValidationKey = (route, validationsObj) => {
|
|
|
9
9
|
statusCode: 400,
|
|
10
10
|
hint: "Make it false without ('', \"\" or ``)",
|
|
11
11
|
code: "ROUTE_VALIDATION_KEY_INVALID",
|
|
12
|
-
details: getErrorDetail(
|
|
12
|
+
details: getErrorDetail(routeObj),
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -20,8 +20,8 @@ const getValidationKey = (route, validationsObj) => {
|
|
|
20
20
|
message: "validationKey is required",
|
|
21
21
|
statusCode: 400,
|
|
22
22
|
code: "ROUTE_VALIDATION_KEY_REQUIRED",
|
|
23
|
-
hint: "Provide it or make it false if this
|
|
24
|
-
details: getErrorDetail(
|
|
23
|
+
hint: "Provide it or make it false if this routeObj doesn't need validation",
|
|
24
|
+
details: getErrorDetail(routeObj),
|
|
25
25
|
});
|
|
26
26
|
const validateObject = validationsObj[key];
|
|
27
27
|
if (!validateObject)
|
|
@@ -30,7 +30,7 @@ const getValidationKey = (route, validationsObj) => {
|
|
|
30
30
|
statusCode: 400,
|
|
31
31
|
code: "VALIDATION_REQUIRED_FIELD_MISSING",
|
|
32
32
|
hint: `In validationsObj, use the '${key}' as key for validation`,
|
|
33
|
-
details: getErrorDetail(
|
|
33
|
+
details: getErrorDetail(routeObj),
|
|
34
34
|
});
|
|
35
35
|
return validateObject;
|
|
36
36
|
};
|
|
@@ -1 +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,
|
|
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,QAAe,EAAE,cAA8B,EAAE,EAAE;IAC3E,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC;IAGnC,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,QAAQ,CAAC;aAClC,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,sEAAsE;YAC5E,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;SAClC,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,QAAQ,CAAC;SAClC,CAAC,CAAC;IAGL,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starklabs/forge",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "A TypeScript-first Express framework for building production-ready APIs with zero boilerplate.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/js/index.js",
|
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
"@types/morgan": "^1.9.10",
|
|
84
84
|
"@types/multer": "^2.2.0",
|
|
85
85
|
"@types/node": "^26.1.0",
|
|
86
|
-
"@types/streamifier": "^0.1.2"
|
|
86
|
+
"@types/streamifier": "^0.1.2",
|
|
87
|
+
"typescript": "^7.0.2"
|
|
87
88
|
}
|
|
88
89
|
}
|
package/readme.md
CHANGED
|
@@ -360,7 +360,7 @@ Forge is designed to eliminate repetitive backend engineering while remaining sc
|
|
|
360
360
|
### Core
|
|
361
361
|
|
|
362
362
|
- Convention-based backend architecture
|
|
363
|
-
- Dynamic
|
|
363
|
+
- Dynamic routeObj generation
|
|
364
364
|
- Automatic Mongoose model creation
|
|
365
365
|
- Built-in CRUD engine
|
|
366
366
|
- Zero controller boilerplate
|
|
@@ -602,7 +602,7 @@ Routes are declarative.
|
|
|
602
602
|
|
|
603
603
|
Instead of writing Express routers, middleware, controllers, authentication and validation manually...
|
|
604
604
|
|
|
605
|
-
You simply describe the
|
|
605
|
+
You simply describe the routeObj.
|
|
606
606
|
|
|
607
607
|
```ts
|
|
608
608
|
{
|
|
@@ -616,7 +616,7 @@ You simply describe the route.
|
|
|
616
616
|
|
|
617
617
|
Forge handles the rest.
|
|
618
618
|
|
|
619
|
-
A complete CRUD resource can be expressed in only a handful of
|
|
619
|
+
A complete CRUD resource can be expressed in only a handful of routeObj objects.
|
|
620
620
|
|
|
621
621
|
Example:
|
|
622
622
|
|
|
@@ -720,7 +720,7 @@ Forge ships with production-ready handlers.
|
|
|
720
720
|
|
|
721
721
|
No controller implementation required.
|
|
722
722
|
|
|
723
|
-
Simply reference the handler name inside your
|
|
723
|
+
Simply reference the handler name inside your routeObj.
|
|
724
724
|
|
|
725
725
|
---
|
|
726
726
|
|
|
@@ -748,13 +748,13 @@ Forge applies the appropriate middleware automatically.
|
|
|
748
748
|
|
|
749
749
|
No imports.
|
|
750
750
|
|
|
751
|
-
No
|
|
751
|
+
No routeObj protection boilerplate.
|
|
752
752
|
|
|
753
753
|
---
|
|
754
754
|
|
|
755
755
|
# Uploads
|
|
756
756
|
|
|
757
|
-
Uploads are configured per
|
|
757
|
+
Uploads are configured per routeObj.
|
|
758
758
|
|
|
759
759
|
Only routes that need uploads should configure uploads.
|
|
760
760
|
|