@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.
Files changed (230) hide show
  1. package/dist/js/app.d.ts +2 -1
  2. package/dist/js/app.d.ts.map +1 -1
  3. package/dist/js/app.js +1 -1
  4. package/dist/js/app.js.map +1 -1
  5. package/dist/js/auth/forgotPassword.d.ts +2 -2
  6. package/dist/js/auth/forgotPassword.d.ts.map +1 -1
  7. package/dist/js/auth/forgotPassword.js +6 -6
  8. package/dist/js/auth/forgotPassword.js.map +1 -1
  9. package/dist/js/auth/index.js +5 -5
  10. package/dist/js/auth/index.js.map +1 -1
  11. package/dist/js/auth/login.d.ts +2 -2
  12. package/dist/js/auth/login.d.ts.map +1 -1
  13. package/dist/js/auth/login.js +6 -6
  14. package/dist/js/auth/login.js.map +1 -1
  15. package/dist/js/auth/logout.d.ts +1 -1
  16. package/dist/js/auth/logout.d.ts.map +1 -1
  17. package/dist/js/auth/logout.js +2 -2
  18. package/dist/js/auth/logout.js.map +1 -1
  19. package/dist/js/auth/resendOTP.d.ts +2 -2
  20. package/dist/js/auth/resendOTP.d.ts.map +1 -1
  21. package/dist/js/auth/resendOTP.js +8 -8
  22. package/dist/js/auth/resendOTP.js.map +1 -1
  23. package/dist/js/auth/resetPassword.d.ts +2 -2
  24. package/dist/js/auth/resetPassword.d.ts.map +1 -1
  25. package/dist/js/auth/resetPassword.js +9 -9
  26. package/dist/js/auth/resetPassword.js.map +1 -1
  27. package/dist/js/auth/signup.d.ts +2 -2
  28. package/dist/js/auth/signup.d.ts.map +1 -1
  29. package/dist/js/auth/signup.js +8 -8
  30. package/dist/js/auth/signup.js.map +1 -1
  31. package/dist/js/auth/utils/authenticateUser.d.ts +2 -2
  32. package/dist/js/auth/utils/authenticateUser.d.ts.map +1 -1
  33. package/dist/js/auth/utils/authenticateUser.js +8 -8
  34. package/dist/js/auth/utils/authenticateUser.js.map +1 -1
  35. package/dist/js/auth/utils/createOTPModel.d.ts +1 -1
  36. package/dist/js/auth/utils/createOTPModel.d.ts.map +1 -1
  37. package/dist/js/auth/utils/createOTPModel.js +17 -8
  38. package/dist/js/auth/utils/createOTPModel.js.map +1 -1
  39. package/dist/js/auth/utils/createOTPUser.d.ts +2 -2
  40. package/dist/js/auth/utils/createOTPUser.d.ts.map +1 -1
  41. package/dist/js/auth/utils/createOTPUser.js +10 -10
  42. package/dist/js/auth/utils/createOTPUser.js.map +1 -1
  43. package/dist/js/auth/utils/createUser.d.ts +2 -2
  44. package/dist/js/auth/utils/createUser.d.ts.map +1 -1
  45. package/dist/js/auth/utils/createUser.js +7 -7
  46. package/dist/js/auth/utils/createUser.js.map +1 -1
  47. package/dist/js/auth/utils/getOTPModel.d.ts +1 -1
  48. package/dist/js/auth/utils/getOTPModel.d.ts.map +1 -1
  49. package/dist/js/auth/utils/getOTPModel.js +4 -4
  50. package/dist/js/auth/utils/getOTPModel.js.map +1 -1
  51. package/dist/js/auth/utils/getOTPUser.d.ts +2 -2
  52. package/dist/js/auth/utils/getOTPUser.d.ts.map +1 -1
  53. package/dist/js/auth/utils/getOTPUser.js +5 -5
  54. package/dist/js/auth/utils/getOTPUser.js.map +1 -1
  55. package/dist/js/auth/utils/getUser.d.ts +2 -2
  56. package/dist/js/auth/utils/getUser.d.ts.map +1 -1
  57. package/dist/js/auth/utils/getUser.js +5 -5
  58. package/dist/js/auth/utils/getUser.js.map +1 -1
  59. package/dist/js/auth/utils/handleIsVerified.d.ts +2 -2
  60. package/dist/js/auth/utils/handleIsVerified.d.ts.map +1 -1
  61. package/dist/js/auth/utils/handleIsVerified.js +3 -3
  62. package/dist/js/auth/utils/handleIsVerified.js.map +1 -1
  63. package/dist/js/auth/utils/modeMap.d.ts +8 -8
  64. package/dist/js/auth/utils/otpVerifiedResponse.d.ts +2 -2
  65. package/dist/js/auth/utils/otpVerifiedResponse.d.ts.map +1 -1
  66. package/dist/js/auth/utils/otpVerifiedResponse.js +4 -4
  67. package/dist/js/auth/utils/otpVerifiedResponse.js.map +1 -1
  68. package/dist/js/auth/utils/sendCookie.d.ts +4 -4
  69. package/dist/js/auth/utils/sendCookie.d.ts.map +1 -1
  70. package/dist/js/auth/utils/sendCookie.js +16 -16
  71. package/dist/js/auth/utils/sendCookie.js.map +1 -1
  72. package/dist/js/auth/utils/sendOTP.d.ts +1 -1
  73. package/dist/js/auth/utils/sendOTP.d.ts.map +1 -1
  74. package/dist/js/auth/utils/sendOTP.js +8 -8
  75. package/dist/js/auth/utils/sendOTP.js.map +1 -1
  76. package/dist/js/auth/utils/verifyCredentials.d.ts +2 -2
  77. package/dist/js/auth/utils/verifyCredentials.d.ts.map +1 -1
  78. package/dist/js/auth/utils/verifyCredentials.js +9 -9
  79. package/dist/js/auth/utils/verifyCredentials.js.map +1 -1
  80. package/dist/js/auth/verifyOTP.d.ts +2 -2
  81. package/dist/js/auth/verifyOTP.d.ts.map +1 -1
  82. package/dist/js/auth/verifyOTP.js +14 -14
  83. package/dist/js/auth/verifyOTP.js.map +1 -1
  84. package/dist/js/config/cloudinary.d.ts +1 -1
  85. package/dist/js/config/cloudinary.d.ts.map +1 -1
  86. package/dist/js/config/cloudinary.js +4 -4
  87. package/dist/js/config/cloudinary.js.map +1 -1
  88. package/dist/js/config/duration.d.ts +1 -1
  89. package/dist/js/config/duration.d.ts.map +1 -1
  90. package/dist/js/config/duration.js +4 -4
  91. package/dist/js/config/duration.js.map +1 -1
  92. package/dist/js/config/handleReqType.d.ts.map +1 -1
  93. package/dist/js/config/handleReqType.js +3 -1
  94. package/dist/js/config/handleReqType.js.map +1 -1
  95. package/dist/js/config/sendEmail.d.ts +2 -2
  96. package/dist/js/config/sendEmail.d.ts.map +1 -1
  97. package/dist/js/config/sendEmail.js +19 -19
  98. package/dist/js/config/sendEmail.js.map +1 -1
  99. package/dist/js/crud/create.d.ts +2 -2
  100. package/dist/js/crud/create.d.ts.map +1 -1
  101. package/dist/js/crud/create.js +11 -11
  102. package/dist/js/crud/create.js.map +1 -1
  103. package/dist/js/crud/createBulk.d.ts +2 -2
  104. package/dist/js/crud/createBulk.d.ts.map +1 -1
  105. package/dist/js/crud/createBulk.js +5 -5
  106. package/dist/js/crud/createBulk.js.map +1 -1
  107. package/dist/js/crud/handleUploads/file.add.d.ts +2 -2
  108. package/dist/js/crud/handleUploads/file.add.d.ts.map +1 -1
  109. package/dist/js/crud/handleUploads/file.add.js +12 -12
  110. package/dist/js/crud/handleUploads/file.add.js.map +1 -1
  111. package/dist/js/crud/handleUploads/file.delete.d.ts +2 -2
  112. package/dist/js/crud/handleUploads/file.delete.d.ts.map +1 -1
  113. package/dist/js/crud/handleUploads/file.delete.js +8 -8
  114. package/dist/js/crud/handleUploads/file.delete.js.map +1 -1
  115. package/dist/js/crud/handleUploads/file.update.d.ts +2 -2
  116. package/dist/js/crud/handleUploads/file.update.d.ts.map +1 -1
  117. package/dist/js/crud/handleUploads/file.update.js +8 -8
  118. package/dist/js/crud/handleUploads/file.update.js.map +1 -1
  119. package/dist/js/crud/index.d.ts.map +1 -1
  120. package/dist/js/crud/index.js +14 -11
  121. package/dist/js/crud/index.js.map +1 -1
  122. package/dist/js/crud/read.d.ts +2 -2
  123. package/dist/js/crud/read.d.ts.map +1 -1
  124. package/dist/js/crud/read.js +6 -6
  125. package/dist/js/crud/read.js.map +1 -1
  126. package/dist/js/crud/readAll.d.ts +2 -2
  127. package/dist/js/crud/readAll.d.ts.map +1 -1
  128. package/dist/js/crud/readAll.js +5 -5
  129. package/dist/js/crud/readAll.js.map +1 -1
  130. package/dist/js/crud/remove.d.ts +2 -2
  131. package/dist/js/crud/remove.d.ts.map +1 -1
  132. package/dist/js/crud/remove.js +6 -6
  133. package/dist/js/crud/remove.js.map +1 -1
  134. package/dist/js/crud/removeAll.d.ts +2 -2
  135. package/dist/js/crud/removeAll.d.ts.map +1 -1
  136. package/dist/js/crud/removeAll.js +5 -5
  137. package/dist/js/crud/removeAll.js.map +1 -1
  138. package/dist/js/crud/update.d.ts +2 -2
  139. package/dist/js/crud/update.d.ts.map +1 -1
  140. package/dist/js/crud/update.js +8 -8
  141. package/dist/js/crud/update.js.map +1 -1
  142. package/dist/js/crud/utils/authroizeAccess.d.ts +2 -2
  143. package/dist/js/crud/utils/authroizeAccess.d.ts.map +1 -1
  144. package/dist/js/crud/utils/authroizeAccess.js +11 -11
  145. package/dist/js/crud/utils/authroizeAccess.js.map +1 -1
  146. package/dist/js/crud/utils/getItem.d.ts +2 -2
  147. package/dist/js/crud/utils/getItem.d.ts.map +1 -1
  148. package/dist/js/crud/utils/getItem.js +9 -9
  149. package/dist/js/crud/utils/getItem.js.map +1 -1
  150. package/dist/js/crud/utils/getParam.d.ts +2 -2
  151. package/dist/js/crud/utils/getParam.d.ts.map +1 -1
  152. package/dist/js/crud/utils/getParam.js +4 -4
  153. package/dist/js/crud/utils/getParam.js.map +1 -1
  154. package/dist/js/health/health.collection.d.ts +1 -2
  155. package/dist/js/health/health.collection.d.ts.map +1 -1
  156. package/dist/js/health/health.collection.js.map +1 -1
  157. package/dist/js/health/index.js +2 -2
  158. package/dist/js/health/index.js.map +1 -1
  159. package/dist/js/index.d.ts +5 -3
  160. package/dist/js/index.d.ts.map +1 -1
  161. package/dist/js/index.js +5 -3
  162. package/dist/js/index.js.map +1 -1
  163. package/dist/js/lib/db.d.ts.map +1 -1
  164. package/dist/js/lib/db.js +10 -3
  165. package/dist/js/lib/db.js.map +1 -1
  166. package/dist/js/lib/model.factory.d.ts +1 -2
  167. package/dist/js/lib/model.factory.d.ts.map +1 -1
  168. package/dist/js/lib/model.factory.js +3 -3
  169. package/dist/js/lib/model.factory.js.map +1 -1
  170. package/dist/js/lib/mongoose.fields.d.ts.map +1 -1
  171. package/dist/js/lib/mongoose.fields.js +0 -1
  172. package/dist/js/lib/mongoose.fields.js.map +1 -1
  173. package/dist/js/lib/zod.fields.d.ts +10 -6
  174. package/dist/js/lib/zod.fields.d.ts.map +1 -1
  175. package/dist/js/lib/zod.fields.js +5 -1
  176. package/dist/js/lib/zod.fields.js.map +1 -1
  177. package/dist/js/middleware/auth.middleware.d.ts +1 -1
  178. package/dist/js/middleware/auth.middleware.d.ts.map +1 -1
  179. package/dist/js/middleware/auth.middleware.js +11 -11
  180. package/dist/js/middleware/auth.middleware.js.map +1 -1
  181. package/dist/js/middleware/multer.middleware.d.ts +1 -1
  182. package/dist/js/middleware/multer.middleware.d.ts.map +1 -1
  183. package/dist/js/middleware/multer.middleware.js +11 -11
  184. package/dist/js/middleware/multer.middleware.js.map +1 -1
  185. package/dist/js/types/Collection.d.ts +1 -2
  186. package/dist/js/types/Collection.d.ts.map +1 -1
  187. package/dist/js/types/Routepath.d.ts +1 -1
  188. package/dist/js/types/Routepath.d.ts.map +1 -1
  189. package/dist/js/upload/create.d.ts +1 -1
  190. package/dist/js/upload/create.d.ts.map +1 -1
  191. package/dist/js/upload/create.js +18 -16
  192. package/dist/js/upload/create.js.map +1 -1
  193. package/dist/js/upload/delete.d.ts +1 -1
  194. package/dist/js/upload/delete.d.ts.map +1 -1
  195. package/dist/js/upload/delete.js +28 -28
  196. package/dist/js/upload/delete.js.map +1 -1
  197. package/dist/js/upload/update.d.ts +1 -1
  198. package/dist/js/upload/update.d.ts.map +1 -1
  199. package/dist/js/upload/update.js +37 -35
  200. package/dist/js/upload/update.js.map +1 -1
  201. package/dist/js/utils/getErrorDetail.d.ts +1 -1
  202. package/dist/js/utils/getErrorDetail.d.ts.map +1 -1
  203. package/dist/js/utils/getErrorDetail.js +4 -4
  204. package/dist/js/utils/getErrorDetail.js.map +1 -1
  205. package/dist/js/utils/getModel.d.ts +3 -3
  206. package/dist/js/utils/getModel.d.ts.map +1 -1
  207. package/dist/js/utils/getModel.js +4 -4
  208. package/dist/js/utils/getModel.js.map +1 -1
  209. package/dist/js/utils/handleJWT.d.ts +4 -4
  210. package/dist/js/utils/handleJWT.d.ts.map +1 -1
  211. package/dist/js/utils/handleJWT.js +10 -10
  212. package/dist/js/utils/handleJWT.js.map +1 -1
  213. package/dist/js/utils/libsodium.d.ts +4 -4
  214. package/dist/js/utils/libsodium.d.ts.map +1 -1
  215. package/dist/js/utils/libsodium.js +17 -17
  216. package/dist/js/utils/libsodium.js.map +1 -1
  217. package/dist/js/utils/sanitize.d.ts +2 -2
  218. package/dist/js/utils/sanitize.d.ts.map +1 -1
  219. package/dist/js/utils/sanitize.js +33 -7
  220. package/dist/js/utils/sanitize.js.map +1 -1
  221. package/dist/js/utils/validate.d.ts +1 -1
  222. package/dist/js/utils/validate.d.ts.map +1 -1
  223. package/dist/js/utils/validate.js +7 -7
  224. package/dist/js/utils/validate.js.map +1 -1
  225. package/dist/js/utils/validationKeyError.d.ts +1 -1
  226. package/dist/js/utils/validationKeyError.d.ts.map +1 -1
  227. package/dist/js/utils/validationKeyError.js +6 -6
  228. package/dist/js/utils/validationKeyError.js.map +1 -1
  229. package/package.json +3 -2
  230. package/readme.md +6 -6
