arkos 1.2.13-test → 1.2.13-test.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -14
- package/cli.js +2 -11
- package/dist/cjs/app.js +1 -1
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/auth/index.js +1 -6
- package/dist/cjs/exports/controllers/index.js +1 -11
- package/dist/cjs/exports/error-handler/index.js +1 -11
- package/dist/cjs/exports/index.js +1 -12
- package/dist/cjs/exports/middlewares/index.js +1 -7
- package/dist/cjs/exports/prisma/index.js +1 -6
- package/dist/cjs/exports/services/index.js +1 -49
- package/dist/cjs/exports/utils/index.js +1 -44
- package/dist/cjs/exports/validation/index.js +1 -11
- package/dist/cjs/modules/auth/auth.controller.js +1 -194
- package/dist/cjs/modules/auth/auth.router.js +1 -124
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +1 -192
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
- package/dist/cjs/modules/base/base.controller.js +1 -159
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +1 -92
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.router.js +1 -24
- package/dist/cjs/modules/base/base.router.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +1 -128
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -167
- 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 +1 -171
- package/dist/cjs/modules/email/email.service.js +1 -104
- package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -144
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
- package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -195
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
- package/dist/cjs/modules/file-upload/file-upload.router.js +1 -56
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -90
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +1 -141
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
- package/dist/cjs/server.js +4 -2
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/types/arkos-config.js +1 -3
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/auth.js +1 -3
- package/dist/cjs/types/index.js +1 -11
- package/dist/cjs/types/router-config.js +1 -3
- package/dist/cjs/utils/arkos-env.js +1 -9
- package/dist/cjs/utils/cli/build.js +6 -229
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +5 -268
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/generate.js +12 -189
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +1 -81
- package/dist/cjs/utils/cli/start.js +5 -93
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -26
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +6 -15
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +71 -133
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +24 -46
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +12 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -27
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
- package/dist/cjs/utils/dotenv.helpers.js +1 -43
- package/dist/cjs/utils/features/api.features.js +1 -161
- package/dist/cjs/utils/features/api.features.js.map +1 -1
- package/dist/cjs/utils/features/change-case.features.js +1 -67
- package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
- package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
- package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -54
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js +1 -40
- package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/models.helpers.js +11 -325
- package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +1 -49
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
- package/dist/cjs/utils/helpers/routers.helpers.js +1 -0
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
- package/dist/cjs/utils/helpers/text.helpers.js +1 -28
- package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
- package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/cjs/utils/prisma/types.js +1 -0
- package/dist/cjs/utils/prisma/types.js.map +1 -0
- package/dist/cjs/utils/sheu.js +1 -0
- package/dist/cjs/utils/sheu.js.map +1 -0
- package/dist/cjs/utils/validate-dto.js +1 -17
- package/dist/cjs/utils/validate-schema.js +1 -15
- package/dist/esm/app.js +1 -0
- package/dist/esm/app.js.map +1 -0
- package/dist/esm/exports/auth/index.js +1 -0
- package/dist/esm/exports/controllers/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/index.js +1 -0
- package/dist/esm/exports/middlewares/index.js +1 -0
- package/dist/esm/exports/prisma/index.js +1 -0
- package/dist/esm/exports/services/index.js +1 -0
- package/dist/esm/exports/utils/index.js +1 -0
- package/dist/esm/exports/validation/index.js +1 -0
- package/dist/esm/modules/auth/auth.controller.js +1 -0
- package/dist/esm/modules/auth/auth.router.js +1 -0
- package/dist/esm/modules/auth/auth.router.js.map +1 -0
- package/dist/esm/modules/auth/auth.service.js +1 -0
- package/dist/esm/modules/auth/auth.service.js.map +1 -0
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
- package/dist/esm/modules/base/base.controller.js +1 -0
- package/dist/esm/modules/base/base.controller.js.map +1 -0
- package/dist/esm/modules/base/base.middlewares.js +1 -0
- package/dist/esm/modules/base/base.middlewares.js.map +1 -0
- package/dist/esm/modules/base/base.router.js +1 -0
- package/dist/esm/modules/base/base.router.js.map +1 -0
- package/dist/esm/modules/base/base.service.js +1 -0
- package/dist/{es2020 → esm}/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -0
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -0
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -0
- package/dist/esm/modules/email/email.service.js +1 -0
- package/dist/esm/modules/error-handler/error-handler.controller.js +4 -0
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/app-error.js +1 -0
- package/dist/esm/modules/error-handler/utils/catch-async.js +1 -0
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -0
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +1 -0
- package/dist/esm/modules/file-upload/file-upload.router.js +1 -0
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.service.js +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +1 -0
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
- package/dist/esm/server.js +5 -0
- package/dist/esm/server.js.map +1 -0
- package/dist/esm/types/arkos-config.js +1 -0
- package/dist/esm/types/arkos-config.js.map +1 -0
- package/dist/esm/types/auth.js +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/router-config.js +1 -0
- package/dist/esm/utils/arkos-env.js +1 -0
- package/dist/esm/utils/cli/build.js +6 -0
- package/dist/esm/utils/cli/build.js.map +1 -0
- package/dist/esm/utils/cli/dev.js +5 -0
- package/dist/esm/utils/cli/dev.js.map +1 -0
- package/dist/esm/utils/cli/generate.js +12 -0
- package/dist/{es2020 → esm}/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +1 -0
- package/dist/esm/utils/cli/start.js +5 -0
- package/dist/esm/utils/cli/start.js.map +1 -0
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -0
- package/dist/esm/utils/cli/utils/cli.helpers.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +21 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +12 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +206 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +36 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +18 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +15 -0
- package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +2 -0
- package/dist/esm/utils/dotenv.helpers.js +1 -0
- package/dist/esm/utils/features/api.features.js +1 -0
- package/dist/esm/utils/features/api.features.js.map +1 -0
- package/dist/esm/utils/features/change-case.features.js +1 -0
- package/dist/esm/utils/helpers/api.features.helpers.js +1 -0
- package/dist/esm/utils/helpers/change-case.helpers.js +1 -0
- package/dist/esm/utils/helpers/deepmerge.helper.js +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/global.helpers.js +1 -0
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/models.helpers.js +11 -0
- package/dist/esm/utils/helpers/models.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/prisma.helpers.js +1 -0
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/query-parser.helpers.js +1 -0
- package/dist/esm/utils/helpers/routers.helpers.js +1 -0
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/text.helpers.js +1 -0
- package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -0
- package/dist/esm/utils/prisma/enhaced-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/esm/utils/prisma/types.js +1 -0
- package/dist/esm/utils/prisma/types.js.map +1 -0
- package/dist/esm/utils/sheu.js +1 -0
- package/dist/esm/utils/sheu.js.map +1 -0
- package/dist/esm/utils/validate-dto.js +1 -0
- package/dist/esm/utils/validate-schema.js +1 -0
- package/dist/types/modules/base/base.middlewares.d.ts +4 -4
- package/dist/types/modules/base/base.service.d.ts +1 -1
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
- package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
- 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/get-authentication-json-schema-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
- package/dist/types/server.d.ts +3 -0
- package/dist/types/types/arkos-config.d.ts +10 -5
- package/dist/types/utils/cli/utils/cli.helpers.d.ts +1 -1
- package/dist/types/utils/features/api.features.d.ts +1 -0
- package/dist/types/utils/helpers/global.helpers.d.ts +6 -1
- package/dist/types/utils/helpers/models.helpers.d.ts +31 -5
- package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
- package/dist/types/utils/prisma/enhaced-prisma-json-schema-generator.d.ts +34 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +10 -0
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
- package/dist/types/utils/prisma/types.d.ts +48 -0
- package/dist/types/utils/sheu.d.ts +70 -0
- package/package.json +34 -34
- package/dist/es2020/app.js +0 -1
- package/dist/es2020/app.js.map +0 -1
- package/dist/es2020/exports/auth/index.js +0 -2
- package/dist/es2020/exports/controllers/index.js +0 -4
- package/dist/es2020/exports/error-handler/index.js +0 -4
- package/dist/es2020/exports/index.js +0 -8
- package/dist/es2020/exports/middlewares/index.js +0 -2
- package/dist/es2020/exports/prisma/index.js +0 -3
- package/dist/es2020/exports/services/index.js +0 -9
- package/dist/es2020/exports/utils/index.js +0 -4
- package/dist/es2020/exports/validation/index.js +0 -4
- package/dist/es2020/modules/auth/auth.controller.js +0 -187
- package/dist/es2020/modules/auth/auth.router.js +0 -118
- package/dist/es2020/modules/auth/auth.router.js.map +0 -1
- package/dist/es2020/modules/auth/auth.service.js +0 -185
- package/dist/es2020/modules/auth/auth.service.js.map +0 -1
- package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +0 -73
- package/dist/es2020/modules/base/base.controller.js +0 -151
- package/dist/es2020/modules/base/base.controller.js.map +0 -1
- package/dist/es2020/modules/base/base.middlewares.js +0 -81
- package/dist/es2020/modules/base/base.middlewares.js.map +0 -1
- package/dist/es2020/modules/base/base.router.js +0 -17
- package/dist/es2020/modules/base/base.router.js.map +0 -1
- package/dist/es2020/modules/base/base.service.js +0 -120
- package/dist/es2020/modules/base/utils/helpers/base.controller.helpers.js +0 -77
- package/dist/es2020/modules/base/utils/helpers/base.middlewares.helpers.js +0 -44
- package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +0 -161
- package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +0 -165
- package/dist/es2020/modules/email/email.service.js +0 -97
- package/dist/es2020/modules/error-handler/error-handler.controller.js +0 -105
- package/dist/es2020/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/es2020/modules/error-handler/utils/app-error.js +0 -15
- package/dist/es2020/modules/error-handler/utils/catch-async.js +0 -10
- package/dist/es2020/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +0 -155
- package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/es2020/modules/file-upload/file-upload.controller.js +0 -266
- package/dist/es2020/modules/file-upload/file-upload.router.js +0 -50
- package/dist/es2020/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/es2020/modules/file-upload/file-upload.service.js +0 -314
- package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -81
- package/dist/es2020/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/es2020/modules/swagger/swagger.router.js +0 -135
- package/dist/es2020/modules/swagger/swagger.router.js.map +0 -1
- package/dist/es2020/server.js +0 -3
- package/dist/es2020/server.js.map +0 -1
- package/dist/es2020/types/arkos-config.js +0 -2
- package/dist/es2020/types/arkos-config.js.map +0 -1
- package/dist/es2020/types/auth.js +0 -2
- package/dist/es2020/types/index.js +0 -8
- package/dist/es2020/types/router-config.js +0 -2
- package/dist/es2020/utils/arkos-env.js +0 -7
- package/dist/es2020/utils/cli/build.js +0 -223
- package/dist/es2020/utils/cli/build.js.map +0 -1
- package/dist/es2020/utils/cli/dev.js +0 -261
- package/dist/es2020/utils/cli/dev.js.map +0 -1
- package/dist/es2020/utils/cli/generate.js +0 -183
- package/dist/es2020/utils/cli/index.js +0 -74
- package/dist/es2020/utils/cli/start.js +0 -86
- package/dist/es2020/utils/cli/start.js.map +0 -1
- package/dist/es2020/utils/cli/utils/cli.helpers.js +0 -18
- package/dist/es2020/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -33
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -18
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -265
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -55
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -32
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
- package/dist/es2020/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -32
- package/dist/es2020/utils/cli/utils/template-generators.js +0 -25
- package/dist/es2020/utils/dotenv.helpers.js +0 -37
- package/dist/es2020/utils/features/api.features.js +0 -154
- package/dist/es2020/utils/features/api.features.js.map +0 -1
- package/dist/es2020/utils/features/change-case.features.js +0 -31
- package/dist/es2020/utils/helpers/api.features.helpers.js +0 -103
- package/dist/es2020/utils/helpers/change-case.helpers.js +0 -161
- package/dist/es2020/utils/helpers/deepmerge.helper.js +0 -113
- package/dist/es2020/utils/helpers/fs.helpers.js +0 -45
- package/dist/es2020/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/global.helpers.js +0 -4
- package/dist/es2020/utils/helpers/global.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/models.helpers.js +0 -276
- package/dist/es2020/utils/helpers/models.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/prisma.helpers.js +0 -41
- package/dist/es2020/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/es2020/utils/helpers/query-parser.helpers.js +0 -40
- package/dist/es2020/utils/helpers/text.helpers.js +0 -22
- package/dist/es2020/utils/validate-dto.js +0 -11
- package/dist/es2020/utils/validate-schema.js +0 -9
- /package/dist/{es2020 → esm}/exports/auth/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/controllers/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/error-handler/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/middlewares/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/prisma/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/services/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/utils/index.js.map +0 -0
- /package/dist/{es2020 → esm}/exports/validation/index.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/auth/auth.controller.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.controller.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/base/utils/helpers/base.service.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/email/email.service.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/error-handler/utils/app-error.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/file-upload/file-upload.controller.js.map +0 -0
- /package/dist/{es2020 → esm}/modules/file-upload/file-upload.service.js.map +0 -0
- /package/dist/{es2020 → esm}/paths.js +0 -0
- /package/dist/{es2020 → esm}/paths.js.map +0 -0
- /package/dist/{es2020 → esm}/types/auth.js.map +0 -0
- /package/dist/{es2020 → esm}/types/index.js.map +0 -0
- /package/dist/{es2020 → esm}/types/router-config.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/arkos-env.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/index.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/cli/utils/template-generators.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/dotenv.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/features/change-case.features.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/api.features.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/change-case.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/deepmerge.helper.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/query-parser.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/helpers/text.helpers.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/validate-dto.js.map +0 -0
- /package/dist/{es2020 → esm}/utils/validate-schema.js.map +0 -0
|
@@ -1,195 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.handleJWTError = handleJWTError;
|
|
7
|
-
exports.handleJWTExpired = handleJWTExpired;
|
|
8
|
-
exports.handlePrismaClientValidationError = handlePrismaClientValidationError;
|
|
9
|
-
exports.handleAuthenticationError = handleAuthenticationError;
|
|
10
|
-
exports.handleServerNotReachableError = handleServerNotReachableError;
|
|
11
|
-
exports.handleConnectionTimeoutError = handleConnectionTimeoutError;
|
|
12
|
-
exports.handleDatabaseNotFoundError = handleDatabaseNotFoundError;
|
|
13
|
-
exports.handleEnvironmentVariableError = handleEnvironmentVariableError;
|
|
14
|
-
exports.handleFieldValueTooLargeError = handleFieldValueTooLargeError;
|
|
15
|
-
exports.handleRecordNotFoundError = handleRecordNotFoundError;
|
|
16
|
-
exports.handleUniqueConstraintError = handleUniqueConstraintError;
|
|
17
|
-
exports.handleForeignKeyConstraintError = handleForeignKeyConstraintError;
|
|
18
|
-
exports.handleConstraintFailedError = handleConstraintFailedError;
|
|
19
|
-
exports.handleInvalidFieldValueError = handleInvalidFieldValueError;
|
|
20
|
-
exports.handleInvalidFieldProvidedError = handleInvalidFieldProvidedError;
|
|
21
|
-
exports.handleDataValidationError = handleDataValidationError;
|
|
22
|
-
exports.handleQueryParsingError = handleQueryParsingError;
|
|
23
|
-
exports.handleInvalidQueryFormatError = handleInvalidQueryFormatError;
|
|
24
|
-
exports.handleRawQueryExecutionError = handleRawQueryExecutionError;
|
|
25
|
-
exports.handleNullConstraintViolationError = handleNullConstraintViolationError;
|
|
26
|
-
exports.handleSchemaCreationFailedError = handleSchemaCreationFailedError;
|
|
27
|
-
exports.handleMigrationAlreadyAppliedError = handleMigrationAlreadyAppliedError;
|
|
28
|
-
exports.handleMigrationScriptFailedError = handleMigrationScriptFailedError;
|
|
29
|
-
exports.handleVersionMismatchError = handleVersionMismatchError;
|
|
30
|
-
exports.handleMigrationFileReadError = handleMigrationFileReadError;
|
|
31
|
-
exports.handleSchemaDriftError = handleSchemaDriftError;
|
|
32
|
-
exports.handleSchemaSyntaxError = handleSchemaSyntaxError;
|
|
33
|
-
exports.handleClientTypeError = handleClientTypeError;
|
|
34
|
-
exports.handleDynamicQueryError = handleDynamicQueryError;
|
|
35
|
-
exports.handleRelationLoadingError = handleRelationLoadingError;
|
|
36
|
-
exports.handleBinaryError = handleBinaryError;
|
|
37
|
-
exports.handleNetworkError = handleNetworkError;
|
|
38
|
-
exports.handleUnhandledPromiseError = handleUnhandledPromiseError;
|
|
39
|
-
exports.handleDataTypeError = handleDataTypeError;
|
|
40
|
-
exports.handleEmptyResultError = handleEmptyResultError;
|
|
41
|
-
const app_error_1 = __importDefault(require("./app-error"));
|
|
42
|
-
function handleJWTError() {
|
|
43
|
-
return new app_error_1.default("Invalid token. Please log in again!", 401);
|
|
44
|
-
}
|
|
45
|
-
function handleJWTExpired() {
|
|
46
|
-
return new app_error_1.default("Your token has expired, Please log again!", 401);
|
|
47
|
-
}
|
|
48
|
-
function handlePrismaClientValidationError(err) {
|
|
49
|
-
const message = err?.message.split("\n")[err?.message.split("\n").length - 1];
|
|
50
|
-
return new app_error_1.default(message, 400);
|
|
51
|
-
}
|
|
52
|
-
function handleAuthenticationError(err) {
|
|
53
|
-
const message = "Authentication failed against the database server. Please check your credentials.";
|
|
54
|
-
return new app_error_1.default(message, 401);
|
|
55
|
-
}
|
|
56
|
-
function handleServerNotReachableError(err) {
|
|
57
|
-
const message = "The database server is not reachable. Verify your connection string or ensure the server is online.";
|
|
58
|
-
return new app_error_1.default(message, 503);
|
|
59
|
-
}
|
|
60
|
-
function handleConnectionTimeoutError(err) {
|
|
61
|
-
const message = "Connection to the database timed out. Please check server performance or network connectivity.";
|
|
62
|
-
return new app_error_1.default(message, 504);
|
|
63
|
-
}
|
|
64
|
-
function handleDatabaseNotFoundError(err) {
|
|
65
|
-
const message = "The specified database does not exist on the server.";
|
|
66
|
-
return new app_error_1.default(message, 404);
|
|
67
|
-
}
|
|
68
|
-
function handleEnvironmentVariableError(err) {
|
|
69
|
-
const missingVars = err?.missing || "unknown environment variables";
|
|
70
|
-
const message = `Missing or invalid environment variables: ${missingVars}. Please check your configuration.`;
|
|
71
|
-
return new app_error_1.default(message, 500);
|
|
72
|
-
}
|
|
73
|
-
function handleFieldValueTooLargeError(err) {
|
|
74
|
-
const message = `The value for the field "${err?.meta?.field_name}" is too large. Please provide a smaller value.`;
|
|
75
|
-
return new app_error_1.default(message, 400);
|
|
76
|
-
}
|
|
77
|
-
function handleRecordNotFoundError(err) {
|
|
78
|
-
const message = "No record found for the given query. Ensure the query parameters are correct.";
|
|
79
|
-
return new app_error_1.default(message, 404);
|
|
80
|
-
}
|
|
81
|
-
function handleUniqueConstraintError(err) {
|
|
82
|
-
const field = err?.meta?.target || "unknown field";
|
|
83
|
-
const message = `Duplicate value detected for the unique field(s): ${field}. Please use a different value.`;
|
|
84
|
-
return new app_error_1.default(message, 409);
|
|
85
|
-
}
|
|
86
|
-
function handleForeignKeyConstraintError(err) {
|
|
87
|
-
const message = "Foreign key constraint violation. Ensure that the referenced record exists.";
|
|
88
|
-
return new app_error_1.default(message, 400);
|
|
89
|
-
}
|
|
90
|
-
function handleConstraintFailedError(err) {
|
|
91
|
-
const constraint = err?.meta?.constraint || "unknown constraint";
|
|
92
|
-
const message = `A database constraint "${constraint}" failed. Please review your input data.`;
|
|
93
|
-
return new app_error_1.default(message, 400);
|
|
94
|
-
}
|
|
95
|
-
function handleInvalidFieldValueError(err) {
|
|
96
|
-
const fieldName = err?.meta?.field_name || "unknown field";
|
|
97
|
-
const message = `Invalid value provided for the field "${fieldName}". Please provide a valid value.`;
|
|
98
|
-
return new app_error_1.default(message, 400);
|
|
99
|
-
}
|
|
100
|
-
function handleInvalidFieldProvidedError(err) {
|
|
101
|
-
const fieldName = err?.meta?.field_name || "unknown field";
|
|
102
|
-
const message = `The field "${fieldName}" has been provided with an invalid value. Check the data and try again.`;
|
|
103
|
-
return new app_error_1.default(message, 400);
|
|
104
|
-
}
|
|
105
|
-
function handleDataValidationError(err) {
|
|
106
|
-
const message = "Data validation error occurred. Please ensure all fields meet the required criteria.";
|
|
107
|
-
return new app_error_1.default(message, 400);
|
|
108
|
-
}
|
|
109
|
-
function handleQueryParsingError(err) {
|
|
110
|
-
const query = err?.meta?.query || "unknown query";
|
|
111
|
-
const message = `Failed to parse the query: "${query}". Check the syntax and structure.`;
|
|
112
|
-
return new app_error_1.default(message, 400);
|
|
113
|
-
}
|
|
114
|
-
function handleInvalidQueryFormatError(err) {
|
|
115
|
-
const query = err?.meta?.query || "unknown query";
|
|
116
|
-
const message = `The query format is invalid: "${query}". Ensure the query adheres to the expected format.`;
|
|
117
|
-
return new app_error_1.default(message, 400);
|
|
118
|
-
}
|
|
119
|
-
function handleRawQueryExecutionError(err) {
|
|
120
|
-
const message = "An error occurred during the execution of a raw query. Verify the query and try again.";
|
|
121
|
-
return new app_error_1.default(message, 500);
|
|
122
|
-
}
|
|
123
|
-
function handleNullConstraintViolationError(err) {
|
|
124
|
-
const fieldName = err?.meta?.field_name || "unknown field";
|
|
125
|
-
const message = `The field "${fieldName}" cannot be null. Please provide a value.`;
|
|
126
|
-
return new app_error_1.default(message, 400);
|
|
127
|
-
}
|
|
128
|
-
function handleSchemaCreationFailedError(err) {
|
|
129
|
-
const message = "Failed to create the database schema. Verify the schema definition and try again.";
|
|
130
|
-
return new app_error_1.default(message, 500);
|
|
131
|
-
}
|
|
132
|
-
function handleMigrationAlreadyAppliedError(err) {
|
|
133
|
-
const migrationName = err?.meta?.migration || "unknown migration";
|
|
134
|
-
const message = `The migration "${migrationName}" has already been applied to the database.`;
|
|
135
|
-
return new app_error_1.default(message, 409);
|
|
136
|
-
}
|
|
137
|
-
function handleMigrationScriptFailedError(err) {
|
|
138
|
-
const migrationName = err?.meta?.migration || "unknown migration";
|
|
139
|
-
const message = `The migration script "${migrationName}" failed. Review the script and resolve any issues.`;
|
|
140
|
-
return new app_error_1.default(message, 500);
|
|
141
|
-
}
|
|
142
|
-
function handleVersionMismatchError(err) {
|
|
143
|
-
const message = `Version mismatch: The database schema and migration versions are inconsistent. Please check and resolve this issue.`;
|
|
144
|
-
return new app_error_1.default(message, 400);
|
|
145
|
-
}
|
|
146
|
-
function handleMigrationFileReadError(err) {
|
|
147
|
-
const migrationFile = err?.meta?.migration_file || "unknown file";
|
|
148
|
-
const message = `Failed to read the migration file "${migrationFile}". Ensure the file exists and is accessible.`;
|
|
149
|
-
return new app_error_1.default(message, 500);
|
|
150
|
-
}
|
|
151
|
-
function handleSchemaDriftError(err) {
|
|
152
|
-
const message = `Schema drift detected: The database schema differs from the expected state. Run migrations or sync schema to resolve.`;
|
|
153
|
-
return new app_error_1.default(message, 400);
|
|
154
|
-
}
|
|
155
|
-
function handleSchemaSyntaxError(err) {
|
|
156
|
-
const message = `Syntax error in the schema file. Please check for typos or invalid syntax in your schema definition.`;
|
|
157
|
-
return new app_error_1.default(message, 500);
|
|
158
|
-
}
|
|
159
|
-
function handleClientTypeError(err) {
|
|
160
|
-
const message = `Type error, Ensure proper usage of methods and correct data types.`;
|
|
161
|
-
return new app_error_1.default(message, 400);
|
|
162
|
-
}
|
|
163
|
-
function handleDynamicQueryError(err) {
|
|
164
|
-
const message = `Error constructing or executing a dynamic query. Verify query structure and parameters.`;
|
|
165
|
-
return new app_error_1.default(message, 400);
|
|
166
|
-
}
|
|
167
|
-
function handleRelationLoadingError(err) {
|
|
168
|
-
const relation = err?.meta?.relation || "unknown relation";
|
|
169
|
-
const message = `Error loading relation "${relation}". Ensure it is correctly defined and included in the query.`;
|
|
170
|
-
return new app_error_1.default(message, 400);
|
|
171
|
-
}
|
|
172
|
-
function handleBinaryError(err) {
|
|
173
|
-
const binaryName = err?.meta?.binary || "unknown binary";
|
|
174
|
-
const message = `Error with Prisma binary "${binaryName}". Ensure the binary is properly installed and compatible.`;
|
|
175
|
-
return new app_error_1.default(message, 500);
|
|
176
|
-
}
|
|
177
|
-
function handleNetworkError(err) {
|
|
178
|
-
const message = `Network error: Unable to connect to the database or internet. Please check your network connection.`;
|
|
179
|
-
return new app_error_1.default(message, 500);
|
|
180
|
-
}
|
|
181
|
-
function handleUnhandledPromiseError(err) {
|
|
182
|
-
const message = `Unhandled promise rejection detected. Please check asynchronous code for proper error handling.`;
|
|
183
|
-
return new app_error_1.default(message, 500);
|
|
184
|
-
}
|
|
185
|
-
function handleDataTypeError(err) {
|
|
186
|
-
const field = err?.meta?.field || "unknown field";
|
|
187
|
-
const expectedType = err?.meta?.expected_type || "unknown type";
|
|
188
|
-
const message = `Invalid data type for field "${field}". Expected type: ${expectedType}.`;
|
|
189
|
-
return new app_error_1.default(message, 400);
|
|
190
|
-
}
|
|
191
|
-
function handleEmptyResultError(err) {
|
|
192
|
-
const message = `Empty result: No data was found for the given query. Ensure the query criteria are correct.`;
|
|
193
|
-
return new app_error_1.default(message, 404);
|
|
194
|
-
}
|
|
195
|
-
//# sourceMappingURL=error-handler.helpers.js.map
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.handleJWTError=handleJWTError,exports.handleJWTExpired=handleJWTExpired,exports.handlePrismaClientValidationError=handlePrismaClientValidationError,exports.handleAuthenticationError=handleAuthenticationError,exports.handleServerNotReachableError=handleServerNotReachableError,exports.handleConnectionTimeoutError=handleConnectionTimeoutError,exports.handleDatabaseNotFoundError=handleDatabaseNotFoundError,exports.handleEnvironmentVariableError=handleEnvironmentVariableError,exports.handleFieldValueTooLargeError=handleFieldValueTooLargeError,exports.handleRecordNotFoundError=handleRecordNotFoundError,exports.handleUniqueConstraintError=handleUniqueConstraintError,exports.handleForeignKeyConstraintError=handleForeignKeyConstraintError,exports.handleConstraintFailedError=handleConstraintFailedError,exports.handleInvalidFieldValueError=handleInvalidFieldValueError,exports.handleInvalidFieldProvidedError=handleInvalidFieldProvidedError,exports.handleDataValidationError=handleDataValidationError,exports.handleQueryParsingError=handleQueryParsingError,exports.handleInvalidQueryFormatError=handleInvalidQueryFormatError,exports.handleRawQueryExecutionError=handleRawQueryExecutionError,exports.handleNullConstraintViolationError=handleNullConstraintViolationError,exports.handleSchemaCreationFailedError=handleSchemaCreationFailedError,exports.handleMigrationAlreadyAppliedError=handleMigrationAlreadyAppliedError,exports.handleMigrationScriptFailedError=handleMigrationScriptFailedError,exports.handleVersionMismatchError=handleVersionMismatchError,exports.handleMigrationFileReadError=handleMigrationFileReadError,exports.handleSchemaDriftError=handleSchemaDriftError,exports.handleSchemaSyntaxError=handleSchemaSyntaxError,exports.handleClientTypeError=handleClientTypeError,exports.handleDynamicQueryError=handleDynamicQueryError,exports.handleRelationLoadingError=handleRelationLoadingError,exports.handleBinaryError=handleBinaryError,exports.handleNetworkError=handleNetworkError,exports.handleUnhandledPromiseError=handleUnhandledPromiseError,exports.handleDataTypeError=handleDataTypeError,exports.handleEmptyResultError=handleEmptyResultError,exports.handleNonExistingRecord=handleNonExistingRecord;const app_error_1=__importDefault(require("./app-error"));function handleJWTError(){return new app_error_1.default("Invalid token. Please log in again!",401)}function handleJWTExpired(){return new app_error_1.default("Your token has expired, Please log again!",401)}function handlePrismaClientValidationError(e){const r=e?.message.split(`
|
|
2
|
+
`)[e?.message.split(`
|
|
3
|
+
`).length-1];return new app_error_1.default(r,400)}function handleAuthenticationError(e){const r="Authentication failed against the database server. Please check your credentials.";return new app_error_1.default(r,401)}function handleServerNotReachableError(e){const r="The database server is not reachable. Verify your connection string or ensure the server is online.";return new app_error_1.default(r,503)}function handleConnectionTimeoutError(e){const r="Connection to the database timed out. Please check server performance or network connectivity.";return new app_error_1.default(r,504)}function handleDatabaseNotFoundError(e){const r="The specified database does not exist on the server.";return new app_error_1.default(r,404)}function handleEnvironmentVariableError(e){const n=`Missing or invalid environment variables: ${e?.missing||"unknown environment variables"}. Please check your configuration.`;return new app_error_1.default(n,500)}function handleFieldValueTooLargeError(e){const r=`The value for the field "${e?.meta?.field_name}" is too large. Please provide a smaller value.`;return new app_error_1.default(r,400)}function handleRecordNotFoundError(e){const r="No record found for the given query. Ensure the query parameters are correct.";return new app_error_1.default(r,404)}function handleUniqueConstraintError(e){const n=`Duplicate value detected for the unique field(s): ${e?.meta?.target||"unknown field"}. Please use a different value.`;return new app_error_1.default(n,409)}function handleForeignKeyConstraintError(e){const r="Foreign key constraint violation. Ensure that the referenced record exists.";return new app_error_1.default(r,400)}function handleConstraintFailedError(e){const n=`A database constraint "${e?.meta?.constraint||"unknown constraint"}" failed. Please review your input data.`;return new app_error_1.default(n,400)}function handleInvalidFieldValueError(e){const n=`Invalid value provided for the field "${e?.meta?.field_name||"unknown field"}". Please provide a valid value.`;return new app_error_1.default(n,400)}function handleInvalidFieldProvidedError(e){const n=`The field "${e?.meta?.field_name||"unknown field"}" has been provided with an invalid value. Check the data and try again.`;return new app_error_1.default(n,400)}function handleDataValidationError(e){const r="Data validation error occurred. Please ensure all fields meet the required criteria.";return new app_error_1.default(r,400)}function handleQueryParsingError(e){const n=`Failed to parse the query: "${e?.meta?.query||"unknown query"}". Check the syntax and structure.`;return new app_error_1.default(n,400)}function handleInvalidQueryFormatError(e){const n=`The query format is invalid: "${e?.meta?.query||"unknown query"}". Ensure the query adheres to the expected format.`;return new app_error_1.default(n,400)}function handleRawQueryExecutionError(e){const r="An error occurred during the execution of a raw query. Verify the query and try again.";return new app_error_1.default(r,500)}function handleNullConstraintViolationError(e){const n=`The field "${e?.meta?.field_name||"unknown field"}" cannot be null. Please provide a value.`;return new app_error_1.default(n,400)}function handleSchemaCreationFailedError(e){const r="Failed to create the database schema. Verify the schema definition and try again.";return new app_error_1.default(r,500)}function handleMigrationAlreadyAppliedError(e){const n=`The migration "${e?.meta?.migration||"unknown migration"}" has already been applied to the database.`;return new app_error_1.default(n,409)}function handleMigrationScriptFailedError(e){const n=`The migration script "${e?.meta?.migration||"unknown migration"}" failed. Review the script and resolve any issues.`;return new app_error_1.default(n,500)}function handleVersionMismatchError(e){const r="Version mismatch: The database schema and migration versions are inconsistent. Please check and resolve this issue.";return new app_error_1.default(r,400)}function handleMigrationFileReadError(e){const n=`Failed to read the migration file "${e?.meta?.migration_file||"unknown file"}". Ensure the file exists and is accessible.`;return new app_error_1.default(n,500)}function handleSchemaDriftError(e){const r="Schema drift detected: The database schema differs from the expected state. Run migrations or sync schema to resolve.";return new app_error_1.default(r,400)}function handleSchemaSyntaxError(e){const r="Syntax error in the schema file. Please check for typos or invalid syntax in your schema definition.";return new app_error_1.default(r,500)}function handleClientTypeError(e){const r="Type error, Ensure proper usage of methods and correct data types.";return new app_error_1.default(r,400)}function handleDynamicQueryError(e){const r="Error constructing or executing a dynamic query. Verify query structure and parameters.";return new app_error_1.default(r,400)}function handleRelationLoadingError(e){const n=`Error loading relation "${e?.meta?.relation||"unknown relation"}". Ensure it is correctly defined and included in the query.`;return new app_error_1.default(n,400)}function handleBinaryError(e){const n=`Error with Prisma binary "${e?.meta?.binary||"unknown binary"}". Ensure the binary is properly installed and compatible.`;return new app_error_1.default(n,500)}function handleNetworkError(e){const r="Network error: Unable to connect to the database or internet. Please check your network connection.";return new app_error_1.default(r,500)}function handleUnhandledPromiseError(e){const r="Unhandled promise rejection detected. Please check asynchronous code for proper error handling.";return new app_error_1.default(r,500)}function handleDataTypeError(e){const r=e?.meta?.field||"unknown field",n=e?.meta?.expected_type||"unknown type",t=`Invalid data type for field "${r}". Expected type: ${n}.`;return new app_error_1.default(t,400)}function handleEmptyResultError(e){const r="Empty result: No data was found for the given query. Ensure the query criteria are correct.";return new app_error_1.default(r,404)}function handleNonExistingRecord(e){const r=e?.meta?.cause||"Operation could not be completed as the required record was not found";return new app_error_1.default(r,404,e.meta||{},"PrismaRecordNotFound")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.helpers.js","sourceRoot":"","sources":["../../../../../src/modules/error-handler/utils/error-handler.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import AppError from \"./app-error\";\n\nexport interface PrismaError {\n code?: string; // Prisma-specific error code\n message: string; // Error message\n meta?: Record<string, any>; // Metadata provided by Prisma\n name?: string; // Error name\n}\n\nexport function handleJWTError() {\n return new AppError(\"Invalid token. Please log in again!\", 401);\n}\n\nexport function handleJWTExpired() {\n return new AppError(\"Your token has expired, Please log again!\", 401);\n}\n\nexport function handlePrismaClientValidationError(err: AppError) {\n const message = err?.message.split(\"\\n\")[err?.message.split(\"\\n\").length - 1];\n return new AppError(message, 400);\n}\n\nexport function handleAuthenticationError(err: AppError) {\n const message =\n \"Authentication failed against the database server. Please check your credentials.\";\n return new AppError(message, 401);\n}\n\nexport function handleServerNotReachableError(err: AppError) {\n const message =\n \"The database server is not reachable. Verify your connection string or ensure the server is online.\";\n return new AppError(message, 503);\n}\n\nexport function handleConnectionTimeoutError(err: AppError) {\n const message =\n \"Connection to the database timed out. Please check server performance or network connectivity.\";\n return new AppError(message, 504);\n}\n\nexport function handleDatabaseNotFoundError(err: AppError) {\n const message = \"The specified database does not exist on the server.\";\n return new AppError(message, 404);\n}\n\nexport function handleEnvironmentVariableError(err: AppError) {\n const missingVars = err?.missing || \"unknown environment variables\";\n const message = `Missing or invalid environment variables: ${missingVars}. Please check your configuration.`;\n return new AppError(message, 500);\n}\n\nexport function handleFieldValueTooLargeError(err: AppError) {\n const message = `The value for the field \"${err?.meta?.field_name}\" is too large. Please provide a smaller value.`;\n return new AppError(message, 400);\n}\n\nexport function handleRecordNotFoundError(err: AppError) {\n const message =\n \"No record found for the given query. Ensure the query parameters are correct.\";\n return new AppError(message, 404);\n}\n\nexport function handleUniqueConstraintError(err: AppError) {\n const field = err?.meta?.target || \"unknown field\";\n const message = `Duplicate value detected for the unique field(s): ${field}. Please use a different value.`;\n return new AppError(message, 409);\n}\n\nexport function handleForeignKeyConstraintError(err: AppError) {\n const message =\n \"Foreign key constraint violation. Ensure that the referenced record exists.\";\n return new AppError(message, 400);\n}\n\nexport function handleConstraintFailedError(err: AppError) {\n const constraint = err?.meta?.constraint || \"unknown constraint\";\n const message = `A database constraint \"${constraint}\" failed. Please review your input data.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidFieldValueError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `Invalid value provided for the field \"${fieldName}\". Please provide a valid value.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidFieldProvidedError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `The field \"${fieldName}\" has been provided with an invalid value. Check the data and try again.`;\n return new AppError(message, 400);\n}\n\nexport function handleDataValidationError(err: AppError) {\n const message =\n \"Data validation error occurred. Please ensure all fields meet the required criteria.\";\n return new AppError(message, 400);\n}\n\nexport function handleQueryParsingError(err: AppError) {\n const query = err?.meta?.query || \"unknown query\";\n const message = `Failed to parse the query: \"${query}\". Check the syntax and structure.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidQueryFormatError(err: AppError) {\n const query = err?.meta?.query || \"unknown query\";\n const message = `The query format is invalid: \"${query}\". Ensure the query adheres to the expected format.`;\n return new AppError(message, 400);\n}\n\nexport function handleRawQueryExecutionError(err: AppError) {\n const message =\n \"An error occurred during the execution of a raw query. Verify the query and try again.\";\n return new AppError(message, 500);\n}\n\nexport function handleNullConstraintViolationError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `The field \"${fieldName}\" cannot be null. Please provide a value.`;\n return new AppError(message, 400);\n}\n\nexport function handleSchemaCreationFailedError(err: AppError) {\n const message =\n \"Failed to create the database schema. Verify the schema definition and try again.\";\n return new AppError(message, 500);\n}\n\nexport function handleMigrationAlreadyAppliedError(err: AppError) {\n const migrationName = err?.meta?.migration || \"unknown migration\";\n const message = `The migration \"${migrationName}\" has already been applied to the database.`;\n return new AppError(message, 409);\n}\n\nexport function handleMigrationScriptFailedError(err: AppError) {\n const migrationName = err?.meta?.migration || \"unknown migration\";\n const message = `The migration script \"${migrationName}\" failed. Review the script and resolve any issues.`;\n return new AppError(message, 500);\n}\n\nexport function handleVersionMismatchError(err: AppError) {\n const message = `Version mismatch: The database schema and migration versions are inconsistent. Please check and resolve this issue.`;\n return new AppError(message, 400);\n}\n\nexport function handleMigrationFileReadError(err: AppError) {\n const migrationFile = err?.meta?.migration_file || \"unknown file\";\n const message = `Failed to read the migration file \"${migrationFile}\". Ensure the file exists and is accessible.`;\n return new AppError(message, 500);\n}\n\nexport function handleSchemaDriftError(err: AppError) {\n const message = `Schema drift detected: The database schema differs from the expected state. Run migrations or sync schema to resolve.`;\n return new AppError(message, 400);\n}\n\nexport function handleSchemaSyntaxError(err: AppError) {\n const message = `Syntax error in the schema file. Please check for typos or invalid syntax in your schema definition.`;\n return new AppError(message, 500);\n}\n\nexport function handleClientTypeError(err: AppError) {\n const message = `Type error, Ensure proper usage of methods and correct data types.`;\n return new AppError(message, 400);\n}\n\nexport function handleDynamicQueryError(err: AppError) {\n const message = `Error constructing or executing a dynamic query. Verify query structure and parameters.`;\n return new AppError(message, 400);\n}\n\nexport function handleRelationLoadingError(err: AppError) {\n const relation = err?.meta?.relation || \"unknown relation\";\n const message = `Error loading relation \"${relation}\". Ensure it is correctly defined and included in the query.`;\n return new AppError(message, 400);\n}\n\nexport function handleBinaryError(err: AppError) {\n const binaryName = err?.meta?.binary || \"unknown binary\";\n const message = `Error with Prisma binary \"${binaryName}\". Ensure the binary is properly installed and compatible.`;\n return new AppError(message, 500);\n}\n\nexport function handleNetworkError(err: AppError) {\n const message = `Network error: Unable to connect to the database or internet. Please check your network connection.`;\n return new AppError(message, 500);\n}\n\nexport function handleUnhandledPromiseError(err: AppError) {\n const message = `Unhandled promise rejection detected. Please check asynchronous code for proper error handling.`;\n return new AppError(message, 500);\n}\n\nexport function handleDataTypeError(err: AppError) {\n const field = err?.meta?.field || \"unknown field\";\n const expectedType = err?.meta?.expected_type || \"unknown type\";\n const message = `Invalid data type for field \"${field}\". Expected type: ${expectedType}.`;\n return new AppError(message, 400);\n}\n\nexport function handleEmptyResultError(err: AppError) {\n const message = `Empty result: No data was found for the given query. Ensure the query criteria are correct.`;\n return new AppError(message, 404);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"error-handler.helpers.js","sourceRoot":"","sources":["../../../../../src/modules/error-handler/utils/error-handler.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import AppError from \"./app-error\";\n\nexport interface PrismaError {\n code?: string; // Prisma-specific error code\n message: string; // Error message\n meta?: Record<string, any>; // Metadata provided by Prisma\n name?: string; // Error name\n}\n\nexport function handleJWTError() {\n return new AppError(\"Invalid token. Please log in again!\", 401);\n}\n\nexport function handleJWTExpired() {\n return new AppError(\"Your token has expired, Please log again!\", 401);\n}\n\nexport function handlePrismaClientValidationError(err: AppError) {\n const message = err?.message.split(\"\\n\")[err?.message.split(\"\\n\").length - 1];\n return new AppError(message, 400);\n}\n\nexport function handleAuthenticationError(err: AppError) {\n const message =\n \"Authentication failed against the database server. Please check your credentials.\";\n return new AppError(message, 401);\n}\n\nexport function handleServerNotReachableError(err: AppError) {\n const message =\n \"The database server is not reachable. Verify your connection string or ensure the server is online.\";\n return new AppError(message, 503);\n}\n\nexport function handleConnectionTimeoutError(err: AppError) {\n const message =\n \"Connection to the database timed out. Please check server performance or network connectivity.\";\n return new AppError(message, 504);\n}\n\nexport function handleDatabaseNotFoundError(err: AppError) {\n const message = \"The specified database does not exist on the server.\";\n return new AppError(message, 404);\n}\n\nexport function handleEnvironmentVariableError(err: AppError) {\n const missingVars = err?.missing || \"unknown environment variables\";\n const message = `Missing or invalid environment variables: ${missingVars}. Please check your configuration.`;\n return new AppError(message, 500);\n}\n\nexport function handleFieldValueTooLargeError(err: AppError) {\n const message = `The value for the field \"${err?.meta?.field_name}\" is too large. Please provide a smaller value.`;\n return new AppError(message, 400);\n}\n\nexport function handleRecordNotFoundError(err: AppError) {\n const message =\n \"No record found for the given query. Ensure the query parameters are correct.\";\n return new AppError(message, 404);\n}\n\nexport function handleUniqueConstraintError(err: AppError) {\n const field = err?.meta?.target || \"unknown field\";\n const message = `Duplicate value detected for the unique field(s): ${field}. Please use a different value.`;\n return new AppError(message, 409);\n}\n\nexport function handleForeignKeyConstraintError(err: AppError) {\n const message =\n \"Foreign key constraint violation. Ensure that the referenced record exists.\";\n return new AppError(message, 400);\n}\n\nexport function handleConstraintFailedError(err: AppError) {\n const constraint = err?.meta?.constraint || \"unknown constraint\";\n const message = `A database constraint \"${constraint}\" failed. Please review your input data.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidFieldValueError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `Invalid value provided for the field \"${fieldName}\". Please provide a valid value.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidFieldProvidedError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `The field \"${fieldName}\" has been provided with an invalid value. Check the data and try again.`;\n return new AppError(message, 400);\n}\n\nexport function handleDataValidationError(err: AppError) {\n const message =\n \"Data validation error occurred. Please ensure all fields meet the required criteria.\";\n return new AppError(message, 400);\n}\n\nexport function handleQueryParsingError(err: AppError) {\n const query = err?.meta?.query || \"unknown query\";\n const message = `Failed to parse the query: \"${query}\". Check the syntax and structure.`;\n return new AppError(message, 400);\n}\n\nexport function handleInvalidQueryFormatError(err: AppError) {\n const query = err?.meta?.query || \"unknown query\";\n const message = `The query format is invalid: \"${query}\". Ensure the query adheres to the expected format.`;\n return new AppError(message, 400);\n}\n\nexport function handleRawQueryExecutionError(err: AppError) {\n const message =\n \"An error occurred during the execution of a raw query. Verify the query and try again.\";\n return new AppError(message, 500);\n}\n\nexport function handleNullConstraintViolationError(err: AppError) {\n const fieldName = err?.meta?.field_name || \"unknown field\";\n const message = `The field \"${fieldName}\" cannot be null. Please provide a value.`;\n return new AppError(message, 400);\n}\n\nexport function handleSchemaCreationFailedError(err: AppError) {\n const message =\n \"Failed to create the database schema. Verify the schema definition and try again.\";\n return new AppError(message, 500);\n}\n\nexport function handleMigrationAlreadyAppliedError(err: AppError) {\n const migrationName = err?.meta?.migration || \"unknown migration\";\n const message = `The migration \"${migrationName}\" has already been applied to the database.`;\n return new AppError(message, 409);\n}\n\nexport function handleMigrationScriptFailedError(err: AppError) {\n const migrationName = err?.meta?.migration || \"unknown migration\";\n const message = `The migration script \"${migrationName}\" failed. Review the script and resolve any issues.`;\n return new AppError(message, 500);\n}\n\nexport function handleVersionMismatchError(err: AppError) {\n const message = `Version mismatch: The database schema and migration versions are inconsistent. Please check and resolve this issue.`;\n return new AppError(message, 400);\n}\n\nexport function handleMigrationFileReadError(err: AppError) {\n const migrationFile = err?.meta?.migration_file || \"unknown file\";\n const message = `Failed to read the migration file \"${migrationFile}\". Ensure the file exists and is accessible.`;\n return new AppError(message, 500);\n}\n\nexport function handleSchemaDriftError(err: AppError) {\n const message = `Schema drift detected: The database schema differs from the expected state. Run migrations or sync schema to resolve.`;\n return new AppError(message, 400);\n}\n\nexport function handleSchemaSyntaxError(err: AppError) {\n const message = `Syntax error in the schema file. Please check for typos or invalid syntax in your schema definition.`;\n return new AppError(message, 500);\n}\n\nexport function handleClientTypeError(err: AppError) {\n const message = `Type error, Ensure proper usage of methods and correct data types.`;\n return new AppError(message, 400);\n}\n\nexport function handleDynamicQueryError(err: AppError) {\n const message = `Error constructing or executing a dynamic query. Verify query structure and parameters.`;\n return new AppError(message, 400);\n}\n\nexport function handleRelationLoadingError(err: AppError) {\n const relation = err?.meta?.relation || \"unknown relation\";\n const message = `Error loading relation \"${relation}\". Ensure it is correctly defined and included in the query.`;\n return new AppError(message, 400);\n}\n\nexport function handleBinaryError(err: AppError) {\n const binaryName = err?.meta?.binary || \"unknown binary\";\n const message = `Error with Prisma binary \"${binaryName}\". Ensure the binary is properly installed and compatible.`;\n return new AppError(message, 500);\n}\n\nexport function handleNetworkError(err: AppError) {\n const message = `Network error: Unable to connect to the database or internet. Please check your network connection.`;\n return new AppError(message, 500);\n}\n\nexport function handleUnhandledPromiseError(err: AppError) {\n const message = `Unhandled promise rejection detected. Please check asynchronous code for proper error handling.`;\n return new AppError(message, 500);\n}\n\nexport function handleDataTypeError(err: AppError) {\n const field = err?.meta?.field || \"unknown field\";\n const expectedType = err?.meta?.expected_type || \"unknown type\";\n const message = `Invalid data type for field \"${field}\". Expected type: ${expectedType}.`;\n return new AppError(message, 400);\n}\n\nexport function handleEmptyResultError(err: AppError) {\n const message = `Empty result: No data was found for the given query. Ensure the query criteria are correct.`;\n return new AppError(message, 404);\n}\n\nexport function handleNonExistingRecord(err: {\n meta?: Record<string, any>;\n [x: string]: any;\n}) {\n const message =\n err?.meta?.cause ||\n `Operation could not be completed as the required record was not found`;\n return new AppError(message, 404, err.meta || {}, \"PrismaRecordNotFound\");\n}\n"]}
|
|
@@ -1,271 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const app_error_1 = __importDefault(require("../error-handler/utils/app-error"));
|
|
7
|
-
const file_upload_service_1 = require("./file-upload.service");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const catch_async_1 = __importDefault(require("../error-handler/utils/catch-async"));
|
|
11
|
-
const server_1 = require("../../server");
|
|
12
|
-
const file_upload_helpers_1 = require("./utils/helpers/file-upload.helpers");
|
|
13
|
-
const fs_helpers_1 = require("../../utils/helpers/fs.helpers");
|
|
14
|
-
const models_helpers_1 = require("../../utils/helpers/models.helpers");
|
|
15
|
-
class FileUploadController {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.uploadFile = (0, catch_async_1.default)(async (req, res, next) => {
|
|
18
|
-
this.middlewares = (0, models_helpers_1.getModelModules)("file-upload")?.middlewares || {};
|
|
19
|
-
const { fileType } = req.params;
|
|
20
|
-
const { format, width, height, resizeTo } = req.query;
|
|
21
|
-
const options = { format, width, height, resizeTo };
|
|
22
|
-
const { documentUploadService, fileUploadService, imageUploadService, videoUploadService, } = (0, file_upload_service_1.getFileUploadServices)();
|
|
23
|
-
const { fileUpload } = (0, server_1.getArkosConfig)();
|
|
24
|
-
const baseUploadDir = fileUpload?.baseUploadDir || "/uploads";
|
|
25
|
-
const uploadPath = path_1.default.resolve(process.cwd(), baseUploadDir, fileType);
|
|
26
|
-
try {
|
|
27
|
-
await (0, fs_helpers_1.accessAsync)(uploadPath);
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
await (0, fs_helpers_1.mkdirAsync)(uploadPath, { recursive: true });
|
|
31
|
-
}
|
|
32
|
-
let uploader;
|
|
33
|
-
switch (fileType) {
|
|
34
|
-
case "images":
|
|
35
|
-
uploader = imageUploadService;
|
|
36
|
-
break;
|
|
37
|
-
case "videos":
|
|
38
|
-
uploader = videoUploadService;
|
|
39
|
-
break;
|
|
40
|
-
case "documents":
|
|
41
|
-
uploader = documentUploadService;
|
|
42
|
-
break;
|
|
43
|
-
case "files":
|
|
44
|
-
uploader = fileUploadService;
|
|
45
|
-
break;
|
|
46
|
-
default:
|
|
47
|
-
return next(new app_error_1.default("Invalid file type", 400));
|
|
48
|
-
}
|
|
49
|
-
uploader.handleMultipleUpload()(req, res, async (err) => {
|
|
50
|
-
if (err)
|
|
51
|
-
return next(err);
|
|
52
|
-
let data;
|
|
53
|
-
if (req.files && Array.isArray(req.files) && req.files.length > 0) {
|
|
54
|
-
if (fileType === "images") {
|
|
55
|
-
data = await Promise.all(req.files.map((file) => (0, file_upload_helpers_1.processImage)(req, file.path, options)));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
data = await Promise.all(req.files.map((file) => (0, file_upload_helpers_1.processFile)(req, file.path)));
|
|
59
|
-
}
|
|
60
|
-
data = data.filter((url) => url !== null);
|
|
61
|
-
}
|
|
62
|
-
else if (req.file) {
|
|
63
|
-
if (fileType === "images") {
|
|
64
|
-
data = await (0, file_upload_helpers_1.processImage)(req, req.file.path, options);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
data = await (0, file_upload_helpers_1.processFile)(req, req.file.path);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return next(new app_error_1.default("No file uploaded", 400));
|
|
72
|
-
}
|
|
73
|
-
const jsonContent = {
|
|
74
|
-
success: true,
|
|
75
|
-
data,
|
|
76
|
-
message: Array.isArray(data)
|
|
77
|
-
? `${data.length} files uploaded successfully`
|
|
78
|
-
: "File uploaded successfully",
|
|
79
|
-
};
|
|
80
|
-
if (this.middlewares?.afterUploadFile) {
|
|
81
|
-
req.responseData = jsonContent;
|
|
82
|
-
req.responseStatus = 200;
|
|
83
|
-
return next();
|
|
84
|
-
}
|
|
85
|
-
res.status(200).json(jsonContent);
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
this.deleteFile = (0, catch_async_1.default)(async (req, res, next) => {
|
|
89
|
-
this.middlewares = (0, models_helpers_1.getModelModules)("file-upload")?.middlewares || {};
|
|
90
|
-
const { fileType, fileName } = req.params;
|
|
91
|
-
const { documentUploadService, fileUploadService, imageUploadService, videoUploadService, } = (0, file_upload_service_1.getFileUploadServices)();
|
|
92
|
-
let uploader;
|
|
93
|
-
switch (fileType) {
|
|
94
|
-
case "images":
|
|
95
|
-
uploader = imageUploadService;
|
|
96
|
-
break;
|
|
97
|
-
case "videos":
|
|
98
|
-
uploader = videoUploadService;
|
|
99
|
-
break;
|
|
100
|
-
case "documents":
|
|
101
|
-
uploader = documentUploadService;
|
|
102
|
-
break;
|
|
103
|
-
case "files":
|
|
104
|
-
uploader = fileUploadService;
|
|
105
|
-
break;
|
|
106
|
-
default:
|
|
107
|
-
return next(new app_error_1.default("Invalid file type", 400));
|
|
108
|
-
}
|
|
109
|
-
try {
|
|
110
|
-
const { fileUpload } = (0, server_1.getArkosConfig)();
|
|
111
|
-
const baseUploadRoute = fileUpload?.baseRoute || "/api/uploads";
|
|
112
|
-
const urlPattern = new RegExp(`${baseUploadRoute}/${fileType}/${fileName}`);
|
|
113
|
-
const isExpectedUrlPattern = urlPattern.test(req.originalUrl);
|
|
114
|
-
if (isExpectedUrlPattern) {
|
|
115
|
-
const fullUrl = `${req.protocol}://${req.get("host")}${req.originalUrl}`;
|
|
116
|
-
await uploader.deleteFileByUrl(fullUrl);
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
await uploader.deleteFileByName(fileName, fileType);
|
|
120
|
-
}
|
|
121
|
-
if (this.middlewares.afterDeleteFile) {
|
|
122
|
-
req.responseStatus = 204;
|
|
123
|
-
return next();
|
|
124
|
-
}
|
|
125
|
-
res.status(204).json();
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
if (error instanceof app_error_1.default) {
|
|
129
|
-
return next(error);
|
|
130
|
-
}
|
|
131
|
-
return next(new app_error_1.default("File not found", 404));
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
this.updateFile = (0, catch_async_1.default)(async (req, res, next) => {
|
|
135
|
-
this.middlewares = (0, models_helpers_1.getModelModules)("file-upload")?.middlewares || {};
|
|
136
|
-
const { fileType, fileName } = req.params;
|
|
137
|
-
const { format, width, height, resizeTo } = req.query;
|
|
138
|
-
const options = { format, width, height, resizeTo };
|
|
139
|
-
const { documentUploadService, fileUploadService, imageUploadService, videoUploadService, } = (0, file_upload_service_1.getFileUploadServices)();
|
|
140
|
-
const { fileUpload } = (0, server_1.getArkosConfig)();
|
|
141
|
-
const baseUploadDir = fileUpload?.baseUploadDir || "/uploads";
|
|
142
|
-
const uploadPath = path_1.default.resolve(process.cwd(), baseUploadDir, fileType);
|
|
143
|
-
try {
|
|
144
|
-
await (0, fs_helpers_1.accessAsync)(uploadPath);
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
await (0, fs_helpers_1.mkdirAsync)(uploadPath, { recursive: true });
|
|
148
|
-
}
|
|
149
|
-
let uploader;
|
|
150
|
-
switch (fileType) {
|
|
151
|
-
case "images":
|
|
152
|
-
uploader = imageUploadService;
|
|
153
|
-
break;
|
|
154
|
-
case "videos":
|
|
155
|
-
uploader = videoUploadService;
|
|
156
|
-
break;
|
|
157
|
-
case "documents":
|
|
158
|
-
uploader = documentUploadService;
|
|
159
|
-
break;
|
|
160
|
-
case "files":
|
|
161
|
-
uploader = fileUploadService;
|
|
162
|
-
break;
|
|
163
|
-
default:
|
|
164
|
-
return next(new app_error_1.default("Invalid file type", 400));
|
|
165
|
-
}
|
|
166
|
-
uploader.handleMultipleUpload()(req, res, async (err) => {
|
|
167
|
-
if (err)
|
|
168
|
-
return next(err);
|
|
169
|
-
if (!req.file &&
|
|
170
|
-
(!req.files || !Array.isArray(req.files) || req.files.length === 0)) {
|
|
171
|
-
return next(new app_error_1.default("No new file uploaded", 400));
|
|
172
|
-
}
|
|
173
|
-
if (fileName && fileName.trim() !== "") {
|
|
174
|
-
try {
|
|
175
|
-
const baseUploadRoute = fileUpload?.baseRoute || "/api/uploads";
|
|
176
|
-
const urlPattern = new RegExp(`${baseUploadRoute}/${fileType}/${fileName}`);
|
|
177
|
-
const isExpectedUrlPattern = urlPattern.test(req.originalUrl);
|
|
178
|
-
if (isExpectedUrlPattern) {
|
|
179
|
-
const oldFileUrl = `${req.protocol}://${req.get("host")}${req.originalUrl}`;
|
|
180
|
-
await uploader.deleteFileByUrl(oldFileUrl);
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
await uploader.deleteFileByName(fileName, fileType);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
console.warn(`Could not delete old file: ${fileName}`, error);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
let data;
|
|
191
|
-
if (req.files && Array.isArray(req.files) && req.files.length > 0) {
|
|
192
|
-
if (fileType === "images") {
|
|
193
|
-
data = await Promise.all(req.files.map((file) => (0, file_upload_helpers_1.processImage)(req, file.path, options)));
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
data = await Promise.all(req.files.map((file) => (0, file_upload_helpers_1.processFile)(req, file.path)));
|
|
197
|
-
}
|
|
198
|
-
data = data.filter((url) => url !== null);
|
|
199
|
-
}
|
|
200
|
-
else if (req.file) {
|
|
201
|
-
if (fileType === "images") {
|
|
202
|
-
data = await (0, file_upload_helpers_1.processImage)(req, req.file.path, options);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
data = await (0, file_upload_helpers_1.processFile)(req, req.file.path);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
const jsonContent = {
|
|
209
|
-
success: true,
|
|
210
|
-
data,
|
|
211
|
-
message: Array.isArray(data)
|
|
212
|
-
? fileName && fileName.trim() !== ""
|
|
213
|
-
? `File updated successfully. ${data.length} new files uploaded`
|
|
214
|
-
: `${data.length} files uploaded successfully`
|
|
215
|
-
: fileName && fileName.trim() !== ""
|
|
216
|
-
? "File updated successfully"
|
|
217
|
-
: "File uploaded successfully",
|
|
218
|
-
};
|
|
219
|
-
if (this.middlewares.afterUpdateFile) {
|
|
220
|
-
req.responseData = jsonContent;
|
|
221
|
-
req.responseStatus = 200;
|
|
222
|
-
return next();
|
|
223
|
-
}
|
|
224
|
-
res.status(200).json(jsonContent);
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
this.streamFile = (0, catch_async_1.default)(async (req, res, next) => {
|
|
228
|
-
const { fileName, fileType } = req.params;
|
|
229
|
-
const filePath = path_1.default.join(".", "uploads", fileType, fileName);
|
|
230
|
-
try {
|
|
231
|
-
await (0, fs_helpers_1.accessAsync)(filePath);
|
|
232
|
-
}
|
|
233
|
-
catch (err) {
|
|
234
|
-
throw new app_error_1.default("File not found", 404);
|
|
235
|
-
}
|
|
236
|
-
const fileStat = await (0, fs_helpers_1.statAsync)(filePath);
|
|
237
|
-
const fileSize = fileStat.size;
|
|
238
|
-
const range = req.headers.range;
|
|
239
|
-
if (range) {
|
|
240
|
-
const [partialStart, partialEnd] = range
|
|
241
|
-
.replace(/bytes=/, "")
|
|
242
|
-
.split("-");
|
|
243
|
-
const start = parseInt(partialStart, 10) || 0;
|
|
244
|
-
const end = partialEnd ? parseInt(partialEnd, 10) : fileSize - 1;
|
|
245
|
-
if (start >= fileSize || end >= fileSize) {
|
|
246
|
-
res.status(416).json({ error: "Range Not Satisfiable" });
|
|
247
|
-
return;
|
|
248
|
-
}
|
|
249
|
-
res.writeHead(206, {
|
|
250
|
-
"Content-Range": `bytes ${start}-${end}/${fileSize}`,
|
|
251
|
-
"Accept-Ranges": "bytes",
|
|
252
|
-
"Content-Length": end - start + 1,
|
|
253
|
-
"Content-Type": "application/octet-stream",
|
|
254
|
-
"Content-Disposition": `inline; filename="${fileName}"`,
|
|
255
|
-
});
|
|
256
|
-
fs_1.default.createReadStream(filePath, { start, end }).pipe(res);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
res.writeHead(200, {
|
|
260
|
-
"Content-Length": fileSize,
|
|
261
|
-
"Content-Type": "application/octet-stream",
|
|
262
|
-
"Content-Disposition": `inline; filename="${fileName}"`,
|
|
263
|
-
});
|
|
264
|
-
fs_1.default.createReadStream(filePath).pipe(res);
|
|
265
|
-
}
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
const fileUploadController = new FileUploadController();
|
|
270
|
-
exports.default = fileUploadController;
|
|
271
|
-
//# sourceMappingURL=file-upload.controller.js.map
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(v){return v&&v.__esModule?v:{default:v}};Object.defineProperty(exports,"__esModule",{value:!0});const app_error_1=__importDefault(require("../error-handler/utils/app-error")),file_upload_service_1=require("./file-upload.service"),path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),catch_async_1=__importDefault(require("../error-handler/utils/catch-async")),server_1=require("../../server"),file_upload_helpers_1=require("./utils/helpers/file-upload.helpers"),fs_helpers_1=require("../../utils/helpers/fs.helpers"),models_helpers_1=require("../../utils/helpers/models.helpers");class FileUploadController{constructor(){this.uploadFile=(0,catch_async_1.default)(async(e,i,s)=>{this.middlewares=(0,models_helpers_1.getModelModules)("file-upload")?.middlewares||{};const{fileType:t}=e.params,{format:a,width:p,height:w,resizeTo:n}=e.query,f={format:a,width:p,height:w,resizeTo:n},{documentUploadService:l,fileUploadService:c,imageUploadService:u,videoUploadService:h}=(0,file_upload_service_1.getFileUploadServices)(),{fileUpload:F}=(0,server_1.getArkosConfig)(),U=F?.baseUploadDir||"/uploads",b=path_1.default.resolve(process.cwd(),U,t);try{await(0,fs_helpers_1.accessAsync)(b)}catch{await(0,fs_helpers_1.mkdirAsync)(b,{recursive:!0})}let y;switch(t){case"images":y=u;break;case"videos":y=h;break;case"documents":y=l;break;case"files":y=c;break;default:return s(new app_error_1.default("Invalid file type",400))}y.handleMultipleUpload()(e,i,async d=>{if(d)return s(d);let o;if(e.files&&Array.isArray(e.files)&&e.files.length>0)t==="images"?o=await Promise.all(e.files.map(g=>(0,file_upload_helpers_1.processImage)(e,g.path,f))):o=await Promise.all(e.files.map(g=>(0,file_upload_helpers_1.processFile)(e,g.path))),o=o.filter(g=>g!==null);else if(e.file)t==="images"?o=await(0,file_upload_helpers_1.processImage)(e,e.file.path,f):o=await(0,file_upload_helpers_1.processFile)(e,e.file.path);else return s(new app_error_1.default("No file uploaded",400));const r={success:!0,data:o,message:Array.isArray(o)?`${o.length} files uploaded successfully`:"File uploaded successfully"};if(this.middlewares?.afterUploadFile)return e.responseData=r,e.responseStatus=200,s();i.status(200).json(r)})}),this.deleteFile=(0,catch_async_1.default)(async(e,i,s)=>{this.middlewares=(0,models_helpers_1.getModelModules)("file-upload")?.middlewares||{};const{fileType:t,fileName:a}=e.params,{documentUploadService:p,fileUploadService:w,imageUploadService:n,videoUploadService:f}=(0,file_upload_service_1.getFileUploadServices)();let l;switch(t){case"images":l=n;break;case"videos":l=f;break;case"documents":l=p;break;case"files":l=w;break;default:return s(new app_error_1.default("Invalid file type",400))}try{const{fileUpload:c}=(0,server_1.getArkosConfig)(),u=c?.baseRoute||"/api/uploads";if(new RegExp(`${u}/${t}/${a}`).test(e.originalUrl)){const U=`${e.protocol}://${e.get("host")}${e.originalUrl}`;await l.deleteFileByUrl(U)}else await l.deleteFileByName(a,t);if(this.middlewares.afterDeleteFile)return e.responseStatus=204,s();i.status(204).json()}catch(c){return c instanceof app_error_1.default?s(c):s(new app_error_1.default("File not found",404))}}),this.updateFile=(0,catch_async_1.default)(async(e,i,s)=>{this.middlewares=(0,models_helpers_1.getModelModules)("file-upload")?.middlewares||{};const{fileType:t,fileName:a}=e.params,{format:p,width:w,height:n,resizeTo:f}=e.query,l={format:p,width:w,height:n,resizeTo:f},{documentUploadService:c,fileUploadService:u,imageUploadService:h,videoUploadService:F}=(0,file_upload_service_1.getFileUploadServices)(),{fileUpload:U}=(0,server_1.getArkosConfig)(),b=U?.baseUploadDir||"/uploads",y=path_1.default.resolve(process.cwd(),b,t);try{await(0,fs_helpers_1.accessAsync)(y)}catch{await(0,fs_helpers_1.mkdirAsync)(y,{recursive:!0})}let d;switch(t){case"images":d=h;break;case"videos":d=F;break;case"documents":d=c;break;case"files":d=u;break;default:return s(new app_error_1.default("Invalid file type",400))}d.handleMultipleUpload()(e,i,async o=>{if(o)return s(o);if(!e.file&&(!e.files||!Array.isArray(e.files)||e.files.length===0))return s(new app_error_1.default("No new file uploaded",400));if(a&&a.trim()!=="")try{const m=U?.baseRoute||"/api/uploads";if(new RegExp(`${m}/${t}/${a}`).test(e.originalUrl)){const S=`${e.protocol}://${e.get("host")}${e.originalUrl}`;await d.deleteFileByUrl(S)}else await d.deleteFileByName(a,t)}catch(m){console.warn(`Could not delete old file: ${a}`,m)}let r;e.files&&Array.isArray(e.files)&&e.files.length>0?(t==="images"?r=await Promise.all(e.files.map(m=>(0,file_upload_helpers_1.processImage)(e,m.path,l))):r=await Promise.all(e.files.map(m=>(0,file_upload_helpers_1.processFile)(e,m.path))),r=r.filter(m=>m!==null)):e.file&&(t==="images"?r=await(0,file_upload_helpers_1.processImage)(e,e.file.path,l):r=await(0,file_upload_helpers_1.processFile)(e,e.file.path));const g={success:!0,data:r,message:Array.isArray(r)?a&&a.trim()!==""?`File updated successfully. ${r.length} new files uploaded`:`${r.length} files uploaded successfully`:a&&a.trim()!==""?"File updated successfully":"File uploaded successfully"};if(this.middlewares.afterUpdateFile)return e.responseData=g,e.responseStatus=200,s();i.status(200).json(g)})}),this.streamFile=(0,catch_async_1.default)(async(e,i,s)=>{const{fileName:t,fileType:a}=e.params,p=path_1.default.join(".","uploads",a,t);try{await(0,fs_helpers_1.accessAsync)(p)}catch{throw new app_error_1.default("File not found",404)}const n=(await(0,fs_helpers_1.statAsync)(p)).size,f=e.headers.range;if(f){const[l,c]=f.replace(/bytes=/,"").split("-"),u=parseInt(l,10)||0,h=c?parseInt(c,10):n-1;if(u>=n||h>=n){i.status(416).json({error:"Range Not Satisfiable"});return}i.writeHead(206,{"Content-Range":`bytes ${u}-${h}/${n}`,"Accept-Ranges":"bytes","Content-Length":h-u+1,"Content-Type":"application/octet-stream","Content-Disposition":`inline; filename="${t}"`}),fs_1.default.createReadStream(p,{start:u,end:h}).pipe(i)}else i.writeHead(200,{"Content-Length":n,"Content-Type":"application/octet-stream","Content-Disposition":`inline; filename="${t}"`}),fs_1.default.createReadStream(p).pipe(i)})}}const fileUploadController=new FileUploadController;exports.default=fileUploadController;
|
|
@@ -1,56 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFileUploadRouter = getFileUploadRouter;
|
|
7
|
-
const express_1 = require("express");
|
|
8
|
-
const models_helpers_1 = require("../../utils/helpers/models.helpers");
|
|
9
|
-
const auth_service_1 = __importDefault(require("../auth/auth.service"));
|
|
10
|
-
const file_upload_controller_1 = __importDefault(require("./file-upload.controller"));
|
|
11
|
-
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const express_2 = __importDefault(require("express"));
|
|
13
|
-
const deepmerge_helper_1 = __importDefault(require("../../utils/helpers/deepmerge.helper"));
|
|
14
|
-
const base_middlewares_1 = require("../base/base.middlewares");
|
|
15
|
-
const router = (0, express_1.Router)();
|
|
16
|
-
async function getFileUploadRouter({ fileUpload }) {
|
|
17
|
-
const modelModules = await (0, models_helpers_1.importPrismaModelModules)("file-upload");
|
|
18
|
-
let { middlewares = {}, authConfigs = {} } = {};
|
|
19
|
-
if (modelModules) {
|
|
20
|
-
({ middlewares = {}, authConfigs = {} } = modelModules);
|
|
21
|
-
}
|
|
22
|
-
let basePathname = fileUpload?.baseRoute || "/api/uploads/";
|
|
23
|
-
if (!basePathname.startsWith("/"))
|
|
24
|
-
basePathname = "/" + basePathname;
|
|
25
|
-
if (!basePathname.endsWith("/"))
|
|
26
|
-
basePathname = basePathname + "/";
|
|
27
|
-
router.get(`${basePathname}*`, auth_service_1.default.handleAuthenticationControl("View", authConfigs.authenticationControl), auth_service_1.default.handleAccessControl("View", "file-upload", authConfigs.accessControl), ...(middlewares?.beforeFindFile ? [middlewares?.beforeFindFile] : []), (req, res, next) => {
|
|
28
|
-
req.url = req.url.replace(basePathname, "/");
|
|
29
|
-
next();
|
|
30
|
-
}, express_2.default.static(path_1.default.resolve(process.cwd(), fileUpload?.baseUploadDir || "uploads"), (0, deepmerge_helper_1.default)({
|
|
31
|
-
maxAge: "1y",
|
|
32
|
-
etag: true,
|
|
33
|
-
lastModified: true,
|
|
34
|
-
dotfiles: "ignore",
|
|
35
|
-
fallthrough: true,
|
|
36
|
-
index: false,
|
|
37
|
-
cacheControl: true,
|
|
38
|
-
}, fileUpload?.expressStaticOptions || {})));
|
|
39
|
-
router.post(`${basePathname}:fileType`, auth_service_1.default.handleAuthenticationControl("Create", authConfigs.authenticationControl), auth_service_1.default.handleAccessControl("Create", "file-upload", authConfigs.accessControl), middlewares?.beforeUploadFile || file_upload_controller_1.default.uploadFile, middlewares?.beforeUploadFile
|
|
40
|
-
? file_upload_controller_1.default.uploadFile
|
|
41
|
-
: middlewares?.afterUploadFile || base_middlewares_1.sendResponse, middlewares?.beforeUploadFile && middlewares?.afterUploadFile
|
|
42
|
-
? middlewares?.afterUploadFile
|
|
43
|
-
: base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
|
|
44
|
-
router.patch(`${basePathname}:fileType/:fileName`, auth_service_1.default.handleAuthenticationControl("Update", authConfigs.authenticationControl), auth_service_1.default.handleAccessControl("Update", "file-upload", authConfigs.accessControl), middlewares?.beforeUpdateFile || file_upload_controller_1.default.updateFile, middlewares?.beforeUpdateFile
|
|
45
|
-
? file_upload_controller_1.default.updateFile
|
|
46
|
-
: middlewares?.afterUpdateFile || base_middlewares_1.sendResponse, middlewares?.beforeUpdateFile && middlewares?.afterUpdateFile
|
|
47
|
-
? middlewares?.afterUpdateFile
|
|
48
|
-
: base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
|
|
49
|
-
router.delete(`${basePathname}:fileType/:fileName`, auth_service_1.default.handleAuthenticationControl("Delete", authConfigs.authenticationControl), auth_service_1.default.handleAccessControl("Delete", "file-upload", authConfigs.accessControl), middlewares?.beforeDeleteFile || file_upload_controller_1.default.deleteFile, middlewares?.beforeDeleteFile
|
|
50
|
-
? file_upload_controller_1.default.deleteFile
|
|
51
|
-
: middlewares?.afterDeleteFile || base_middlewares_1.sendResponse, middlewares?.beforeDeleteFile && middlewares?.afterDeleteFile
|
|
52
|
-
? middlewares?.afterDeleteFile
|
|
53
|
-
: base_middlewares_1.sendResponse, base_middlewares_1.sendResponse);
|
|
54
|
-
return router;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=file-upload.router.js.map
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFileUploadRouter=getFileUploadRouter;const express_1=require("express"),models_helpers_1=require("../../utils/helpers/models.helpers"),auth_service_1=__importDefault(require("../auth/auth.service")),file_upload_controller_1=__importDefault(require("./file-upload.controller")),path_1=__importDefault(require("path")),express_2=__importDefault(require("express")),deepmerge_helper_1=__importDefault(require("../../utils/helpers/deepmerge.helper")),base_middlewares_1=require("../base/base.middlewares"),routers_helpers_1=require("../../utils/helpers/routers.helpers"),file_upload_helpers_1=require("./utils/helpers/file-upload.helpers"),router=(0,express_1.Router)();async function getFileUploadRouter(r){const{fileUpload:s}=r,o=await(0,models_helpers_1.importPrismaModelModules)("file-upload",r);let{middlewares:l={},authConfigs:t={}}={};o&&({middlewares:l={},authConfigs:t={}}=o);let e=s?.baseRoute||"/api/uploads/";return e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e=e+"/"),router.get(`${e}*`,auth_service_1.default.handleAuthenticationControl("View",t.authenticationControl),auth_service_1.default.handleAccessControl("View","file-upload",t.accessControl),...(0,routers_helpers_1.processMiddleware)(l?.beforeFindFile),file_upload_helpers_1.adjustRequestUrl,express_2.default.static(path_1.default.resolve(process.cwd(),s?.baseUploadDir||"uploads"),(0,deepmerge_helper_1.default)({maxAge:"1y",etag:!0,lastModified:!0,dotfiles:"ignore",fallthrough:!0,index:!1,cacheControl:!0},s?.expressStaticOptions||{}))),router.post(`${e}:fileType`,auth_service_1.default.handleAuthenticationControl("Create",t.authenticationControl),auth_service_1.default.handleAccessControl("Create","file-upload",t.accessControl),...(0,routers_helpers_1.processMiddleware)(l?.beforeUploadFile),file_upload_controller_1.default.uploadFile,...(0,routers_helpers_1.processMiddleware)(l?.afterUploadFile),base_middlewares_1.sendResponse),router.patch(`${e}:fileType/:fileName`,auth_service_1.default.handleAuthenticationControl("Update",t.authenticationControl),auth_service_1.default.handleAccessControl("Update","file-upload",t.accessControl),...(0,routers_helpers_1.processMiddleware)(l?.beforeUpdateFile),file_upload_controller_1.default.updateFile,...(0,routers_helpers_1.processMiddleware)(l?.afterUpdateFile),base_middlewares_1.sendResponse),router.delete(`${e}:fileType/:fileName`,auth_service_1.default.handleAuthenticationControl("Delete",t.authenticationControl),auth_service_1.default.handleAccessControl("Delete","file-upload",t.accessControl),...(0,routers_helpers_1.processMiddleware)(l?.beforeDeleteFile),file_upload_controller_1.default.deleteFile,...(0,routers_helpers_1.processMiddleware)(l?.afterDeleteFile),base_middlewares_1.sendResponse),router}
|