@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,25 @@
|
|
|
1
|
+
// Создает опции compression для NestJS приложения
|
|
2
|
+
export default function createCompressionOptions(config = {}) {
|
|
3
|
+
const { filter = (req, res) => {
|
|
4
|
+
// Фильтр по умолчанию: сжимаем только текстовые типы контента
|
|
5
|
+
if (req.headers && "accept-encoding" in req.headers) {
|
|
6
|
+
const contentType = res.getHeader("content-type");
|
|
7
|
+
return /text|json|javascript|css|xml|html/i.test((typeof contentType === "string" ? contentType : "") || "");
|
|
8
|
+
}
|
|
9
|
+
return false;
|
|
10
|
+
}, level = 6, // Уровень сжатия от 0 до 9
|
|
11
|
+
threshold = 1024, // Минимальный размер ответа для сжатия (в байтах)
|
|
12
|
+
chunkSize = 16 * 1024, // Размер чанка
|
|
13
|
+
windowBits = 15, memLevel = 8, strategy, dictionary, } = config;
|
|
14
|
+
return {
|
|
15
|
+
filter,
|
|
16
|
+
level,
|
|
17
|
+
threshold,
|
|
18
|
+
chunkSize,
|
|
19
|
+
windowBits,
|
|
20
|
+
memLevel,
|
|
21
|
+
...(strategy !== undefined && { strategy }),
|
|
22
|
+
...(dictionary !== undefined && { dictionary }),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=compression.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.utils.js","sourceRoot":"","sources":["../../src/utils/compression.utils.ts"],"names":[],"mappings":"AAMA,kDAAkD;AAClD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC/C,SAAmC,EAAE;IAErC,MAAM,EACL,MAAM,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACxC,8DAA8D;QAC9D,IAAI,GAAG,CAAC,OAAO,IAAI,iBAAiB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO,oCAAoC,CAAC,IAAI,CAC/C,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAC1D,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,EACD,KAAK,GAAG,CAAC,EAAE,2BAA2B;IACtC,SAAS,GAAG,IAAI,EAAE,kDAAkD;IACpE,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,eAAe;IACtC,UAAU,GAAG,EAAE,EACf,QAAQ,GAAG,CAAC,EACZ,QAAQ,EACR,UAAU,GACV,GAAG,MAAM,CAAC;IAEX,OAAO;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,UAAU;QACV,QAAQ;QACR,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;KAC/C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExecutionContext } from "@nestjs/common";
|
|
2
|
+
import type { UserFromContext } from "../types/context-types.js";
|
|
3
|
+
export declare function getUserFromContext(context: ExecutionContext): UserFromContext | undefined;
|
|
4
|
+
export declare function getIpFromContext(context: ExecutionContext): string;
|
|
5
|
+
export declare function getUserAgentFromContext(context: ExecutionContext): string;
|
|
6
|
+
export declare function getRequestIdFromContext(context: ExecutionContext): string;
|
|
7
|
+
//# sourceMappingURL=context.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.utils.d.ts","sourceRoot":"","sources":["../../src/utils/context.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGhF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAGzF;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAQlE;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAGzE;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAGzE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Извлекает пользователя из контекста запроса
|
|
2
|
+
export function getUserFromContext(context) {
|
|
3
|
+
const request = context.switchToHttp().getRequest();
|
|
4
|
+
return request.user;
|
|
5
|
+
}
|
|
6
|
+
// Извлекает IP адрес из контекста запроса
|
|
7
|
+
export function getIpFromContext(context) {
|
|
8
|
+
const request = context.switchToHttp().getRequest();
|
|
9
|
+
return (request.headers["x-forwarded-for"]?.split(",")[0] ||
|
|
10
|
+
request.ip ||
|
|
11
|
+
request.socket.remoteAddress ||
|
|
12
|
+
"unknown");
|
|
13
|
+
}
|
|
14
|
+
// Извлекает User-Agent из контекста запроса
|
|
15
|
+
export function getUserAgentFromContext(context) {
|
|
16
|
+
const request = context.switchToHttp().getRequest();
|
|
17
|
+
return request.headers["user-agent"] || "unknown";
|
|
18
|
+
}
|
|
19
|
+
// Извлекает Request ID из контекста запроса
|
|
20
|
+
export function getRequestIdFromContext(context) {
|
|
21
|
+
const request = context.switchToHttp().getRequest();
|
|
22
|
+
return request.headers["x-request-id"] || request.id || "unknown";
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=context.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.utils.js","sourceRoot":"","sources":["../../src/utils/context.utils.ts"],"names":[],"mappings":"AAGA,8CAA8C;AAC9C,MAAM,UAAU,kBAAkB,CAAC,OAAyB;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAmB,CAAC;IACrE,OAAO,OAAO,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAmB,CAAC;IACrE,OAAO,CACL,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,aAAa;QAC5B,SAAS,CACT,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,uBAAuB,CAAC,OAAyB;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAmB,CAAC;IACrE,OAAQ,OAAO,CAAC,OAAO,CAAC,YAAY,CAAY,IAAI,SAAS,CAAC;AAC/D,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,uBAAuB,CAAC,OAAyB;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAmB,CAAC;IACrE,OAAQ,OAAO,CAAC,OAAO,CAAC,cAAc,CAAY,IAAI,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CorsOptions } from "@nestjs/common/interfaces/external/cors-options.interface.js";
|
|
2
|
+
import type { CorsOptionsConfig } from "../types/cors-types.js";
|
|
3
|
+
export default function createCorsOptions(config?: CorsOptionsConfig): CorsOptions;
|
|
4
|
+
//# sourceMappingURL=cors.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.utils.d.ts","sourceRoot":"","sources":["../../src/utils/cors.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,MAAM,GAAE,iBAAsB,GAAG,WAAW,CA4BrF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Создает опции CORS для NestJS приложения
|
|
2
|
+
export default function createCorsOptions(config = {}) {
|
|
3
|
+
const { origin = true, // Разрешаем все источники по умолчанию
|
|
4
|
+
methods = ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"], allowedHeaders = [
|
|
5
|
+
"Content-Type",
|
|
6
|
+
"Authorization",
|
|
7
|
+
"X-Requested-With",
|
|
8
|
+
"X-Request-ID",
|
|
9
|
+
"X-API-Key",
|
|
10
|
+
], exposedHeaders = ["X-Request-ID"], credentials = true, maxAge = 86400, // 24 часа
|
|
11
|
+
preflightContinue = false, optionsSuccessStatus = 204, } = config;
|
|
12
|
+
return {
|
|
13
|
+
origin,
|
|
14
|
+
methods,
|
|
15
|
+
allowedHeaders,
|
|
16
|
+
exposedHeaders,
|
|
17
|
+
credentials,
|
|
18
|
+
maxAge,
|
|
19
|
+
preflightContinue,
|
|
20
|
+
optionsSuccessStatus,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=cors.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.utils.js","sourceRoot":"","sources":["../../src/utils/cors.utils.ts"],"names":[],"mappings":"AAGA,2CAA2C;AAC3C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,SAA4B,EAAE;IACvE,MAAM,EACL,MAAM,GAAG,IAAI,EAAE,uCAAuC;IACtD,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAC9D,cAAc,GAAG;QAChB,cAAc;QACd,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,WAAW;KACX,EACD,cAAc,GAAG,CAAC,cAAc,CAAC,EACjC,WAAW,GAAG,IAAI,EAClB,MAAM,GAAG,KAAK,EAAE,UAAU;IAC1B,iBAAiB,GAAG,KAAK,EACzB,oBAAoB,GAAG,GAAG,GAC1B,GAAG,MAAM,CAAC;IAEX,OAAO;QACN,MAAM;QACN,OAAO;QACP,cAAc;QACd,cAAc;QACd,WAAW;QACX,MAAM;QACN,iBAAiB;QACjB,oBAAoB;KACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-validator.d.ts","sourceRoot":"","sources":["../../src/utils/env-validator.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,YAAY,EAAE,MAAM,EAAE,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBxB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Joi from "joi";
|
|
2
|
+
import NestCommonError from "../errors/nest-common.error.js";
|
|
3
|
+
// Валидация переменных окружения с использованием Joi
|
|
4
|
+
export default function validateEnv(env, requiredKeys) {
|
|
5
|
+
// Создаем схему для валидации на основе списка обязательных ключей
|
|
6
|
+
const schemaFields = requiredKeys.reduce((acc, key) => {
|
|
7
|
+
acc[key] = Joi.string().required();
|
|
8
|
+
return acc;
|
|
9
|
+
}, {});
|
|
10
|
+
const schema = Joi.object(schemaFields).unknown(true);
|
|
11
|
+
const { error, value } = schema.validate(env, {
|
|
12
|
+
abortEarly: false,
|
|
13
|
+
});
|
|
14
|
+
if (error) {
|
|
15
|
+
const missingKeys = error.details
|
|
16
|
+
.map((detail) => detail.context?.key)
|
|
17
|
+
.filter((key) => Boolean(key));
|
|
18
|
+
throw new NestCommonError(`Missing env vars: ${missingKeys.join(", ")}`);
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=env-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-validator.js","sourceRoot":"","sources":["../../src/utils/env-validator.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAE3D,sDAAsD;AACtD,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,GAA2B,EAC3B,YAAsB;IAEtB,mEAAmE;IACnE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACZ,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACZ,CAAC,EACD,EAAsC,CACtC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC7C,UAAU,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO;aAC/B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/C,MAAM,IAAI,eAAe,CAAC,qBAAqB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MulterFile } from "../types/file-types.js";
|
|
2
|
+
import type { FileValidationOptions, FileValidationResult } from "../types/file-validation-types.js";
|
|
3
|
+
export declare function validateFile(file: MulterFile, options?: FileValidationOptions): FileValidationResult;
|
|
4
|
+
export declare function getFileExtension(filename: string): string;
|
|
5
|
+
export declare function formatFileSize(bytes: number): string;
|
|
6
|
+
//# sourceMappingURL=file.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.utils.d.ts","sourceRoot":"","sources":["../../src/utils/file.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AAGzC,wBAAgB,YAAY,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,qBAA0B,GACjC,oBAAoB,CAoCtB;AAGD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AAGD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQpD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Валидирует файл по заданным опциям
|
|
2
|
+
export function validateFile(file, options = {}) {
|
|
3
|
+
const errors = [];
|
|
4
|
+
const { maxSize = 10 * 1024 * 1024, // 10MB по умолчанию
|
|
5
|
+
allowedMimeTypes, allowedExtensions, } = options;
|
|
6
|
+
// Проверка размера файла
|
|
7
|
+
if (file.size > maxSize) {
|
|
8
|
+
errors.push(`File size exceeds maximum allowed size of ${maxSize} bytes`);
|
|
9
|
+
}
|
|
10
|
+
// Проверка MIME типа
|
|
11
|
+
if (allowedMimeTypes && allowedMimeTypes.length > 0) {
|
|
12
|
+
if (!allowedMimeTypes.includes(file.mimetype)) {
|
|
13
|
+
errors.push(`File type ${file.mimetype} is not allowed. Allowed types: ${allowedMimeTypes.join(", ")}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// Проверка расширения файла
|
|
17
|
+
if (allowedExtensions && allowedExtensions.length) {
|
|
18
|
+
const fileExtension = file.originalname.split(".").pop()?.toLowerCase();
|
|
19
|
+
if (!fileExtension || !allowedExtensions.includes(fileExtension)) {
|
|
20
|
+
errors.push(`File extension ${fileExtension || "unknown"} is not allowed. Allowed extensions: ${allowedExtensions.join(", ")}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
isValid: !errors.length,
|
|
25
|
+
errors,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// Получает расширение файла из имени
|
|
29
|
+
export function getFileExtension(filename) {
|
|
30
|
+
const parts = filename.split(".");
|
|
31
|
+
return parts.length > 1 ? parts[parts.length - 1].toLowerCase() : "";
|
|
32
|
+
}
|
|
33
|
+
// Форматирует размер файла в читаемый формат
|
|
34
|
+
export function formatFileSize(bytes) {
|
|
35
|
+
if (!bytes)
|
|
36
|
+
return "0 Bytes";
|
|
37
|
+
const k = 1024;
|
|
38
|
+
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
|
|
39
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
40
|
+
return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + " " + sizes[i];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=file.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.utils.js","sourceRoot":"","sources":["../../src/utils/file.utils.ts"],"names":[],"mappings":"AAMA,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAC3B,IAAgB,EAChB,UAAiC,EAAE;IAEnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EACL,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,oBAAoB;IAChD,gBAAgB,EAChB,iBAAiB,GACjB,GAAG,OAAO,CAAC;IAEZ,yBAAyB;IACzB,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,6CAA6C,OAAO,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB;IACrB,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CACV,aAAa,IAAI,CAAC,QAAQ,mCAAmC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;QACH,CAAC;IACF,CAAC;IAED,4BAA4B;IAC5B,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;QACxE,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CACV,kBAAkB,aAAa,IAAI,SAAS,wCAAwC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClH,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM;QACvB,MAAM;KACN,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { GetServicePathOptions } from "../types/get-service-path-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Универсальная функция для определения пути в сервисе
|
|
4
|
+
* независимо от точки запуска и режима (dev/production)
|
|
5
|
+
* Работает одинаково в dev (src) и production (dist) режимах,
|
|
6
|
+
* всегда используя пути относительно src/
|
|
7
|
+
*/
|
|
8
|
+
export default function getServicePath(options: GetServicePathOptions): string;
|
|
9
|
+
//# sourceMappingURL=get-service-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-service-path.d.ts","sourceRoot":"","sources":["../../src/utils/get-service-path.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAgE7E"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { existsSync } from "fs";
|
|
2
|
+
import { join, resolve } from "path";
|
|
3
|
+
/**
|
|
4
|
+
* Универсальная функция для определения пути в сервисе
|
|
5
|
+
* независимо от точки запуска и режима (dev/production)
|
|
6
|
+
* Работает одинаково в dev (src) и production (dist) режимах,
|
|
7
|
+
* всегда используя пути относительно src/
|
|
8
|
+
*/
|
|
9
|
+
export default function getServicePath(options) {
|
|
10
|
+
const { serviceName, dirname, pathType, relativePath } = options;
|
|
11
|
+
// Определяем, начинается ли relativePath с "src/"
|
|
12
|
+
const pathWithoutSrc = relativePath.startsWith("src/") ? relativePath.slice(4) : relativePath;
|
|
13
|
+
// Находим корень сервиса (где находится папка src)
|
|
14
|
+
// Идем вверх от dirname до тех пор, пока не найдем папку src
|
|
15
|
+
let currentPath = dirname;
|
|
16
|
+
let serviceRoot = null;
|
|
17
|
+
const maxDepth = 10; // Защита от бесконечного цикла
|
|
18
|
+
for (let i = 0; i < maxDepth; i++) {
|
|
19
|
+
const srcPath = join(currentPath, "src");
|
|
20
|
+
if (existsSync(srcPath)) {
|
|
21
|
+
serviceRoot = currentPath;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
const parentPath = resolve(currentPath, "..");
|
|
25
|
+
if (parentPath === currentPath) {
|
|
26
|
+
// Достигли корня файловой системы
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
currentPath = parentPath;
|
|
30
|
+
}
|
|
31
|
+
// Если не нашли через dirname, пробуем через process.cwd()
|
|
32
|
+
if (!serviceRoot) {
|
|
33
|
+
const cwdSrcPath = join(process.cwd(), "src");
|
|
34
|
+
if (existsSync(cwdSrcPath)) {
|
|
35
|
+
serviceRoot = process.cwd();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Если все еще не нашли, пробуем через корень репозитория
|
|
39
|
+
if (!serviceRoot) {
|
|
40
|
+
const repoRoot = resolve(process.cwd(), "services", serviceName);
|
|
41
|
+
const repoSrcPath = join(repoRoot, "src");
|
|
42
|
+
if (existsSync(repoSrcPath)) {
|
|
43
|
+
serviceRoot = repoRoot;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Если не нашли корень сервиса, выбрасываем ошибку
|
|
47
|
+
if (!serviceRoot) {
|
|
48
|
+
throw new Error(`Не удалось найти корень сервиса "${serviceName}". Проверьте, что папка src существует в сервисе или запустите из корня сервиса.`);
|
|
49
|
+
}
|
|
50
|
+
// Формируем итоговый путь в зависимости от типа
|
|
51
|
+
switch (pathType) {
|
|
52
|
+
case "srcRoot": {
|
|
53
|
+
return serviceRoot;
|
|
54
|
+
}
|
|
55
|
+
case "locales": {
|
|
56
|
+
// Всегда используем src/locales
|
|
57
|
+
return join(serviceRoot, "src", "locales");
|
|
58
|
+
}
|
|
59
|
+
case "file": {
|
|
60
|
+
// Всегда используем src/ для файлов
|
|
61
|
+
return join(serviceRoot, "src", pathWithoutSrc);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=get-service-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-service-path.js","sourceRoot":"","sources":["../../src/utils/get-service-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIrC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAA8B;IACpE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjE,kDAAkD;IAClD,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAE9F,mDAAmD;IACnD,6DAA6D;IAC7D,IAAI,WAAW,GAAG,OAAO,CAAC;IAC1B,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,+BAA+B;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,WAAW,GAAG,WAAW,CAAC;YAC1B,MAAM;QACP,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAChC,kCAAkC;YAClC,MAAM;QACP,CAAC;QACD,WAAW,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,0DAA0D;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,WAAW,GAAG,QAAQ,CAAC;QACxB,CAAC;IACF,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,oCAAoC,WAAW,kFAAkF,CACjI,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,OAAO,WAAW,CAAC;QACpB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,gCAAgC;YAChC,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,oCAAoC;YACpC,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { VersioningOptions } from "@nestjs/common/interfaces/version-options.interface.js";
|
|
2
|
+
import type { VersioningOptionsConfig } from "../types/versioning-types.js";
|
|
3
|
+
export default function createVersioningOptions(config: VersioningOptionsConfig): VersioningOptions;
|
|
4
|
+
//# sourceMappingURL=versioning.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.utils.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,MAAM,EAAE,uBAAuB,GAC7B,iBAAiB,CA8BnB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { VersioningType } from "@nestjs/common";
|
|
2
|
+
// Создает опции версионирования для NestJS приложения
|
|
3
|
+
export default function createVersioningOptions(config) {
|
|
4
|
+
const { type, defaultVersion, header = "X-API-Version", key = "v" } = config;
|
|
5
|
+
if (type === "header") {
|
|
6
|
+
return {
|
|
7
|
+
type: VersioningType.HEADER,
|
|
8
|
+
header,
|
|
9
|
+
defaultVersion,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (type === "uri") {
|
|
13
|
+
return {
|
|
14
|
+
type: VersioningType.URI,
|
|
15
|
+
defaultVersion,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (type === "media-type") {
|
|
19
|
+
return {
|
|
20
|
+
type: VersioningType.MEDIA_TYPE,
|
|
21
|
+
key,
|
|
22
|
+
defaultVersion,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
type: VersioningType.URI,
|
|
27
|
+
defaultVersion,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=versioning.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.utils.js","sourceRoot":"","sources":["../../src/utils/versioning.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,sDAAsD;AACtD,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,MAA+B;IAE/B,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;IAE7E,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO;YACN,IAAI,EAAE,cAAc,CAAC,MAAM;YAC3B,MAAM;YACN,cAAc;SACd,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO;YACN,IAAI,EAAE,cAAc,CAAC,GAAG;YACxB,cAAc;SACd,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO;YACN,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,GAAG;YACH,cAAc;SACd,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,cAAc,CAAC,GAAG;QACxB,cAAc;KACd,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@makebelieve21213-packages/nest-common",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Common NestJS utilities, guards, interceptors, and shared modules for NakolenkeChain microservices",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/src/index.js",
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/src/index.d.ts",
|
|
11
|
+
"import": "./dist/src/index.js",
|
|
12
|
+
"default": "./dist/src/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/makebelieve21213-packages/nest-common.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/makebelieve21213-packages/nest-common#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/makebelieve21213-packages/nest-common/issues"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"nestjs",
|
|
25
|
+
"utilities",
|
|
26
|
+
"guards",
|
|
27
|
+
"interceptors",
|
|
28
|
+
"shared-modules",
|
|
29
|
+
"microservices",
|
|
30
|
+
"typescript"
|
|
31
|
+
],
|
|
32
|
+
"author": "Skryabin Aleksey",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=22.11.0",
|
|
36
|
+
"pnpm": ">=10.18.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@makebelieve21213-packages/logger": "1.0.5",
|
|
40
|
+
"@nestjs/common": "^11.1.6",
|
|
41
|
+
"@nestjs/core": "^11.1.6",
|
|
42
|
+
"@nestjs/microservices": "^11.1.3",
|
|
43
|
+
"@nestjs/websockets": "^11.1.3",
|
|
44
|
+
"@types/express": "^5.0.3",
|
|
45
|
+
"axios": "^1.10.0",
|
|
46
|
+
"class-transformer": "^0.5.1",
|
|
47
|
+
"class-validator": "^0.14.1",
|
|
48
|
+
"express": "^5.1.0",
|
|
49
|
+
"joi": "^17.13.3",
|
|
50
|
+
"rxjs": "^7.8.2"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@jest/globals": "^30.0.5",
|
|
54
|
+
"@nestjs/testing": "^11.1.3",
|
|
55
|
+
"@types/jest": "^29.5.14",
|
|
56
|
+
"@types/node": "^22.10.2",
|
|
57
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
58
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
59
|
+
"eslint": "^9.0.0",
|
|
60
|
+
"eslint-config-prettier": "^10.1.8",
|
|
61
|
+
"eslint-plugin-import": "^2.31.0",
|
|
62
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
63
|
+
"husky": "^9.1.7",
|
|
64
|
+
"jest": "^29.7.0",
|
|
65
|
+
"jiti": "^2.4.0",
|
|
66
|
+
"prettier": "^3.3.0",
|
|
67
|
+
"rimraf": "^6.0.1",
|
|
68
|
+
"ts-jest": "^29.2.5",
|
|
69
|
+
"ts-node": "^10.9.2",
|
|
70
|
+
"tsc-alias": "^1.8.10",
|
|
71
|
+
"tsc-esm-fix": "^3.1.2",
|
|
72
|
+
"tsconfig-paths": "^4.2.0",
|
|
73
|
+
"typescript": "^5.7.2"
|
|
74
|
+
},
|
|
75
|
+
"peerDependencies": {
|
|
76
|
+
"@nestjs/common": "^11.0.0",
|
|
77
|
+
"@nestjs/core": "^11.0.0",
|
|
78
|
+
"@nestjs/microservices": "^11.0.0",
|
|
79
|
+
"@nestjs/websockets": "^11.0.0",
|
|
80
|
+
"rxjs": "^7.0.0"
|
|
81
|
+
},
|
|
82
|
+
"files": [
|
|
83
|
+
"dist"
|
|
84
|
+
],
|
|
85
|
+
"scripts": {
|
|
86
|
+
"build": "pnpm run clean && tsc --build && tsc-alias && tsc-esm-fix",
|
|
87
|
+
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
88
|
+
"test": "jest",
|
|
89
|
+
"test:coverage": "jest --coverage",
|
|
90
|
+
"lint": "tsc --noEmit && eslint \"src/**/*.ts\"",
|
|
91
|
+
"lint:fix": "tsc --noEmit && eslint \"src/**/*.ts\" --fix",
|
|
92
|
+
"format": "prettier --check \"src/**/*.ts\"",
|
|
93
|
+
"format:fix": "prettier --write \"src/**/*.ts\""
|
|
94
|
+
}
|
|
95
|
+
}
|