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,66 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
4
|
-
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 {};
|
|
1
|
+
export type RouterEndpoint = 'createOne' | 'findOne' | 'updateOne' | 'deleteOne' | 'findMany' | 'createMany' | 'updateMany' | 'deleteMany';
|
|
2
|
+
export type AuthRouterEndpoint = 'getMe' | 'updateMe' | 'deleteMe' | 'login' | 'logout' | 'signup' | 'updatePassword' | 'findManyAuthAction' | 'findOneAuthAction';
|
|
3
|
+
export type FileUploadRouterEndpoint = 'findFile' | 'uploadFile' | 'updateFile' | 'deleteFile';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ArkosFileInternalState } from "./internal";
|
|
2
|
+
import type { ArkosRequest } from "./index";
|
|
3
|
+
export type UploadDirParams = Record<string, string>;
|
|
4
|
+
export type UploadUrlPath = string | {
|
|
5
|
+
exact: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Resolves the disk parameters for an upload or serving folder.
|
|
9
|
+
*
|
|
10
|
+
* It is the only source of disk parameters. It may perform authorization and
|
|
11
|
+
* throw to deny the request.
|
|
12
|
+
*/
|
|
13
|
+
export type UploadPrepare = (req: ArkosRequest, locals: Record<string, any>) => {
|
|
14
|
+
dirParams?: UploadDirParams;
|
|
15
|
+
} | Promise<{
|
|
16
|
+
dirParams?: UploadDirParams;
|
|
17
|
+
}>;
|
|
18
|
+
export type PrepareFileContext = {
|
|
19
|
+
file: ArkosFile;
|
|
20
|
+
dirParams: UploadDirParams;
|
|
21
|
+
index: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Resolves per-file data before a file is written. Only `filename` is
|
|
25
|
+
* consumed; the file extension is always preserved.
|
|
26
|
+
*/
|
|
27
|
+
export type UploadPrepareFile = (context: PrepareFileContext, req: ArkosRequest, locals: Record<string, any>) => {
|
|
28
|
+
filename?: string;
|
|
29
|
+
} | Promise<{
|
|
30
|
+
filename?: string;
|
|
31
|
+
}>;
|
|
32
|
+
export interface ArkosFile extends Express.Multer.File {
|
|
33
|
+
/**
|
|
34
|
+
* The file pathname without the server host
|
|
35
|
+
*/
|
|
36
|
+
pathname: string;
|
|
37
|
+
/**
|
|
38
|
+
* The file full URL
|
|
39
|
+
*/
|
|
40
|
+
url: string;
|
|
41
|
+
/**
|
|
42
|
+
* @internal Upload metadata resolved by Arkos.
|
|
43
|
+
*/
|
|
44
|
+
__arkos?: ArkosFileInternalState;
|
|
45
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { UserArkosConfig } from "../../utils/define-config";
|
|
2
|
+
import { Validator } from "./validator";
|
|
3
|
+
declare class ValidationManager {
|
|
4
|
+
arkosConfig: UserArkosConfig;
|
|
5
|
+
get validationConfig(): ({
|
|
6
|
+
strict?: boolean;
|
|
7
|
+
} & ({
|
|
8
|
+
resolver: "class-validator";
|
|
9
|
+
validationOptions?: import("class-validator").ValidatorOptions;
|
|
10
|
+
} | {
|
|
11
|
+
resolver: "zod" | "hybrid";
|
|
12
|
+
validationOptions?: {
|
|
13
|
+
forbidNonWhitelisted?: boolean;
|
|
14
|
+
};
|
|
15
|
+
})) | undefined;
|
|
16
|
+
get validatorName(): "zod schema or class-validator dto" | "zod schema" | "class-validator dto";
|
|
17
|
+
get validationFn(): (schema: any, data: any, options: any) => Promise<unknown>;
|
|
18
|
+
get validatorNameType(): "Schema or Dto" | "Schema" | "Dto";
|
|
19
|
+
isValidValidator: (validator: Validator) => boolean;
|
|
20
|
+
isValidator: (validator: Validator) => boolean;
|
|
21
|
+
shouldValidate: (validator: Validator, data: any) => "prohibit" | "passthrough" | "validate";
|
|
22
|
+
getInvalidValidatorError(): void;
|
|
23
|
+
}
|
|
24
|
+
declare const validationManager: ValidationManager;
|
|
25
|
+
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.
|
|
@@ -1,6 +1,85 @@
|
|
|
1
|
-
import { RouterOptions } from
|
|
2
|
-
import { IArkosRouter } from
|
|
3
|
-
import { OpenAPIV3 } from
|
|
1
|
+
import { RouterOptions } from 'express';
|
|
2
|
+
import { IArkosRouter } from './types';
|
|
3
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
4
|
+
import { Arkos } from '../../types/arkos';
|
|
5
|
+
import { ArkosRouterBaseUploadConfig } from './types/upload-config';
|
|
6
|
+
export type ArkosRouterOptions = {
|
|
7
|
+
/**
|
|
8
|
+
* Prefix to apply to all routes in this router.
|
|
9
|
+
* Nested routers inherit and concatenate prefixes from parent routers.
|
|
10
|
+
*
|
|
11
|
+
* @since 1.5.0-beta
|
|
12
|
+
* @example
|
|
13
|
+
* // All routes in this router will be prefixed with "/api"
|
|
14
|
+
* prefix: "/api"
|
|
15
|
+
*/
|
|
16
|
+
prefix?: string | RegExp | Array<string | RegExp>;
|
|
17
|
+
/**
|
|
18
|
+
* OpenAPI metadata to apply to all routes in this router.
|
|
19
|
+
* Nested routers inherit from parent routers unless explicitly overridden.
|
|
20
|
+
* Route-level openapi config fully replaces inherited values when defined.
|
|
21
|
+
*
|
|
22
|
+
* @since 1.6.0-beta
|
|
23
|
+
* @example
|
|
24
|
+
* openapi: {
|
|
25
|
+
* tags: ["Users"],
|
|
26
|
+
* security: [{ bearerAuth: [] }]
|
|
27
|
+
* }
|
|
28
|
+
*/
|
|
29
|
+
openapi?: {
|
|
30
|
+
/**
|
|
31
|
+
* Tags to apply to all routes in this router, used to group them in OpenAPI documentation.
|
|
32
|
+
* Route-level tags fully replaces this value when defined.
|
|
33
|
+
*
|
|
34
|
+
* @since 1.6.0-beta
|
|
35
|
+
* @example
|
|
36
|
+
* // Group all routes in this router under "Users"
|
|
37
|
+
* tags: ["Users"]
|
|
38
|
+
*/
|
|
39
|
+
tags?: string[];
|
|
40
|
+
/**
|
|
41
|
+
* Security requirements to apply to all routes in this router.
|
|
42
|
+
* Route-level security fully replaces this value when defined.
|
|
43
|
+
*
|
|
44
|
+
* @since 1.6.2-canary.1
|
|
45
|
+
* @example
|
|
46
|
+
* // Require bearer auth for all routes in this router
|
|
47
|
+
* security: [{ bearerAuth: [] }]
|
|
48
|
+
*
|
|
49
|
+
* // Explicitly make all routes public (overridable per route)
|
|
50
|
+
* security: []
|
|
51
|
+
*/
|
|
52
|
+
security?: OpenAPIV3.SecurityRequirementObject[];
|
|
53
|
+
/**
|
|
54
|
+
* Server definitions to apply to all routes in this router.
|
|
55
|
+
* Follows the OpenAPI 3.0 Server Object specification.
|
|
56
|
+
* Route-level servers fully replaces this value when defined.
|
|
57
|
+
*
|
|
58
|
+
* @since 1.6.2-canary.1
|
|
59
|
+
* @example
|
|
60
|
+
* servers: [{ url: "https://api.example.com/v2", description: "V2 API" }]
|
|
61
|
+
*/
|
|
62
|
+
servers?: OpenAPIV3.ServerObject[];
|
|
63
|
+
/**
|
|
64
|
+
* External documentation to apply to all routes in this router.
|
|
65
|
+
* Route-level externalDocs fully replaces this value when defined.
|
|
66
|
+
*
|
|
67
|
+
* @since 1.6.2-canary.1
|
|
68
|
+
* @example
|
|
69
|
+
* externalDocs: {
|
|
70
|
+
* description: "Find more information here",
|
|
71
|
+
* url: "https://docs.example.com/users"
|
|
72
|
+
* }
|
|
73
|
+
*/
|
|
74
|
+
externalDocs?: OpenAPIV3.ExternalDocumentationObject;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Allow customizing uploads on route level
|
|
78
|
+
*
|
|
79
|
+
* @since 1.7.0-canary.39
|
|
80
|
+
*/
|
|
81
|
+
uploads?: ArkosRouterBaseUploadConfig;
|
|
82
|
+
};
|
|
4
83
|
/**
|
|
5
84
|
* Creates an enhanced Express Router with features like OpenAPI documentation capabilities and smart data validation.
|
|
6
85
|
*
|
|
@@ -23,15 +102,11 @@ import { OpenAPIV3 } from "openapi-types";
|
|
|
23
102
|
*
|
|
24
103
|
* @returns {IArkosRouter} A proxied Express Router instance with enhanced OpenAPI capabilities
|
|
25
104
|
*
|
|
26
|
-
* @see {@link
|
|
105
|
+
* @see {@link https://www.arkosjs.com/docs/reference/arkos-router} for configuration options
|
|
106
|
+
* @since 1.4.0-beta
|
|
27
107
|
*/
|
|
28
|
-
export default function ArkosRouter(options?: RouterOptions &
|
|
29
|
-
|
|
30
|
-
openapi?: {
|
|
31
|
-
tags?: string[];
|
|
32
|
-
};
|
|
33
|
-
}): IArkosRouter;
|
|
34
|
-
export declare function generateOpenAPIFromApp(app: any): Record<string, Record<string, Partial<{
|
|
108
|
+
export default function ArkosRouter(options?: RouterOptions & ArkosRouterOptions): IArkosRouter;
|
|
109
|
+
export declare function generateOpenAPIFromApp(app: Arkos): Record<string, Record<string, Partial<{
|
|
35
110
|
tags?: string[];
|
|
36
111
|
summary?: string;
|
|
37
112
|
description?: string;
|
|
@@ -1,15 +1,31 @@
|
|
|
1
|
-
import { IRoute, IRouter } from
|
|
2
|
-
import {
|
|
3
|
-
import { Options as RateLimitOptions } from
|
|
4
|
-
import { Options as QueryParserOptions } from
|
|
5
|
-
import { DetailedAccessControlRule } from
|
|
6
|
-
import { ArkosErrorRequestHandler, ArkosRequestHandler } from
|
|
7
|
-
import compression from
|
|
8
|
-
import { OpenApiConfig } from
|
|
9
|
-
import { UploadConfig } from
|
|
10
|
-
import { BodyParserConfig } from
|
|
1
|
+
import { Application, IRoute, IRouter, IRouterHandler, IRouterMatcher, Locals } from 'express';
|
|
2
|
+
import z, { ZodType } from 'zod';
|
|
3
|
+
import { Options as RateLimitOptions } from 'express-rate-limit';
|
|
4
|
+
import { Options as QueryParserOptions } from '../../../utils/helpers/query-parser.helpers';
|
|
5
|
+
import { DetailedAccessControlRule } from '../../../types/auth';
|
|
6
|
+
import { ArkosAnyRequestHandler, ArkosErrorRequestHandler, ArkosRequestHandler } from '../../../types';
|
|
7
|
+
import compression from 'compression';
|
|
8
|
+
import { OpenApiConfig } from './openapi-config';
|
|
9
|
+
import { UploadConfig } from './upload-config';
|
|
10
|
+
import { BodyParserConfig } from './body-parser-config';
|
|
11
|
+
import { ArkosRouterOptions } from '..';
|
|
12
|
+
import { Validator } from '../../../types/validation/validator';
|
|
13
|
+
import { ArkosLoadable } from '../../../exports';
|
|
14
|
+
export type ArkosUseConfig = Pick<ArkosRouteConfig, 'authentication' | 'rateLimit' | 'compression' | 'queryParser' | 'bodyParser' | 'disabled'> & {
|
|
15
|
+
path?: PathParams;
|
|
16
|
+
};
|
|
17
|
+
export type InferValidationType<T, Fallback> = T extends ZodType ? unknown extends z.infer<T> ? Fallback : z.infer<T> : T extends new (...args: any[]) => infer I ? unknown extends I ? Fallback : I : Fallback;
|
|
11
18
|
export type PathParams = string | RegExp | Array<string | RegExp>;
|
|
12
|
-
export type
|
|
19
|
+
export type InternalIArkosRouter = IArkosRouter & {
|
|
20
|
+
_arkos: {
|
|
21
|
+
options?: ArkosRouterOptions;
|
|
22
|
+
routes: Array<{
|
|
23
|
+
handler: ArkosAnyRequestHandler;
|
|
24
|
+
config: ArkosRouteConfig;
|
|
25
|
+
method: string;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
13
29
|
/**
|
|
14
30
|
* Handler function for HTTP methods that accepts route configuration and request handlers.
|
|
15
31
|
*
|
|
@@ -17,9 +33,31 @@ export type ArkosAnyRequestHandler = ArkosRequestHandler | ArkosErrorRequestHand
|
|
|
17
33
|
* @param {...(ArkosRequestHandler | ArkosErrorRequestHandler)[]} handlers - Request and error handlers for the route.
|
|
18
34
|
* @returns {IRouter} The Express router instance.
|
|
19
35
|
*/
|
|
20
|
-
type
|
|
21
|
-
|
|
22
|
-
|
|
36
|
+
type IArkosRouterMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
|
|
37
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, ...handlers: Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>): T;
|
|
38
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: ArkosRouteConfig<TQuery, TBody, TParams> | PathParams, ...handlers: Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any> | Array<ArkosErrorRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, any>>>>): T;
|
|
39
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: ArkosRouteConfig<TQuery, TBody, TParams>, subApplication: Application): T;
|
|
40
|
+
};
|
|
41
|
+
export type ArkosRouteMethodHandler<T> = {
|
|
42
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: ArkosAnyRequestHandler | Omit<ArkosRouteConfig, 'path'>, ...handlers: Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>): T;
|
|
43
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, 'path'>, ...handlers: Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
44
|
+
<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any>(config: Omit<ArkosRouteConfig<TQuery, TBody, TParams>, 'path'>, ...handlers: Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals> | Array<ArkosAnyRequestHandler<InferValidationType<TParams, Record<string, string>>, any, InferValidationType<TBody, any>, InferValidationType<TQuery, qs.ParsedQs>, Locals>>>): T;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Handler function for `use` that accepts route configuration and middleware handlers.
|
|
48
|
+
*
|
|
49
|
+
* @param {ArkosUseConfig} config - The use configuration object or path.
|
|
50
|
+
* @param {...ArkosAnyRequestHandler} handlers - Middleware handlers.
|
|
51
|
+
* @returns {T} The router instance.
|
|
52
|
+
*/
|
|
53
|
+
export type UseMethodHandler<T> = IRouterHandler<T> & IRouterMatcher<T> & {
|
|
54
|
+
(config: ArkosUseConfig, router: IArkosRouter | Application): T;
|
|
55
|
+
(config: ArkosUseConfig, ...handlers: Array<ArkosRequestHandler | Array<ArkosRequestHandler>>): T;
|
|
56
|
+
(config: ArkosUseConfig, ...handlers: Array<ArkosErrorRequestHandler | Array<ArkosErrorRequestHandler>>): T;
|
|
57
|
+
(config: ArkosUseConfig, ...handlers: Array<ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>>): T;
|
|
58
|
+
(...handlers: Array<ArkosRequestHandler | ArkosErrorRequestHandler | Array<ArkosRequestHandler | ArkosErrorRequestHandler>>): T;
|
|
59
|
+
};
|
|
60
|
+
export interface IArkosRoute extends IRoute {
|
|
23
61
|
/** GET method handler with route configuration support */
|
|
24
62
|
get: ArkosRouteMethodHandler<this>;
|
|
25
63
|
/** POST method handler with route configuration support */
|
|
@@ -64,29 +102,42 @@ export interface ArkosIRoute extends IRoute {
|
|
|
64
102
|
*/
|
|
65
103
|
export interface IArkosRouter extends IRouter {
|
|
66
104
|
/** GET method handler with route configuration support */
|
|
67
|
-
get:
|
|
105
|
+
get: IArkosRouterMethodHandler<this>;
|
|
68
106
|
/** POST method handler with route configuration support */
|
|
69
|
-
post:
|
|
107
|
+
post: IArkosRouterMethodHandler<this>;
|
|
70
108
|
/** PUT method handler with route configuration support */
|
|
71
|
-
put:
|
|
109
|
+
put: IArkosRouterMethodHandler<this>;
|
|
72
110
|
/** PATCH method handler with route configuration support */
|
|
73
|
-
patch:
|
|
111
|
+
patch: IArkosRouterMethodHandler<this>;
|
|
74
112
|
/** DELETE method handler with route configuration support */
|
|
75
|
-
delete:
|
|
113
|
+
delete: IArkosRouterMethodHandler<this>;
|
|
76
114
|
/** OPTIONS method handler with route configuration support */
|
|
77
|
-
options:
|
|
115
|
+
options: IArkosRouterMethodHandler<this>;
|
|
78
116
|
/** HEAD method handler with route configuration support */
|
|
79
|
-
head:
|
|
80
|
-
trace:
|
|
117
|
+
head: IArkosRouterMethodHandler<this>;
|
|
118
|
+
trace: IArkosRouterMethodHandler<this>;
|
|
81
119
|
/** ALL methods handler with route configuration support */
|
|
82
|
-
all:
|
|
83
|
-
|
|
84
|
-
route(prefix:
|
|
120
|
+
all: IArkosRouterMethodHandler<this>;
|
|
121
|
+
use: UseMethodHandler<this>;
|
|
122
|
+
route<T extends string>(prefix: T): IArkosRoute;
|
|
123
|
+
route(prefix: PathParams): IArkosRoute;
|
|
124
|
+
/**
|
|
125
|
+
* Loads Arkos-specific instances into the app for internal usage.
|
|
126
|
+
* Unlike use(), load() has no order — it simply makes the loaded
|
|
127
|
+
* data available for Arkos to apply where needed.
|
|
128
|
+
*/
|
|
129
|
+
load(...items: ArkosLoadable[]): this;
|
|
130
|
+
/**
|
|
131
|
+
* Loads Arkos-specific instances into the app for internal usage.
|
|
132
|
+
* Unlike use(), load() has no order — it simply makes the loaded
|
|
133
|
+
* data available for Arkos to apply where needed.
|
|
134
|
+
*/
|
|
135
|
+
load(items: ArkosLoadable[] | ArkosLoadable): this;
|
|
85
136
|
}
|
|
86
137
|
/**
|
|
87
138
|
* Configuration object for defining routes in Arkos.js.
|
|
88
139
|
*/
|
|
89
|
-
export type ArkosRouteConfig = {
|
|
140
|
+
export type ArkosRouteConfig<TQuery extends Validator = any, TBody extends Validator = any, TParams extends Validator = any> = {
|
|
90
141
|
/**
|
|
91
142
|
* Disables the route by not mounting it internally.
|
|
92
143
|
*/
|
|
@@ -108,20 +159,21 @@ export type ArkosRouteConfig = {
|
|
|
108
159
|
authentication?: boolean | {
|
|
109
160
|
resource: string;
|
|
110
161
|
action: string;
|
|
111
|
-
rule?: DetailedAccessControlRule | string[] |
|
|
162
|
+
rule?: DetailedAccessControlRule | string[] | '*';
|
|
112
163
|
};
|
|
113
164
|
/**
|
|
114
165
|
* Request validation configuration using Zod schemas or class constructors.
|
|
115
166
|
*
|
|
116
167
|
* @remarks
|
|
117
168
|
* - Set to `false` to disable all validation.
|
|
169
|
+
* - Set to `null` to forbidden all request inputs.
|
|
118
170
|
* - Provide an object with `query`, `body`, and/or `params` properties to validate specific parts of the request.
|
|
119
171
|
* - Each property accepts a Zod schema, a class constructor, or `false` to disable validation for that part.
|
|
120
172
|
*/
|
|
121
|
-
validation?: false | {
|
|
122
|
-
query?:
|
|
123
|
-
body?:
|
|
124
|
-
params?:
|
|
173
|
+
validation?: false | null | {
|
|
174
|
+
query?: TQuery;
|
|
175
|
+
body?: TBody;
|
|
176
|
+
params?: TParams;
|
|
125
177
|
};
|
|
126
178
|
/**
|
|
127
179
|
* Rate limiting configuration for this route.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import { ZodSchema } from "zod";
|
|
3
|
+
import { JsonSchema } from "../../prisma/types";
|
|
3
4
|
/**
|
|
4
5
|
* Represents a schema-like object that can be used for OpenAPI documentation.
|
|
5
6
|
* Accepts Zod schemas, class constructors (DTOs), or plain JSON Schema objects.
|
|
6
7
|
*/
|
|
7
|
-
type SchemaLike = ZodSchema | (new (...args: any[]) => object) | OpenAPIV3.SchemaObject;
|
|
8
|
+
type SchemaLike = ZodSchema | (new (...args: any[]) => object) | OpenAPIV3.SchemaObject | JsonSchema;
|
|
8
9
|
/**
|
|
9
10
|
* Extended media type object that accepts SchemaLike in addition to standard OpenAPI schemas.
|
|
10
11
|
*/
|
|
@@ -131,7 +132,7 @@ type RequestBodyDefinition = SchemaLike | {
|
|
|
131
132
|
* Defining both validation and openapi schemas for the same field will cause
|
|
132
133
|
* a startup error to prevent documentation drift.
|
|
133
134
|
*/
|
|
134
|
-
type ExtendedOperationObject = Omit<OpenAPIV3.OperationObject, "responses" | "requestBody"> & {
|
|
135
|
+
export type ExtendedOperationObject = Omit<OpenAPIV3.OperationObject, "responses" | "requestBody"> & {
|
|
135
136
|
/**
|
|
136
137
|
* Response definitions keyed by HTTP status code.
|
|
137
138
|
* Supports shorthand, medium, and full OpenAPI formats.
|