@@ -1,12 +1,38 @@
1
- export const sanitizeOne = (item, route) => {
2
- ["password", ...(route?.mongooseConfigObj?.hiddenFieldsArray ?? [])].forEach((key) => delete item[key]);
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, route) => {
6
- return items.map((item) => {
7
- const clean = item.toObject();
8
- ["password", ...(route?.mongooseConfigObj?.hiddenFieldsArray ?? [])].forEach((key) => delete clean[key]);
9
- return clean;
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,KAAY,EAAE,EAAE;IACrD,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAC1E,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAC1B,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,KAAY,EAAE,EAAE;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAC1E,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAC3B,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
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, route: Route) => Record<string, unknown>;
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,OAAO,KAAK,4BAmE/D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
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, route) => {
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(route),
12
- hint: "Provide validation in validationsObj. Use same name as key as provided in route configuration",
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(route),
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(route),
53
- hint: "Check the keys you provided in collection -> valdiationsObj -> validationSchema. It should be similar to body -> item key"
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":"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"}
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,QAAe,EAAE,EAAE;IACrE,IAAI,CAAC,gBAAgB;QACnB,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,0CAA0C;YACnD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,kGAAkG;SACzG,CAAC,CAAC;IAEL,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,8BAA8B;YACvC,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,+IAA+I;SACtJ,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,KAAK,GACT,KAAK,EAAE,IAAI,EAAE,MAAM,CAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACxC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC;YACvD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;QAEnB,IAAI,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;QAGhD,IAAI,KAAK,EAAE,IAAI,KAAK,eAAe,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAGxC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EACxB,IAAI,CACL,CAAC;YAEF,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAE9C,IAAI,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzC,OAAO,GAAG,iBAAiB,YAAY,kBAAkB,OAAO,GAAG,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,QAAQ,CAAC;YACjB,OAAO,EAAE,GAAG,KAAK,KAAK,OAAO,EAAE;YAC/B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;YACjC,IAAI,EAAE,kEAAkE,QAAQ,CAAC,aAAa,4CAA4C;SAC3I,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { Route, ValidationsObj } from "../types/Collection.ts";
2
- declare const getValidationKey: (route: Route, validationsObj: ValidationsObj) => import("../lib/zod.fields.js").ZodValidation | undefined;
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,OAAO,KAAK,EAAE,gBAAgB,cAAc,6DA0CrE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
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 = (route, validationsObj) => {
4
- const key = route.validationKey;
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(route),
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 route doesn't need validation",
24
- details: getErrorDetail(route),
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(route),
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,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"}
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.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 route generation
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 route.
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 route objects.
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 route.
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 route protection boilerplate.
751
+ No routeObj protection boilerplate.
752
752
 
753
753
  ---
754
754
 
755
755
  # Uploads
756
756
 
757
- Uploads are configured per route.
757
+ Uploads are configured per routeObj.
758
758
 
759
759
  Only routes that need uploads should configure uploads.
760
760