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
|
@@ -2,9 +2,9 @@ import { getFileUploadServices, FileUploadService } from "../../modules/file-upl
|
|
|
2
2
|
import { EmailOptions } from "../../modules/email/email.service";
|
|
3
3
|
import authService, { AuthService } from "../../modules/auth/auth.service";
|
|
4
4
|
import emailService, { EmailService } from "../../modules/email/email.service";
|
|
5
|
-
import {
|
|
5
|
+
import { ArkosPrismaService } from "../../modules/base/base.service";
|
|
6
6
|
import authActionService from "../../modules/auth/utils/services/auth-action.service";
|
|
7
|
-
import { ServiceHookContext
|
|
7
|
+
import { ServiceHookContext } from "../../modules/base/types/base.service.types";
|
|
8
8
|
/**
|
|
9
9
|
* Authentication service.
|
|
10
10
|
*/
|
|
@@ -12,7 +12,7 @@ export { authService, AuthService, authActionService };
|
|
|
12
12
|
/**
|
|
13
13
|
* Base service.
|
|
14
14
|
*/
|
|
15
|
-
export {
|
|
15
|
+
export { ArkosPrismaService, ServiceHookContext, };
|
|
16
16
|
/**
|
|
17
17
|
* Email service.
|
|
18
18
|
*/
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ArkosGateway from "../components/arkos-gateway/arkos-gateway";
|
|
2
|
+
export { IArkosGateway } from "../components/arkos-gateway/arkos-gateway";
|
|
3
|
+
export { ArkosGatewayController } from "../components/arkos-gateway/types";
|
|
4
|
+
export type { ArkosSocket, ArkosGatewayConfig, ArkosGatewayEventConfig, ArkosGatewayHandler, ArkosGatewayPipe, ArkosGatewayMiddleware, ArkosGatewayConnectionHandler, ArkosGatewayErrorHandler, ArkosGatewayAckFn, ArkosBroadcastOperator, } from "../components/arkos-gateway/types";
|
|
5
|
+
export { ArkosGateway };
|
|
@@ -8,8 +8,12 @@ export declare const defaultExcludedUserFields: {
|
|
|
8
8
|
* Authentication controller class handling all auth-related operations
|
|
9
9
|
*/
|
|
10
10
|
export declare class AuthController {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the `AuthService` to use, an instance passed as `service` through
|
|
13
|
+
* `ArkosRouteHook("auth", { service })` takes precedence over the default one.
|
|
14
|
+
*/
|
|
15
|
+
private getAuthService;
|
|
16
|
+
private callService;
|
|
13
17
|
/**
|
|
14
18
|
* Retrieves the current authenticated user's information
|
|
15
19
|
*/
|
|
@@ -24,6 +28,9 @@ export declare class AuthController {
|
|
|
24
28
|
logout: any;
|
|
25
29
|
/**
|
|
26
30
|
* Authenticates a user using configurable username field and password
|
|
31
|
+
* Username field can be specified in query parameter or config
|
|
32
|
+
*
|
|
33
|
+
* Supports nested fields and array queries (e.g., "profile.nickname", "phones.some.number")
|
|
27
34
|
*/
|
|
28
35
|
login: any;
|
|
29
36
|
/**
|
|
@@ -31,7 +38,7 @@ export declare class AuthController {
|
|
|
31
38
|
*/
|
|
32
39
|
signup: any;
|
|
33
40
|
/**
|
|
34
|
-
* Marks user account as self-deleted
|
|
41
|
+
* Marks user account as self-deleted by setting deletedSelfAccountAt timestamp
|
|
35
42
|
*/
|
|
36
43
|
deleteMe: any;
|
|
37
44
|
/**
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { User } from
|
|
2
|
-
import { ArkosRequest, ArkosRequestHandler } from
|
|
3
|
-
import { AuthJwtPayload, AccessAction, AccessControlConfig,
|
|
4
|
-
import { MsDuration } from
|
|
1
|
+
import { User } from '../../types';
|
|
2
|
+
import { ArkosRequest, ArkosRequestHandler } from '../../types';
|
|
3
|
+
import { AuthJwtPayload, AccessAction, AccessControlConfig, DetailedAccessControlRule } from '../../types/auth';
|
|
4
|
+
import { MsDuration } from './utils/helpers/auth.controller.helpers';
|
|
5
|
+
import { ArkosPrismaService } from '../base/base.service';
|
|
6
|
+
import { AuthUser, DeleteMeOptions, GetMeOptions, LoginInput, LoginOptions, SignupDto, SignupOptions, UpdateMeDto, UpdateMeOptions, UpdatePasswordInput } from './auth.types';
|
|
7
|
+
import { CookieOptions } from 'express';
|
|
8
|
+
import { ArkosSocket } from '../../components/arkos-gateway/types';
|
|
5
9
|
/**
|
|
6
10
|
* Handles various authentication-related tasks such as JWT signing, password hashing, and verifying user credentials.
|
|
7
11
|
*/
|
|
@@ -10,6 +14,8 @@ export declare class AuthService {
|
|
|
10
14
|
* Object containing a combination of actions per resource, tracked by each set of calls of `authService.handleAccessControl`, this can be accessed through the `authService` object or through the endpoint
|
|
11
15
|
*/
|
|
12
16
|
actionsPerResource: Record<string, Set<string>>;
|
|
17
|
+
private _userService?;
|
|
18
|
+
protected get userService(): ArkosPrismaService<'user'>;
|
|
13
19
|
/**
|
|
14
20
|
* Signs a JWT token for the user.
|
|
15
21
|
*
|
|
@@ -37,18 +43,13 @@ export declare class AuthService {
|
|
|
37
43
|
* res.cookie('jwt', token, cookieOptions);
|
|
38
44
|
* ```
|
|
39
45
|
*/
|
|
40
|
-
getJwtCookieOptions(req: ArkosRequest):
|
|
41
|
-
expires: Date;
|
|
42
|
-
httpOnly: boolean;
|
|
43
|
-
secure: boolean;
|
|
44
|
-
sameSite: "none" | "strict" | "lax";
|
|
45
|
-
};
|
|
46
|
+
getJwtCookieOptions(req: ArkosRequest): CookieOptions;
|
|
46
47
|
/**
|
|
47
|
-
* Is used by default internally by Arkos under `
|
|
48
|
+
* Is used by default internally by Arkos under `ArkosPrismaService` class to check if the password is already hashed.
|
|
48
49
|
*
|
|
49
|
-
* This was just added to prevent unwanted errors when someone just forgets that the `
|
|
50
|
+
* This was just added to prevent unwanted errors when someone just forgets that the `ArkosPrismaService` class will automatically hash the password field using `authService.hashPassword` by default.
|
|
50
51
|
*
|
|
51
|
-
* So now before `
|
|
52
|
+
* So now before `ArkosPrismaService` hashes it will test it.
|
|
52
53
|
*
|
|
53
54
|
*
|
|
54
55
|
* @param password The password to be tested if is hashed
|
|
@@ -70,24 +71,6 @@ export declare class AuthService {
|
|
|
70
71
|
* @returns {Promise<string>} Returns the hashed password.
|
|
71
72
|
*/
|
|
72
73
|
hashPassword(password: string): Promise<string>;
|
|
73
|
-
/**
|
|
74
|
-
* Checks if a password is strong, requiring uppercase, lowercase, and numeric characters as the default.
|
|
75
|
-
*
|
|
76
|
-
* **NB**: You must pay attention when using custom validation with zod or class-validator, try to use the same regex always.
|
|
77
|
-
*
|
|
78
|
-
* **Note**: You can define it when calling arkos.init()
|
|
79
|
-
* ```ts
|
|
80
|
-
* arkos.init({
|
|
81
|
-
* authentication: {
|
|
82
|
-
* passwordValidation:{ regex: /your-desired-regex/, message: 'password must contain...'}
|
|
83
|
-
* }
|
|
84
|
-
* })
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* @param {string} password - The password to check.
|
|
88
|
-
* @returns {boolean} Returns true if the password meets the strength criteria, otherwise false.
|
|
89
|
-
*/
|
|
90
|
-
isPasswordStrong(password: string): boolean;
|
|
91
74
|
/**
|
|
92
75
|
* Checks if a user has changed their password after the JWT was issued.
|
|
93
76
|
*
|
|
@@ -120,7 +103,7 @@ export declare class AuthService {
|
|
|
120
103
|
* @returns True if user has permission, false otherwise
|
|
121
104
|
* @throws Error if user doesn't have role/roles field
|
|
122
105
|
*/
|
|
123
|
-
|
|
106
|
+
checkStaticAccessControl(user: User, action: string, accessControl: AccessControlConfig): boolean;
|
|
124
107
|
/**
|
|
125
108
|
* Checks if a user has permission for a specific action and resource using dynamic access control.
|
|
126
109
|
* Queries the database to verify user's role permissions.
|
|
@@ -130,40 +113,176 @@ export declare class AuthService {
|
|
|
130
113
|
* @param resource - The resource being accessed
|
|
131
114
|
* @returns Promise resolving to true if user has permission, false otherwise
|
|
132
115
|
*/
|
|
133
|
-
|
|
116
|
+
checkDynamicAccessControl(userId: string, action: string, resource: string): Promise<boolean>;
|
|
117
|
+
private sanitizeUser;
|
|
118
|
+
private withPasswordIncluded;
|
|
119
|
+
/**
|
|
120
|
+
* Retrieves the authenticated user by id without the password field.
|
|
121
|
+
*
|
|
122
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
123
|
+
*
|
|
124
|
+
* @param userId - The id of the authenticated user
|
|
125
|
+
* @param queryOptions - Optional Prisma query options (select, include, etc.)
|
|
126
|
+
* @since 1.8.0-rc
|
|
127
|
+
*/
|
|
128
|
+
getMe(userId: User["id"], queryOptions?: GetMeOptions): Promise<AuthUser | null>;
|
|
129
|
+
/**
|
|
130
|
+
* Updates the authenticated user without the password field in the result.
|
|
131
|
+
* Password changes are rejected, use `updatePassword` instead.
|
|
132
|
+
*
|
|
133
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
134
|
+
*
|
|
135
|
+
* @param userId - The id of the authenticated user
|
|
136
|
+
* @param data - The fields to update
|
|
137
|
+
* @param queryOptions - Optional Prisma query options (select, include, etc.)
|
|
138
|
+
* @since 1.8.0-rc
|
|
139
|
+
*/
|
|
140
|
+
updateMe(userId: User["id"], data: UpdateMeDto, queryOptions?: UpdateMeOptions): Promise<AuthUser>;
|
|
134
141
|
/**
|
|
135
|
-
*
|
|
142
|
+
* Creates a new user account without the password field in the result.
|
|
143
|
+
*
|
|
144
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
145
|
+
*
|
|
146
|
+
* @param data - The user data, the password is hashed automatically
|
|
147
|
+
* @param queryOptions - Optional Prisma query options (select, include, etc.)
|
|
148
|
+
* @since 1.8.0-rc
|
|
149
|
+
*/
|
|
150
|
+
signup(data: SignupDto, queryOptions?: SignupOptions): Promise<AuthUser>;
|
|
151
|
+
/**
|
|
152
|
+
* Marks the authenticated user's account as self-deleted by setting
|
|
153
|
+
* `deletedSelfAccountAt`, the result never includes the password field.
|
|
154
|
+
*
|
|
155
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
156
|
+
*
|
|
157
|
+
* @param userId - The id of the authenticated user
|
|
158
|
+
* @param queryOptions - Optional Prisma query options (select, include, etc.)
|
|
159
|
+
* @since 1.8.0-rc
|
|
160
|
+
*/
|
|
161
|
+
deleteMe(userId: User["id"], queryOptions?: DeleteMeOptions): Promise<AuthUser>;
|
|
162
|
+
/**
|
|
163
|
+
* Authenticates a user with the given username field and password.
|
|
164
|
+
*
|
|
165
|
+
* The username field is inferred from the username key present in `input`
|
|
166
|
+
* (the only key besides `password`), can be overridden explicitly with
|
|
167
|
+
* `usernameField` for nested paths such as `"profile.nickname"`, and falls
|
|
168
|
+
* back to `authentication.login.allowedUsernames[0] || "username"`. When
|
|
169
|
+
* `authentication.login.allowedUsernames` is configured, the resolved field
|
|
170
|
+
* must be one of its entries. The password is always loaded for the
|
|
171
|
+
* comparison and never returned.
|
|
172
|
+
*
|
|
173
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
174
|
+
*
|
|
175
|
+
* @param input - Its username key and the password
|
|
176
|
+
* @param queryOptions - Optional Prisma query options (select, include, etc.)
|
|
177
|
+
* @returns The sanitized user and a signed access token
|
|
178
|
+
* @since 1.8.0-rc
|
|
179
|
+
*/
|
|
180
|
+
login(input: LoginInput, queryOptions?: LoginOptions): Promise<{
|
|
181
|
+
user: AuthUser;
|
|
182
|
+
accessToken: string;
|
|
183
|
+
}>;
|
|
184
|
+
/**
|
|
185
|
+
* Updates the password of the given user after validating the current one.
|
|
186
|
+
*
|
|
187
|
+
* Can be overridden through `ArkosRouteHook("auth", { service })`.
|
|
136
188
|
*
|
|
137
|
-
* @param
|
|
138
|
-
* @param
|
|
139
|
-
* @
|
|
140
|
-
* @
|
|
189
|
+
* @param userId - The id of the authenticated user
|
|
190
|
+
* @param input - The current and the new password
|
|
191
|
+
* @returns A fresh access token valid after the password change
|
|
192
|
+
* @since 1.8.0-rc
|
|
141
193
|
*/
|
|
142
|
-
|
|
194
|
+
updatePassword(userId: User["id"], input: UpdatePasswordInput): Promise<{
|
|
195
|
+
accessToken: string;
|
|
196
|
+
}>;
|
|
197
|
+
/**
|
|
198
|
+
* Runs on logout. Override through `ArkosRouteHook("auth", { service })`.
|
|
199
|
+
*
|
|
200
|
+
* @since 1.8.0-rc
|
|
201
|
+
*/
|
|
202
|
+
logout(_userId: User["id"], _accessToken: string): Promise<void>;
|
|
203
|
+
private extractRequestToken;
|
|
204
|
+
private extractSocketToken;
|
|
205
|
+
validateDecodedUser(decoded: AuthJwtPayload, action?: 'logout' | 'default'): Promise<User>;
|
|
143
206
|
/**
|
|
144
207
|
* Processes the cookies or authoriation token and returns the user.
|
|
145
|
-
*
|
|
208
|
+
*
|
|
209
|
+
* @param ctx | socket
|
|
146
210
|
* @returns {Promise<User | null>} - if authentication is turned off in arkosConfig it returns null
|
|
147
211
|
* @throws {AppError} Throws an error if the token is invalid or the user is not logged in.
|
|
148
212
|
*/
|
|
149
|
-
getAuthenticatedUser(
|
|
213
|
+
getAuthenticatedUser(ctx: ArkosRequest | ArkosSocket, action?: 'logout' | 'default'): Promise<User | null>;
|
|
150
214
|
/**
|
|
151
|
-
* Middleware
|
|
215
|
+
* Middleware to authenticate the request by extracting and verifying the JWT token and setting `req.user`.
|
|
216
|
+
*
|
|
217
|
+
* Runs `authentication.hooks.authenticate` before/after the authentication logic.
|
|
218
|
+
*
|
|
219
|
+
* Hook execution flow:
|
|
220
|
+
* - `before` hooks run first — call `ctx.skip()` to bypass core logic and jump to `after` hooks,
|
|
221
|
+
* call `ctx.next()` to stop the chain early, or return without calling anything to continue.
|
|
222
|
+
* - Core logic runs — extracts and verifies the JWT token, sets `req.user`.
|
|
223
|
+
* - `after` hooks run — call `ctx.next(err)` to abort or return without calling anything to continue.
|
|
224
|
+
* - `onError` hooks run if core logic throws — call `ctx.skip()` to suppress the error and jump to
|
|
225
|
+
* `after` hooks, or call `ctx.next(err)` to forward it to the global error handler.
|
|
226
|
+
*
|
|
227
|
+
* On custom routes, hooks defined in `arkosConfig` still apply since they are baked into this method.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```ts
|
|
231
|
+
* // custom route - hooks still run
|
|
232
|
+
* router.get("/custom", authService.authenticate, handler);
|
|
233
|
+
* ```
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```ts
|
|
237
|
+
* // skip built-in auth from a before hook
|
|
238
|
+
* before: (ctx) => {
|
|
239
|
+
* ctx.req.user = myCustomAuth(ctx.req);
|
|
240
|
+
* ctx.skip();
|
|
241
|
+
* }
|
|
242
|
+
* ```
|
|
152
243
|
*
|
|
153
|
-
* @
|
|
154
|
-
* @param {ArkosResponse} res - The response object.
|
|
155
|
-
* @param {ArkosNextFunction} next - The next middleware function to be called.
|
|
156
|
-
* @returns {void}
|
|
244
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/authentication/hooks}
|
|
157
245
|
*/
|
|
158
246
|
authenticate: any;
|
|
159
247
|
/**
|
|
160
|
-
*
|
|
248
|
+
* Middleware to authorize the authenticated user for a given action on a resource.
|
|
249
|
+
*
|
|
250
|
+
* Runs `authentication.hooks.authorize` before/after the authorization logic.
|
|
251
|
+
*
|
|
252
|
+
* Hook execution flow:
|
|
253
|
+
* - `before` hooks run first — call `ctx.skip()` to bypass core logic and jump to `after` hooks,
|
|
254
|
+
* call `ctx.next()` to stop the chain early, or return without calling anything to continue.
|
|
255
|
+
* - Core logic runs — checks user role/permissions against the access control rules.
|
|
256
|
+
* - `after` hooks run — call `ctx.next(err)` to abort or return without calling anything to continue.
|
|
257
|
+
* - `onError` hooks run if authorization fails — call `ctx.skip()` to suppress the error and jump to
|
|
258
|
+
* `after` hooks, or call `ctx.next(err)` to forward it to the global error handler.
|
|
259
|
+
*
|
|
260
|
+
* @param resource - The resource being accessed, in kebabCase (e.g. `"product"`, `"cart-item"`)
|
|
261
|
+
* @param action - The action being performed (e.g. `"View"`, `"Create"`, `"Delete"`)
|
|
262
|
+
* @param rule - Access control rules for this action. Accepts a role list, a wildcard, or a `DetailedAccessControlRule`.
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```ts
|
|
266
|
+
* router.delete("/products/:id",
|
|
267
|
+
* authService.authenticate,
|
|
268
|
+
* authService.authorize("product", "Delete", ["admin"]),
|
|
269
|
+
* handler
|
|
270
|
+
* );
|
|
271
|
+
* ```
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```ts
|
|
275
|
+
* // skip built-in authorization from a before hook
|
|
276
|
+
* before: (ctx) => {
|
|
277
|
+
* ctx.req.user.role = myCustomRoleResolver(ctx.req);
|
|
278
|
+
* ctx.skip();
|
|
279
|
+
* }
|
|
280
|
+
* ```
|
|
161
281
|
*
|
|
162
|
-
* @
|
|
163
|
-
* @
|
|
164
|
-
* @returns {ArkosRequestHandler} The middleware function that checks if authentication is required.
|
|
282
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/authentication/hooks#authorize}
|
|
283
|
+
* @since v1.6.0-beta
|
|
165
284
|
*/
|
|
166
|
-
|
|
285
|
+
authorize(action: AccessAction, resource: string, rule?: string[] | DetailedAccessControlRule | '*'): ArkosRequestHandler;
|
|
167
286
|
/**
|
|
168
287
|
* Creates a permission checker function for a specific action and resource.
|
|
169
288
|
*
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ExtractPrismaData, ExtractPrismaQueryOptions, PrismaModels, RuntimeArkosConfig } from "../../generated";
|
|
2
|
+
import { ArkosPrismaInput } from "../../types/arkos-prisma-input";
|
|
3
|
+
import { User } from "../../types";
|
|
4
|
+
type UserModel = PrismaModels<any>["user"];
|
|
5
|
+
export type AuthUser = Omit<User, "password">;
|
|
6
|
+
export type GetMeOptions = ExtractPrismaQueryOptions<UserModel["FindFirstArgs"], "where">;
|
|
7
|
+
export type LoginOptions = GetMeOptions;
|
|
8
|
+
export type UpdateMeOptions = ExtractPrismaQueryOptions<UserModel["UpdateArgs"], "where" | "data">;
|
|
9
|
+
export type DeleteMeOptions = UpdateMeOptions;
|
|
10
|
+
export type SignupOptions = ExtractPrismaQueryOptions<UserModel["CreateArgs"], "data">;
|
|
11
|
+
export type SignupDto = ExtractPrismaData<UserModel["CreateArgs"]> | ArkosPrismaInput<ExtractPrismaData<UserModel["CreateArgs"]>>;
|
|
12
|
+
export type UpdateMeDto = ExtractPrismaData<UserModel["UpdateArgs"]> | ArkosPrismaInput<ExtractPrismaData<UserModel["UpdateArgs"]>>;
|
|
13
|
+
export type OverridableAuthMethod = "getMe" | "updateMe" | "signup" | "deleteMe" | "login" | "updatePassword" | "logout";
|
|
14
|
+
export interface UpdatePasswordInput {
|
|
15
|
+
currentPassword: string;
|
|
16
|
+
newPassword: string;
|
|
17
|
+
}
|
|
18
|
+
type ListOperator = "some" | "every" | "none";
|
|
19
|
+
type LastSegment<P extends string> = P extends `${string}.${infer R}` ? LastSegment<R> : P;
|
|
20
|
+
type PathSelect<P extends string> = P extends `${infer H}.${infer T}` ? H extends ListOperator ? PathSelect<T> : {
|
|
21
|
+
[K in H]: {
|
|
22
|
+
select: PathSelect<T>;
|
|
23
|
+
};
|
|
24
|
+
} : {
|
|
25
|
+
[K in P]: true;
|
|
26
|
+
};
|
|
27
|
+
type ElementOf<T> = T extends readonly (infer E)[] ? E : T;
|
|
28
|
+
type PathValue<T, P extends string> = P extends `${infer H}.${infer R}` ? H extends ListOperator ? PathValue<T, R> : H extends keyof T ? PathValue<ElementOf<NonNullable<T[H]>>, R> : never : P extends keyof T ? T[P] : never;
|
|
29
|
+
/**
|
|
30
|
+
* The username fields accepted by the built-in login, derived from
|
|
31
|
+
* `authentication.login.allowedUsernames` in the user's `arkos.config`.
|
|
32
|
+
*
|
|
33
|
+
* The generated `RuntimeArkosConfig` is a literal-typed view of the config;
|
|
34
|
+
* when `allowedUsernames` is not configured it falls back to the runtime
|
|
35
|
+
* default, `"username"` (see `getDefaultUsernameField`).
|
|
36
|
+
*/
|
|
37
|
+
export type LoginUsernames = RuntimeArkosConfig extends {
|
|
38
|
+
authentication: {
|
|
39
|
+
login: {
|
|
40
|
+
allowedUsernames: readonly (infer U extends string)[];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
} ? U : "username";
|
|
44
|
+
/**
|
|
45
|
+
* The union of fields accepted as the login username.
|
|
46
|
+
*
|
|
47
|
+
* @deprecated Use `LoginUsernames`.
|
|
48
|
+
*/
|
|
49
|
+
export type LoginUsernameField = LoginUsernames;
|
|
50
|
+
type LoginUsernameValue<F extends string> = NonNullable<PathValue<PrismaModels<{
|
|
51
|
+
select: PathSelect<F>;
|
|
52
|
+
}>["user"]["GetPayload"], F>>;
|
|
53
|
+
type LoginInputFor<F extends string> = {
|
|
54
|
+
password: string;
|
|
55
|
+
} & (F extends `${string}.${string}` ? {
|
|
56
|
+
/** Required for nested paths so the full dot-path is queried. */
|
|
57
|
+
usernameField: F;
|
|
58
|
+
} : {
|
|
59
|
+
/** Only needed for nested paths; otherwise inferred from the username key. */
|
|
60
|
+
usernameField?: F;
|
|
61
|
+
}) & {
|
|
62
|
+
[K in LastSegment<F>]: LoginUsernameValue<F>;
|
|
63
|
+
};
|
|
64
|
+
type DistributiveLoginInput<F extends string> = F extends any ? LoginInputFor<F> : never;
|
|
65
|
+
/**
|
|
66
|
+
* Login payload for the configured username fields. Every entry in
|
|
67
|
+
* `authentication.login.allowedUsernames` is accepted as an alternative, and the
|
|
68
|
+
* key holding the username is the last segment of the field path, typed from the
|
|
69
|
+
* Prisma schema.
|
|
70
|
+
*/
|
|
71
|
+
export type LoginInput = DistributiveLoginInput<LoginUsernames>;
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ArkosSocket } from "../../../components/arkos-gateway/types";
|
|
2
|
+
import { ArkosRequest, User } from "../../../types";
|
|
3
|
+
import { AuthAction } from "./services/auth-action.service";
|
|
4
|
+
type ArkosBaseContext = ArkosRequest | ArkosSocket;
|
|
5
|
+
interface ArkosMiddlewareAdapter<TContext extends ArkosBaseContext> {
|
|
6
|
+
context: TContext;
|
|
7
|
+
done: (error?: unknown | any) => void;
|
|
8
|
+
}
|
|
9
|
+
declare class AuthHookManager {
|
|
10
|
+
/**
|
|
11
|
+
* Runs the full authenticate pipeline — before hooks, core user resolution,
|
|
12
|
+
* after hooks — and calls `done` when finished.
|
|
13
|
+
*
|
|
14
|
+
* Shared by the HTTP authenticate middleware and the WebSocket auth ns.use().
|
|
15
|
+
*
|
|
16
|
+
* @param adapter.context - The request or socket being authenticated.
|
|
17
|
+
* @param adapter.done - Called with no args on success, or with an error to propagate.
|
|
18
|
+
* @param getUser - Async function that resolves the user from the context.
|
|
19
|
+
*/
|
|
20
|
+
runAuthenticate<TContext extends ArkosBaseContext>(adapter: ArkosMiddlewareAdapter<TContext>, getUser: (context: TContext) => Promise<User | null>, keyName?: "user" | "currentUser"): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Runs the full authorize pipeline — before hooks, core permission check,
|
|
23
|
+
* after hooks — and calls `done` when finished.
|
|
24
|
+
*
|
|
25
|
+
* Shared by the HTTP `authorize()` middleware and WebSocket per-event authorization.
|
|
26
|
+
*
|
|
27
|
+
* @param adapter.context - The request or socket being authorized.
|
|
28
|
+
* @param authAction {AuthAction}
|
|
29
|
+
* @param keyName {"user" | "currentUser"}
|
|
30
|
+
*/
|
|
31
|
+
runAuthorize<TContext extends ArkosBaseContext>(adapter: ArkosMiddlewareAdapter<TContext>, authAction: Required<AuthAction>, keyName?: "user" | "currentUser"): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Runs a chain of `after` hooks in sequence.
|
|
34
|
+
*
|
|
35
|
+
* - If a hook throws — chain aborts, error is forwarded to the global error handler.
|
|
36
|
+
* - If a hook returns — next hook in chain runs.
|
|
37
|
+
*
|
|
38
|
+
* @returns Promise resolving to `{ error? }`
|
|
39
|
+
*/
|
|
40
|
+
private runAfterHooks;
|
|
41
|
+
/**
|
|
42
|
+
* Runs a chain of `before` hooks in sequence.
|
|
43
|
+
*
|
|
44
|
+
* - If a hook throws — chain aborts, error is forwarded to `onError` hooks.
|
|
45
|
+
* - If a hook calls `skip()` — chain stops, core logic is bypassed, jumps to `after` hooks.
|
|
46
|
+
* - If a hook returns — next hook in chain runs.
|
|
47
|
+
*
|
|
48
|
+
* @returns Promise resolving to `{ skipped, error? }`
|
|
49
|
+
*/
|
|
50
|
+
private runHooks;
|
|
51
|
+
/**
|
|
52
|
+
* Runs a chain of `onError` hooks in sequence.
|
|
53
|
+
*
|
|
54
|
+
* - If a hook throws — chain aborts, error is forwarded to the global error handler.
|
|
55
|
+
* - If a hook calls `skip()` — suppresses the error and jumps to `after` hooks.
|
|
56
|
+
* - If a hook returns — next hook in chain runs.
|
|
57
|
+
*
|
|
58
|
+
* @returns Promise resolving to `{ skipped, error? }`
|
|
59
|
+
*/
|
|
60
|
+
private runErrorHooks;
|
|
61
|
+
}
|
|
62
|
+
declare const authHookManager: AuthHookManager;
|
|
63
|
+
export default authHookManager;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AuthRouterEndpoint } from "../../../types/router-config";
|
|
2
|
+
import { ArkosRouteConfig } from "../../../exports";
|
|
3
|
+
import { ExtendedOperationObject } from "../../../utils/arkos-router/types/openapi-config";
|
|
4
|
+
declare class AuthOpenAPIGenerator {
|
|
5
|
+
getOpenApiConfig(endpointRouterConfig: Omit<ArkosRouteConfig, "path"> | undefined, endpoint: AuthRouterEndpoint): Partial<ExtendedOperationObject>;
|
|
6
|
+
private getAuthActionSchema;
|
|
7
|
+
}
|
|
8
|
+
declare const authOpenAPIGenerator: AuthOpenAPIGenerator;
|
|
9
|
+
export default authOpenAPIGenerator;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JsonSchema } from "../../../utils/prisma/types";
|
|
2
|
+
declare class AuthPrismaJsonSchemaGenerator {
|
|
3
|
+
private userModel?;
|
|
4
|
+
private getUserModel;
|
|
5
|
+
private getPrismaArgs;
|
|
6
|
+
generateGetMeResponse(): JsonSchema;
|
|
7
|
+
generateUpdatePasswordSchema(): JsonSchema;
|
|
8
|
+
generateUpdateMeSchema(): JsonSchema;
|
|
9
|
+
generateSignupSchema(): JsonSchema;
|
|
10
|
+
generateLoginSchema(): JsonSchema;
|
|
11
|
+
}
|
|
12
|
+
declare const authPrismaJsonSchemaGenerator: AuthPrismaJsonSchemaGenerator;
|
|
13
|
+
export default authPrismaJsonSchemaGenerator;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AccessControlConfig } from "../../../../types/auth";
|
|
2
|
-
interface AuthAction {
|
|
2
|
+
export interface AuthAction {
|
|
3
3
|
roles?: string[] | "*";
|
|
4
4
|
action: string;
|
|
5
5
|
resource: string;
|
|
@@ -9,7 +9,7 @@ interface AuthAction {
|
|
|
9
9
|
}
|
|
10
10
|
declare class AuthActionService {
|
|
11
11
|
authActions: AuthAction[];
|
|
12
|
-
add(action: string, resource: string, accessControl?: AccessControlConfig):
|
|
12
|
+
add(action: string, resource: string, accessControl?: AccessControlConfig): Required<AuthAction>;
|
|
13
13
|
remove(action: string, resource: string): void;
|
|
14
14
|
getAll(): AuthAction[];
|
|
15
15
|
getOne(action: string, resource: string): AuthAction | undefined;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare const ACCESS_TOKEN_COOKIE_NAME = "arkos_access_token";
|
|
2
|
+
export declare const NO_TOKEN_SENTINEL = "no-token";
|
|
3
|
+
export type CookieMap = Record<string, string>;
|
|
4
|
+
/** Returns the trimmed token if it is non-empty, otherwise `null`. */
|
|
5
|
+
export declare function normalizeToken(value: unknown): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Reads a token from an already-parsed cookie map (e.g. Express's `req.cookies`).
|
|
8
|
+
* Arkos writes the `no-token` sentinel on logout, so it counts as absent.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getCookieToken(cookies: Record<string, unknown> | undefined, cookieName?: string): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Parses a raw `Cookie` header without requiring cookie-parser.
|
|
13
|
+
* Values may contain `=`; malformed pairs are skipped.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseCookieHeader(cookieHeader?: string | null): CookieMap;
|
|
16
|
+
/**
|
|
17
|
+
* Extracts a bearer token from an `Authorization` header.
|
|
18
|
+
*
|
|
19
|
+
* The default mode is case-insensitive and tolerates a missing space after
|
|
20
|
+
* `Bearer`. Pass `{ caseInsensitive: false }` to preserve the legacy HTTP
|
|
21
|
+
* behavior exactly.
|
|
22
|
+
*/
|
|
23
|
+
export declare function extractBearerToken(authorization?: string | null, { caseInsensitive }?: {
|
|
24
|
+
caseInsensitive?: boolean;
|
|
25
|
+
}): string | null;
|
|
26
|
+
export interface RequestTokenSources {
|
|
27
|
+
authorization?: string;
|
|
28
|
+
cookies?: Record<string, unknown>;
|
|
29
|
+
cookieName?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolves the token for an HTTP request-like object.
|
|
33
|
+
* Precedence: `Authorization` header, then the access-token cookie.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveRequestToken({ authorization, cookies, cookieName, }: RequestTokenSources): string | null;
|
|
36
|
+
export interface SocketTokenSources {
|
|
37
|
+
auth?: Record<string, unknown>;
|
|
38
|
+
key?: string;
|
|
39
|
+
headers?: {
|
|
40
|
+
authorization?: string;
|
|
41
|
+
cookie?: string;
|
|
42
|
+
};
|
|
43
|
+
/** Pre-parsed cookies, when available. */
|
|
44
|
+
cookies?: CookieMap;
|
|
45
|
+
/** Raw `Cookie` header, used when `cookies` is not provided. */
|
|
46
|
+
cookieHeader?: string;
|
|
47
|
+
cookieName?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Resolves the token for a Socket.IO connection.
|
|
51
|
+
* Precedence: `handshake.auth.token`, `Authorization` header, access-token cookie.
|
|
52
|
+
*/
|
|
53
|
+
export declare function resolveSocketToken({ auth, key, headers, cookies, cookieHeader, cookieName, }: SocketTokenSources): string | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ArkosRequest } from
|
|
2
|
-
import {
|
|
3
|
-
import { PrismaModels } from
|
|
1
|
+
import { ArkosRequest } from '../../types';
|
|
2
|
+
import { ArkosPrismaService } from './base.service';
|
|
3
|
+
import { PrismaModels } from '../../generated';
|
|
4
4
|
export interface OperationHooks {
|
|
5
5
|
beforeQuery?: (req: ArkosRequest) => void | Promise<void>;
|
|
6
6
|
afterQuery?: (queryData: {
|
|
@@ -31,22 +31,23 @@ export interface OperationHooks {
|
|
|
31
31
|
*
|
|
32
32
|
* @param {string} modelName - The Prisma model name this controller handles.
|
|
33
33
|
*
|
|
34
|
-
* @see {@link https://www.arkosjs.com/docs/
|
|
34
|
+
* @see {@link https://www.arkosjs.com/docs/reference/base-controller}
|
|
35
35
|
*--
|
|
36
36
|
* **See about how Arkos handles routers**
|
|
37
|
-
* @see {@link https://www.arkosjs.com/docs/
|
|
37
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/routing/setup}
|
|
38
38
|
*/
|
|
39
39
|
export declare class BaseController<TModuleName extends keyof PrismaModels<any>> {
|
|
40
40
|
/**
|
|
41
41
|
* Service instance to handle business logic operations
|
|
42
42
|
* @public
|
|
43
43
|
*/
|
|
44
|
-
service:
|
|
44
|
+
service: ArkosPrismaService<TModuleName>;
|
|
45
45
|
/**
|
|
46
46
|
* Name of the model this controller handles
|
|
47
47
|
* @private
|
|
48
48
|
*/
|
|
49
49
|
private modelName;
|
|
50
|
+
private get hasCustomService();
|
|
50
51
|
/**
|
|
51
52
|
* Creates a new BaseController instance
|
|
52
53
|
* @param {string} modelName - The name of the model for which this controller will handle operations
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { NextFunction, Request, Response } from
|
|
2
|
-
import { PrismaQueryOptions, ArkosRequest,
|
|
3
|
-
import {
|
|
4
|
-
import { ClassConstructor } from "class-transformer";
|
|
5
|
-
import { ValidatorOptions } from "class-validator";
|
|
6
|
-
import { ArkosRouteConfig } from "../../utils/arkos-router/types";
|
|
7
|
-
export declare function callNext(_: Request, _1: Response, next: NextFunction): void;
|
|
1
|
+
import { NextFunction, Request, Response } from 'express';
|
|
2
|
+
import { PrismaQueryOptions, ArkosRequest, ArkosResponse, AuthPrismaQueryOptions } from '../../types';
|
|
3
|
+
import { ArkosRouteConfig } from '../../utils/arkos-router/types';
|
|
8
4
|
/**
|
|
9
5
|
* Sends response with backward compatibility support
|
|
10
6
|
* Compares current values against original values to detect middleware changes
|
|
@@ -30,6 +26,4 @@ export declare function addPrismaQueryOptionsToRequest<T extends Record<string,
|
|
|
30
26
|
*
|
|
31
27
|
*/
|
|
32
28
|
export declare function handleRequestLogs(req: Request, res: Response, next: NextFunction): void;
|
|
33
|
-
export declare function handleRequestBodyValidationAndTransformation<T extends object>(schemaOrDtoClass?: ClassConstructor<T>, classValidatorValidationOptions?: ValidatorOptions): ArkosRequestHandler;
|
|
34
|
-
export declare function handleRequestBodyValidationAndTransformation<T extends object>(schemaOrDtoClass?: ZodSchema<T>): ArkosRequestHandler;
|
|
35
29
|
export declare function validateRequestInputs(routeConfig: ArkosRouteConfig): any;
|