arkos 2.0.0-next.2 → 2.0.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -145
- package/cli.js +11 -13
- package/dist/esm/app.js +17 -16
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-gateway/arkos-gateway.js +338 -0
- package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js +168 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
- package/dist/esm/components/arkos-gateway/types.js +3 -0
- package/dist/esm/components/arkos-gateway/types.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
- package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
- package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
- package/dist/esm/components/arkos-policy/index.js +3 -1
- package/dist/esm/components/arkos-policy/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/index.js +2 -1
- package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
- package/dist/esm/exports/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/exports/index.js +3 -3
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/middlewares/index.js +1 -1
- package/dist/esm/exports/middlewares/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -2
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/websockets.js +5 -0
- package/dist/esm/exports/websockets.js.map +1 -0
- package/dist/esm/generated.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +214 -222
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +26 -9
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +90 -102
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
- package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/docs-links.js +6 -0
- package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +182 -162
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +31 -48
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +23 -9
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +33 -138
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/base/utils/error-prettifier.js +26 -30
- package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
- package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +17 -10
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +9 -103
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +208 -214
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +35 -12
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +13 -8
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +346 -0
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +39 -22
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +6 -3
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/types/auth.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/types/validation/validation-manager.js +49 -0
- package/dist/esm/types/validation/validation-manager.js.map +1 -0
- package/dist/esm/types/validation/validator.js +2 -0
- package/dist/esm/types/validation/validator.js.map +1 -0
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +37 -130
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
- package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +188 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +88 -29
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +364 -89
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js +6 -6
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +16 -7
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +18 -28
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +5 -4
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +70 -56
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +54 -50
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +8 -37
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +25 -14
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -4
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +117 -65
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +6 -8
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js +213 -19
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +31 -18
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/define-config.js +14 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/docs-links.js +2 -0
- package/dist/esm/utils/docs-links.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +0 -6
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +2 -1
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +46 -27
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +26 -33
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +2 -2
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +41 -17
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/prisma/types.js.map +1 -1
- package/dist/esm/utils/remove-dir.js +1 -1
- package/dist/esm/utils/remove-dir.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +23 -21
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +10 -7
- package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
- package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
- package/dist/types/components/arkos-gateway/types.d.ts +364 -0
- package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
- package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
- package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
- package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +11 -5
- package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
- package/dist/types/components/arkos-route-hook/types.d.ts +9 -5
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/exports/index.d.ts +5 -5
- package/dist/types/exports/middlewares/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -3
- package/dist/types/exports/websockets.d.ts +5 -0
- package/dist/types/modules/auth/auth.service.d.ts +80 -51
- package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
- package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
- package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
- package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
- package/dist/types/modules/base/base.controller.d.ts +4 -4
- package/dist/types/modules/base/base.middlewares.d.ts +1 -7
- package/dist/types/modules/base/base.service.d.ts +8 -17
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
- package/dist/types/modules/email/email.service.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -27
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
- package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
- package/dist/types/types/arkos-config/utils.d.ts +68 -0
- package/dist/types/types/arkos-prisma-input.d.ts +4 -3
- package/dist/types/types/arkos.d.ts +5 -15
- package/dist/types/types/auth.d.ts +4 -4
- package/dist/types/types/index.d.ts +10 -58
- package/dist/types/types/new-arkos-config.d.ts +326 -36
- package/dist/types/types/router-config.d.ts +0 -63
- package/dist/types/types/upload.d.ts +10 -0
- package/dist/types/types/validation/validation-manager.d.ts +27 -0
- package/dist/types/types/validation/validator.d.ts +2 -0
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +83 -8
- package/dist/types/utils/arkos-router/types/index.d.ts +74 -23
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +65 -8
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/build.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +15 -6
- package/dist/types/utils/cli/start.d.ts +3 -1
- package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
- package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
- package/dist/types/utils/define-config.d.ts +1 -1
- package/dist/types/utils/docs-links.d.ts +1 -0
- package/dist/types/utils/dynamic-loader.d.ts +2 -2
- package/dist/types/utils/features/api.features.d.ts +1 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/initialize-app.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
- package/dist/types/utils/prisma/types.d.ts +3 -2
- package/package.json +117 -84
- package/dist/cjs/app.js +0 -79
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
- package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
- package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/index.js +0 -36
- package/dist/cjs/components/arkos-policy/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/types.js +0 -3
- package/dist/cjs/components/arkos-policy/types.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/index.js +0 -50
- package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
- package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/types.js +0 -3
- package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/index.js +0 -35
- package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
- package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/types.js +0 -3
- package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
- package/dist/cjs/exports/auth/index.js +0 -6
- package/dist/cjs/exports/auth/index.js.map +0 -1
- package/dist/cjs/exports/config.js +0 -6
- package/dist/cjs/exports/config.js.map +0 -1
- package/dist/cjs/exports/controllers/index.js +0 -42
- package/dist/cjs/exports/controllers/index.js.map +0 -1
- package/dist/cjs/exports/error-handler/index.js +0 -11
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -23
- package/dist/cjs/exports/index.js.map +0 -1
- package/dist/cjs/exports/middlewares/index.js +0 -7
- package/dist/cjs/exports/middlewares/index.js.map +0 -1
- package/dist/cjs/exports/prisma/index.js +0 -13
- package/dist/cjs/exports/prisma/index.js.map +0 -1
- package/dist/cjs/exports/services/index.js +0 -53
- package/dist/cjs/exports/services/index.js.map +0 -1
- package/dist/cjs/exports/utils/index.js +0 -26
- package/dist/cjs/exports/utils/index.js.map +0 -1
- package/dist/cjs/exports/validation/index.js +0 -11
- package/dist/cjs/exports/validation/index.js.map +0 -1
- package/dist/cjs/generated.js +0 -7
- package/dist/cjs/generated.js.map +0 -1
- package/dist/cjs/modules/auth/auth.controller.js +0 -254
- package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
- package/dist/cjs/modules/auth/auth.router.js +0 -113
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -277
- package/dist/cjs/modules/auth/auth.service.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
- package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -150
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -275
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -231
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -112
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -432
- package/dist/cjs/modules/base/base.service.js.map +0 -1
- package/dist/cjs/modules/base/types/base.service.types.js +0 -3
- package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
- package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
- package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +0 -13
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/router-validator.js +0 -13
- package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/debugger/debugger.service.js +0 -59
- package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
- package/dist/cjs/modules/email/email.service.js +0 -106
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -218
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/cjs/modules/swagger/swagger.router.js +0 -65
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -473
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/server.js +0 -60
- package/dist/cjs/server.js.map +0 -1
- package/dist/cjs/types/arkos-prisma-input.js +0 -3
- package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
- package/dist/cjs/types/arkos.js +0 -3
- package/dist/cjs/types/arkos.js.map +0 -1
- package/dist/cjs/types/auth.js +0 -3
- package/dist/cjs/types/auth.js.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/new-arkos-config.js +0 -3
- package/dist/cjs/types/new-arkos-config.js.map +0 -1
- package/dist/cjs/types/router-config.js +0 -3
- package/dist/cjs/types/router-config.js.map +0 -1
- package/dist/cjs/utils/arkos-env.js +0 -9
- package/dist/cjs/utils/arkos-env.js.map +0 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -126
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -253
- package/dist/cjs/utils/arkos-router/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
- package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/index.js +0 -3
- package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -163
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -283
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
- package/dist/cjs/utils/bundler.js +0 -163
- package/dist/cjs/utils/bundler.js.map +0 -1
- package/dist/cjs/utils/cli/build.js +0 -199
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -128
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -79
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -229
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -191
- package/dist/cjs/utils/cli/index.js.map +0 -1
- package/dist/cjs/utils/cli/prisma-generate.js +0 -112
- package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
- package/dist/cjs/utils/cli/start.js +0 -72
- package/dist/cjs/utils/cli/start.js.map +0 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -115
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -550
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -139
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -53
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -351
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -52
- package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
- package/dist/cjs/utils/define-config.js +0 -46
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -52
- package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
- package/dist/cjs/utils/dynamic-loader.js +0 -22
- package/dist/cjs/utils/dynamic-loader.js.map +0 -1
- package/dist/cjs/utils/expand-env.js +0 -72
- package/dist/cjs/utils/expand-env.js.map +0 -1
- package/dist/cjs/utils/features/api.features.js +0 -201
- package/dist/cjs/utils/features/api.features.js.map +0 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +0 -327
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
- package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
- package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
- package/dist/cjs/utils/helpers/exit-error.js +0 -12
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -105
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
- package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/text.helpers.js +0 -28
- package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
- package/dist/cjs/utils/initialize-app.js +0 -55
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
- package/dist/cjs/utils/prisma/types.js +0 -3
- package/dist/cjs/utils/prisma/types.js.map +0 -1
- package/dist/cjs/utils/remove-dir.js +0 -14
- package/dist/cjs/utils/remove-dir.js.map +0 -1
- package/dist/cjs/utils/setup-app.js +0 -119
- package/dist/cjs/utils/setup-app.js.map +0 -1
- package/dist/cjs/utils/sheu.js +0 -131
- package/dist/cjs/utils/sheu.js.map +0 -1
- package/dist/cjs/utils/validate-dto.js +0 -19
- package/dist/cjs/utils/validate-dto.js.map +0 -1
- package/dist/cjs/utils/validate-schema.js +0 -75
- package/dist/cjs/utils/validate-schema.js.map +0 -1
- package/dist/esm/components/arkos-loadable-translator/index.js +0 -138
- package/dist/esm/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/index.js +0 -32
- package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/reader.js +0 -24
- package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/types.js +0 -2
- package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +0 -10
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
- package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
- package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
- package/dist/types/components/arkos-service-hook/types.d.ts +0 -240
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
- package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload-json-schema-generator.js","sourceRoot":"","sources":["../../../../../src/modules/file-upload/utils/file-upload-json-schema-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import { OpenAPIV3 } from \"openapi-types\";\nimport { getArkosConfig } from \"../../../utils/helpers/arkos-config.helpers\";\nimport deepmerge from \"../../../utils/helpers/deepmerge.helper\";\nimport { fileUploadDefaultRestrictions } from \"../file-upload.service\";\nimport { FileUploadRouterEndpoint } from \"../../../types/router-config\";\nimport { ArkosRouteConfig } from \"../../../exports\";\nimport { ExtendedOperationObject } from \"../../../utils/arkos-router/types/openapi-config\";\n\nclass FileUploadJsonSchemaGenerator {\n private formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + \" \" + sizes[i];\n }\n\n private getFileTypeDescription(fileType: string): string {\n const arkosConfig = getArkosConfig();\n const restrictions = deepmerge(\n fileUploadDefaultRestrictions,\n arkosConfig.fileUpload?.restrictions || {}\n );\n\n const restriction = restrictions[fileType as keyof typeof restrictions];\n if (!restriction) return \"\";\n\n const maxSize = this.formatBytes(restriction.maxSize!);\n const maxCount = restriction.maxCount;\n const formats = restriction.supportedFilesRegex\n ?.toString()\n .replace(/\\|/g, \", \")\n .replace(/\\//g, \"\")\n .replace(/\\.\\*/g, \"any format\");\n\n return `Maximum file size: ${maxSize}. Maximum files per upload: ${maxCount}. Supported formats: ${formats}`;\n }\n\n private getMultipartRequestBody(): OpenAPIV3.RequestBodyObject {\n return {\n required: true,\n content: {\n \"multipart/form-data\": {\n schema: {\n type: \"object\",\n properties: {\n images: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: this.getFileTypeDescription(\"images\"),\n },\n videos: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: this.getFileTypeDescription(\"videos\"),\n },\n documents: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: this.getFileTypeDescription(\"documents\"),\n },\n files: {\n type: \"array\",\n items: { type: \"string\", format: \"binary\" },\n description: this.getFileTypeDescription(\"files\"),\n },\n },\n },\n },\n },\n };\n }\n\n private getImageQueryParameters(): OpenAPIV3.ParameterObject[] {\n return [\n {\n name: \"format\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"jpeg\", \"jpg\", \"png\", \"webp\", \"gif\", \"avif\"],\n },\n description:\n \"Image format for conversion (only applicable for fileType=images)\",\n },\n {\n name: \"width\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target width for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"height\",\n in: \"query\",\n required: false,\n schema: { type: \"integer\", minimum: 1 },\n description:\n \"Target height for image resize (only applicable for fileType=images)\",\n },\n {\n name: \"resizeTo\",\n in: \"query\",\n required: false,\n schema: {\n type: \"string\",\n enum: [\"cover\", \"contain\", \"fill\", \"inside\", \"outside\"],\n },\n description: \"Resize strategy (only applicable for fileType=images)\",\n },\n ];\n }\n\n getOpenApiConfig(\n endpointRouterConfig: Omit<ArkosRouteConfig, \"path\"> = {},\n endpoint: FileUploadRouterEndpoint\n ): Partial<ExtendedOperationObject> {\n const arkosConfig = getArkosConfig();\n const basePathname = arkosConfig.fileUpload?.baseRoute || \"/api/uploads/\";\n const cleanBasePath = basePathname.endsWith(\"/\")\n ? basePathname.slice(0, -1)\n : basePathname;\n\n const existingOpenApi = endpointRouterConfig?.experimental?.openapi || {};\n\n switch (endpoint) {\n case \"findFile\": {\n const pathname = `${cleanBasePath}/*`;\n return {\n ...existingOpenApi,\n tags: [\"File Upload\", ...(existingOpenApi?.tags || [])].filter(\n (tag) => tag !== \"Defaults\"\n ),\n summary:\n existingOpenApi?.summary === pathname || !existingOpenApi?.summary\n ? \"Retrieve uploaded file\"\n : existingOpenApi.summary,\n description:\n existingOpenApi?.description ||\n `Serves static files from the upload directory (${arkosConfig.fileUpload?.baseUploadDir || \"uploads\"}). Uses wildcard path matching to serve files from any subdirectory.`,\n operationId:\n existingOpenApi?.operationId?.includes(pathname) ||\n !existingOpenApi?.operationId\n ? \"findFile\"\n : existingOpenApi.operationId,\n parameters: [\n ...(existingOpenApi?.parameters || []),\n ...(\n [\n {\n name: \"slug\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description:\n \"Path to the file including file type directory (e.g., images/photo.jpg)\",\n },\n ] as OpenAPIV3.ParameterObject[]\n ).filter(\n (p) =>\n !(existingOpenApi?.parameters || []).find(\n (ep: any) => ep.name === p.name && ep.in === p.in\n )\n ),\n ],\n responses: {\n ...(existingOpenApi?.responses || {}),\n \"200\": existingOpenApi?.responses?.[\"200\"] || {\n description: \"File retrieved successfully\",\n content: {\n \"application/octet-stream\": {\n schema: { type: \"string\", format: \"binary\" },\n },\n },\n },\n \"404\": existingOpenApi?.responses?.[\"404\"] || {\n description: \"File not found\",\n },\n },\n };\n }\n\n case \"uploadFile\": {\n const pathname = `${cleanBasePath}/:fileType`;\n return {\n ...existingOpenApi,\n tags: [\"File Upload\", ...(existingOpenApi?.tags || [])].filter(\n (tag) => tag !== \"Defaults\"\n ),\n summary:\n existingOpenApi?.summary === pathname || !existingOpenApi?.summary\n ? \"Upload file(s)\"\n : existingOpenApi.summary,\n description:\n existingOpenApi?.description ||\n \"Upload one or multiple files. Supports image processing options for image uploads.\",\n operationId:\n existingOpenApi?.operationId?.includes(pathname) ||\n !existingOpenApi?.operationId\n ? \"uploadFile\"\n : existingOpenApi.operationId,\n parameters: [\n ...(existingOpenApi?.parameters || []),\n ...(\n [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being uploaded\",\n },\n ...this.getImageQueryParameters(),\n ] as OpenAPIV3.ParameterObject[]\n ).filter(\n (p) =>\n !(existingOpenApi?.parameters || []).find(\n (ep: any) => ep.name === p.name && ep.in === p.in\n )\n ),\n ],\n requestBody:\n existingOpenApi?.requestBody || this.getMultipartRequestBody(),\n responses: {\n ...(existingOpenApi?.responses || {}),\n \"200\": existingOpenApi?.responses?.[\"200\"] || {\n description: \"File(s) uploaded successfully\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n success: { type: \"boolean\", example: true },\n data: {\n oneOf: [\n {\n type: \"string\",\n description: \"URL of uploaded file\",\n },\n {\n type: \"array\",\n items: { type: \"string\" },\n description: \"URLs of uploaded files\",\n },\n ],\n },\n message: { type: \"string\" },\n },\n },\n },\n },\n },\n \"400\": existingOpenApi?.responses?.[\"400\"] || {\n description:\n \"Invalid file type, size limit exceeded, or no file uploaded\",\n },\n },\n };\n }\n\n case \"updateFile\": {\n const pathname = `${cleanBasePath}/:fileType/:fileName`;\n return {\n ...existingOpenApi,\n tags: [\"File Upload\", ...(existingOpenApi?.tags || [])].filter(\n (tag) => tag !== \"Defaults\"\n ),\n summary:\n existingOpenApi?.summary === pathname || !existingOpenApi?.summary\n ? \"Update existing file\"\n : existingOpenApi.summary,\n description:\n existingOpenApi?.description ||\n \"Replace an existing file with a new one. Deletes the old file and uploads the new one.\",\n operationId:\n existingOpenApi?.operationId?.includes(pathname) ||\n !existingOpenApi?.operationId\n ? \"updateFile\"\n : existingOpenApi.operationId,\n parameters: [\n ...(existingOpenApi?.parameters || []),\n ...(\n [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being updated\",\n },\n {\n name: \"fileName\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description: \"Name of the file to update\",\n },\n ...this.getImageQueryParameters(),\n ] as OpenAPIV3.ParameterObject[]\n ).filter(\n (p) =>\n !(existingOpenApi?.parameters || []).find(\n (ep: any) => ep.name === p.name && ep.in === p.in\n )\n ),\n ],\n requestBody:\n existingOpenApi?.requestBody || this.getMultipartRequestBody(),\n responses: {\n ...(existingOpenApi?.responses || {}),\n \"200\": existingOpenApi?.responses?.[\"200\"] || {\n description: \"File updated successfully\",\n content: {\n \"application/json\": {\n schema: {\n type: \"object\",\n properties: {\n success: { type: \"boolean\", example: true },\n data: {\n oneOf: [\n {\n type: \"string\",\n description: \"URL of updated file\",\n },\n {\n type: \"array\",\n items: { type: \"string\" },\n description: \"URLs of updated files\",\n },\n ],\n },\n message: { type: \"string\" },\n },\n },\n },\n },\n },\n \"400\": existingOpenApi?.responses?.[\"400\"] || {\n description:\n \"Invalid file type, size limit exceeded, or no file uploaded\",\n },\n \"404\": existingOpenApi?.responses?.[\"404\"] || {\n description: \"Original file not found\",\n },\n },\n };\n }\n\n case \"deleteFile\": {\n const pathname = `${cleanBasePath}/:fileType/:fileName`;\n return {\n ...existingOpenApi,\n tags: [\"File Upload\", ...(existingOpenApi?.tags || [])].filter(\n (tag) => tag !== \"Defaults\"\n ),\n summary:\n existingOpenApi?.summary === pathname || !existingOpenApi?.summary\n ? \"Delete file\"\n : existingOpenApi.summary,\n description:\n existingOpenApi?.description ||\n \"Delete an uploaded file from the server\",\n operationId:\n existingOpenApi?.operationId?.includes(pathname) ||\n !existingOpenApi?.operationId\n ? \"deleteFile\"\n : existingOpenApi.operationId,\n parameters: [\n ...(existingOpenApi?.parameters || []),\n ...(\n [\n {\n name: \"fileType\",\n in: \"path\",\n required: true,\n schema: {\n type: \"string\",\n enum: [\"images\", \"videos\", \"documents\", \"files\"],\n },\n description: \"Type of file being deleted\",\n },\n {\n name: \"fileName\",\n in: \"path\",\n required: true,\n schema: { type: \"string\" },\n description: \"Name of the file to delete\",\n },\n ] as OpenAPIV3.ParameterObject[]\n ).filter(\n (p) =>\n !(existingOpenApi?.parameters || []).find(\n (ep: any) => ep.name === p.name && ep.in === p.in\n )\n ),\n ],\n responses: {\n ...(existingOpenApi?.responses || {}),\n \"204\": existingOpenApi?.responses?.[\"204\"] || {\n description: \"File deleted successfully\",\n },\n \"404\": existingOpenApi?.responses?.[\"404\"] || {\n description: \"File not found\",\n },\n },\n };\n }\n\n default:\n return {};\n }\n }\n}\n\nconst fileUploadJsonSchemaGenerator = new FileUploadJsonSchemaGenerator();\n\nexport default fileUploadJsonSchemaGenerator;\n"]}
|
|
@@ -1,41 +1,58 @@
|
|
|
1
|
-
import { Router } from "express";
|
|
2
1
|
import swaggerJsdoc from "swagger-jsdoc";
|
|
3
|
-
import { generatePathsForModels, getOpenAPIJsonSchemasByConfigMode, } from "./utils/helpers/swagger.router.helpers.js";
|
|
4
|
-
import missingJsonSchemaGenerator from "./utils/helpers/missing-json-schemas-generator.js";
|
|
5
2
|
import getSwaggerDefaultConfig from "./utils/helpers/get-swagger-default-configs.js";
|
|
6
3
|
import { importEsmPreventingTsTransformation } from "../../utils/helpers/global.helpers.js";
|
|
7
|
-
import
|
|
8
|
-
import { generateOpenAPIFromApp } from "../../utils/arkos-router/index.js";
|
|
9
|
-
import getFileUploadJsonSchemaPaths from "./utils/helpers/get-file-upload-json-schema-paths.js";
|
|
4
|
+
import ArkosRouter, { generateOpenAPIFromApp } from "../../utils/arkos-router/index.js";
|
|
10
5
|
import deepmerge from "../../utils/helpers/deepmerge.helper.js";
|
|
11
|
-
|
|
6
|
+
import AppError from "../error-handler/utils/app-error.js";
|
|
7
|
+
import getOpenApiLoginHtml from "./utils/get-open-api-login-html.js";
|
|
8
|
+
import { isProduction } from "../../utils/helpers/arkos-config.helpers.js";
|
|
9
|
+
const swaggerRouter = ArkosRouter();
|
|
12
10
|
export function getSwaggerRouter(arkosConfig, app) {
|
|
13
|
-
let defaultJsonSchemas = getOpenAPIJsonSchemasByConfigMode();
|
|
14
11
|
const pathsFromCustomArkosRouters = generateOpenAPIFromApp(app);
|
|
15
|
-
const
|
|
16
|
-
const fileUploadDefaultPaths = getFileUploadJsonSchemaPaths(arkosConfig, pathsFromCustomArkosRouters);
|
|
17
|
-
const missingJsonSchemas = missingJsonSchemaGenerator.generateMissingJsonSchemas(defaultModelsPaths, defaultJsonSchemas);
|
|
18
|
-
defaultJsonSchemas = {
|
|
19
|
-
...defaultJsonSchemas,
|
|
20
|
-
...missingJsonSchemas,
|
|
21
|
-
...generateSystemJsonSchemas(arkosConfig),
|
|
22
|
-
};
|
|
23
|
-
const swaggerConfigs = deepmerge(getSwaggerDefaultConfig({
|
|
12
|
+
const defaultSwaggerConfig = getSwaggerDefaultConfig({
|
|
24
13
|
...pathsFromCustomArkosRouters,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
});
|
|
15
|
+
const swaggerConfigs = deepmerge(defaultSwaggerConfig, arkosConfig.swagger || {});
|
|
16
|
+
if (arkosConfig.swagger?.options?.definition?.servers &&
|
|
17
|
+
swaggerConfigs &&
|
|
18
|
+
isProduction()) {
|
|
19
|
+
swaggerConfigs.options.definition.servers =
|
|
20
|
+
arkosConfig.swagger.options.definition.servers;
|
|
21
|
+
swaggerConfigs.options.definition.servers.push(defaultSwaggerConfig.options.definition.servers[0]);
|
|
22
|
+
}
|
|
28
23
|
const { definition, ...options } = swaggerConfigs?.options;
|
|
29
24
|
const swaggerSpecification = swaggerJsdoc({
|
|
30
25
|
definition: definition,
|
|
31
26
|
...options,
|
|
32
27
|
});
|
|
33
28
|
const endpoint = swaggerConfigs.endpoint;
|
|
34
|
-
|
|
29
|
+
const swaggerAuth = arkosConfig?.swagger;
|
|
30
|
+
const authenticate = swaggerAuth?.authenticate !== false;
|
|
31
|
+
if (authenticate) {
|
|
32
|
+
swaggerRouter.use({ path: endpoint }, (req, _, next) => {
|
|
33
|
+
if (req.path.includes("/auth"))
|
|
34
|
+
return next();
|
|
35
|
+
next("route");
|
|
36
|
+
});
|
|
37
|
+
swaggerRouter.use({ authentication: true, path: endpoint }, (req, _, next) => {
|
|
38
|
+
if (!req.user?.isSuperUser)
|
|
39
|
+
return next(new AppError("Only super users can access API documentation in production.", 403, "SuperUserRequired"));
|
|
40
|
+
next();
|
|
41
|
+
}, (err, req, res, next) => {
|
|
42
|
+
if (req.path.includes("/auth"))
|
|
43
|
+
return next();
|
|
44
|
+
const message = encodeURIComponent(err?.message || "Authentication required.");
|
|
45
|
+
return res.redirect(`${arkosConfig.globalPrefix}${endpoint}/auth/login?error-message=${message}`);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
swaggerRouter.get({ path: `${endpoint}/auth/login` }, (_, res) => {
|
|
49
|
+
res.send(getOpenApiLoginHtml());
|
|
50
|
+
});
|
|
51
|
+
swaggerRouter.get({ path: `${endpoint}/openapi.json` }, (_, res) => {
|
|
35
52
|
res.json(swaggerSpecification);
|
|
36
53
|
});
|
|
37
54
|
let scalarHandler = null;
|
|
38
|
-
swaggerRouter.use(endpoint, scalarMiddleware(scalarHandler, swaggerSpecification, swaggerConfigs));
|
|
55
|
+
swaggerRouter.use({ path: endpoint }, scalarMiddleware(scalarHandler, swaggerSpecification, swaggerConfigs));
|
|
39
56
|
return swaggerRouter;
|
|
40
57
|
}
|
|
41
58
|
export function scalarMiddleware(scalarHandler, swaggerSpecification, swaggerConfigs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger.router.js","sourceRoot":"","sources":["../../../../src/modules/swagger/swagger.router.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"swagger.router.js","sourceRoot":"","sources":["../../../../src/modules/swagger/swagger.router.ts"],"names":[],"mappings":"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","sourcesContent":["import swaggerJsdoc from \"swagger-jsdoc\";\nimport getSwaggerDefaultConfig from \"./utils/helpers/get-swagger-default-configs\";\nimport { importEsmPreventingTsTransformation } from \"../../utils/helpers/global.helpers\";\nimport ArkosRouter, { generateOpenAPIFromApp } from \"../../utils/arkos-router\";\nimport {\n ArkosConfig,\n ArkosNextFunction,\n ArkosRequest,\n ArkosResponse,\n} from \"../../exports\";\nimport deepmerge from \"../../utils/helpers/deepmerge.helper\";\nimport { Arkos } from \"../../types/arkos\";\nimport { UserArkosConfig } from \"../../utils/define-config\";\nimport AppError from \"../error-handler/utils/app-error\";\nimport getOpenApiLoginHtml from \"./utils/get-open-api-login-html\";\nimport { isProduction } from \"../../utils/helpers/arkos-config.helpers\";\n\nconst swaggerRouter = ArkosRouter();\n\nexport function getSwaggerRouter(\n arkosConfig: UserArkosConfig,\n app: Arkos\n) {\n const pathsFromCustomArkosRouters = generateOpenAPIFromApp(app);\n const defaultSwaggerConfig = getSwaggerDefaultConfig({\n ...pathsFromCustomArkosRouters,\n })!;\n\n const swaggerConfigs = deepmerge(\n defaultSwaggerConfig,\n arkosConfig.swagger || {}\n ) as ArkosConfig[\"swagger\"];\n\n if (\n arkosConfig.swagger?.options?.definition?.servers &&\n swaggerConfigs &&\n isProduction()\n ) {\n swaggerConfigs!.options!.definition!.servers =\n arkosConfig.swagger.options.definition.servers;\n\n swaggerConfigs!.options!.definition!.servers.push(\n defaultSwaggerConfig.options.definition.servers[0]\n );\n }\n\n const { definition, ...options } = swaggerConfigs?.options!;\n const swaggerSpecification = swaggerJsdoc({\n definition: definition as swaggerJsdoc.SwaggerDefinition,\n ...options,\n });\n\n const endpoint = swaggerConfigs!.endpoint!;\n\n const swaggerAuth = arkosConfig?.swagger;\n const authenticate = swaggerAuth?.authenticate !== false;\n\n if (authenticate) {\n swaggerRouter.use(\n { path: endpoint },\n (req: ArkosRequest, _: ArkosResponse, next: ArkosNextFunction) => {\n if (req.path.includes(\"/auth\")) return next();\n next(\"route\"); // skip to auth chain below\n }\n );\n\n swaggerRouter.use(\n { authentication: true, path: endpoint },\n (req: ArkosRequest, _: ArkosResponse, next: ArkosNextFunction) => {\n if (!req.user?.isSuperUser)\n return next(\n new AppError(\n \"Only super users can access API documentation in production.\",\n 403,\n \"SuperUserRequired\"\n )\n );\n next();\n },\n (\n err: AppError,\n req: ArkosRequest,\n res: ArkosResponse,\n next: ArkosNextFunction\n ) => {\n if (req.path.includes(\"/auth\")) return next();\n const message = encodeURIComponent(\n err?.message || \"Authentication required.\"\n );\n return res.redirect(\n `${arkosConfig.globalPrefix}${endpoint}/auth/login?error-message=${message}`\n );\n }\n );\n }\n\n swaggerRouter.get(\n { path: `${endpoint}/auth/login` },\n (_: ArkosRequest, res: ArkosResponse) => {\n res.send(getOpenApiLoginHtml());\n }\n );\n\n swaggerRouter.get(\n { path: `${endpoint}/openapi.json` },\n (_: ArkosRequest, res: ArkosResponse) => {\n res.json(swaggerSpecification);\n }\n );\n\n let scalarHandler: any = null;\n\n swaggerRouter.use(\n { path: endpoint },\n scalarMiddleware(scalarHandler, swaggerSpecification, swaggerConfigs)\n );\n\n return swaggerRouter;\n}\n\nexport function scalarMiddleware(\n scalarHandler: any,\n swaggerSpecification: object,\n swaggerConfigs: any\n) {\n let scalarLoading: Promise<void> | null = null;\n\n return async (\n req: ArkosRequest,\n res: ArkosResponse,\n next: ArkosNextFunction\n ) => {\n if (!scalarHandler) {\n if (!scalarLoading) {\n scalarLoading = importEsmPreventingTsTransformation(\n \"@scalar/express-api-reference\"\n ).then((scalar) => {\n scalarHandler = scalar.apiReference({\n content: swaggerSpecification,\n ...swaggerConfigs?.scalarApiReferenceConfiguration,\n });\n });\n }\n await scalarLoading;\n }\n return scalarHandler(req, res, next);\n };\n}\n"]}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { getArkosConfig } from "../../../server.js";
|
|
2
|
+
function formatFieldLabel(field) {
|
|
3
|
+
const last = field.split(".").pop();
|
|
4
|
+
return last
|
|
5
|
+
.replace(/([A-Z])/g, " $1")
|
|
6
|
+
.replace(/^./, (c) => c.toUpperCase())
|
|
7
|
+
.trim();
|
|
8
|
+
}
|
|
9
|
+
export default function getOpenApiLoginHtml() {
|
|
10
|
+
const arkosConfig = getArkosConfig();
|
|
11
|
+
const theme = arkosConfig?.swagger?.scalarApiReferenceConfiguration?.theme || "default";
|
|
12
|
+
const allowedUsernames = arkosConfig?.authentication?.login?.allowedUsernames
|
|
13
|
+
?.length
|
|
14
|
+
? arkosConfig.authentication.login.allowedUsernames
|
|
15
|
+
: ["username"];
|
|
16
|
+
const themeColors = {
|
|
17
|
+
default: { bg: "#0f0f0f", surface: "#1a1a1a", border: "#2e2e2e" },
|
|
18
|
+
moon: { bg: "#0f1117", surface: "#1c1e26", border: "#2e3040" },
|
|
19
|
+
purple: { bg: "#0d0d14", surface: "#1a1a2e", border: "#2e2e4a" },
|
|
20
|
+
solarized: { bg: "#002b36", surface: "#073642", border: "#124652" },
|
|
21
|
+
bluePlanet: { bg: "#070b14", surface: "#0d1424", border: "#1a2540" },
|
|
22
|
+
saturn: { bg: "#0a0a0f", surface: "#16161f", border: "#28283a" },
|
|
23
|
+
kepler: { bg: "#0a0f0a", surface: "#141f14", border: "#253525" },
|
|
24
|
+
mars: { bg: "#0f0a08", surface: "#1f1410", border: "#352520" },
|
|
25
|
+
deepSpace: { bg: "#0a0a0a", surface: "#121212", border: "#3a3a3a" },
|
|
26
|
+
};
|
|
27
|
+
const colors = themeColors[theme] ?? themeColors["default"];
|
|
28
|
+
const firstLabel = formatFieldLabel(allowedUsernames[0]);
|
|
29
|
+
const showSelect = allowedUsernames.length > 1;
|
|
30
|
+
const title = arkosConfig?.swagger?.options?.definition?.info?.title ||
|
|
31
|
+
"Arkos.js OpenAPI Documentation";
|
|
32
|
+
return `<!DOCTYPE html>
|
|
33
|
+
<html lang="en">
|
|
34
|
+
<head>
|
|
35
|
+
<meta charset="UTF-8">
|
|
36
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
37
|
+
<title>${title}</title>
|
|
38
|
+
<style>
|
|
39
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
40
|
+
|
|
41
|
+
body {
|
|
42
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
43
|
+
min-height: 100vh;
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: center;
|
|
47
|
+
background-color: ${colors.bg};
|
|
48
|
+
padding: 8px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.login-container {
|
|
52
|
+
background-color: ${colors.surface};
|
|
53
|
+
padding: 40px;
|
|
54
|
+
border: 1px solid ${colors.border};
|
|
55
|
+
border-radius: 8px;
|
|
56
|
+
width: 100%;
|
|
57
|
+
max-width: 400px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
h1 {
|
|
61
|
+
color: #ffffff;
|
|
62
|
+
text-align: center;
|
|
63
|
+
margin-bottom: 30px;
|
|
64
|
+
font-size: 24px;
|
|
65
|
+
font-weight: 600;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
h2 {
|
|
69
|
+
color: #ffffff;
|
|
70
|
+
text-align: center;
|
|
71
|
+
margin-bottom: 20px;
|
|
72
|
+
font-size: 16px;
|
|
73
|
+
font-weight: 500;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.form-group {
|
|
77
|
+
margin-bottom: 20px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
label {
|
|
81
|
+
display: block;
|
|
82
|
+
color: #ffffff;
|
|
83
|
+
margin-bottom: 8px;
|
|
84
|
+
font-size: 14px;
|
|
85
|
+
font-weight: 500;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
input[type="text"],
|
|
89
|
+
input[type="password"] {
|
|
90
|
+
width: 100%;
|
|
91
|
+
padding: 12px 16px;
|
|
92
|
+
background-color: ${colors.bg};
|
|
93
|
+
border: 1px solid ${colors.border};
|
|
94
|
+
border-radius: 4px;
|
|
95
|
+
color: #ffffff;
|
|
96
|
+
font-size: 14px;
|
|
97
|
+
transition: border-color 0.3s;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
select {
|
|
101
|
+
width: 100%;
|
|
102
|
+
padding: 12px 16px;
|
|
103
|
+
background-color: ${colors.bg};
|
|
104
|
+
border: 1px solid ${colors.border};
|
|
105
|
+
border-radius: 4px;
|
|
106
|
+
color: #ffffff;
|
|
107
|
+
font-size: 14px;
|
|
108
|
+
transition: border-color 0.3s;
|
|
109
|
+
appearance: none;
|
|
110
|
+
-webkit-appearance: none;
|
|
111
|
+
-moz-appearance: none;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
/* custom arrow */
|
|
114
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
115
|
+
background-repeat: no-repeat;
|
|
116
|
+
background-position: right 16px center;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
input[type="text"]:focus,
|
|
120
|
+
input[type="password"]:focus,
|
|
121
|
+
select:focus {
|
|
122
|
+
outline: none;
|
|
123
|
+
border-color: #ffffff;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
input[type="text"]::placeholder,
|
|
127
|
+
input[type="password"]::placeholder {
|
|
128
|
+
color: #666666;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
select option {
|
|
132
|
+
background-color: ${colors.surface};
|
|
133
|
+
color: #ffffff;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.login-button {
|
|
137
|
+
width: 100%;
|
|
138
|
+
padding: 12px;
|
|
139
|
+
background-color: #ffffff;
|
|
140
|
+
color: #1a1a1a;
|
|
141
|
+
border: none;
|
|
142
|
+
border-radius: 4px;
|
|
143
|
+
font-size: 16px;
|
|
144
|
+
font-weight: 600;
|
|
145
|
+
cursor: pointer;
|
|
146
|
+
transition: background-color 0.3s;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.login-button:hover { background-color: #e0e0e0; }
|
|
150
|
+
.login-button:active { transform: translateY(1px); }
|
|
151
|
+
.login-button:disabled { background-color: #666666; cursor: not-allowed; }
|
|
152
|
+
|
|
153
|
+
.error-message {
|
|
154
|
+
color: #ff6b6b;
|
|
155
|
+
font-size: 14px;
|
|
156
|
+
margin-top: 10px;
|
|
157
|
+
text-align: center;
|
|
158
|
+
display: none;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.error-message.show { display: block; }
|
|
162
|
+
|
|
163
|
+
.page-footer {
|
|
164
|
+
position: fixed;
|
|
165
|
+
bottom: 16px;
|
|
166
|
+
width: 100%;
|
|
167
|
+
text-align: center;
|
|
168
|
+
font-size: 14px;
|
|
169
|
+
color: #999999;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.page-footer a {
|
|
173
|
+
color: #999999;
|
|
174
|
+
text-decoration: underline;
|
|
175
|
+
}
|
|
176
|
+
</style>
|
|
177
|
+
</head>
|
|
178
|
+
<body>
|
|
179
|
+
<div class="login-container">
|
|
180
|
+
<h1>${title}</h1>
|
|
181
|
+
<h2>Login</h2>
|
|
182
|
+
<form id="loginForm">
|
|
183
|
+
|
|
184
|
+
${showSelect
|
|
185
|
+
? `
|
|
186
|
+
<div class="form-group">
|
|
187
|
+
<label for="usernameSelect">Login With</label>
|
|
188
|
+
<select id="usernameSelect">
|
|
189
|
+
${allowedUsernames
|
|
190
|
+
.map((f) => `
|
|
191
|
+
<option value="${f}">${formatFieldLabel(f)}</option>
|
|
192
|
+
`)
|
|
193
|
+
.join("")}
|
|
194
|
+
</select>
|
|
195
|
+
</div>
|
|
196
|
+
`
|
|
197
|
+
: ""}
|
|
198
|
+
|
|
199
|
+
<div class="form-group">
|
|
200
|
+
<label id="usernameLabel" for="usernameField">${firstLabel}</label>
|
|
201
|
+
<input
|
|
202
|
+
type="text"
|
|
203
|
+
id="usernameField"
|
|
204
|
+
placeholder="Enter your ${firstLabel.toLowerCase()}"
|
|
205
|
+
required
|
|
206
|
+
>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<div class="form-group">
|
|
210
|
+
<label for="password">Password</label>
|
|
211
|
+
<input
|
|
212
|
+
type="password"
|
|
213
|
+
id="password"
|
|
214
|
+
placeholder="Enter your password"
|
|
215
|
+
required
|
|
216
|
+
>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<button type="submit" class="login-button" id="loginButton">Login</button>
|
|
220
|
+
<div class="error-message" id="errorMessage"></div>
|
|
221
|
+
|
|
222
|
+
</form>
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
<footer class="page-footer">
|
|
226
|
+
Powered by <a href="https://www.arkosjs.com" target="_blank" rel="noopener noreferrer">Arkos.js</a>
|
|
227
|
+
</footer>
|
|
228
|
+
|
|
229
|
+
<script>
|
|
230
|
+
const usernameLabel = document.getElementById('usernameLabel');
|
|
231
|
+
const usernameField = document.getElementById('usernameField');
|
|
232
|
+
const usernameSelect = document.getElementById('usernameSelect');
|
|
233
|
+
const loginButton = document.getElementById('loginButton');
|
|
234
|
+
const errorMessage = document.getElementById('errorMessage');
|
|
235
|
+
|
|
236
|
+
function formatFieldLabel(field) {
|
|
237
|
+
const last = field.split('.').pop();
|
|
238
|
+
return last
|
|
239
|
+
.replace(/([A-Z])/g, ' $1')
|
|
240
|
+
.replace(/^./, c => c.toUpperCase())
|
|
241
|
+
.trim();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
${allowedUsernames.length > 1 &&
|
|
245
|
+
`if (usernameSelect) {
|
|
246
|
+
usernameSelect.addEventListener('change', () => {
|
|
247
|
+
const label = formatFieldLabel(usernameSelect.value);
|
|
248
|
+
usernameLabel.textContent = label;
|
|
249
|
+
usernameField.placeholder = \`Enter your \${label.toLowerCase()}\`;
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
`}
|
|
253
|
+
|
|
254
|
+
const params = new URLSearchParams(window.location.search);
|
|
255
|
+
const urlErrorMessage = params.get('error-message');
|
|
256
|
+
if (urlErrorMessage) {
|
|
257
|
+
errorMessage.textContent = decodeURIComponent(urlErrorMessage);
|
|
258
|
+
errorMessage.classList.add('show');
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
document.getElementById('loginForm').addEventListener('submit', async (e) => {
|
|
262
|
+
e.preventDefault();
|
|
263
|
+
|
|
264
|
+
const selectedField = usernameSelect ? usernameSelect.value : '${allowedUsernames[0]}';
|
|
265
|
+
const password = document.getElementById('password').value;
|
|
266
|
+
|
|
267
|
+
errorMessage.classList.remove('show');
|
|
268
|
+
errorMessage.textContent = '';
|
|
269
|
+
loginButton.disabled = true;
|
|
270
|
+
loginButton.textContent = '...';
|
|
271
|
+
|
|
272
|
+
try {
|
|
273
|
+
const selectedField = usernameSelect ? usernameSelect.value : '${allowedUsernames[0]}';
|
|
274
|
+
const fieldKey = selectedField.split('.').pop(); // last segment only as body key
|
|
275
|
+
|
|
276
|
+
const response = await fetch(\`/api/auth/login?usernameField=\${selectedField}\`, {
|
|
277
|
+
method: 'POST',
|
|
278
|
+
headers: { 'Content-Type': 'application/json' },
|
|
279
|
+
body: JSON.stringify({
|
|
280
|
+
[fieldKey]: usernameField.value,
|
|
281
|
+
password,
|
|
282
|
+
}),
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
const data = await response.json();
|
|
286
|
+
|
|
287
|
+
if (response.ok) {
|
|
288
|
+
window.location.href = '/api/docs';
|
|
289
|
+
} else {
|
|
290
|
+
errorMessage.textContent = data.message || 'Login failed';
|
|
291
|
+
errorMessage.classList.add('show');
|
|
292
|
+
}
|
|
293
|
+
} catch {
|
|
294
|
+
errorMessage.textContent = 'An error occurred. Please try again.';
|
|
295
|
+
errorMessage.classList.add('show');
|
|
296
|
+
} finally {
|
|
297
|
+
loginButton.disabled = false;
|
|
298
|
+
loginButton.textContent = 'Login';
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
</script>
|
|
302
|
+
</body>
|
|
303
|
+
</html>`;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=get-open-api-login-html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-open-api-login-html.js","sourceRoot":"","sources":["../../../../../src/modules/swagger/utils/get-open-api-login-html.ts"],"names":[],"mappings":"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","sourcesContent":["import { getArkosConfig } from \"../../../server\";\n\nfunction formatFieldLabel(field: string): string {\n const last = field.split(\".\").pop()!;\n return last\n .replace(/([A-Z])/g, \" $1\")\n .replace(/^./, (c) => c.toUpperCase())\n .trim();\n}\n\nexport default function getOpenApiLoginHtml() {\n const arkosConfig = getArkosConfig();\n\n const theme =\n arkosConfig?.swagger?.scalarApiReferenceConfiguration?.theme || \"default\";\n\n const allowedUsernames = arkosConfig?.authentication?.login?.allowedUsernames\n ?.length\n ? arkosConfig.authentication.login.allowedUsernames\n : [\"username\"];\n\n const themeColors: Record<\n string,\n { bg: string; surface: string; border: string }\n > = {\n default: { bg: \"#0f0f0f\", surface: \"#1a1a1a\", border: \"#2e2e2e\" },\n moon: { bg: \"#0f1117\", surface: \"#1c1e26\", border: \"#2e3040\" },\n purple: { bg: \"#0d0d14\", surface: \"#1a1a2e\", border: \"#2e2e4a\" },\n solarized: { bg: \"#002b36\", surface: \"#073642\", border: \"#124652\" },\n bluePlanet: { bg: \"#070b14\", surface: \"#0d1424\", border: \"#1a2540\" },\n saturn: { bg: \"#0a0a0f\", surface: \"#16161f\", border: \"#28283a\" },\n kepler: { bg: \"#0a0f0a\", surface: \"#141f14\", border: \"#253525\" },\n mars: { bg: \"#0f0a08\", surface: \"#1f1410\", border: \"#352520\" },\n deepSpace: { bg: \"#0a0a0a\", surface: \"#121212\", border: \"#3a3a3a\" },\n };\n\n const colors = themeColors[theme] ?? themeColors[\"default\"];\n\n const firstLabel = formatFieldLabel(allowedUsernames[0]);\n const showSelect = allowedUsernames.length > 1;\n const title =\n arkosConfig?.swagger?.options?.definition?.info?.title ||\n \"Arkos.js OpenAPI Documentation\";\n\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>${title}</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n\n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n min-height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${colors.bg};\n padding: 8px;\n }\n\n .login-container {\n background-color: ${colors.surface};\n padding: 40px;\n border: 1px solid ${colors.border};\n border-radius: 8px;\n width: 100%;\n max-width: 400px;\n }\n\n h1 {\n color: #ffffff;\n text-align: center;\n margin-bottom: 30px;\n font-size: 24px;\n font-weight: 600;\n }\n\n h2 {\n color: #ffffff;\n text-align: center;\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 500;\n }\n\n .form-group {\n margin-bottom: 20px;\n }\n\n label {\n display: block;\n color: #ffffff;\n margin-bottom: 8px;\n font-size: 14px;\n font-weight: 500;\n }\n\n input[type=\"text\"],\n input[type=\"password\"] {\n width: 100%;\n padding: 12px 16px;\n background-color: ${colors.bg};\n border: 1px solid ${colors.border};\n border-radius: 4px;\n color: #ffffff;\n font-size: 14px;\n transition: border-color 0.3s;\n }\n\n select {\n width: 100%;\n padding: 12px 16px;\n background-color: ${colors.bg};\n border: 1px solid ${colors.border};\n border-radius: 4px;\n color: #ffffff;\n font-size: 14px;\n transition: border-color 0.3s;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n cursor: pointer;\n /* custom arrow */\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 16px center;\n }\n\n input[type=\"text\"]:focus,\n input[type=\"password\"]:focus,\n select:focus {\n outline: none;\n border-color: #ffffff;\n }\n\n input[type=\"text\"]::placeholder,\n input[type=\"password\"]::placeholder {\n color: #666666;\n }\n\n select option {\n background-color: ${colors.surface};\n color: #ffffff;\n }\n\n .login-button {\n width: 100%;\n padding: 12px;\n background-color: #ffffff;\n color: #1a1a1a;\n border: none;\n border-radius: 4px;\n font-size: 16px;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.3s;\n }\n\n .login-button:hover { background-color: #e0e0e0; }\n .login-button:active { transform: translateY(1px); }\n .login-button:disabled { background-color: #666666; cursor: not-allowed; }\n\n .error-message {\n color: #ff6b6b;\n font-size: 14px;\n margin-top: 10px;\n text-align: center;\n display: none;\n }\n\n .error-message.show { display: block; }\n\n .page-footer {\n position: fixed;\n bottom: 16px;\n width: 100%;\n text-align: center;\n font-size: 14px;\n color: #999999;\n }\n\n .page-footer a {\n color: #999999;\n text-decoration: underline;\n }\n </style>\n</head>\n<body>\n <div class=\"login-container\">\n <h1>${title}</h1>\n <h2>Login</h2>\n <form id=\"loginForm\">\n\n ${\n showSelect\n ? `\n <div class=\"form-group\">\n <label for=\"usernameSelect\">Login With</label>\n <select id=\"usernameSelect\">\n ${allowedUsernames\n .map(\n (f) => `\n <option value=\"${f}\">${formatFieldLabel(f)}</option>\n `\n )\n .join(\"\")}\n </select>\n </div>\n `\n : \"\"\n }\n\n <div class=\"form-group\">\n <label id=\"usernameLabel\" for=\"usernameField\">${firstLabel}</label>\n <input\n type=\"text\"\n id=\"usernameField\"\n placeholder=\"Enter your ${firstLabel.toLowerCase()}\"\n required\n >\n </div>\n\n <div class=\"form-group\">\n <label for=\"password\">Password</label>\n <input\n type=\"password\"\n id=\"password\"\n placeholder=\"Enter your password\"\n required\n >\n </div>\n\n <button type=\"submit\" class=\"login-button\" id=\"loginButton\">Login</button>\n <div class=\"error-message\" id=\"errorMessage\"></div>\n\n </form>\n </div>\n\n <footer class=\"page-footer\">\n Powered by <a href=\"https://www.arkosjs.com\" target=\"_blank\" rel=\"noopener noreferrer\">Arkos.js</a>\n </footer>\n\n <script>\n const usernameLabel = document.getElementById('usernameLabel');\n const usernameField = document.getElementById('usernameField');\n const usernameSelect = document.getElementById('usernameSelect');\n const loginButton = document.getElementById('loginButton');\n const errorMessage = document.getElementById('errorMessage');\n\n function formatFieldLabel(field) {\n const last = field.split('.').pop();\n return last\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, c => c.toUpperCase())\n .trim();\n }\n\n${\n allowedUsernames.length > 1 &&\n `if (usernameSelect) {\n usernameSelect.addEventListener('change', () => {\n const label = formatFieldLabel(usernameSelect.value);\n usernameLabel.textContent = label;\n usernameField.placeholder = \\`Enter your \\${label.toLowerCase()}\\`;\n });\n }\n`\n}\n\n const params = new URLSearchParams(window.location.search);\n const urlErrorMessage = params.get('error-message');\n if (urlErrorMessage) {\n errorMessage.textContent = decodeURIComponent(urlErrorMessage);\n errorMessage.classList.add('show');\n }\n\n document.getElementById('loginForm').addEventListener('submit', async (e) => {\n e.preventDefault();\n\n const selectedField = usernameSelect ? usernameSelect.value : '${allowedUsernames[0]}';\n const password = document.getElementById('password').value;\n\n errorMessage.classList.remove('show');\n errorMessage.textContent = '';\n loginButton.disabled = true;\n loginButton.textContent = '...';\n\n try {\n const selectedField = usernameSelect ? usernameSelect.value : '${allowedUsernames[0]}';\n const fieldKey = selectedField.split('.').pop(); // last segment only as body key\n\n const response = await fetch(\\`/api/auth/login?usernameField=\\${selectedField}\\`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n [fieldKey]: usernameField.value,\n password,\n }),\n });\n\n const data = await response.json();\n\n if (response.ok) {\n window.location.href = '/api/docs';\n } else {\n errorMessage.textContent = data.message || 'Login failed';\n errorMessage.classList.add('show');\n }\n } catch {\n errorMessage.textContent = 'An error occurred. Please try again.';\n errorMessage.classList.add('show');\n } finally {\n loginButton.disabled = false;\n loginButton.textContent = 'Login';\n }\n });\n </script>\n</body>\n</html>`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-validator-to-json-schema.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/class-validator-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,cAA8C;IAE9C,MAAM,WAAW,GAAG,4BAA4B,CAAC;QAC/C,6BAA6B,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"class-validator-to-json-schema.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/class-validator-to-json-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,cAA8C;IAE9C,MAAM,WAAW,GAAG,4BAA4B,CAAC;QAC/C,6BAA6B,EAAE,kBAAkB,EAAS;QAC1D,+BAA+B,EAAE,sBAAsB;QACvD,gBAAgB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAW,EACX,UAA+B,EAC/B,UAAU,IAAI,GAAG,EAAU;IAE3B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAEzD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YACtB,OAAO;gBACL,YAAY,EAAE,OAAO;gBACrB,WAAW,EAAE,yBAAyB,OAAO,EAAE;aAChD,CAAC;QAEJ,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;YACjC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import { getMetadataStorage } from \"class-validator\";\nimport { defaultMetadataStorage } from \"class-transformer/cjs/storage.js\";\nimport { validationMetadatasToSchemas } from \"class-validator-jsonschema\";\n\nexport default function classValidatorToJsonSchema(\n decoratedClass: new (...args: any[]) => object\n): any {\n const jsonSchemas = validationMetadatasToSchemas({\n classValidatorMetadataStorage: getMetadataStorage() as any, // FIXME: dummy typing because of updates\n classTransformerMetadataStorage: defaultMetadataStorage,\n refPointerPrefix: \"#/components/schemas/\",\n });\n\n const targetSchema = jsonSchemas[decoratedClass.name];\n\n if (!targetSchema) return null;\n\n return resolveReferences(targetSchema, jsonSchemas);\n}\n\nexport function resolveReferences(\n schema: any,\n allSchemas: Record<string, any>,\n visited = new Set<string>()\n): any {\n if (!schema || typeof schema !== \"object\") return schema;\n\n if (schema.$ref) {\n const refName = extractSchemaName(schema.$ref);\n\n if (visited.has(refName))\n return {\n $resolvedRef: refName,\n description: `Circular reference to ${refName}`,\n };\n\n const referencedSchema = allSchemas[refName];\n if (referencedSchema) {\n visited.add(refName);\n const resolved = resolveReferences(referencedSchema, allSchemas, visited);\n visited.delete(refName);\n\n const { $ref, ...rest } = schema;\n return { ...resolved, ...rest };\n }\n\n return schema;\n }\n\n if (Array.isArray(schema)) {\n return schema.map((item) => resolveReferences(item, allSchemas, visited));\n }\n\n const result: any = {};\n for (const [key, value] of Object.entries(schema)) {\n result[key] = resolveReferences(value, allSchemas, visited);\n }\n\n return result;\n}\n\nexport function extractSchemaName(ref: string): string {\n const parts = ref.split(\"/\");\n return parts[parts.length - 1];\n}\n"]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { getArkosConfig } from "../../../../server.js";
|
|
1
2
|
import { capitalize } from "../../../../utils/helpers/text.helpers.js";
|
|
2
|
-
export default function getSwaggerDefaultConfig(defaultModelsPaths
|
|
3
|
+
export default function getSwaggerDefaultConfig(defaultModelsPaths) {
|
|
3
4
|
const portAndHost = {
|
|
4
5
|
port: process.env.__PORT || process.env.PORT || "8000",
|
|
5
6
|
host: process.env.__HOST || process.env.HOST || "127.0.0.1",
|
|
6
7
|
};
|
|
8
|
+
const config = getArkosConfig();
|
|
7
9
|
return {
|
|
8
10
|
endpoint: "/docs",
|
|
9
11
|
mode: "prisma",
|
|
@@ -24,7 +26,6 @@ export default function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonS
|
|
|
24
26
|
],
|
|
25
27
|
paths: defaultModelsPaths,
|
|
26
28
|
components: {
|
|
27
|
-
schemas: defaultJsonSchemas || {},
|
|
28
29
|
securitySchemes: {
|
|
29
30
|
BearerAuth: {
|
|
30
31
|
type: "http",
|
|
@@ -35,10 +36,7 @@ export default function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonS
|
|
|
35
36
|
},
|
|
36
37
|
security: [],
|
|
37
38
|
},
|
|
38
|
-
apis: [
|
|
39
|
-
"./src/routers/*.router.{ts,js}",
|
|
40
|
-
"./src/modules/**/*.router.{ts,js}",
|
|
41
|
-
],
|
|
39
|
+
apis: ["./src/**/*.router.{ts,js}", "./src/**/*.route.{ts,js}"],
|
|
42
40
|
deepLinking: true,
|
|
43
41
|
tryItOutEnabled: true,
|
|
44
42
|
persistAuthorization: false,
|
|
@@ -49,12 +47,13 @@ export default function getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonS
|
|
|
49
47
|
layout: "modern",
|
|
50
48
|
showSidebar: true,
|
|
51
49
|
hideDownloadButton: false,
|
|
50
|
+
cdn: config.globalPrefix + "/scalar-api-reference/browser/standalone.js",
|
|
52
51
|
metaData: {
|
|
53
52
|
title: "Arkos.js API Documentation",
|
|
54
53
|
description: "API documentation generated by Arkos.js",
|
|
55
54
|
},
|
|
56
55
|
pageTitle: "Arkos.js API Documentation",
|
|
57
|
-
customCss:
|
|
56
|
+
customCss: `.scalar-client {
|
|
58
57
|
width: 100vw !important;
|
|
59
58
|
height: 100vh !important;
|
|
60
59
|
max-width: 100vw !important;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-swagger-default-configs.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/get-swagger-default-configs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-swagger-default-configs.js","sourceRoot":"","sources":["../../../../../../src/modules/swagger/utils/helpers/get-swagger-default-configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,kBAAuC;IAEvC,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM;QACtD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW;KAC7D,CAAC;IACF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,OAAO;QACL,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE;oBACJ,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,OAAO;oBAChB,WAAW,EACT,sFAAsF;iBACzF;gBACD,OAAO,EAAE;oBACP;wBACE,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;wBACvI,WAAW,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS;qBACjF;iBACF;gBACD,KAAK,EAAE,kBAAkB;gBACzB,UAAU,EAAE;oBACV,eAAe,EAAE;wBACf,UAAU,EAAE;4BACV,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,QAAQ;4BAChB,YAAY,EAAE,KAAK;yBACpB;qBACF;iBACF;gBACD,QAAQ,EAAE,EAAE;aACb;YACD,IAAI,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;YAC/D,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,KAAK;SAC5B;QACD,+BAA+B,EAAE;YAC/B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,KAAK;YACzB,GAAG,EAAE,MAAM,CAAC,YAAY,GAAG,6CAA6C;YACxE,QAAQ,EAAE;gBACR,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EAAE,yCAAyC;aACvD;YACD,SAAS,EAAE,4BAA4B;YACvC,SAAS,EAAE;;;;;;;;;EASf;SACG;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { getArkosConfig } from \"../../../../server\";\nimport { capitalize } from \"../../../../utils/helpers/text.helpers\";\n\nexport default function getSwaggerDefaultConfig(\n defaultModelsPaths: Record<string, any>\n) {\n const portAndHost = {\n port: process.env.__PORT || process.env.PORT || \"8000\",\n host: process.env.__HOST! || process.env.HOST || \"127.0.0.1\",\n };\n const config = getArkosConfig();\n\n return {\n endpoint: \"/docs\",\n mode: \"prisma\",\n strict: false,\n options: {\n definition: {\n openapi: \"3.1.0\",\n info: {\n title: \"Powered By Arkos.js\",\n version: \"1.0.0\",\n description:\n \"This API was automatically generated by Arkos.js, read more about at www.arkosjs.com\",\n },\n servers: [\n {\n url: `http://${[\"0.0.0.0\", \"localhost\", \"127.0.0.1\"].includes(portAndHost.host!) ? \"localhost\" : portAndHost.host}:${portAndHost.port}`,\n description: `Local ${capitalize(process.env.NODE_ENV || \"development\")} Server`,\n },\n ],\n paths: defaultModelsPaths,\n components: {\n securitySchemes: {\n BearerAuth: {\n type: \"http\",\n scheme: \"bearer\",\n bearerFormat: \"JWT\",\n },\n },\n },\n security: [],\n },\n apis: [\"./src/**/*.router.{ts,js}\", \"./src/**/*.route.{ts,js}\"],\n deepLinking: true,\n tryItOutEnabled: true,\n persistAuthorization: false,\n },\n scalarApiReferenceConfiguration: {\n theme: \"deepSpace\",\n darkMode: true,\n layout: \"modern\",\n showSidebar: true,\n hideDownloadButton: false,\n cdn: config.globalPrefix + \"/scalar-api-reference/browser/standalone.js\",\n metaData: {\n title: \"Arkos.js API Documentation\",\n description: \"API documentation generated by Arkos.js\",\n },\n pageTitle: \"Arkos.js API Documentation\",\n customCss: `.scalar-client {\nwidth: 100vw !important;\nheight: 100vh !important;\nmax-width: 100vw !important;\nmax-height: 100vh !important;\ntop: 0 !important;\nleft: 0 !important;\ntransform: none !important;\nborder-radius: 0 !important;\n}`,\n },\n };\n}\n"]}
|