arkos 2.0.0-next.2 → 2.0.0-next.21
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/README.md +146 -145
- package/cli.js +11 -13
- package/dist/esm/app.js +17 -16
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-gateway/arkos-gateway.js +338 -0
- package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js +168 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
- package/dist/esm/components/arkos-gateway/types.js +3 -0
- package/dist/esm/components/arkos-gateway/types.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
- package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
- package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
- package/dist/esm/components/arkos-policy/index.js +3 -1
- package/dist/esm/components/arkos-policy/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/index.js +2 -1
- package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/exports/index.js +3 -3
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/middlewares/index.js +1 -1
- package/dist/esm/exports/middlewares/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -2
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/websockets.js +5 -0
- package/dist/esm/exports/websockets.js.map +1 -0
- package/dist/esm/generated.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +214 -222
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +26 -9
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +90 -102
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
- package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/docs-links.js +6 -0
- package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +182 -162
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +31 -48
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +23 -9
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +33 -138
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/base/utils/error-prettifier.js +26 -30
- package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
- package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +17 -10
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +9 -103
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +208 -214
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +35 -12
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +13 -8
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +346 -0
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +39 -22
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +6 -3
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/types/auth.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/types/validation/validation-manager.js +49 -0
- package/dist/esm/types/validation/validation-manager.js.map +1 -0
- package/dist/esm/types/validation/validator.js +2 -0
- package/dist/esm/types/validation/validator.js.map +1 -0
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +37 -130
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
- package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +188 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +88 -29
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +364 -89
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js +6 -6
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +16 -7
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +18 -28
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +5 -4
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +70 -56
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +54 -50
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +8 -37
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +25 -14
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -4
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +31 -18
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/define-config.js +14 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/docs-links.js +2 -0
- package/dist/esm/utils/docs-links.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +0 -6
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +2 -1
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +46 -27
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +26 -33
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +2 -2
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +41 -17
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/prisma/types.js.map +1 -1
- package/dist/esm/utils/remove-dir.js +1 -1
- package/dist/esm/utils/remove-dir.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +23 -21
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +10 -7
- package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
- package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
- package/dist/types/components/arkos-gateway/types.d.ts +364 -0
- package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
- package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
- package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
- package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +11 -5
- package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
- package/dist/types/components/arkos-route-hook/types.d.ts +9 -5
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/exports/index.d.ts +5 -5
- package/dist/types/exports/middlewares/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -3
- package/dist/types/exports/websockets.d.ts +5 -0
- package/dist/types/modules/auth/auth.service.d.ts +80 -51
- package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
- package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
- package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
- package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
- package/dist/types/modules/base/base.controller.d.ts +4 -4
- package/dist/types/modules/base/base.middlewares.d.ts +1 -7
- package/dist/types/modules/base/base.service.d.ts +8 -17
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
- package/dist/types/modules/email/email.service.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -27
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
- package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
- package/dist/types/types/arkos-config/utils.d.ts +68 -0
- package/dist/types/types/arkos-prisma-input.d.ts +4 -3
- package/dist/types/types/arkos.d.ts +5 -15
- package/dist/types/types/auth.d.ts +4 -4
- package/dist/types/types/index.d.ts +10 -58
- package/dist/types/types/new-arkos-config.d.ts +326 -36
- package/dist/types/types/router-config.d.ts +0 -63
- package/dist/types/types/upload.d.ts +10 -0
- package/dist/types/types/validation/validation-manager.d.ts +27 -0
- package/dist/types/types/validation/validator.d.ts +2 -0
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +83 -8
- package/dist/types/utils/arkos-router/types/index.d.ts +74 -23
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +65 -8
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/build.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +15 -6
- package/dist/types/utils/cli/start.d.ts +3 -1
- package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
- package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
- package/dist/types/utils/define-config.d.ts +1 -1
- package/dist/types/utils/docs-links.d.ts +1 -0
- package/dist/types/utils/dynamic-loader.d.ts +2 -2
- package/dist/types/utils/features/api.features.d.ts +1 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/initialize-app.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
- package/dist/types/utils/prisma/types.d.ts +3 -2
- package/package.json +117 -84
- package/dist/cjs/app.js +0 -79
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
- package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
- package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/index.js +0 -36
- package/dist/cjs/components/arkos-policy/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/types.js +0 -3
- package/dist/cjs/components/arkos-policy/types.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/index.js +0 -50
- package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
- package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/types.js +0 -3
- package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/index.js +0 -35
- package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
- package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/types.js +0 -3
- package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
- package/dist/cjs/exports/auth/index.js +0 -6
- package/dist/cjs/exports/auth/index.js.map +0 -1
- package/dist/cjs/exports/config.js +0 -6
- package/dist/cjs/exports/config.js.map +0 -1
- package/dist/cjs/exports/controllers/index.js +0 -42
- package/dist/cjs/exports/controllers/index.js.map +0 -1
- package/dist/cjs/exports/error-handler/index.js +0 -11
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -23
- package/dist/cjs/exports/index.js.map +0 -1
- package/dist/cjs/exports/middlewares/index.js +0 -7
- package/dist/cjs/exports/middlewares/index.js.map +0 -1
- package/dist/cjs/exports/prisma/index.js +0 -13
- package/dist/cjs/exports/prisma/index.js.map +0 -1
- package/dist/cjs/exports/services/index.js +0 -53
- package/dist/cjs/exports/services/index.js.map +0 -1
- package/dist/cjs/exports/utils/index.js +0 -26
- package/dist/cjs/exports/utils/index.js.map +0 -1
- package/dist/cjs/exports/validation/index.js +0 -11
- package/dist/cjs/exports/validation/index.js.map +0 -1
- package/dist/cjs/generated.js +0 -7
- package/dist/cjs/generated.js.map +0 -1
- package/dist/cjs/modules/auth/auth.controller.js +0 -254
- package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
- package/dist/cjs/modules/auth/auth.router.js +0 -113
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -277
- package/dist/cjs/modules/auth/auth.service.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
- package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -275
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -231
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -112
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -432
- package/dist/cjs/modules/base/base.service.js.map +0 -1
- package/dist/cjs/modules/base/types/base.service.types.js +0 -3
- package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
- package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
- package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/router-validator.js +0 -13
- package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/debugger/debugger.service.js +0 -59
- package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
- package/dist/cjs/modules/email/email.service.js +0 -106
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/cjs/modules/swagger/swagger.router.js +0 -65
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/server.js +0 -60
- package/dist/cjs/server.js.map +0 -1
- package/dist/cjs/types/arkos-prisma-input.js +0 -3
- package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
- package/dist/cjs/types/arkos.js +0 -3
- package/dist/cjs/types/arkos.js.map +0 -1
- package/dist/cjs/types/auth.js +0 -3
- package/dist/cjs/types/auth.js.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/new-arkos-config.js +0 -3
- package/dist/cjs/types/new-arkos-config.js.map +0 -1
- package/dist/cjs/types/router-config.js +0 -3
- package/dist/cjs/types/router-config.js.map +0 -1
- package/dist/cjs/utils/arkos-env.js +0 -9
- package/dist/cjs/utils/arkos-env.js.map +0 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -253
- package/dist/cjs/utils/arkos-router/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
- package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/index.js +0 -3
- package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
- package/dist/cjs/utils/bundler.js +0 -163
- package/dist/cjs/utils/bundler.js.map +0 -1
- package/dist/cjs/utils/cli/build.js +0 -199
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -128
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -79
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -229
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -191
- package/dist/cjs/utils/cli/index.js.map +0 -1
- package/dist/cjs/utils/cli/prisma-generate.js +0 -112
- package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
- package/dist/cjs/utils/cli/start.js +0 -72
- package/dist/cjs/utils/cli/start.js.map +0 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -115
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
- package/dist/cjs/utils/define-config.js +0 -46
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -52
- package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
- package/dist/cjs/utils/dynamic-loader.js +0 -22
- package/dist/cjs/utils/dynamic-loader.js.map +0 -1
- package/dist/cjs/utils/expand-env.js +0 -72
- package/dist/cjs/utils/expand-env.js.map +0 -1
- package/dist/cjs/utils/features/api.features.js +0 -201
- package/dist/cjs/utils/features/api.features.js.map +0 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
- package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
- package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
- package/dist/cjs/utils/helpers/exit-error.js +0 -12
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -105
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
- package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/text.helpers.js +0 -28
- package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
- package/dist/cjs/utils/initialize-app.js +0 -55
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
- package/dist/cjs/utils/prisma/types.js +0 -3
- package/dist/cjs/utils/prisma/types.js.map +0 -1
- package/dist/cjs/utils/remove-dir.js +0 -14
- package/dist/cjs/utils/remove-dir.js.map +0 -1
- package/dist/cjs/utils/setup-app.js +0 -119
- package/dist/cjs/utils/setup-app.js.map +0 -1
- package/dist/cjs/utils/sheu.js +0 -131
- package/dist/cjs/utils/sheu.js.map +0 -1
- package/dist/cjs/utils/validate-dto.js +0 -19
- package/dist/cjs/utils/validate-dto.js.map +0 -1
- package/dist/cjs/utils/validate-schema.js +0 -75
- package/dist/cjs/utils/validate-schema.js.map +0 -1
- package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
- package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/index.js +0 -32
- package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/reader.js +0 -24
- package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/types.js +0 -2
- package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
- package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
- package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
- package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
- package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import prismaSchemaParser from "../../../../prisma/prisma-schema-parser.js";
|
|
2
2
|
import { getUserFileExtension } from "../../../../helpers/fs.helpers.js";
|
|
3
|
+
import { getArkosConfig } from "../../../../helpers/arkos-config.helpers.js";
|
|
3
4
|
export class ClassValidatorDtoGenerator {
|
|
4
5
|
ensureCorrectOptions(options) {
|
|
5
6
|
const { modelName } = options;
|
|
@@ -38,6 +39,33 @@ export class ClassValidatorDtoGenerator {
|
|
|
38
39
|
if (isForeignKey) {
|
|
39
40
|
continue;
|
|
40
41
|
}
|
|
42
|
+
if (field.isCompositeType) {
|
|
43
|
+
const compositeType = prismaSchemaParser.compositeTypes.find((t) => t.name === field.type);
|
|
44
|
+
const compositeDtoName = `${field.type}ForCreate${modelName.pascal}Dto`;
|
|
45
|
+
validatorsUsed.add("ValidateNested");
|
|
46
|
+
transformersUsed.add("Type");
|
|
47
|
+
if (!nestedDtoClasses.find((c) => c.includes(`class ${compositeDtoName}`))) {
|
|
48
|
+
const nestedFields = compositeType.fields.map((f) => {
|
|
49
|
+
const { decorators, type } = this.generateClassValidatorField(f, false, validatorsUsed, transformersUsed);
|
|
50
|
+
const mod = isTypeScript ? (f.isOptional ? "?" : "!") : "";
|
|
51
|
+
return `${decorators} ${f.name}${mod}: ${type};`;
|
|
52
|
+
});
|
|
53
|
+
nestedDtoClasses.push(`class ${compositeDtoName} {\n${nestedFields.join("\n\n")}\n}`);
|
|
54
|
+
}
|
|
55
|
+
const isOptional = field.isOptional || field.defaultValue !== undefined;
|
|
56
|
+
if (isOptional)
|
|
57
|
+
validatorsUsed.add("IsOptional");
|
|
58
|
+
const optDecorator = isOptional ? " @IsOptional()\n" : "";
|
|
59
|
+
const mod = isTypeScript ? (isOptional ? "?" : "!") : "";
|
|
60
|
+
const eachOpt = field.isArray ? "{ each: true }" : "";
|
|
61
|
+
const typeStr = field.isArray
|
|
62
|
+
? `${compositeDtoName}[]`
|
|
63
|
+
: compositeDtoName;
|
|
64
|
+
if (field.isArray)
|
|
65
|
+
validatorsUsed.add("IsArray");
|
|
66
|
+
dtoFields.push(`${optDecorator}${field.isArray ? " @IsArray()\n" : ""} @ValidateNested(${eachOpt})\n @Type(() => ${compositeDtoName})\n ${field.name}${mod}: ${typeStr};`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
41
69
|
if (field.isRelation) {
|
|
42
70
|
if (field.isArray)
|
|
43
71
|
continue;
|
|
@@ -53,7 +81,7 @@ export class ClassValidatorDtoGenerator {
|
|
|
53
81
|
validatorsUsed.add("ValidateNested");
|
|
54
82
|
transformersUsed.add("Type");
|
|
55
83
|
const relationDtoName = `${referencedModel.name}ForCreate${modelName.pascal}Dto`;
|
|
56
|
-
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript);
|
|
84
|
+
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed);
|
|
57
85
|
if (!dtoFields.find((dtoField) => dtoField.includes(relationDtoName)))
|
|
58
86
|
nestedDtoClasses.push(nestedDtoClass);
|
|
59
87
|
dtoFields.push(`${optionalDecorator} @ValidateNested()\n @Type(() => ${relationDtoName})\n ${field.name}${typeModifier}: ${relationDtoName};`);
|
|
@@ -63,7 +91,7 @@ export class ClassValidatorDtoGenerator {
|
|
|
63
91
|
if (prismaSchemaParser.isEnum(field.type)) {
|
|
64
92
|
enumsUsed.add(field.type);
|
|
65
93
|
}
|
|
66
|
-
const { decorators, type } = this.generateClassValidatorField(field, isUserModule, validatorsUsed);
|
|
94
|
+
const { decorators, type } = this.generateClassValidatorField(field, isUserModule, validatorsUsed, transformersUsed);
|
|
67
95
|
const isOptional = field.isOptional || field.defaultValue !== undefined;
|
|
68
96
|
const typeModifier = isTypeScript ? (isOptional ? "?" : "!") : "";
|
|
69
97
|
dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);
|
|
@@ -103,6 +131,29 @@ ${dtoFields.join("\n\n")}
|
|
|
103
131
|
if (isForeignKey) {
|
|
104
132
|
continue;
|
|
105
133
|
}
|
|
134
|
+
if (field.isCompositeType) {
|
|
135
|
+
const compositeType = prismaSchemaParser.compositeTypes.find((t) => t.name === field.type);
|
|
136
|
+
const compositeDtoName = `${field.type}ForUpdate${modelName.pascal}Dto`;
|
|
137
|
+
validatorsUsed.add("ValidateNested");
|
|
138
|
+
validatorsUsed.add("IsOptional");
|
|
139
|
+
transformersUsed.add("Type");
|
|
140
|
+
if (!nestedDtoClasses.find((c) => c.includes(`class ${compositeDtoName}`))) {
|
|
141
|
+
const nestedFields = compositeType.fields.map((f) => {
|
|
142
|
+
const { decorators, type } = this.generateClassValidatorFieldForUpdate(f, false, validatorsUsed, transformersUsed);
|
|
143
|
+
const mod = isTypeScript ? "?" : "";
|
|
144
|
+
return `${decorators} ${f.name}${mod}: ${type};`;
|
|
145
|
+
});
|
|
146
|
+
nestedDtoClasses.push(`class ${compositeDtoName} {\n${nestedFields.join("\n\n")}\n}`);
|
|
147
|
+
}
|
|
148
|
+
if (field.isArray)
|
|
149
|
+
validatorsUsed.add("IsArray");
|
|
150
|
+
const eachOpt = field.isArray ? "{ each: true }" : "";
|
|
151
|
+
const typeStr = field.isArray
|
|
152
|
+
? `${compositeDtoName}[]`
|
|
153
|
+
: compositeDtoName;
|
|
154
|
+
dtoFields.push(` @IsOptional()\n${field.isArray ? " @IsArray()\n" : ""} @ValidateNested(${eachOpt})\n @Type(() => ${compositeDtoName})\n ${field.name}?: ${typeStr};`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
106
157
|
if (field.isRelation) {
|
|
107
158
|
if (field.isArray)
|
|
108
159
|
continue;
|
|
@@ -114,7 +165,7 @@ ${dtoFields.join("\n\n")}
|
|
|
114
165
|
validatorsUsed.add("IsNotEmpty");
|
|
115
166
|
transformersUsed.add("Type");
|
|
116
167
|
const relationDtoName = `${referencedModel.name}ForUpdate${modelName.pascal}Dto`;
|
|
117
|
-
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript);
|
|
168
|
+
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed);
|
|
118
169
|
if (!dtoFields.find((dtoField) => dtoField.includes(relationDtoName)))
|
|
119
170
|
nestedDtoClasses.push(nestedDtoClass);
|
|
120
171
|
const typeModifier = isTypeScript ? "?" : "";
|
|
@@ -125,7 +176,7 @@ ${dtoFields.join("\n\n")}
|
|
|
125
176
|
if (prismaSchemaParser.isEnum(field.type)) {
|
|
126
177
|
enumsUsed.add(field.type);
|
|
127
178
|
}
|
|
128
|
-
const { decorators, type } = this.generateClassValidatorFieldForUpdate(field, isUserModule, validatorsUsed);
|
|
179
|
+
const { decorators, type } = this.generateClassValidatorFieldForUpdate(field, isUserModule, validatorsUsed, transformersUsed);
|
|
129
180
|
const typeModifier = isTypeScript ? "?" : "";
|
|
130
181
|
dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);
|
|
131
182
|
}
|
|
@@ -164,7 +215,7 @@ ${dtoFields.join("\n\n")}
|
|
|
164
215
|
if (prismaSchemaParser.isEnum(field.type)) {
|
|
165
216
|
enumsUsed.add(field.type);
|
|
166
217
|
}
|
|
167
|
-
const { decorators, type } = this.generateClassValidatorField(field, isUserModule, validatorsUsed);
|
|
218
|
+
const { decorators, type } = this.generateClassValidatorField(field, isUserModule, validatorsUsed, transformersUsed);
|
|
168
219
|
const isOptional = field.isOptional;
|
|
169
220
|
const typeModifier = isTypeScript ? (isOptional ? "?" : "!") : "";
|
|
170
221
|
dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);
|
|
@@ -234,7 +285,7 @@ ${dtoFields.join("\n\n")}
|
|
|
234
285
|
validatorsUsed.add("ValidateNested");
|
|
235
286
|
transformersUsed.add("Type");
|
|
236
287
|
const relationDtoName = `${referencedModel.name}ForQuery${modelName.pascal}Dto`;
|
|
237
|
-
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript);
|
|
288
|
+
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed);
|
|
238
289
|
if (!dtoFields.find((dtoField) => dtoField.includes(relationDtoName)) &&
|
|
239
290
|
!timestampDtoFields.find((dtoField) => dtoField.includes(relationDtoName))) {
|
|
240
291
|
nestedDtoClasses.push(nestedDtoClass);
|
|
@@ -264,7 +315,8 @@ ${dtoFields.join("\n\n")}
|
|
|
264
315
|
}
|
|
265
316
|
if (field.type === "Boolean") {
|
|
266
317
|
validatorsUsed.add("IsBoolean");
|
|
267
|
-
|
|
318
|
+
transformersUsed.add("Transform");
|
|
319
|
+
const fieldDef = ` @IsOptional()\n @Transform(({ value }) => value === true || value === "true" || value === 1 || value === "1")\n @IsBoolean()\n ${field.name}${typeModifier}: boolean;`;
|
|
268
320
|
if (timestampFields.includes(field.name)) {
|
|
269
321
|
timestampDtoFields.push(fieldDef);
|
|
270
322
|
}
|
|
@@ -380,14 +432,14 @@ ${allFields.join("\n\n")}
|
|
|
380
432
|
}
|
|
381
433
|
return classes.join("\n\n");
|
|
382
434
|
}
|
|
383
|
-
generateNestedDtoClass(field, referencedModel, dtoName, validatorsUsed, enumsUsed, isTypeScript) {
|
|
435
|
+
generateNestedDtoClass(field, referencedModel, dtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed) {
|
|
384
436
|
const fields = [];
|
|
385
437
|
const refFieldName = field.foreignReferenceField || "id";
|
|
386
438
|
const refFieldAsPrismaField = referencedModel.fields.find((f) => f.name === refFieldName);
|
|
387
439
|
if (refFieldAsPrismaField) {
|
|
388
440
|
if (prismaSchemaParser.isEnum(refFieldAsPrismaField.type))
|
|
389
441
|
enumsUsed.add(refFieldAsPrismaField.type);
|
|
390
|
-
const { decorators, type } = this.generateClassValidatorField(refFieldAsPrismaField, false, validatorsUsed);
|
|
442
|
+
const { decorators, type } = this.generateClassValidatorField(refFieldAsPrismaField, false, validatorsUsed, transformersUsed);
|
|
391
443
|
const typeModifier = isTypeScript ? "!" : "";
|
|
392
444
|
fields.push(`${decorators} ${refFieldAsPrismaField.name}${typeModifier}: ${type};`);
|
|
393
445
|
}
|
|
@@ -395,7 +447,32 @@ ${allFields.join("\n\n")}
|
|
|
395
447
|
${fields.join("\n\n")}
|
|
396
448
|
}`;
|
|
397
449
|
}
|
|
398
|
-
|
|
450
|
+
generateTransformDecorator(field) {
|
|
451
|
+
const isArray = field.isArray;
|
|
452
|
+
switch (field.type) {
|
|
453
|
+
case "Int":
|
|
454
|
+
case "Float":
|
|
455
|
+
case "Decimal":
|
|
456
|
+
return isArray
|
|
457
|
+
? `@Transform(({ value }) => (Array.isArray(value) ? value.map((v: any) => (v !== undefined && v !== null && v !== "" ? Number(v) : v)) : value))`
|
|
458
|
+
: `@Transform(({ value }) => (value !== undefined && value !== null && value !== "" ? Number(value) : value))`;
|
|
459
|
+
case "BigInt":
|
|
460
|
+
return isArray
|
|
461
|
+
? `@Transform(({ value }) => (Array.isArray(value) ? value.map((v: any) => (v !== undefined && v !== null && v !== "" ? BigInt(v) : v)) : value))`
|
|
462
|
+
: `@Transform(({ value }) => (value !== undefined && value !== null && value !== "" ? BigInt(value) : value))`;
|
|
463
|
+
case "Boolean":
|
|
464
|
+
return isArray
|
|
465
|
+
? `@Transform(({ value }) => (Array.isArray(value) ? value.map((v: any) => v === true || v === "true" || v === 1 || v === "1") : value))`
|
|
466
|
+
: `@Transform(({ value }) => value === true || value === "true" || value === 1 || value === "1")`;
|
|
467
|
+
case "DateTime":
|
|
468
|
+
return isArray
|
|
469
|
+
? `@Transform(({ value }) => (Array.isArray(value) ? value.map((v: any) => (v ? new Date(v) : v)) : value))`
|
|
470
|
+
: `@Transform(({ value }) => (value ? new Date(value) : value))`;
|
|
471
|
+
default:
|
|
472
|
+
return null;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
generateClassValidatorField(field, isUserModule, validatorsUsed, transformersUsed) {
|
|
399
476
|
let decorators = [];
|
|
400
477
|
let type = this.mapPrismaTypeToTS(field.type);
|
|
401
478
|
const isOptional = field.isOptional || field.defaultValue !== undefined;
|
|
@@ -421,6 +498,11 @@ ${fields.join("\n\n")}
|
|
|
421
498
|
type = field.isArray ? `${field.type}[]` : field.type;
|
|
422
499
|
}
|
|
423
500
|
else {
|
|
501
|
+
const transformDecorator = this.generateTransformDecorator(field);
|
|
502
|
+
if (transformDecorator) {
|
|
503
|
+
decorators.push(transformDecorator);
|
|
504
|
+
transformersUsed.add("Transform");
|
|
505
|
+
}
|
|
424
506
|
const fieldValidators = this.getValidatorsForType(field, isUserModule);
|
|
425
507
|
decorators.push(...fieldValidators);
|
|
426
508
|
fieldValidators.forEach((decorator) => {
|
|
@@ -435,7 +517,7 @@ ${fields.join("\n\n")}
|
|
|
435
517
|
type,
|
|
436
518
|
};
|
|
437
519
|
}
|
|
438
|
-
generateClassValidatorFieldForUpdate(field, isUserModule, validatorsUsed) {
|
|
520
|
+
generateClassValidatorFieldForUpdate(field, isUserModule, validatorsUsed, transformersUsed) {
|
|
439
521
|
let decorators = [];
|
|
440
522
|
let type = this.mapPrismaTypeToTS(field.type);
|
|
441
523
|
decorators.push("@IsOptional()");
|
|
@@ -458,6 +540,11 @@ ${fields.join("\n\n")}
|
|
|
458
540
|
type = field.isArray ? `${field.type}[]` : field.type;
|
|
459
541
|
}
|
|
460
542
|
else {
|
|
543
|
+
const transformDecorator = this.generateTransformDecorator(field);
|
|
544
|
+
if (transformDecorator) {
|
|
545
|
+
decorators.push(transformDecorator);
|
|
546
|
+
transformersUsed.add("Transform");
|
|
547
|
+
}
|
|
461
548
|
const fieldValidators = this.getValidatorsForType(field, isUserModule);
|
|
462
549
|
decorators.push(...fieldValidators);
|
|
463
550
|
fieldValidators.forEach((decorator) => {
|
|
@@ -534,9 +621,218 @@ ${fields.join("\n\n")}
|
|
|
534
621
|
case "BigInt":
|
|
535
622
|
return "bigint";
|
|
536
623
|
default:
|
|
624
|
+
if (prismaSchemaParser.compositeTypes.some((t) => t.name === prismaType))
|
|
625
|
+
return prismaType;
|
|
537
626
|
return prismaSchemaParser.isEnum(prismaType) ? prismaType : "any";
|
|
538
627
|
}
|
|
539
628
|
}
|
|
629
|
+
generateLoginDto(_) {
|
|
630
|
+
const ext = getUserFileExtension();
|
|
631
|
+
const isTypeScript = ext === "ts";
|
|
632
|
+
const allowedUsernames = getArkosConfig()?.authentication?.login
|
|
633
|
+
?.allowedUsernames || ["username"];
|
|
634
|
+
const usernameFields = allowedUsernames.map((field) => {
|
|
635
|
+
const displayName = field.includes(".") ? field.split(".").pop() : field;
|
|
636
|
+
const typeModifier = isTypeScript ? "?" : "";
|
|
637
|
+
const emailDecorator = displayName === "email" ? "\n @IsEmail()" : "\n @IsString()";
|
|
638
|
+
return ` @IsOptional()${emailDecorator}\n ${displayName}${typeModifier}: string;`;
|
|
639
|
+
});
|
|
640
|
+
const validatorsUsed = new Set([
|
|
641
|
+
"IsOptional",
|
|
642
|
+
"IsNotEmpty",
|
|
643
|
+
"IsString",
|
|
644
|
+
"MinLength",
|
|
645
|
+
"Matches",
|
|
646
|
+
]);
|
|
647
|
+
const hasEmail = allowedUsernames.some((f) => (f.includes(".") ? f.split(".").pop() : f) === "email");
|
|
648
|
+
if (hasEmail)
|
|
649
|
+
validatorsUsed.add("IsEmail");
|
|
650
|
+
const typeModifier = isTypeScript ? "!" : "";
|
|
651
|
+
return `import { ${Array.from(validatorsUsed).join(", ")} } from "class-validator";
|
|
652
|
+
|
|
653
|
+
export default class LoginDto {
|
|
654
|
+
${usernameFields.join("\n\n")}
|
|
655
|
+
|
|
656
|
+
@IsNotEmpty()
|
|
657
|
+
@IsString()
|
|
658
|
+
@MinLength(8)
|
|
659
|
+
@Matches(/[a-z]/, { message: "Must contain lowercase" })
|
|
660
|
+
@Matches(/[A-Z]/, { message: "Must contain uppercase" })
|
|
661
|
+
@Matches(/[0-9]/, { message: "Must contain number" })
|
|
662
|
+
password${typeModifier}: string;
|
|
663
|
+
}
|
|
664
|
+
`;
|
|
665
|
+
}
|
|
666
|
+
generateSignupDto(_) {
|
|
667
|
+
const ext = getUserFileExtension();
|
|
668
|
+
const isTypeScript = ext === "ts";
|
|
669
|
+
const userModel = prismaSchemaParser.models.find((m) => m.name.toLowerCase() === "user");
|
|
670
|
+
if (!userModel)
|
|
671
|
+
throw new Error("User model not found in Prisma schema");
|
|
672
|
+
const restrictedFields = [
|
|
673
|
+
"id",
|
|
674
|
+
"createdAt",
|
|
675
|
+
"updatedAt",
|
|
676
|
+
"deletedAt",
|
|
677
|
+
"roles",
|
|
678
|
+
"role",
|
|
679
|
+
"isActive",
|
|
680
|
+
"isStaff",
|
|
681
|
+
"isSuperUser",
|
|
682
|
+
"passwordChangedAt",
|
|
683
|
+
"deletedSelfAccountAt",
|
|
684
|
+
"lastLoginAt",
|
|
685
|
+
];
|
|
686
|
+
const enumsUsed = new Set();
|
|
687
|
+
const validatorsUsed = new Set();
|
|
688
|
+
const transformersUsed = new Set();
|
|
689
|
+
const nestedDtoClasses = [];
|
|
690
|
+
const dtoFields = [];
|
|
691
|
+
for (const field of userModel.fields) {
|
|
692
|
+
const isForeignKey = userModel.fields.some((f) => f.foreignKeyField === field.name);
|
|
693
|
+
if (field.isId || restrictedFields.includes(field.name) || isForeignKey)
|
|
694
|
+
continue;
|
|
695
|
+
if (field.isRelation) {
|
|
696
|
+
if (field.isArray)
|
|
697
|
+
continue;
|
|
698
|
+
const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
|
|
699
|
+
if (referencedModel) {
|
|
700
|
+
const isOptional = field.isOptional || field.defaultValue !== undefined;
|
|
701
|
+
if (isOptional)
|
|
702
|
+
validatorsUsed.add("IsOptional");
|
|
703
|
+
validatorsUsed.add("ValidateNested");
|
|
704
|
+
transformersUsed.add("Type");
|
|
705
|
+
const relationDtoName = `${referencedModel.name}ForSignupDto`;
|
|
706
|
+
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed);
|
|
707
|
+
if (!dtoFields.find((d) => d.includes(relationDtoName)))
|
|
708
|
+
nestedDtoClasses.push(nestedDtoClass);
|
|
709
|
+
const typeModifier = isTypeScript ? (isOptional ? "?" : "!") : "";
|
|
710
|
+
dtoFields.push(` ${isOptional ? "@IsOptional()\n " : ""}@ValidateNested()\n @Type(() => ${relationDtoName})\n ${field.name}${typeModifier}: ${relationDtoName};`);
|
|
711
|
+
}
|
|
712
|
+
continue;
|
|
713
|
+
}
|
|
714
|
+
if (prismaSchemaParser.isEnum(field.type))
|
|
715
|
+
enumsUsed.add(field.type);
|
|
716
|
+
if (field.name === "password") {
|
|
717
|
+
validatorsUsed.add("IsNotEmpty");
|
|
718
|
+
validatorsUsed.add("IsString");
|
|
719
|
+
validatorsUsed.add("MinLength");
|
|
720
|
+
validatorsUsed.add("Matches");
|
|
721
|
+
const typeModifier = isTypeScript ? "!" : "";
|
|
722
|
+
dtoFields.push(` @IsNotEmpty()\n @IsString()\n @MinLength(8)\n @Matches(/[a-z]/, { message: "Must contain lowercase" })\n @Matches(/[A-Z]/, { message: "Must contain uppercase" })\n @Matches(/[0-9]/, { message: "Must contain number" })\n ${field.name}${typeModifier}: string;`);
|
|
723
|
+
continue;
|
|
724
|
+
}
|
|
725
|
+
const { decorators, type } = this.generateClassValidatorField(field, true, validatorsUsed, transformersUsed);
|
|
726
|
+
const isOptional = field.isOptional || field.defaultValue !== undefined;
|
|
727
|
+
const typeModifier = isTypeScript ? (isOptional ? "?" : "!") : "";
|
|
728
|
+
dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);
|
|
729
|
+
}
|
|
730
|
+
const enumImports = enumsUsed.size > 0
|
|
731
|
+
? `import { ${Array.from(enumsUsed).join(", ")} } from "@prisma/client";\n`
|
|
732
|
+
: "";
|
|
733
|
+
const validatorImports = validatorsUsed.size > 0
|
|
734
|
+
? `import { ${Array.from(validatorsUsed).join(", ")} } from "class-validator";\n`
|
|
735
|
+
: "";
|
|
736
|
+
const transformerImports = transformersUsed.size > 0
|
|
737
|
+
? `import { ${Array.from(transformersUsed).join(", ")} } from "class-transformer";\n`
|
|
738
|
+
: "";
|
|
739
|
+
const nestedDtoSection = nestedDtoClasses.length > 0 ? `\n${nestedDtoClasses.join("\n\n")}\n` : "";
|
|
740
|
+
return `${validatorImports}${transformerImports}${enumImports}${nestedDtoSection}
|
|
741
|
+
export default class SignupDto {
|
|
742
|
+
${dtoFields.join("\n\n")}
|
|
743
|
+
}
|
|
744
|
+
`;
|
|
745
|
+
}
|
|
746
|
+
generateUpdateMeDto(_) {
|
|
747
|
+
const ext = getUserFileExtension();
|
|
748
|
+
const isTypeScript = ext === "ts";
|
|
749
|
+
const userModel = prismaSchemaParser.models.find((m) => m.name.toLowerCase() === "user");
|
|
750
|
+
if (!userModel)
|
|
751
|
+
throw new Error("User model not found in Prisma schema");
|
|
752
|
+
const restrictedFields = [
|
|
753
|
+
"id",
|
|
754
|
+
"createdAt",
|
|
755
|
+
"updatedAt",
|
|
756
|
+
"deletedAt",
|
|
757
|
+
"roles",
|
|
758
|
+
"role",
|
|
759
|
+
"isActive",
|
|
760
|
+
"isStaff",
|
|
761
|
+
"isSuperUser",
|
|
762
|
+
"passwordChangedAt",
|
|
763
|
+
"deletedSelfAccountAt",
|
|
764
|
+
"lastLoginAt",
|
|
765
|
+
"password",
|
|
766
|
+
];
|
|
767
|
+
const enumsUsed = new Set();
|
|
768
|
+
const validatorsUsed = new Set();
|
|
769
|
+
const transformersUsed = new Set();
|
|
770
|
+
const nestedDtoClasses = [];
|
|
771
|
+
const dtoFields = [];
|
|
772
|
+
for (const field of userModel.fields) {
|
|
773
|
+
const isForeignKey = userModel.fields.some((f) => f.foreignKeyField === field.name);
|
|
774
|
+
if (field.isId || restrictedFields.includes(field.name) || isForeignKey)
|
|
775
|
+
continue;
|
|
776
|
+
if (field.isRelation) {
|
|
777
|
+
if (field.isArray)
|
|
778
|
+
continue;
|
|
779
|
+
const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
|
|
780
|
+
if (referencedModel) {
|
|
781
|
+
validatorsUsed.add("IsOptional");
|
|
782
|
+
validatorsUsed.add("ValidateNested");
|
|
783
|
+
transformersUsed.add("Type");
|
|
784
|
+
const relationDtoName = `${referencedModel.name}ForUpdateMeDto`;
|
|
785
|
+
const nestedDtoClass = this.generateNestedDtoClass(field, referencedModel, relationDtoName, validatorsUsed, enumsUsed, isTypeScript, transformersUsed);
|
|
786
|
+
if (!dtoFields.find((d) => d.includes(relationDtoName)))
|
|
787
|
+
nestedDtoClasses.push(nestedDtoClass);
|
|
788
|
+
const typeModifier = isTypeScript ? "?" : "";
|
|
789
|
+
dtoFields.push(` @IsOptional()\n @ValidateNested()\n @Type(() => ${relationDtoName})\n ${field.name}${typeModifier}: ${relationDtoName};`);
|
|
790
|
+
}
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
if (prismaSchemaParser.isEnum(field.type))
|
|
794
|
+
enumsUsed.add(field.type);
|
|
795
|
+
const { decorators, type } = this.generateClassValidatorFieldForUpdate(field, true, validatorsUsed, transformersUsed);
|
|
796
|
+
const typeModifier = isTypeScript ? "?" : "";
|
|
797
|
+
dtoFields.push(`${decorators} ${field.name}${typeModifier}: ${type};`);
|
|
798
|
+
}
|
|
799
|
+
const enumImports = enumsUsed.size > 0
|
|
800
|
+
? `import { ${Array.from(enumsUsed).join(", ")} } from "@prisma/client";\n`
|
|
801
|
+
: "";
|
|
802
|
+
const validatorImports = validatorsUsed.size > 0
|
|
803
|
+
? `import { ${Array.from(validatorsUsed).join(", ")} } from "class-validator";\n`
|
|
804
|
+
: "";
|
|
805
|
+
const transformerImports = transformersUsed.size > 0
|
|
806
|
+
? `import { ${Array.from(transformersUsed).join(", ")} } from "class-transformer";\n`
|
|
807
|
+
: "";
|
|
808
|
+
const nestedDtoSection = nestedDtoClasses.length > 0 ? `\n${nestedDtoClasses.join("\n\n")}\n` : "";
|
|
809
|
+
return `${validatorImports}${transformerImports}${enumImports}${nestedDtoSection}
|
|
810
|
+
export default class UpdateMeDto {
|
|
811
|
+
${dtoFields.join("\n\n")}
|
|
812
|
+
}
|
|
813
|
+
`;
|
|
814
|
+
}
|
|
815
|
+
generateUpdatePasswordDto(_) {
|
|
816
|
+
const ext = getUserFileExtension();
|
|
817
|
+
const isTypeScript = ext === "ts";
|
|
818
|
+
const typeModifier = isTypeScript ? "!" : "";
|
|
819
|
+
return `import { IsNotEmpty, IsString, MinLength, Matches } from "class-validator";
|
|
820
|
+
|
|
821
|
+
export default class UpdatePasswordDto {
|
|
822
|
+
@IsNotEmpty()
|
|
823
|
+
@IsString()
|
|
824
|
+
currentPassword${typeModifier}: string;
|
|
825
|
+
|
|
826
|
+
@IsNotEmpty()
|
|
827
|
+
@IsString()
|
|
828
|
+
@MinLength(8)
|
|
829
|
+
@Matches(/[a-z]/, { message: "Must contain lowercase" })
|
|
830
|
+
@Matches(/[A-Z]/, { message: "Must contain uppercase" })
|
|
831
|
+
@Matches(/[0-9]/, { message: "Must contain number" })
|
|
832
|
+
newPassword${typeModifier}: string;
|
|
833
|
+
}
|
|
834
|
+
`;
|
|
835
|
+
}
|
|
540
836
|
}
|
|
541
837
|
const classValidatorDtoGenerator = new ClassValidatorDtoGenerator();
|
|
542
838
|
export default classValidatorDtoGenerator;
|