arkos 2.0.0-next.3 → 2.0.0-next.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -145
- package/cli.js +11 -20
- package/dist/esm/app.js +37 -35
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-gateway/arkos-gateway.js +362 -0
- package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js +176 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
- package/dist/esm/components/arkos-gateway/types.js +3 -0
- package/dist/esm/components/arkos-gateway/types.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
- package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
- package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
- package/dist/esm/components/arkos-policy/index.js +3 -1
- package/dist/esm/components/arkos-policy/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/index.js +30 -19
- package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/exports/file-upload.js +2 -0
- package/dist/esm/exports/file-upload.js.map +1 -0
- package/dist/esm/exports/index.js +3 -3
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/middlewares/index.js +1 -1
- package/dist/esm/exports/middlewares/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -2
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/websockets.js +5 -0
- package/dist/esm/exports/websockets.js.map +1 -0
- package/dist/esm/generated.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +165 -230
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +28 -10
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +202 -136
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/auth.types.js +2 -0
- package/dist/esm/modules/auth/auth.types.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
- package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/docs-links.js +6 -0
- package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -0
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js.map +1 -1
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/token-extraction.js +57 -0
- package/dist/esm/modules/auth/utils/token-extraction.js.map +1 -0
- package/dist/esm/modules/base/base.controller.js +228 -202
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +69 -86
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +23 -9
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +92 -197
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/base/utils/error-prettifier.js +90 -30
- package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
- package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +21 -12
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +60 -110
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js +73 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +227 -215
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +54 -15
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +41 -26
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +371 -0
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +73 -35
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js +206 -0
- package/dist/esm/modules/file-upload/utils/helpers/serve-upload-dir.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js +103 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-path.helper.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js +212 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-serving-validation.js.map +1 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js +30 -0
- package/dist/esm/modules/file-upload/utils/helpers/upload-serving.registry.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +39 -22
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +47 -43
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/types/auth.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/internal.js +2 -0
- package/dist/esm/types/internal.js.map +1 -0
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/types/validation/validation-manager.js +57 -0
- package/dist/esm/types/validation/validation-manager.js.map +1 -0
- package/dist/esm/types/validation/validator.js +2 -0
- package/dist/esm/types/validation/validator.js.map +1 -0
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +58 -158
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
- package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-validator.js +11 -10
- 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.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +198 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +92 -29
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +683 -119
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js +6 -6
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +16 -9
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +33 -32
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +7 -7
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +77 -58
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +74 -56
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +66 -35
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +27 -16
- 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/dependency-version-check.js +39 -0
- package/dist/esm/utils/cli/utils/dependency-version-check.js.map +1 -0
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -3
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +31 -18
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -1
- package/dist/esm/utils/define-config.js +15 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/docs-links.js +2 -0
- package/dist/esm/utils/docs-links.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +3 -7
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +6 -5
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +46 -27
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +60 -24
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +25 -32
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +2 -2
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +43 -17
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/prisma/types.js.map +1 -1
- package/dist/esm/utils/remove-dir.js +1 -1
- package/dist/esm/utils/remove-dir.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +25 -23
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +15 -10
- package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +135 -0
- package/dist/types/components/arkos-gateway/socket-extensions.d.ts +80 -0
- package/dist/types/components/arkos-gateway/types.d.ts +467 -0
- package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
- package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
- package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
- package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +13 -6
- package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
- package/dist/types/components/arkos-route-hook/types.d.ts +12 -5
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/exports/file-upload.d.ts +1 -0
- package/dist/types/exports/index.d.ts +4 -5
- package/dist/types/exports/middlewares/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -3
- package/dist/types/exports/websockets.d.ts +5 -0
- package/dist/types/modules/auth/auth.controller.d.ts +10 -3
- package/dist/types/modules/auth/auth.service.d.ts +170 -51
- package/dist/types/modules/auth/auth.types.d.ts +72 -0
- package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
- package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
- package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
- package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
- package/dist/types/modules/auth/utils/helpers/auth.controller.helpers.d.ts +1 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
- package/dist/types/modules/auth/utils/token-extraction.d.ts +53 -0
- package/dist/types/modules/base/base.controller.d.ts +7 -6
- package/dist/types/modules/base/base.middlewares.d.ts +3 -9
- package/dist/types/modules/base/base.service.d.ts +18 -26
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/modules/base/utils/error-prettifier.d.ts +8 -0
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
- package/dist/types/modules/email/email.service.d.ts +3 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +2 -27
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
- package/dist/types/modules/file-upload/file-upload.service.d.ts +2 -6
- package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
- package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +21 -1
- package/dist/types/modules/file-upload/utils/helpers/serve-upload-dir.d.ts +43 -0
- package/dist/types/modules/file-upload/utils/helpers/upload-path.helper.d.ts +14 -0
- package/dist/types/modules/file-upload/utils/helpers/upload-serving-validation.d.ts +5 -0
- package/dist/types/modules/file-upload/utils/helpers/upload-serving.registry.d.ts +31 -0
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +8 -3
- package/dist/types/types/arkos-config/utils.d.ts +68 -0
- package/dist/types/types/arkos-prisma-input.d.ts +7 -3
- package/dist/types/types/arkos.d.ts +5 -15
- package/dist/types/types/auth.d.ts +4 -4
- package/dist/types/types/index.d.ts +15 -58
- package/dist/types/types/internal.d.ts +25 -0
- package/dist/types/types/new-arkos-config.d.ts +374 -67
- package/dist/types/types/router-config.d.ts +3 -66
- package/dist/types/types/upload.d.ts +45 -0
- package/dist/types/types/validation/validation-manager.d.ts +25 -0
- package/dist/types/types/validation/validator.d.ts +2 -0
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +86 -11
- package/dist/types/utils/arkos-router/types/index.d.ts +83 -31
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +158 -10
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +21 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/build.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +15 -6
- package/dist/types/utils/cli/start.d.ts +3 -1
- package/dist/types/utils/cli/utils/dependency-version-check.d.ts +15 -0
- package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
- package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
- package/dist/types/utils/define-config.d.ts +57 -3
- package/dist/types/utils/docs-links.d.ts +1 -0
- package/dist/types/utils/dotenv.helpers.d.ts +1 -0
- package/dist/types/utils/dynamic-loader.d.ts +2 -2
- package/dist/types/utils/features/api.features.d.ts +1 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +9 -1
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/initialize-app.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
- package/dist/types/utils/prisma/types.d.ts +3 -2
- package/dist/types/utils/validate-schema.d.ts +1 -1
- package/package.json +84 -75
- package/dist/cjs/app.js +0 -79
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
- package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
- package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/index.js +0 -36
- package/dist/cjs/components/arkos-policy/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/types.js +0 -3
- package/dist/cjs/components/arkos-policy/types.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/index.js +0 -50
- package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
- package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/types.js +0 -3
- package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/index.js +0 -35
- package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
- package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/types.js +0 -3
- package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
- package/dist/cjs/exports/auth/index.js +0 -6
- package/dist/cjs/exports/auth/index.js.map +0 -1
- package/dist/cjs/exports/config.js +0 -6
- package/dist/cjs/exports/config.js.map +0 -1
- package/dist/cjs/exports/controllers/index.js +0 -42
- package/dist/cjs/exports/controllers/index.js.map +0 -1
- package/dist/cjs/exports/error-handler/index.js +0 -11
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -23
- package/dist/cjs/exports/index.js.map +0 -1
- package/dist/cjs/exports/middlewares/index.js +0 -7
- package/dist/cjs/exports/middlewares/index.js.map +0 -1
- package/dist/cjs/exports/prisma/index.js +0 -13
- package/dist/cjs/exports/prisma/index.js.map +0 -1
- package/dist/cjs/exports/services/index.js +0 -53
- package/dist/cjs/exports/services/index.js.map +0 -1
- package/dist/cjs/exports/utils/index.js +0 -26
- package/dist/cjs/exports/utils/index.js.map +0 -1
- package/dist/cjs/exports/validation/index.js +0 -11
- package/dist/cjs/exports/validation/index.js.map +0 -1
- package/dist/cjs/generated.js +0 -7
- package/dist/cjs/generated.js.map +0 -1
- package/dist/cjs/modules/auth/auth.controller.js +0 -254
- package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
- package/dist/cjs/modules/auth/auth.router.js +0 -113
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -277
- package/dist/cjs/modules/auth/auth.service.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
- package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -275
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -231
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -112
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -432
- package/dist/cjs/modules/base/base.service.js.map +0 -1
- package/dist/cjs/modules/base/types/base.service.types.js +0 -3
- package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
- package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
- package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/router-validator.js +0 -13
- package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/debugger/debugger.service.js +0 -59
- package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
- package/dist/cjs/modules/email/email.service.js +0 -106
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/cjs/modules/swagger/swagger.router.js +0 -65
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/server.js +0 -60
- package/dist/cjs/server.js.map +0 -1
- package/dist/cjs/types/arkos-prisma-input.js +0 -3
- package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
- package/dist/cjs/types/arkos.js +0 -3
- package/dist/cjs/types/arkos.js.map +0 -1
- package/dist/cjs/types/auth.js +0 -3
- package/dist/cjs/types/auth.js.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/new-arkos-config.js +0 -3
- package/dist/cjs/types/new-arkos-config.js.map +0 -1
- package/dist/cjs/types/router-config.js +0 -3
- package/dist/cjs/types/router-config.js.map +0 -1
- package/dist/cjs/utils/arkos-env.js +0 -9
- package/dist/cjs/utils/arkos-env.js.map +0 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -253
- package/dist/cjs/utils/arkos-router/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
- package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/index.js +0 -3
- package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
- package/dist/cjs/utils/bundler.js +0 -163
- package/dist/cjs/utils/bundler.js.map +0 -1
- package/dist/cjs/utils/cli/build.js +0 -200
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -128
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -79
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -229
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -191
- package/dist/cjs/utils/cli/index.js.map +0 -1
- package/dist/cjs/utils/cli/prisma-generate.js +0 -112
- package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
- package/dist/cjs/utils/cli/start.js +0 -72
- package/dist/cjs/utils/cli/start.js.map +0 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -114
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
- package/dist/cjs/utils/define-config.js +0 -46
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -52
- package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
- package/dist/cjs/utils/dynamic-loader.js +0 -22
- package/dist/cjs/utils/dynamic-loader.js.map +0 -1
- package/dist/cjs/utils/expand-env.js +0 -72
- package/dist/cjs/utils/expand-env.js.map +0 -1
- package/dist/cjs/utils/features/api.features.js +0 -201
- package/dist/cjs/utils/features/api.features.js.map +0 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
- package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
- package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
- package/dist/cjs/utils/helpers/exit-error.js +0 -12
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -105
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
- package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/text.helpers.js +0 -28
- package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
- package/dist/cjs/utils/initialize-app.js +0 -55
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
- package/dist/cjs/utils/prisma/types.js +0 -3
- package/dist/cjs/utils/prisma/types.js.map +0 -1
- package/dist/cjs/utils/remove-dir.js +0 -14
- package/dist/cjs/utils/remove-dir.js.map +0 -1
- package/dist/cjs/utils/setup-app.js +0 -119
- package/dist/cjs/utils/setup-app.js.map +0 -1
- package/dist/cjs/utils/sheu.js +0 -131
- package/dist/cjs/utils/sheu.js.map +0 -1
- package/dist/cjs/utils/validate-dto.js +0 -19
- package/dist/cjs/utils/validate-dto.js.map +0 -1
- package/dist/cjs/utils/validate-schema.js +0 -75
- package/dist/cjs/utils/validate-schema.js.map +0 -1
- package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
- package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/index.js +0 -32
- package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/reader.js +0 -24
- package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/types.js +0 -2
- package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
- package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
- package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
- package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
- package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
|
@@ -1,43 +1,35 @@
|
|
|
1
|
-
import { ModelGroupRelationFields } from
|
|
2
|
-
import { PrismaClient } from
|
|
3
|
-
import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from
|
|
4
|
-
import { ServiceHookContext } from
|
|
5
|
-
|
|
6
|
-
beforeOperation?: (params: any) => void | Promise<void>;
|
|
7
|
-
afterOperation?: (result: any, params: any) => void | Promise<void>;
|
|
8
|
-
beforePrisma?: (prismaArgs: any, params: any) => any | Promise<any>;
|
|
9
|
-
afterPrisma?: (result: any, params: any) => any | Promise<any>;
|
|
10
|
-
}
|
|
1
|
+
import { ModelGroupRelationFields } from './utils/helpers/base.service.helpers';
|
|
2
|
+
import { PrismaClient } from '../../generated';
|
|
3
|
+
import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from './types/base.service.types';
|
|
4
|
+
import { ServiceHookContext } from './types/base.service.types';
|
|
5
|
+
import { ArkosPrismaInput } from '../../types/arkos-prisma-input';
|
|
11
6
|
/**
|
|
12
7
|
* Base service class for handling CRUD operations on a specific model.
|
|
13
8
|
* This class provides standard implementation of data operations that can be extended
|
|
14
9
|
* by model-specific service classes.
|
|
15
10
|
*
|
|
16
|
-
* @class
|
|
11
|
+
* @class ArkosPrismaService
|
|
17
12
|
*
|
|
18
13
|
* @example
|
|
19
14
|
* ```ts
|
|
20
|
-
* import {
|
|
15
|
+
* import { ArkosPrismaService } from "arkos/services";
|
|
21
16
|
*
|
|
22
|
-
* export class UserService extends
|
|
17
|
+
* export class UserService extends ArkosPrismaService<"user"> {}
|
|
23
18
|
*
|
|
24
19
|
* const userService = new UserService("user");
|
|
25
20
|
* ```
|
|
26
21
|
*
|
|
27
|
-
* @see {@link https://www.arkosjs.com/docs/
|
|
22
|
+
* @see {@link https://www.arkosjs.com/docs/reference/base-service}
|
|
28
23
|
* @see {@link https://www.arkosjs.com/docs/guide/accessing-request-context-in-services}
|
|
29
24
|
*/
|
|
30
|
-
export declare class
|
|
25
|
+
export declare class ArkosPrismaService<TModelName extends keyof Models = keyof Models> {
|
|
31
26
|
modelName: TModelName;
|
|
32
27
|
relationFields: ModelGroupRelationFields;
|
|
33
|
-
|
|
28
|
+
private prismaInstace?;
|
|
34
29
|
constructor(modelName: TModelName);
|
|
35
|
-
|
|
30
|
+
get prisma(): PrismaClient;
|
|
36
31
|
private executeOperation;
|
|
37
32
|
private executeTransactionOperation;
|
|
38
|
-
private executeHooks;
|
|
39
|
-
private buildHookParams;
|
|
40
|
-
private buildTransactionHookParams;
|
|
41
33
|
private handlePasswordHashing;
|
|
42
34
|
private processRelationFieldsInBody;
|
|
43
35
|
private buildPrismaArgs;
|
|
@@ -59,7 +51,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
59
51
|
* });
|
|
60
52
|
* ```
|
|
61
53
|
*/
|
|
62
|
-
createOne<TOptions extends CreateOptions<TModelName>>(data: CreateData<TModelName
|
|
54
|
+
createOne<TOptions extends CreateOptions<TModelName>>(data: CreateData<TModelName> | ArkosPrismaInput<CreateData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
|
|
63
55
|
/**
|
|
64
56
|
* Creates multiple records in the database.
|
|
65
57
|
*
|
|
@@ -75,7 +67,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
75
67
|
* ]);
|
|
76
68
|
* ```
|
|
77
69
|
*/
|
|
78
|
-
createMany<TOptions extends CreateManyOptions<TModelName>>(data: CreateManyData<TModelName
|
|
70
|
+
createMany<TOptions extends CreateManyOptions<TModelName>>(data: CreateManyData<TModelName> | ArkosPrismaInput<CreateManyData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
|
|
79
71
|
/**
|
|
80
72
|
* Counts records matching the specified filters.
|
|
81
73
|
*
|
|
@@ -147,7 +139,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
147
139
|
* );
|
|
148
140
|
* ```
|
|
149
141
|
*/
|
|
150
|
-
updateOne<TOptions extends UpdateOneOptions<TModelName>>(filters: UpdateOneFilters<TModelName>, data: UpdateOneData<TModelName
|
|
142
|
+
updateOne<TOptions extends UpdateOneOptions<TModelName>>(filters: UpdateOneFilters<TModelName>, data: UpdateOneData<TModelName> | ArkosPrismaInput<UpdateOneData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
|
|
151
143
|
/**
|
|
152
144
|
* Updates a single record matching the specified id.
|
|
153
145
|
*
|
|
@@ -161,7 +153,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
161
153
|
* const updated = await userService.updateById("user-123", { name: "John Updated" });
|
|
162
154
|
* ```
|
|
163
155
|
*/
|
|
164
|
-
updateById<TOptions extends UpdateOneOptions<TModelName>>(id: string | number, data: UpdateOneData<TModelName
|
|
156
|
+
updateById<TOptions extends UpdateOneOptions<TModelName>>(id: string | number, data: UpdateOneData<TModelName> | ArkosPrismaInput<UpdateOneData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>>;
|
|
165
157
|
/**
|
|
166
158
|
* Updates multiple records matching the specified filters.
|
|
167
159
|
*
|
|
@@ -178,7 +170,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
178
170
|
* );
|
|
179
171
|
* ```
|
|
180
172
|
*/
|
|
181
|
-
updateMany<TOptions extends UpdateManyOptions<TModelName>>(filters: UpdateManyFilters<TModelName>, data: UpdateManyData<TModelName
|
|
173
|
+
updateMany<TOptions extends UpdateManyOptions<TModelName>>(filters: UpdateManyFilters<TModelName>, data: UpdateManyData<TModelName> | ArkosPrismaInput<UpdateManyData<TModelName>>, queryOptions?: TOptions, context?: ServiceHookContext): Promise<{
|
|
182
174
|
count: number;
|
|
183
175
|
}>;
|
|
184
176
|
/**
|
|
@@ -234,7 +226,7 @@ export declare class BaseService<TModelName extends keyof Models = keyof Models>
|
|
|
234
226
|
* ]);
|
|
235
227
|
* ```
|
|
236
228
|
*/
|
|
237
|
-
batchUpdate<TOptions extends UpdateOneOptions<TModelName>>(dataArray: UpdateOneData<TModelName>[], queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
|
|
229
|
+
batchUpdate<TOptions extends UpdateOneOptions<TModelName>>(dataArray: UpdateOneData<TModelName>[] | ArkosPrismaInput<UpdateOneData<TModelName>>[], queryOptions?: TOptions, context?: ServiceHookContext): Promise<GetPayload<TModelName, TOptions>[]>;
|
|
238
230
|
/**
|
|
239
231
|
* Performs multiple delete operations in a single transaction.
|
|
240
232
|
*
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { ExtractPrismaData, ExtractPrismaFilters, ExtractPrismaQueryOptions, PrismaModels } from "../../../generated";
|
|
2
|
+
import { User } from "../../../types";
|
|
2
3
|
export type Models = PrismaModels<any>;
|
|
4
|
+
export interface ServiceHookContext {
|
|
5
|
+
/**
|
|
6
|
+
* The authenticated user making the request.
|
|
7
|
+
*/
|
|
8
|
+
user?: User;
|
|
9
|
+
/**
|
|
10
|
+
* The access token from the request for authorization.
|
|
11
|
+
*/
|
|
12
|
+
accessToken?: string;
|
|
13
|
+
}
|
|
3
14
|
export type Delegate<TModelName extends keyof Models> = Models[TModelName]["Delegate"];
|
|
4
15
|
export type CreateData<TModelName extends keyof Models> = ExtractPrismaData<Models[TModelName]["CreateArgs"]>;
|
|
5
16
|
export type CreateOptions<TModelName extends keyof Models> = ExtractPrismaQueryOptions<Models[TModelName]["CreateArgs"], "data">;
|
|
@@ -96,6 +96,14 @@ export declare class ErrorPrettifier {
|
|
|
96
96
|
* @returns Class-validator style constraint name
|
|
97
97
|
*/
|
|
98
98
|
private mapZodToConstraintName;
|
|
99
|
+
/**
|
|
100
|
+
* Maps a Zod `invalid_format` format (e.g. "email", "uuid", "regex") to a
|
|
101
|
+
* class-validator style constraint name.
|
|
102
|
+
*
|
|
103
|
+
* @param format - The format reported by Zod
|
|
104
|
+
* @returns Class-validator style constraint name
|
|
105
|
+
*/
|
|
106
|
+
private mapZodFormatToConstraintName;
|
|
99
107
|
/**
|
|
100
108
|
* Prettifies Zod ZodError.
|
|
101
109
|
* Handles nested paths and multiple issues per field.
|
|
@@ -40,7 +40,7 @@ export declare function throwErrorIfApiActionIsInvalid(apiAction: string): void;
|
|
|
40
40
|
* @param {string[]} ignoreActions - Optional list of apiAction values to ignore.
|
|
41
41
|
* @returns {Record<string, any>} The transformed data with appropriate Prisma operations applied.
|
|
42
42
|
*/
|
|
43
|
-
export declare function handleRelationFieldsInBody(body: Record<string, any>, relationFields: ModelGroupRelationFields, ignoreActions?: string[], isRelation?: boolean): Record<string, any>;
|
|
43
|
+
export declare function handleRelationFieldsInBody(body: Record<string, any>, relationFields: ModelGroupRelationFields, ignoreActions?: string[], isRelation?: boolean, parentOperation?: "create" | "update" | null): Record<string, any>;
|
|
44
44
|
export type ModelGroupRelationFields = ReturnType<typeof getGroupedModelReations>;
|
|
45
45
|
declare function getGroupedModelReations(modelName: string): {
|
|
46
46
|
singular: PrismaField[] | undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ArkosRouteConfig } from "../../../exports";
|
|
2
|
+
import { PrismaQueryOptions } from "../../../exports/prisma";
|
|
3
|
+
import { RouterEndpoint } from "../../../types/router-config";
|
|
4
|
+
import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
|
|
5
|
+
declare class ModelOpenAPIGenerator {
|
|
6
|
+
private getModel;
|
|
7
|
+
private getAuthErrorResponses;
|
|
8
|
+
private resolvePrismaQueryOptions;
|
|
9
|
+
getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: RouterEndpoint, modelNameInKebab: string, prismaQueryOptions?: PrismaQueryOptions<any>): Partial<ExtendedOperationObject>;
|
|
10
|
+
}
|
|
11
|
+
declare const modelOpenAPIGenerator: ModelOpenAPIGenerator;
|
|
12
|
+
export default modelOpenAPIGenerator;
|
|
@@ -21,11 +21,13 @@ export type SMTPConnectionOptions = {
|
|
|
21
21
|
secure?: boolean;
|
|
22
22
|
auth?: SMTPAuthOptions;
|
|
23
23
|
name?: string;
|
|
24
|
+
user?: string;
|
|
25
|
+
pass?: string;
|
|
24
26
|
};
|
|
25
27
|
/**
|
|
26
28
|
* A service class to handle email-related tasks, including sending emails.
|
|
27
29
|
*
|
|
28
|
-
* See the api reference [www.arkosjs.com/docs/
|
|
30
|
+
* See the api reference [www.arkosjs.com/docs/reference/the-email-service-class](https://www.arkosjs.com/docs/reference/the-email-service-class)
|
|
29
31
|
*/
|
|
30
32
|
export declare class EmailService {
|
|
31
33
|
transporter: Transporter | null;
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @property {number} statusCode - HTTP status code of the error.
|
|
7
7
|
* @property {string} status - Status message derived from the status code (`fail` for 4xx, `error` for 5xx).
|
|
8
|
-
* @property {boolean} [missing=false] - Flag to indicate if a resource is missing.
|
|
9
8
|
* @property {boolean} isOperational - Indicates if the error is operational (intended for client visibility).
|
|
10
9
|
* @property {string} [code] - Optional error code for categorization.
|
|
11
10
|
* @property {Record<string, any>} [meta] - Additional metadata related to the error.
|
|
@@ -33,7 +32,6 @@
|
|
|
33
32
|
declare class AppError extends Error {
|
|
34
33
|
statusCode: number;
|
|
35
34
|
status: string;
|
|
36
|
-
missing?: boolean;
|
|
37
35
|
isOperational: boolean;
|
|
38
36
|
code?: string;
|
|
39
37
|
meta?: Record<string, any>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArkosAnyRequestHandler } from "../../../types";
|
|
2
2
|
/**
|
|
3
3
|
* Used to wrap request handlers and middleware for automatic catch async errors and throw to next to invoke the global error handler
|
|
4
4
|
*
|
|
@@ -16,7 +16,7 @@ import { ArkosRequestHandler, ArkosErrorRequestHandler } from "../../../types";
|
|
|
16
16
|
* })
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
declare const catchAsync: (fn:
|
|
19
|
+
declare const catchAsync: (fn: ArkosAnyRequestHandler, options?: {
|
|
20
20
|
type: "error" | "normal";
|
|
21
21
|
}) => any;
|
|
22
22
|
export type CatchAsyncReturnType = ReturnType<typeof catchAsync>;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import AppError from "./app-error";
|
|
2
|
-
export interface PrismaError {
|
|
3
|
-
code?: string;
|
|
4
|
-
message: string;
|
|
5
|
-
meta?: Record<string, any>;
|
|
6
|
-
name?: string;
|
|
7
|
-
}
|
|
8
2
|
export declare function handleJWTError(): AppError;
|
|
9
3
|
export declare function handleJWTExpired(): AppError;
|
|
10
4
|
export declare function handlePrismaClientValidationError(err: AppError): AppError;
|
|
@@ -12,37 +6,18 @@ export declare function handleAuthenticationError(_: AppError): AppError;
|
|
|
12
6
|
export declare function handleServerNotReachableError(_: AppError): AppError;
|
|
13
7
|
export declare function handleConnectionTimeoutError(_: AppError): AppError;
|
|
14
8
|
export declare function handleDatabaseNotFoundError(_: AppError): AppError;
|
|
15
|
-
export declare function handleEnvironmentVariableError(err: AppError): AppError;
|
|
16
9
|
export declare function handleFieldValueTooLargeError(err: AppError): AppError;
|
|
17
10
|
export declare function handleRecordNotFoundError(_: AppError): AppError;
|
|
18
|
-
export declare function handleUniqueConstraintError(err:
|
|
11
|
+
export declare function handleUniqueConstraintError(err: any): AppError;
|
|
19
12
|
export declare function handleForeignKeyConstraintError(_: AppError): AppError;
|
|
20
13
|
export declare function handleConstraintFailedError(err: AppError): AppError;
|
|
21
|
-
export declare function handleInvalidFieldValueError(err: AppError): AppError;
|
|
22
|
-
export declare function handleInvalidFieldProvidedError(err: AppError): AppError;
|
|
23
|
-
export declare function handleDataValidationError(_: AppError): AppError;
|
|
24
|
-
export declare function handleQueryParsingError(err: AppError): AppError;
|
|
25
|
-
export declare function handleInvalidQueryFormatError(err: AppError): AppError;
|
|
26
|
-
export declare function handleRawQueryExecutionError(_: AppError): AppError;
|
|
27
|
-
export declare function handleNullConstraintViolationError(err: AppError): AppError;
|
|
28
14
|
export declare function handleSchemaCreationFailedError(_: AppError): AppError;
|
|
29
15
|
export declare function handleMigrationAlreadyAppliedError(err: AppError): AppError;
|
|
30
16
|
export declare function handleMigrationScriptFailedError(err: AppError): AppError;
|
|
31
17
|
export declare function handleVersionMismatchError(_: AppError): AppError;
|
|
32
|
-
export declare function handleMigrationFileReadError(err: AppError): AppError;
|
|
33
|
-
export declare function handleSchemaDriftError(_: AppError): AppError;
|
|
34
|
-
export declare function handleSchemaSyntaxError(_: AppError): AppError;
|
|
35
|
-
export declare function handleClientTypeError(_: AppError): AppError;
|
|
36
|
-
export declare function handleDynamicQueryError(_: AppError): AppError;
|
|
37
|
-
export declare function handleRelationLoadingError(err: AppError): AppError;
|
|
38
|
-
export declare function handleBinaryError(err: AppError): AppError;
|
|
39
|
-
export declare function handleNetworkError(_: AppError): AppError;
|
|
40
|
-
export declare function handleUnhandledPromiseError(_: AppError): AppError;
|
|
41
|
-
export declare function handleDataTypeError(err: AppError): AppError;
|
|
42
|
-
export declare function handleEmptyResultError(_: AppError): AppError;
|
|
43
18
|
export declare function handleNonExistingRecord(err: {
|
|
44
19
|
meta?: Record<string, any>;
|
|
45
20
|
[x: string]: any;
|
|
46
21
|
}): AppError;
|
|
22
|
+
export declare function handleDriverAdapterError(err: any): AppError | null;
|
|
47
23
|
export declare function handlePrismaClientInitializationError(_: any): AppError;
|
|
48
|
-
export declare function handleRequiredRelationViolationError(err: AppError): AppError;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import AppError from "./app-error";
|
|
2
|
+
/**
|
|
3
|
+
* 400 - Bad Request
|
|
4
|
+
* @example throw new BadRequestError("Invalid input", "InvalidInput", { field: "email" })
|
|
5
|
+
*/
|
|
6
|
+
export declare class BadRequestError extends AppError {
|
|
7
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 401 - Unauthorized
|
|
11
|
+
* @example throw new UnauthorizedError("Invalid token", "InvalidToken")
|
|
12
|
+
*/
|
|
13
|
+
export declare class UnauthorizedError extends AppError {
|
|
14
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 402 - Payment Required
|
|
18
|
+
* @example throw new PaymentRequiredError("Subscription expired", "PaymentRequired")
|
|
19
|
+
*/
|
|
20
|
+
export declare class PaymentRequiredError extends AppError {
|
|
21
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 403 - Forbidden
|
|
25
|
+
* @example throw new ForbiddenError("Access denied", "Forbidden", { resource: "admin" })
|
|
26
|
+
*/
|
|
27
|
+
export declare class ForbiddenError extends AppError {
|
|
28
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 404 - Not Found
|
|
32
|
+
* @example throw new NotFoundError("User not found", "NotFound", { id: 123 })
|
|
33
|
+
*/
|
|
34
|
+
export declare class NotFoundError extends AppError {
|
|
35
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 405 - Method Not Allowed
|
|
39
|
+
* @example throw new MethodNotAllowedError("POST not allowed", "MethodNotAllowed")
|
|
40
|
+
*/
|
|
41
|
+
export declare class MethodNotAllowedError extends AppError {
|
|
42
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 406 - Not Acceptable
|
|
46
|
+
* @example throw new NotAcceptableError("Unsupported format", "NotAcceptable")
|
|
47
|
+
*/
|
|
48
|
+
export declare class NotAcceptableError extends AppError {
|
|
49
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 408 - Request Timeout
|
|
53
|
+
* @example throw new RequestTimeoutError("Upload took too long", "RequestTimeout")
|
|
54
|
+
*/
|
|
55
|
+
export declare class RequestTimeoutError extends AppError {
|
|
56
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 409 - Conflict
|
|
60
|
+
* @example throw new ConflictError("Duplicate entry", "Conflict", { field: "email" })
|
|
61
|
+
*/
|
|
62
|
+
export declare class ConflictError extends AppError {
|
|
63
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 410 - Gone
|
|
67
|
+
* @example throw new GoneError("Resource deleted", "Gone")
|
|
68
|
+
*/
|
|
69
|
+
export declare class GoneError extends AppError {
|
|
70
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 411 - Length Required
|
|
74
|
+
* @example throw new LengthRequiredError("Content-Length missing", "LengthRequired")
|
|
75
|
+
*/
|
|
76
|
+
export declare class LengthRequiredError extends AppError {
|
|
77
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 412 - Precondition Failed
|
|
81
|
+
* @example throw new PreconditionFailedError("ETag mismatch", "PreconditionFailed")
|
|
82
|
+
*/
|
|
83
|
+
export declare class PreconditionFailedError extends AppError {
|
|
84
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 413 - Payload Too Large
|
|
88
|
+
* @example throw new PayloadTooLargeError("File exceeds 10MB", "PayloadTooLarge", { max: "10MB" })
|
|
89
|
+
*/
|
|
90
|
+
export declare class PayloadTooLargeError extends AppError {
|
|
91
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 414 - URI Too Long
|
|
95
|
+
* @example throw new UriTooLongError("Query string too long", "UriTooLong")
|
|
96
|
+
*/
|
|
97
|
+
export declare class UriTooLongError extends AppError {
|
|
98
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 415 - Unsupported Media Type
|
|
102
|
+
* @example throw new UnsupportedMediaTypeError("Expected JSON", "UnsupportedMediaType")
|
|
103
|
+
*/
|
|
104
|
+
export declare class UnsupportedMediaTypeError extends AppError {
|
|
105
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 416 - Range Not Satisfiable
|
|
109
|
+
* @example throw new RangeNotSatisfiableError("Invalid byte range", "RangeNotSatisfiable")
|
|
110
|
+
*/
|
|
111
|
+
export declare class RangeNotSatisfiableError extends AppError {
|
|
112
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 417 - Expectation Failed
|
|
116
|
+
* @example throw new ExpectationFailedError("Expect header failed", "ExpectationFailed")
|
|
117
|
+
*/
|
|
118
|
+
export declare class ExpectationFailedError extends AppError {
|
|
119
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 418 - I'm a teapot
|
|
123
|
+
* @example throw new ImATeapotError("Cannot brew coffee", "ImATeapot")
|
|
124
|
+
*/
|
|
125
|
+
export declare class ImATeapotError extends AppError {
|
|
126
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 422 - Unprocessable Content
|
|
130
|
+
* @example throw new UnprocessableContentError("Validation failed", "ValidationFailed", { errors: [...] })
|
|
131
|
+
*/
|
|
132
|
+
export declare class UnprocessableContentError extends AppError {
|
|
133
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 429 - Too Many Requests
|
|
137
|
+
* @example throw new TooManyRequestsError("Rate limit exceeded", "RateLimitExceeded", { retryAfter: 60 })
|
|
138
|
+
*/
|
|
139
|
+
export declare class TooManyRequestsError extends AppError {
|
|
140
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 500 - Internal Server Error
|
|
144
|
+
* @example throw new InternalServerError("Database connection failed", "DatabaseError")
|
|
145
|
+
*/
|
|
146
|
+
export declare class InternalServerError extends AppError {
|
|
147
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 501 - Not Implemented
|
|
151
|
+
* @example throw new NotImplementedError("Feature coming soon", "NotImplemented")
|
|
152
|
+
*/
|
|
153
|
+
export declare class NotImplementedError extends AppError {
|
|
154
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 502 - Bad Gateway
|
|
158
|
+
* @example throw new BadGatewayError("Upstream timeout", "BadGateway")
|
|
159
|
+
*/
|
|
160
|
+
export declare class BadGatewayError extends AppError {
|
|
161
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 503 - Service Unavailable
|
|
165
|
+
* @example throw new ServiceUnavailableError("Maintenance mode", "ServiceUnavailable", { retryAfter: 300 })
|
|
166
|
+
*/
|
|
167
|
+
export declare class ServiceUnavailableError extends AppError {
|
|
168
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* 504 - Gateway Timeout
|
|
172
|
+
* @example throw new GatewayTimeoutError("Upstream timeout", "GatewayTimeout")
|
|
173
|
+
*/
|
|
174
|
+
export declare class GatewayTimeoutError extends AppError {
|
|
175
|
+
constructor(message?: string, code?: string, meta?: Record<string, any>);
|
|
176
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getHandledError(err: any): any;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Handles file uploads and allows to be extended via route hooks.
|
|
3
3
|
*/
|
|
4
4
|
export declare class FileUploadController {
|
|
5
|
-
private handleUploadError;
|
|
6
5
|
private getRouteHook;
|
|
7
6
|
private getAfterHook;
|
|
8
7
|
/**
|
|
@@ -33,7 +32,13 @@ export declare class FileUploadController {
|
|
|
33
32
|
/**
|
|
34
33
|
* Controller instance responsible for handling file upload operations.
|
|
35
34
|
*
|
|
36
|
-
* @
|
|
35
|
+
* @remarks
|
|
36
|
+
* This controller handles various file upload operations including validation,
|
|
37
|
+
* storage, and response management.
|
|
38
|
+
*
|
|
39
|
+
* @instance
|
|
40
|
+
* @constant
|
|
41
|
+
* @see {@link https://www.arkosjs.com/docs/reference/file-upload-controller-object}
|
|
37
42
|
*/
|
|
38
43
|
declare const fileUploadController: FileUploadController;
|
|
39
44
|
export default fileUploadController;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import multer from "multer";
|
|
2
2
|
import { ArkosNextFunction, ArkosRequest, ArkosRequestHandler, ArkosResponse } from "../../types";
|
|
3
|
+
import { ImageOptimizationOptions } from "./utils/helpers/file-upload.helpers";
|
|
3
4
|
/**
|
|
4
5
|
* Service to handle file uploads, including single and multiple file uploads,
|
|
5
6
|
* file validation (type, size), and file deletion.
|
|
@@ -60,12 +61,7 @@ export declare class FileUploadService {
|
|
|
60
61
|
* @param {object} options - Optional parameters for image processing
|
|
61
62
|
* @returns {Promise<string|string[]>} URL or array of URLs to the uploaded files
|
|
62
63
|
*/
|
|
63
|
-
upload(req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction, options?:
|
|
64
|
-
format?: string;
|
|
65
|
-
width?: number;
|
|
66
|
-
height?: number;
|
|
67
|
-
resizeTo?: number;
|
|
68
|
-
}): Promise<string | string[] | null>;
|
|
64
|
+
upload(req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction, options?: ImageOptimizationOptions): Promise<string | string[] | null>;
|
|
69
65
|
/**
|
|
70
66
|
* Deletes a file based on filename and file type from request parameters
|
|
71
67
|
* @param {string} fileName - The name of the file to delete
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FileUploadRouterEndpoint } from "../../../types/router-config";
|
|
2
|
+
import { ArkosRouteConfig } from "../../../exports";
|
|
3
|
+
import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
|
|
4
|
+
declare class FileUploadJsonSchemaGenerator {
|
|
5
|
+
private formatBytes;
|
|
6
|
+
private getFileTypeDescription;
|
|
7
|
+
private getMultipartRequestBody;
|
|
8
|
+
private getImageQueryParameters;
|
|
9
|
+
getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: FileUploadRouterEndpoint): Partial<ExtendedOperationObject>;
|
|
10
|
+
}
|
|
11
|
+
declare const fileUploadJsonSchemaGenerator: FileUploadJsonSchemaGenerator;
|
|
12
|
+
export default fileUploadJsonSchemaGenerator;
|
|
@@ -12,7 +12,27 @@ export declare function generateRelativePath(filePath: string, uploadDir: string
|
|
|
12
12
|
* Handles basic file processing for non-image files
|
|
13
13
|
*/
|
|
14
14
|
export declare const processFile: (req: ArkosRequest, filePath: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Options accepted by the image optimizer. Numeric values may arrive as
|
|
17
|
+
* strings from query parameters and are normalized internally.
|
|
18
|
+
*/
|
|
19
|
+
export interface ImageOptimizationOptions {
|
|
20
|
+
/** Set to `false` to skip optimization and keep the original bytes as-is. */
|
|
21
|
+
optimize?: boolean;
|
|
22
|
+
format?: string;
|
|
23
|
+
quality?: number | string;
|
|
24
|
+
width?: number | string;
|
|
25
|
+
height?: number | string;
|
|
26
|
+
resizeTo?: number | string;
|
|
27
|
+
fit?: "cover" | "contain" | "fill" | "inside" | "outside";
|
|
28
|
+
withoutEnlargement?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Optimizes an image file in place using Sharp. Returns the resulting file
|
|
32
|
+
* path, which may use a different extension when a format is requested.
|
|
33
|
+
*/
|
|
34
|
+
export declare const optimizeImage: (filePath: string, options?: ImageOptimizationOptions) => Promise<string>;
|
|
15
35
|
/**
|
|
16
36
|
* Processes image files using Sharp for resizing and format conversion
|
|
17
37
|
*/
|
|
18
|
-
export declare const processImage: (req: ArkosRequest, next: ArkosNextFunction, filePath: string, options
|
|
38
|
+
export declare const processImage: (req: ArkosRequest, next: ArkosNextFunction, filePath: string, options?: ImageOptimizationOptions) => Promise<string | null>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import express from "express";
|
|
2
|
+
import type { UploadPrepare } from "../../../../types/upload";
|
|
3
|
+
import { IArkosRouter } from "../../../../utils/arkos-router/types";
|
|
4
|
+
export type ServeUploadDirOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Public URL folder, relative to the file upload `baseRoute`.
|
|
7
|
+
*
|
|
8
|
+
* @default `"/" + dir`
|
|
9
|
+
*/
|
|
10
|
+
urlPath?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the disk parameters for this folder. Required for every dynamic
|
|
13
|
+
* folder (`:param` in `dir`). It may be async and may throw to deny the
|
|
14
|
+
* request.
|
|
15
|
+
*/
|
|
16
|
+
prepare?: UploadPrepare;
|
|
17
|
+
/**
|
|
18
|
+
* Options passed to `express.static`.
|
|
19
|
+
*/
|
|
20
|
+
expressStatic?: Parameters<typeof express.static>[1];
|
|
21
|
+
/**
|
|
22
|
+
* Allow files in nested folders.
|
|
23
|
+
*
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
recursive?: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Serves a folder from the upload directory.
|
|
30
|
+
*
|
|
31
|
+
* Authentication belongs on the router mount:
|
|
32
|
+
*
|
|
33
|
+
* ```ts
|
|
34
|
+
* fileUploadRouter.use(
|
|
35
|
+
* { authentication: fileUploadPolicy.View },
|
|
36
|
+
* arkos.serveUploadDir("/storage/acme", { urlPath: "/private/files" })
|
|
37
|
+
* );
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* When the resolved `dir` is a file, the route serves that file directly.
|
|
41
|
+
* When it is a directory, the remainder of the request URL is served from it.
|
|
42
|
+
*/
|
|
43
|
+
export declare function serveUploadDir(dir: string, options?: ServeUploadDirOptions): IArkosRouter;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const DEFAULT_UPLOAD_DIRS: readonly ["images", "videos", "documents", "files"];
|
|
2
|
+
export declare function isSafeUploadSegment(segment: string, allowParam?: boolean): boolean;
|
|
3
|
+
export declare function assertSafeUploadPath(value: string, options?: {
|
|
4
|
+
allowParams?: boolean;
|
|
5
|
+
label?: string;
|
|
6
|
+
}): string;
|
|
7
|
+
export declare function normalizeUploadDir(dir: string): string;
|
|
8
|
+
export declare function normalizeUploadUrlPath(urlPath: string): string;
|
|
9
|
+
export declare function isSafeUploadParam(value: unknown): value is string;
|
|
10
|
+
export declare function isPathInside(base: string, target: string): boolean;
|
|
11
|
+
export declare function resolveUploadPath(root: string, relative: string, options?: {
|
|
12
|
+
strictSegments?: boolean;
|
|
13
|
+
}): string | null;
|
|
14
|
+
export declare function isRealPathInside(base: string, target: string): Promise<boolean>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { UploadUrlPath } from "../../../../types/upload";
|
|
2
|
+
export type UploadWriteRegistration = {
|
|
3
|
+
dir?: string;
|
|
4
|
+
urlPath?: UploadUrlPath;
|
|
5
|
+
serve?: boolean;
|
|
6
|
+
route: string;
|
|
7
|
+
hasPrepare?: boolean;
|
|
8
|
+
type?: "single" | "array" | "fields";
|
|
9
|
+
};
|
|
10
|
+
export type UploadServeRegistration = {
|
|
11
|
+
dir: string;
|
|
12
|
+
urlPath: string;
|
|
13
|
+
dirParams: string[];
|
|
14
|
+
pathParams: string[];
|
|
15
|
+
recursive: boolean;
|
|
16
|
+
dynamic: boolean;
|
|
17
|
+
hasPrepare: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare class UploadServingRegistry {
|
|
20
|
+
private writeRegistrations;
|
|
21
|
+
private serveRegistrations;
|
|
22
|
+
private findFileServingEnabled;
|
|
23
|
+
registerWrite(registration: UploadWriteRegistration): void;
|
|
24
|
+
registerServe(registration: UploadServeRegistration): void;
|
|
25
|
+
getWriteRegistrations(): UploadWriteRegistration[];
|
|
26
|
+
getServeRegistrations(): UploadServeRegistration[];
|
|
27
|
+
setFindFileServingEnabled(enabled: boolean): void;
|
|
28
|
+
isFindFileServingEnabled(): boolean;
|
|
29
|
+
reset(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare const uploadServingRegistry: UploadServingRegistry;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Router } from "express";
|
|
2
1
|
import { ArkosNextFunction, ArkosRequest, ArkosResponse } from "../../exports";
|
|
3
2
|
import { Arkos } from "../../types/arkos";
|
|
4
3
|
import { UserArkosConfig } from "../../utils/define-config";
|
|
5
|
-
export declare function getSwaggerRouter(arkosConfig: UserArkosConfig, app: Arkos):
|
|
4
|
+
export declare function getSwaggerRouter(arkosConfig: UserArkosConfig, app: Arkos): import("../../exports").IArkosRouter;
|
|
6
5
|
export declare function scalarMiddleware(scalarHandler: any, swaggerSpecification: object, swaggerConfigs: any): (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<any>;
|