@warlock.js/core 3.0.12 → 3.0.14

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 (375) hide show
  1. package/cjs/application.js +1 -1
  2. package/cjs/application.js.map +1 -1
  3. package/cjs/console/commander.js +1 -1
  4. package/cjs/console/commander.js.map +1 -1
  5. package/cjs/http/errors/index.d.ts +2 -0
  6. package/cjs/http/errors/index.d.ts.map +1 -0
  7. package/cjs/http/errors/resource-not-found.error.d.ts +13 -0
  8. package/cjs/http/errors/resource-not-found.error.d.ts.map +1 -0
  9. package/cjs/http/errors/resource-not-found.error.js +24 -0
  10. package/cjs/http/errors/resource-not-found.error.js.map +1 -0
  11. package/cjs/http/index.d.ts +1 -0
  12. package/cjs/http/index.d.ts.map +1 -1
  13. package/cjs/http/middleware/_inject-request-context.d.ts.map +1 -1
  14. package/cjs/http/middleware/cache-response-middleware.d.ts.map +1 -1
  15. package/cjs/http/middleware/cache-response-middleware.js +0 -1
  16. package/cjs/http/middleware/cache-response-middleware.js.map +1 -1
  17. package/cjs/http/plugins/index.d.ts +1 -1
  18. package/cjs/http/plugins/index.d.ts.map +1 -1
  19. package/cjs/http/request.d.ts +20 -5
  20. package/cjs/http/request.d.ts.map +1 -1
  21. package/cjs/http/request.js +34 -5
  22. package/cjs/http/request.js.map +1 -1
  23. package/cjs/http/response.d.ts +3 -2
  24. package/cjs/http/response.d.ts.map +1 -1
  25. package/cjs/http/response.js +15 -4
  26. package/cjs/http/response.js.map +1 -1
  27. package/cjs/http/types.d.ts +12 -0
  28. package/cjs/http/types.d.ts.map +1 -1
  29. package/cjs/index.d.ts +2 -0
  30. package/cjs/index.d.ts.map +1 -1
  31. package/cjs/index.js +1 -1
  32. package/cjs/modules/uploads/controllers/upload-files.d.ts.map +1 -1
  33. package/cjs/modules/uploads/controllers/upload-files.js +7 -7
  34. package/cjs/modules/uploads/controllers/upload-files.js.map +1 -1
  35. package/cjs/modules/uploads/output/upload-output.d.ts.map +1 -1
  36. package/cjs/modules/uploads/output/upload-output.js +2 -2
  37. package/cjs/modules/uploads/output/upload-output.js.map +1 -1
  38. package/cjs/modules/uploads/utils/get-watermark-options.js +1 -1
  39. package/cjs/modules/uploads/utils/get-watermark-options.js.map +1 -1
  40. package/cjs/output/output.js +1 -1
  41. package/cjs/output/output.js.map +1 -1
  42. package/cjs/react/index.d.ts +1 -10
  43. package/cjs/react/index.d.ts.map +1 -1
  44. package/cjs/react/index.js +3 -4
  45. package/cjs/react/index.js.map +1 -1
  46. package/cjs/repositories/repository-list-manager.js +1 -1
  47. package/cjs/repositories/repository-list-manager.js.map +1 -1
  48. package/cjs/router/router.d.ts +0 -8
  49. package/cjs/router/router.d.ts.map +1 -1
  50. package/cjs/router/router.js +3 -36
  51. package/cjs/router/router.js.map +1 -1
  52. package/cjs/router/types.d.ts +1 -1
  53. package/cjs/router/types.d.ts.map +1 -1
  54. package/cjs/starters/http-server-starter.d.ts.map +1 -1
  55. package/cjs/starters/http-server-starter.js +7 -2
  56. package/cjs/starters/http-server-starter.js.map +1 -1
  57. package/cjs/starters/start-cli-server.d.ts.map +1 -1
  58. package/cjs/starters/start-cli-server.js +10 -1
  59. package/cjs/starters/start-cli-server.js.map +1 -1
  60. package/cjs/starters/start-http-server.d.ts +3 -2
  61. package/cjs/starters/start-http-server.d.ts.map +1 -1
  62. package/cjs/starters/start-http-server.js +12 -6
  63. package/cjs/starters/start-http-server.js.map +1 -1
  64. package/cjs/utils/date-output.d.ts.map +1 -1
  65. package/cjs/utils/date-output.js +2 -4
  66. package/cjs/utils/date-output.js.map +1 -1
  67. package/cjs/utils/get-localized.d.ts.map +1 -1
  68. package/cjs/utils/get-localized.js.map +1 -1
  69. package/cjs/v/database/exists-except-current-id.d.ts +7 -0
  70. package/cjs/v/database/exists-except-current-id.d.ts.map +1 -0
  71. package/cjs/v/database/exists-except-current-id.js +23 -0
  72. package/cjs/v/database/exists-except-current-id.js.map +1 -0
  73. package/cjs/v/database/exists-except-current-user.d.ts +7 -0
  74. package/cjs/v/database/exists-except-current-user.d.ts.map +1 -0
  75. package/cjs/v/database/exists-except-current-user.js +25 -0
  76. package/cjs/v/database/exists-except-current-user.js.map +1 -0
  77. package/cjs/v/database/exists.d.ts +7 -0
  78. package/cjs/v/database/exists.d.ts.map +1 -0
  79. package/cjs/v/database/exists.js +21 -0
  80. package/cjs/v/database/exists.js.map +1 -0
  81. package/cjs/v/database/index.d.ts +12 -0
  82. package/cjs/v/database/index.d.ts.map +1 -0
  83. package/cjs/v/database/types.d.ts +68 -0
  84. package/cjs/v/database/types.d.ts.map +1 -0
  85. package/cjs/v/database/unique-except-current-id.d.ts +7 -0
  86. package/cjs/v/database/unique-except-current-id.d.ts.map +1 -0
  87. package/cjs/v/database/unique-except-current-id.js +23 -0
  88. package/cjs/v/database/unique-except-current-id.js.map +1 -0
  89. package/cjs/v/database/unique-except-current-user.d.ts +7 -0
  90. package/cjs/v/database/unique-except-current-user.d.ts.map +1 -0
  91. package/cjs/v/database/unique-except-current-user.js +25 -0
  92. package/cjs/v/database/unique-except-current-user.js.map +1 -0
  93. package/cjs/v/database/unique.d.ts +7 -0
  94. package/cjs/v/database/unique.d.ts.map +1 -0
  95. package/cjs/v/database/unique.js +30 -0
  96. package/cjs/v/database/unique.js.map +1 -0
  97. package/cjs/v/file/file.d.ts +22 -0
  98. package/cjs/v/file/file.d.ts.map +1 -0
  99. package/cjs/v/file/file.js +60 -0
  100. package/cjs/v/file/file.js.map +1 -0
  101. package/cjs/v/file/index.d.ts +6 -0
  102. package/cjs/v/file/index.d.ts.map +1 -0
  103. package/cjs/v/index.d.ts +17 -0
  104. package/cjs/v/index.d.ts.map +1 -0
  105. package/cjs/v/init.d.ts +7 -0
  106. package/cjs/v/init.d.ts.map +1 -0
  107. package/cjs/v/init.js +40 -0
  108. package/cjs/v/init.js.map +1 -0
  109. package/cjs/v/plugins/database-plugin.d.ts +14 -0
  110. package/cjs/v/plugins/database-plugin.d.ts.map +1 -0
  111. package/cjs/v/plugins/database-plugin.js +95 -0
  112. package/cjs/v/plugins/database-plugin.js.map +1 -0
  113. package/cjs/v/plugins/file-plugin.d.ts +11 -0
  114. package/cjs/v/plugins/file-plugin.d.ts.map +1 -0
  115. package/cjs/v/plugins/file-plugin.js +17 -0
  116. package/cjs/v/plugins/file-plugin.js.map +1 -0
  117. package/cjs/v/plugins/index.d.ts +8 -0
  118. package/cjs/v/plugins/index.d.ts.map +1 -0
  119. package/cjs/v/string/index.d.ts +6 -0
  120. package/cjs/v/string/index.d.ts.map +1 -0
  121. package/cjs/v/string/uploadable.d.ts +6 -0
  122. package/cjs/v/string/uploadable.d.ts.map +1 -0
  123. package/cjs/v/string/uploadable.js +14 -0
  124. package/cjs/v/string/uploadable.js.map +1 -0
  125. package/cjs/v/types.d.ts +53 -0
  126. package/cjs/v/types.d.ts.map +1 -0
  127. package/cjs/v/validators/file-validator.d.ts +36 -0
  128. package/cjs/v/validators/file-validator.d.ts.map +1 -0
  129. package/cjs/v/validators/file-validator.js +88 -0
  130. package/cjs/v/validators/file-validator.js.map +1 -0
  131. package/cjs/v/validators/index.d.ts +7 -0
  132. package/cjs/v/validators/index.d.ts.map +1 -0
  133. package/cjs/validator/index.d.ts +0 -1
  134. package/cjs/validator/index.d.ts.map +1 -1
  135. package/cjs/validator/locales.js +518 -10
  136. package/cjs/validator/locales.js.map +1 -1
  137. package/cjs/validator/types.d.ts +28 -0
  138. package/cjs/validator/types.d.ts.map +1 -1
  139. package/cjs/validator/validateAll.d.ts.map +1 -1
  140. package/cjs/validator/validateAll.js +5 -2
  141. package/cjs/validator/validateAll.js.map +1 -1
  142. package/esm/application.js +1 -1
  143. package/esm/application.js.map +1 -1
  144. package/esm/console/commander.js +1 -1
  145. package/esm/console/commander.js.map +1 -1
  146. package/esm/http/errors/index.d.ts +2 -0
  147. package/esm/http/errors/index.d.ts.map +1 -0
  148. package/esm/http/errors/resource-not-found.error.d.ts +13 -0
  149. package/esm/http/errors/resource-not-found.error.d.ts.map +1 -0
  150. package/esm/http/errors/resource-not-found.error.js +24 -0
  151. package/esm/http/errors/resource-not-found.error.js.map +1 -0
  152. package/esm/http/index.d.ts +1 -0
  153. package/esm/http/index.d.ts.map +1 -1
  154. package/esm/http/middleware/_inject-request-context.d.ts.map +1 -1
  155. package/esm/http/middleware/cache-response-middleware.d.ts.map +1 -1
  156. package/esm/http/middleware/cache-response-middleware.js +0 -1
  157. package/esm/http/middleware/cache-response-middleware.js.map +1 -1
  158. package/esm/http/plugins/index.d.ts +1 -1
  159. package/esm/http/plugins/index.d.ts.map +1 -1
  160. package/esm/http/request.d.ts +20 -5
  161. package/esm/http/request.d.ts.map +1 -1
  162. package/esm/http/request.js +34 -5
  163. package/esm/http/request.js.map +1 -1
  164. package/esm/http/response.d.ts +3 -2
  165. package/esm/http/response.d.ts.map +1 -1
  166. package/esm/http/response.js +16 -5
  167. package/esm/http/response.js.map +1 -1
  168. package/esm/http/types.d.ts +12 -0
  169. package/esm/http/types.d.ts.map +1 -1
  170. package/esm/index.d.ts +2 -0
  171. package/esm/index.d.ts.map +1 -1
  172. package/esm/index.js +1 -1
  173. package/esm/modules/uploads/controllers/upload-files.d.ts.map +1 -1
  174. package/esm/modules/uploads/controllers/upload-files.js +2 -2
  175. package/esm/modules/uploads/controllers/upload-files.js.map +1 -1
  176. package/esm/modules/uploads/output/upload-output.d.ts.map +1 -1
  177. package/esm/modules/uploads/output/upload-output.js +2 -2
  178. package/esm/modules/uploads/output/upload-output.js.map +1 -1
  179. package/esm/modules/uploads/utils/get-watermark-options.js +1 -1
  180. package/esm/modules/uploads/utils/get-watermark-options.js.map +1 -1
  181. package/esm/output/output.js +1 -1
  182. package/esm/output/output.js.map +1 -1
  183. package/esm/react/index.d.ts +1 -10
  184. package/esm/react/index.d.ts.map +1 -1
  185. package/esm/react/index.js +2 -3
  186. package/esm/react/index.js.map +1 -1
  187. package/esm/repositories/repository-list-manager.js +1 -1
  188. package/esm/repositories/repository-list-manager.js.map +1 -1
  189. package/esm/router/router.d.ts +0 -8
  190. package/esm/router/router.d.ts.map +1 -1
  191. package/esm/router/router.js +3 -36
  192. package/esm/router/router.js.map +1 -1
  193. package/esm/router/types.d.ts +1 -1
  194. package/esm/router/types.d.ts.map +1 -1
  195. package/esm/starters/http-server-starter.d.ts.map +1 -1
  196. package/esm/starters/http-server-starter.js +7 -2
  197. package/esm/starters/http-server-starter.js.map +1 -1
  198. package/esm/starters/start-cli-server.d.ts.map +1 -1
  199. package/esm/starters/start-cli-server.js +10 -1
  200. package/esm/starters/start-cli-server.js.map +1 -1
  201. package/esm/starters/start-http-server.d.ts +3 -2
  202. package/esm/starters/start-http-server.d.ts.map +1 -1
  203. package/esm/starters/start-http-server.js +10 -4
  204. package/esm/starters/start-http-server.js.map +1 -1
  205. package/esm/utils/date-output.d.ts.map +1 -1
  206. package/esm/utils/date-output.js +2 -4
  207. package/esm/utils/date-output.js.map +1 -1
  208. package/esm/utils/get-localized.d.ts.map +1 -1
  209. package/esm/utils/get-localized.js.map +1 -1
  210. package/esm/v/database/exists-except-current-id.d.ts +7 -0
  211. package/esm/v/database/exists-except-current-id.d.ts.map +1 -0
  212. package/esm/v/database/exists-except-current-id.js +23 -0
  213. package/esm/v/database/exists-except-current-id.js.map +1 -0
  214. package/esm/v/database/exists-except-current-user.d.ts +7 -0
  215. package/esm/v/database/exists-except-current-user.d.ts.map +1 -0
  216. package/esm/v/database/exists-except-current-user.js +25 -0
  217. package/esm/v/database/exists-except-current-user.js.map +1 -0
  218. package/esm/v/database/exists.d.ts +7 -0
  219. package/esm/v/database/exists.d.ts.map +1 -0
  220. package/esm/v/database/exists.js +21 -0
  221. package/esm/v/database/exists.js.map +1 -0
  222. package/esm/v/database/index.d.ts +12 -0
  223. package/esm/v/database/index.d.ts.map +1 -0
  224. package/esm/v/database/types.d.ts +68 -0
  225. package/esm/v/database/types.d.ts.map +1 -0
  226. package/esm/v/database/unique-except-current-id.d.ts +7 -0
  227. package/esm/v/database/unique-except-current-id.d.ts.map +1 -0
  228. package/esm/v/database/unique-except-current-id.js +23 -0
  229. package/esm/v/database/unique-except-current-id.js.map +1 -0
  230. package/esm/v/database/unique-except-current-user.d.ts +7 -0
  231. package/esm/v/database/unique-except-current-user.d.ts.map +1 -0
  232. package/esm/v/database/unique-except-current-user.js +25 -0
  233. package/esm/v/database/unique-except-current-user.js.map +1 -0
  234. package/esm/v/database/unique.d.ts +7 -0
  235. package/esm/v/database/unique.d.ts.map +1 -0
  236. package/esm/v/database/unique.js +30 -0
  237. package/esm/v/database/unique.js.map +1 -0
  238. package/esm/v/file/file.d.ts +22 -0
  239. package/esm/v/file/file.d.ts.map +1 -0
  240. package/esm/v/file/file.js +60 -0
  241. package/esm/v/file/file.js.map +1 -0
  242. package/esm/v/file/index.d.ts +6 -0
  243. package/esm/v/file/index.d.ts.map +1 -0
  244. package/esm/v/index.d.ts +17 -0
  245. package/esm/v/index.d.ts.map +1 -0
  246. package/esm/v/init.d.ts +7 -0
  247. package/esm/v/init.d.ts.map +1 -0
  248. package/esm/v/init.js +40 -0
  249. package/esm/v/init.js.map +1 -0
  250. package/esm/v/plugins/database-plugin.d.ts +14 -0
  251. package/esm/v/plugins/database-plugin.d.ts.map +1 -0
  252. package/esm/v/plugins/database-plugin.js +95 -0
  253. package/esm/v/plugins/database-plugin.js.map +1 -0
  254. package/esm/v/plugins/file-plugin.d.ts +11 -0
  255. package/esm/v/plugins/file-plugin.d.ts.map +1 -0
  256. package/esm/v/plugins/file-plugin.js +17 -0
  257. package/esm/v/plugins/file-plugin.js.map +1 -0
  258. package/esm/v/plugins/index.d.ts +8 -0
  259. package/esm/v/plugins/index.d.ts.map +1 -0
  260. package/esm/v/string/index.d.ts +6 -0
  261. package/esm/v/string/index.d.ts.map +1 -0
  262. package/esm/v/string/uploadable.d.ts +6 -0
  263. package/esm/v/string/uploadable.d.ts.map +1 -0
  264. package/esm/v/string/uploadable.js +14 -0
  265. package/esm/v/string/uploadable.js.map +1 -0
  266. package/esm/v/types.d.ts +53 -0
  267. package/esm/v/types.d.ts.map +1 -0
  268. package/esm/v/validators/file-validator.d.ts +36 -0
  269. package/esm/v/validators/file-validator.d.ts.map +1 -0
  270. package/esm/v/validators/file-validator.js +88 -0
  271. package/esm/v/validators/file-validator.js.map +1 -0
  272. package/esm/v/validators/index.d.ts +7 -0
  273. package/esm/v/validators/index.d.ts.map +1 -0
  274. package/esm/validator/index.d.ts +0 -1
  275. package/esm/validator/index.d.ts.map +1 -1
  276. package/esm/validator/locales.js +518 -10
  277. package/esm/validator/locales.js.map +1 -1
  278. package/esm/validator/types.d.ts +28 -0
  279. package/esm/validator/types.d.ts.map +1 -1
  280. package/esm/validator/validateAll.d.ts.map +1 -1
  281. package/esm/validator/validateAll.js +4 -1
  282. package/esm/validator/validateAll.js.map +1 -1
  283. package/package.json +3 -3
  284. package/cjs/react/page-renderer.d.ts +0 -18
  285. package/cjs/react/page-renderer.d.ts.map +0 -1
  286. package/cjs/react/page-renderer.js +0 -69
  287. package/cjs/react/page-renderer.js.map +0 -1
  288. package/cjs/react/plugin.d.ts +0 -15
  289. package/cjs/react/plugin.d.ts.map +0 -1
  290. package/cjs/react/plugin.js +0 -22
  291. package/cjs/react/plugin.js.map +0 -1
  292. package/cjs/react/vite-config.d.ts +0 -9
  293. package/cjs/react/vite-config.d.ts.map +0 -1
  294. package/cjs/react/vite-config.js +0 -74
  295. package/cjs/react/vite-config.js.map +0 -1
  296. package/cjs/validator/v/array-validator.d.ts +0 -21
  297. package/cjs/validator/v/array-validator.d.ts.map +0 -1
  298. package/cjs/validator/v/base-validator.d.ts +0 -117
  299. package/cjs/validator/v/base-validator.d.ts.map +0 -1
  300. package/cjs/validator/v/database.d.ts +0 -8
  301. package/cjs/validator/v/database.d.ts.map +0 -1
  302. package/cjs/validator/v/database.js +0 -129
  303. package/cjs/validator/v/database.js.map +0 -1
  304. package/cjs/validator/v/index.d.ts +0 -3
  305. package/cjs/validator/v/index.d.ts.map +0 -1
  306. package/cjs/validator/v/mutators.d.ts +0 -24
  307. package/cjs/validator/v/mutators.d.ts.map +0 -1
  308. package/cjs/validator/v/mutators.js +0 -88
  309. package/cjs/validator/v/mutators.js.map +0 -1
  310. package/cjs/validator/v/number-validator.d.ts +0 -21
  311. package/cjs/validator/v/number-validator.d.ts.map +0 -1
  312. package/cjs/validator/v/object-validator.d.ts +0 -37
  313. package/cjs/validator/v/object-validator.d.ts.map +0 -1
  314. package/cjs/validator/v/rules.d.ts +0 -265
  315. package/cjs/validator/v/rules.d.ts.map +0 -1
  316. package/cjs/validator/v/rules.js +0 -914
  317. package/cjs/validator/v/rules.js.map +0 -1
  318. package/cjs/validator/v/schema.d.ts +0 -625
  319. package/cjs/validator/v/schema.d.ts.map +0 -1
  320. package/cjs/validator/v/schema.js +0 -1212
  321. package/cjs/validator/v/schema.js.map +0 -1
  322. package/cjs/validator/v/string-validator.d.ts +0 -41
  323. package/cjs/validator/v/string-validator.d.ts.map +0 -1
  324. package/cjs/validator/v/types.d.ts +0 -180
  325. package/cjs/validator/v/types.d.ts.map +0 -1
  326. package/cjs/validator/v/utils.d.ts +0 -5
  327. package/cjs/validator/v/utils.d.ts.map +0 -1
  328. package/cjs/validator/v/utils.js +0 -29
  329. package/cjs/validator/v/utils.js.map +0 -1
  330. package/esm/react/page-renderer.d.ts +0 -18
  331. package/esm/react/page-renderer.d.ts.map +0 -1
  332. package/esm/react/page-renderer.js +0 -69
  333. package/esm/react/page-renderer.js.map +0 -1
  334. package/esm/react/plugin.d.ts +0 -15
  335. package/esm/react/plugin.d.ts.map +0 -1
  336. package/esm/react/plugin.js +0 -22
  337. package/esm/react/plugin.js.map +0 -1
  338. package/esm/react/vite-config.d.ts +0 -9
  339. package/esm/react/vite-config.d.ts.map +0 -1
  340. package/esm/react/vite-config.js +0 -74
  341. package/esm/react/vite-config.js.map +0 -1
  342. package/esm/validator/v/array-validator.d.ts +0 -21
  343. package/esm/validator/v/array-validator.d.ts.map +0 -1
  344. package/esm/validator/v/base-validator.d.ts +0 -117
  345. package/esm/validator/v/base-validator.d.ts.map +0 -1
  346. package/esm/validator/v/database.d.ts +0 -8
  347. package/esm/validator/v/database.d.ts.map +0 -1
  348. package/esm/validator/v/database.js +0 -129
  349. package/esm/validator/v/database.js.map +0 -1
  350. package/esm/validator/v/index.d.ts +0 -3
  351. package/esm/validator/v/index.d.ts.map +0 -1
  352. package/esm/validator/v/mutators.d.ts +0 -24
  353. package/esm/validator/v/mutators.d.ts.map +0 -1
  354. package/esm/validator/v/mutators.js +0 -88
  355. package/esm/validator/v/mutators.js.map +0 -1
  356. package/esm/validator/v/number-validator.d.ts +0 -21
  357. package/esm/validator/v/number-validator.d.ts.map +0 -1
  358. package/esm/validator/v/object-validator.d.ts +0 -37
  359. package/esm/validator/v/object-validator.d.ts.map +0 -1
  360. package/esm/validator/v/rules.d.ts +0 -265
  361. package/esm/validator/v/rules.d.ts.map +0 -1
  362. package/esm/validator/v/rules.js +0 -914
  363. package/esm/validator/v/rules.js.map +0 -1
  364. package/esm/validator/v/schema.d.ts +0 -625
  365. package/esm/validator/v/schema.d.ts.map +0 -1
  366. package/esm/validator/v/schema.js +0 -1212
  367. package/esm/validator/v/schema.js.map +0 -1
  368. package/esm/validator/v/string-validator.d.ts +0 -41
  369. package/esm/validator/v/string-validator.d.ts.map +0 -1
  370. package/esm/validator/v/types.d.ts +0 -180
  371. package/esm/validator/v/types.d.ts.map +0 -1
  372. package/esm/validator/v/utils.d.ts +0 -5
  373. package/esm/validator/v/utils.d.ts.map +0 -1
  374. package/esm/validator/v/utils.js +0 -29
  375. package/esm/validator/v/utils.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import {Aggregate}from'@warlock.js/cascade';import {invalidRule,VALID_RULE}from'@warlock.js/seal';import'@mongez/fs';import'@mongez/reinforcements';import'crypto';import'fs/promises';import'path';import'@mongez/http';import'sharp';import'@mongez/config';import'@warlock.js/logger';import'../../router/router.js';import'@fastify/multipart';import'../../utils/date-output.js';import {useRequestStore}from'../../http/middleware/inject-request-context.js';import'@mongez/slug';import'@mongez/supportive-is';import'fastify';import'@warlock.js/cache';import'@mongez/copper';import'@mongez/events';import'@mongez/localization';import'../../validator/locales.js';import'../../modules/uploads/models/upload.js';import'../../http/response.js';/**
2
+ * Unique except current user rule
3
+ */
4
+ const uniqueExceptCurrentUserRule = {
5
+ name: "uniqueExceptCurrentUser",
6
+ defaultErrorMessage: "The :input must be unique",
7
+ async validate(value, context) {
8
+ const { Model, column = context.key, exceptCurrentUserColumn = "id", exceptCurrentUserValue = "id", query, } = this.context.options;
9
+ const { user } = useRequestStore();
10
+ const dbQuery = typeof Model !== "string" ? Model.aggregate() : new Aggregate(Model);
11
+ dbQuery.where(column, value);
12
+ if (user) {
13
+ dbQuery.where(exceptCurrentUserColumn, "!=", user.get(exceptCurrentUserValue));
14
+ }
15
+ if (query) {
16
+ await query({
17
+ query: dbQuery,
18
+ value,
19
+ allValues: context.allValues,
20
+ });
21
+ }
22
+ const document = await dbQuery.first();
23
+ return document ? invalidRule(this, context) : VALID_RULE;
24
+ },
25
+ };export{uniqueExceptCurrentUserRule};//# sourceMappingURL=unique-except-current-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique-except-current-user.js","sources":["../../../src/v/database/unique-except-current-user.ts"],"sourcesContent":[null],"names":[],"mappings":"6tBAKA;;AAEG;AACU,MAAA,2BAA2B,GACtC;AACE,IAAA,IAAI,EAAE,yBAAyB;AAC/B,IAAA,mBAAmB,EAAE,2BAA2B;AAChD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,EACJ,KAAK,EACL,MAAM,GAAG,OAAO,CAAC,GAAG,EACpB,uBAAuB,GAAG,IAAI,EAC9B,sBAAsB,GAAG,IAAI,EAC7B,KAAK,GACN,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAEzB,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;QAEnC,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAEvE,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE7B,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,OAAO,CAAC,KAAK,CACX,uBAAuB,EACvB,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CACjC,CAAC;AACH,SAAA;AAED,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,KAAK,CAAC;AACV,gBAAA,KAAK,EAAE,OAAO;gBACd,KAAK;gBACL,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACvC,QAAA,OAAO,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;KAC3D;"}
@@ -0,0 +1,7 @@
1
+ import { type SchemaRule } from "@warlock.js/seal";
2
+ import type { UniqueRuleOptions } from "../types";
3
+ /**
4
+ * Unique rule - validates value is unique in database
5
+ */
6
+ export declare const uniqueRule: SchemaRule<UniqueRuleOptions>;
7
+ //# sourceMappingURL=unique.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../../src/v/database/unique.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,iBAAiB,CAwCpD,CAAC"}
@@ -0,0 +1,30 @@
1
+ import {get}from'@mongez/reinforcements';import {Aggregate}from'@warlock.js/cascade';import {invalidRule,VALID_RULE}from'@warlock.js/seal';/**
2
+ * Unique rule - validates value is unique in database
3
+ */
4
+ const uniqueRule = {
5
+ name: "unique",
6
+ defaultErrorMessage: "The :input must be unique",
7
+ async validate(value, context) {
8
+ const { Model, except, column = context.key, exceptColumnName, exceptValue, query, } = this.context.options;
9
+ const dbQuery = typeof Model !== "string" ? Model.aggregate() : new Aggregate(Model);
10
+ dbQuery.where(column, value);
11
+ if (except) {
12
+ const exceptVal = get(context.allValues, except);
13
+ if (exceptVal !== undefined) {
14
+ dbQuery.where(except, "!=", exceptVal);
15
+ }
16
+ }
17
+ if (exceptColumnName !== undefined) {
18
+ dbQuery.where(exceptColumnName, "!=", exceptValue);
19
+ }
20
+ if (query) {
21
+ await query({
22
+ query: dbQuery,
23
+ value,
24
+ allValues: context.allValues,
25
+ });
26
+ }
27
+ const document = await dbQuery.first();
28
+ return document ? invalidRule(this, context) : VALID_RULE;
29
+ },
30
+ };export{uniqueRule};//# sourceMappingURL=unique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unique.js","sources":["../../../src/v/database/unique.ts"],"sourcesContent":[null],"names":[],"mappings":"2IAKA;;AAEG;AACU,MAAA,UAAU,GAAkC;AACvD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,mBAAmB,EAAE,2BAA2B;AAChD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,EACJ,KAAK,EACL,MAAM,EACN,MAAM,GAAG,OAAO,CAAC,GAAG,EACpB,gBAAgB,EAChB,WAAW,EACX,KAAK,GACN,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAEzB,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAEvE,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE7B,QAAA,IAAI,MAAM,EAAE;YACV,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;QAED,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,KAAK,CAAC;AACV,gBAAA,KAAK,EAAE,OAAO;gBACd,KAAK;gBACL,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACvC,QAAA,OAAO,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;KAC3D;"}
@@ -0,0 +1,22 @@
1
+ import { type SchemaRule } from "@warlock.js/seal";
2
+ /**
3
+ * File rule - validates uploaded file
4
+ */
5
+ export declare const fileRule: SchemaRule;
6
+ /**
7
+ * Image rule - validates uploaded image
8
+ */
9
+ export declare const imageRule: SchemaRule;
10
+ /**
11
+ * File extension rule - validates file extension
12
+ */
13
+ export declare const fileExtensionRule: SchemaRule<{
14
+ extensions: string | string[];
15
+ }>;
16
+ /**
17
+ * File type rule - validates MIME type
18
+ */
19
+ export declare const fileTypeRule: SchemaRule<{
20
+ mimeTypes: string | string[];
21
+ }>;
22
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/v/file/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5E;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAStB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UASvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B,CAiBA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC;IAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAgBrE,CAAC"}
@@ -0,0 +1,60 @@
1
+ import {VALID_RULE,invalidRule}from'@warlock.js/seal';import {UploadedFile}from'../../http/UploadedFile.js';import'@mongez/config';import'@mongez/reinforcements';import'@warlock.js/logger';import'../../router/router.js';import'@fastify/multipart';import'../../utils/date-output.js';import'../../http/middleware/inject-request-context.js';import'path';import'@mongez/slug';import'@mongez/supportive-is';import'fastify';import'@warlock.js/cascade';import'@warlock.js/cache';import'@mongez/copper';import'@mongez/events';import'@mongez/localization';import'../../validator/locales.js';import'../../modules/uploads/models/upload.js';import'../../http/response.js';/**
2
+ * File rule - validates uploaded file
3
+ */
4
+ const fileRule = {
5
+ name: "file",
6
+ defaultErrorMessage: "The :input must be a file",
7
+ async validate(value, context) {
8
+ if (value instanceof UploadedFile) {
9
+ return VALID_RULE;
10
+ }
11
+ return invalidRule(this, context);
12
+ },
13
+ };
14
+ /**
15
+ * Image rule - validates uploaded image
16
+ */
17
+ const imageRule = {
18
+ name: "image",
19
+ defaultErrorMessage: "The :input must be an image",
20
+ async validate(value, context) {
21
+ if (value instanceof UploadedFile && value.isImage) {
22
+ return VALID_RULE;
23
+ }
24
+ return invalidRule(this, context);
25
+ },
26
+ };
27
+ /**
28
+ * File extension rule - validates file extension
29
+ */
30
+ const fileExtensionRule = {
31
+ name: "fileExtension",
32
+ errorMessage: "The :input must have one of the following extensions: :extensions",
33
+ async validate(value, context) {
34
+ let extensions = this.context.options.extensions;
35
+ if (typeof extensions === "string") {
36
+ extensions = [extensions];
37
+ }
38
+ if (extensions.includes(value.extension)) {
39
+ return VALID_RULE;
40
+ }
41
+ return invalidRule(this, context);
42
+ },
43
+ };
44
+ /**
45
+ * File type rule - validates MIME type
46
+ */
47
+ const fileTypeRule = {
48
+ name: "fileType",
49
+ defaultErrorMessage: "The :input must be a :types file",
50
+ async validate(value, context) {
51
+ let mimeTypes = this.context.options.mimeTypes;
52
+ if (typeof mimeTypes === "string") {
53
+ mimeTypes = [mimeTypes];
54
+ }
55
+ if (mimeTypes.includes(value.mimeType)) {
56
+ return VALID_RULE;
57
+ }
58
+ return invalidRule(this, context);
59
+ },
60
+ };export{fileExtensionRule,fileRule,fileTypeRule,imageRule};//# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sources":["../../../src/v/file/file.ts"],"sourcesContent":[null],"names":[],"mappings":"opBAGA;;AAEG;AACU,MAAA,QAAQ,GAAe;AAClC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,mBAAmB,EAAE,2BAA2B;AAChD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,KAAK,YAAY,YAAY,EAAE;AACjC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,SAAS,GAAe;AACnC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,6BAA6B;AAClD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;AAClD,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,iBAAiB,GAEzB;AACH,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,YAAY,EACV,mEAAmE;AACrE,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AAEjD,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAClC,YAAA,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3B,SAAA;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AACxC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,YAAY,GAAiD;AACxE,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AAE/C,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;AACzB,SAAA;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * File Upload Rules - Framework-specific validation rules
3
+ * Requires UploadedFile from the framework
4
+ */
5
+ export * from "./file";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v/file/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Framework Validator - Framework-Specific Rules and Validators
3
+ *
4
+ * This package contains all framework-specific validation functionality:
5
+ * - FileValidator (requires UploadedFile)
6
+ * - Database validation rules (requires Cascade ORM)
7
+ * - Upload validation rules (requires Upload model)
8
+ *
9
+ * Import from: @warlock.js/core/v
10
+ */
11
+ export * from "./types";
12
+ export * from "./validators";
13
+ export * from "./database";
14
+ export * from "./file";
15
+ export * from "./string";
16
+ export { v, type Infer } from "@warlock.js/seal";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/v/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Initialize Seal with Warlock Framework Settings
3
+ *
4
+ * This file configures Seal to use Warlock's localization system
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/v/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/esm/v/init.js ADDED
@@ -0,0 +1,40 @@
1
+ import {trans}from'@mongez/localization';import {configureSeal,registerPlugin}from'@warlock.js/seal';import'@mongez/reinforcements';import'../config/default-configurations.js';import {config}from'../config/typed-config.js';import {databasePlugin}from'./plugins/database-plugin.js';import {filePlugin}from'./plugins/file-plugin.js';/**
2
+ * Initialize Seal with Warlock Framework Settings
3
+ *
4
+ * This file configures Seal to use Warlock's localization system
5
+ */
6
+ // Auto-register framework plugins
7
+ // Configure Seal to use Warlock's localization
8
+ configureSeal({
9
+ translateRule({ rule, attributes }) {
10
+ const translateRule = config.key("validation.schema.translateRule");
11
+ if (translateRule) {
12
+ return translateRule({ rule, attributes });
13
+ }
14
+ const translationGroup = config.key("validation.schema.translationGroup", "validation");
15
+ const translationKey = `${translationGroup}.${rule.name}`;
16
+ const translation = trans(translationKey, attributes);
17
+ return translation === translationKey
18
+ ? rule.defaultErrorMessage || rule.errorMessage
19
+ : translation;
20
+ },
21
+ translateAttribute({ attribute, context, rule }) {
22
+ const translateAttribute = config.key("validation.schema.translateAttribute");
23
+ if (translateAttribute) {
24
+ return translateAttribute({ attribute, context, rule });
25
+ }
26
+ const translationGroup = config.key("validation.schema.translationGroup", "validation");
27
+ let translationKey = `${translationGroup}.attributes.${rule.name}.${attribute}`;
28
+ let translation = trans(translationKey, context.allValues);
29
+ if (translation === translationKey) {
30
+ // now check if there is a global attribute translation
31
+ translationKey = `${translationGroup}.attributes.${attribute}`;
32
+ translation = trans(translationKey, context.allValues);
33
+ }
34
+ return translation === translationKey ? attribute : translation;
35
+ },
36
+ firstErrorOnly: config.key("validation.schema.firstErrorOnly", true),
37
+ });
38
+ // Register plugins to inject methods
39
+ registerPlugin(databasePlugin);
40
+ registerPlugin(filePlugin);//# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sources":["../../src/v/init.ts"],"sourcesContent":[null],"names":[],"mappings":"2UAAA;;;;AAIG;AAEH;AAMA;AACA,aAAa,CAAC;AACZ,IAAA,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA;QAChC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AACpE,QAAA,IAAI,aAAa,EAAE;YACjB,OAAO,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5C,SAAA;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CACjC,oCAAoC,EACpC,YAAY,CACb,CAAC;QAEF,MAAM,cAAc,GAAG,CAAG,EAAA,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACtD,OAAO,WAAW,KAAK,cAAc;AACnC,cAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,YAAY;cAC7C,WAAW,CAAC;KACjB;AAED,IAAA,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA;QAC7C,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CACnC,sCAAsC,CACvC,CAAC;AACF,QAAA,IAAI,kBAAkB,EAAE;YACtB,OAAO,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,SAAA;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CACjC,oCAAoC,EACpC,YAAY,CACb,CAAC;QAEF,IAAI,cAAc,GAAG,CAAA,EAAG,gBAAgB,CAAA,YAAA,EAAe,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;QAChF,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,WAAW,KAAK,cAAc,EAAE;;AAElC,YAAA,cAAc,GAAG,CAAG,EAAA,gBAAgB,CAAe,YAAA,EAAA,SAAS,EAAE,CAAC;YAC/D,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACxD,SAAA;QAED,OAAO,WAAW,KAAK,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;KACjE;IACD,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC;AACrE,CAAA,CAAC,CAAC;AAEH;AACA,cAAc,CAAC,cAAc,CAAC,CAAC;AAC/B,cAAc,CAAC,UAAU,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Database Validation Plugin
3
+ *
4
+ * Adds database validation methods to Seal validators:
5
+ * - unique() - Check uniqueness in database
6
+ * - exists() - Verify record exists
7
+ * - And variants (exceptCurrentUser, exceptCurrentId)
8
+ */
9
+ import type { SealPlugin } from "@warlock.js/seal";
10
+ /**
11
+ * Database validation plugin for Seal
12
+ */
13
+ export declare const databasePlugin: SealPlugin;
14
+ //# sourceMappingURL=database-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-plugin.d.ts","sourceRoot":"","sources":["../../../src/v/plugins/database-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAuBnD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAkI5B,CAAC"}
@@ -0,0 +1,95 @@
1
+ import {ScalarValidator,StringValidator,NumberValidator}from'@warlock.js/seal';import {existsRule}from'../database/exists.js';import {existsExceptCurrentIdRule}from'../database/exists-except-current-id.js';import {existsExceptCurrentUserRule}from'../database/exists-except-current-user.js';import {uniqueRule}from'../database/unique.js';import {uniqueExceptCurrentIdRule}from'../database/unique-except-current-id.js';import {uniqueExceptCurrentUserRule}from'../database/unique-except-current-user.js';/**
2
+ * Database Validation Plugin
3
+ *
4
+ * Adds database validation methods to Seal validators:
5
+ * - unique() - Check uniqueness in database
6
+ * - exists() - Verify record exists
7
+ * - And variants (exceptCurrentUser, exceptCurrentId)
8
+ */
9
+ /**
10
+ * Database validation plugin for Seal
11
+ */
12
+ const databasePlugin = {
13
+ name: "database",
14
+ version: "1.0.0",
15
+ description: "Adds database validation methods (unique, exists) to validators",
16
+ install() {
17
+ // Inject database methods into ScalarValidator
18
+ Object.assign(ScalarValidator.prototype, {
19
+ /** Value must be unique in database */
20
+ unique(model, optionsList) {
21
+ const { errorMessage, ...options } = optionsList || {};
22
+ const rule = this.addRule(uniqueRule, errorMessage);
23
+ rule.context.options = {
24
+ ...options,
25
+ Model: model,
26
+ };
27
+ return this;
28
+ },
29
+ /** Value must be unique in database except current user */
30
+ uniqueExceptCurrentUser(model, optionsList) {
31
+ const { errorMessage, ...options } = optionsList || {};
32
+ const rule = this.addRule(uniqueExceptCurrentUserRule, errorMessage);
33
+ rule.context.options = {
34
+ ...options,
35
+ Model: model,
36
+ };
37
+ return this;
38
+ },
39
+ /** Value must be unique in database except current id */
40
+ uniqueExceptCurrentId(model, optionsList) {
41
+ const { errorMessage, ...options } = optionsList || {};
42
+ const rule = this.addRule(uniqueExceptCurrentIdRule, errorMessage);
43
+ rule.context.options = {
44
+ ...options,
45
+ Model: model,
46
+ };
47
+ return this;
48
+ },
49
+ /** Value must exist in database */
50
+ exists(model, optionsList) {
51
+ const { errorMessage, ...options } = optionsList || {};
52
+ const rule = this.addRule(existsRule, errorMessage);
53
+ rule.context.options = {
54
+ ...options,
55
+ Model: model,
56
+ };
57
+ return this;
58
+ },
59
+ /** Value must exist in database except current user */
60
+ existsExceptCurrentUser(model, optionsList) {
61
+ const { errorMessage, ...options } = optionsList || {};
62
+ const rule = this.addRule(existsExceptCurrentUserRule, errorMessage);
63
+ rule.context.options = {
64
+ ...options,
65
+ Model: model,
66
+ };
67
+ return this;
68
+ },
69
+ /** Value must exists in database except current id */
70
+ existsExceptCurrentId(model, optionsList) {
71
+ const { errorMessage, ...options } = optionsList || {};
72
+ const rule = this.addRule(existsExceptCurrentIdRule, errorMessage);
73
+ rule.context.options = {
74
+ ...options,
75
+ Model: model,
76
+ };
77
+ return this;
78
+ },
79
+ });
80
+ // Inject database methods into StringValidator
81
+ Object.assign(StringValidator.prototype, {
82
+ unique: ScalarValidator.prototype.unique,
83
+ uniqueExceptCurrentUser: ScalarValidator.prototype.uniqueExceptCurrentUser,
84
+ uniqueExceptCurrentId: ScalarValidator.prototype.uniqueExceptCurrentId,
85
+ exists: ScalarValidator.prototype.exists,
86
+ existsExceptCurrentUser: ScalarValidator.prototype.existsExceptCurrentUser,
87
+ existsExceptCurrentId: ScalarValidator.prototype.existsExceptCurrentId,
88
+ });
89
+ // Inject database methods into NumberValidator
90
+ Object.assign(NumberValidator.prototype, {
91
+ unique: ScalarValidator.prototype.unique,
92
+ exists: ScalarValidator.prototype.exists,
93
+ });
94
+ },
95
+ };export{databasePlugin};//# sourceMappingURL=database-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-plugin.js","sources":["../../../src/v/plugins/database-plugin.ts"],"sourcesContent":[null],"names":[],"mappings":"qfAAA;;;;;;;AAOG;AA0BH;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EACT,iEAAiE;IAEnE,OAAO,GAAA;;AAEL,QAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;;YAEvC,MAAM,CAEJ,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;;YAGD,uBAAuB,CAErB,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;AACrE,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;;YAGD,qBAAqB,CAEnB,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;;YAGD,MAAM,CAEJ,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;;YAGD,uBAAuB,CAErB,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC;AACrE,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;;YAGD,qBAAqB,CAEnB,KAA4B,EAC5B,WAEC,EAAA;gBAED,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AACrB,oBAAA,GAAG,OAAO;AACV,oBAAA,KAAK,EAAE,KAAK;iBACb,CAAC;AACF,gBAAA,OAAO,IAAI,CAAC;aACb;AACF,SAAA,CAAC,CAAC;;AAGH,QAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;AACvC,YAAA,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM;AACxC,YAAA,uBAAuB,EACrB,eAAe,CAAC,SAAS,CAAC,uBAAuB;AACnD,YAAA,qBAAqB,EAAE,eAAe,CAAC,SAAS,CAAC,qBAAqB;AACtE,YAAA,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM;AACxC,YAAA,uBAAuB,EACrB,eAAe,CAAC,SAAS,CAAC,uBAAuB;AACnD,YAAA,qBAAqB,EAAE,eAAe,CAAC,SAAS,CAAC,qBAAqB;AACvE,SAAA,CAAC,CAAC;;AAGH,QAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;AACvC,YAAA,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM;AACxC,YAAA,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM;AACzC,SAAA,CAAC,CAAC;KACJ;"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * File Validator Plugin
3
+ *
4
+ * Adds file validation to Seal v factory
5
+ */
6
+ import type { SealPlugin } from "@warlock.js/seal";
7
+ /**
8
+ * File validation plugin for Seal
9
+ */
10
+ export declare const filePlugin: SealPlugin;
11
+ //# sourceMappingURL=file-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-plugin.d.ts","sourceRoot":"","sources":["../../../src/v/plugins/file-plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UASxB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import {v}from'@warlock.js/seal';import {FileValidator}from'../validators/file-validator.js';/**
2
+ * File Validator Plugin
3
+ *
4
+ * Adds file validation to Seal v factory
5
+ */
6
+ /**
7
+ * File validation plugin for Seal
8
+ */
9
+ const filePlugin = {
10
+ name: "file",
11
+ version: "1.0.0",
12
+ description: "Adds file upload validation (v.file())",
13
+ install() {
14
+ // Inject file() method into v factory
15
+ v.file = (errorMessage) => new FileValidator(errorMessage);
16
+ },
17
+ };export{filePlugin};//# sourceMappingURL=file-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-plugin.js","sources":["../../../src/v/plugins/file-plugin.ts"],"sourcesContent":[null],"names":[],"mappings":"6FAAA;;;;AAIG;AAMH;;AAEG;AACU,MAAA,UAAU,GAAe;AACpC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EAAE,wCAAwC;IAErD,OAAO,GAAA;;AAEL,QAAA,CAAC,CAAC,IAAI,GAAG,CAAC,YAAqB,KAAK,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;KACrE;"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Seal Framework Plugins
3
+ *
4
+ * Framework-specific plugins that extend Seal validators
5
+ */
6
+ export * from "./database-plugin";
7
+ export * from "./file-plugin";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * String Upload Rules - Framework-specific validation rules
3
+ * Requires Upload model from the framework
4
+ */
5
+ export * from "./uploadable";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v/string/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type SchemaRule } from "@warlock.js/seal";
2
+ /**
3
+ * Uploadable rule - validates uploadable hash id
4
+ */
5
+ export declare const uploadableRule: SchemaRule;
6
+ //# sourceMappingURL=uploadable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadable.d.ts","sourceRoot":"","sources":["../../../src/v/string/uploadable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG5E;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAW5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import {VALID_RULE,invalidRule}from'@warlock.js/seal';import {Upload}from'../../modules/uploads/models/upload.js';/**
2
+ * Uploadable rule - validates uploadable hash id
3
+ */
4
+ const uploadableRule = {
5
+ name: "uploadable",
6
+ defaultErrorMessage: "The :input must be a valid upload id",
7
+ async validate(value, context) {
8
+ const upload = await Upload.find(value);
9
+ if (upload) {
10
+ return VALID_RULE;
11
+ }
12
+ return invalidRule(this, context);
13
+ },
14
+ };export{uploadableRule};//# sourceMappingURL=uploadable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadable.js","sources":["../../../src/v/string/uploadable.ts"],"sourcesContent":[null],"names":[],"mappings":"kHAGA;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,mBAAmB,EAAE,sCAAsC;AAC3D,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAExC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,UAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Framework Validator Type Augmentations
3
+ *
4
+ * Augments core validators with framework-specific methods
5
+ */
6
+ import type { Model } from "@warlock.js/cascade";
7
+ import type { ExistsExceptCurrentIdRuleOptions, ExistsExceptCurrentUserRuleOptions, ExistsRuleOptions, UniqueExceptCurrentIdRuleOptions, UniqueExceptCurrentUserRuleOptions, UniqueRuleOptions } from "./database";
8
+ import type { FileValidator } from "./validators";
9
+ declare module "@warlock.js/seal" {
10
+ interface ValidatorV {
11
+ file: (errorMessage?: string) => FileValidator;
12
+ }
13
+ interface ScalarValidator {
14
+ /** Value must be unique in database */
15
+ unique(model: typeof Model | string, optionsList?: Partial<UniqueRuleOptions> & {
16
+ errorMessage?: string;
17
+ }): this;
18
+ /** Value must be unique in database except current user */
19
+ uniqueExceptCurrentUser(model: typeof Model | string, optionsList?: Partial<UniqueExceptCurrentUserRuleOptions> & {
20
+ errorMessage?: string;
21
+ }): this;
22
+ /** Value must be unique in database except current id */
23
+ uniqueExceptCurrentId(model: typeof Model | string, optionsList?: Partial<UniqueExceptCurrentIdRuleOptions> & {
24
+ errorMessage?: string;
25
+ }): this;
26
+ /** Value must exist in database */
27
+ exists(model: typeof Model | string, optionsList?: Partial<ExistsRuleOptions> & {
28
+ errorMessage?: string;
29
+ }): this;
30
+ /** Value must exist in database except current user */
31
+ existsExceptCurrentUser(model: typeof Model | string, optionsList?: Partial<ExistsExceptCurrentUserRuleOptions> & {
32
+ errorMessage?: string;
33
+ }): this;
34
+ /** Value must exists in database except current id */
35
+ existsExceptCurrentId(model: typeof Model | string, optionsList?: Partial<ExistsExceptCurrentIdRuleOptions> & {
36
+ errorMessage?: string;
37
+ }): this;
38
+ }
39
+ interface StringValidator {
40
+ unique: ScalarValidator["unique"];
41
+ uniqueExceptCurrentUser: ScalarValidator["uniqueExceptCurrentUser"];
42
+ uniqueExceptCurrentId: ScalarValidator["uniqueExceptCurrentId"];
43
+ exists: ScalarValidator["exists"];
44
+ existsExceptCurrentUser: ScalarValidator["existsExceptCurrentUser"];
45
+ existsExceptCurrentId: ScalarValidator["existsExceptCurrentId"];
46
+ }
47
+ interface NumberValidator {
48
+ unique: ScalarValidator["unique"];
49
+ exists: ScalarValidator["exists"];
50
+ }
51
+ }
52
+ export type { ExistsExceptCurrentIdRuleOptions, ExistsExceptCurrentUserRuleOptions, ExistsRuleOptions, UniqueExceptCurrentIdRuleOptions, UniqueExceptCurrentUserRuleOptions, UniqueRuleOptions, } from "./database";
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/v/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,QAAQ,kBAAkB,CAAC;IAEhC,UAAiB,UAAU;QACzB,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;KAChD;IAED,UAAU,eAAe;QACvB,uCAAuC;QACvC,MAAM,CACJ,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;YACzC,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;QAER,2DAA2D;QAC3D,uBAAuB,CACrB,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,GAAG;YAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;QAER,yDAAyD;QACzD,qBAAqB,CACnB,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG;YACxD,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;QAER,mCAAmC;QACnC,MAAM,CACJ,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;YACzC,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;QAER,uDAAuD;QACvD,uBAAuB,CACrB,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,GAAG;YAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;QAER,sDAAsD;QACtD,qBAAqB,CACnB,KAAK,EAAE,OAAO,KAAK,GAAG,MAAM,EAC5B,WAAW,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG;YACxD,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,GACA,IAAI,CAAC;KACT;IAGD,UAAU,eAAe;QACvB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAClC,uBAAuB,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;QACpE,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;QAChE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAClC,uBAAuB,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;QACpE,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;KACjE;IAGD,UAAU,eAAe;QACvB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;KACnC;CACF;AAGD,YAAY,EACV,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { BaseValidator } from "@warlock.js/seal";
2
+ /**
3
+ * File validator class
4
+ */
5
+ export declare class FileValidator extends BaseValidator {
6
+ constructor(errorMessage?: string);
7
+ /** Value must be an image */
8
+ image(errorMessage?: string): this;
9
+ /** Accept specific file extensions */
10
+ accept(extensions: string | string[], errorMessage?: string): this;
11
+ /** Allow specific MIME types */
12
+ mimeType(mimeTypes: string | string[], errorMessage?: string): this;
13
+ /** Allow only pdf files */
14
+ pdf(errorMessage?: string): this;
15
+ /** Allow only excel files */
16
+ excel(errorMessage?: string): this;
17
+ /** Allow only word files */
18
+ word(errorMessage?: string): this;
19
+ /** Minimum file size */
20
+ minSize(size: number, errorMessage?: string): this;
21
+ /** @alias minSize */
22
+ min(size: number, errorMessage?: string): this;
23
+ /** Maximum file size */
24
+ maxSize(size: number, errorMessage?: string): this;
25
+ /** @alias maxSize */
26
+ max(size: number, errorMessage?: string): this;
27
+ /** Minimum image width */
28
+ minWidth(width: number, errorMessage?: string): this;
29
+ /** Maximum image width */
30
+ maxWidth(width: number, errorMessage?: string): this;
31
+ /** Minimum image height */
32
+ minHeight(height: number, errorMessage?: string): this;
33
+ /** Maximum image height */
34
+ maxHeight(height: number, errorMessage?: string): this;
35
+ }
36
+ //# sourceMappingURL=file-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-validator.d.ts","sourceRoot":"","sources":["../../../src/v/validators/file-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAOd,MAAM,kBAAkB,CAAC;AAG1B;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa;gBAC3B,YAAY,CAAC,EAAE,MAAM;IAKxC,6BAA6B;IACtB,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM;IAKlC,sCAAsC;IAC/B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAMlE,gCAAgC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM;IAMnE,2BAA2B;IACpB,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM;IAIhC,6BAA6B;IACtB,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM;IAUlC,4BAA4B;IACrB,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM;IAUjC,wBAAwB;IACjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMlD,qBAAqB;IACd,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9C,wBAAwB;IACjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMlD,qBAAqB;IACd,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAI9C,0BAA0B;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMpD,0BAA0B;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMpD,2BAA2B;IACpB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMtD,2BAA2B;IACpB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAKvD"}