arkos 2.0.0-next.2 → 2.0.0-next.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -145
- package/cli.js +11 -13
- package/dist/esm/app.js +17 -16
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-gateway/arkos-gateway.js +338 -0
- package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js +168 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
- package/dist/esm/components/arkos-gateway/types.js +3 -0
- package/dist/esm/components/arkos-gateway/types.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
- package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
- package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
- package/dist/esm/components/arkos-policy/index.js +3 -1
- package/dist/esm/components/arkos-policy/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/index.js +2 -1
- package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/exports/index.js +3 -3
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/middlewares/index.js +1 -1
- package/dist/esm/exports/middlewares/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -2
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/websockets.js +5 -0
- package/dist/esm/exports/websockets.js.map +1 -0
- package/dist/esm/generated.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +214 -222
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +26 -9
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +90 -102
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
- package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/docs-links.js +6 -0
- package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +182 -162
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +31 -48
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +23 -9
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +33 -138
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/base/utils/error-prettifier.js +26 -30
- package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
- package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +17 -10
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +9 -103
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +208 -214
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +35 -12
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +13 -8
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +346 -0
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +39 -22
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +6 -3
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/types/auth.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/types/validation/validation-manager.js +49 -0
- package/dist/esm/types/validation/validation-manager.js.map +1 -0
- package/dist/esm/types/validation/validator.js +2 -0
- package/dist/esm/types/validation/validator.js.map +1 -0
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +37 -130
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
- package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +188 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +88 -29
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +364 -89
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js +6 -6
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +16 -7
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +18 -28
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +5 -4
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +70 -56
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +54 -50
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +8 -37
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +25 -14
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -4
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +31 -18
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/define-config.js +14 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/docs-links.js +2 -0
- package/dist/esm/utils/docs-links.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +0 -6
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +2 -1
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +46 -27
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +26 -33
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +2 -2
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +41 -17
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/prisma/types.js.map +1 -1
- package/dist/esm/utils/remove-dir.js +1 -1
- package/dist/esm/utils/remove-dir.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +23 -21
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +10 -7
- package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
- package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
- package/dist/types/components/arkos-gateway/types.d.ts +364 -0
- package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
- package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
- package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
- package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +11 -5
- package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
- package/dist/types/components/arkos-route-hook/types.d.ts +9 -5
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/exports/index.d.ts +5 -5
- package/dist/types/exports/middlewares/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -3
- package/dist/types/exports/websockets.d.ts +5 -0
- package/dist/types/modules/auth/auth.service.d.ts +80 -51
- package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
- package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
- package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
- package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
- package/dist/types/modules/base/base.controller.d.ts +4 -4
- package/dist/types/modules/base/base.middlewares.d.ts +1 -7
- package/dist/types/modules/base/base.service.d.ts +8 -17
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
- package/dist/types/modules/email/email.service.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -27
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
- package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
- package/dist/types/types/arkos-config/utils.d.ts +68 -0
- package/dist/types/types/arkos-prisma-input.d.ts +4 -3
- package/dist/types/types/arkos.d.ts +5 -15
- package/dist/types/types/auth.d.ts +4 -4
- package/dist/types/types/index.d.ts +10 -58
- package/dist/types/types/new-arkos-config.d.ts +326 -36
- package/dist/types/types/router-config.d.ts +0 -63
- package/dist/types/types/upload.d.ts +10 -0
- package/dist/types/types/validation/validation-manager.d.ts +27 -0
- package/dist/types/types/validation/validator.d.ts +2 -0
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +83 -8
- package/dist/types/utils/arkos-router/types/index.d.ts +74 -23
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +65 -8
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/build.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +15 -6
- package/dist/types/utils/cli/start.d.ts +3 -1
- package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
- package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
- package/dist/types/utils/define-config.d.ts +1 -1
- package/dist/types/utils/docs-links.d.ts +1 -0
- package/dist/types/utils/dynamic-loader.d.ts +2 -2
- package/dist/types/utils/features/api.features.d.ts +1 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/initialize-app.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
- package/dist/types/utils/prisma/types.d.ts +3 -2
- package/package.json +117 -84
- package/dist/cjs/app.js +0 -79
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
- package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
- package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/index.js +0 -36
- package/dist/cjs/components/arkos-policy/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/types.js +0 -3
- package/dist/cjs/components/arkos-policy/types.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/index.js +0 -50
- package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
- package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/types.js +0 -3
- package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/index.js +0 -35
- package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
- package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/types.js +0 -3
- package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
- package/dist/cjs/exports/auth/index.js +0 -6
- package/dist/cjs/exports/auth/index.js.map +0 -1
- package/dist/cjs/exports/config.js +0 -6
- package/dist/cjs/exports/config.js.map +0 -1
- package/dist/cjs/exports/controllers/index.js +0 -42
- package/dist/cjs/exports/controllers/index.js.map +0 -1
- package/dist/cjs/exports/error-handler/index.js +0 -11
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -23
- package/dist/cjs/exports/index.js.map +0 -1
- package/dist/cjs/exports/middlewares/index.js +0 -7
- package/dist/cjs/exports/middlewares/index.js.map +0 -1
- package/dist/cjs/exports/prisma/index.js +0 -13
- package/dist/cjs/exports/prisma/index.js.map +0 -1
- package/dist/cjs/exports/services/index.js +0 -53
- package/dist/cjs/exports/services/index.js.map +0 -1
- package/dist/cjs/exports/utils/index.js +0 -26
- package/dist/cjs/exports/utils/index.js.map +0 -1
- package/dist/cjs/exports/validation/index.js +0 -11
- package/dist/cjs/exports/validation/index.js.map +0 -1
- package/dist/cjs/generated.js +0 -7
- package/dist/cjs/generated.js.map +0 -1
- package/dist/cjs/modules/auth/auth.controller.js +0 -254
- package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
- package/dist/cjs/modules/auth/auth.router.js +0 -113
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -277
- package/dist/cjs/modules/auth/auth.service.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
- package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -275
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -231
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -112
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -432
- package/dist/cjs/modules/base/base.service.js.map +0 -1
- package/dist/cjs/modules/base/types/base.service.types.js +0 -3
- package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
- package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
- package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/router-validator.js +0 -13
- package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/debugger/debugger.service.js +0 -59
- package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
- package/dist/cjs/modules/email/email.service.js +0 -106
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/cjs/modules/swagger/swagger.router.js +0 -65
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/server.js +0 -60
- package/dist/cjs/server.js.map +0 -1
- package/dist/cjs/types/arkos-prisma-input.js +0 -3
- package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
- package/dist/cjs/types/arkos.js +0 -3
- package/dist/cjs/types/arkos.js.map +0 -1
- package/dist/cjs/types/auth.js +0 -3
- package/dist/cjs/types/auth.js.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/new-arkos-config.js +0 -3
- package/dist/cjs/types/new-arkos-config.js.map +0 -1
- package/dist/cjs/types/router-config.js +0 -3
- package/dist/cjs/types/router-config.js.map +0 -1
- package/dist/cjs/utils/arkos-env.js +0 -9
- package/dist/cjs/utils/arkos-env.js.map +0 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -253
- package/dist/cjs/utils/arkos-router/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
- package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/index.js +0 -3
- package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
- package/dist/cjs/utils/bundler.js +0 -163
- package/dist/cjs/utils/bundler.js.map +0 -1
- package/dist/cjs/utils/cli/build.js +0 -199
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -128
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -79
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -229
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -191
- package/dist/cjs/utils/cli/index.js.map +0 -1
- package/dist/cjs/utils/cli/prisma-generate.js +0 -112
- package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
- package/dist/cjs/utils/cli/start.js +0 -72
- package/dist/cjs/utils/cli/start.js.map +0 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -115
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
- package/dist/cjs/utils/define-config.js +0 -46
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -52
- package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
- package/dist/cjs/utils/dynamic-loader.js +0 -22
- package/dist/cjs/utils/dynamic-loader.js.map +0 -1
- package/dist/cjs/utils/expand-env.js +0 -72
- package/dist/cjs/utils/expand-env.js.map +0 -1
- package/dist/cjs/utils/features/api.features.js +0 -201
- package/dist/cjs/utils/features/api.features.js.map +0 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
- package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
- package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
- package/dist/cjs/utils/helpers/exit-error.js +0 -12
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -105
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
- package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/text.helpers.js +0 -28
- package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
- package/dist/cjs/utils/initialize-app.js +0 -55
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
- package/dist/cjs/utils/prisma/types.js +0 -3
- package/dist/cjs/utils/prisma/types.js.map +0 -1
- package/dist/cjs/utils/remove-dir.js +0 -14
- package/dist/cjs/utils/remove-dir.js.map +0 -1
- package/dist/cjs/utils/setup-app.js +0 -119
- package/dist/cjs/utils/setup-app.js.map +0 -1
- package/dist/cjs/utils/sheu.js +0 -131
- package/dist/cjs/utils/sheu.js.map +0 -1
- package/dist/cjs/utils/validate-dto.js +0 -19
- package/dist/cjs/utils/validate-dto.js.map +0 -1
- package/dist/cjs/utils/validate-schema.js +0 -75
- package/dist/cjs/utils/validate-schema.js.map +0 -1
- package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
- package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/index.js +0 -32
- package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/reader.js +0 -24
- package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/types.js +0 -2
- package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
- package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
- package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
- package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
- package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import cors from "cors";
|
|
2
|
-
import express from "express";
|
|
2
|
+
import express, { CookieOptions } from "express";
|
|
3
3
|
import { Options as RateLimitOptions } from "express-rate-limit";
|
|
4
4
|
import cookieParser from "cookie-parser";
|
|
5
5
|
import compression from "compression";
|
|
@@ -11,16 +11,52 @@ import type { ApiReferenceConfiguration } from "@scalar/express-api-reference" w
|
|
|
11
11
|
import nodemailer from "nodemailer";
|
|
12
12
|
import { ArkosRequestHandler } from ".";
|
|
13
13
|
import { PrismaClient } from "../generated";
|
|
14
|
+
import { AuthenticateHookHandler, AuthenticateAfterHookHandler, AuthenticateErrorHookHandler, AuthorizeHookHandler, AuthorizeAfterHookHandler, AuthorizeErrorHookHandler } from "./arkos-config/utils";
|
|
14
15
|
/**
|
|
15
16
|
* Defines the initial configs of the api to be loaded at startup when arkos.init() is called.
|
|
16
17
|
*/
|
|
17
18
|
export type ArkosConfig = {
|
|
19
|
+
/**
|
|
20
|
+
* Configuration for resolving your Arkos application's source files at runtime.
|
|
21
|
+
*
|
|
22
|
+
* @since 1.6.1-canary.2
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
source?: {
|
|
26
|
+
/**
|
|
27
|
+
* The entry point file of your Arkos application, resolved at runtime.
|
|
28
|
+
*
|
|
29
|
+
* This should point to the file where `app.listen()` or `app.listen(server)`
|
|
30
|
+
* is called to start the HTTP server.
|
|
31
|
+
*
|
|
32
|
+
* Supports both TypeScript and JavaScript projects.
|
|
33
|
+
*
|
|
34
|
+
* @type {string}
|
|
35
|
+
*
|
|
36
|
+
* @default "src/app.ts" (TypeScript) | "src/app.js" (JavaScript)
|
|
37
|
+
*
|
|
38
|
+
* @since 1.6.1-canary.2
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* // TypeScript project
|
|
43
|
+
* entryPoint: "src/app.ts"
|
|
44
|
+
*
|
|
45
|
+
* // JavaScript project
|
|
46
|
+
* entryPoint: "src/app.js"
|
|
47
|
+
*
|
|
48
|
+
* // Custom path
|
|
49
|
+
* entryPoint: "src/server/main.ts"
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
entryPoint?: string;
|
|
53
|
+
};
|
|
18
54
|
/**
|
|
19
55
|
* The global prefixer for the whole application
|
|
20
56
|
*
|
|
21
57
|
* @default "/api"
|
|
22
58
|
*/
|
|
23
|
-
globalPrefix?: string;
|
|
59
|
+
readonly globalPrefix?: string;
|
|
24
60
|
/**
|
|
25
61
|
* Allows to configure request configs
|
|
26
62
|
*/
|
|
@@ -66,14 +102,137 @@ export type ArkosConfig = {
|
|
|
66
102
|
/**
|
|
67
103
|
* Defines authentication related configurations, by default is undefined.
|
|
68
104
|
*
|
|
69
|
-
* See [www.arkosjs.com/docs/core-concepts/authentication
|
|
105
|
+
* See [www.arkosjs.com/docs/core-concepts/authentication/setup](https://www.arkosjs.com/docs/core-concepts/authentication/setup) for details.
|
|
70
106
|
*/
|
|
71
107
|
authentication?: {
|
|
108
|
+
/**
|
|
109
|
+
* Lifecycle hooks for the built-in authentication and authorization pipeline.
|
|
110
|
+
*
|
|
111
|
+
* These hooks only apply to **auto-generated Arkos routes**. On custom routes using
|
|
112
|
+
* `authService.authenticate` directly, chain them manually as standard middlewares.
|
|
113
|
+
*
|
|
114
|
+
* Hooks run as standard Express middlewares — call `next()` to continue or
|
|
115
|
+
* `next(error)` to abort and forward to the global error handler.
|
|
116
|
+
*
|
|
117
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/authentication/hooks}
|
|
118
|
+
*/
|
|
119
|
+
hooks?: {
|
|
120
|
+
authenticate?: {
|
|
121
|
+
/**
|
|
122
|
+
* Runs before JWT extraction and verification.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* before: ({ req, skip, action, resource, rule }) => {
|
|
127
|
+
* req.authContext = { startedAt: Date.now() };
|
|
128
|
+
* }
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example Skip core logic entirely (e.g. custom auth)
|
|
132
|
+
* ```ts
|
|
133
|
+
* before: ({ req, skip, action, resource, rule }) => {
|
|
134
|
+
* req.user = myCustomAuth(req);
|
|
135
|
+
* skip();
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
before?: AuthenticateHookHandler | AuthenticateHookHandler[];
|
|
140
|
+
/**
|
|
141
|
+
* Runs after `req.user` has been set.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* after: ({ req }) => {
|
|
146
|
+
* if (!req.user.hasChangedPassword) {
|
|
147
|
+
* throw new AppError("Password change required.", 403, "PasswordChangeRequired");
|
|
148
|
+
* }
|
|
149
|
+
* }
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
after?: AuthenticateAfterHookHandler | AuthenticateAfterHookHandler[];
|
|
153
|
+
/**
|
|
154
|
+
* Runs when authentication throws — invalid token, expired token, user not found, etc.
|
|
155
|
+
* Throw to forward to the global error handler, or call `skip()` to suppress and jump to `after` hooks.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* onError: ({ req, error, skip, action, resource, rule }) => {
|
|
160
|
+
* console.warn(`Auth failed:`, error);
|
|
161
|
+
* throw error;
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @example Suppress error and continue
|
|
166
|
+
* ```ts
|
|
167
|
+
* onError: ({ req, skip, action, resource, rule }) => {
|
|
168
|
+
* req.user = guestUser;
|
|
169
|
+
* skip();
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
onError?: AuthenticateErrorHookHandler | AuthenticateErrorHookHandler[];
|
|
174
|
+
};
|
|
175
|
+
authorize?: {
|
|
176
|
+
/**
|
|
177
|
+
* Runs before the role/permission check.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* before: ({ req }) => {
|
|
182
|
+
* if (req.headers["x-elevated-access"] === process.env.ELEVATION_KEY) {
|
|
183
|
+
* req.user.role = "admin";
|
|
184
|
+
* }
|
|
185
|
+
* }
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @example Skip permission check entirely
|
|
189
|
+
* ```ts
|
|
190
|
+
* before: ({ req, skip, action, resource, rule }) => {
|
|
191
|
+
* req.user.role = myCustomRoleResolver(req);
|
|
192
|
+
* skip();
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
before?: AuthorizeHookHandler | AuthorizeHookHandler[];
|
|
197
|
+
/**
|
|
198
|
+
* Runs after the permission check passes.
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* after: ({ req }) => {
|
|
203
|
+
* auditLog.record({ userId: req.user.id, path: req.path });
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
after?: AuthorizeAfterHookHandler | AuthorizeAfterHookHandler[];
|
|
208
|
+
/**
|
|
209
|
+
* Runs when the user lacks sufficient permissions (403).
|
|
210
|
+
* Throw to forward to the global error handler, or call `skip()` to suppress and jump to `after` hooks.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```ts
|
|
214
|
+
* onError: ({ req, error, action, resource, rule }) => {
|
|
215
|
+
* auditLog.record({ userId: req.user?.id, reason: "insufficient_permissions" });
|
|
216
|
+
* throw error;
|
|
217
|
+
* }
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* @example Suppress error and continue
|
|
221
|
+
* ```ts
|
|
222
|
+
* onError: ({ req, skip, action, resource, rule }) => {
|
|
223
|
+
* req.user.role = "guest";
|
|
224
|
+
* skip();
|
|
225
|
+
* }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
onError?: AuthorizeErrorHookHandler | AuthorizeErrorHookHandler[];
|
|
229
|
+
};
|
|
230
|
+
};
|
|
72
231
|
enabled?: boolean;
|
|
73
232
|
/**
|
|
74
233
|
* Defines whether to use Static or Dynamic Role-Based Acess Control
|
|
75
234
|
*
|
|
76
|
-
* Visit [www.arkosjs.com/docs/core-concepts/authentication
|
|
235
|
+
* Visit [www.arkosjs.com/docs/core-concepts/authentication/setup](https://www.arkosjs.com/docs/core-concepts/authentication/setup) for more details.
|
|
77
236
|
*/
|
|
78
237
|
mode: "static" | "dynamic";
|
|
79
238
|
/**
|
|
@@ -96,7 +255,7 @@ export type ArkosConfig = {
|
|
|
96
255
|
* POST /api/auth/login?usernameField=email
|
|
97
256
|
* ```
|
|
98
257
|
*
|
|
99
|
-
* See more at [www.arkosjs.com/docs/core-concepts/authentication
|
|
258
|
+
* See more at [www.arkosjs.com/docs/core-concepts/authentication/setup#login-with-different-fileds](https://www.arkosjs.com/docs/core-concepts/authentication/setup#login-with-different-fileds)
|
|
100
259
|
*
|
|
101
260
|
* By specifing here another field for username, for example passing "email", "companyCode" or something else your json will be like:
|
|
102
261
|
*
|
|
@@ -113,19 +272,6 @@ export type ArkosConfig = {
|
|
|
113
272
|
/** Defines wether to send the access token in response after login or only send as cookie, defeault is both.*/
|
|
114
273
|
sendAccessTokenThrough?: "cookie-only" | "response-only" | "both";
|
|
115
274
|
};
|
|
116
|
-
/**
|
|
117
|
-
* Specifies the regex pattern used by the authentication system to enforce password strength requirements.
|
|
118
|
-
*
|
|
119
|
-
* **Important**: If using validation libraries like Zod or class-validator, this will be completely overwritten.
|
|
120
|
-
*
|
|
121
|
-
* **Default**: ```/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d).+$/``` - Ensures the password contains at least one uppercase letter, one lowercase letter, and one numeric digit.
|
|
122
|
-
*
|
|
123
|
-
* **message**: (Optional) A custom error message to display when the password does not meet the required strength criteria.
|
|
124
|
-
*/
|
|
125
|
-
passwordValidation?: {
|
|
126
|
-
regex: RegExp;
|
|
127
|
-
message?: string;
|
|
128
|
-
};
|
|
129
275
|
/**
|
|
130
276
|
* Allows to specify the request rate limit for all authentication endpoints but `/api/users/me`.
|
|
131
277
|
*
|
|
@@ -172,20 +318,42 @@ export type ArkosConfig = {
|
|
|
172
318
|
/**
|
|
173
319
|
* Whether the cookie should be marked as secure (sent only over HTTPS).
|
|
174
320
|
* Defaults to `true` in production and `false` in development.
|
|
321
|
+
*
|
|
322
|
+
* @env `JWT_COOKIE_SECURE`
|
|
175
323
|
*/
|
|
176
324
|
secure?: boolean;
|
|
177
325
|
/**
|
|
178
326
|
* Whether the cookie should be marked as HTTP-only.
|
|
179
327
|
* Default is `true` to prevent access via JavaScript.
|
|
328
|
+
*
|
|
329
|
+
* @env `JWT_COOKIE_HTTP_ONLY`
|
|
180
330
|
*/
|
|
181
331
|
httpOnly?: boolean;
|
|
182
332
|
/**
|
|
183
333
|
* Controls the SameSite attribute of the cookie.
|
|
184
334
|
* Defaults to "none" in production and "lax" in development.
|
|
185
335
|
* Options: "lax" | "strict" | "none"
|
|
336
|
+
*
|
|
337
|
+
* @env `JWT_COOKIE_SAME_SITE`
|
|
186
338
|
*/
|
|
187
339
|
sameSite?: "lax" | "strict" | "none";
|
|
188
|
-
|
|
340
|
+
/**
|
|
341
|
+
* Expiry date of the cookie in GMT. If not specified (undefined), creates a session cookie.
|
|
342
|
+
*
|
|
343
|
+
* @default `now() + authentication.jwt.expireIn | JWT_EXPIRES_IN`
|
|
344
|
+
*
|
|
345
|
+
* @since 1.5.11-beta
|
|
346
|
+
*/
|
|
347
|
+
expires?: Date | undefined;
|
|
348
|
+
/**
|
|
349
|
+
* Domain for the cookie. Use a leading dot (e.g. `.example.com`) to include all subdomains.
|
|
350
|
+
*
|
|
351
|
+
* @env `JWT_COOKIE_DOMAIN`
|
|
352
|
+
*
|
|
353
|
+
* @since 1.5.11-beta
|
|
354
|
+
*/
|
|
355
|
+
domain?: string | undefined;
|
|
356
|
+
} & Omit<CookieOptions, "secure" | "httpOnly" | "sameSite" | "expires" | "domain">;
|
|
189
357
|
};
|
|
190
358
|
};
|
|
191
359
|
/** Allows to customize and toggle the built-in validation, by default it is set to `false`. If true is passed it will use validation with the default resolver set to `class-validator` if you intend to change the resolver to `zod` do the following:
|
|
@@ -201,7 +369,7 @@ export type ArkosConfig = {
|
|
|
201
369
|
* })
|
|
202
370
|
* ```
|
|
203
371
|
*
|
|
204
|
-
* @See [www.arkosjs.com/docs/
|
|
372
|
+
* @See [www.arkosjs.com/docs/guides/validation/setup](https://www.arkosjs.com/docs/guides/validation/setup) for more details.
|
|
205
373
|
*/
|
|
206
374
|
validation?: {
|
|
207
375
|
/**
|
|
@@ -225,6 +393,8 @@ export type ArkosConfig = {
|
|
|
225
393
|
* })
|
|
226
394
|
*
|
|
227
395
|
* ```
|
|
396
|
+
*
|
|
397
|
+
* @since 1.4.0-beta
|
|
228
398
|
*/
|
|
229
399
|
strict?: boolean;
|
|
230
400
|
} & ({
|
|
@@ -243,6 +413,9 @@ export type ArkosConfig = {
|
|
|
243
413
|
validationOptions?: ValidatorOptions;
|
|
244
414
|
} | {
|
|
245
415
|
resolver: "zod";
|
|
416
|
+
/**
|
|
417
|
+
* @since v1.5.0-beta
|
|
418
|
+
*/
|
|
246
419
|
validationOptions?: {
|
|
247
420
|
/**
|
|
248
421
|
* Throws an error for know whitelisted fields
|
|
@@ -255,9 +428,15 @@ export type ArkosConfig = {
|
|
|
255
428
|
/**
|
|
256
429
|
* Defines file upload configurations
|
|
257
430
|
*
|
|
258
|
-
* See
|
|
431
|
+
* See {@link https://www.arkosjs.com/docs/guides/file-handling/file-uploads/setup}
|
|
259
432
|
*/
|
|
260
433
|
fileUpload?: {
|
|
434
|
+
/**
|
|
435
|
+
* Disables built-in file upload
|
|
436
|
+
*
|
|
437
|
+
* @since 1.5.11-beta
|
|
438
|
+
*/
|
|
439
|
+
enabled?: boolean;
|
|
261
440
|
/**
|
|
262
441
|
* Defiens the base file upload directory, default is set to /uploads (on root directory)
|
|
263
442
|
*
|
|
@@ -292,7 +471,7 @@ export type ArkosConfig = {
|
|
|
292
471
|
etag: true,
|
|
293
472
|
lastModified: true,
|
|
294
473
|
dotfiles: "ignore",
|
|
295
|
-
fallthrough:
|
|
474
|
+
fallthrough: false,
|
|
296
475
|
index: false,
|
|
297
476
|
cacheControl: true,
|
|
298
477
|
}
|
|
@@ -312,7 +491,7 @@ export type ArkosConfig = {
|
|
|
312
491
|
* Passing an object without overriding everything will only cause it
|
|
313
492
|
* to be deepmerged with the default options.
|
|
314
493
|
*
|
|
315
|
-
* See [www.arkosjs.com/docs/
|
|
494
|
+
* See [www.arkosjs.com/docs/reference/default-supported-upload-files](https://www.arkosjs.com/docs/reference/default-supported-upload-files) for detailed explanation about default values.
|
|
316
495
|
* ```
|
|
317
496
|
*/
|
|
318
497
|
restrictions?: {
|
|
@@ -371,25 +550,35 @@ export type ArkosConfig = {
|
|
|
371
550
|
/**
|
|
372
551
|
* Configuration for CORS (Cross-Origin Resource Sharing).
|
|
373
552
|
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
553
|
+
* Accepts:
|
|
554
|
+
* - `false` — disables CORS middleware entirely.
|
|
555
|
+
* - `cors.CorsOptions` — passed directly to the `cors` middleware.
|
|
556
|
+
* - `cors.CorsOptionsDelegate` — a delegate function passed directly to the `cors` middleware.
|
|
557
|
+
* - `ArkosRequestHandler` — a full Express middleware that replaces the cors middleware entirely.
|
|
558
|
+
* - An object with deprecated `allowedOrigins`, `options`, and `customHandler` properties.
|
|
377
559
|
*
|
|
378
|
-
*
|
|
379
|
-
*
|
|
560
|
+
* In development, defaults to `origin: true, credentials: true`.
|
|
561
|
+
* In production, defaults to `origin: "*"` (equivalent to plain `cors()`).
|
|
380
562
|
*
|
|
381
563
|
* See https://www.npmjs.com/package/cors
|
|
382
564
|
*/
|
|
383
|
-
cors?: false | {
|
|
565
|
+
cors?: false | cors.CorsOptions | cors.CorsOptionsDelegate | {
|
|
566
|
+
/**
|
|
567
|
+
* Defines allowed origins to access the API.
|
|
568
|
+
*
|
|
569
|
+
* @deprecated Use `cors: { origin: string | string[] }` (cors.CorsOptions) directly instead.
|
|
570
|
+
*/
|
|
571
|
+
allowedOrigins?: string | string[] | "*" | true;
|
|
384
572
|
/**
|
|
385
|
-
*
|
|
573
|
+
* Additional cors options.
|
|
574
|
+
*
|
|
575
|
+
* @deprecated Pass cors.CorsOptions directly instead: `cors: { origin: "...", credentials: true }`.
|
|
386
576
|
*/
|
|
387
|
-
allowedOrigins?: string | string[] | "*";
|
|
388
577
|
options?: cors.CorsOptions;
|
|
389
578
|
/**
|
|
390
|
-
* If you would like to override the entire middleware
|
|
579
|
+
* If you would like to override the entire middleware.
|
|
391
580
|
*
|
|
392
|
-
*
|
|
581
|
+
* @deprecated Pass the handler directly instead: `cors: myCorsHandler`.
|
|
393
582
|
*/
|
|
394
583
|
customHandler?: cors.CorsOptionsDelegate;
|
|
395
584
|
} | ArkosRequestHandler;
|
|
@@ -404,7 +593,10 @@ export type ArkosConfig = {
|
|
|
404
593
|
*
|
|
405
594
|
* See [www.npmjs.com/package/cookie-parser](https://www.npmjs.com/package/cookie-parser) for further details.
|
|
406
595
|
*/
|
|
407
|
-
cookieParser?: false |
|
|
596
|
+
cookieParser?: false | {
|
|
597
|
+
secret?: string | string[];
|
|
598
|
+
options?: Parameters<typeof cookieParser>[1];
|
|
599
|
+
} | ArkosRequestHandler;
|
|
408
600
|
/**
|
|
409
601
|
* Options to define how query must be parsed.
|
|
410
602
|
*
|
|
@@ -479,7 +671,7 @@ export type ArkosConfig = {
|
|
|
479
671
|
/**
|
|
480
672
|
* Allows to configure email configurations for sending emails through `emailService`
|
|
481
673
|
*
|
|
482
|
-
* See [www.arkosjs.com/docs/
|
|
674
|
+
* See [www.arkosjs.com/docs/guides/email-service](https://www.arkosjs.com/docs/guides/email-service)
|
|
483
675
|
*/
|
|
484
676
|
email?: {
|
|
485
677
|
/**
|
|
@@ -542,13 +734,18 @@ export type ArkosConfig = {
|
|
|
542
734
|
* }
|
|
543
735
|
* })
|
|
544
736
|
* ```
|
|
545
|
-
* @see {@link https://www.arkosjs.com/docs/
|
|
737
|
+
* @see {@link https://www.arkosjs.com/docs/guides/open-api-documentation/setup}
|
|
546
738
|
*/
|
|
547
739
|
swagger?: {
|
|
548
740
|
/**
|
|
549
741
|
* By default Arkos will disable API Documentation when the project is built `npm run build`, it does not matter what node environment is set. If you want to use it even after the `arkos build` command just set this to `true`.
|
|
550
742
|
* */
|
|
551
743
|
enableAfterBuild?: boolean;
|
|
744
|
+
/**
|
|
745
|
+
* Whether to require superUser authentication to access docs in production.
|
|
746
|
+
* Default: true after build
|
|
747
|
+
*/
|
|
748
|
+
authenticate?: boolean;
|
|
552
749
|
/**
|
|
553
750
|
* Endpoint where the Swagger UI will be available.
|
|
554
751
|
*
|
|
@@ -732,4 +929,97 @@ export type ArkosConfig = {
|
|
|
732
929
|
*/
|
|
733
930
|
instance: PrismaClient;
|
|
734
931
|
};
|
|
932
|
+
/**
|
|
933
|
+
* Allows to suppress specific warnings emitted by Arkos at startup or runtime.
|
|
934
|
+
*
|
|
935
|
+
* @since 1.5.10-beta
|
|
936
|
+
*/
|
|
937
|
+
warnings?: {
|
|
938
|
+
/**
|
|
939
|
+
* Suppresses specific warning messages.
|
|
940
|
+
*/
|
|
941
|
+
suppress?: {
|
|
942
|
+
/**
|
|
943
|
+
* Suppresses Prisma-related warnings.
|
|
944
|
+
*/
|
|
945
|
+
prisma?: {
|
|
946
|
+
/**
|
|
947
|
+
* Suppresses the warning emitted when no Prisma instance is found.
|
|
948
|
+
*/
|
|
949
|
+
noInstanceFound?: boolean;
|
|
950
|
+
/**
|
|
951
|
+
* Suppresses the warning emitted when no Prisma schema is found.
|
|
952
|
+
*/
|
|
953
|
+
noSchemaFound?: boolean;
|
|
954
|
+
};
|
|
955
|
+
};
|
|
956
|
+
};
|
|
957
|
+
/**
|
|
958
|
+
* Defines static file serving configurations.
|
|
959
|
+
*
|
|
960
|
+
* Arkos will automatically serve files from the configured folder using `express.static`.
|
|
961
|
+
* If the folder does not exist at startup, a warning will be emitted.
|
|
962
|
+
*
|
|
963
|
+
* **Note:** The static files route is **not** prefixed with the `globalPrefix`.
|
|
964
|
+
*
|
|
965
|
+
* @since 1.7.0-canary.16
|
|
966
|
+
*
|
|
967
|
+
* @example
|
|
968
|
+
* ```ts
|
|
969
|
+
* import { defineConfig } from "arkos"
|
|
970
|
+
*
|
|
971
|
+
* export default defineConfig({
|
|
972
|
+
* staticFiles: {
|
|
973
|
+
* folder: "assets",
|
|
974
|
+
* prefix: "/static",
|
|
975
|
+
* }
|
|
976
|
+
* }) */
|
|
977
|
+
staticFiles?: {
|
|
978
|
+
/**
|
|
979
|
+
* Whether to enable static file serving.
|
|
980
|
+
*
|
|
981
|
+
* Set to `false` to disable static file serving entirely and suppress
|
|
982
|
+
* the warning when the folder is not found.
|
|
983
|
+
*
|
|
984
|
+
* @default true
|
|
985
|
+
*/
|
|
986
|
+
enabled?: boolean;
|
|
987
|
+
/**
|
|
988
|
+
* The folder to serve static files from, relative to the project root.
|
|
989
|
+
*
|
|
990
|
+
* @default "public"
|
|
991
|
+
*/
|
|
992
|
+
folder?: string;
|
|
993
|
+
/**
|
|
994
|
+
* The URL path prefix under which static files will be served.
|
|
995
|
+
*
|
|
996
|
+
* **Note:** This is not affected by `globalPrefix`.
|
|
997
|
+
*
|
|
998
|
+
* @default "/"
|
|
999
|
+
*
|
|
1000
|
+
* @example "/static" // files served at /static/image.png
|
|
1001
|
+
*/
|
|
1002
|
+
prefix?: string;
|
|
1003
|
+
/**
|
|
1004
|
+
* Options passed directly to `express.static()`.
|
|
1005
|
+
*
|
|
1006
|
+
* By passing custom options, they will be deep merged with the defaults.
|
|
1007
|
+
*
|
|
1008
|
+
* #### Default:
|
|
1009
|
+
* ```ts
|
|
1010
|
+
* {
|
|
1011
|
+
* maxAge: "1y",
|
|
1012
|
+
* etag: true,
|
|
1013
|
+
* lastModified: true,
|
|
1014
|
+
* dotfiles: "ignore",
|
|
1015
|
+
* fallthrough: true,
|
|
1016
|
+
* index: false,
|
|
1017
|
+
* cacheControl: true,
|
|
1018
|
+
* }
|
|
1019
|
+
* ```
|
|
1020
|
+
*
|
|
1021
|
+
* @see {@link https://expressjs.com/en/4x/api.html#express.static}
|
|
1022
|
+
*/
|
|
1023
|
+
expressStatic?: Parameters<typeof express.static>[1];
|
|
1024
|
+
};
|
|
735
1025
|
};
|
|
@@ -1,66 +1,3 @@
|
|
|
1
|
-
import { ArkosRouteConfig } from "../exports";
|
|
2
1
|
export type RouterEndpoint = "createOne" | "findOne" | "updateOne" | "deleteOne" | "findMany" | "createMany" | "updateMany" | "deleteMany";
|
|
3
2
|
export type AuthRouterEndpoint = "getMe" | "updateMe" | "deleteMe" | "login" | "logout" | "signup" | "updatePassword" | "findManyAuthAction" | "findOneAuthAction";
|
|
4
3
|
export type FileUploadRouterEndpoint = "findFile" | "uploadFile" | "updateFile" | "deleteFile";
|
|
5
|
-
type BaseRouterConfig = {
|
|
6
|
-
/**
|
|
7
|
-
* Backward compatibility (prior 1.4.0-beta) - disables/enables endpoints
|
|
8
|
-
*
|
|
9
|
-
* prefer to rather to use the following:
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* export const config = {
|
|
13
|
-
* findMany: {
|
|
14
|
-
* disabled: true
|
|
15
|
-
* }
|
|
16
|
-
* }
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
disable?: boolean | {
|
|
20
|
-
[K in RouterEndpoint]?: boolean;
|
|
21
|
-
};
|
|
22
|
-
} & {
|
|
23
|
-
[K in RouterEndpoint]?: Omit<ArkosRouteConfig, "path">;
|
|
24
|
-
};
|
|
25
|
-
type AuthRouterConfig = {
|
|
26
|
-
/**
|
|
27
|
-
* Backward compatibility (prior 1.4.0-beta) - disables/enables endpoints
|
|
28
|
-
*
|
|
29
|
-
* prefer to rather to use the following:
|
|
30
|
-
*
|
|
31
|
-
* ```ts
|
|
32
|
-
* export const config = {
|
|
33
|
-
* getMe: {
|
|
34
|
-
* disabled: true
|
|
35
|
-
* }
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
disable?: boolean | {
|
|
40
|
-
[K in AuthRouterEndpoint]?: boolean;
|
|
41
|
-
};
|
|
42
|
-
} & {
|
|
43
|
-
[K in AuthRouterEndpoint]?: Omit<ArkosRouteConfig, "path">;
|
|
44
|
-
};
|
|
45
|
-
type FileUploadRouterConfig = {
|
|
46
|
-
/**
|
|
47
|
-
* Backward compatibility (prior 1.4.0-beta) - disables/enables endpoints
|
|
48
|
-
*
|
|
49
|
-
* prefer to rather to use the following:
|
|
50
|
-
*
|
|
51
|
-
* ```ts
|
|
52
|
-
* export const config = {
|
|
53
|
-
* deleteFile: {
|
|
54
|
-
* disabled: true
|
|
55
|
-
* }
|
|
56
|
-
* }
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
disable?: boolean | {
|
|
60
|
-
[K in FileUploadRouterEndpoint]?: boolean;
|
|
61
|
-
};
|
|
62
|
-
} & {
|
|
63
|
-
[K in FileUploadRouterEndpoint]?: Omit<ArkosRouteConfig, "path" | "uploads">;
|
|
64
|
-
};
|
|
65
|
-
export type RouterConfig<T extends string = string> = T extends "auth" ? AuthRouterConfig : T extends "file-upload" ? FileUploadRouterConfig : BaseRouterConfig;
|
|
66
|
-
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import validateDto from "../../utils/validate-dto";
|
|
2
|
+
import validateSchema from "../../utils/validate-schema";
|
|
3
|
+
import { ArkosConfig } from "../new-arkos-config";
|
|
4
|
+
import { Validator } from "./validator";
|
|
5
|
+
declare class ValidationManager {
|
|
6
|
+
arkosConfig: ArkosConfig;
|
|
7
|
+
get validationConfig(): ({
|
|
8
|
+
strict?: boolean;
|
|
9
|
+
} & ({
|
|
10
|
+
resolver: "class-validator";
|
|
11
|
+
validationOptions?: import("class-validator").ValidatorOptions;
|
|
12
|
+
} | {
|
|
13
|
+
resolver: "zod";
|
|
14
|
+
validationOptions?: {
|
|
15
|
+
forbidNonWhitelisted?: boolean;
|
|
16
|
+
};
|
|
17
|
+
})) | undefined;
|
|
18
|
+
get validatorName(): "zod schema" | "class-validator dto";
|
|
19
|
+
get validationFn(): typeof validateSchema | typeof validateDto;
|
|
20
|
+
get validatorNameType(): "Schema" | "Dto";
|
|
21
|
+
isValidValidator: (validator: Validator) => boolean;
|
|
22
|
+
isValidator: (validator: Validator) => boolean;
|
|
23
|
+
shouldValidate: (validator: Validator, data: any) => "prohibit" | "passthrough" | "validate";
|
|
24
|
+
getInvalidValidatorError(): void;
|
|
25
|
+
}
|
|
26
|
+
declare const validationManager: ValidationManager;
|
|
27
|
+
export default validationManager;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import { UploadConfig } from "./types/upload-config";
|
|
3
3
|
declare class ArkosRouterOpenAPIManager {
|
|
4
|
+
private resolveSchemaFieldName;
|
|
4
5
|
/**
|
|
5
6
|
* Generates OpenAPI schema for file upload fields in multipart/form-data requests.
|
|
6
7
|
* Converts upload configuration into OpenAPI-compliant schema and merges with existing body schema.
|
|
@@ -20,9 +21,21 @@ declare class ArkosRouterOpenAPIManager {
|
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
22
23
|
* // Multiple fields upload
|
|
23
|
-
* addUploadFields({
|
|
24
|
+
* addUploadFields({
|
|
25
|
+
* type: 'fields',
|
|
26
|
+
* fields: [
|
|
27
|
+
* { name: 'avatar', type: 'single', uploadDir: 'images' },
|
|
28
|
+
* { name: 'gallery', type: 'array', maxCount: 6, uploadDir: 'gallery' },
|
|
29
|
+
* { name: 'banners[][images]', type: 'array', maxCount: 5, uploadDir: 'banners' }
|
|
30
|
+
* ]
|
|
31
|
+
* })
|
|
24
32
|
*/
|
|
25
33
|
addUploadFields(uploadConfig: UploadConfig, existingSchema?: OpenAPIV3.SchemaObject): OpenAPIV3.SchemaObject;
|
|
34
|
+
/**
|
|
35
|
+
* Builds the OpenAPI property schema for a single field entry.
|
|
36
|
+
* Legacy entries (no type) are treated as array.
|
|
37
|
+
*/
|
|
38
|
+
private buildFieldSchema;
|
|
26
39
|
/**
|
|
27
40
|
* Validates that a user-defined multipart/form-data schema includes all required upload fields
|
|
28
41
|
* with correct types, formats, and required flags.
|