arkos 1.4.0-canary.9 → 1.4.0-canary.90
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/cli.js +3 -5
- package/dist/cjs/app.js +104 -72
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/index.js.map +1 -1
- package/dist/cjs/exports/services/index.js +6 -1
- package/dist/cjs/exports/services/index.js.map +1 -1
- package/dist/cjs/modules/auth/auth.controller.js +9 -25
- package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
- package/dist/cjs/modules/auth/auth.router.js +23 -24
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +35 -11
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +16 -10
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/cjs/modules/base/base.controller.js +3 -4
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +34 -8
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.router.js +4 -3
- package/dist/cjs/modules/base/base.router.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +68 -66
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +18 -41
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +22 -6
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/cjs/modules/debugger/debugger.service.js +11 -4
- package/dist/cjs/modules/debugger/debugger.service.js.map +1 -1
- package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +1 -1
- package/dist/cjs/modules/debugger/utils/loaded-components-logger.js.map +1 -1
- package/dist/cjs/modules/email/email.service.js +7 -5
- package/dist/cjs/modules/email/email.service.js.map +1 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +22 -15
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +4 -3
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +5 -6
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +17 -6
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +38 -48
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +134 -0
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +10 -5
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +14 -6
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +53 -0
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +419 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -6
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +204 -0
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/cjs/server.js +33 -36
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/auth.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/new-arkos-config.js +3 -0
- package/dist/cjs/types/new-arkos-config.js.map +1 -0
- package/dist/cjs/types/router-config.js.map +1 -1
- package/dist/cjs/utils/arkos-router/index.js +93 -38
- package/dist/cjs/utils/arkos-router/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +9 -8
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +3 -0
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +1 -0
- package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +3 -0
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +1 -0
- package/dist/cjs/utils/arkos-router/types/upload-config.js +3 -0
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +35 -6
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +237 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
- package/dist/cjs/utils/cli/build.js +9 -13
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +13 -8
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/export-auth-action.js +78 -0
- package/dist/cjs/utils/cli/export-auth-action.js.map +1 -0
- package/dist/cjs/utils/cli/generate.js +28 -12
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +32 -18
- package/dist/cjs/utils/cli/index.js.map +1 -1
- package/dist/cjs/utils/cli/prisma-generate.js +37 -7
- package/dist/cjs/utils/cli/prisma-generate.js.map +1 -1
- package/dist/cjs/utils/cli/start.js +12 -50
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +58 -0
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
- package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +5 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +8 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +14 -5
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -1
- package/dist/cjs/utils/define-config.js +2 -0
- package/dist/cjs/utils/define-config.js.map +1 -0
- package/dist/cjs/utils/dotenv.helpers.js +2 -1
- package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
- package/dist/cjs/utils/dynamic-loader.js +7 -7
- package/dist/cjs/utils/dynamic-loader.js.map +1 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +28 -4
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +45 -0
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -0
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +114 -46
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -4
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +24 -0
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +57 -4
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +20 -31
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -4
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/cjs/utils/sheu.js.map +1 -1
- package/dist/cjs/utils/validate-schema.js +1 -1
- package/dist/cjs/utils/validate-schema.js.map +1 -1
- package/dist/esm/app.js +104 -72
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -1
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +10 -26
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +25 -26
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +35 -11
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +12 -9
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +3 -4
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +34 -8
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +4 -3
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +68 -66
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +20 -42
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +22 -6
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/debugger/debugger.service.js +11 -4
- package/dist/esm/modules/debugger/debugger.service.js.map +1 -1
- package/dist/esm/modules/debugger/utils/loaded-components-logger.js +1 -1
- package/dist/esm/modules/debugger/utils/loaded-components-logger.js.map +1 -1
- package/dist/esm/modules/email/email.service.js +7 -5
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +22 -12
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +4 -3
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.controller.js +5 -6
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +17 -6
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +37 -47
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js +131 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +9 -5
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/esm/modules/swagger/swagger.router.js +14 -6
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js +48 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +413 -0
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +3 -5
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +199 -0
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/esm/server.js +31 -34
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config.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 +2 -0
- package/dist/esm/types/new-arkos-config.js.map +1 -0
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +93 -38
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-validator.js +9 -8
- package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/body-parser-config.js +2 -0
- package/dist/esm/utils/arkos-router/types/body-parser-config.js.map +1 -0
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js +2 -0
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -0
- package/dist/esm/utils/arkos-router/types/upload-config.js +2 -0
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +34 -5
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +232 -0
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
- package/dist/esm/utils/cli/build.js +9 -13
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +13 -8
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +72 -0
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -0
- package/dist/esm/utils/cli/generate.js +28 -12
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +32 -18
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +37 -7
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +12 -50
- 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 +53 -0
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
- package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +5 -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 +8 -32
- 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/create-schema-template.js +3 -5
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js +11 -5
- package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
- package/dist/esm/utils/define-config.js +2 -0
- package/dist/esm/utils/define-config.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +2 -1
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +8 -8
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +28 -4
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +38 -0
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js +113 -46
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +1 -4
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +24 -0
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +55 -4
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +20 -31
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -4
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/sheu.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +1 -1
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +2 -2
- package/dist/types/exports/index.d.ts +3 -2
- package/dist/types/exports/services/index.d.ts +2 -1
- package/dist/types/modules/auth/auth.controller.d.ts +2 -2
- package/dist/types/modules/auth/auth.router.d.ts +2 -3
- package/dist/types/modules/auth/auth.service.d.ts +6 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
- package/dist/types/modules/base/base.middlewares.d.ts +1 -1
- package/dist/types/modules/base/base.router.d.ts +2 -2
- package/dist/types/modules/base/base.service.d.ts +5 -36
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -4
- package/dist/types/modules/debugger/debugger.service.d.ts +1 -1
- package/dist/types/modules/email/email.service.d.ts +1 -1
- package/dist/types/modules/file-upload/file-upload.router.d.ts +2 -2
- package/dist/types/modules/file-upload/file-upload.service.d.ts +24 -2
- package/dist/types/modules/file-upload/utils/helpers/file-extensions.d.ts +3 -0
- package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/class-validator-to-json-schema.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -2
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +2 -45
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +17 -0
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +3 -3
- package/dist/types/server.d.ts +4 -6
- package/dist/types/types/arkos-config.d.ts +4 -181
- package/dist/types/types/auth.d.ts +1 -1
- package/dist/types/types/index.d.ts +5 -4
- package/dist/types/types/new-arkos-config.d.ts +167 -0
- package/dist/types/types/router-config.d.ts +16 -23
- package/dist/types/utils/arkos-router/types/body-parser-config.d.ts +18 -0
- package/dist/types/utils/arkos-router/types/index.d.ts +25 -10
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +35 -0
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +21 -0
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +13 -0
- package/dist/types/utils/cli/export-auth-action.d.ts +4 -0
- package/dist/types/utils/cli/generate.d.ts +2 -1
- package/dist/types/utils/cli/utils/runtime-cli-commander.d.ts +11 -0
- package/dist/types/utils/cli/utils/watermark-stamper.d.ts +3 -3
- package/dist/types/utils/define-config.d.ts +0 -0
- package/dist/types/utils/features/port-and-host-allocator.d.ts +4 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/routers.helpers.d.ts +10 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +1 -1
- package/dist/types/utils/validate-schema.d.ts +1 -1
- package/package.json +3 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
- /package/dist/types/utils/cli/utils/template-generator/templates/{controller-template.d.ts → generate-controller-template.d.ts} +0 -0
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { validationMetadatasToSchemas } from "class-validator-jsonschema";
|
|
2
|
-
import { importModule } from "../../../../../utils/helpers/global.helpers.js";
|
|
3
2
|
import { getMetadataStorage } from "class-validator";
|
|
4
3
|
import { getModuleComponents } from "../../../../../utils/dynamic-loader.js";
|
|
5
4
|
import { getCorrectJsonSchemaName } from "../swagger.router.helpers.js";
|
|
6
5
|
import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
|
|
7
6
|
import { getUserFileExtension } from "../../../../../utils/helpers/fs.helpers.js";
|
|
8
|
-
|
|
7
|
+
import { defaultMetadataStorage } from "class-transformer/cjs/storage.js";
|
|
8
|
+
export function generateClassValidatorJsonSchemas() {
|
|
9
9
|
const requiredAppModules = [
|
|
10
10
|
...prismaSchemaParser.getModelsAsArrayOfStrings(),
|
|
11
11
|
"auth",
|
|
12
12
|
];
|
|
13
13
|
const schemas = {};
|
|
14
|
-
const { defaultMetadataStorage } = await importModule("class-transformer/cjs/storage.js");
|
|
15
14
|
const jsonSchema = validationMetadatasToSchemas({
|
|
16
15
|
classValidatorMetadataStorage: getMetadataStorage(),
|
|
17
16
|
classTransformerMetadataStorage: defaultMetadataStorage,
|
|
@@ -25,9 +24,8 @@ export async function generateClassValidatorJsonSchemas() {
|
|
|
25
24
|
if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {
|
|
26
25
|
try {
|
|
27
26
|
const schemaName = getCorrectJsonSchemaName(dtoType, modelName, "Dto");
|
|
28
|
-
if (schemas[schemaName])
|
|
27
|
+
if (schemas[schemaName])
|
|
29
28
|
throw Error(`Found more then 1 ${dtoClass.name} classes among your .dto.${getUserFileExtension()} files, there is no way to correctly generate json-schemas for swagger documentation.`);
|
|
30
|
-
}
|
|
31
29
|
schemas[schemaName] = jsonSchema[dtoClass.name] || {};
|
|
32
30
|
}
|
|
33
31
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-class-validator-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generate-class-validator-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,MAAM,UAAU,iCAAiC;IAC/C,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,4BAA4B,CAAC;QAC9C,6BAA6B,EAAE,kBAAkB,EAAE;QACnD,+BAA+B,EAAE,sBAAsB;QACvD,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACpE,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnD,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACjE,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,wBAAwB,CACzC,OAAO,EACP,SAAS,EACT,KAAK,CACN,CAAC;wBAEF,IAAI,OAAO,CAAC,UAAU,CAAC;4BACrB,MAAM,KAAK,CACT,qBAAqB,QAAQ,CAAC,IAAI,4BAA4B,oBAAoB,EAAE,uFAAuF,CAC5K,CAAC;wBAEJ,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxD,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,IAAI,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CACxE,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE;QACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { validationMetadatasToSchemas } from \"class-validator-jsonschema\";\nimport { getMetadataStorage } from \"class-validator\";\nimport { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\nimport { getUserFileExtension } from \"../../../../../utils/helpers/fs.helpers\";\nimport { defaultMetadataStorage } from \"class-transformer/cjs/storage.js\";\n\nexport function generateClassValidatorJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n const jsonSchema = validationMetadatasToSchemas({\n classValidatorMetadataStorage: getMetadataStorage(),\n classTransformerMetadataStorage: defaultMetadataStorage,\n refPointerPrefix: \"#/components/schemas/\",\n });\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.dtos) {\n Object.entries(moduleComponents.dtos).forEach(([dtoType, dtoClass]) => {\n const ignoredDtoTypes = [\"createone\", \"updateone\"];\n if (dtoClass && !ignoredDtoTypes.includes(dtoType.toLowerCase())) {\n try {\n const schemaName = getCorrectJsonSchemaName(\n dtoType,\n modelName,\n \"Dto\"\n );\n\n if (schemas[schemaName])\n throw Error(\n `Found more then 1 ${dtoClass.name} classes among your .dto.${getUserFileExtension()} files, there is no way to correctly generate json-schemas for swagger documentation.`\n );\n\n schemas[schemaName] = jsonSchema[dtoClass.name] || {};\n } catch (err: any) {\n throw new Error(\n `Failed to generate schema for ${dtoType} ${modelName}: ${err.message}`\n );\n }\n }\n });\n }\n });\n\n Object.entries(jsonSchema).forEach(([className, schema]) => {\n if (!schemas[className]) schemas[className] = schema;\n });\n return schemas;\n}\n"]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import prismaJsonSchemaGenerator from "../../../../../utils/prisma/prisma-json-schema-generator.js";
|
|
2
2
|
import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
|
|
3
|
-
export
|
|
3
|
+
export function generatePrismaJsonSchemas(arkosConfig) {
|
|
4
4
|
const requiredAppModules = [
|
|
5
5
|
...prismaSchemaParser.getModelsAsArrayOfStrings(),
|
|
6
6
|
"auth",
|
|
7
7
|
];
|
|
8
8
|
try {
|
|
9
|
-
const modelSchemasArray =
|
|
10
|
-
const modelSchemas =
|
|
9
|
+
const modelSchemasArray = requiredAppModules.map((modelName) => {
|
|
10
|
+
const modelSchemas = prismaJsonSchemaGenerator.generateModelSchemas({
|
|
11
11
|
modelName,
|
|
12
12
|
arkosConfig,
|
|
13
13
|
});
|
|
14
14
|
return modelSchemas;
|
|
15
|
-
})
|
|
15
|
+
});
|
|
16
16
|
const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {
|
|
17
17
|
return { ...acc, ...modelSchemas };
|
|
18
18
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-prisma-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,0DAA0D,CAAC;AACjG,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,
|
|
1
|
+
{"version":3,"file":"generate-prisma-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,0DAA0D,CAAC;AACjG,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,UAAU,yBAAyB,CAAC,WAAwB;IAChE,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC7D,MAAM,YAAY,GAAG,yBAAyB,CAAC,oBAAoB,CAAC;gBAClE,SAAS;gBACT,WAAW;aACZ,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QACrC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC","sourcesContent":["import { ArkosConfig } from \"../../../../../exports\";\nimport prismaJsonSchemaGenerator from \"../../../../../utils/prisma/prisma-json-schema-generator\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport function generatePrismaJsonSchemas(arkosConfig: ArkosConfig) {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n\n try {\n const modelSchemasArray = requiredAppModules.map((modelName) => {\n const modelSchemas = prismaJsonSchemaGenerator.generateModelSchemas({\n modelName,\n arkosConfig,\n });\n return modelSchemas;\n });\n\n const schemas = modelSchemasArray.reduce((acc, modelSchemas) => {\n return { ...acc, ...modelSchemas };\n }, {});\n\n return schemas;\n } catch (err) {\n console.error(err);\n throw err;\n }\n}\n"]}
|
package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js
CHANGED
|
@@ -2,7 +2,7 @@ import { getModuleComponents } from "../../../../../utils/dynamic-loader.js";
|
|
|
2
2
|
import zodToJsonSchema from "zod-to-json-schema";
|
|
3
3
|
import { getCorrectJsonSchemaName } from "../swagger.router.helpers.js";
|
|
4
4
|
import prismaSchemaParser from "../../../../../utils/prisma/prisma-schema-parser.js";
|
|
5
|
-
export default
|
|
5
|
+
export default function generateZodJsonSchemas() {
|
|
6
6
|
const requiredAppModules = [
|
|
7
7
|
...prismaSchemaParser.getModelsAsArrayOfStrings(),
|
|
8
8
|
"auth",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-zod-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"generate-zod-json-schemas.js","sourceRoot":"","sources":["../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,MAAM,CAAC,OAAO,UAAU,sBAAsB;IAC5C,MAAM,kBAAkB,GAAG;QACzB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE;QACjD,MAAM;KACP,CAAC;IACF,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,gBAAgB,EAAE,OAAO;YAC3B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAC9C,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;gBAC1B,IAAI,SAAS;oBACX,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;wBAC9C,MAAM,UAAU,GAAG,wBAAwB,CACzC,UAAU,EACV,SAAS,EACT,QAAQ,CACT,CAAC;wBACF,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CACV,iCAAiC,UAAU,IAAI,SAAS,GAAG,EAC3D,KAAK,CACN,CAAC;oBACJ,CAAC;YACL,CAAC,CACF,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { getModuleComponents } from \"../../../../../utils/dynamic-loader\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { getCorrectJsonSchemaName } from \"../swagger.router.helpers\";\nimport prismaSchemaParser from \"../../../../../utils/prisma/prisma-schema-parser\";\n\nexport default function generateZodJsonSchemas() {\n const requiredAppModules = [\n ...prismaSchemaParser.getModelsAsArrayOfStrings(),\n \"auth\",\n ];\n const schemas: Record<string, any> = {};\n\n requiredAppModules.forEach((modelName) => {\n const moduleComponents = getModuleComponents(modelName);\n\n if (moduleComponents?.schemas)\n Object.entries(moduleComponents.schemas).forEach(\n ([schemaType, zodSchema]) => {\n if (zodSchema)\n try {\n const jsonSchema = zodToJsonSchema(zodSchema);\n const schemaName = getCorrectJsonSchemaName(\n schemaType,\n modelName,\n \"Schema\"\n );\n schemas[schemaName] = jsonSchema;\n } catch (error) {\n console.warn(\n `Failed to generate schema for ${schemaType} ${modelName}:`,\n error\n );\n }\n }\n );\n });\n\n return schemas;\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import pluralize from "pluralize";
|
|
|
3
3
|
import { isEndpointDisabled } from "../../../../../base/utils/helpers/base.router.helpers.js";
|
|
4
4
|
import { kebabCase, pascalCase } from "../../../../../../exports/utils/index.js";
|
|
5
5
|
import { getModuleComponents } from "../../../../../../utils/dynamic-loader.js";
|
|
6
|
-
export
|
|
6
|
+
export function generatePrismaModelMainRoutesPaths(model, paths = {}, arkosConfig) {
|
|
7
7
|
const modelName = kebabCase(model);
|
|
8
8
|
const routeName = pluralize.plural(modelName);
|
|
9
9
|
const pascalModelName = pascalCase(model);
|
|
@@ -14,13 +14,13 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
14
14
|
?.config;
|
|
15
15
|
if (routerConfig?.disable === true)
|
|
16
16
|
return paths;
|
|
17
|
-
const getSchemaMode =
|
|
17
|
+
const getSchemaMode = (action) => {
|
|
18
18
|
const swaggerMode = arkosConfig.swagger?.mode;
|
|
19
19
|
const isStrict = arkosConfig.swagger?.strict;
|
|
20
20
|
if (isStrict)
|
|
21
21
|
return swaggerMode || "prisma";
|
|
22
22
|
const actionKey = action;
|
|
23
|
-
const localFileExists =
|
|
23
|
+
const localFileExists = localValidatorFileExists(actionKey, model, arkosConfig);
|
|
24
24
|
if (!localFileExists)
|
|
25
25
|
return "prisma";
|
|
26
26
|
return swaggerMode || "prisma";
|
|
@@ -28,7 +28,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
28
28
|
if (!isEndpointDisabled(routerConfig, "createOne")) {
|
|
29
29
|
if (!paths[`/api/${routeName}`])
|
|
30
30
|
paths[`/api/${routeName}`] = {};
|
|
31
|
-
const createMode =
|
|
31
|
+
const createMode = getSchemaMode("create");
|
|
32
32
|
paths[`/api/${routeName}`].post = {
|
|
33
33
|
tags: [humanReadableNamePlural],
|
|
34
34
|
summary: `Create a new ${humanReadableName}`,
|
|
@@ -72,7 +72,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
72
72
|
if (!isEndpointDisabled(routerConfig, "findMany")) {
|
|
73
73
|
if (!paths[`/api/${routeName}`])
|
|
74
74
|
paths[`/api/${routeName}`] = {};
|
|
75
|
-
const findManyMode =
|
|
75
|
+
const findManyMode = getSchemaMode("findMany");
|
|
76
76
|
paths[`/api/${routeName}`].get = {
|
|
77
77
|
tags: [humanReadableNamePlural],
|
|
78
78
|
summary: `Get ${humanReadableNamePlural}`,
|
|
@@ -161,7 +161,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
161
161
|
};
|
|
162
162
|
}
|
|
163
163
|
if (!isEndpointDisabled(routerConfig, "createMany")) {
|
|
164
|
-
const createManyMode =
|
|
164
|
+
const createManyMode = getSchemaMode("createMany");
|
|
165
165
|
paths[`/api/${routeName}/many`] = {
|
|
166
166
|
post: {
|
|
167
167
|
tags: [humanReadableNamePlural],
|
|
@@ -216,7 +216,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
216
216
|
if (!isEndpointDisabled(routerConfig, "updateMany")) {
|
|
217
217
|
if (!paths[`/api/${routeName}/many`])
|
|
218
218
|
paths[`/api/${routeName}/many`] = {};
|
|
219
|
-
const updateManyMode =
|
|
219
|
+
const updateManyMode = getSchemaMode("updateMany");
|
|
220
220
|
paths[`/api/${routeName}/many`].patch = {
|
|
221
221
|
tags: [humanReadableNamePlural],
|
|
222
222
|
summary: `Update multiple ${humanReadableNamePlural}`,
|
|
@@ -324,7 +324,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
326
|
if (!isEndpointDisabled(routerConfig, "findOne")) {
|
|
327
|
-
const findOneMode =
|
|
327
|
+
const findOneMode = getSchemaMode("findOne");
|
|
328
328
|
paths[`/api/${routeName}/{id}`] = {
|
|
329
329
|
get: {
|
|
330
330
|
tags: [humanReadableNamePlural],
|
|
@@ -370,7 +370,7 @@ export async function generatePrismaModelMainRoutesPaths(model, paths = {}, arko
|
|
|
370
370
|
if (!isEndpointDisabled(routerConfig, "updateOne")) {
|
|
371
371
|
if (!paths[`/api/${routeName}/{id}`])
|
|
372
372
|
paths[`/api/${routeName}/{id}`] = {};
|
|
373
|
-
const updateMode =
|
|
373
|
+
const updateMode = getSchemaMode("update");
|
|
374
374
|
paths[`/api/${routeName}/{id}`].patch = {
|
|
375
375
|
tags: [humanReadableNamePlural],
|
|
376
376
|
summary: `Update ${humanReadableName} by ID`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-prisma-model-main-routes-paths.js","sourceRoot":"","sources":["../../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,KAAa,EACb,QAA+B,EAAE,EACjC,WAAwB;IAExB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,uBAAuB,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEpE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,gBAAgB,EAAE,MAAM;QAC3C,EAAE,MAAgC,CAAC;IAErC,IAAI,YAAY,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjD,MAAM,aAAa,GAAG,KAAK,EACzB,MAAc,EACiC,EAAE;QACjD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;QAE7C,IAAI,QAAQ;YAAE,OAAO,WAAW,IAAI,QAAQ,CAAC;QAE7C,MAAM,SAAS,GAAG,MAAa,CAAC;QAEhC,MAAM,eAAe,GAAG,MAAM,wBAAwB,CACpD,SAAS,EACT,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,eAAe;YAAE,OAAO,QAAQ,CAAC;QAEtC,OAAO,WAAW,IAAI,QAAQ,CAAC;IACjC,CAAC,CAAC;IAGF,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAE,CAAC,IAAI,GAAG;YACjC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,gBAAgB,iBAAiB,EAAE;YAC5C,WAAW,EAAE,iBAAiB,iBAAiB,uBAAuB;YACtE,WAAW,EAAE,SAAS,eAAe,EAAE;YACvC,WAAW,EAAE;gBACX,WAAW,EAAE,GAAG,iBAAiB,iBAAiB;gBAClD,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE;4BACN,IAAI,EAAE,YAAY,CAAC,SAAS,eAAe,EAAE,EAAE,UAAU,CAAC;yBAC3D;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,iBAAiB,uBAAuB;oBACxD,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,YAAY,CAAC,GAAG,eAAe,EAAE,EAAE,UAAU,CAAC;6BACrD;yBACF;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QACrD,KAAK,CAAC,QAAQ,SAAS,EAAE,CAAE,CAAC,GAAG,GAAG;YAChC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,OAAO,uBAAuB,EAAE;YACzC,WAAW,EAAE,iCAAiC,uBAAuB,sCAAsC;YAC3G,WAAW,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YACvD,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,mDAAmD;oBAChE,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,6BAA6B;oBAC1C,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;qBACX;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,GAAG;qBACb;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,uDAAuD;oBACpE,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,WAAW,uBAAuB,yBAAyB;oBACxE,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,KAAK,EAAE;wCACL,IAAI,EAAE,SAAS;wCACf,WAAW,EACT,+CAA+C;qCAClD;oCACD,OAAO,EAAE;wCACP,IAAI,EAAE,SAAS;wCACf,WAAW,EAAE,4CAA4C;qCAC1D;oCACD,IAAI,EAAE;wCACJ,IAAI,EAAE,OAAO;wCACb,KAAK,EAAE;4CACL,IAAI,EAAE,YAAY,CAChB,WAAW,eAAe,EAAE,EAC5B,YAAY,CACb;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QACzD,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG;YAChC,IAAI,EAAE;gBACJ,IAAI,EAAE,CAAC,uBAAuB,CAAC;gBAC/B,OAAO,EAAE,mBAAmB,uBAAuB,EAAE;gBACrD,WAAW,EAAE,oBAAoB,uBAAuB,sCAAsC;gBAC9F,WAAW,EAAE,aAAa,eAAe,EAAE;gBAC3C,WAAW,EAAE;oBACX,WAAW,EAAE,YAAY,iBAAiB,iBAAiB;oBAC3D,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE;oCACL,IAAI,EAAE,YAAY,CAChB,aAAa,eAAe,EAAE,EAC9B,cAAc,CACf;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,GAAG,uBAAuB,uBAAuB;wBAC9D,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE;oCACN,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACV,KAAK,EAAE;4CACL,IAAI,EAAE,SAAS;4CACf,WAAW,EAAE,2BAA2B;yCACzC;qCACF;iCACF;6BACF;yBACF;qBACF;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,6BAA6B;qBAC3C;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,yBAAyB;qBACvC;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,0BAA0B;qBACxC;iBACF;gBACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;aAC/B;SACF,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3E,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QACzD,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAE,CAAC,KAAK,GAAG;YACvC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,mBAAmB,uBAAuB,EAAE;YACrD,WAAW,EAAE,oBAAoB,uBAAuB,mDAAmD;YAC3G,WAAW,EAAE,aAAa,eAAe,EAAE;YAC3C,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,2CAA2C;oBACxD,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,WAAW,iBAAiB,iBAAiB;gBAC1D,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE;4BACN,IAAI,EAAE,YAAY,CAChB,aAAa,eAAe,EAAE,EAC9B,cAAc,CACf;yBACF;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,uBAAuB,uBAAuB;oBAC9D,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,KAAK,EAAE;wCACL,IAAI,EAAE,SAAS;wCACf,WAAW,EAAE,2BAA2B;qCACzC;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3E,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAE,CAAC,MAAM,GAAG;YACxC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,mBAAmB,uBAAuB,EAAE;YACrD,WAAW,EAAE,oBAAoB,uBAAuB,mDAAmD;YAC3G,WAAW,EAAE,aAAa,eAAe,EAAE;YAC3C,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,SAAS;oBACf,EAAE,EAAE,OAAO;oBACX,WAAW,EAAE,2CAA2C;oBACxD,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,uBAAuB,uBAAuB;oBAC9D,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,KAAK,EAAE;wCACL,IAAI,EAAE,SAAS;wCACf,WAAW,EAAE,2BAA2B;qCACzC;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QACnD,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG;YAChC,GAAG,EAAE;gBACH,IAAI,EAAE,CAAC,uBAAuB,CAAC;gBAC/B,OAAO,EAAE,OAAO,iBAAiB,QAAQ;gBACzC,WAAW,EAAE,sBAAsB,iBAAiB,kCAAkC;gBACtF,WAAW,EAAE,OAAO,eAAe,MAAM;gBACzC,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,IAAI;wBACV,EAAE,EAAE,MAAM;wBACV,WAAW,EAAE,4BAA4B,iBAAiB,EAAE;wBAC5D,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;gBACD,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,GAAG,iBAAiB,yBAAyB;wBAC1D,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE;oCACN,IAAI,EAAE,YAAY,CAAC,UAAU,eAAe,EAAE,EAAE,WAAW,CAAC;iCAC7D;6BACF;yBACF;qBACF;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,yBAAyB;qBACvC;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,0BAA0B;qBACxC;oBACD,KAAK,EAAE;wBACL,WAAW,EAAE,GAAG,iBAAiB,YAAY;qBAC9C;iBACF;gBACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;aAC/B;SACF,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAE,CAAC,KAAK,GAAG;YACvC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,UAAU,iBAAiB,QAAQ;YAC5C,WAAW,EAAE,oBAAoB,iBAAiB,kCAAkC;YACpF,WAAW,EAAE,SAAS,eAAe,EAAE;YACvC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,IAAI;oBACV,EAAE,EAAE,MAAM;oBACV,WAAW,EAAE,4BAA4B,iBAAiB,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,WAAW,iBAAiB,iBAAiB;gBAC1D,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE;4BACN,IAAI,EAAE,YAAY,CAAC,SAAS,eAAe,EAAE,EAAE,UAAU,CAAC;yBAC3D;qBACF;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,iBAAiB,uBAAuB;oBACxD,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,MAAM,EAAE;gCACN,IAAI,EAAE,YAAY,CAAC,GAAG,eAAe,EAAE,EAAE,UAAU,CAAC;6BACrD;yBACF;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,iBAAiB,YAAY;iBAC9C;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;IAGD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC;YAAE,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3E,KAAK,CAAC,QAAQ,SAAS,OAAO,CAAE,CAAC,MAAM,GAAG;YACxC,IAAI,EAAE,CAAC,uBAAuB,CAAC;YAC/B,OAAO,EAAE,UAAU,iBAAiB,QAAQ;YAC5C,WAAW,EAAE,gCAAgC,iBAAiB,kCAAkC;YAChG,WAAW,EAAE,SAAS,eAAe,EAAE;YACvC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,IAAI;oBACV,EAAE,EAAE,MAAM;oBACV,WAAW,EAAE,4BAA4B,iBAAiB,EAAE;oBAC5D,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,iBAAiB,uBAAuB;iBACzD;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,yBAAyB;iBACvC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,0BAA0B;iBACxC;gBACD,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,iBAAiB,YAAY;iBAC9C;aACF;YACD,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport {\n getSchemaRef,\n kebabToHuman,\n localValidatorFileExists,\n} from \"../../swagger.router.helpers\";\nimport pluralize from \"pluralize\";\nimport { isEndpointDisabled } from \"../../../../../base/utils/helpers/base.router.helpers\";\nimport { ArkosConfig, RouterConfig } from \"../../../../../../exports\";\nimport { kebabCase, pascalCase } from \"../../../../../../exports/utils\";\nimport { getModuleComponents } from \"../../../../../../utils/dynamic-loader\";\n\nexport async function generatePrismaModelMainRoutesPaths(\n model: string,\n paths: OpenAPIV3.PathsObject = {},\n arkosConfig: ArkosConfig\n) {\n const modelName = kebabCase(model);\n const routeName = pluralize.plural(modelName);\n const pascalModelName = pascalCase(model);\n const humanReadableName = kebabToHuman(modelName);\n const humanReadableNamePlural = pluralize.plural(humanReadableName);\n\n const moduleComponents = getModuleComponents(model);\n const routerConfig = moduleComponents?.router\n ?.config as RouterConfig<\"prisma\">;\n\n if (routerConfig?.disable === true) return paths;\n\n const getSchemaMode = async (\n action: string\n ): Promise<\"prisma\" | \"zod\" | \"class-validator\"> => {\n const swaggerMode = arkosConfig.swagger?.mode;\n const isStrict = arkosConfig.swagger?.strict;\n\n if (isStrict) return swaggerMode || \"prisma\";\n\n const actionKey = action as any;\n\n const localFileExists = await localValidatorFileExists(\n actionKey,\n model,\n arkosConfig\n );\n\n if (!localFileExists) return \"prisma\";\n\n return swaggerMode || \"prisma\";\n };\n\n // Create One\n if (!isEndpointDisabled(routerConfig, \"createOne\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const createMode = await getSchemaMode(\"create\");\n paths[`/api/${routeName}`]!.post = {\n tags: [humanReadableNamePlural],\n summary: `Create a new ${humanReadableName}`,\n description: `Creates a new ${humanReadableName} record in the system`,\n operationId: `create${pascalModelName}`,\n requestBody: {\n description: `${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Create${pascalModelName}`, createMode),\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableName} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, createMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find Many\n if (!isEndpointDisabled(routerConfig, \"findMany\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const findManyMode = await getSchemaMode(\"findMany\");\n paths[`/api/${routeName}`]!.get = {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableNamePlural}`,\n description: `Retrieves a paginated list of ${humanReadableNamePlural} with optional filtering and sorting`,\n operationId: `find${pluralize.plural(pascalModelName)}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: {\n type: \"integer\",\n minimum: 1,\n },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: {\n type: \"integer\",\n minimum: 1,\n maximum: 100,\n },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `List of ${humanReadableNamePlural} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n total: {\n type: \"integer\",\n description:\n \"Total number of records matching the criteria\",\n },\n results: {\n type: \"integer\",\n description: \"Number of records returned in current page\",\n },\n data: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `FindMany${pascalModelName}`,\n findManyMode\n ),\n },\n },\n },\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Create Many\n if (!isEndpointDisabled(routerConfig, \"createMany\")) {\n const createManyMode = await getSchemaMode(\"createMany\");\n paths[`/api/${routeName}/many`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create multiple ${humanReadableNamePlural}`,\n description: `Creates multiple ${humanReadableNamePlural} records in a single batch operation`,\n operationId: `createMany${pascalModelName}`,\n requestBody: {\n description: `Array of ${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `CreateMany${pascalModelName}`,\n createManyMode\n ),\n },\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableNamePlural} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records created\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update Many\n if (!isEndpointDisabled(routerConfig, \"updateMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n const updateManyMode = await getSchemaMode(\"updateMany\");\n paths[`/api/${routeName}/many`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update multiple ${humanReadableNamePlural}`,\n description: `Updates multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `updateMany${pascalModelName}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(\n `UpdateMany${pascalModelName}`,\n updateManyMode\n ),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records updated\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data or missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete Many\n if (!isEndpointDisabled(routerConfig, \"deleteMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n paths[`/api/${routeName}/many`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete multiple ${humanReadableNamePlural}`,\n description: `Deletes multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `deleteMany${pascalModelName}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} deleted successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records deleted\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find One\n if (!isEndpointDisabled(routerConfig, \"findOne\")) {\n const findOneMode = await getSchemaMode(\"findOne\");\n paths[`/api/${routeName}/{id}`] = {\n get: {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableName} by ID`,\n description: `Retrieves a single ${humanReadableName} record by its unique identifier`,\n operationId: `find${pascalModelName}ById`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableName} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`FindOne${pascalModelName}`, findOneMode),\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update One\n if (!isEndpointDisabled(routerConfig, \"updateOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n const updateMode = await getSchemaMode(\"update\");\n paths[`/api/${routeName}/{id}`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update ${humanReadableName} by ID`,\n description: `Updates a single ${humanReadableName} record by its unique identifier`,\n operationId: `update${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Update${pascalModelName}`, updateMode),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableName} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, updateMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete One\n if (!isEndpointDisabled(routerConfig, \"deleteOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n paths[`/api/${routeName}/{id}`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete ${humanReadableName} by ID`,\n description: `Permanently deletes a single ${humanReadableName} record by its unique identifier`,\n operationId: `delete${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"204\": {\n description: `${humanReadableName} deleted successfully`,\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generate-prisma-model-main-routes-paths.js","sourceRoot":"","sources":["../../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport {\n getSchemaRef,\n kebabToHuman,\n localValidatorFileExists,\n} from \"../../swagger.router.helpers\";\nimport pluralize from \"pluralize\";\nimport { isEndpointDisabled } from \"../../../../../base/utils/helpers/base.router.helpers\";\nimport { ArkosConfig, RouterConfig } from \"../../../../../../exports\";\nimport { kebabCase, pascalCase } from \"../../../../../../exports/utils\";\nimport { getModuleComponents } from \"../../../../../../utils/dynamic-loader\";\n\nexport function generatePrismaModelMainRoutesPaths(\n model: string,\n paths: OpenAPIV3.PathsObject = {},\n arkosConfig: ArkosConfig\n) {\n const modelName = kebabCase(model);\n const routeName = pluralize.plural(modelName);\n const pascalModelName = pascalCase(model);\n const humanReadableName = kebabToHuman(modelName);\n const humanReadableNamePlural = pluralize.plural(humanReadableName);\n\n const moduleComponents = getModuleComponents(model);\n const routerConfig = moduleComponents?.router\n ?.config as RouterConfig<\"prisma\">;\n\n if (routerConfig?.disable === true) return paths;\n\n const getSchemaMode = (\n action: string\n ): \"prisma\" | \"zod\" | \"class-validator\" => {\n const swaggerMode = arkosConfig.swagger?.mode;\n const isStrict = arkosConfig.swagger?.strict;\n\n if (isStrict) return swaggerMode || \"prisma\";\n\n const actionKey = action as any;\n\n const localFileExists = localValidatorFileExists(\n actionKey,\n model,\n arkosConfig\n );\n\n if (!localFileExists) return \"prisma\";\n\n return swaggerMode || \"prisma\";\n };\n\n // Create One\n if (!isEndpointDisabled(routerConfig, \"createOne\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const createMode = getSchemaMode(\"create\");\n paths[`/api/${routeName}`]!.post = {\n tags: [humanReadableNamePlural],\n summary: `Create a new ${humanReadableName}`,\n description: `Creates a new ${humanReadableName} record in the system`,\n operationId: `create${pascalModelName}`,\n requestBody: {\n description: `${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Create${pascalModelName}`, createMode),\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableName} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, createMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find Many\n if (!isEndpointDisabled(routerConfig, \"findMany\")) {\n if (!paths[`/api/${routeName}`]) paths[`/api/${routeName}`] = {};\n const findManyMode = getSchemaMode(\"findMany\");\n paths[`/api/${routeName}`]!.get = {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableNamePlural}`,\n description: `Retrieves a paginated list of ${humanReadableNamePlural} with optional filtering and sorting`,\n operationId: `find${pluralize.plural(pascalModelName)}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: {\n type: \"integer\",\n minimum: 1,\n },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: {\n type: \"integer\",\n minimum: 1,\n maximum: 100,\n },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `List of ${humanReadableNamePlural} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n total: {\n type: \"integer\",\n description:\n \"Total number of records matching the criteria\",\n },\n results: {\n type: \"integer\",\n description: \"Number of records returned in current page\",\n },\n data: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `FindMany${pascalModelName}`,\n findManyMode\n ),\n },\n },\n },\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Create Many\n if (!isEndpointDisabled(routerConfig, \"createMany\")) {\n const createManyMode = getSchemaMode(\"createMany\");\n paths[`/api/${routeName}/many`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create multiple ${humanReadableNamePlural}`,\n description: `Creates multiple ${humanReadableNamePlural} records in a single batch operation`,\n operationId: `createMany${pascalModelName}`,\n requestBody: {\n description: `Array of ${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `CreateMany${pascalModelName}`,\n createManyMode\n ),\n },\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableNamePlural} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records created\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update Many\n if (!isEndpointDisabled(routerConfig, \"updateMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n const updateManyMode = getSchemaMode(\"updateMany\");\n paths[`/api/${routeName}/many`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update multiple ${humanReadableNamePlural}`,\n description: `Updates multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `updateMany${pascalModelName}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(\n `UpdateMany${pascalModelName}`,\n updateManyMode\n ),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records updated\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data or missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete Many\n if (!isEndpointDisabled(routerConfig, \"deleteMany\")) {\n if (!paths[`/api/${routeName}/many`]) paths[`/api/${routeName}/many`] = {};\n paths[`/api/${routeName}/many`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete multiple ${humanReadableNamePlural}`,\n description: `Deletes multiple ${humanReadableNamePlural} records that match the specified filter criteria`,\n operationId: `deleteMany${pascalModelName}`,\n parameters: [\n {\n name: \"filters\",\n in: \"query\",\n description: \"Filter criteria in JSON format (required)\",\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} deleted successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records deleted\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find One\n if (!isEndpointDisabled(routerConfig, \"findOne\")) {\n const findOneMode = getSchemaMode(\"findOne\");\n paths[`/api/${routeName}/{id}`] = {\n get: {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableName} by ID`,\n description: `Retrieves a single ${humanReadableName} record by its unique identifier`,\n operationId: `find${pascalModelName}ById`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableName} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`FindOne${pascalModelName}`, findOneMode),\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update One\n if (!isEndpointDisabled(routerConfig, \"updateOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n const updateMode = getSchemaMode(\"update\");\n paths[`/api/${routeName}/{id}`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update ${humanReadableName} by ID`,\n description: `Updates a single ${humanReadableName} record by its unique identifier`,\n operationId: `update${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Update${pascalModelName}`, updateMode),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableName} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, updateMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete One\n if (!isEndpointDisabled(routerConfig, \"deleteOne\")) {\n if (!paths[`/api/${routeName}/{id}`]) paths[`/api/${routeName}/{id}`] = {};\n paths[`/api/${routeName}/{id}`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete ${humanReadableName} by ID`,\n description: `Permanently deletes a single ${humanReadableName} record by its unique identifier`,\n operationId: `delete${pascalModelName}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"204\": {\n description: `${humanReadableName} deleted successfully`,\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import pluralize from "pluralize";
|
|
|
2
2
|
import { kebabCase, pascalCase } from "../../../../../../exports/utils/index.js";
|
|
3
3
|
import { getSchemaRef, kebabToHuman, localValidatorFileExists, } from "../../swagger.router.helpers.js";
|
|
4
4
|
import { getModuleComponents } from "../../../../../../utils/dynamic-loader.js";
|
|
5
|
-
export default
|
|
5
|
+
export default function generatePrismaModelParentRoutesPaths(model, paths, arkosConfig) {
|
|
6
6
|
const modelName = kebabCase(model);
|
|
7
7
|
const routeName = pluralize.plural(modelName);
|
|
8
8
|
const pascalModelName = pascalCase(model);
|
|
@@ -26,20 +26,20 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
26
26
|
return parentEndpoints.includes(endpoint);
|
|
27
27
|
return false;
|
|
28
28
|
};
|
|
29
|
-
const getSchemaMode =
|
|
29
|
+
const getSchemaMode = (action) => {
|
|
30
30
|
const swaggerMode = arkosConfig.swagger?.mode;
|
|
31
31
|
const isStrict = arkosConfig.swagger?.strict;
|
|
32
32
|
if (isStrict) {
|
|
33
33
|
return swaggerMode || "prisma";
|
|
34
34
|
}
|
|
35
35
|
const actionKey = action;
|
|
36
|
-
const localFileExists =
|
|
36
|
+
const localFileExists = localValidatorFileExists(actionKey, model, arkosConfig);
|
|
37
37
|
if (!localFileExists)
|
|
38
38
|
return "prisma";
|
|
39
39
|
return swaggerMode || "prisma";
|
|
40
40
|
};
|
|
41
41
|
if (isParentEndpointAllowed("createOne")) {
|
|
42
|
-
const createMode =
|
|
42
|
+
const createMode = getSchemaMode("create");
|
|
43
43
|
paths[`/api/${parentRouteName}/{id}/${routeName}`] = {
|
|
44
44
|
post: {
|
|
45
45
|
tags: [humanReadableNamePlural],
|
|
@@ -99,7 +99,7 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
99
99
|
if (isParentEndpointAllowed("findMany")) {
|
|
100
100
|
if (!paths[`/api/${parentRouteName}/{id}/${routeName}`])
|
|
101
101
|
paths[`/api/${parentRouteName}/{id}/${routeName}`] = {};
|
|
102
|
-
const findManyMode =
|
|
102
|
+
const findManyMode = getSchemaMode("findMany");
|
|
103
103
|
paths[`/api/${parentRouteName}/{id}/${routeName}`].get = {
|
|
104
104
|
tags: [humanReadableNamePlural],
|
|
105
105
|
summary: `Get ${humanReadableNamePlural} for ${parentHumanName}`,
|
|
@@ -200,7 +200,7 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
200
200
|
};
|
|
201
201
|
}
|
|
202
202
|
if (isParentEndpointAllowed("createMany")) {
|
|
203
|
-
const createManyMode =
|
|
203
|
+
const createManyMode = getSchemaMode("createMany");
|
|
204
204
|
paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {
|
|
205
205
|
post: {
|
|
206
206
|
tags: [humanReadableNamePlural],
|
|
@@ -269,7 +269,7 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
269
269
|
if (isParentEndpointAllowed("updateMany")) {
|
|
270
270
|
if (!paths[`/api/${parentRouteName}/{id}/${routeName}/many`])
|
|
271
271
|
paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {};
|
|
272
|
-
const updateManyMode =
|
|
272
|
+
const updateManyMode = getSchemaMode("updateMany");
|
|
273
273
|
paths[`/api/${parentRouteName}/{id}/${routeName}/many`].patch = {
|
|
274
274
|
tags: [humanReadableNamePlural],
|
|
275
275
|
summary: `Update multiple ${humanReadableNamePlural} for ${parentHumanName}`,
|
|
@@ -399,7 +399,7 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
399
399
|
};
|
|
400
400
|
}
|
|
401
401
|
if (isParentEndpointAllowed("findOne")) {
|
|
402
|
-
const findOneMode =
|
|
402
|
+
const findOneMode = getSchemaMode("findOne");
|
|
403
403
|
paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {
|
|
404
404
|
get: {
|
|
405
405
|
tags: [humanReadableNamePlural],
|
|
@@ -454,7 +454,7 @@ export default async function generatePrismaModelParentRoutesPaths(model, paths,
|
|
|
454
454
|
if (isParentEndpointAllowed("updateOne")) {
|
|
455
455
|
if (!paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`])
|
|
456
456
|
paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {};
|
|
457
|
-
const updateMode =
|
|
457
|
+
const updateMode = getSchemaMode("update");
|
|
458
458
|
paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`].patch = {
|
|
459
459
|
tags: [humanReadableNamePlural],
|
|
460
460
|
summary: `Update ${humanReadableName} by ID for ${parentHumanName}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-prisma-model-parent-routes-paths.js","sourceRoot":"","sources":["../../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport pluralize from \"pluralize\";\nimport { kebabCase, pascalCase } from \"../../../../../../exports/utils\";\nimport {\n getSchemaRef,\n kebabToHuman,\n localValidatorFileExists,\n} from \"../../swagger.router.helpers\";\nimport { ArkosConfig, RouterConfig } from \"../../../../../../exports\";\nimport { getModuleComponents } from \"../../../../../../utils/dynamic-loader\";\n\nexport default async function generatePrismaModelParentRoutesPaths(\n model: string,\n paths: OpenAPIV3.PathsObject,\n arkosConfig: ArkosConfig\n) {\n const modelName = kebabCase(model);\n const routeName = pluralize.plural(modelName);\n const pascalModelName = pascalCase(model);\n const humanReadableName = kebabToHuman(modelName);\n const humanReadableNamePlural = pluralize.plural(humanReadableName);\n\n const moduleComponents = getModuleComponents(model);\n const routerConfig = moduleComponents?.router\n ?.config as RouterConfig<\"prisma\">;\n\n if (routerConfig?.disable === true) return;\n if (!routerConfig?.parent) return;\n\n const parentModel = routerConfig.parent.model!;\n const parentRouteName = pluralize.plural(kebabCase(parentModel));\n const parentHumanName = kebabToHuman(kebabCase(parentModel));\n\n const isParentEndpointAllowed = (endpoint: string): boolean => {\n const parentEndpoints = routerConfig?.parent?.endpoints;\n\n if (!parentEndpoints || parentEndpoints === \"*\") return true;\n\n if (Array.isArray(parentEndpoints))\n return parentEndpoints.includes(endpoint as any);\n\n return false;\n };\n\n const getSchemaMode = async (\n action: string\n ): Promise<\"prisma\" | \"zod\" | \"class-validator\"> => {\n const swaggerMode = arkosConfig.swagger?.mode;\n const isStrict = arkosConfig.swagger?.strict;\n\n if (isStrict) {\n return swaggerMode || \"prisma\";\n }\n\n const actionKey = action as any;\n const localFileExists = await localValidatorFileExists(\n actionKey,\n model,\n arkosConfig\n );\n\n if (!localFileExists) return \"prisma\";\n\n return swaggerMode || \"prisma\";\n };\n\n // Create One (Parent)\n if (isParentEndpointAllowed(\"createOne\")) {\n const createMode = await getSchemaMode(\"create\");\n paths[`/api/${parentRouteName}/{id}/${routeName}`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create ${humanReadableName} for ${parentHumanName}`,\n description: `Creates a new ${humanReadableName} record associated with the specified ${parentHumanName}`,\n operationId: `create${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Create${pascalModelName}`, createMode),\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableName} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, createMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Find Many (Parent)\n if (isParentEndpointAllowed(\"findMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}`] = {};\n const findManyMode = await getSchemaMode(\"findMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}`]!.get = {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Retrieves all ${humanReadableNamePlural} associated with the specified ${parentHumanName}`,\n operationId: `get${pluralize.plural(pascalModelName)}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: {\n type: \"integer\",\n minimum: 1,\n },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: {\n type: \"integer\",\n minimum: 1,\n maximum: 100,\n },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `List of ${humanReadableNamePlural} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n total: {\n type: \"integer\",\n description:\n \"Total number of records matching the criteria\",\n },\n results: {\n type: \"integer\",\n description: \"Number of records returned in current page\",\n },\n data: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `FindMany${pascalModelName}`,\n findManyMode\n ),\n },\n },\n },\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Create Many (Parent)\n if (isParentEndpointAllowed(\"createMany\")) {\n const createManyMode = await getSchemaMode(\"createMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Creates multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `createMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Array of ${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `CreateMany${pascalModelName}`,\n createManyMode\n ),\n },\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableNamePlural} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records created\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update Many (Parent)\n if (isParentEndpointAllowed(\"updateMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/many`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {};\n const updateManyMode = await getSchemaMode(\"updateMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Updates multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `updateMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(\n `UpdateMany${pascalModelName}`,\n updateManyMode\n ),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records updated\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete Many (Parent)\n if (isParentEndpointAllowed(\"deleteMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/many`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {};\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Deletes multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `deleteMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} deleted successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records deleted\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find One (Parent)\n if (isParentEndpointAllowed(\"findOne\")) {\n const findOneMode = await getSchemaMode(\"findOne\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {\n get: {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Retrieves a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `get${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableName} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`FindOne${pascalModelName}`, findOneMode),\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update One (Parent)\n if (isParentEndpointAllowed(\"updateOne\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {};\n const updateMode = await getSchemaMode(\"update\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Updates a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `update${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Update${pascalModelName}`, updateMode),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableName} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, updateMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete One (Parent)\n if (isParentEndpointAllowed(\"deleteOne\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {};\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Permanently deletes a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `delete${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"204\": {\n description: `${humanReadableName} deleted successfully`,\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"generate-prisma-model-parent-routes-paths.js","sourceRoot":"","sources":["../../../../../../../../src/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport pluralize from \"pluralize\";\nimport { kebabCase, pascalCase } from \"../../../../../../exports/utils\";\nimport {\n getSchemaRef,\n kebabToHuman,\n localValidatorFileExists,\n} from \"../../swagger.router.helpers\";\nimport { ArkosConfig, RouterConfig } from \"../../../../../../exports\";\nimport { getModuleComponents } from \"../../../../../../utils/dynamic-loader\";\n\nexport default function generatePrismaModelParentRoutesPaths(\n model: string,\n paths: OpenAPIV3.PathsObject,\n arkosConfig: ArkosConfig\n) {\n const modelName = kebabCase(model);\n const routeName = pluralize.plural(modelName);\n const pascalModelName = pascalCase(model);\n const humanReadableName = kebabToHuman(modelName);\n const humanReadableNamePlural = pluralize.plural(humanReadableName);\n\n const moduleComponents = getModuleComponents(model);\n const routerConfig = moduleComponents?.router\n ?.config as RouterConfig<\"prisma\">;\n\n if (routerConfig?.disable === true) return;\n if (!routerConfig?.parent) return;\n\n const parentModel = routerConfig.parent.model!;\n const parentRouteName = pluralize.plural(kebabCase(parentModel));\n const parentHumanName = kebabToHuman(kebabCase(parentModel));\n\n const isParentEndpointAllowed = (endpoint: string): boolean => {\n const parentEndpoints = routerConfig?.parent?.endpoints;\n\n if (!parentEndpoints || parentEndpoints === \"*\") return true;\n\n if (Array.isArray(parentEndpoints))\n return parentEndpoints.includes(endpoint as any);\n\n return false;\n };\n\n const getSchemaMode = (\n action: string\n ): \"prisma\" | \"zod\" | \"class-validator\" => {\n const swaggerMode = arkosConfig.swagger?.mode;\n const isStrict = arkosConfig.swagger?.strict;\n\n if (isStrict) {\n return swaggerMode || \"prisma\";\n }\n\n const actionKey = action as any;\n const localFileExists = localValidatorFileExists(\n actionKey,\n model,\n arkosConfig\n );\n\n if (!localFileExists) return \"prisma\";\n\n return swaggerMode || \"prisma\";\n };\n\n // Create One (Parent)\n if (isParentEndpointAllowed(\"createOne\")) {\n const createMode = getSchemaMode(\"create\");\n paths[`/api/${parentRouteName}/{id}/${routeName}`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create ${humanReadableName} for ${parentHumanName}`,\n description: `Creates a new ${humanReadableName} record associated with the specified ${parentHumanName}`,\n operationId: `create${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Create${pascalModelName}`, createMode),\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableName} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, createMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Find Many (Parent)\n if (isParentEndpointAllowed(\"findMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}`] = {};\n const findManyMode = getSchemaMode(\"findMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}`]!.get = {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Retrieves all ${humanReadableNamePlural} associated with the specified ${parentHumanName}`,\n operationId: `get${pluralize.plural(pascalModelName)}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: {\n type: \"integer\",\n minimum: 1,\n },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: {\n type: \"integer\",\n minimum: 1,\n maximum: 100,\n },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `List of ${humanReadableNamePlural} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n total: {\n type: \"integer\",\n description:\n \"Total number of records matching the criteria\",\n },\n results: {\n type: \"integer\",\n description: \"Number of records returned in current page\",\n },\n data: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `FindMany${pascalModelName}`,\n findManyMode\n ),\n },\n },\n },\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Create Many (Parent)\n if (isParentEndpointAllowed(\"createMany\")) {\n const createManyMode = getSchemaMode(\"createMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {\n post: {\n tags: [humanReadableNamePlural],\n summary: `Create multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Creates multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `createMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Array of ${humanReadableName} data to create`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n type: \"array\",\n items: {\n $ref: getSchemaRef(\n `CreateMany${pascalModelName}`,\n createManyMode\n ),\n },\n },\n },\n },\n },\n responses: {\n \"201\": {\n description: `${humanReadableNamePlural} created successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records created\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update Many (Parent)\n if (isParentEndpointAllowed(\"updateMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/many`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {};\n const updateManyMode = getSchemaMode(\"updateMany\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Updates multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `updateMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(\n `UpdateMany${pascalModelName}`,\n updateManyMode\n ),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records updated\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete Many (Parent)\n if (isParentEndpointAllowed(\"deleteMany\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/many`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`] = {};\n paths[`/api/${parentRouteName}/{id}/${routeName}/many`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete multiple ${humanReadableNamePlural} for ${parentHumanName}`,\n description: `Deletes multiple ${humanReadableNamePlural} records associated with the specified ${parentHumanName}`,\n operationId: `deleteMany${pascalModelName}For${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"filters\",\n in: \"query\",\n description: \"Additional filters criteria in JSON format\",\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableNamePlural} deleted successfully`,\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n count: {\n type: \"integer\",\n description: \"Number of records deleted\",\n },\n },\n },\n },\n },\n },\n \"400\": {\n description: \"Missing filter criteria\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Find One (Parent)\n if (isParentEndpointAllowed(\"findOne\")) {\n const findOneMode = getSchemaMode(\"findOne\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {\n get: {\n tags: [humanReadableNamePlural],\n summary: `Get ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Retrieves a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `get${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"200\": {\n description: `${humanReadableName} retrieved successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`FindOne${pascalModelName}`, findOneMode),\n },\n },\n },\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n },\n };\n }\n\n // Update One (Parent)\n if (isParentEndpointAllowed(\"updateOne\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {};\n const updateMode = getSchemaMode(\"update\");\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`]!.patch = {\n tags: [humanReadableNamePlural],\n summary: `Update ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Updates a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `update${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n requestBody: {\n description: `Partial ${humanReadableName} data to update`,\n required: true,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`Update${pascalModelName}`, updateMode),\n },\n },\n },\n },\n responses: {\n \"200\": {\n description: `${humanReadableName} updated successfully`,\n content: {\n \"application/json\": {\n schema: {\n $ref: getSchemaRef(`${pascalModelName}`, updateMode),\n },\n },\n },\n },\n \"400\": {\n description: \"Invalid input data provided\",\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n\n // Delete One (Parent)\n if (isParentEndpointAllowed(\"deleteOne\")) {\n if (!paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`])\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`] = {};\n paths[`/api/${parentRouteName}/{id}/${routeName}/{childId}`]!.delete = {\n tags: [humanReadableNamePlural],\n summary: `Delete ${humanReadableName} by ID for ${parentHumanName}`,\n description: `Permanently deletes a single ${humanReadableName} record by its unique identifier associated with the specified ${parentHumanName}`,\n operationId: `delete${pascalModelName}ByIdFor${pascalCase(parentModel)}`,\n parameters: [\n {\n name: \"id\",\n in: \"path\",\n description: `Unique identifier of the ${parentHumanName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n {\n name: \"childId\",\n in: \"path\",\n description: `Unique identifier of the ${humanReadableName}`,\n required: true,\n schema: {\n type: \"string\",\n },\n },\n ],\n responses: {\n \"204\": {\n description: `${humanReadableName} deleted successfully`,\n },\n \"401\": {\n description: \"Authentication required\",\n },\n \"403\": {\n description: \"Insufficient permissions\",\n },\n \"404\": {\n description: `${humanReadableName} or ${parentHumanName} not found`,\n },\n },\n security: [{ BearerAuth: [] }],\n };\n }\n}\n"]}
|