@makebelieve21213-packages/nest-common 1.0.0
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/LICENSE +22 -0
- package/README.md +1905 -0
- package/dist/__tests__/index.spec.d.ts +2 -0
- package/dist/__tests__/index.spec.d.ts.map +1 -0
- package/dist/__tests__/index.spec.js +36 -0
- package/dist/__tests__/index.spec.js.map +1 -0
- package/dist/__tests__/mocks/logger-service.mock.d.ts +7 -0
- package/dist/__tests__/mocks/logger-service.mock.d.ts.map +1 -0
- package/dist/__tests__/mocks/logger-service.mock.js +16 -0
- package/dist/__tests__/mocks/logger-service.mock.js.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +3 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/base/__tests__/base.controller.spec.d.ts +2 -0
- package/dist/base/__tests__/base.controller.spec.d.ts.map +1 -0
- package/dist/base/__tests__/base.controller.spec.js +50 -0
- package/dist/base/__tests__/base.controller.spec.js.map +1 -0
- package/dist/base/base.controller.d.ts +8 -0
- package/dist/base/base.controller.d.ts.map +1 -0
- package/dist/base/base.controller.js +15 -0
- package/dist/base/base.controller.js.map +1 -0
- package/dist/decorators/__tests__/api-key.decorator.spec.d.ts +2 -0
- package/dist/decorators/__tests__/api-key.decorator.spec.d.ts.map +1 -0
- package/dist/decorators/__tests__/api-key.decorator.spec.js +25 -0
- package/dist/decorators/__tests__/api-key.decorator.spec.js.map +1 -0
- package/dist/decorators/__tests__/permissions.decorator.spec.d.ts +2 -0
- package/dist/decorators/__tests__/permissions.decorator.spec.d.ts.map +1 -0
- package/dist/decorators/__tests__/permissions.decorator.spec.js +29 -0
- package/dist/decorators/__tests__/permissions.decorator.spec.js.map +1 -0
- package/dist/decorators/__tests__/public.decorator.spec.d.ts +2 -0
- package/dist/decorators/__tests__/public.decorator.spec.d.ts.map +1 -0
- package/dist/decorators/__tests__/public.decorator.spec.js +25 -0
- package/dist/decorators/__tests__/public.decorator.spec.js.map +1 -0
- package/dist/decorators/__tests__/roles.decorator.spec.d.ts +2 -0
- package/dist/decorators/__tests__/roles.decorator.spec.d.ts.map +1 -0
- package/dist/decorators/__tests__/roles.decorator.spec.js +29 -0
- package/dist/decorators/__tests__/roles.decorator.spec.js.map +1 -0
- package/dist/decorators/__tests__/serialize.decorator.spec.d.ts +2 -0
- package/dist/decorators/__tests__/serialize.decorator.spec.d.ts.map +1 -0
- package/dist/decorators/__tests__/serialize.decorator.spec.js +28 -0
- package/dist/decorators/__tests__/serialize.decorator.spec.js.map +1 -0
- package/dist/decorators/api-key.decorator.d.ts +3 -0
- package/dist/decorators/api-key.decorator.d.ts.map +1 -0
- package/dist/decorators/api-key.decorator.js +6 -0
- package/dist/decorators/api-key.decorator.js.map +1 -0
- package/dist/decorators/permissions.decorator.d.ts +3 -0
- package/dist/decorators/permissions.decorator.d.ts.map +1 -0
- package/dist/decorators/permissions.decorator.js +6 -0
- package/dist/decorators/permissions.decorator.js.map +1 -0
- package/dist/decorators/public.decorator.d.ts +3 -0
- package/dist/decorators/public.decorator.d.ts.map +1 -0
- package/dist/decorators/public.decorator.js +6 -0
- package/dist/decorators/public.decorator.js.map +1 -0
- package/dist/decorators/roles.decorator.d.ts +3 -0
- package/dist/decorators/roles.decorator.d.ts.map +1 -0
- package/dist/decorators/roles.decorator.js +6 -0
- package/dist/decorators/roles.decorator.js.map +1 -0
- package/dist/decorators/serialize.decorator.d.ts +3 -0
- package/dist/decorators/serialize.decorator.d.ts.map +1 -0
- package/dist/decorators/serialize.decorator.js +6 -0
- package/dist/decorators/serialize.decorator.js.map +1 -0
- package/dist/errors/__tests__/http.error.spec.d.ts +2 -0
- package/dist/errors/__tests__/http.error.spec.d.ts.map +1 -0
- package/dist/errors/__tests__/http.error.spec.js +667 -0
- package/dist/errors/__tests__/http.error.spec.js.map +1 -0
- package/dist/errors/__tests__/rpc.error.spec.d.ts +2 -0
- package/dist/errors/__tests__/rpc.error.spec.d.ts.map +1 -0
- package/dist/errors/__tests__/rpc.error.spec.js +336 -0
- package/dist/errors/__tests__/rpc.error.spec.js.map +1 -0
- package/dist/errors/__tests__/socket.error.spec.d.ts +2 -0
- package/dist/errors/__tests__/socket.error.spec.d.ts.map +1 -0
- package/dist/errors/__tests__/socket.error.spec.js +105 -0
- package/dist/errors/__tests__/socket.error.spec.js.map +1 -0
- package/dist/errors/http.error.d.ts +17 -0
- package/dist/errors/http.error.d.ts.map +1 -0
- package/dist/errors/http.error.js +170 -0
- package/dist/errors/http.error.js.map +1 -0
- package/dist/errors/nest-common.error.d.ts +7 -0
- package/dist/errors/nest-common.error.d.ts.map +1 -0
- package/dist/errors/nest-common.error.js +18 -0
- package/dist/errors/nest-common.error.js.map +1 -0
- package/dist/errors/rpc.error.d.ts +27 -0
- package/dist/errors/rpc.error.d.ts.map +1 -0
- package/dist/errors/rpc.error.js +170 -0
- package/dist/errors/rpc.error.js.map +1 -0
- package/dist/errors/socket.error.d.ts +20 -0
- package/dist/errors/socket.error.d.ts.map +1 -0
- package/dist/errors/socket.error.js +47 -0
- package/dist/errors/socket.error.js.map +1 -0
- package/dist/filters/__tests__/http-exception-handler.spec.d.ts +2 -0
- package/dist/filters/__tests__/http-exception-handler.spec.d.ts.map +1 -0
- package/dist/filters/__tests__/http-exception-handler.spec.js +86 -0
- package/dist/filters/__tests__/http-exception-handler.spec.js.map +1 -0
- package/dist/filters/__tests__/rpc-exception-handler.spec.d.ts +2 -0
- package/dist/filters/__tests__/rpc-exception-handler.spec.d.ts.map +1 -0
- package/dist/filters/__tests__/rpc-exception-handler.spec.js +220 -0
- package/dist/filters/__tests__/rpc-exception-handler.spec.js.map +1 -0
- package/dist/filters/__tests__/unified-exception.filter.spec.d.ts +2 -0
- package/dist/filters/__tests__/unified-exception.filter.spec.d.ts.map +1 -0
- package/dist/filters/__tests__/unified-exception.filter.spec.js +233 -0
- package/dist/filters/__tests__/unified-exception.filter.spec.js.map +1 -0
- package/dist/filters/__tests__/websocket-exception-handler.spec.d.ts +2 -0
- package/dist/filters/__tests__/websocket-exception-handler.spec.d.ts.map +1 -0
- package/dist/filters/__tests__/websocket-exception-handler.spec.js +78 -0
- package/dist/filters/__tests__/websocket-exception-handler.spec.js.map +1 -0
- package/dist/filters/http-exception-handler.d.ts +8 -0
- package/dist/filters/http-exception-handler.d.ts.map +1 -0
- package/dist/filters/http-exception-handler.js +37 -0
- package/dist/filters/http-exception-handler.js.map +1 -0
- package/dist/filters/rpc-exception-handler.d.ts +11 -0
- package/dist/filters/rpc-exception-handler.d.ts.map +1 -0
- package/dist/filters/rpc-exception-handler.js +87 -0
- package/dist/filters/rpc-exception-handler.js.map +1 -0
- package/dist/filters/unified-exception.filter.d.ts +12 -0
- package/dist/filters/unified-exception.filter.d.ts.map +1 -0
- package/dist/filters/unified-exception.filter.js +63 -0
- package/dist/filters/unified-exception.filter.js.map +1 -0
- package/dist/filters/websocket-exception-handler.d.ts +8 -0
- package/dist/filters/websocket-exception-handler.d.ts.map +1 -0
- package/dist/filters/websocket-exception-handler.js +47 -0
- package/dist/filters/websocket-exception-handler.js.map +1 -0
- package/dist/guards/__tests__/api-key.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/api-key.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/api-key.guard.spec.js +123 -0
- package/dist/guards/__tests__/api-key.guard.spec.js.map +1 -0
- package/dist/guards/__tests__/jwt-auth.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/jwt-auth.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/jwt-auth.guard.spec.js +61 -0
- package/dist/guards/__tests__/jwt-auth.guard.spec.js.map +1 -0
- package/dist/guards/__tests__/permissions.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/permissions.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/permissions.guard.spec.js +77 -0
- package/dist/guards/__tests__/permissions.guard.spec.js.map +1 -0
- package/dist/guards/__tests__/rate-limit.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/rate-limit.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/rate-limit.guard.spec.js +117 -0
- package/dist/guards/__tests__/rate-limit.guard.spec.js.map +1 -0
- package/dist/guards/__tests__/roles.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/roles.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/roles.guard.spec.js +83 -0
- package/dist/guards/__tests__/roles.guard.spec.js.map +1 -0
- package/dist/guards/__tests__/websocket-auth.guard.spec.d.ts +2 -0
- package/dist/guards/__tests__/websocket-auth.guard.spec.d.ts.map +1 -0
- package/dist/guards/__tests__/websocket-auth.guard.spec.js +72 -0
- package/dist/guards/__tests__/websocket-auth.guard.spec.js.map +1 -0
- package/dist/guards/api-key.guard.d.ts +10 -0
- package/dist/guards/api-key.guard.d.ts.map +1 -0
- package/dist/guards/api-key.guard.js +58 -0
- package/dist/guards/api-key.guard.js.map +1 -0
- package/dist/guards/jwt-auth.guard.d.ts +8 -0
- package/dist/guards/jwt-auth.guard.d.ts.map +1 -0
- package/dist/guards/jwt-auth.guard.js +41 -0
- package/dist/guards/jwt-auth.guard.js.map +1 -0
- package/dist/guards/permissions.guard.d.ts +8 -0
- package/dist/guards/permissions.guard.d.ts.map +1 -0
- package/dist/guards/permissions.guard.js +48 -0
- package/dist/guards/permissions.guard.js.map +1 -0
- package/dist/guards/rate-limit.guard.d.ts +16 -0
- package/dist/guards/rate-limit.guard.d.ts.map +1 -0
- package/dist/guards/rate-limit.guard.js +89 -0
- package/dist/guards/rate-limit.guard.js.map +1 -0
- package/dist/guards/roles.guard.d.ts +8 -0
- package/dist/guards/roles.guard.d.ts.map +1 -0
- package/dist/guards/roles.guard.js +48 -0
- package/dist/guards/roles.guard.js.map +1 -0
- package/dist/guards/websocket-auth.guard.d.ts +8 -0
- package/dist/guards/websocket-auth.guard.d.ts.map +1 -0
- package/dist/guards/websocket-auth.guard.js +41 -0
- package/dist/guards/websocket-auth.guard.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/__tests__/compression.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/compression.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/compression.interceptor.spec.js +93 -0
- package/dist/interceptors/__tests__/compression.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/http-logging.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/http-logging.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/http-logging.interceptor.spec.js +135 -0
- package/dist/interceptors/__tests__/http-logging.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/request-id-response.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/request-id-response.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/request-id-response.interceptor.spec.js +39 -0
- package/dist/interceptors/__tests__/request-id-response.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/response.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/response.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/response.interceptor.spec.js +95 -0
- package/dist/interceptors/__tests__/response.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/rpc-logging.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/rpc-logging.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/rpc-logging.interceptor.spec.js +113 -0
- package/dist/interceptors/__tests__/rpc-logging.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/serialize.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/serialize.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/serialize.interceptor.spec.js +114 -0
- package/dist/interceptors/__tests__/serialize.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/unified.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/unified.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/unified.interceptor.spec.js +256 -0
- package/dist/interceptors/__tests__/unified.interceptor.spec.js.map +1 -0
- package/dist/interceptors/__tests__/websocket-logging.interceptor.spec.d.ts +2 -0
- package/dist/interceptors/__tests__/websocket-logging.interceptor.spec.d.ts.map +1 -0
- package/dist/interceptors/__tests__/websocket-logging.interceptor.spec.js +119 -0
- package/dist/interceptors/__tests__/websocket-logging.interceptor.spec.js.map +1 -0
- package/dist/interceptors/compression.interceptor.d.ts +10 -0
- package/dist/interceptors/compression.interceptor.d.ts.map +1 -0
- package/dist/interceptors/compression.interceptor.js +53 -0
- package/dist/interceptors/compression.interceptor.js.map +1 -0
- package/dist/interceptors/http-logging.interceptor.d.ts +9 -0
- package/dist/interceptors/http-logging.interceptor.d.ts.map +1 -0
- package/dist/interceptors/http-logging.interceptor.js +41 -0
- package/dist/interceptors/http-logging.interceptor.js.map +1 -0
- package/dist/interceptors/request-id-response.interceptor.d.ts +6 -0
- package/dist/interceptors/request-id-response.interceptor.d.ts.map +1 -0
- package/dist/interceptors/request-id-response.interceptor.js +27 -0
- package/dist/interceptors/request-id-response.interceptor.js.map +1 -0
- package/dist/interceptors/response.interceptor.d.ts +8 -0
- package/dist/interceptors/response.interceptor.d.ts.map +1 -0
- package/dist/interceptors/response.interceptor.js +42 -0
- package/dist/interceptors/response.interceptor.js.map +1 -0
- package/dist/interceptors/rpc-logging.interceptor.d.ts +9 -0
- package/dist/interceptors/rpc-logging.interceptor.d.ts.map +1 -0
- package/dist/interceptors/rpc-logging.interceptor.js +31 -0
- package/dist/interceptors/rpc-logging.interceptor.js.map +1 -0
- package/dist/interceptors/serialize.interceptor.d.ts +9 -0
- package/dist/interceptors/serialize.interceptor.d.ts.map +1 -0
- package/dist/interceptors/serialize.interceptor.js +48 -0
- package/dist/interceptors/serialize.interceptor.js.map +1 -0
- package/dist/interceptors/unified.interceptor.d.ts +12 -0
- package/dist/interceptors/unified.interceptor.d.ts.map +1 -0
- package/dist/interceptors/unified.interceptor.js +54 -0
- package/dist/interceptors/unified.interceptor.js.map +1 -0
- package/dist/interceptors/websocket-logging.interceptor.d.ts +9 -0
- package/dist/interceptors/websocket-logging.interceptor.d.ts.map +1 -0
- package/dist/interceptors/websocket-logging.interceptor.js +36 -0
- package/dist/interceptors/websocket-logging.interceptor.js.map +1 -0
- package/dist/pipes/__tests__/file-validation.pipe.spec.d.ts +2 -0
- package/dist/pipes/__tests__/file-validation.pipe.spec.d.ts.map +1 -0
- package/dist/pipes/__tests__/file-validation.pipe.spec.js +60 -0
- package/dist/pipes/__tests__/file-validation.pipe.spec.js.map +1 -0
- package/dist/pipes/__tests__/header-validation.pipe.spec.d.ts +2 -0
- package/dist/pipes/__tests__/header-validation.pipe.spec.d.ts.map +1 -0
- package/dist/pipes/__tests__/header-validation.pipe.spec.js +111 -0
- package/dist/pipes/__tests__/header-validation.pipe.spec.js.map +1 -0
- package/dist/pipes/__tests__/http-validation.pipe.spec.d.ts +2 -0
- package/dist/pipes/__tests__/http-validation.pipe.spec.d.ts.map +1 -0
- package/dist/pipes/__tests__/http-validation.pipe.spec.js +114 -0
- package/dist/pipes/__tests__/http-validation.pipe.spec.js.map +1 -0
- package/dist/pipes/__tests__/query-validation.pipe.spec.d.ts +2 -0
- package/dist/pipes/__tests__/query-validation.pipe.spec.d.ts.map +1 -0
- package/dist/pipes/__tests__/query-validation.pipe.spec.js +103 -0
- package/dist/pipes/__tests__/query-validation.pipe.spec.js.map +1 -0
- package/dist/pipes/__tests__/rpc-validation.pipe.spec.d.ts +2 -0
- package/dist/pipes/__tests__/rpc-validation.pipe.spec.d.ts.map +1 -0
- package/dist/pipes/__tests__/rpc-validation.pipe.spec.js +126 -0
- package/dist/pipes/__tests__/rpc-validation.pipe.spec.js.map +1 -0
- package/dist/pipes/file-validation.pipe.d.ts +10 -0
- package/dist/pipes/file-validation.pipe.d.ts.map +1 -0
- package/dist/pipes/file-validation.pipe.js +41 -0
- package/dist/pipes/file-validation.pipe.js.map +1 -0
- package/dist/pipes/header-validation.pipe.d.ts +8 -0
- package/dist/pipes/header-validation.pipe.d.ts.map +1 -0
- package/dist/pipes/header-validation.pipe.js +58 -0
- package/dist/pipes/header-validation.pipe.js.map +1 -0
- package/dist/pipes/http-validation.pipe.d.ts +8 -0
- package/dist/pipes/http-validation.pipe.d.ts.map +1 -0
- package/dist/pipes/http-validation.pipe.js +41 -0
- package/dist/pipes/http-validation.pipe.js.map +1 -0
- package/dist/pipes/query-validation.pipe.d.ts +8 -0
- package/dist/pipes/query-validation.pipe.d.ts.map +1 -0
- package/dist/pipes/query-validation.pipe.js +58 -0
- package/dist/pipes/query-validation.pipe.js.map +1 -0
- package/dist/pipes/rpc-validation.pipe.d.ts +8 -0
- package/dist/pipes/rpc-validation.pipe.d.ts.map +1 -0
- package/dist/pipes/rpc-validation.pipe.js +49 -0
- package/dist/pipes/rpc-validation.pipe.js.map +1 -0
- package/dist/types/circuit-breaker-types.d.ts +19 -0
- package/dist/types/circuit-breaker-types.d.ts.map +1 -0
- package/dist/types/circuit-breaker-types.js +8 -0
- package/dist/types/circuit-breaker-types.js.map +1 -0
- package/dist/types/compression-types.d.ts +22 -0
- package/dist/types/compression-types.d.ts.map +1 -0
- package/dist/types/compression-types.js +2 -0
- package/dist/types/compression-types.js.map +1 -0
- package/dist/types/context-types.d.ts +18 -0
- package/dist/types/context-types.d.ts.map +1 -0
- package/dist/types/context-types.js +8 -0
- package/dist/types/context-types.js.map +1 -0
- package/dist/types/cors-types.d.ts +11 -0
- package/dist/types/cors-types.d.ts.map +1 -0
- package/dist/types/cors-types.js +2 -0
- package/dist/types/cors-types.js.map +1 -0
- package/dist/types/error-types.d.ts +13 -0
- package/dist/types/error-types.d.ts.map +1 -0
- package/dist/types/error-types.js +15 -0
- package/dist/types/error-types.js.map +1 -0
- package/dist/types/file-types.d.ts +13 -0
- package/dist/types/file-types.d.ts.map +1 -0
- package/dist/types/file-types.js +2 -0
- package/dist/types/file-types.js.map +1 -0
- package/dist/types/file-validation-types.d.ts +10 -0
- package/dist/types/file-validation-types.d.ts.map +1 -0
- package/dist/types/file-validation-types.js +2 -0
- package/dist/types/file-validation-types.js.map +1 -0
- package/dist/types/get-service-path-types.d.ts +16 -0
- package/dist/types/get-service-path-types.d.ts.map +1 -0
- package/dist/types/get-service-path-types.js +2 -0
- package/dist/types/get-service-path-types.js.map +1 -0
- package/dist/types/guard-types.d.ts +5 -0
- package/dist/types/guard-types.d.ts.map +1 -0
- package/dist/types/guard-types.js +2 -0
- package/dist/types/guard-types.js.map +1 -0
- package/dist/types/http-response.d.ts +19 -0
- package/dist/types/http-response.d.ts.map +1 -0
- package/dist/types/http-response.js +2 -0
- package/dist/types/http-response.js.map +1 -0
- package/dist/types/rpc-types.d.ts +21 -0
- package/dist/types/rpc-types.d.ts.map +1 -0
- package/dist/types/rpc-types.js +17 -0
- package/dist/types/rpc-types.js.map +1 -0
- package/dist/types/versioning-types.d.ts +8 -0
- package/dist/types/versioning-types.d.ts.map +1 -0
- package/dist/types/versioning-types.js +2 -0
- package/dist/types/versioning-types.js.map +1 -0
- package/dist/utils/__tests__/circuit-breaker.spec.d.ts +2 -0
- package/dist/utils/__tests__/circuit-breaker.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/circuit-breaker.spec.js +206 -0
- package/dist/utils/__tests__/circuit-breaker.spec.js.map +1 -0
- package/dist/utils/__tests__/compression.utils.spec.d.ts +2 -0
- package/dist/utils/__tests__/compression.utils.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/compression.utils.spec.js +106 -0
- package/dist/utils/__tests__/compression.utils.spec.js.map +1 -0
- package/dist/utils/__tests__/context.utils.spec.d.ts +2 -0
- package/dist/utils/__tests__/context.utils.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/context.utils.spec.js +112 -0
- package/dist/utils/__tests__/context.utils.spec.js.map +1 -0
- package/dist/utils/__tests__/cors.utils.spec.d.ts +2 -0
- package/dist/utils/__tests__/cors.utils.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/cors.utils.spec.js +54 -0
- package/dist/utils/__tests__/cors.utils.spec.js.map +1 -0
- package/dist/utils/__tests__/env-validator.spec.d.ts +2 -0
- package/dist/utils/__tests__/env-validator.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/env-validator.spec.js +88 -0
- package/dist/utils/__tests__/env-validator.spec.js.map +1 -0
- package/dist/utils/__tests__/file.utils.spec.d.ts +2 -0
- package/dist/utils/__tests__/file.utils.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/file.utils.spec.js +95 -0
- package/dist/utils/__tests__/file.utils.spec.js.map +1 -0
- package/dist/utils/__tests__/get-service-path.spec.d.ts +2 -0
- package/dist/utils/__tests__/get-service-path.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/get-service-path.spec.js +385 -0
- package/dist/utils/__tests__/get-service-path.spec.js.map +1 -0
- package/dist/utils/__tests__/versioning.utils.spec.d.ts +2 -0
- package/dist/utils/__tests__/versioning.utils.spec.d.ts.map +1 -0
- package/dist/utils/__tests__/versioning.utils.spec.js +66 -0
- package/dist/utils/__tests__/versioning.utils.spec.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +15 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +96 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/compression.utils.d.ts +3 -0
- package/dist/utils/compression.utils.d.ts.map +1 -0
- package/dist/utils/compression.utils.js +25 -0
- package/dist/utils/compression.utils.js.map +1 -0
- package/dist/utils/context.utils.d.ts +7 -0
- package/dist/utils/context.utils.d.ts.map +1 -0
- package/dist/utils/context.utils.js +24 -0
- package/dist/utils/context.utils.js.map +1 -0
- package/dist/utils/cors.utils.d.ts +4 -0
- package/dist/utils/cors.utils.d.ts.map +1 -0
- package/dist/utils/cors.utils.js +23 -0
- package/dist/utils/cors.utils.js.map +1 -0
- package/dist/utils/env-validator.d.ts +2 -0
- package/dist/utils/env-validator.d.ts.map +1 -0
- package/dist/utils/env-validator.js +22 -0
- package/dist/utils/env-validator.js.map +1 -0
- package/dist/utils/file.utils.d.ts +6 -0
- package/dist/utils/file.utils.d.ts.map +1 -0
- package/dist/utils/file.utils.js +42 -0
- package/dist/utils/file.utils.js.map +1 -0
- package/dist/utils/get-service-path.d.ts +9 -0
- package/dist/utils/get-service-path.d.ts.map +1 -0
- package/dist/utils/get-service-path.js +65 -0
- package/dist/utils/get-service-path.js.map +1 -0
- package/dist/utils/versioning.utils.d.ts +4 -0
- package/dist/utils/versioning.utils.d.ts.map +1 -0
- package/dist/utils/versioning.utils.js +30 -0
- package/dist/utils/versioning.utils.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare enum CircuitBreakerState {
|
|
2
|
+
CLOSED = "CLOSED",// Нормальная работа
|
|
3
|
+
OPEN = "OPEN",// Разомкнут (ошибки превысили порог)
|
|
4
|
+
HALF_OPEN = "HALF_OPEN"
|
|
5
|
+
}
|
|
6
|
+
export interface CircuitBreakerOptions {
|
|
7
|
+
failureThreshold?: number;
|
|
8
|
+
successThreshold?: number;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
resetTimeout?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface CircuitBreakerStats {
|
|
13
|
+
failures: number;
|
|
14
|
+
successes: number;
|
|
15
|
+
state: CircuitBreakerState;
|
|
16
|
+
lastFailureTime?: number;
|
|
17
|
+
lastStateChangeTime: number;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=circuit-breaker-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker-types.d.ts","sourceRoot":"","sources":["../../src/types/circuit-breaker-types.ts"],"names":[],"mappings":"AACA,oBAAY,mBAAmB;IAC9B,MAAM,WAAW,CAAE,oBAAoB;IACvC,IAAI,SAAS,CAAE,qCAAqC;IACpD,SAAS,cAAc;CACvB;AAGD,MAAM,WAAW,qBAAqB;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Состояния Circuit Breaker
|
|
2
|
+
export var CircuitBreakerState;
|
|
3
|
+
(function (CircuitBreakerState) {
|
|
4
|
+
CircuitBreakerState["CLOSED"] = "CLOSED";
|
|
5
|
+
CircuitBreakerState["OPEN"] = "OPEN";
|
|
6
|
+
CircuitBreakerState["HALF_OPEN"] = "HALF_OPEN";
|
|
7
|
+
})(CircuitBreakerState || (CircuitBreakerState = {}));
|
|
8
|
+
//# sourceMappingURL=circuit-breaker-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker-types.js","sourceRoot":"","sources":["../../src/types/circuit-breaker-types.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,8CAAuB,CAAA;AACxB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Request, Response } from "express";
|
|
2
|
+
export interface CompressionOptionsConfig {
|
|
3
|
+
filter?: (req: Request, res: Response) => boolean;
|
|
4
|
+
level?: number;
|
|
5
|
+
threshold?: number;
|
|
6
|
+
chunkSize?: number;
|
|
7
|
+
windowBits?: number;
|
|
8
|
+
memLevel?: number;
|
|
9
|
+
strategy?: number;
|
|
10
|
+
dictionary?: Buffer | Buffer[] | string;
|
|
11
|
+
}
|
|
12
|
+
export interface CompressionOptions {
|
|
13
|
+
filter?: (req: Request, res: Response) => boolean;
|
|
14
|
+
level?: number;
|
|
15
|
+
threshold?: number;
|
|
16
|
+
chunkSize?: number;
|
|
17
|
+
windowBits?: number;
|
|
18
|
+
memLevel?: number;
|
|
19
|
+
strategy?: number;
|
|
20
|
+
dictionary?: Buffer | Buffer[] | string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=compression-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression-types.d.ts","sourceRoot":"","sources":["../../src/types/compression-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;CACxC;AAGD,MAAM,WAAW,kBAAkB;IAClC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression-types.js","sourceRoot":"","sources":["../../src/types/compression-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Request } from "express";
|
|
2
|
+
export declare enum ContextType {
|
|
3
|
+
HTTP = "http",
|
|
4
|
+
RPC = "rpc",
|
|
5
|
+
WS = "ws"
|
|
6
|
+
}
|
|
7
|
+
export interface UserFromContext {
|
|
8
|
+
id?: string | number;
|
|
9
|
+
email?: string;
|
|
10
|
+
roles?: string[];
|
|
11
|
+
permissions?: string[];
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface ExtendedRequest extends Request {
|
|
15
|
+
user?: UserFromContext;
|
|
16
|
+
id?: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=context-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-types.d.ts","sourceRoot":"","sources":["../../src/types/context-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,oBAAY,WAAW;IACtB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,EAAE,OAAO;CACT;AAGD,MAAM,WAAW,eAAe;IAC/B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC/C,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Типы контекстов выполнения в NestJS
|
|
2
|
+
export var ContextType;
|
|
3
|
+
(function (ContextType) {
|
|
4
|
+
ContextType["HTTP"] = "http";
|
|
5
|
+
ContextType["RPC"] = "rpc";
|
|
6
|
+
ContextType["WS"] = "ws";
|
|
7
|
+
})(ContextType || (ContextType = {}));
|
|
8
|
+
//# sourceMappingURL=context-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-types.js","sourceRoot":"","sources":["../../src/types/context-types.ts"],"names":[],"mappings":"AAEA,sCAAsC;AACtC,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,wBAAS,CAAA;AACV,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface CorsOptionsConfig {
|
|
2
|
+
origin?: string | string[] | boolean | RegExp | ((origin: string) => boolean);
|
|
3
|
+
methods?: string | string[];
|
|
4
|
+
allowedHeaders?: string | string[];
|
|
5
|
+
exposedHeaders?: string | string[];
|
|
6
|
+
credentials?: boolean;
|
|
7
|
+
maxAge?: number;
|
|
8
|
+
preflightContinue?: boolean;
|
|
9
|
+
optionsSuccessStatus?: number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=cors-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-types.d.ts","sourceRoot":"","sources":["../../src/types/cors-types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-types.js","sourceRoot":"","sources":["../../src/types/cors-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum ErrorType {
|
|
2
|
+
HTTP_ERROR = "HttpError",
|
|
3
|
+
SOCKET_ERROR = "SocketError",
|
|
4
|
+
RPC_ERROR = "RpcError",
|
|
5
|
+
RPC_EXCEPTION = "RpcException",
|
|
6
|
+
HTTP_EXCEPTION = "HttpException",
|
|
7
|
+
ERROR = "Error",
|
|
8
|
+
DESERIALIZED_RPC_ERROR = "DeserializedRpcError",
|
|
9
|
+
NEST_RPC_EXCEPTION = "NestRpcException",
|
|
10
|
+
OBJECT = "Object",
|
|
11
|
+
UNKNOWN = "Unknown"
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=error-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../src/types/error-types.ts"],"names":[],"mappings":"AACA,oBAAY,SAAS;IACpB,UAAU,cAAc;IACxB,YAAY,gBAAgB;IAC5B,SAAS,aAAa;IACtB,aAAa,iBAAiB;IAC9B,cAAc,kBAAkB;IAChC,KAAK,UAAU;IACf,sBAAsB,yBAAyB;IAC/C,kBAAkB,qBAAqB;IACvC,MAAM,WAAW;IACjB,OAAO,YAAY;CACnB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Типы ошибок, используемые в системе обработки исключений
|
|
2
|
+
export var ErrorType;
|
|
3
|
+
(function (ErrorType) {
|
|
4
|
+
ErrorType["HTTP_ERROR"] = "HttpError";
|
|
5
|
+
ErrorType["SOCKET_ERROR"] = "SocketError";
|
|
6
|
+
ErrorType["RPC_ERROR"] = "RpcError";
|
|
7
|
+
ErrorType["RPC_EXCEPTION"] = "RpcException";
|
|
8
|
+
ErrorType["HTTP_EXCEPTION"] = "HttpException";
|
|
9
|
+
ErrorType["ERROR"] = "Error";
|
|
10
|
+
ErrorType["DESERIALIZED_RPC_ERROR"] = "DeserializedRpcError";
|
|
11
|
+
ErrorType["NEST_RPC_EXCEPTION"] = "NestRpcException";
|
|
12
|
+
ErrorType["OBJECT"] = "Object";
|
|
13
|
+
ErrorType["UNKNOWN"] = "Unknown";
|
|
14
|
+
})(ErrorType || (ErrorType = {}));
|
|
15
|
+
//# sourceMappingURL=error-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-types.js","sourceRoot":"","sources":["../../src/types/error-types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACpB,qCAAwB,CAAA;IACxB,yCAA4B,CAAA;IAC5B,mCAAsB,CAAA;IACtB,2CAA8B,CAAA;IAC9B,6CAAgC,CAAA;IAChC,4BAAe,CAAA;IACf,4DAA+C,CAAA;IAC/C,oDAAuC,CAAA;IACvC,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;AACpB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface MulterFile {
|
|
2
|
+
fieldname: string;
|
|
3
|
+
originalname: string;
|
|
4
|
+
encoding: string;
|
|
5
|
+
mimetype: string;
|
|
6
|
+
size: number;
|
|
7
|
+
buffer: Buffer;
|
|
8
|
+
destination: string;
|
|
9
|
+
filename: string;
|
|
10
|
+
path: string;
|
|
11
|
+
stream: NodeJS.ReadableStream;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=file-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-types.d.ts","sourceRoot":"","sources":["../../src/types/file-types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-types.js","sourceRoot":"","sources":["../../src/types/file-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface FileValidationOptions {
|
|
2
|
+
maxSize?: number;
|
|
3
|
+
allowedMimeTypes?: string[];
|
|
4
|
+
allowedExtensions?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface FileValidationResult {
|
|
7
|
+
isValid: boolean;
|
|
8
|
+
errors: string[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=file-validation-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-validation-types.d.ts","sourceRoot":"","sources":["../../src/types/file-validation-types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-validation-types.js","sourceRoot":"","sources":["../../src/types/file-validation-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ServicePathType = "locales" | "srcRoot" | "file";
|
|
2
|
+
export interface GetServicePathOptions {
|
|
3
|
+
serviceName: string;
|
|
4
|
+
dirname: string;
|
|
5
|
+
pathType: ServicePathType;
|
|
6
|
+
/**
|
|
7
|
+
* Относительный путь от src директории
|
|
8
|
+
* Для 'locales': "locales" (будет преобразован в "src/locales")
|
|
9
|
+
* Для 'srcRoot': "src" (возвращает корень сервиса)
|
|
10
|
+
* Для 'file': "chat/workers/ai-sdk.worker.ts"
|
|
11
|
+
* (будет преобразован в "src/chat/workers/ai-sdk.worker.ts")
|
|
12
|
+
* Если путь начинается с "src/", префикс будет удален
|
|
13
|
+
*/
|
|
14
|
+
relativePath: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=get-service-path-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-service-path-types.d.ts","sourceRoot":"","sources":["../../src/types/get-service-path-types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAG7D,MAAM,WAAW,qBAAqB;IAErC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-service-path-types.js","sourceRoot":"","sources":["../../src/types/get-service-path-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-types.d.ts","sourceRoot":"","sources":["../../src/types/guard-types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-types.js","sourceRoot":"","sources":["../../src/types/guard-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default interface ErrorResponse {
|
|
2
|
+
statusCode: number;
|
|
3
|
+
timestamp: string;
|
|
4
|
+
path: string;
|
|
5
|
+
error: string;
|
|
6
|
+
message: string;
|
|
7
|
+
stack?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface StandardResponse<T = unknown> {
|
|
10
|
+
success: boolean;
|
|
11
|
+
data: T;
|
|
12
|
+
meta?: {
|
|
13
|
+
timestamp: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
requestId?: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=http-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-response.d.ts","sourceRoot":"","sources":["../../src/types/http-response.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,WAAW,aAAa;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-response.js","sourceRoot":"","sources":["../../src/types/http-response.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RmqContext } from "@nestjs/microservices";
|
|
2
|
+
export declare enum RpcErrorType {
|
|
3
|
+
RPC_TIMEOUT = "RPC_TIMEOUT",
|
|
4
|
+
SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE",
|
|
5
|
+
RPC_SERVICE_UNAVAILABLE = "RPC_SERVICE_UNAVAILABLE",
|
|
6
|
+
BAD_REQUEST = "BAD_REQUEST",
|
|
7
|
+
UNAUTHORIZED = "UNAUTHORIZED",
|
|
8
|
+
FORBIDDEN = "FORBIDDEN",
|
|
9
|
+
NOT_FOUND = "NOT_FOUND",
|
|
10
|
+
VALIDATION_ERROR = "VALIDATION_ERROR",
|
|
11
|
+
RPC_VALIDATION_ERROR = "RPC_VALIDATION_ERROR",
|
|
12
|
+
TOO_MANY_REQUESTS = "TOO_MANY_REQUESTS"
|
|
13
|
+
}
|
|
14
|
+
export interface MessageWithCorrelationId {
|
|
15
|
+
correlationId?: string;
|
|
16
|
+
correlationTimestamp?: number;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
export type RmqChannel = ReturnType<NonNullable<RmqContext["getChannelRef"]>>;
|
|
20
|
+
export type RmqMessage = ReturnType<NonNullable<RmqContext["getMessage"]>>;
|
|
21
|
+
//# sourceMappingURL=rpc-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-types.d.ts","sourceRoot":"","sources":["../../src/types/rpc-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,oBAAY,YAAY;IAEvB,WAAW,gBAAgB;IAC3B,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IAGnD,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;CACvC;AAGD,MAAM,WAAW,wBAAwB;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Константы типов ошибок для классификации
|
|
2
|
+
export var RpcErrorType;
|
|
3
|
+
(function (RpcErrorType) {
|
|
4
|
+
// Временные ошибки (retry)
|
|
5
|
+
RpcErrorType["RPC_TIMEOUT"] = "RPC_TIMEOUT";
|
|
6
|
+
RpcErrorType["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
|
|
7
|
+
RpcErrorType["RPC_SERVICE_UNAVAILABLE"] = "RPC_SERVICE_UNAVAILABLE";
|
|
8
|
+
// Постоянные ошибки (DLX сразу)
|
|
9
|
+
RpcErrorType["BAD_REQUEST"] = "BAD_REQUEST";
|
|
10
|
+
RpcErrorType["UNAUTHORIZED"] = "UNAUTHORIZED";
|
|
11
|
+
RpcErrorType["FORBIDDEN"] = "FORBIDDEN";
|
|
12
|
+
RpcErrorType["NOT_FOUND"] = "NOT_FOUND";
|
|
13
|
+
RpcErrorType["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
14
|
+
RpcErrorType["RPC_VALIDATION_ERROR"] = "RPC_VALIDATION_ERROR";
|
|
15
|
+
RpcErrorType["TOO_MANY_REQUESTS"] = "TOO_MANY_REQUESTS";
|
|
16
|
+
})(RpcErrorType || (RpcErrorType = {}));
|
|
17
|
+
//# sourceMappingURL=rpc-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-types.js","sourceRoot":"","sources":["../../src/types/rpc-types.ts"],"names":[],"mappings":"AAEA,2CAA2C;AAC3C,MAAM,CAAN,IAAY,YAcX;AAdD,WAAY,YAAY;IACvB,2BAA2B;IAC3B,2CAA2B,CAAA;IAC3B,2DAA2C,CAAA;IAC3C,mEAAmD,CAAA;IAEnD,gCAAgC;IAChC,2CAA2B,CAAA;IAC3B,6CAA6B,CAAA;IAC7B,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,qDAAqC,CAAA;IACrC,6DAA6C,CAAA;IAC7C,uDAAuC,CAAA;AACxC,CAAC,EAdW,YAAY,KAAZ,YAAY,QAcvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning-types.d.ts","sourceRoot":"","sources":["../../src/types/versioning-types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC;AAGjE,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,kBAAkB,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning-types.js","sourceRoot":"","sources":["../../src/types/versioning-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.spec.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/circuit-breaker.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { createLoggerServiceMock } from "../../__tests__/mocks/logger-service.mock.js";
|
|
2
|
+
import { CircuitBreakerState } from "../../types/circuit-breaker-types.js";
|
|
3
|
+
import CircuitBreakerService from "../../utils/circuit-breaker.js";
|
|
4
|
+
describe("CircuitBreakerService", () => {
|
|
5
|
+
let service;
|
|
6
|
+
let mockLogger;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
mockLogger = createLoggerServiceMock();
|
|
9
|
+
service = new CircuitBreakerService(mockLogger, {
|
|
10
|
+
failureThreshold: 3,
|
|
11
|
+
successThreshold: 2,
|
|
12
|
+
resetTimeout: 100,
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
it("should execute function successfully", async () => {
|
|
16
|
+
const fn = jest.fn().mockResolvedValue("success");
|
|
17
|
+
const result = await service.execute("test-key", fn);
|
|
18
|
+
expect(result).toBe("success");
|
|
19
|
+
expect(fn).toHaveBeenCalledTimes(1);
|
|
20
|
+
});
|
|
21
|
+
it("should track failures and open circuit", async () => {
|
|
22
|
+
const fn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
23
|
+
// Выполняем функцию до порога ошибок
|
|
24
|
+
for (let i = 0; i < 3; i++) {
|
|
25
|
+
await expect(service.execute("test-key", fn)).rejects.toThrow("Test error");
|
|
26
|
+
}
|
|
27
|
+
// Следующий запрос должен быть отклонен из-за открытого circuit breaker
|
|
28
|
+
await expect(service.execute("test-key", fn)).rejects.toThrow("Circuit breaker test-key is OPEN");
|
|
29
|
+
});
|
|
30
|
+
it("should transition to HALF_OPEN after reset timeout", async () => {
|
|
31
|
+
const fn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
32
|
+
// Открываем circuit breaker
|
|
33
|
+
for (let i = 0; i < 3; i++) {
|
|
34
|
+
await expect(service.execute("test-key", fn)).rejects.toThrow("Test error");
|
|
35
|
+
}
|
|
36
|
+
// Ждем истечения reset timeout
|
|
37
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
38
|
+
// Вызываем execute снова - это должно перевести circuit breaker в HALF_OPEN
|
|
39
|
+
const successFn = jest.fn().mockResolvedValue("success");
|
|
40
|
+
await service.execute("test-key", successFn);
|
|
41
|
+
// Проверяем, что circuit breaker перешел в HALF_OPEN
|
|
42
|
+
const state = service.getState("test-key");
|
|
43
|
+
expect(state).toBe(CircuitBreakerState.HALF_OPEN);
|
|
44
|
+
});
|
|
45
|
+
it("should close circuit after success threshold in HALF_OPEN", async () => {
|
|
46
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
47
|
+
const successFn = jest.fn().mockResolvedValue("success");
|
|
48
|
+
// Открываем circuit breaker
|
|
49
|
+
for (let i = 0; i < 3; i++) {
|
|
50
|
+
await expect(service.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
51
|
+
}
|
|
52
|
+
// Ждем истечения reset timeout
|
|
53
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
54
|
+
// Выполняем успешные запросы
|
|
55
|
+
await service.execute("test-key", successFn);
|
|
56
|
+
await service.execute("test-key", successFn);
|
|
57
|
+
// Проверяем, что circuit breaker закрыт
|
|
58
|
+
const state = service.getState("test-key");
|
|
59
|
+
expect(state).toBe(CircuitBreakerState.CLOSED);
|
|
60
|
+
});
|
|
61
|
+
it("should reset circuit breaker", () => {
|
|
62
|
+
service.reset("test-key");
|
|
63
|
+
expect(mockLogger.log).toHaveBeenCalledWith("Circuit breaker test-key reset");
|
|
64
|
+
});
|
|
65
|
+
it("should track state per key", async () => {
|
|
66
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
67
|
+
// Открываем circuit breaker для первого ключа
|
|
68
|
+
for (let i = 0; i < 3; i++) {
|
|
69
|
+
await expect(service.execute("key1", errorFn)).rejects.toThrow("Test error");
|
|
70
|
+
}
|
|
71
|
+
// Второй ключ должен быть в CLOSED состоянии
|
|
72
|
+
const state1 = service.getState("key1");
|
|
73
|
+
const state2 = service.getState("key2");
|
|
74
|
+
expect(state1).toBe(CircuitBreakerState.OPEN);
|
|
75
|
+
expect(state2).toBe(CircuitBreakerState.CLOSED);
|
|
76
|
+
});
|
|
77
|
+
it("should use default resetTimeout when not provided", async () => {
|
|
78
|
+
const serviceWithDefaults = new CircuitBreakerService(mockLogger);
|
|
79
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
80
|
+
// Открываем circuit breaker
|
|
81
|
+
for (let i = 0; i < 5; i++) {
|
|
82
|
+
await expect(serviceWithDefaults.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
83
|
+
}
|
|
84
|
+
// Проверяем, что используется дефолтный resetTimeout (60000)
|
|
85
|
+
const state = serviceWithDefaults.getState("test-key");
|
|
86
|
+
expect(state).toBe(CircuitBreakerState.OPEN);
|
|
87
|
+
});
|
|
88
|
+
it("должен использовать дефолтный resetTimeout когда передан undefined", async () => {
|
|
89
|
+
const serviceWithUndefined = new CircuitBreakerService(mockLogger, {
|
|
90
|
+
resetTimeout: undefined,
|
|
91
|
+
});
|
|
92
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
93
|
+
// Открываем circuit breaker
|
|
94
|
+
for (let i = 0; i < 5; i++) {
|
|
95
|
+
await expect(serviceWithUndefined.execute("test-key-undefined", errorFn)).rejects.toThrow("Test error");
|
|
96
|
+
}
|
|
97
|
+
// Проверяем, что используется дефолтный resetTimeout (60000)
|
|
98
|
+
const state = serviceWithUndefined.getState("test-key-undefined");
|
|
99
|
+
expect(state).toBe(CircuitBreakerState.OPEN);
|
|
100
|
+
});
|
|
101
|
+
it("should reject request when circuit is OPEN and timeout not expired", async () => {
|
|
102
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
103
|
+
// Открываем circuit breaker
|
|
104
|
+
for (let i = 0; i < 3; i++) {
|
|
105
|
+
await expect(service.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
106
|
+
}
|
|
107
|
+
// Сразу после открытия запрос должен быть отклонен
|
|
108
|
+
await expect(service.execute("test-key", errorFn)).rejects.toThrow("Circuit breaker test-key is OPEN");
|
|
109
|
+
});
|
|
110
|
+
it("should use default successThreshold when not provided", async () => {
|
|
111
|
+
const serviceWithDefaults = new CircuitBreakerService(mockLogger, {
|
|
112
|
+
failureThreshold: 3,
|
|
113
|
+
resetTimeout: 100,
|
|
114
|
+
});
|
|
115
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
116
|
+
const successFn = jest.fn().mockResolvedValue("success");
|
|
117
|
+
// Открываем circuit breaker
|
|
118
|
+
for (let i = 0; i < 3; i++) {
|
|
119
|
+
await expect(serviceWithDefaults.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
120
|
+
}
|
|
121
|
+
// Ждем истечения reset timeout
|
|
122
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
123
|
+
// Выполняем успешные запросы до дефолтного порога (2)
|
|
124
|
+
await serviceWithDefaults.execute("test-key", successFn);
|
|
125
|
+
await serviceWithDefaults.execute("test-key", successFn);
|
|
126
|
+
// Проверяем, что circuit breaker закрыт
|
|
127
|
+
const state = serviceWithDefaults.getState("test-key");
|
|
128
|
+
expect(state).toBe(CircuitBreakerState.CLOSED);
|
|
129
|
+
});
|
|
130
|
+
it("should use default failureThreshold when not provided", async () => {
|
|
131
|
+
const serviceWithDefaults = new CircuitBreakerService(mockLogger);
|
|
132
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
133
|
+
// Выполняем запросы до дефолтного порога ошибок (5)
|
|
134
|
+
for (let i = 0; i < 5; i++) {
|
|
135
|
+
await expect(serviceWithDefaults.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
136
|
+
}
|
|
137
|
+
// Проверяем, что circuit breaker открыт
|
|
138
|
+
const state = serviceWithDefaults.getState("test-key");
|
|
139
|
+
expect(state).toBe(CircuitBreakerState.OPEN);
|
|
140
|
+
});
|
|
141
|
+
it("should handle stats without lastFailureTime", async () => {
|
|
142
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
143
|
+
// Открываем circuit breaker
|
|
144
|
+
for (let i = 0; i < 3; i++) {
|
|
145
|
+
await expect(service.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
146
|
+
}
|
|
147
|
+
// Сбрасываем lastFailureTime через прямой доступ к stats
|
|
148
|
+
const serviceInternal = service;
|
|
149
|
+
const stats = serviceInternal.stats.get("test-key");
|
|
150
|
+
if (stats) {
|
|
151
|
+
stats.lastFailureTime = undefined;
|
|
152
|
+
}
|
|
153
|
+
// Проверяем, что timeSinceLastFailure обрабатывает undefined
|
|
154
|
+
// Это должно привести к переходу в HALF_OPEN, так как timeSinceLastFailure будет большим
|
|
155
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
156
|
+
const successFn = jest.fn().mockResolvedValue("success");
|
|
157
|
+
await service.execute("test-key", successFn);
|
|
158
|
+
const state = service.getState("test-key");
|
|
159
|
+
expect(state).toBe(CircuitBreakerState.HALF_OPEN);
|
|
160
|
+
});
|
|
161
|
+
it("should handle HALF_OPEN state with successes less than threshold", async () => {
|
|
162
|
+
const errorFn = jest.fn().mockRejectedValue(new Error("Test error"));
|
|
163
|
+
const successFn = jest.fn().mockResolvedValue("success");
|
|
164
|
+
// Открываем circuit breaker
|
|
165
|
+
for (let i = 0; i < 3; i++) {
|
|
166
|
+
await expect(service.execute("test-key", errorFn)).rejects.toThrow("Test error");
|
|
167
|
+
}
|
|
168
|
+
// Ждем истечения reset timeout
|
|
169
|
+
await new Promise((resolve) => setTimeout(resolve, 150));
|
|
170
|
+
// Выполняем только один успешный запрос (меньше порога 2)
|
|
171
|
+
await service.execute("test-key", successFn);
|
|
172
|
+
// Проверяем, что circuit breaker все еще в HALF_OPEN
|
|
173
|
+
const state = service.getState("test-key");
|
|
174
|
+
expect(state).toBe(CircuitBreakerState.HALF_OPEN);
|
|
175
|
+
});
|
|
176
|
+
it("должен покрыть строку 112 - выброс ошибки когда stats не найдены", () => {
|
|
177
|
+
// Покрываем строку 112 - выброс ошибки когда stats не найдены
|
|
178
|
+
// Это защитная проверка на случай, если stats.get вернет undefined после проверки has
|
|
179
|
+
// Используем рефлексию для прямого доступа к приватному методу getStats
|
|
180
|
+
const serviceInternal = service;
|
|
181
|
+
// Мокируем Map так, чтобы has вернул true, но get вернул undefined
|
|
182
|
+
const originalHas = serviceInternal.stats.has.bind(serviceInternal.stats);
|
|
183
|
+
const originalGet = serviceInternal.stats.get.bind(serviceInternal.stats);
|
|
184
|
+
let getCallCount = 0;
|
|
185
|
+
serviceInternal.stats.has = jest.fn((key) => {
|
|
186
|
+
// Для ключа "test-key-for-error" возвращаем true
|
|
187
|
+
if (key === "test-key-for-error") {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
return originalHas(key);
|
|
191
|
+
});
|
|
192
|
+
serviceInternal.stats.get = jest.fn((key) => {
|
|
193
|
+
getCallCount++;
|
|
194
|
+
// Для ключа "test-key-for-error" возвращаем undefined при втором вызове
|
|
195
|
+
if (key === "test-key-for-error" && getCallCount === 2) {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
return originalGet(key);
|
|
199
|
+
});
|
|
200
|
+
// Вызываем getStats напрямую через рефлексию
|
|
201
|
+
expect(() => {
|
|
202
|
+
serviceInternal.getStats("test-key-for-error");
|
|
203
|
+
}).toThrow("Stats not found for key: test-key-for-error");
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=circuit-breaker.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.spec.js","sourceRoot":"","sources":["../../../src/utils/__tests__/circuit-breaker.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.utils.spec.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/compression.utils.spec.ts"],"names":[],"mappings":""}
|