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,364 @@
|
|
|
1
|
+
import { BroadcastOperator, Socket } from "socket.io";
|
|
2
|
+
import { User } from "../../types";
|
|
3
|
+
import { DefaultEventsMap } from "socket.io";
|
|
4
|
+
import { Validator } from "../../types/validation/validator";
|
|
5
|
+
import { Options as RateLimitOptions } from "express-rate-limit";
|
|
6
|
+
import { DetailedAccessControlRule } from "../../types/auth";
|
|
7
|
+
import { AllButLast, DecorateAcknowledgements, DecorateAcknowledgementsWithMultipleResponses, EventNames, EventNamesWithAck, EventNamesWithError, EventParams, FirstNonErrorArg, Last } from "socket.io/dist/typed-events";
|
|
8
|
+
export interface EventsMap {
|
|
9
|
+
[event: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export interface ArkosSocket<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, ServerSideEvents extends EventsMap = DefaultEventsMap, SocketData extends Validator = any, SocketLocals extends Record<string, any> = Record<string, any>> extends Socket<ListenEvents, EmitEvents, ServerSideEvents, SocketData> {
|
|
12
|
+
/**
|
|
13
|
+
* Populated by Arkos after successful authentication on connection.
|
|
14
|
+
* Available in all event handlers when `authentication: true` on the gateway.
|
|
15
|
+
*/
|
|
16
|
+
currentUser?: User;
|
|
17
|
+
/**
|
|
18
|
+
* Populated by Arkos after successful validation.
|
|
19
|
+
* Typed to the event's validation schema when using TypeScript.
|
|
20
|
+
*/
|
|
21
|
+
data: SocketData;
|
|
22
|
+
/** User access token. */
|
|
23
|
+
accessToken?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Metadata from the incoming message, extracted from `_meta` by Arkos.
|
|
26
|
+
*
|
|
27
|
+
* - `mid`: Unique message ID used for deduplication.
|
|
28
|
+
* - `timestamp`: When the message was sent by the client.
|
|
29
|
+
*/
|
|
30
|
+
meta?: {
|
|
31
|
+
mid?: string;
|
|
32
|
+
timestamp?: string | number | Date;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Per-event local storage, scoped to the current event pipeline.
|
|
36
|
+
* Use to pass data between pipes and the event handler — like Express's `res.locals`.
|
|
37
|
+
* Reset automatically on each event.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* chatGateway.pipe((socket, data) => {
|
|
41
|
+
* socket.locals.enriched = enrichUser(socket.currentUser)
|
|
42
|
+
* })
|
|
43
|
+
*
|
|
44
|
+
* chatGateway.on({ event: "send_message" }, (socket, data) => {
|
|
45
|
+
* console.log(socket.locals.enriched)
|
|
46
|
+
* })
|
|
47
|
+
*/
|
|
48
|
+
locals?: SocketLocals;
|
|
49
|
+
/**
|
|
50
|
+
* Internal Arkos context injected by the gateway at connection time.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
_arkos: {
|
|
55
|
+
store: ArkosGatewayStore;
|
|
56
|
+
gatewayConfig: ArkosGatewayConfig;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Targets all active socket connections of a user by their user ID.
|
|
60
|
+
* Uses the internal `arkos::user:{userId}` room convention.
|
|
61
|
+
*
|
|
62
|
+
* Supports emit, management, and exclusion operations across all of the
|
|
63
|
+
* user's active connections.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* socket.user(userId).emit("notification", data)
|
|
67
|
+
* socket.user(userId).except({ user: otherUserId }).emit("sync", data)
|
|
68
|
+
* const sockets = await socket.user(userId).fetchSockets()
|
|
69
|
+
* const online = await socket.user(userId).isOnline()
|
|
70
|
+
*
|
|
71
|
+
* @since 1.7.0-canary.29
|
|
72
|
+
*/
|
|
73
|
+
user(userId: string): ArkosUserTarget;
|
|
74
|
+
/**
|
|
75
|
+
* Wraps the next `emit` or `emitWithAck` with exponential backoff retry logic.
|
|
76
|
+
* Chain `.timeout(ms)` before `.emitWithAck()` as usual.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* socket.retry(3).emit("event", data)
|
|
80
|
+
* socket.retry(3).timeout(5000).emitWithAck("event", data)
|
|
81
|
+
*
|
|
82
|
+
* @since 1.7.0-canary.29
|
|
83
|
+
*/
|
|
84
|
+
retry(times: number, initialDelay?: number, multiplier?: number): ArkosRetryTarget;
|
|
85
|
+
/**
|
|
86
|
+
* Emits an event to this client.
|
|
87
|
+
* Arkos automatically injects `_meta` (`mid` + `timestamp`) into every outgoing payload
|
|
88
|
+
* for client-side deduplication and freshness checks.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* socket.emit("message", { text: "hello" })
|
|
92
|
+
* socket.emit("notification", { title: "New order" })
|
|
93
|
+
*/
|
|
94
|
+
emit<Ev extends EventNames<EmitEvents>>(ev: Ev, ...args: EventParams<EmitEvents, Ev>): true;
|
|
95
|
+
/**
|
|
96
|
+
* Emits an event and waits for an acknowledgement from the client.
|
|
97
|
+
* Arkos injects `_meta` automatically. Use `.timeout(ms)` to avoid hanging indefinitely.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* const response = await socket.timeout(5000).emitWithAck("confirm", data)
|
|
101
|
+
*/
|
|
102
|
+
emitWithAck<Ev extends EventNamesWithAck<EmitEvents>>(ev: Ev, ...args: AllButLast<EventParams<EmitEvents, Ev>>): Promise<FirstNonErrorArg<Last<EventParams<EmitEvents, Ev>>>>;
|
|
103
|
+
/**
|
|
104
|
+
* Targets a room when broadcasting — excludes the sender.
|
|
105
|
+
* Returns an {@link ArkosBroadcastOperator} with enhanced `.except({ user })` support
|
|
106
|
+
* and automatic `_meta` injection on every `.emit()`.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* socket.to("room-101").emit("message", data)
|
|
110
|
+
* socket.to("room-101").except({ user: userId }).emit("message", data)
|
|
111
|
+
* socket.to("room-101").volatile.emit("typing", data)
|
|
112
|
+
* await socket.to("room-101").timeout(3000).emitWithAck("confirm", data)
|
|
113
|
+
*
|
|
114
|
+
* @since 1.7.0-canary.29
|
|
115
|
+
*/
|
|
116
|
+
to(room: string | string[]): ArkosBroadcastOperator<DecorateAcknowledgementsWithMultipleResponses<EmitEvents>, SocketData> & BroadcastOperator<EmitEvents, SocketData>;
|
|
117
|
+
/**
|
|
118
|
+
* Broadcasts to all connected clients except the sender.
|
|
119
|
+
* Returns an {@link ArkosBroadcastOperator} with enhanced `.except({ user })` support
|
|
120
|
+
* and automatic `_meta` injection on every `.emit()`.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* socket.broadcast.emit("announcement", data)
|
|
124
|
+
* socket.broadcast.except({ user: userId }).emit("announcement", data)
|
|
125
|
+
* socket.broadcast.volatile.emit("ping", data)
|
|
126
|
+
*
|
|
127
|
+
* @since 1.7.0-canary.29
|
|
128
|
+
*/
|
|
129
|
+
get broadcast(): ArkosBroadcastOperator<DecorateAcknowledgementsWithMultipleResponses<EmitEvents>, SocketData> & BroadcastOperator<EmitEvents, SocketData>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Enhanced broadcast/room target returned by `socket.to()` and `socket.broadcast`.
|
|
133
|
+
* Extends the native `BroadcastOperator` with `{ user }` exclusion support
|
|
134
|
+
* and automatic `_meta` injection on emit.
|
|
135
|
+
*
|
|
136
|
+
* @since 1.7.0-canary.29
|
|
137
|
+
*/
|
|
138
|
+
export interface ArkosBroadcastOperator<EmitEvents extends EventsMap = DefaultEventsMap, SocketData extends Validator = any> extends BroadcastOperator<EmitEvents, SocketData> {
|
|
139
|
+
/**
|
|
140
|
+
* Exclude sockets from the broadcast.
|
|
141
|
+
* Accepts a room name, socket ID, or `{ user: string | string[] }` to exclude
|
|
142
|
+
* all sockets belonging to one or more users.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* socket.to("room-101").except("room-102").emit("foo", data)
|
|
146
|
+
* socket.broadcast.except({ user: userId }).emit("foo", data)
|
|
147
|
+
* socket.broadcast.except({ user: [userId1, userId2] }).emit("foo", data)
|
|
148
|
+
*/
|
|
149
|
+
except(room: string | string[] | {
|
|
150
|
+
user: string | string[];
|
|
151
|
+
}): ArkosBroadcastOperator<EmitEvents, SocketData>;
|
|
152
|
+
/**
|
|
153
|
+
* Emits to all clients,`_meta` is injected automatically.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* // the “foo” event will be broadcast to all connected clients
|
|
157
|
+
* io.emit("foo", "bar");
|
|
158
|
+
*
|
|
159
|
+
* // the “foo” event will be broadcast to all connected clients in the “room-101” room
|
|
160
|
+
* io.to("room-101").emit("foo", "bar");
|
|
161
|
+
*
|
|
162
|
+
* // with an acknowledgement expected from all connected clients
|
|
163
|
+
* io.timeout(1000).emit("some-event", (err, responses) => {
|
|
164
|
+
* if (err) {
|
|
165
|
+
* // some clients did not acknowledge the event in the given delay
|
|
166
|
+
* } else {
|
|
167
|
+
* console.log(responses); // one response per client
|
|
168
|
+
* }
|
|
169
|
+
* });
|
|
170
|
+
*
|
|
171
|
+
* @return Always true
|
|
172
|
+
*/
|
|
173
|
+
emit<Ev extends EventNames<EmitEvents>>(ev: Ev, ...args: EventParams<EmitEvents, Ev>): true;
|
|
174
|
+
/** Chain volatile flag — event may be lost if client is not ready. */
|
|
175
|
+
get volatile(): ArkosBroadcastOperator<EmitEvents, SocketData>;
|
|
176
|
+
/** Chain compress flag. */
|
|
177
|
+
compress(value: boolean): ArkosBroadcastOperator<EmitEvents, SocketData>;
|
|
178
|
+
/** Chain timeout for `emitWithAck`. */
|
|
179
|
+
timeout(ms: number): ArkosBroadcastOperator<DecorateAcknowledgements<EmitEvents>, SocketData>;
|
|
180
|
+
/**
|
|
181
|
+
* Emits an event and waits for an acknowledgement from all clients.
|
|
182
|
+
* `_meta` is injected automatically
|
|
183
|
+
* @example
|
|
184
|
+
* try {
|
|
185
|
+
* const responses = await io.timeout(1000).emitWithAck("some-event");
|
|
186
|
+
* console.log(responses); // one response per client
|
|
187
|
+
* } catch (e) {
|
|
188
|
+
* // some clients did not acknowledge the event in the given delay
|
|
189
|
+
* }
|
|
190
|
+
*
|
|
191
|
+
* @return a Promise that will be fulfilled when all clients have acknowledged the event
|
|
192
|
+
*/
|
|
193
|
+
emitWithAck<Ev extends EventNamesWithError<EmitEvents>>(ev: Ev, ...args: AllButLast<EventParams<EmitEvents, Ev>>): Promise<FirstNonErrorArg<Last<EventParams<EmitEvents, Ev>>>>;
|
|
194
|
+
/**
|
|
195
|
+
* Returns all unique user IDs currently in the target room(s).
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* const users = await socket.to("room-123").users()
|
|
199
|
+
*/
|
|
200
|
+
users(): Promise<string[]>;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Returned by `socket.retry(n)`. Wraps `emit` and `emitWithAck`
|
|
204
|
+
* with exponential backoff. Chain `.timeout(ms)` before `.emitWithAck()` as usual.
|
|
205
|
+
*
|
|
206
|
+
* @since 1.7.0-canary.29
|
|
207
|
+
*/
|
|
208
|
+
export interface ArkosRetryTarget {
|
|
209
|
+
/** Emit with ack and retry. `_meta` is injected automatically. */
|
|
210
|
+
emitWithAck(event: string, data: any, ...rest: any[]): Promise<any>;
|
|
211
|
+
/**
|
|
212
|
+
* Chain a timeout before `emitWithAck`.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* socket.retry(3).timeout(5000).emitWithAck("event", data)
|
|
216
|
+
*/
|
|
217
|
+
timeout(ms: number): ArkosRetryTarget;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Returned by `socket.user(userId)`.
|
|
221
|
+
* Targets all active socket connections of a user.
|
|
222
|
+
*
|
|
223
|
+
* @since 1.7.0-canary.29
|
|
224
|
+
*/
|
|
225
|
+
export interface ArkosUserTarget extends ArkosBroadcastOperator {
|
|
226
|
+
/**
|
|
227
|
+
* Returns all active rooms for this user.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* const rooms = await socket.user(userId).activeRooms()
|
|
231
|
+
* console.log(rooms.length) // number of active tabs/connections
|
|
232
|
+
*/
|
|
233
|
+
activeRooms(): Promise<string[]>;
|
|
234
|
+
}
|
|
235
|
+
export type ArkosGatewayPipe = (socket: ArkosSocket, data: any) => void | Promise<void>;
|
|
236
|
+
export type ArkosGatewayEventConfig<TSchema extends Validator = any> = {
|
|
237
|
+
/** The Socket.io event name to listen for. */
|
|
238
|
+
event: string;
|
|
239
|
+
/** Zod schema or class-validator DTO to validate the incoming event payload. */
|
|
240
|
+
validation?: TSchema;
|
|
241
|
+
/** Per-event rate limiting. Overrides gateway-level `rateLimit` for this event. */
|
|
242
|
+
rateLimit?: Partial<RateLimitOptions> | false;
|
|
243
|
+
/**
|
|
244
|
+
* Authorization configuration.
|
|
245
|
+
*
|
|
246
|
+
* @remarks Gateway `authentication` must NOT be `false` or this throws at registration time.
|
|
247
|
+
*/
|
|
248
|
+
authorization?: {
|
|
249
|
+
resource: string;
|
|
250
|
+
action: string;
|
|
251
|
+
rule?: DetailedAccessControlRule | string[] | "*";
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* When `true`, Arkos automatically calls `ack({ success: true })` after the handler
|
|
255
|
+
* finishes, unless the handler already called ack manually.
|
|
256
|
+
*/
|
|
257
|
+
ack?: boolean;
|
|
258
|
+
/** Disables this event handler without removing it. */
|
|
259
|
+
disabled?: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Maximum age in milliseconds for incoming messages.
|
|
262
|
+
* Requires `data._meta.timestamp`. Events older than this are rejected.
|
|
263
|
+
*/
|
|
264
|
+
maxAge?: number;
|
|
265
|
+
/** Per-event deduplication. Overrides gateway-level `dedup`. */
|
|
266
|
+
dedup?: {
|
|
267
|
+
/** @default true */
|
|
268
|
+
enabled?: boolean;
|
|
269
|
+
/** Time-to-live in seconds for the dedup key. @default 3600 */
|
|
270
|
+
ttl?: number;
|
|
271
|
+
} | false;
|
|
272
|
+
};
|
|
273
|
+
export type ArkosGatewayAckFn = (response: any) => void;
|
|
274
|
+
export type ArkosGatewayHandler<TData = any> = (socket: ArkosSocket, data: TData, ack?: ArkosGatewayAckFn) => void | Promise<void>;
|
|
275
|
+
export type ArkosGatewayEventEntry = {
|
|
276
|
+
config: ArkosGatewayEventConfig;
|
|
277
|
+
handler: ArkosGatewayHandler;
|
|
278
|
+
pipes: ArkosGatewayPipe[];
|
|
279
|
+
};
|
|
280
|
+
export type ArkosGatewayConnectionHandler = (socket: ArkosSocket) => void | Promise<void>;
|
|
281
|
+
export type ArkosGatewayHookHandler = ArkosGatewayConnectionHandler | ArkosGatewayErrorHandler;
|
|
282
|
+
export type ArkosGatewayErrorHandler = (error: any, socket: ArkosSocket) => void | Promise<void>;
|
|
283
|
+
export type ArkosGatewayHookType = "connection" | "disconnect" | "error";
|
|
284
|
+
export type ArkosGatewayConfig = {
|
|
285
|
+
/**
|
|
286
|
+
* Socket.io namespace for this gateway.
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* name: "/chat"
|
|
290
|
+
*/
|
|
291
|
+
name: string;
|
|
292
|
+
/**
|
|
293
|
+
* When `true`, Arkos runs auth middleware on connection and populates `socket.currentUser`.
|
|
294
|
+
* Unauthenticated sockets are rejected.
|
|
295
|
+
*
|
|
296
|
+
* @default false
|
|
297
|
+
*/
|
|
298
|
+
authentication?: boolean;
|
|
299
|
+
/** Gateway-level rate limiting, applied per socket. Can be overridden per event. */
|
|
300
|
+
rateLimit?: Partial<RateLimitOptions>;
|
|
301
|
+
/**
|
|
302
|
+
* Gateway-level deduplication. Drills down to child gateways and can be overridden
|
|
303
|
+
* per child or per event listener.
|
|
304
|
+
*/
|
|
305
|
+
dedup?: {
|
|
306
|
+
/** @default true */
|
|
307
|
+
enabled?: boolean;
|
|
308
|
+
/** @default 3600 */
|
|
309
|
+
ttl?: number;
|
|
310
|
+
} | false;
|
|
311
|
+
/**
|
|
312
|
+
* Maximum age in milliseconds for incoming messages.
|
|
313
|
+
* Can be overridden per event via `maxAge` in `gateway.on()`.
|
|
314
|
+
*/
|
|
315
|
+
maxAge?: number;
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Options for `gateway.register()`.
|
|
319
|
+
* Passed once at the root — applies to all child gateways.
|
|
320
|
+
*/
|
|
321
|
+
export type ArkosGatewayRegisterOptions = {
|
|
322
|
+
/**
|
|
323
|
+
* Unified store for rate limiting and deduplication.
|
|
324
|
+
* Defaults to an in-memory store — zero config for single-instance deployments.
|
|
325
|
+
* For distributed deployments plug in a Redis-backed store.
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* store: new RedisArkosStore(redis)
|
|
329
|
+
*/
|
|
330
|
+
store?: ArkosGatewayStore;
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* Unified store interface for rate limiting and deduplication.
|
|
334
|
+
* Implement this to plug in Redis, Valkey, or any distributed store.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* class RedisArkosStore implements ArkosGatewayStore {
|
|
338
|
+
* async increment(key, windowMs) { ... }
|
|
339
|
+
* async clear(prefix) { ... }
|
|
340
|
+
* async has(key) { ... }
|
|
341
|
+
* async set(key, ttl) { ... }
|
|
342
|
+
* async setIfNotExists(key, ttl) { ... }
|
|
343
|
+
* }
|
|
344
|
+
*/
|
|
345
|
+
export interface ArkosGatewayStore {
|
|
346
|
+
/** Increment a rate limit counter. Key format: `arkos::rl:{socketId}:{event}` */
|
|
347
|
+
increment(key: string, windowMs: number): Promise<{
|
|
348
|
+
count: number;
|
|
349
|
+
resetAt: number;
|
|
350
|
+
}>;
|
|
351
|
+
/** Clear all rate limit entries matching a prefix. Key format: `arkos::rl:{socketId}` */
|
|
352
|
+
clear(prefix: string): Promise<void>;
|
|
353
|
+
/** Check if a dedup key exists. */
|
|
354
|
+
has(key: string): Promise<boolean>;
|
|
355
|
+
/** Store a dedup key with TTL in seconds. */
|
|
356
|
+
set(key: string, ttl: number): Promise<void>;
|
|
357
|
+
/**
|
|
358
|
+
* Atomically store a dedup key only if it does not already exist.
|
|
359
|
+
* Returns `true` if created (process the message), `false` if duplicate (skip).
|
|
360
|
+
*/
|
|
361
|
+
setIfNotExists(key: string, ttl: number): Promise<boolean>;
|
|
362
|
+
}
|
|
363
|
+
export declare class ArkosGatewayController {
|
|
364
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArkosGatewayErrorHandler, ArkosGatewayPipe, ArkosSocket } from "../types";
|
|
2
|
+
export declare function handleArkosGatewayErrors(err: any, socket: ArkosSocket, errorHandlers: ArkosGatewayErrorHandler[] | undefined, loggerMeta: {
|
|
3
|
+
namespace: string;
|
|
4
|
+
event: string;
|
|
5
|
+
startTime: number;
|
|
6
|
+
}, ack?: (response: any) => void): Promise<void>;
|
|
7
|
+
export declare function runArkosGatewayPipes(pipes: ArkosGatewayPipe[], socket: ArkosSocket, data: any): Promise<void>;
|
|
8
|
+
export declare function handleGatewayEventLog(namespace: string, event: string, statusCode: number, startTime: number): void;
|
|
9
|
+
export declare function handleGatewayLifecycleLog(namespace: string, event: "connected" | "disconnected" | "error", socketId: string, errorType?: string): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ArkosGatewayStore } from "../types";
|
|
2
|
+
export declare class MemoryGatewayStore implements ArkosGatewayStore {
|
|
3
|
+
private rl;
|
|
4
|
+
private dedup;
|
|
5
|
+
increment(key: string, windowMs: number): Promise<{
|
|
6
|
+
count: number;
|
|
7
|
+
resetAt: number;
|
|
8
|
+
}>;
|
|
9
|
+
clear(prefix: string): Promise<void>;
|
|
10
|
+
has(key: string): Promise<boolean>;
|
|
11
|
+
set(key: string, ttl: number): Promise<void>;
|
|
12
|
+
setIfNotExists(key: string, ttl: number): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
export declare const defaultGatewayStore: MemoryGatewayStore;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ArkosGatewayStore } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Multi-tier store that chains multiple stores together.
|
|
4
|
+
* Writes go to all tiers. Reads check tiers in order, promoting hits to faster tiers.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* new MultiTierArkosStore([new MemoryArkosStore(), new RedisArkosStore(redis)])
|
|
8
|
+
*/
|
|
9
|
+
export declare class MultiTierArkosGatewayStore implements ArkosGatewayStore {
|
|
10
|
+
private tiers;
|
|
11
|
+
constructor(tiers: ArkosGatewayStore[]);
|
|
12
|
+
increment(key: string, windowMs: number): Promise<{
|
|
13
|
+
count: number;
|
|
14
|
+
resetAt: number;
|
|
15
|
+
}>;
|
|
16
|
+
clear(prefix: string): Promise<void>;
|
|
17
|
+
has(key: string): Promise<boolean>;
|
|
18
|
+
set(key: string, ttl: number): Promise<void>;
|
|
19
|
+
setIfNotExists(key: string, ttl: number): Promise<boolean>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Options as RateLimitOptions } from "express-rate-limit";
|
|
2
|
+
import { ArkosGatewayStore } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether a socket has exceeded the rate limit for a given event.
|
|
5
|
+
* Returns true if the request is allowed, false if rate limited.
|
|
6
|
+
*/
|
|
7
|
+
export declare function checkRateLimit(socketId: string, event: string, options: Partial<RateLimitOptions>, store: ArkosGatewayStore): Promise<{
|
|
8
|
+
allowed: boolean;
|
|
9
|
+
retryAfter?: number;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function clearRateLimitForSocket(socketId: string, store: ArkosGatewayStore): Promise<void>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArkosPrismaService } from "../../exports/services";
|
|
1
2
|
import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
|
|
2
3
|
/**
|
|
3
4
|
* Creates an interceptor for a built-in Arkos module or a generated model route.
|
|
@@ -10,16 +11,21 @@ import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
|
|
|
10
11
|
*
|
|
11
12
|
* @example
|
|
12
13
|
* ```ts
|
|
13
|
-
* const
|
|
14
|
+
* const userRouteHook = ArkosRouteHook("user");
|
|
14
15
|
*
|
|
15
|
-
*
|
|
16
|
+
* userRouteHook.createOne({
|
|
16
17
|
* validation: { body: CreateUserSchema },
|
|
17
18
|
* before: [sanitize],
|
|
18
19
|
* after: [notify]
|
|
19
20
|
* });
|
|
20
21
|
*
|
|
21
|
-
* app.load(
|
|
22
|
+
* app.load(userRouteHook);
|
|
22
23
|
* ```
|
|
23
|
-
* @see {@link https://www.arkosjs.com/docs/core-concepts/components/
|
|
24
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/components/route-hooks}
|
|
24
25
|
*/
|
|
25
|
-
export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T
|
|
26
|
+
export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T, configs?: {
|
|
27
|
+
/**
|
|
28
|
+
* ArkosPrismaService instace for such model
|
|
29
|
+
*/
|
|
30
|
+
service?: ArkosPrismaService<T>;
|
|
31
|
+
}): ArkosRouteHookReturn<T>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ArkosModuleType, ArkosRouteHookHooks, ArkosRouteHookMethodConfig, ArkosRouteHookInstance, ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance } from "./types";
|
|
2
|
-
import {
|
|
3
|
-
type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName">;
|
|
4
|
-
export type OperationByModule<TModule extends ArkosModuleType> = TModule extends "file-upload" ? keyof Omit<ArkosFileUploadRouteHookInstance, "__type" | "moduleName"> : TModule extends "auth" ? keyof Omit<ArkosAuthRouteHookInstance, "__type" | "moduleName"> : PrismaOperations;
|
|
2
|
+
import { ArkosRouteConfig } from "../../exports";
|
|
3
|
+
type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "_configs">;
|
|
4
|
+
export type OperationByModule<TModule extends ArkosModuleType> = TModule extends "file-upload" ? keyof Omit<ArkosFileUploadRouteHookInstance, "__type" | "moduleName" | "service"> : TModule extends "auth" ? keyof Omit<ArkosAuthRouteHookInstance, "__type" | "moduleName" | "service"> : PrismaOperations;
|
|
5
5
|
/**
|
|
6
6
|
* Reader for `ArkosRouteHook` instances.
|
|
7
7
|
* Reads config from the global loadable registry by module name.
|
|
@@ -43,10 +43,7 @@ declare class ArkosRouteHookReader {
|
|
|
43
43
|
/**
|
|
44
44
|
* Returns all extracted slices for a given operation in one call.
|
|
45
45
|
*/
|
|
46
|
-
forOperation<TModule extends ArkosModuleType>(moduleName: TModule, operation: OperationByModule<TModule>): {
|
|
47
|
-
before: ArkosRequestHandler[];
|
|
48
|
-
after: ArkosRequestHandler[];
|
|
49
|
-
onError: ArkosRequestHandler[];
|
|
46
|
+
forOperation<TModule extends ArkosModuleType>(moduleName: TModule, operation: OperationByModule<TModule>): ArkosRouteHookHooks & {
|
|
50
47
|
prismaArgs?: Record<string, any>;
|
|
51
48
|
routeConfig: Omit<ArkosRouteConfig, "path">;
|
|
52
49
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ArkosRouteConfig } from "../../exports";
|
|
2
|
+
import { ArkosPrismaService } from "../../exports/services";
|
|
2
3
|
import { PrismaModels } from "../../generated";
|
|
3
|
-
import { ArkosRequestHandler } from "../../types";
|
|
4
|
+
import { ArkosErrorRequestHandler, ArkosRequestHandler } from "../../types";
|
|
4
5
|
export type Models = keyof PrismaModels<any>;
|
|
5
6
|
export interface ArkosRouteHookHooks {
|
|
6
|
-
before?: ArkosRequestHandler[];
|
|
7
|
-
after?: ArkosRequestHandler[];
|
|
8
|
-
onError?:
|
|
7
|
+
before?: ArkosRequestHandler[] | ArkosRequestHandler;
|
|
8
|
+
after?: ArkosRequestHandler[] | ArkosRequestHandler;
|
|
9
|
+
onError?: ArkosErrorRequestHandler[] | ArkosErrorRequestHandler;
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Extracts the correct Prisma args type for a given model and operation.
|
|
@@ -15,7 +16,7 @@ type PrismaQueryFor<TModel extends string, TOp extends string> = TModel extends
|
|
|
15
16
|
/**
|
|
16
17
|
* Full config for an interceptor method — inherits all ArkosRouteConfig options
|
|
17
18
|
* (validation, auth, rate limiting, etc.) minus `path`, plus lifecycle hooks,
|
|
18
|
-
* plus `
|
|
19
|
+
* plus `prismaArgs` typed to the specific model and operation's Prisma args.
|
|
19
20
|
*/
|
|
20
21
|
export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp extends string = string> = Omit<ArkosRouteConfig, "path"> & ArkosRouteHookHooks & {
|
|
21
22
|
/**
|
|
@@ -37,6 +38,9 @@ export type ArkosModuleType = "auth" | "file-upload" | Models;
|
|
|
37
38
|
export interface ArkosRouteHookInstance<TModel extends Models> {
|
|
38
39
|
readonly __type: "ArkosRouteHook";
|
|
39
40
|
readonly moduleName: TModel;
|
|
41
|
+
readonly _configs: {
|
|
42
|
+
readonly service?: ArkosPrismaService;
|
|
43
|
+
};
|
|
40
44
|
createOne(config: ArkosRouteHookMethodConfig<TModel, "CreateArgs">): this;
|
|
41
45
|
findOne(config: ArkosRouteHookMethodConfig<TModel, "FindFirstArgs">): this;
|
|
42
46
|
findMany(config: ArkosRouteHookMethodConfig<TModel, "FindManyArgs">): this;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RouterConfig } from "../types/router-config";
|
|
2
1
|
import { BaseController } from "./../modules/base/base.controller";
|
|
3
2
|
import { getArkosConfig } from "../server";
|
|
4
3
|
import ArkosRouter from "../utils/arkos-router";
|
|
@@ -7,12 +6,13 @@ import { ArkosRouteConfig } from "../utils/arkos-router/types";
|
|
|
7
6
|
import { ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler } from "../types";
|
|
8
7
|
import { ArkosConfig } from "../types/new-arkos-config";
|
|
9
8
|
import { loadEnvironmentVariables } from "../utils/dotenv.helpers";
|
|
10
|
-
import
|
|
9
|
+
import arkos from "../app";
|
|
11
10
|
import { ArkosRouteHook } from "../components/arkos-route-hook";
|
|
12
|
-
import { ArkosServiceHook } from "../components/arkos-service-hook";
|
|
13
11
|
import { ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
|
|
14
12
|
import { ArkosPolicy } from "../components/arkos-policy";
|
|
15
13
|
import { IArkosPolicy } from "../components/arkos-policy/types";
|
|
16
14
|
import type { ArkosLoadable } from "../types/arkos";
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
import { ArkosFile } from "../types/upload";
|
|
16
|
+
import { isProduction } from "../utils/helpers/arkos-config.helpers";
|
|
17
|
+
export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, ArkosFile, isProduction, };
|
|
18
|
+
export default arkos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { addPrismaQueryOptionsToRequest,
|
|
1
|
+
export { addPrismaQueryOptionsToRequest, } from "../../modules/base/base.middlewares";
|
|
@@ -2,9 +2,9 @@ import { getFileUploadServices, FileUploadService } from "../../modules/file-upl
|
|
|
2
2
|
import { EmailOptions } from "../../modules/email/email.service";
|
|
3
3
|
import authService, { AuthService } from "../../modules/auth/auth.service";
|
|
4
4
|
import emailService, { EmailService } from "../../modules/email/email.service";
|
|
5
|
-
import {
|
|
5
|
+
import { ArkosPrismaService } from "../../modules/base/base.service";
|
|
6
6
|
import authActionService from "../../modules/auth/utils/services/auth-action.service";
|
|
7
|
-
import { ServiceHookContext
|
|
7
|
+
import { ServiceHookContext } from "../../modules/base/types/base.service.types";
|
|
8
8
|
/**
|
|
9
9
|
* Authentication service.
|
|
10
10
|
*/
|
|
@@ -12,7 +12,7 @@ export { authService, AuthService, authActionService };
|
|
|
12
12
|
/**
|
|
13
13
|
* Base service.
|
|
14
14
|
*/
|
|
15
|
-
export {
|
|
15
|
+
export { ArkosPrismaService, ServiceHookContext, };
|
|
16
16
|
/**
|
|
17
17
|
* Email service.
|
|
18
18
|
*/
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import ArkosGateway from "../components/arkos-gateway/arkos-gateway";
|
|
2
|
+
export { IArkosGateway } from "../components/arkos-gateway/arkos-gateway";
|
|
3
|
+
export { ArkosGatewayController } from "../components/arkos-gateway/types";
|
|
4
|
+
export type { ArkosSocket, ArkosGatewayConfig, ArkosGatewayEventConfig, ArkosGatewayHandler, ArkosGatewayPipe, ArkosGatewayConnectionHandler, ArkosGatewayErrorHandler, ArkosGatewayAckFn, ArkosBroadcastOperator, } from "../components/arkos-gateway/types";
|
|
5
|
+
export { ArkosGateway };
|