@warlock.js/core 3.0.11 → 3.0.13
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/bin/warlock-loader.mjs +9 -9
- package/cjs/application.js +1 -1
- package/cjs/application.js.map +1 -1
- package/cjs/console/commander.js +1 -1
- package/cjs/console/commander.js.map +1 -1
- package/cjs/http/UploadedFile.js +3 -3
- package/cjs/http/UploadedFile.js.map +1 -1
- package/cjs/http/errors/index.d.ts +2 -0
- package/cjs/http/errors/index.d.ts.map +1 -0
- package/cjs/http/errors/resource-not-found.error.d.ts +13 -0
- package/cjs/http/errors/resource-not-found.error.d.ts.map +1 -0
- package/cjs/http/errors/resource-not-found.error.js +24 -0
- package/cjs/http/errors/resource-not-found.error.js.map +1 -0
- package/cjs/http/index.d.ts +1 -0
- package/cjs/http/index.d.ts.map +1 -1
- package/cjs/http/middleware/_inject-request-context.d.ts.map +1 -1
- package/cjs/http/middleware/cache-response-middleware.d.ts.map +1 -1
- package/cjs/http/middleware/cache-response-middleware.js +0 -1
- package/cjs/http/middleware/cache-response-middleware.js.map +1 -1
- package/cjs/http/plugins/index.d.ts +1 -1
- package/cjs/http/plugins/index.d.ts.map +1 -1
- package/cjs/http/request.d.ts +20 -5
- package/cjs/http/request.d.ts.map +1 -1
- package/cjs/http/request.js +34 -5
- package/cjs/http/request.js.map +1 -1
- package/cjs/http/response.d.ts +3 -2
- package/cjs/http/response.d.ts.map +1 -1
- package/cjs/http/response.js +15 -4
- package/cjs/http/response.js.map +1 -1
- package/cjs/http/types.d.ts +12 -0
- package/cjs/http/types.d.ts.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/modules/uploads/controllers/upload-files.d.ts.map +1 -1
- package/cjs/modules/uploads/controllers/upload-files.js +7 -7
- package/cjs/modules/uploads/controllers/upload-files.js.map +1 -1
- package/cjs/modules/uploads/output/upload-output.d.ts.map +1 -1
- package/cjs/modules/uploads/output/upload-output.js +2 -2
- package/cjs/modules/uploads/output/upload-output.js.map +1 -1
- package/cjs/modules/uploads/utils/get-watermark-options.js +1 -1
- package/cjs/modules/uploads/utils/get-watermark-options.js.map +1 -1
- package/cjs/output/output.js +1 -1
- package/cjs/output/output.js.map +1 -1
- package/cjs/react/index.d.ts +1 -10
- package/cjs/react/index.d.ts.map +1 -1
- package/cjs/react/index.js +3 -4
- package/cjs/react/index.js.map +1 -1
- package/cjs/repositories/repository-list-manager.js +1 -1
- package/cjs/repositories/repository-list-manager.js.map +1 -1
- package/cjs/router/router.d.ts +0 -8
- package/cjs/router/router.d.ts.map +1 -1
- package/cjs/router/router.js +3 -36
- package/cjs/router/router.js.map +1 -1
- package/cjs/router/types.d.ts +1 -1
- package/cjs/router/types.d.ts.map +1 -1
- package/cjs/starters/http-server-starter.d.ts.map +1 -1
- package/cjs/starters/http-server-starter.js +7 -2
- package/cjs/starters/http-server-starter.js.map +1 -1
- package/cjs/starters/start-cli-server.d.ts.map +1 -1
- package/cjs/starters/start-cli-server.js +10 -1
- package/cjs/starters/start-cli-server.js.map +1 -1
- package/cjs/starters/start-http-server.d.ts +3 -2
- package/cjs/starters/start-http-server.d.ts.map +1 -1
- package/cjs/starters/start-http-server.js +19 -8
- package/cjs/starters/start-http-server.js.map +1 -1
- package/cjs/utils/date-output.d.ts.map +1 -1
- package/cjs/utils/date-output.js +2 -4
- package/cjs/utils/date-output.js.map +1 -1
- package/cjs/utils/get-localized.d.ts.map +1 -1
- package/cjs/utils/get-localized.js.map +1 -1
- package/cjs/utils/glob.js +2 -2
- package/cjs/utils/glob.js.map +1 -1
- package/cjs/v/database/exists-except-current-id.d.ts +7 -0
- package/cjs/v/database/exists-except-current-id.d.ts.map +1 -0
- package/cjs/v/database/exists-except-current-id.js +23 -0
- package/cjs/v/database/exists-except-current-id.js.map +1 -0
- package/cjs/v/database/exists-except-current-user.d.ts +7 -0
- package/cjs/v/database/exists-except-current-user.d.ts.map +1 -0
- package/cjs/v/database/exists-except-current-user.js +25 -0
- package/cjs/v/database/exists-except-current-user.js.map +1 -0
- package/cjs/v/database/exists.d.ts +7 -0
- package/cjs/v/database/exists.d.ts.map +1 -0
- package/cjs/v/database/exists.js +21 -0
- package/cjs/v/database/exists.js.map +1 -0
- package/cjs/v/database/index.d.ts +12 -0
- package/cjs/v/database/index.d.ts.map +1 -0
- package/cjs/v/database/types.d.ts +68 -0
- package/cjs/v/database/types.d.ts.map +1 -0
- package/cjs/v/database/unique-except-current-id.d.ts +7 -0
- package/cjs/v/database/unique-except-current-id.d.ts.map +1 -0
- package/cjs/v/database/unique-except-current-id.js +23 -0
- package/cjs/v/database/unique-except-current-id.js.map +1 -0
- package/cjs/v/database/unique-except-current-user.d.ts +7 -0
- package/cjs/v/database/unique-except-current-user.d.ts.map +1 -0
- package/cjs/v/database/unique-except-current-user.js +25 -0
- package/cjs/v/database/unique-except-current-user.js.map +1 -0
- package/cjs/v/database/unique.d.ts +7 -0
- package/cjs/v/database/unique.d.ts.map +1 -0
- package/cjs/v/database/unique.js +30 -0
- package/cjs/v/database/unique.js.map +1 -0
- package/cjs/v/file/file.d.ts +22 -0
- package/cjs/v/file/file.d.ts.map +1 -0
- package/cjs/v/file/file.js +60 -0
- package/cjs/v/file/file.js.map +1 -0
- package/cjs/v/file/index.d.ts +6 -0
- package/cjs/v/file/index.d.ts.map +1 -0
- package/cjs/v/index.d.ts +17 -0
- package/cjs/v/index.d.ts.map +1 -0
- package/cjs/v/init.d.ts +7 -0
- package/cjs/v/init.d.ts.map +1 -0
- package/cjs/v/init.js +40 -0
- package/cjs/v/init.js.map +1 -0
- package/cjs/v/plugins/database-plugin.d.ts +14 -0
- package/cjs/v/plugins/database-plugin.d.ts.map +1 -0
- package/cjs/v/plugins/database-plugin.js +95 -0
- package/cjs/v/plugins/database-plugin.js.map +1 -0
- package/cjs/v/plugins/file-plugin.d.ts +11 -0
- package/cjs/v/plugins/file-plugin.d.ts.map +1 -0
- package/cjs/v/plugins/file-plugin.js +17 -0
- package/cjs/v/plugins/file-plugin.js.map +1 -0
- package/cjs/v/plugins/index.d.ts +8 -0
- package/cjs/v/plugins/index.d.ts.map +1 -0
- package/cjs/v/string/index.d.ts +6 -0
- package/cjs/v/string/index.d.ts.map +1 -0
- package/cjs/v/string/uploadable.d.ts +6 -0
- package/cjs/v/string/uploadable.d.ts.map +1 -0
- package/cjs/v/string/uploadable.js +14 -0
- package/cjs/v/string/uploadable.js.map +1 -0
- package/cjs/v/types.d.ts +53 -0
- package/cjs/v/types.d.ts.map +1 -0
- package/cjs/v/validators/file-validator.d.ts +36 -0
- package/cjs/v/validators/file-validator.d.ts.map +1 -0
- package/cjs/v/validators/file-validator.js +88 -0
- package/cjs/v/validators/file-validator.js.map +1 -0
- package/cjs/v/validators/index.d.ts +7 -0
- package/cjs/v/validators/index.d.ts.map +1 -0
- package/cjs/validator/index.d.ts +0 -1
- package/cjs/validator/index.d.ts.map +1 -1
- package/cjs/validator/locales.js +518 -10
- package/cjs/validator/locales.js.map +1 -1
- package/cjs/validator/types.d.ts +28 -0
- package/cjs/validator/types.d.ts.map +1 -1
- package/cjs/validator/validateAll.d.ts.map +1 -1
- package/cjs/validator/validateAll.js +5 -2
- package/cjs/validator/validateAll.js.map +1 -1
- package/esm/application.js +1 -1
- package/esm/application.js.map +1 -1
- package/esm/console/commander.js +1 -1
- package/esm/console/commander.js.map +1 -1
- package/esm/http/errors/index.d.ts +2 -0
- package/esm/http/errors/index.d.ts.map +1 -0
- package/esm/http/errors/resource-not-found.error.d.ts +13 -0
- package/esm/http/errors/resource-not-found.error.d.ts.map +1 -0
- package/esm/http/errors/resource-not-found.error.js +24 -0
- package/esm/http/errors/resource-not-found.error.js.map +1 -0
- package/esm/http/index.d.ts +1 -0
- package/esm/http/index.d.ts.map +1 -1
- package/esm/http/middleware/_inject-request-context.d.ts.map +1 -1
- package/esm/http/middleware/cache-response-middleware.d.ts.map +1 -1
- package/esm/http/middleware/cache-response-middleware.js +0 -1
- package/esm/http/middleware/cache-response-middleware.js.map +1 -1
- package/esm/http/plugins/index.d.ts +1 -1
- package/esm/http/plugins/index.d.ts.map +1 -1
- package/esm/http/request.d.ts +20 -5
- package/esm/http/request.d.ts.map +1 -1
- package/esm/http/request.js +34 -5
- package/esm/http/request.js.map +1 -1
- package/esm/http/response.d.ts +3 -2
- package/esm/http/response.d.ts.map +1 -1
- package/esm/http/response.js +16 -5
- package/esm/http/response.js.map +1 -1
- package/esm/http/types.d.ts +12 -0
- package/esm/http/types.d.ts.map +1 -1
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/modules/uploads/controllers/upload-files.d.ts.map +1 -1
- package/esm/modules/uploads/controllers/upload-files.js +2 -2
- package/esm/modules/uploads/controllers/upload-files.js.map +1 -1
- package/esm/modules/uploads/output/upload-output.d.ts.map +1 -1
- package/esm/modules/uploads/output/upload-output.js +2 -2
- package/esm/modules/uploads/output/upload-output.js.map +1 -1
- package/esm/modules/uploads/utils/get-watermark-options.js +1 -1
- package/esm/modules/uploads/utils/get-watermark-options.js.map +1 -1
- package/esm/output/output.js +1 -1
- package/esm/output/output.js.map +1 -1
- package/esm/react/index.d.ts +1 -10
- package/esm/react/index.d.ts.map +1 -1
- package/esm/react/index.js +2 -3
- package/esm/react/index.js.map +1 -1
- package/esm/repositories/repository-list-manager.js +1 -1
- package/esm/repositories/repository-list-manager.js.map +1 -1
- package/esm/router/router.d.ts +0 -8
- package/esm/router/router.d.ts.map +1 -1
- package/esm/router/router.js +3 -36
- package/esm/router/router.js.map +1 -1
- package/esm/router/types.d.ts +1 -1
- package/esm/router/types.d.ts.map +1 -1
- package/esm/starters/http-server-starter.d.ts.map +1 -1
- package/esm/starters/http-server-starter.js +7 -2
- package/esm/starters/http-server-starter.js.map +1 -1
- package/esm/starters/start-cli-server.d.ts.map +1 -1
- package/esm/starters/start-cli-server.js +10 -1
- package/esm/starters/start-cli-server.js.map +1 -1
- package/esm/starters/start-http-server.d.ts +3 -2
- package/esm/starters/start-http-server.d.ts.map +1 -1
- package/esm/starters/start-http-server.js +19 -8
- package/esm/starters/start-http-server.js.map +1 -1
- package/esm/utils/date-output.d.ts.map +1 -1
- package/esm/utils/date-output.js +2 -4
- package/esm/utils/date-output.js.map +1 -1
- package/esm/utils/get-localized.d.ts.map +1 -1
- package/esm/utils/get-localized.js.map +1 -1
- package/esm/v/database/exists-except-current-id.d.ts +7 -0
- package/esm/v/database/exists-except-current-id.d.ts.map +1 -0
- package/esm/v/database/exists-except-current-id.js +23 -0
- package/esm/v/database/exists-except-current-id.js.map +1 -0
- package/esm/v/database/exists-except-current-user.d.ts +7 -0
- package/esm/v/database/exists-except-current-user.d.ts.map +1 -0
- package/esm/v/database/exists-except-current-user.js +25 -0
- package/esm/v/database/exists-except-current-user.js.map +1 -0
- package/esm/v/database/exists.d.ts +7 -0
- package/esm/v/database/exists.d.ts.map +1 -0
- package/esm/v/database/exists.js +21 -0
- package/esm/v/database/exists.js.map +1 -0
- package/esm/v/database/index.d.ts +12 -0
- package/esm/v/database/index.d.ts.map +1 -0
- package/esm/v/database/types.d.ts +68 -0
- package/esm/v/database/types.d.ts.map +1 -0
- package/esm/v/database/unique-except-current-id.d.ts +7 -0
- package/esm/v/database/unique-except-current-id.d.ts.map +1 -0
- package/esm/v/database/unique-except-current-id.js +23 -0
- package/esm/v/database/unique-except-current-id.js.map +1 -0
- package/esm/v/database/unique-except-current-user.d.ts +7 -0
- package/esm/v/database/unique-except-current-user.d.ts.map +1 -0
- package/esm/v/database/unique-except-current-user.js +25 -0
- package/esm/v/database/unique-except-current-user.js.map +1 -0
- package/esm/v/database/unique.d.ts +7 -0
- package/esm/v/database/unique.d.ts.map +1 -0
- package/esm/v/database/unique.js +30 -0
- package/esm/v/database/unique.js.map +1 -0
- package/esm/v/file/file.d.ts +22 -0
- package/esm/v/file/file.d.ts.map +1 -0
- package/esm/v/file/file.js +60 -0
- package/esm/v/file/file.js.map +1 -0
- package/esm/v/file/index.d.ts +6 -0
- package/esm/v/file/index.d.ts.map +1 -0
- package/esm/v/index.d.ts +17 -0
- package/esm/v/index.d.ts.map +1 -0
- package/esm/v/init.d.ts +7 -0
- package/esm/v/init.d.ts.map +1 -0
- package/esm/v/init.js +40 -0
- package/esm/v/init.js.map +1 -0
- package/esm/v/plugins/database-plugin.d.ts +14 -0
- package/esm/v/plugins/database-plugin.d.ts.map +1 -0
- package/esm/v/plugins/database-plugin.js +95 -0
- package/esm/v/plugins/database-plugin.js.map +1 -0
- package/esm/v/plugins/file-plugin.d.ts +11 -0
- package/esm/v/plugins/file-plugin.d.ts.map +1 -0
- package/esm/v/plugins/file-plugin.js +17 -0
- package/esm/v/plugins/file-plugin.js.map +1 -0
- package/esm/v/plugins/index.d.ts +8 -0
- package/esm/v/plugins/index.d.ts.map +1 -0
- package/esm/v/string/index.d.ts +6 -0
- package/esm/v/string/index.d.ts.map +1 -0
- package/esm/v/string/uploadable.d.ts +6 -0
- package/esm/v/string/uploadable.d.ts.map +1 -0
- package/esm/v/string/uploadable.js +14 -0
- package/esm/v/string/uploadable.js.map +1 -0
- package/esm/v/types.d.ts +53 -0
- package/esm/v/types.d.ts.map +1 -0
- package/esm/v/validators/file-validator.d.ts +36 -0
- package/esm/v/validators/file-validator.d.ts.map +1 -0
- package/esm/v/validators/file-validator.js +88 -0
- package/esm/v/validators/file-validator.js.map +1 -0
- package/esm/v/validators/index.d.ts +7 -0
- package/esm/v/validators/index.d.ts.map +1 -0
- package/esm/validator/index.d.ts +0 -1
- package/esm/validator/index.d.ts.map +1 -1
- package/esm/validator/locales.js +518 -10
- package/esm/validator/locales.js.map +1 -1
- package/esm/validator/types.d.ts +28 -0
- package/esm/validator/types.d.ts.map +1 -1
- package/esm/validator/validateAll.d.ts.map +1 -1
- package/esm/validator/validateAll.js +4 -1
- package/esm/validator/validateAll.js.map +1 -1
- package/package.json +3 -3
- package/cjs/react/page-renderer.d.ts +0 -18
- package/cjs/react/page-renderer.d.ts.map +0 -1
- package/cjs/react/page-renderer.js +0 -69
- package/cjs/react/page-renderer.js.map +0 -1
- package/cjs/react/plugin.d.ts +0 -15
- package/cjs/react/plugin.d.ts.map +0 -1
- package/cjs/react/plugin.js +0 -22
- package/cjs/react/plugin.js.map +0 -1
- package/cjs/react/vite-config.d.ts +0 -9
- package/cjs/react/vite-config.d.ts.map +0 -1
- package/cjs/react/vite-config.js +0 -74
- package/cjs/react/vite-config.js.map +0 -1
- package/cjs/validator/v/array-validator.d.ts +0 -21
- package/cjs/validator/v/array-validator.d.ts.map +0 -1
- package/cjs/validator/v/base-validator.d.ts +0 -117
- package/cjs/validator/v/base-validator.d.ts.map +0 -1
- package/cjs/validator/v/database.d.ts +0 -8
- package/cjs/validator/v/database.d.ts.map +0 -1
- package/cjs/validator/v/database.js +0 -129
- package/cjs/validator/v/database.js.map +0 -1
- package/cjs/validator/v/index.d.ts +0 -3
- package/cjs/validator/v/index.d.ts.map +0 -1
- package/cjs/validator/v/mutators.d.ts +0 -24
- package/cjs/validator/v/mutators.d.ts.map +0 -1
- package/cjs/validator/v/mutators.js +0 -88
- package/cjs/validator/v/mutators.js.map +0 -1
- package/cjs/validator/v/number-validator.d.ts +0 -21
- package/cjs/validator/v/number-validator.d.ts.map +0 -1
- package/cjs/validator/v/object-validator.d.ts +0 -37
- package/cjs/validator/v/object-validator.d.ts.map +0 -1
- package/cjs/validator/v/rules.d.ts +0 -265
- package/cjs/validator/v/rules.d.ts.map +0 -1
- package/cjs/validator/v/rules.js +0 -914
- package/cjs/validator/v/rules.js.map +0 -1
- package/cjs/validator/v/schema.d.ts +0 -625
- package/cjs/validator/v/schema.d.ts.map +0 -1
- package/cjs/validator/v/schema.js +0 -1212
- package/cjs/validator/v/schema.js.map +0 -1
- package/cjs/validator/v/string-validator.d.ts +0 -41
- package/cjs/validator/v/string-validator.d.ts.map +0 -1
- package/cjs/validator/v/types.d.ts +0 -180
- package/cjs/validator/v/types.d.ts.map +0 -1
- package/cjs/validator/v/utils.d.ts +0 -5
- package/cjs/validator/v/utils.d.ts.map +0 -1
- package/cjs/validator/v/utils.js +0 -29
- package/cjs/validator/v/utils.js.map +0 -1
- package/esm/react/page-renderer.d.ts +0 -18
- package/esm/react/page-renderer.d.ts.map +0 -1
- package/esm/react/page-renderer.js +0 -69
- package/esm/react/page-renderer.js.map +0 -1
- package/esm/react/plugin.d.ts +0 -15
- package/esm/react/plugin.d.ts.map +0 -1
- package/esm/react/plugin.js +0 -22
- package/esm/react/plugin.js.map +0 -1
- package/esm/react/vite-config.d.ts +0 -9
- package/esm/react/vite-config.d.ts.map +0 -1
- package/esm/react/vite-config.js +0 -74
- package/esm/react/vite-config.js.map +0 -1
- package/esm/validator/v/array-validator.d.ts +0 -21
- package/esm/validator/v/array-validator.d.ts.map +0 -1
- package/esm/validator/v/base-validator.d.ts +0 -117
- package/esm/validator/v/base-validator.d.ts.map +0 -1
- package/esm/validator/v/database.d.ts +0 -8
- package/esm/validator/v/database.d.ts.map +0 -1
- package/esm/validator/v/database.js +0 -129
- package/esm/validator/v/database.js.map +0 -1
- package/esm/validator/v/index.d.ts +0 -3
- package/esm/validator/v/index.d.ts.map +0 -1
- package/esm/validator/v/mutators.d.ts +0 -24
- package/esm/validator/v/mutators.d.ts.map +0 -1
- package/esm/validator/v/mutators.js +0 -88
- package/esm/validator/v/mutators.js.map +0 -1
- package/esm/validator/v/number-validator.d.ts +0 -21
- package/esm/validator/v/number-validator.d.ts.map +0 -1
- package/esm/validator/v/object-validator.d.ts +0 -37
- package/esm/validator/v/object-validator.d.ts.map +0 -1
- package/esm/validator/v/rules.d.ts +0 -265
- package/esm/validator/v/rules.d.ts.map +0 -1
- package/esm/validator/v/rules.js +0 -914
- package/esm/validator/v/rules.js.map +0 -1
- package/esm/validator/v/schema.d.ts +0 -625
- package/esm/validator/v/schema.d.ts.map +0 -1
- package/esm/validator/v/schema.js +0 -1212
- package/esm/validator/v/schema.js.map +0 -1
- package/esm/validator/v/string-validator.d.ts +0 -41
- package/esm/validator/v/string-validator.d.ts.map +0 -1
- package/esm/validator/v/types.d.ts +0 -180
- package/esm/validator/v/types.d.ts.map +0 -1
- package/esm/validator/v/utils.d.ts +0 -5
- package/esm/validator/v/utils.d.ts.map +0 -1
- package/esm/validator/v/utils.js +0 -29
- package/esm/validator/v/utils.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SchemaRule } from "@warlock.js/seal";
|
|
2
|
+
import type { UniqueExceptCurrentUserRuleOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Unique except current user rule
|
|
5
|
+
*/
|
|
6
|
+
export declare const uniqueExceptCurrentUserRule: SchemaRule<UniqueExceptCurrentUserRuleOptions>;
|
|
7
|
+
//# sourceMappingURL=unique-except-current-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique-except-current-user.d.ts","sourceRoot":"","sources":["../../../src/v/database/unique-except-current-user.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,kCAAkC,CAuCpF,CAAC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v/file/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,QAAQ,CAAC"}
|
package/esm/v/index.d.ts
ADDED
|
@@ -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"}
|
package/esm/v/init.d.ts
ADDED
|
@@ -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":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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;"}
|
package/esm/v/types.d.ts
ADDED
|
@@ -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"}
|