arkos 1.4.0-canary.7 → 1.4.0-canary.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +2 -5
- package/dist/cjs/app.js +104 -72
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/index.js.map +1 -1
- package/dist/cjs/exports/services/index.js +6 -1
- package/dist/cjs/exports/services/index.js.map +1 -1
- package/dist/cjs/modules/auth/auth.controller.js +31 -40
- package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
- package/dist/cjs/modules/auth/auth.router.js +29 -21
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +34 -10
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +16 -10
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/cjs/modules/base/base.controller.js +6 -4
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +102 -19
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.router.js +4 -3
- package/dist/cjs/modules/base/base.router.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +68 -66
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +17 -40
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +22 -6
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/cjs/modules/debugger/debugger.service.js +11 -4
- package/dist/cjs/modules/debugger/debugger.service.js.map +1 -1
- package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +1 -1
- package/dist/cjs/modules/debugger/utils/loaded-components-logger.js.map +1 -1
- package/dist/cjs/modules/email/email.service.js +24 -27
- package/dist/cjs/modules/email/email.service.js.map +1 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +22 -15
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +14 -3
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +9 -6
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +13 -5
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +38 -48
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +134 -0
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +10 -5
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +11 -5
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +53 -0
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +419 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -6
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +204 -0
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/cjs/server.js +33 -36
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/new-arkos-config.js +3 -0
- package/dist/cjs/types/new-arkos-config.js.map +1 -0
- package/dist/cjs/types/router-config.js.map +1 -1
- package/dist/cjs/utils/arkos-router/index.js +89 -37
- package/dist/cjs/utils/arkos-router/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +8 -7
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +3 -0
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +1 -0
- package/dist/cjs/utils/arkos-router/types/upload-config.js +3 -0
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +1 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +24 -6
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +232 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
- package/dist/cjs/utils/cli/build.js +9 -13
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +7 -7
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/export-auth-action.js +78 -0
- package/dist/cjs/utils/cli/export-auth-action.js.map +1 -0
- package/dist/cjs/utils/cli/generate.js +28 -12
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +32 -18
- package/dist/cjs/utils/cli/index.js.map +1 -1
- package/dist/cjs/utils/cli/prisma-generate.js +2 -2
- package/dist/cjs/utils/cli/prisma-generate.js.map +1 -1
- package/dist/cjs/utils/cli/start.js +12 -52
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +58 -0
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
- package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +4 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +8 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +14 -5
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -1
- package/dist/cjs/utils/define-config.js +2 -0
- package/dist/cjs/utils/define-config.js.map +1 -0
- package/dist/cjs/utils/dotenv.helpers.js +2 -1
- package/dist/cjs/utils/dotenv.helpers.js.map +1 -1
- package/dist/cjs/utils/dynamic-loader.js +3 -2
- package/dist/cjs/utils/dynamic-loader.js.map +1 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +28 -4
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +45 -0
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +1 -0
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +135 -46
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -4
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +55 -4
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +20 -31
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -4
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/cjs/utils/sheu.js.map +1 -1
- package/dist/esm/app.js +104 -72
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -1
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +32 -41
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +32 -24
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +34 -10
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +12 -9
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +6 -4
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +102 -18
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +4 -3
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +68 -66
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +19 -41
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +22 -6
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/debugger/debugger.service.js +11 -4
- package/dist/esm/modules/debugger/debugger.service.js.map +1 -1
- package/dist/esm/modules/debugger/utils/loaded-components-logger.js +1 -1
- package/dist/esm/modules/debugger/utils/loaded-components-logger.js.map +1 -1
- package/dist/esm/modules/email/email.service.js +24 -27
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +22 -12
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +14 -3
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.controller.js +9 -6
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +13 -5
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +37 -47
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js +131 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-extensions.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +9 -5
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/esm/modules/swagger/swagger.router.js +11 -5
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js +48 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +10 -10
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +413 -0
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +3 -3
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +3 -5
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +4 -4
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +6 -8
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +199 -0
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +9 -9
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/esm/server.js +31 -34
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js +2 -0
- package/dist/esm/types/new-arkos-config.js.map +1 -0
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +89 -37
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-validator.js +8 -7
- package/dist/esm/utils/arkos-router/route-config-validator.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js +2 -0
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -0
- package/dist/esm/utils/arkos-router/types/upload-config.js +2 -0
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +23 -5
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +227 -0
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -0
- package/dist/esm/utils/cli/build.js +9 -13
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +7 -7
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +72 -0
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -0
- package/dist/esm/utils/cli/generate.js +28 -12
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +32 -18
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +2 -2
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +12 -52
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +53 -0
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +38 -13
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +44 -17
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/{controller-template.js → generate-controller-template.js} +12 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +1 -34
- package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +97 -265
- package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +16 -16
- package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +4 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +8 -32
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +3 -5
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/create-schema-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod/update-schema-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js +11 -5
- package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
- package/dist/esm/utils/define-config.js +2 -0
- package/dist/esm/utils/define-config.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +2 -1
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +4 -3
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +28 -4
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +38 -0
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js +134 -46
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +1 -4
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +53 -4
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +20 -31
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -4
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/sheu.js.map +1 -1
- package/dist/types/app.d.ts +2 -2
- package/dist/types/exports/index.d.ts +3 -2
- package/dist/types/exports/services/index.d.ts +2 -1
- package/dist/types/modules/auth/auth.controller.d.ts +2 -2
- package/dist/types/modules/auth/auth.router.d.ts +2 -3
- package/dist/types/modules/auth/auth.service.d.ts +6 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -0
- package/dist/types/modules/base/base.middlewares.d.ts +1 -2
- package/dist/types/modules/base/base.router.d.ts +2 -2
- package/dist/types/modules/base/base.service.d.ts +2 -1
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +2 -4
- package/dist/types/modules/debugger/debugger.service.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +1 -1
- package/dist/types/modules/file-upload/file-upload.router.d.ts +2 -2
- package/dist/types/modules/file-upload/file-upload.service.d.ts +24 -2
- package/dist/types/modules/file-upload/utils/helpers/file-extensions.d.ts +3 -0
- package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/class-validator-to-json-schema.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -2
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +2 -45
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +17 -0
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +3 -3
- package/dist/types/server.d.ts +4 -6
- package/dist/types/types/arkos-config.d.ts +4 -181
- package/dist/types/types/index.d.ts +5 -4
- package/dist/types/types/new-arkos-config.d.ts +167 -0
- package/dist/types/types/router-config.d.ts +16 -23
- package/dist/types/utils/arkos-router/types/index.d.ts +39 -9
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +35 -0
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +21 -0
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +13 -0
- package/dist/types/utils/cli/export-auth-action.d.ts +4 -0
- package/dist/types/utils/cli/generate.d.ts +2 -1
- package/dist/types/utils/cli/utils/runtime-cli-commander.d.ts +11 -0
- package/dist/types/utils/cli/utils/watermark-stamper.d.ts +3 -3
- package/dist/types/utils/define-config.d.ts +0 -0
- package/dist/types/utils/features/port-and-host-allocator.d.ts +4 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/routers.helpers.d.ts +8 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +1 -1
- package/package.json +3 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +0 -1
- /package/dist/types/utils/cli/utils/template-generator/templates/{controller-template.d.ts → generate-controller-template.d.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Router } from "express";
|
|
2
|
-
import { ArkosConfig } from "../../types/arkos-config";
|
|
3
2
|
import express from "express";
|
|
3
|
+
import { ArkosConfig } from "../../exports";
|
|
4
4
|
export declare function getSwaggerRouter(arkosConfig: ArkosConfig, app: express.Express): Promise<Router>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export default function classValidatorToJsonSchema(decoratedClass: new (...args: any[]) => object): any;
|
|
2
|
+
export declare function resolveReferences(schema: any, allSchemas: Record<string, any>, visited?: Set<string>): any;
|
|
3
|
+
export declare function extractSchemaName(ref: string): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import { ArkosConfig } from "../../../../exports";
|
|
3
|
-
export declare const getSchemaMode: (action: string, arkosConfig: ArkosConfig) =>
|
|
4
|
-
export default function getAuthenticationJsonSchemaPaths(arkosConfig: ArkosConfig):
|
|
3
|
+
export declare const getSchemaMode: (action: string, arkosConfig: ArkosConfig) => "prisma" | "zod" | "class-validator";
|
|
4
|
+
export default function getAuthenticationJsonSchemaPaths(arkosConfig: ArkosConfig): OpenAPIV3.PathsObject<{}, {}>;
|
|
@@ -1,46 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
endpoint?: string;
|
|
5
|
-
mode: "prisma" | "class-validator" | "zod";
|
|
6
|
-
strict?: boolean;
|
|
7
|
-
options?: {
|
|
8
|
-
definition?: {
|
|
9
|
-
openapi?: string;
|
|
10
|
-
info?: {
|
|
11
|
-
title?: string;
|
|
12
|
-
version?: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
};
|
|
15
|
-
servers?: {
|
|
16
|
-
url: string;
|
|
17
|
-
description?: string;
|
|
18
|
-
}[];
|
|
19
|
-
paths?: OpenAPIV3.PathsObject;
|
|
20
|
-
termsOfService?: string;
|
|
21
|
-
contact?: {
|
|
22
|
-
name?: string;
|
|
23
|
-
url?: string;
|
|
24
|
-
email?: string;
|
|
25
|
-
};
|
|
26
|
-
license?: {
|
|
27
|
-
name: string;
|
|
28
|
-
url?: string;
|
|
29
|
-
};
|
|
30
|
-
tags?: {
|
|
31
|
-
name: string;
|
|
32
|
-
description?: string;
|
|
33
|
-
}[];
|
|
34
|
-
components?: {
|
|
35
|
-
securitySchemes?: Record<string, any>;
|
|
36
|
-
schemas?: Record<string, any>;
|
|
37
|
-
};
|
|
38
|
-
security?: Array<Record<string, string[]>>;
|
|
39
|
-
};
|
|
40
|
-
apis?: string[];
|
|
41
|
-
deepLinking?: boolean;
|
|
42
|
-
tryItOutEnabled?: boolean;
|
|
43
|
-
persistAuthorization?: boolean;
|
|
44
|
-
};
|
|
45
|
-
scalarApiReferenceConfiguration?: Partial<import("@scalar/express-api-reference").ApiReferenceConfiguration>;
|
|
46
|
-
} | undefined>;
|
|
2
|
+
import { ArkosConfig } from "../../../../exports";
|
|
3
|
+
export default function getSwaggerDefaultConfig(defaultModelsPaths: Record<string, any>, defaultJsonSchemas: OpenAPIV3.PathsObject<{}, {}>): ArkosConfig["swagger"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function generateClassValidatorJsonSchemas():
|
|
1
|
+
export declare function generateClassValidatorJsonSchemas(): Record<string, any>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ArkosConfig } from "../../../../../exports";
|
|
2
|
-
export declare function generatePrismaJsonSchemas(arkosConfig: ArkosConfig):
|
|
2
|
+
export declare function generatePrismaJsonSchemas(arkosConfig: ArkosConfig): import("../../../../../utils/prisma/prisma-json-schema-generator").GeneratedSchemas;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function generateZodJsonSchemas():
|
|
1
|
+
export default function generateZodJsonSchemas(): Record<string, any>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import { ArkosConfig } from "../../../../../../exports";
|
|
3
|
-
export declare function generatePrismaModelMainRoutesPaths(model: string, paths: OpenAPIV3.PathsObject | undefined, arkosConfig: ArkosConfig):
|
|
3
|
+
export declare function generatePrismaModelMainRoutesPaths(model: string, paths: OpenAPIV3.PathsObject | undefined, arkosConfig: ArkosConfig): OpenAPIV3.PathsObject<{}, {}> | undefined;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import { ArkosConfig } from "../../../../../../exports";
|
|
3
|
-
export default function generatePrismaModelParentRoutesPaths(model: string, paths: OpenAPIV3.PathsObject, arkosConfig: ArkosConfig):
|
|
3
|
+
export default function generatePrismaModelParentRoutesPaths(model: string, paths: OpenAPIV3.PathsObject, arkosConfig: ArkosConfig): void;
|
|
@@ -7,7 +7,7 @@ declare class MissingJsonSchemasGenerator {
|
|
|
7
7
|
private extractSchemaRefsWithContext;
|
|
8
8
|
private extractPathSchemaRefs;
|
|
9
9
|
private getSchemaNameFromRef;
|
|
10
|
-
generateMissingJsonSchemas(currentPaths: OpenAPIV3.PathsObject, currentJsonSchemas: Record<string, any>, arkosConfig: ArkosConfig):
|
|
10
|
+
generateMissingJsonSchemas(currentPaths: OpenAPIV3.PathsObject, currentJsonSchemas: Record<string, any>, arkosConfig: ArkosConfig): Record<string, any>;
|
|
11
11
|
private extractActionFromSchemaRef;
|
|
12
12
|
analyzeMissingSchemas(currentPaths: OpenAPIV3.PathsObject, currentJsonSchemas: Record<string, any>): {
|
|
13
13
|
allRefs: Array<{
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
declare class OpenAPIchemaConverter {
|
|
3
|
+
private validatorToJsonSchema;
|
|
4
|
+
constructor();
|
|
5
|
+
private isSchemaLike;
|
|
6
|
+
private isPlainObject;
|
|
7
|
+
private convertToJsonSchema;
|
|
8
|
+
private getDefaultDescription;
|
|
9
|
+
convertResponseDefinition(statusCode: string, definition: any): OpenAPIV3.ResponseObject;
|
|
10
|
+
convertRequestBodyDefinition(definition: any): OpenAPIV3.RequestBodyObject | undefined;
|
|
11
|
+
convertParameters(parameters: any[] | undefined): (OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject)[] | undefined;
|
|
12
|
+
convertResponses(responses: Record<string, any> | undefined): Record<string, OpenAPIV3.ResponseObject> | undefined;
|
|
13
|
+
convertOpenAPIConfig(config: any): any;
|
|
14
|
+
jsonSchemaToOpeApiParameters(paramType: string, schema: any, prefix?: string): any[];
|
|
15
|
+
}
|
|
16
|
+
declare const openApiSchemaConverter: OpenAPIchemaConverter;
|
|
17
|
+
export default openApiSchemaConverter;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ArkosConfig } from "../../../../exports";
|
|
2
2
|
import { OpenAPIV3 } from "openapi-types";
|
|
3
3
|
import { ValidationFileMappingKey } from "../../../../utils/dynamic-loader";
|
|
4
|
-
export declare function getOpenAPIJsonSchemasByConfigMode(arkosConfig: ArkosConfig):
|
|
4
|
+
export declare function getOpenAPIJsonSchemasByConfigMode(arkosConfig: ArkosConfig): Record<string, any>;
|
|
5
5
|
export declare function getCorrectJsonSchemaName(type: string, modelName: string, suffix: "Dto" | "Schema"): string;
|
|
6
6
|
export declare function kebabToHuman(kebabStr: string): string;
|
|
7
7
|
export declare function getSchemaRef(schemaName: string, mode: "prisma" | "zod" | "class-validator"): string;
|
|
8
|
-
export declare function generatePathsForModels(arkosConfig: ArkosConfig):
|
|
9
|
-
export declare function localValidatorFileExists(action: ValidationFileMappingKey, modelName: string, arkosConfig: ArkosConfig):
|
|
8
|
+
export declare function generatePathsForModels(arkosConfig: ArkosConfig): OpenAPIV3.PathsObject;
|
|
9
|
+
export declare function localValidatorFileExists(action: ValidationFileMappingKey, modelName: string, arkosConfig: ArkosConfig): boolean;
|
package/dist/types/server.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { IncomingMessage, Server, ServerResponse } from "http";
|
|
2
2
|
import { Express } from "express";
|
|
3
|
-
import { ArkosConfig } from "./types/arkos-config";
|
|
3
|
+
import { ArkosConfig } from "./types/new-arkos-config";
|
|
4
|
+
import { ArkosInitConfig } from "./exports";
|
|
5
|
+
export declare function getArkosConfig(): ArkosConfig;
|
|
4
6
|
declare let server: Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
5
|
-
|
|
6
|
-
available?: boolean;
|
|
7
|
-
};
|
|
8
|
-
declare function initApp(arkosConfig?: ArkosConfig): Promise<Express | undefined>;
|
|
7
|
+
declare function initApp(initConfig?: ArkosInitConfig): Promise<Express | undefined>;
|
|
9
8
|
export declare function terminateApplicationRunningProcessAndServer(): void;
|
|
10
|
-
export declare function getArkosConfig(): ArkosConfig;
|
|
11
9
|
export declare function getExpressApp(): Express;
|
|
12
10
|
export { server, initApp };
|
|
@@ -1,186 +1,9 @@
|
|
|
1
1
|
import http from "http";
|
|
2
|
-
import cors from "cors";
|
|
3
2
|
import express from "express";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { ValidatorOptions } from "class-validator";
|
|
9
|
-
import { MsDuration } from "../modules/auth/utils/helpers/auth.controller.helpers";
|
|
10
|
-
import { OpenAPIV3 } from "openapi-types";
|
|
11
|
-
import type { ApiReferenceConfiguration } from "@scalar/express-api-reference" with { "resolution-mode": "import" };
|
|
12
|
-
import nodemailer from "nodemailer";
|
|
13
|
-
import { ModuleComponents } from "../utils/dynamic-loader";
|
|
14
|
-
export type ArkosConfig = {
|
|
15
|
-
request?: {
|
|
16
|
-
parameters?: {
|
|
17
|
-
allowDangerousPrismaQueryOptions?: boolean;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
welcomeMessage?: string;
|
|
21
|
-
port?: number | undefined;
|
|
22
|
-
host?: string;
|
|
23
|
-
authentication?: {
|
|
24
|
-
mode: "static" | "dynamic";
|
|
25
|
-
login?: {
|
|
26
|
-
allowedUsernames?: string[];
|
|
27
|
-
sendAccessTokenThrough?: "cookie-only" | "response-only" | "both";
|
|
28
|
-
};
|
|
29
|
-
passwordValidation?: {
|
|
30
|
-
regex: RegExp;
|
|
31
|
-
message?: string;
|
|
32
|
-
};
|
|
33
|
-
requestRateLimitOptions?: Partial<RateLimitOptions>;
|
|
34
|
-
jwt?: {
|
|
35
|
-
secret?: string;
|
|
36
|
-
expiresIn?: MsDuration | number;
|
|
37
|
-
cookie?: {
|
|
38
|
-
secure?: boolean;
|
|
39
|
-
httpOnly?: boolean;
|
|
40
|
-
sameSite?: "lax" | "strict" | "none";
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
validation?: {
|
|
45
|
-
strict?: boolean;
|
|
46
|
-
} & ({
|
|
47
|
-
resolver?: "class-validator";
|
|
48
|
-
validationOptions?: ValidatorOptions;
|
|
49
|
-
} | {
|
|
50
|
-
resolver?: "zod";
|
|
51
|
-
validationOptions?: Record<string, any>;
|
|
52
|
-
});
|
|
53
|
-
fileUpload?: {
|
|
54
|
-
baseUploadDir?: string;
|
|
55
|
-
baseRoute?: string;
|
|
56
|
-
expressStaticOptions?: Parameters<typeof express.static>[1];
|
|
57
|
-
restrictions?: {
|
|
58
|
-
images?: {
|
|
59
|
-
maxCount?: number;
|
|
60
|
-
maxSize?: number;
|
|
61
|
-
supportedFilesRegex?: RegExp;
|
|
62
|
-
};
|
|
63
|
-
videos?: {
|
|
64
|
-
maxCount?: number;
|
|
65
|
-
maxSize?: number;
|
|
66
|
-
supportedFilesRegex?: RegExp;
|
|
67
|
-
};
|
|
68
|
-
documents?: {
|
|
69
|
-
maxCount?: number;
|
|
70
|
-
maxSize?: number;
|
|
71
|
-
supportedFilesRegex?: RegExp;
|
|
72
|
-
};
|
|
73
|
-
files?: {
|
|
74
|
-
maxCount?: number;
|
|
75
|
-
maxSize?: number;
|
|
76
|
-
supportedFilesRegex?: RegExp;
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
};
|
|
80
|
-
globalRequestRateLimitOptions?: Partial<RateLimitOptions>;
|
|
81
|
-
jsonBodyParserOptions?: Parameters<typeof express.json>[0];
|
|
82
|
-
cookieParserParameters?: Parameters<typeof cookieParser>;
|
|
83
|
-
compressionOptions?: compression.CompressionOptions;
|
|
84
|
-
queryParserOptions?: QueryParserOptions;
|
|
85
|
-
cors?: {
|
|
86
|
-
allowedOrigins?: string | string[] | "*";
|
|
87
|
-
options?: cors.CorsOptions;
|
|
88
|
-
customHandler?: cors.CorsOptionsDelegate;
|
|
89
|
-
};
|
|
90
|
-
middlewares?: {
|
|
91
|
-
additional?: express.RequestHandler[];
|
|
92
|
-
disable?: ("compression" | "global-rate-limit" | "auth-rate-limit" | "cors" | "express-json" | "cookie-parser" | "query-parser" | "request-logger" | "global-error-handler")[];
|
|
93
|
-
replace?: {
|
|
94
|
-
compression?: express.RequestHandler;
|
|
95
|
-
globalRateLimit?: express.RequestHandler;
|
|
96
|
-
authRateLimit?: express.RequestHandler;
|
|
97
|
-
cors?: express.RequestHandler;
|
|
98
|
-
expressJson?: express.RequestHandler;
|
|
99
|
-
cookieParser?: express.RequestHandler;
|
|
100
|
-
queryParser?: express.RequestHandler;
|
|
101
|
-
requestLogger?: express.RequestHandler;
|
|
102
|
-
globalErrorHandler?: express.ErrorRequestHandler;
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
routers?: {
|
|
106
|
-
strict?: boolean | "no-bulk";
|
|
107
|
-
additional?: express.Router[];
|
|
108
|
-
disable?: ("auth-router" | "prisma-models-router" | "file-upload" | "welcome-endpoint")[];
|
|
109
|
-
replace?: {
|
|
110
|
-
authRouter?: (config: ArkosConfig) => express.Router | Promise<express.Router>;
|
|
111
|
-
prismaModelsRouter?: (config: ArkosConfig) => express.Router | Promise<express.Router>;
|
|
112
|
-
fileUpload?: (config: ArkosConfig) => express.Router | Promise<express.Router>;
|
|
113
|
-
welcomeEndpoint?: express.RequestHandler;
|
|
114
|
-
};
|
|
115
|
-
};
|
|
3
|
+
import { IArkosRouter } from "../utils/arkos-router/types";
|
|
4
|
+
import { ArkosErrorRequestHandler, ArkosRequestHandler } from ".";
|
|
5
|
+
export type ArkosInitConfig = {
|
|
6
|
+
use?: IArkosRouter[] | ArkosRequestHandler[] | ArkosErrorRequestHandler[];
|
|
116
7
|
configureApp?: (app: express.Express) => Promise<any> | any;
|
|
117
8
|
configureServer?: (server: http.Server) => Promise<any> | any;
|
|
118
|
-
email?: {
|
|
119
|
-
name?: string;
|
|
120
|
-
host: string;
|
|
121
|
-
port?: number;
|
|
122
|
-
secure?: boolean;
|
|
123
|
-
auth: {
|
|
124
|
-
user: string;
|
|
125
|
-
pass: string;
|
|
126
|
-
};
|
|
127
|
-
} & Parameters<typeof nodemailer.createTransport>[0];
|
|
128
|
-
swagger?: {
|
|
129
|
-
enableAfterBuild?: boolean;
|
|
130
|
-
endpoint?: string;
|
|
131
|
-
mode: "prisma" | "class-validator" | "zod";
|
|
132
|
-
strict?: boolean;
|
|
133
|
-
options?: {
|
|
134
|
-
definition?: {
|
|
135
|
-
openapi?: string;
|
|
136
|
-
info?: {
|
|
137
|
-
title?: string;
|
|
138
|
-
version?: string;
|
|
139
|
-
description?: string;
|
|
140
|
-
};
|
|
141
|
-
servers?: {
|
|
142
|
-
url: string;
|
|
143
|
-
description?: string;
|
|
144
|
-
}[];
|
|
145
|
-
paths?: OpenAPIV3.PathsObject;
|
|
146
|
-
termsOfService?: string;
|
|
147
|
-
contact?: {
|
|
148
|
-
name?: string;
|
|
149
|
-
url?: string;
|
|
150
|
-
email?: string;
|
|
151
|
-
};
|
|
152
|
-
license?: {
|
|
153
|
-
name: string;
|
|
154
|
-
url?: string;
|
|
155
|
-
};
|
|
156
|
-
tags?: {
|
|
157
|
-
name: string;
|
|
158
|
-
description?: string;
|
|
159
|
-
}[];
|
|
160
|
-
components?: {
|
|
161
|
-
securitySchemes?: Record<string, any>;
|
|
162
|
-
schemas?: Record<string, any>;
|
|
163
|
-
};
|
|
164
|
-
security?: Array<Record<string, string[]>>;
|
|
165
|
-
};
|
|
166
|
-
apis?: string[];
|
|
167
|
-
deepLinking?: boolean;
|
|
168
|
-
tryItOutEnabled?: boolean;
|
|
169
|
-
persistAuthorization?: boolean;
|
|
170
|
-
};
|
|
171
|
-
scalarApiReferenceConfiguration?: Partial<ApiReferenceConfiguration>;
|
|
172
|
-
};
|
|
173
|
-
debugging?: {
|
|
174
|
-
requests?: {
|
|
175
|
-
level?: 0 | 1 | 2 | 3;
|
|
176
|
-
filter?: ("Query" | "Body" | "Params" | "TransformedQuery" | "ServiceArgs" | "FinalPrismaQueryArgs")[];
|
|
177
|
-
};
|
|
178
|
-
dynamicLoader?: {
|
|
179
|
-
level?: 0 | 1 | 2 | 3;
|
|
180
|
-
filters?: {
|
|
181
|
-
modules?: string[];
|
|
182
|
-
components?: keyof ModuleComponents[];
|
|
183
|
-
};
|
|
184
|
-
};
|
|
185
|
-
};
|
|
186
9
|
};
|
|
@@ -116,15 +116,16 @@ export interface User {
|
|
|
116
116
|
roles?: UserRole[] | any[];
|
|
117
117
|
role?: UserRole | any;
|
|
118
118
|
}
|
|
119
|
-
export interface ArkosRequest<Body = any, Query = any> extends Request {
|
|
119
|
+
export interface ArkosRequest<Params extends Record<string, any> = any, Body = any, Query extends Record<string, any> = any> extends Request<Params, any, Body, Query> {
|
|
120
120
|
user?: User & Record<string, any>;
|
|
121
121
|
relationFields?: Record<string, boolean>;
|
|
122
122
|
include?: Record<string, any>;
|
|
123
|
-
responseData?: Record<string, any> | null
|
|
124
|
-
additionalData?: Record<string, any> | null
|
|
125
|
-
responseStatus?: number
|
|
123
|
+
responseData?: Record<string, any> | null;
|
|
124
|
+
additionalData?: Record<string, any> | null;
|
|
125
|
+
responseStatus?: number;
|
|
126
126
|
body: Body;
|
|
127
127
|
prismaQueryOptions?: Record<string, any>;
|
|
128
|
+
query: Query;
|
|
128
129
|
accessToken?: string;
|
|
129
130
|
transformedQuery?: Record<string, any>;
|
|
130
131
|
filters?: Record<string, any>;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import cors from "cors";
|
|
2
|
+
import express from "express";
|
|
3
|
+
import { Options as RateLimitOptions } from "express-rate-limit";
|
|
4
|
+
import cookieParser from "cookie-parser";
|
|
5
|
+
import compression from "compression";
|
|
6
|
+
import { Options as QueryParserOptions } from "../utils/helpers/query-parser.helpers";
|
|
7
|
+
import { ValidatorOptions } from "class-validator";
|
|
8
|
+
import { MsDuration } from "../modules/auth/utils/helpers/auth.controller.helpers";
|
|
9
|
+
import { OpenAPIV3 } from "openapi-types";
|
|
10
|
+
import type { ApiReferenceConfiguration } from "@scalar/express-api-reference" with { "resolution-mode": "import" };
|
|
11
|
+
import nodemailer from "nodemailer";
|
|
12
|
+
import { ModuleComponents } from "../utils/dynamic-loader";
|
|
13
|
+
import { ArkosRequestHandler } from ".";
|
|
14
|
+
export type ArkosConfig = {
|
|
15
|
+
request?: {
|
|
16
|
+
parameters?: {
|
|
17
|
+
allowDangerousPrismaQueryOptions?: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
welcomeMessage?: string;
|
|
21
|
+
port?: number | undefined;
|
|
22
|
+
host?: string;
|
|
23
|
+
authentication?: {
|
|
24
|
+
enabled?: boolean;
|
|
25
|
+
mode: "static" | "dynamic";
|
|
26
|
+
login?: {
|
|
27
|
+
allowedUsernames?: string[];
|
|
28
|
+
sendAccessTokenThrough?: "cookie-only" | "response-only" | "both";
|
|
29
|
+
};
|
|
30
|
+
passwordValidation?: {
|
|
31
|
+
regex: RegExp;
|
|
32
|
+
message?: string;
|
|
33
|
+
};
|
|
34
|
+
requestRateLimitOptions?: Partial<RateLimitOptions>;
|
|
35
|
+
jwt?: {
|
|
36
|
+
secret?: string;
|
|
37
|
+
expiresIn?: MsDuration | number;
|
|
38
|
+
cookie?: {
|
|
39
|
+
secure?: boolean;
|
|
40
|
+
httpOnly?: boolean;
|
|
41
|
+
sameSite?: "lax" | "strict" | "none";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
validation?: {
|
|
46
|
+
strict?: boolean;
|
|
47
|
+
} & ({
|
|
48
|
+
resolver?: "class-validator";
|
|
49
|
+
validationOptions?: ValidatorOptions;
|
|
50
|
+
} | {
|
|
51
|
+
resolver?: "zod";
|
|
52
|
+
validationOptions?: Record<string, any>;
|
|
53
|
+
});
|
|
54
|
+
fileUpload?: {
|
|
55
|
+
baseUploadDir?: string;
|
|
56
|
+
baseRoute?: string;
|
|
57
|
+
expressStatic?: Parameters<typeof express.static>[1];
|
|
58
|
+
restrictions?: {
|
|
59
|
+
images?: {
|
|
60
|
+
maxCount?: number;
|
|
61
|
+
maxSize?: number;
|
|
62
|
+
supportedFilesRegex?: RegExp;
|
|
63
|
+
};
|
|
64
|
+
videos?: {
|
|
65
|
+
maxCount?: number;
|
|
66
|
+
maxSize?: number;
|
|
67
|
+
supportedFilesRegex?: RegExp;
|
|
68
|
+
};
|
|
69
|
+
documents?: {
|
|
70
|
+
maxCount?: number;
|
|
71
|
+
maxSize?: number;
|
|
72
|
+
supportedFilesRegex?: RegExp;
|
|
73
|
+
};
|
|
74
|
+
files?: {
|
|
75
|
+
maxCount?: number;
|
|
76
|
+
maxSize?: number;
|
|
77
|
+
supportedFilesRegex?: RegExp;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
middlewares?: {
|
|
82
|
+
compression?: false | compression.CompressionOptions | ArkosRequestHandler;
|
|
83
|
+
rateLimit?: false | Partial<RateLimitOptions> | ArkosRequestHandler;
|
|
84
|
+
cors?: false | {
|
|
85
|
+
allowedOrigins?: string | string[] | "*";
|
|
86
|
+
options?: cors.CorsOptions;
|
|
87
|
+
customHandler?: cors.CorsOptionsDelegate;
|
|
88
|
+
} | ArkosRequestHandler;
|
|
89
|
+
expressJson?: false | Parameters<typeof express.json>[0] | ArkosRequestHandler;
|
|
90
|
+
cookieParser?: false | Parameters<typeof cookieParser> | ArkosRequestHandler;
|
|
91
|
+
queryParser?: false | QueryParserOptions | ArkosRequestHandler;
|
|
92
|
+
requestLogger?: false | ArkosRequestHandler;
|
|
93
|
+
errorHandler?: false | express.ErrorRequestHandler;
|
|
94
|
+
};
|
|
95
|
+
routers?: {
|
|
96
|
+
strict?: boolean | "no-bulk";
|
|
97
|
+
welcomeRoute?: false | ArkosRequestHandler;
|
|
98
|
+
};
|
|
99
|
+
email?: {
|
|
100
|
+
name?: string;
|
|
101
|
+
host: string;
|
|
102
|
+
port?: number;
|
|
103
|
+
secure?: boolean;
|
|
104
|
+
auth: {
|
|
105
|
+
user: string;
|
|
106
|
+
pass: string;
|
|
107
|
+
};
|
|
108
|
+
} & Parameters<typeof nodemailer.createTransport>[0];
|
|
109
|
+
swagger?: {
|
|
110
|
+
enableAfterBuild?: boolean;
|
|
111
|
+
endpoint?: string;
|
|
112
|
+
mode: "prisma" | "class-validator" | "zod";
|
|
113
|
+
strict?: boolean;
|
|
114
|
+
options?: {
|
|
115
|
+
definition?: {
|
|
116
|
+
openapi?: string;
|
|
117
|
+
info?: {
|
|
118
|
+
title?: string;
|
|
119
|
+
version?: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
};
|
|
122
|
+
servers?: {
|
|
123
|
+
url: string;
|
|
124
|
+
description?: string;
|
|
125
|
+
}[];
|
|
126
|
+
paths?: OpenAPIV3.PathsObject;
|
|
127
|
+
termsOfService?: string;
|
|
128
|
+
contact?: {
|
|
129
|
+
name?: string;
|
|
130
|
+
url?: string;
|
|
131
|
+
email?: string;
|
|
132
|
+
};
|
|
133
|
+
license?: {
|
|
134
|
+
name: string;
|
|
135
|
+
url?: string;
|
|
136
|
+
};
|
|
137
|
+
tags?: {
|
|
138
|
+
name: string;
|
|
139
|
+
description?: string;
|
|
140
|
+
}[];
|
|
141
|
+
components?: {
|
|
142
|
+
securitySchemes?: Record<string, any>;
|
|
143
|
+
schemas?: Record<string, any>;
|
|
144
|
+
};
|
|
145
|
+
security?: Array<Record<string, string[]>>;
|
|
146
|
+
};
|
|
147
|
+
apis?: string[];
|
|
148
|
+
deepLinking?: boolean;
|
|
149
|
+
tryItOutEnabled?: boolean;
|
|
150
|
+
persistAuthorization?: boolean;
|
|
151
|
+
};
|
|
152
|
+
scalarApiReferenceConfiguration?: Partial<ApiReferenceConfiguration>;
|
|
153
|
+
};
|
|
154
|
+
debugging?: {
|
|
155
|
+
requests?: {
|
|
156
|
+
level?: 0 | 1 | 2 | 3;
|
|
157
|
+
filter?: ("Query" | "Body" | "Params" | "TransformedQuery" | "ServiceArgs" | "FinalPrismaQueryArgs")[];
|
|
158
|
+
};
|
|
159
|
+
dynamicLoader?: {
|
|
160
|
+
level?: 0 | 1 | 2 | 3;
|
|
161
|
+
filters?: {
|
|
162
|
+
modules?: string[];
|
|
163
|
+
components?: keyof ModuleComponents[];
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArkosRouteConfig } from "../exports";
|
|
1
2
|
export type RouterEndpoint = "createOne" | "findOne" | "updateOne" | "deleteOne" | "findMany" | "createMany" | "updateMany" | "deleteMany";
|
|
2
3
|
export type AuthRouterEndpoint = "getMe" | "updateMe" | "deleteMe" | "login" | "logout" | "signup" | "updatePassword" | "findManyAuthAction" | "findOneAuthAction";
|
|
3
4
|
export type FileUploadRouterEndpoint = "findFile" | "uploadFile" | "updateFile" | "deleteFile";
|
|
@@ -8,34 +9,26 @@ interface PrismaBaseRouterConfig {
|
|
|
8
9
|
endpoints?: "*" | RouterEndpoint[];
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
+
type BaseRouterConfig = PrismaBaseRouterConfig & {
|
|
12
13
|
disable?: boolean | {
|
|
13
|
-
|
|
14
|
-
updateMe?: boolean;
|
|
15
|
-
deleteMe?: boolean;
|
|
16
|
-
login?: boolean;
|
|
17
|
-
logout?: boolean;
|
|
18
|
-
signup?: boolean;
|
|
19
|
-
updatePassword?: boolean;
|
|
20
|
-
findManyAuthAction?: boolean;
|
|
14
|
+
[K in RouterEndpoint]?: boolean;
|
|
21
15
|
};
|
|
22
|
-
}
|
|
16
|
+
} & {
|
|
17
|
+
[K in RouterEndpoint]?: Omit<ArkosRouteConfig, "route">;
|
|
18
|
+
};
|
|
19
|
+
type AuthRouterConfig = {
|
|
23
20
|
disable?: boolean | {
|
|
24
|
-
|
|
25
|
-
uploadFile?: boolean;
|
|
26
|
-
updateFile?: boolean;
|
|
27
|
-
deleteFile?: boolean;
|
|
21
|
+
[K in AuthRouterEndpoint]?: boolean;
|
|
28
22
|
};
|
|
29
|
-
}
|
|
23
|
+
} & {
|
|
24
|
+
[K in AuthRouterEndpoint]?: Omit<ArkosRouteConfig, "route">;
|
|
25
|
+
};
|
|
26
|
+
type FileUploadRouterConfig = {
|
|
30
27
|
disable?: boolean | {
|
|
31
|
-
|
|
32
|
-
findOne?: boolean;
|
|
33
|
-
updateOne?: boolean;
|
|
34
|
-
deleteOne?: boolean;
|
|
35
|
-
createMany?: boolean;
|
|
36
|
-
findMany?: boolean;
|
|
37
|
-
updateMany?: boolean;
|
|
38
|
-
deleteMany?: boolean;
|
|
28
|
+
[K in FileUploadRouterEndpoint]?: boolean;
|
|
39
29
|
};
|
|
30
|
+
} & {
|
|
31
|
+
[K in FileUploadRouterEndpoint]?: Omit<ArkosRouteConfig, "route" | "uploads">;
|
|
40
32
|
};
|
|
33
|
+
export type RouterConfig<T extends string = string> = T extends "auth" ? AuthRouterConfig : T extends "file-upload" ? FileUploadRouterConfig : BaseRouterConfig;
|
|
41
34
|
export {};
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { OpenAPIV3 } from "openapi-types";
|
|
1
|
+
import { IRouter } from "express";
|
|
3
2
|
import { ZodSchema } from "zod";
|
|
4
|
-
|
|
3
|
+
import { Options as RateLimitOptions } from "express-rate-limit";
|
|
4
|
+
import { Options as QueryParserOptions } from "../../../utils/helpers/query-parser.helpers";
|
|
5
|
+
import { DetailedAccessControlRule } from "../../../types/auth";
|
|
6
|
+
import { ArkosErrorRequestHandler, ArkosRequestHandler } from "../../../types";
|
|
7
|
+
import express from "express";
|
|
8
|
+
import compression from "compression";
|
|
9
|
+
import { OpenApiConfig } from "./openapi-config";
|
|
10
|
+
import { UploadConfig } from "./upload-config";
|
|
11
|
+
type MethodHandler = (config: ArkosRouteConfig, ...handlers: (ArkosRequestHandler | ArkosErrorRequestHandler)[]) => IRouter;
|
|
5
12
|
export interface IArkosRouter extends Omit<IRouter, "get" | "post" | "put" | "patch" | "delete" | "options" | "head" | "trace" | "all"> {
|
|
6
13
|
get: MethodHandler;
|
|
7
14
|
post: MethodHandler;
|
|
@@ -14,17 +21,40 @@ export interface IArkosRouter extends Omit<IRouter, "get" | "post" | "put" | "pa
|
|
|
14
21
|
all: MethodHandler;
|
|
15
22
|
}
|
|
16
23
|
export interface ArkosRouteConfig {
|
|
24
|
+
disabled?: boolean;
|
|
17
25
|
route: string;
|
|
18
26
|
authentication?: boolean | {
|
|
19
27
|
resource: string;
|
|
20
28
|
action: string;
|
|
21
|
-
rule?:
|
|
29
|
+
rule?: DetailedAccessControlRule | string[];
|
|
22
30
|
};
|
|
23
|
-
validation?:
|
|
24
|
-
query?: ZodSchema | (new (...args: any[]) => object) |
|
|
25
|
-
body?: ZodSchema | (new (...args: any[]) => object) |
|
|
26
|
-
params?: ZodSchema | (new (...args: any[]) => object) |
|
|
31
|
+
validation?: false | {
|
|
32
|
+
query?: ZodSchema | (new (...args: any[]) => object) | false;
|
|
33
|
+
body?: ZodSchema | (new (...args: any[]) => object) | false;
|
|
34
|
+
params?: ZodSchema | (new (...args: any[]) => object) | false;
|
|
35
|
+
};
|
|
36
|
+
rateLimit?: Partial<RateLimitOptions>;
|
|
37
|
+
compression?: compression.CompressionOptions;
|
|
38
|
+
queryParser?: QueryParserOptions;
|
|
39
|
+
bodyParser?: {
|
|
40
|
+
parser: "json";
|
|
41
|
+
options?: Parameters<typeof express.json>[0];
|
|
42
|
+
} | {
|
|
43
|
+
parser: "urlencoded";
|
|
44
|
+
options?: Parameters<typeof express.urlencoded>[0];
|
|
45
|
+
} | {
|
|
46
|
+
parser: "raw";
|
|
47
|
+
options?: Parameters<typeof express.raw>[0];
|
|
48
|
+
} | {
|
|
49
|
+
parser: "raw";
|
|
50
|
+
options?: Parameters<typeof express.raw>[0];
|
|
51
|
+
} | {
|
|
52
|
+
parser: "text";
|
|
53
|
+
options?: Parameters<typeof express.text>[0];
|
|
54
|
+
} | false;
|
|
55
|
+
experimental?: {
|
|
56
|
+
openapi?: false | OpenApiConfig;
|
|
57
|
+
uploads?: UploadConfig;
|
|
27
58
|
};
|
|
28
|
-
openapi?: boolean | Partial<OpenAPIV3.OperationObject>;
|
|
29
59
|
}
|
|
30
60
|
export {};
|