@biorate/nestjs-tools 1.169.3 → 2.0.1
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/dist/cjs/index.js +0 -1
- package/dist/cjs/interfaces/index.js +0 -1
- package/dist/cjs/interfaces/ports/client.driven.port.js +0 -1
- package/dist/cjs/interfaces/ports/crud.driven.port.js +0 -1
- package/dist/cjs/interfaces/ports/index.js +0 -1
- package/dist/cjs/interfaces/ports/metrics.driven.port.js +0 -1
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/app/application/index.js +0 -1
- package/dist/cjs/src/app/application/ports/index.js +0 -1
- package/dist/cjs/src/app/application/service/client/get-locale.use-case.js +0 -1
- package/dist/cjs/src/app/application/service/client/index.js +0 -1
- package/dist/cjs/src/app/application/service/client/set-locale.use-case.js +0 -1
- package/dist/cjs/src/app/application/service/index.js +0 -1
- package/dist/cjs/src/app/application/service/metrics/get-metrics.use-case.js +0 -1
- package/dist/cjs/src/app/application/service/metrics/index.js +0 -1
- package/dist/cjs/src/app/index.js +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/client.repository.adapter.js +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/index.js +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/metrics.repository.adapter.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/client.controller.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/dto/index.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/dto/locales.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/index.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/metrics.controller.js +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/probe.controller.js +0 -1
- package/dist/cjs/src/app/infrastructure/index.js +0 -1
- package/dist/cjs/src/cors.js +0 -1
- package/dist/cjs/src/decorators/auth.js +1 -5
- package/dist/cjs/src/decorators/index.js +0 -1
- package/dist/cjs/src/decorators/roles.js +0 -1
- package/dist/cjs/src/enums/index.js +0 -1
- package/dist/cjs/src/enums/user.js +0 -1
- package/dist/cjs/src/errors.js +0 -1
- package/dist/cjs/src/filters/all-exception-filter.js +0 -1
- package/dist/cjs/src/filters/index.js +0 -1
- package/dist/cjs/src/http/controllers/index.js +0 -1
- package/dist/cjs/src/http/controllers/locales.js +0 -1
- package/dist/cjs/src/http/controllers/metrics.js +0 -1
- package/dist/cjs/src/http/controllers/probe.js +0 -1
- package/dist/cjs/src/http/dto/index.js +0 -1
- package/dist/cjs/src/http/dto/locales.js +0 -1
- package/dist/cjs/src/http/index.js +0 -1
- package/dist/cjs/src/index.js +0 -1
- package/dist/cjs/src/interceptors/index.js +0 -1
- package/dist/cjs/src/interceptors/routes-interceptor.js +0 -1
- package/dist/cjs/src/interceptors/tracing-interceptor.js +0 -1
- package/dist/cjs/src/middlewares/index.js +0 -1
- package/dist/cjs/src/middlewares/proxy-middleware.js +0 -1
- package/dist/cjs/src/middlewares/request-count-middleware.js +0 -1
- package/dist/cjs/src/middlewares/response-time-middleware.js +0 -1
- package/dist/cjs/src/providers/auth.js +0 -1
- package/dist/cjs/src/providers/index.js +0 -1
- package/dist/cjs/src/providers/roles.js +0 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/interfaces/{index.mjs → index.js} +1 -2
- package/dist/esm/interfaces/ports/client.driven.port.js +1 -0
- package/dist/esm/interfaces/ports/crud.driven.port.js +1 -0
- package/dist/esm/interfaces/ports/index.js +3 -0
- package/dist/esm/interfaces/ports/metrics.driven.port.js +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/src/app/application/index.js +2 -0
- package/dist/esm/src/app/application/ports/index.js +1 -0
- package/dist/esm/src/app/application/service/client/{get-locale.use-case.mjs → get-locale.use-case.js} +0 -1
- package/dist/esm/src/app/application/service/client/index.js +2 -0
- package/dist/esm/src/app/application/service/client/{set-locale.use-case.mjs → set-locale.use-case.js} +0 -1
- package/dist/esm/src/app/application/service/index.js +2 -0
- package/dist/esm/src/app/application/service/metrics/{get-metrics.use-case.mjs → get-metrics.use-case.js} +0 -1
- package/dist/esm/src/app/application/service/metrics/index.js +1 -0
- package/dist/esm/src/app/index.js +2 -0
- package/dist/esm/src/app/infrastructure/adapters/{client.repository.adapter.mjs → client.repository.adapter.js} +0 -1
- package/dist/esm/src/app/infrastructure/adapters/index.js +2 -0
- package/dist/esm/src/app/infrastructure/adapters/{metrics.repository.adapter.mjs → metrics.repository.adapter.js} +0 -1
- package/dist/esm/src/app/infrastructure/controllers/{client.controller.mjs → client.controller.js} +2 -3
- package/dist/esm/src/app/infrastructure/controllers/dto/index.js +1 -0
- package/dist/esm/src/app/infrastructure/controllers/dto/{locales.mjs → locales.js} +0 -1
- package/dist/esm/src/app/infrastructure/controllers/index.js +3 -0
- package/dist/esm/src/app/infrastructure/controllers/{metrics.controller.mjs → metrics.controller.js} +1 -2
- package/dist/esm/src/app/infrastructure/controllers/{probe.controller.mjs → probe.controller.js} +0 -1
- package/dist/esm/src/app/infrastructure/index.js +2 -0
- package/dist/esm/src/{cors.mjs → cors.js} +1 -2
- package/dist/esm/src/decorators/auth.js +4 -0
- package/dist/esm/src/decorators/index.js +2 -0
- package/dist/esm/src/decorators/{roles.mjs → roles.js} +0 -1
- package/dist/esm/src/enums/index.js +1 -0
- package/dist/esm/src/enums/user.js +1 -0
- package/dist/esm/src/{errors.mjs → errors.js} +0 -1
- package/dist/esm/src/filters/{all-exception-filter.mjs → all-exception-filter.js} +1 -2
- package/dist/esm/src/filters/index.js +1 -0
- package/dist/esm/src/http/controllers/index.js +3 -0
- package/dist/esm/src/http/controllers/{locales.mjs → locales.js} +1 -2
- package/dist/esm/src/http/controllers/{metrics.mjs → metrics.js} +0 -1
- package/dist/esm/src/http/controllers/{probe.mjs → probe.js} +0 -1
- package/dist/esm/src/http/dto/index.js +1 -0
- package/dist/esm/src/http/dto/{locales.mjs → locales.js} +0 -1
- package/dist/esm/src/http/index.js +2 -0
- package/dist/esm/src/index.js +10 -0
- package/dist/esm/src/interceptors/index.js +2 -0
- package/dist/esm/src/interceptors/{routes-interceptor.mjs → routes-interceptor.js} +1 -2
- package/dist/esm/src/interceptors/{tracing-interceptor.mjs → tracing-interceptor.js} +0 -1
- package/dist/esm/src/middlewares/index.js +3 -0
- package/dist/esm/src/middlewares/{proxy-middleware.mjs → proxy-middleware.js} +0 -1
- package/dist/esm/src/middlewares/{request-count-middleware.mjs → request-count-middleware.js} +1 -2
- package/dist/esm/src/middlewares/{response-time-middleware.mjs → response-time-middleware.js} +1 -2
- package/dist/esm/src/providers/{auth.mjs → auth.js} +0 -1
- package/dist/esm/src/providers/index.js +2 -0
- package/dist/esm/src/providers/{roles.mjs → roles.js} +2 -3
- package/dist/types/src/decorators/auth.d.ts +1 -1
- package/dist/types/src/interceptors/routes-interceptor.d.ts +2 -1
- package/package.json +36 -11
- package/.nyc_output/93c3df5e-0169-4aae-9ca3-55ec078c9bfc.json +0 -1
- package/.nyc_output/984c0d25-72fc-470d-a9d5-994f63c7773e.json +0 -1
- package/.nyc_output/ed5276f2-893e-4b7c-ab18-7527a9c91a2d.json +0 -1
- package/.nyc_output/processinfo/93c3df5e-0169-4aae-9ca3-55ec078c9bfc.json +0 -1
- package/.nyc_output/processinfo/984c0d25-72fc-470d-a9d5-994f63c7773e.json +0 -1
- package/.nyc_output/processinfo/ed5276f2-893e-4b7c-ab18-7527a9c91a2d.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/CHANGELOG.md +0 -1283
- package/allure-results/06be5133-7300-4999-a964-8e2cf2e8433b-result.json +0 -1
- package/allure-results/13358ab2-596e-474e-a07c-ac82552a4799-result.json +0 -1
- package/allure-results/2b2df749-c29a-4f64-bc48-8c4ecd910c89-result.json +0 -1
- package/allure-results/34b63fac-556c-411f-9d0e-a1a68ed9edb1-result.json +0 -1
- package/allure-results/34d694a2-c986-4688-8d87-2b8917c01d30-result.json +0 -1
- package/allure-results/4e89a985-0880-45f5-90e7-077be33dcec6-result.json +0 -1
- package/allure-results/58f6344b-f83b-42f3-9537-3b0ff06c6a35-result.json +0 -1
- package/allure-results/6a865229-7793-407a-9298-baa21c003fa1-result.json +0 -1
- package/allure-results/7f7c75dd-81da-4db1-afe0-0e147d5fb844-result.json +0 -1
- package/allure-results/86ee0a03-8925-4961-b76a-8040f9613f58-result.json +0 -1
- package/allure-results/87c36229-7158-4566-a465-333d2c54d160-container.json +0 -1
- package/allure-results/ab43746f-f321-46df-8acd-624aa30ce63f-result.json +0 -1
- package/allure-results/ab8ee629-44e0-4da7-8089-4b00f15b705d-container.json +0 -1
- package/allure-results/ac4ee827-c0e5-4349-b6ee-00831f1f4b5c-result.json +0 -1
- package/allure-results/ac57cb14-8fa6-441b-8540-7c4f599a2706-result.json +0 -1
- package/allure-results/b2302e67-971f-4594-ac18-0daaaa489498-result.json +0 -1
- package/allure-results/b62fb1f7-47b7-40d0-b347-7bfbcf15164d-result.json +0 -1
- package/allure-results/bc7dfd81-d002-4d32-8a6f-6b8ab0364543-result.json +0 -1
- package/allure-results/cf1bb5d6-048d-4a58-8cf4-023576d59935-result.json +0 -1
- package/allure-results/e9c54e2f-6cbe-4cd5-89c9-eeee96b34474-result.json +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/clover.xml +0 -418
- package/coverage/coverage-final.json +0 -50
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -416
- package/coverage/interfaces/index.html +0 -116
- package/coverage/interfaces/index.ts.html +0 -118
- package/coverage/interfaces/ports/client.driven.port.ts.html +0 -100
- package/coverage/interfaces/ports/crud.driven.port.ts.html +0 -256
- package/coverage/interfaces/ports/index.html +0 -161
- package/coverage/interfaces/ports/index.ts.html +0 -94
- package/coverage/interfaces/ports/metrics.driven.port.ts.html +0 -94
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/app/application/index.html +0 -116
- package/coverage/src/app/application/index.ts.html +0 -91
- package/coverage/src/app/application/ports/index.html +0 -116
- package/coverage/src/app/application/ports/index.ts.html +0 -88
- package/coverage/src/app/application/service/client/get-locale.use-case.ts.html +0 -124
- package/coverage/src/app/application/service/client/index.html +0 -146
- package/coverage/src/app/application/service/client/index.ts.html +0 -91
- package/coverage/src/app/application/service/client/set-locale.use-case.ts.html +0 -124
- package/coverage/src/app/application/service/index.html +0 -116
- package/coverage/src/app/application/service/index.ts.html +0 -91
- package/coverage/src/app/application/service/metrics/get-metrics.use-case.ts.html +0 -124
- package/coverage/src/app/application/service/metrics/index.html +0 -131
- package/coverage/src/app/application/service/metrics/index.ts.html +0 -88
- package/coverage/src/app/index.html +0 -116
- package/coverage/src/app/index.ts.html +0 -91
- package/coverage/src/app/infrastructure/adapters/client.repository.adapter.ts.html +0 -190
- package/coverage/src/app/infrastructure/adapters/index.html +0 -146
- package/coverage/src/app/infrastructure/adapters/index.ts.html +0 -91
- package/coverage/src/app/infrastructure/adapters/metrics.repository.adapter.ts.html +0 -124
- package/coverage/src/app/infrastructure/controllers/client.controller.ts.html +0 -169
- package/coverage/src/app/infrastructure/controllers/index.html +0 -161
- package/coverage/src/app/infrastructure/controllers/index.ts.html +0 -94
- package/coverage/src/app/infrastructure/controllers/metrics.controller.ts.html +0 -133
- package/coverage/src/app/infrastructure/controllers/probe.controller.ts.html +0 -139
- package/coverage/src/app/infrastructure/index.html +0 -116
- package/coverage/src/app/infrastructure/index.ts.html +0 -94
- package/coverage/src/cors.ts.html +0 -142
- package/coverage/src/decorators/auth.ts.html +0 -112
- package/coverage/src/decorators/index.html +0 -146
- package/coverage/src/decorators/index.ts.html +0 -91
- package/coverage/src/decorators/roles.ts.html +0 -121
- package/coverage/src/enums/index.html +0 -131
- package/coverage/src/enums/index.ts.html +0 -88
- package/coverage/src/enums/user.ts.html +0 -88
- package/coverage/src/errors.ts.html +0 -142
- package/coverage/src/filters/all-exception-filter.ts.html +0 -358
- package/coverage/src/filters/index.html +0 -131
- package/coverage/src/filters/index.ts.html +0 -88
- package/coverage/src/http/controllers/index.html +0 -161
- package/coverage/src/http/controllers/index.ts.html +0 -94
- package/coverage/src/http/controllers/locales.ts.html +0 -322
- package/coverage/src/http/controllers/metrics.ts.html +0 -148
- package/coverage/src/http/controllers/probe.ts.html +0 -163
- package/coverage/src/http/dto/index.html +0 -131
- package/coverage/src/http/dto/index.ts.html +0 -88
- package/coverage/src/http/dto/locales.ts.html +0 -130
- package/coverage/src/http/index.html +0 -116
- package/coverage/src/http/index.ts.html +0 -91
- package/coverage/src/index.html +0 -146
- package/coverage/src/index.ts.html +0 -115
- package/coverage/src/interceptors/index.html +0 -146
- package/coverage/src/interceptors/index.ts.html +0 -91
- package/coverage/src/interceptors/routes-interceptor.ts.html +0 -202
- package/coverage/src/interceptors/tracing-interceptor.ts.html +0 -307
- package/coverage/src/middlewares/index.html +0 -161
- package/coverage/src/middlewares/index.ts.html +0 -94
- package/coverage/src/middlewares/proxy-middleware.ts.html +0 -319
- package/coverage/src/middlewares/request-count-middleware.ts.html +0 -208
- package/coverage/src/middlewares/response-time-middleware.ts.html +0 -304
- package/coverage/src/providers/auth.ts.html +0 -193
- package/coverage/src/providers/index.html +0 -146
- package/coverage/src/providers/index.ts.html +0 -91
- package/coverage/src/providers/roles.ts.html +0 -187
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/interfaces/index.js.map +0 -1
- package/dist/cjs/interfaces/ports/client.driven.port.js.map +0 -1
- package/dist/cjs/interfaces/ports/crud.driven.port.js.map +0 -1
- package/dist/cjs/interfaces/ports/index.js.map +0 -1
- package/dist/cjs/interfaces/ports/metrics.driven.port.js.map +0 -1
- package/dist/cjs/src/app/application/index.js.map +0 -1
- package/dist/cjs/src/app/application/ports/index.js.map +0 -1
- package/dist/cjs/src/app/application/service/client/get-locale.use-case.js.map +0 -1
- package/dist/cjs/src/app/application/service/client/index.js.map +0 -1
- package/dist/cjs/src/app/application/service/client/set-locale.use-case.js.map +0 -1
- package/dist/cjs/src/app/application/service/index.js.map +0 -1
- package/dist/cjs/src/app/application/service/metrics/get-metrics.use-case.js.map +0 -1
- package/dist/cjs/src/app/application/service/metrics/index.js.map +0 -1
- package/dist/cjs/src/app/index.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/client.repository.adapter.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/index.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/adapters/metrics.repository.adapter.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/client.controller.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/dto/index.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/dto/locales.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/index.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/metrics.controller.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/controllers/probe.controller.js.map +0 -1
- package/dist/cjs/src/app/infrastructure/index.js.map +0 -1
- package/dist/cjs/src/cors.js.map +0 -1
- package/dist/cjs/src/decorators/auth.js.map +0 -1
- package/dist/cjs/src/decorators/index.js.map +0 -1
- package/dist/cjs/src/decorators/roles.js.map +0 -1
- package/dist/cjs/src/enums/index.js.map +0 -1
- package/dist/cjs/src/enums/user.js.map +0 -1
- package/dist/cjs/src/errors.js.map +0 -1
- package/dist/cjs/src/filters/all-exception-filter.js.map +0 -1
- package/dist/cjs/src/filters/index.js.map +0 -1
- package/dist/cjs/src/http/controllers/index.js.map +0 -1
- package/dist/cjs/src/http/controllers/locales.js.map +0 -1
- package/dist/cjs/src/http/controllers/metrics.js.map +0 -1
- package/dist/cjs/src/http/controllers/probe.js.map +0 -1
- package/dist/cjs/src/http/dto/index.js.map +0 -1
- package/dist/cjs/src/http/dto/locales.js.map +0 -1
- package/dist/cjs/src/http/index.js.map +0 -1
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/interceptors/index.js.map +0 -1
- package/dist/cjs/src/interceptors/routes-interceptor.js.map +0 -1
- package/dist/cjs/src/interceptors/tracing-interceptor.js.map +0 -1
- package/dist/cjs/src/middlewares/index.js.map +0 -1
- package/dist/cjs/src/middlewares/proxy-middleware.js.map +0 -1
- package/dist/cjs/src/middlewares/request-count-middleware.js.map +0 -1
- package/dist/cjs/src/middlewares/response-time-middleware.js.map +0 -1
- package/dist/cjs/src/providers/auth.js.map +0 -1
- package/dist/cjs/src/providers/index.js.map +0 -1
- package/dist/cjs/src/providers/roles.js.map +0 -1
- package/dist/cjs/tsconfig.build.cjs.tsbuildinfo +0 -1
- package/dist/esm/index.mjs +0 -2
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/interfaces/index.mjs.map +0 -1
- package/dist/esm/interfaces/ports/client.driven.port.mjs +0 -2
- package/dist/esm/interfaces/ports/client.driven.port.mjs.map +0 -1
- package/dist/esm/interfaces/ports/crud.driven.port.mjs +0 -2
- package/dist/esm/interfaces/ports/crud.driven.port.mjs.map +0 -1
- package/dist/esm/interfaces/ports/index.mjs +0 -4
- package/dist/esm/interfaces/ports/index.mjs.map +0 -1
- package/dist/esm/interfaces/ports/metrics.driven.port.mjs +0 -2
- package/dist/esm/interfaces/ports/metrics.driven.port.mjs.map +0 -1
- package/dist/esm/src/app/application/index.mjs +0 -3
- package/dist/esm/src/app/application/index.mjs.map +0 -1
- package/dist/esm/src/app/application/ports/index.mjs +0 -2
- package/dist/esm/src/app/application/ports/index.mjs.map +0 -1
- package/dist/esm/src/app/application/service/client/get-locale.use-case.mjs.map +0 -1
- package/dist/esm/src/app/application/service/client/index.mjs +0 -3
- package/dist/esm/src/app/application/service/client/index.mjs.map +0 -1
- package/dist/esm/src/app/application/service/client/set-locale.use-case.mjs.map +0 -1
- package/dist/esm/src/app/application/service/index.mjs +0 -3
- package/dist/esm/src/app/application/service/index.mjs.map +0 -1
- package/dist/esm/src/app/application/service/metrics/get-metrics.use-case.mjs.map +0 -1
- package/dist/esm/src/app/application/service/metrics/index.mjs +0 -2
- package/dist/esm/src/app/application/service/metrics/index.mjs.map +0 -1
- package/dist/esm/src/app/index.mjs +0 -3
- package/dist/esm/src/app/index.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/adapters/client.repository.adapter.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/adapters/index.mjs +0 -3
- package/dist/esm/src/app/infrastructure/adapters/index.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/adapters/metrics.repository.adapter.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/client.controller.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/dto/index.mjs +0 -2
- package/dist/esm/src/app/infrastructure/controllers/dto/index.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/dto/locales.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/index.mjs +0 -4
- package/dist/esm/src/app/infrastructure/controllers/index.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/metrics.controller.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/controllers/probe.controller.mjs.map +0 -1
- package/dist/esm/src/app/infrastructure/index.mjs +0 -3
- package/dist/esm/src/app/infrastructure/index.mjs.map +0 -1
- package/dist/esm/src/cors.mjs.map +0 -1
- package/dist/esm/src/decorators/auth.mjs +0 -8
- package/dist/esm/src/decorators/auth.mjs.map +0 -1
- package/dist/esm/src/decorators/index.mjs +0 -3
- package/dist/esm/src/decorators/index.mjs.map +0 -1
- package/dist/esm/src/decorators/roles.mjs.map +0 -1
- package/dist/esm/src/enums/index.mjs +0 -2
- package/dist/esm/src/enums/index.mjs.map +0 -1
- package/dist/esm/src/enums/user.mjs +0 -2
- package/dist/esm/src/enums/user.mjs.map +0 -1
- package/dist/esm/src/errors.mjs.map +0 -1
- package/dist/esm/src/filters/all-exception-filter.mjs.map +0 -1
- package/dist/esm/src/filters/index.mjs +0 -2
- package/dist/esm/src/filters/index.mjs.map +0 -1
- package/dist/esm/src/http/controllers/index.mjs +0 -4
- package/dist/esm/src/http/controllers/index.mjs.map +0 -1
- package/dist/esm/src/http/controllers/locales.mjs.map +0 -1
- package/dist/esm/src/http/controllers/metrics.mjs.map +0 -1
- package/dist/esm/src/http/controllers/probe.mjs.map +0 -1
- package/dist/esm/src/http/dto/index.mjs +0 -2
- package/dist/esm/src/http/dto/index.mjs.map +0 -1
- package/dist/esm/src/http/dto/locales.mjs.map +0 -1
- package/dist/esm/src/http/index.mjs +0 -3
- package/dist/esm/src/http/index.mjs.map +0 -1
- package/dist/esm/src/index.mjs +0 -11
- package/dist/esm/src/index.mjs.map +0 -1
- package/dist/esm/src/interceptors/index.mjs +0 -3
- package/dist/esm/src/interceptors/index.mjs.map +0 -1
- package/dist/esm/src/interceptors/routes-interceptor.mjs.map +0 -1
- package/dist/esm/src/interceptors/tracing-interceptor.mjs.map +0 -1
- package/dist/esm/src/middlewares/index.mjs +0 -4
- package/dist/esm/src/middlewares/index.mjs.map +0 -1
- package/dist/esm/src/middlewares/proxy-middleware.mjs.map +0 -1
- package/dist/esm/src/middlewares/request-count-middleware.mjs.map +0 -1
- package/dist/esm/src/middlewares/response-time-middleware.mjs.map +0 -1
- package/dist/esm/src/providers/auth.mjs.map +0 -1
- package/dist/esm/src/providers/index.mjs +0 -3
- package/dist/esm/src/providers/index.mjs.map +0 -1
- package/dist/esm/src/providers/roles.mjs.map +0 -1
- package/dist/esm/tsconfig.build.esm.tsbuildinfo +0 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/interfaces/index.js +0 -24
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/ports/client.driven.port.js +0 -3
- package/dist/interfaces/ports/client.driven.port.js.map +0 -1
- package/dist/interfaces/ports/crud.driven.port.js +0 -3
- package/dist/interfaces/ports/crud.driven.port.js.map +0 -1
- package/dist/interfaces/ports/index.js +0 -20
- package/dist/interfaces/ports/index.js.map +0 -1
- package/dist/interfaces/ports/metrics.driven.port.js +0 -3
- package/dist/interfaces/ports/metrics.driven.port.js.map +0 -1
- package/dist/src/app/application/index.js +0 -19
- package/dist/src/app/application/index.js.map +0 -1
- package/dist/src/app/application/ports/index.js +0 -18
- package/dist/src/app/application/ports/index.js.map +0 -1
- package/dist/src/app/application/service/client/get-locale.use-case.js +0 -28
- package/dist/src/app/application/service/client/get-locale.use-case.js.map +0 -1
- package/dist/src/app/application/service/client/index.js +0 -19
- package/dist/src/app/application/service/client/index.js.map +0 -1
- package/dist/src/app/application/service/client/set-locale.use-case.js +0 -28
- package/dist/src/app/application/service/client/set-locale.use-case.js.map +0 -1
- package/dist/src/app/application/service/index.js +0 -19
- package/dist/src/app/application/service/index.js.map +0 -1
- package/dist/src/app/application/service/metrics/get-metrics.use-case.js +0 -28
- package/dist/src/app/application/service/metrics/get-metrics.use-case.js.map +0 -1
- package/dist/src/app/application/service/metrics/index.js +0 -18
- package/dist/src/app/application/service/metrics/index.js.map +0 -1
- package/dist/src/app/index.js +0 -19
- package/dist/src/app/index.js.map +0 -1
- package/dist/src/app/infrastructure/adapters/client.repository.adapter.js +0 -38
- package/dist/src/app/infrastructure/adapters/client.repository.adapter.js.map +0 -1
- package/dist/src/app/infrastructure/adapters/index.js +0 -19
- package/dist/src/app/infrastructure/adapters/index.js.map +0 -1
- package/dist/src/app/infrastructure/adapters/metrics.repository.adapter.js +0 -28
- package/dist/src/app/infrastructure/adapters/metrics.repository.adapter.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/client.controller.js +0 -56
- package/dist/src/app/infrastructure/controllers/client.controller.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/dto/index.js +0 -18
- package/dist/src/app/infrastructure/controllers/dto/index.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/dto/locales.js +0 -31
- package/dist/src/app/infrastructure/controllers/dto/locales.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/index.js +0 -20
- package/dist/src/app/infrastructure/controllers/index.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/metrics.controller.js +0 -38
- package/dist/src/app/infrastructure/controllers/metrics.controller.js.map +0 -1
- package/dist/src/app/infrastructure/controllers/probe.controller.js +0 -42
- package/dist/src/app/infrastructure/controllers/probe.controller.js.map +0 -1
- package/dist/src/app/infrastructure/index.js +0 -32
- package/dist/src/app/infrastructure/index.js.map +0 -1
- package/dist/src/cors.js +0 -15
- package/dist/src/cors.js.map +0 -1
- package/dist/src/decorators/auth.js +0 -12
- package/dist/src/decorators/auth.js.map +0 -1
- package/dist/src/decorators/index.js +0 -19
- package/dist/src/decorators/index.js.map +0 -1
- package/dist/src/decorators/roles.js +0 -11
- package/dist/src/decorators/roles.js.map +0 -1
- package/dist/src/enums/index.js +0 -18
- package/dist/src/enums/index.js.map +0 -1
- package/dist/src/enums/user.js +0 -6
- package/dist/src/enums/user.js.map +0 -1
- package/dist/src/errors.js +0 -23
- package/dist/src/errors.js.map +0 -1
- package/dist/src/filters/all-exception-filter.js +0 -74
- package/dist/src/filters/all-exception-filter.js.map +0 -1
- package/dist/src/filters/index.js +0 -18
- package/dist/src/filters/index.js.map +0 -1
- package/dist/src/http/controllers/index.js +0 -20
- package/dist/src/http/controllers/index.js.map +0 -1
- package/dist/src/http/controllers/locales.js +0 -83
- package/dist/src/http/controllers/locales.js.map +0 -1
- package/dist/src/http/controllers/metrics.js +0 -39
- package/dist/src/http/controllers/metrics.js.map +0 -1
- package/dist/src/http/controllers/probe.js +0 -44
- package/dist/src/http/controllers/probe.js.map +0 -1
- package/dist/src/http/dto/index.js +0 -18
- package/dist/src/http/dto/index.js.map +0 -1
- package/dist/src/http/dto/locales.js +0 -31
- package/dist/src/http/dto/locales.js.map +0 -1
- package/dist/src/http/index.js +0 -19
- package/dist/src/http/index.js.map +0 -1
- package/dist/src/index.js +0 -27
- package/dist/src/index.js.map +0 -1
- package/dist/src/interceptors/index.js +0 -19
- package/dist/src/interceptors/index.js.map +0 -1
- package/dist/src/interceptors/routes-interceptor.js +0 -33
- package/dist/src/interceptors/routes-interceptor.js.map +0 -1
- package/dist/src/interceptors/tracing-interceptor.js +0 -81
- package/dist/src/interceptors/tracing-interceptor.js.map +0 -1
- package/dist/src/middlewares/index.js +0 -20
- package/dist/src/middlewares/index.js.map +0 -1
- package/dist/src/middlewares/proxy-middleware.js +0 -79
- package/dist/src/middlewares/proxy-middleware.js.map +0 -1
- package/dist/src/middlewares/request-count-middleware.js +0 -55
- package/dist/src/middlewares/request-count-middleware.js.map +0 -1
- package/dist/src/middlewares/response-time-middleware.js +0 -67
- package/dist/src/middlewares/response-time-middleware.js.map +0 -1
- package/dist/src/providers/auth.js +0 -45
- package/dist/src/providers/auth.js.map +0 -1
- package/dist/src/providers/index.js +0 -19
- package/dist/src/providers/index.js.map +0 -1
- package/dist/src/providers/roles.js +0 -40
- package/dist/src/providers/roles.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/tsconfig.build.types.tsbuildinfo +0 -1
- package/index.d.ts +0 -155
- package/interfaces/index.ts +0 -11
- package/interfaces/ports/client.driven.port.ts +0 -5
- package/interfaces/ports/crud.driven.port.ts +0 -57
- package/interfaces/ports/index.ts +0 -3
- package/interfaces/ports/metrics.driven.port.ts +0 -3
- package/src/app/application/index.ts +0 -2
- package/src/app/application/ports/index.ts +0 -1
- package/src/app/application/service/client/get-locale.use-case.ts +0 -13
- package/src/app/application/service/client/index.ts +0 -2
- package/src/app/application/service/client/set-locale.use-case.ts +0 -13
- package/src/app/application/service/index.ts +0 -2
- package/src/app/application/service/metrics/get-metrics.use-case.ts +0 -13
- package/src/app/application/service/metrics/index.ts +0 -1
- package/src/app/domain/.keep +0 -0
- package/src/app/index.ts +0 -2
- package/src/app/infrastructure/adapters/client.repository.adapter.ts +0 -35
- package/src/app/infrastructure/adapters/index.ts +0 -2
- package/src/app/infrastructure/adapters/metrics.repository.adapter.ts +0 -13
- package/src/app/infrastructure/controllers/client.controller.ts +0 -28
- package/src/app/infrastructure/controllers/dto/index.ts +0 -1
- package/src/app/infrastructure/controllers/dto/locales.ts +0 -15
- package/src/app/infrastructure/controllers/index.ts +0 -3
- package/src/app/infrastructure/controllers/metrics.controller.ts +0 -16
- package/src/app/infrastructure/controllers/probe.controller.ts +0 -18
- package/src/app/infrastructure/index.ts +0 -3
- package/src/cors.ts +0 -19
- package/src/decorators/auth.ts +0 -9
- package/src/decorators/index.ts +0 -2
- package/src/decorators/roles.ts +0 -12
- package/src/enums/index.ts +0 -1
- package/src/enums/user.ts +0 -1
- package/src/errors.ts +0 -19
- package/src/filters/all-exception-filter.ts +0 -91
- package/src/filters/index.ts +0 -1
- package/src/http/controllers/index.ts +0 -3
- package/src/http/controllers/locales.ts +0 -79
- package/src/http/controllers/metrics.ts +0 -21
- package/src/http/controllers/probe.ts +0 -26
- package/src/http/dto/index.ts +0 -1
- package/src/http/dto/locales.ts +0 -15
- package/src/http/index.ts +0 -2
- package/src/index.ts +0 -10
- package/src/interceptors/index.ts +0 -2
- package/src/interceptors/routes-interceptor.ts +0 -39
- package/src/interceptors/tracing-interceptor.ts +0 -74
- package/src/middlewares/index.ts +0 -3
- package/src/middlewares/proxy-middleware.ts +0 -78
- package/src/middlewares/request-count-middleware.ts +0 -41
- package/src/middlewares/response-time-middleware.ts +0 -73
- package/src/providers/auth.ts +0 -36
- package/src/providers/index.ts +0 -2
- package/src/providers/roles.ts +0 -34
- package/tests/__snapshots__/index.spec.ts.snap +0 -44
- package/tests/index.spec.ts +0 -61
- package/tsconfig.build.json +0 -5
- package/tsconfig.json +0 -9
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Controller, Get, Post, Param, Body, Header } from '@nestjs/common';
|
|
2
|
-
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
3
|
-
import { path } from '@biorate/tools';
|
|
4
|
-
import { promises as fs, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
5
|
-
import { merge } from 'lodash';
|
|
6
|
-
import { GetLocalesDTO, PostLocalesDTO } from '../dto';
|
|
7
|
-
|
|
8
|
-
@ApiTags('Locales')
|
|
9
|
-
@Controller('locales')
|
|
10
|
-
export class LocalesController {
|
|
11
|
-
protected static async getFile(namespace: string, lang: string) {
|
|
12
|
-
try {
|
|
13
|
-
return JSON.parse(
|
|
14
|
-
await fs.readFile(
|
|
15
|
-
path.create(process.cwd(), 'locales', namespace, `${lang}.json`),
|
|
16
|
-
'utf-8',
|
|
17
|
-
),
|
|
18
|
-
);
|
|
19
|
-
} catch {
|
|
20
|
-
return {};
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
protected static getFileSync(namespace: string, lang: string) {
|
|
25
|
-
try {
|
|
26
|
-
return JSON.parse(
|
|
27
|
-
readFileSync(
|
|
28
|
-
path.create(process.cwd(), 'locales', namespace, `${lang}.json`),
|
|
29
|
-
'utf-8',
|
|
30
|
-
),
|
|
31
|
-
);
|
|
32
|
-
} catch {
|
|
33
|
-
return {};
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
protected static putFile(
|
|
38
|
-
namespace: string,
|
|
39
|
-
lang: string,
|
|
40
|
-
data: Record<string, string>,
|
|
41
|
-
) {
|
|
42
|
-
try {
|
|
43
|
-
const directory = path.create(process.cwd(), 'locales', namespace);
|
|
44
|
-
mkdirSync(directory, { recursive: true });
|
|
45
|
-
writeFileSync(
|
|
46
|
-
path.create(directory, `${lang}.json`),
|
|
47
|
-
JSON.stringify(data, null, ' '),
|
|
48
|
-
'utf-8',
|
|
49
|
-
);
|
|
50
|
-
} catch (e) {
|
|
51
|
-
console.warn(e);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@Get(':lang/:namespace')
|
|
56
|
-
@Header(
|
|
57
|
-
'Deprecation',
|
|
58
|
-
'Use domain controller instead [@biorate/nestjs-tools >= v1.121.0]',
|
|
59
|
-
)
|
|
60
|
-
@ApiOperation({ summary: 'Get locales', deprecated: true })
|
|
61
|
-
protected get(@Param() param: GetLocalesDTO) {
|
|
62
|
-
return LocalesController.getFile(param.namespace, param.lang);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
@Post(':lang/:namespace')
|
|
66
|
-
@Header(
|
|
67
|
-
'Deprecation',
|
|
68
|
-
'Use domain controller instead [@biorate/nestjs-tools >= v1.121.0]',
|
|
69
|
-
)
|
|
70
|
-
@ApiOperation({ summary: 'Put locales', deprecated: true })
|
|
71
|
-
protected async post(
|
|
72
|
-
@Param() param: PostLocalesDTO,
|
|
73
|
-
@Body() body: Record<string, string>,
|
|
74
|
-
) {
|
|
75
|
-
const data = LocalesController.getFileSync(param.namespace, param.lang);
|
|
76
|
-
const result = merge(data, body);
|
|
77
|
-
LocalesController.putFile(param.namespace, param.lang, result);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { inject, Types } from '@biorate/inversion';
|
|
2
|
-
import { Controller, Get, Header } from '@nestjs/common';
|
|
3
|
-
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
4
|
-
import { IPrometheus } from '@biorate/prometheus';
|
|
5
|
-
|
|
6
|
-
@ApiTags('Metrics')
|
|
7
|
-
@Controller('metrics')
|
|
8
|
-
export class MetricsController {
|
|
9
|
-
@inject(Types.Prometheus) protected prometheus: IPrometheus;
|
|
10
|
-
|
|
11
|
-
@Get()
|
|
12
|
-
@Header('content-type', 'text/plain')
|
|
13
|
-
@Header(
|
|
14
|
-
'Deprecation',
|
|
15
|
-
'Use domain controller instead [@biorate/nestjs-tools >= v1.121.0]',
|
|
16
|
-
)
|
|
17
|
-
@ApiOperation({ summary: 'Prometheus metrics hook', deprecated: true })
|
|
18
|
-
protected async metrics() {
|
|
19
|
-
return this.prometheus.registry.metrics();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Controller, Get, Header } from '@nestjs/common';
|
|
2
|
-
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
3
|
-
|
|
4
|
-
@ApiTags('Probe')
|
|
5
|
-
@Controller('probe')
|
|
6
|
-
export class ProbeController {
|
|
7
|
-
@Get('readiness')
|
|
8
|
-
@Header(
|
|
9
|
-
'Deprecation',
|
|
10
|
-
'Use domain controller instead [@biorate/nestjs-tools >= v1.121.0]',
|
|
11
|
-
)
|
|
12
|
-
@ApiOperation({ summary: 'Readiness probe', deprecated: true })
|
|
13
|
-
protected readiness() {
|
|
14
|
-
return 1;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@Get('healthz')
|
|
18
|
-
@Header(
|
|
19
|
-
'Deprecation',
|
|
20
|
-
'Use domain controller instead [@biorate/nestjs-tools >= v1.121.0]',
|
|
21
|
-
)
|
|
22
|
-
@ApiOperation({ summary: 'Healthz probe', deprecated: true })
|
|
23
|
-
protected healthz() {
|
|
24
|
-
return 1;
|
|
25
|
-
}
|
|
26
|
-
}
|
package/src/http/dto/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './locales';
|
package/src/http/dto/locales.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ApiProperty } from '@nestjs/swagger';
|
|
2
|
-
import { IsString } from 'class-validator';
|
|
3
|
-
import { ILocalesDTO } from '../../../interfaces';
|
|
4
|
-
|
|
5
|
-
export class GetLocalesDTO implements ILocalesDTO {
|
|
6
|
-
@IsString()
|
|
7
|
-
@ApiProperty({ type: String, required: true })
|
|
8
|
-
lang: string;
|
|
9
|
-
|
|
10
|
-
@IsString()
|
|
11
|
-
@ApiProperty({ type: String, required: true })
|
|
12
|
-
namespace: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export class PostLocalesDTO extends GetLocalesDTO {}
|
package/src/http/index.ts
DELETED
package/src/index.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './decorators';
|
|
2
|
-
export * from './enums';
|
|
3
|
-
export * from './filters';
|
|
4
|
-
export * from './interceptors';
|
|
5
|
-
export * from './middlewares';
|
|
6
|
-
export * from './providers';
|
|
7
|
-
export * from './errors';
|
|
8
|
-
export * from './http';
|
|
9
|
-
export * from './app';
|
|
10
|
-
export * from './cors';
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { join, normalize } from 'path/posix';
|
|
2
|
-
import { Reflector } from '@nestjs/core';
|
|
3
|
-
import { PATH_METADATA } from '@nestjs/common/constants';
|
|
4
|
-
import { Request } from 'express';
|
|
5
|
-
import {
|
|
6
|
-
Injectable,
|
|
7
|
-
ExecutionContext,
|
|
8
|
-
CallHandler,
|
|
9
|
-
NestInterceptor,
|
|
10
|
-
} from '@nestjs/common';
|
|
11
|
-
|
|
12
|
-
@Injectable()
|
|
13
|
-
export class RoutesInterceptor implements NestInterceptor {
|
|
14
|
-
public static readonly map = new WeakMap<Request, { path: string }>();
|
|
15
|
-
|
|
16
|
-
private readonly reflector = new Reflector();
|
|
17
|
-
|
|
18
|
-
public intercept(context: ExecutionContext, next: CallHandler) {
|
|
19
|
-
const namespaces = this.reflector.get<string | string[]>(
|
|
20
|
-
PATH_METADATA,
|
|
21
|
-
context.getClass(),
|
|
22
|
-
);
|
|
23
|
-
const routes = this.reflector.get<string | string[]>(
|
|
24
|
-
PATH_METADATA,
|
|
25
|
-
context.getHandler(),
|
|
26
|
-
);
|
|
27
|
-
RoutesInterceptor.map.set(context.switchToHttp().getRequest(), {
|
|
28
|
-
path: normalize(
|
|
29
|
-
join(
|
|
30
|
-
'/',
|
|
31
|
-
Array.isArray(namespaces) ? namespaces[0] : namespaces,
|
|
32
|
-
Array.isArray(routes) ? routes[0] : routes,
|
|
33
|
-
'/',
|
|
34
|
-
).slice(0, -1),
|
|
35
|
-
),
|
|
36
|
-
});
|
|
37
|
-
return next.handle();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import stringify from 'json-stringify-safe';
|
|
2
|
-
import { tap, catchError } from 'rxjs';
|
|
3
|
-
import { trace, Span } from '@biorate/opentelemetry';
|
|
4
|
-
import {
|
|
5
|
-
Injectable,
|
|
6
|
-
NestInterceptor,
|
|
7
|
-
ExecutionContext,
|
|
8
|
-
CallHandler,
|
|
9
|
-
} from '@nestjs/common';
|
|
10
|
-
import { inject, Types } from '@biorate/inversion';
|
|
11
|
-
import { IConfig } from '@biorate/config';
|
|
12
|
-
|
|
13
|
-
@Injectable()
|
|
14
|
-
export class TracingInterceptor implements NestInterceptor {
|
|
15
|
-
@inject(Types.Config) protected readonly config: IConfig;
|
|
16
|
-
|
|
17
|
-
protected stringify(data: unknown) {
|
|
18
|
-
return typeof data === 'object' ? stringify(data) : String(data);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
protected excluded(url: string) {
|
|
22
|
-
const excluded = this.config.get<(string | RegExp)[]>(
|
|
23
|
-
'TracingInterceptor.excluded',
|
|
24
|
-
[],
|
|
25
|
-
);
|
|
26
|
-
for (const item of excluded) {
|
|
27
|
-
if (typeof item === 'string' && url.startsWith(item)) return true;
|
|
28
|
-
if (item instanceof RegExp && item.test(url)) return true;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
protected http(span: Span, context: ExecutionContext, next: CallHandler) {
|
|
34
|
-
const host = context.switchToHttp();
|
|
35
|
-
const req = host.getRequest();
|
|
36
|
-
const res = host.getResponse();
|
|
37
|
-
if (this.excluded(req.url)) return next.handle();
|
|
38
|
-
span.setAttribute('incoming.request.url', this.stringify(req.url));
|
|
39
|
-
span.setAttribute('incoming.request.body', this.stringify(req.body));
|
|
40
|
-
span.setAttribute('incoming.request.headers', this.stringify(req.headers));
|
|
41
|
-
span.setAttribute('incoming.request.method', this.stringify(req.method));
|
|
42
|
-
span.setAttribute('incoming.request.params', this.stringify(req.params));
|
|
43
|
-
span.setAttribute('incoming.request.query', this.stringify(req.query));
|
|
44
|
-
return next.handle().pipe(
|
|
45
|
-
catchError((e) => {
|
|
46
|
-
span.setAttribute('incoming.response.headers', this.stringify(res.headers));
|
|
47
|
-
span.setAttribute('incoming.response.statusCode', this.stringify(res.statusCode));
|
|
48
|
-
span.setAttribute('incoming.response.errorCode', this.stringify(e.code));
|
|
49
|
-
span.setAttribute('incoming.response.data', this.stringify(e?.response?.data));
|
|
50
|
-
throw e;
|
|
51
|
-
}),
|
|
52
|
-
tap((data) => {
|
|
53
|
-
span.setAttribute('incoming.response.headers', this.stringify(res.headers));
|
|
54
|
-
span.setAttribute('incoming.response.statusCode', this.stringify(res.statusCode));
|
|
55
|
-
span.setAttribute('incoming.response.data', this.stringify(data));
|
|
56
|
-
}),
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
protected ws(span: Span, context: ExecutionContext, next: CallHandler) {
|
|
61
|
-
return next.handle();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
protected rpc(span: Span, context: ExecutionContext, next: CallHandler) {
|
|
65
|
-
return next.handle();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public intercept(context: ExecutionContext, next: CallHandler) {
|
|
69
|
-
const span = trace.getActiveSpan();
|
|
70
|
-
if (!span) return next.handle();
|
|
71
|
-
const type = context.getType();
|
|
72
|
-
return this[type](span, context, next);
|
|
73
|
-
}
|
|
74
|
-
}
|
package/src/middlewares/index.ts
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import http from 'http';
|
|
2
|
-
import type { ServerOptions } from 'http-proxy';
|
|
3
|
-
import { pick, omit } from 'lodash';
|
|
4
|
-
import { Request, Response } from 'express';
|
|
5
|
-
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
6
|
-
import { Options, RequestHandler } from 'http-proxy-middleware/dist/types';
|
|
7
|
-
import { Injectable } from '@nestjs/common';
|
|
8
|
-
import { counter, Counter, Histogram, Prometheus } from '@biorate/prometheus';
|
|
9
|
-
import { time } from '@biorate/tools';
|
|
10
|
-
import { inject, Types } from '@biorate/inversion';
|
|
11
|
-
import { IConfig } from '@biorate/config';
|
|
12
|
-
|
|
13
|
-
@Injectable()
|
|
14
|
-
export class ProxyPrometheusMiddleware {
|
|
15
|
-
@inject(Types.Config) private config: IConfig;
|
|
16
|
-
|
|
17
|
-
@counter({
|
|
18
|
-
name: 'http_proxy_server_requests_seconds_count',
|
|
19
|
-
help: 'Http proxy server requests count',
|
|
20
|
-
labelNames: ['method', 'uri', 'status'],
|
|
21
|
-
})
|
|
22
|
-
private counter: Counter;
|
|
23
|
-
|
|
24
|
-
private handler: RequestHandler;
|
|
25
|
-
|
|
26
|
-
private time = new WeakMap<Request, { time: () => number }>();
|
|
27
|
-
|
|
28
|
-
private static histogram: Histogram;
|
|
29
|
-
|
|
30
|
-
public static create(options?: Options) {
|
|
31
|
-
return new this(options).handler;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private constructor(options: Options = {}) {
|
|
35
|
-
const { onProxyReq, onProxyRes } = pick(options, 'onProxyReq', 'onProxyRes');
|
|
36
|
-
if (!ProxyPrometheusMiddleware.histogram)
|
|
37
|
-
ProxyPrometheusMiddleware.histogram = new Histogram({
|
|
38
|
-
name: 'http_proxy_server_requests_seconds',
|
|
39
|
-
help: 'Http proxy server requests seconds bucket',
|
|
40
|
-
labelNames: ['method', 'uri', 'status'],
|
|
41
|
-
buckets: this.config.get<number[]>(
|
|
42
|
-
'ProxyPrometheusMiddleware.histogram.buckets',
|
|
43
|
-
[0.005, 0.01, 0.02, 0.05, 0.1, 0.3, 0.5, 1, 2, 3, 5, 10],
|
|
44
|
-
),
|
|
45
|
-
registers: [Prometheus.registry],
|
|
46
|
-
});
|
|
47
|
-
this.handler = createProxyMiddleware({
|
|
48
|
-
...omit(options, 'onProxyReq', 'onProxyRes'),
|
|
49
|
-
onProxyReq: (
|
|
50
|
-
proxyReq: http.ClientRequest,
|
|
51
|
-
req: Request,
|
|
52
|
-
res: Response,
|
|
53
|
-
options: ServerOptions,
|
|
54
|
-
) => {
|
|
55
|
-
this.time.set(req, { time: time.diff() });
|
|
56
|
-
return onProxyReq?.(proxyReq, req, res, options);
|
|
57
|
-
},
|
|
58
|
-
onProxyRes: (proxyRes: http.IncomingMessage, req: Request, res: Response) => {
|
|
59
|
-
const diff = this.time.get(req);
|
|
60
|
-
this.counter
|
|
61
|
-
.labels({
|
|
62
|
-
method: req.method,
|
|
63
|
-
uri: req.baseUrl,
|
|
64
|
-
status: res.statusCode,
|
|
65
|
-
})
|
|
66
|
-
.inc();
|
|
67
|
-
ProxyPrometheusMiddleware.histogram
|
|
68
|
-
.labels({
|
|
69
|
-
method: req.method,
|
|
70
|
-
uri: req.baseUrl,
|
|
71
|
-
status: res.statusCode,
|
|
72
|
-
})
|
|
73
|
-
.observe(time.msTo(diff!.time(), 's'));
|
|
74
|
-
return onProxyRes?.(proxyRes, req, res);
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import onHeaders from 'on-headers';
|
|
3
|
-
import { Injectable, NestMiddleware } from '@nestjs/common';
|
|
4
|
-
import { counter, Counter } from '@biorate/prometheus';
|
|
5
|
-
import { inject, Types } from '@biorate/inversion';
|
|
6
|
-
import { IConfig } from '@biorate/config';
|
|
7
|
-
import { Request, Response, NextFunction } from 'express';
|
|
8
|
-
import { RoutesInterceptor } from '../interceptors';
|
|
9
|
-
|
|
10
|
-
@Injectable()
|
|
11
|
-
export class RequestCountMiddleware implements NestMiddleware {
|
|
12
|
-
@inject(Types.Config) private config: IConfig;
|
|
13
|
-
|
|
14
|
-
@counter({
|
|
15
|
-
name: 'http_server_requests_seconds_count',
|
|
16
|
-
help: 'Http server requests count',
|
|
17
|
-
labelNames: ['method', 'uri', 'status'],
|
|
18
|
-
})
|
|
19
|
-
private counter: Counter;
|
|
20
|
-
|
|
21
|
-
public use(req: Request, res: Response, next: NextFunction) {
|
|
22
|
-
onHeaders(res, () => {
|
|
23
|
-
const route = RoutesInterceptor.map.get(req);
|
|
24
|
-
this.counter
|
|
25
|
-
.labels({
|
|
26
|
-
method: req.method,
|
|
27
|
-
uri:
|
|
28
|
-
route?.path ??
|
|
29
|
-
(this.config.get<boolean>(
|
|
30
|
-
'app.middleware.RequestCountMiddleware.log-base-url',
|
|
31
|
-
false,
|
|
32
|
-
)
|
|
33
|
-
? req.baseUrl || req.originalUrl
|
|
34
|
-
: '/'),
|
|
35
|
-
status: res.statusCode,
|
|
36
|
-
})
|
|
37
|
-
.inc();
|
|
38
|
-
});
|
|
39
|
-
next();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import onHeaders from 'on-headers';
|
|
3
|
-
import { Injectable, NestMiddleware } from '@nestjs/common';
|
|
4
|
-
import { inject, Types } from '@biorate/inversion';
|
|
5
|
-
import { IConfig } from '@biorate/config';
|
|
6
|
-
import { Prometheus, Histogram } from '@biorate/prometheus';
|
|
7
|
-
import { Request, Response, NextFunction } from 'express';
|
|
8
|
-
import { time } from '@biorate/tools';
|
|
9
|
-
import { RoutesInterceptor } from '../interceptors';
|
|
10
|
-
|
|
11
|
-
@Injectable()
|
|
12
|
-
export class ResponseTimeMiddleware implements NestMiddleware {
|
|
13
|
-
@inject(Types.Config) private config: IConfig;
|
|
14
|
-
|
|
15
|
-
private readonly suffix: boolean;
|
|
16
|
-
|
|
17
|
-
private readonly header: string;
|
|
18
|
-
|
|
19
|
-
private readonly digits: number;
|
|
20
|
-
|
|
21
|
-
private static histogram: Histogram;
|
|
22
|
-
|
|
23
|
-
public constructor() {
|
|
24
|
-
this.suffix = this.config.get<boolean>(
|
|
25
|
-
'app.middleware.ResponseTimeMiddleware.suffix',
|
|
26
|
-
true,
|
|
27
|
-
);
|
|
28
|
-
this.header = this.config.get<string>(
|
|
29
|
-
'app.middleware.ResponseTimeMiddleware.header',
|
|
30
|
-
'x-response-time',
|
|
31
|
-
);
|
|
32
|
-
this.digits = this.config.get<number>(
|
|
33
|
-
'app.middleware.ResponseTimeMiddleware.digits',
|
|
34
|
-
3,
|
|
35
|
-
);
|
|
36
|
-
if (!ResponseTimeMiddleware.histogram)
|
|
37
|
-
ResponseTimeMiddleware.histogram = new Histogram({
|
|
38
|
-
name: 'http_server_requests_seconds',
|
|
39
|
-
help: 'Http server requests seconds bucket',
|
|
40
|
-
labelNames: ['method', 'uri', 'status'],
|
|
41
|
-
buckets: this.config.get<number[]>(
|
|
42
|
-
'ResponseTimeMiddleware.histogram.buckets',
|
|
43
|
-
[0.005, 0.01, 0.02, 0.05, 0.1, 0.3, 0.5, 1, 2, 3, 5, 10],
|
|
44
|
-
),
|
|
45
|
-
registers: [Prometheus.registry],
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public use(req: Request, res: Response, next: NextFunction) {
|
|
50
|
-
const diff = time.diff();
|
|
51
|
-
const msTo = time.msTo;
|
|
52
|
-
onHeaders(res, () => {
|
|
53
|
-
const time = diff();
|
|
54
|
-
const route = RoutesInterceptor.map.get(req);
|
|
55
|
-
ResponseTimeMiddleware.histogram
|
|
56
|
-
.labels({
|
|
57
|
-
method: req.method,
|
|
58
|
-
uri:
|
|
59
|
-
route?.path ??
|
|
60
|
-
(this.config.get<boolean>(
|
|
61
|
-
'app.middleware.ResponseTimeMiddleware.log-base-url',
|
|
62
|
-
false,
|
|
63
|
-
)
|
|
64
|
-
? req.baseUrl || req.originalUrl
|
|
65
|
-
: '/'),
|
|
66
|
-
status: res.statusCode,
|
|
67
|
-
})
|
|
68
|
-
.observe(msTo(time, 's'));
|
|
69
|
-
res.setHeader(this.header, time.toFixed(this.digits) + (this.suffix ? 'ms' : ''));
|
|
70
|
-
});
|
|
71
|
-
next();
|
|
72
|
-
}
|
|
73
|
-
}
|
package/src/providers/auth.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { inject, Types } from '@biorate/inversion';
|
|
2
|
-
import { IConfig } from '@biorate/config';
|
|
3
|
-
import {
|
|
4
|
-
Injectable,
|
|
5
|
-
CanActivate,
|
|
6
|
-
ExecutionContext,
|
|
7
|
-
UnauthorizedException,
|
|
8
|
-
} from '@nestjs/common';
|
|
9
|
-
|
|
10
|
-
@Injectable()
|
|
11
|
-
export class AuthGuardProvider implements CanActivate {
|
|
12
|
-
@inject(Types.Config) private config: IConfig;
|
|
13
|
-
|
|
14
|
-
public canActivate(context: ExecutionContext): boolean {
|
|
15
|
-
const request = context.switchToHttp().getRequest();
|
|
16
|
-
const config = this.config.get<{ [key: string]: string } | null>(
|
|
17
|
-
'app.auth.basic',
|
|
18
|
-
null,
|
|
19
|
-
);
|
|
20
|
-
if (!config) return true;
|
|
21
|
-
let username: string, password: string;
|
|
22
|
-
try {
|
|
23
|
-
[username, password] = Buffer.from(
|
|
24
|
-
request.headers.authorization.replace('Basic ', ''),
|
|
25
|
-
'base64',
|
|
26
|
-
)
|
|
27
|
-
.toString('utf-8')
|
|
28
|
-
.split(':');
|
|
29
|
-
} catch {
|
|
30
|
-
throw new UnauthorizedException();
|
|
31
|
-
}
|
|
32
|
-
if (!username || !password) throw new UnauthorizedException();
|
|
33
|
-
if (config[username] === password) return true;
|
|
34
|
-
throw new UnauthorizedException();
|
|
35
|
-
}
|
|
36
|
-
}
|
package/src/providers/index.ts
DELETED
package/src/providers/roles.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
|
|
2
|
-
import { Reflector } from '@nestjs/core';
|
|
3
|
-
import { ROLES_KEY } from '../decorators';
|
|
4
|
-
import { UserRoles } from '../enums';
|
|
5
|
-
|
|
6
|
-
@Injectable()
|
|
7
|
-
export class RolesGuardProvider implements CanActivate {
|
|
8
|
-
constructor(private reflector: Reflector) {}
|
|
9
|
-
/**
|
|
10
|
-
* @description - This method for override
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const request = context.switchToHttp().getRequest();
|
|
14
|
-
* const { login, sessionId } = request.cookies;
|
|
15
|
-
* if (!login || !sessionId) throw new AuthorizationNotAuthorizedError();
|
|
16
|
-
* // get user from db, or somewhere else
|
|
17
|
-
* if (!user) throw new AuthorizationNotAuthorizedError();
|
|
18
|
-
* return user.role;
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
protected async getUser(context: ExecutionContext) {
|
|
22
|
-
return { role: UserRoles.Basic | UserRoles.Admin };
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public async canActivate(context: ExecutionContext) {
|
|
26
|
-
const roles = this.reflector.getAllAndOverride<number>(ROLES_KEY, [
|
|
27
|
-
context.getHandler(),
|
|
28
|
-
context.getClass(),
|
|
29
|
-
]);
|
|
30
|
-
if (roles === undefined) return true;
|
|
31
|
-
const user = await this.getUser(context);
|
|
32
|
-
return (user.role & roles) === roles;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
-
|
|
3
|
-
exports[`nestjs-tools > AllExceptionsFilter 1`] = `[Function]`;
|
|
4
|
-
|
|
5
|
-
exports[`nestjs-tools > AuthBasic 1`] = `[Function]`;
|
|
6
|
-
|
|
7
|
-
exports[`nestjs-tools > AuthGuardProvider 1`] = `[Function]`;
|
|
8
|
-
|
|
9
|
-
exports[`nestjs-tools > GetLocalesDTO 1`] = `[Function]`;
|
|
10
|
-
|
|
11
|
-
exports[`nestjs-tools > LocalesController 1`] = `[Function]`;
|
|
12
|
-
|
|
13
|
-
exports[`nestjs-tools > MetricsController 1`] = `[Function]`;
|
|
14
|
-
|
|
15
|
-
exports[`nestjs-tools > PostLocalesDTO 1`] = `[Function]`;
|
|
16
|
-
|
|
17
|
-
exports[`nestjs-tools > ProbeController 1`] = `[Function]`;
|
|
18
|
-
|
|
19
|
-
exports[`nestjs-tools > ProxyPrometheusMiddleware 1`] = `[Function]`;
|
|
20
|
-
|
|
21
|
-
exports[`nestjs-tools > ROLES_KEY 1`] = `Symbol(RolesKey)`;
|
|
22
|
-
|
|
23
|
-
exports[`nestjs-tools > RequestCountMiddleware 1`] = `[Function]`;
|
|
24
|
-
|
|
25
|
-
exports[`nestjs-tools > ResponseTimeMiddleware 1`] = `[Function]`;
|
|
26
|
-
|
|
27
|
-
exports[`nestjs-tools > Roles 1`] = `[Function]`;
|
|
28
|
-
|
|
29
|
-
exports[`nestjs-tools > RolesGuardProvider 1`] = `[Function]`;
|
|
30
|
-
|
|
31
|
-
exports[`nestjs-tools > RoutesInterceptor 1`] = `[Function]`;
|
|
32
|
-
|
|
33
|
-
exports[`nestjs-tools > TracingInterceptor 1`] = `[Function]`;
|
|
34
|
-
|
|
35
|
-
exports[`nestjs-tools > UnsupportedProtocolError 1`] = `[Function]`;
|
|
36
|
-
|
|
37
|
-
exports[`nestjs-tools > UserRoles 1`] = `
|
|
38
|
-
{
|
|
39
|
-
"1": "Basic",
|
|
40
|
-
"2": "Admin",
|
|
41
|
-
"Admin": 2,
|
|
42
|
-
"Basic": 1,
|
|
43
|
-
}
|
|
44
|
-
`;
|
package/tests/index.spec.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { expect } from 'vitest';
|
|
2
|
-
import {
|
|
3
|
-
AuthBasic,
|
|
4
|
-
Roles,
|
|
5
|
-
UserRoles,
|
|
6
|
-
AllExceptionsFilter,
|
|
7
|
-
RoutesInterceptor,
|
|
8
|
-
ProxyPrometheusMiddleware,
|
|
9
|
-
RequestCountMiddleware,
|
|
10
|
-
ResponseTimeMiddleware,
|
|
11
|
-
AuthGuardProvider,
|
|
12
|
-
RolesGuardProvider,
|
|
13
|
-
LocalesController,
|
|
14
|
-
MetricsController,
|
|
15
|
-
ProbeController,
|
|
16
|
-
PostLocalesDTO,
|
|
17
|
-
GetLocalesDTO,
|
|
18
|
-
UnsupportedProtocolError,
|
|
19
|
-
TracingInterceptor,
|
|
20
|
-
ROLES_KEY,
|
|
21
|
-
} from '../src';
|
|
22
|
-
|
|
23
|
-
describe('nestjs-tools', () => {
|
|
24
|
-
it('AuthBasic', () => expect(AuthBasic).toMatchSnapshot());
|
|
25
|
-
|
|
26
|
-
it('Roles', () => expect(Roles).toMatchSnapshot());
|
|
27
|
-
|
|
28
|
-
it('UserRoles', () => expect(UserRoles).toMatchSnapshot());
|
|
29
|
-
|
|
30
|
-
it('AllExceptionsFilter', () => expect(AllExceptionsFilter).toMatchSnapshot());
|
|
31
|
-
|
|
32
|
-
it('RoutesInterceptor', () => expect(RoutesInterceptor).toMatchSnapshot());
|
|
33
|
-
|
|
34
|
-
it('ProxyPrometheusMiddleware', () =>
|
|
35
|
-
expect(ProxyPrometheusMiddleware).toMatchSnapshot());
|
|
36
|
-
|
|
37
|
-
it('RequestCountMiddleware', () => expect(RequestCountMiddleware).toMatchSnapshot());
|
|
38
|
-
|
|
39
|
-
it('ResponseTimeMiddleware', () => expect(ResponseTimeMiddleware).toMatchSnapshot());
|
|
40
|
-
|
|
41
|
-
it('AuthGuardProvider', () => expect(AuthGuardProvider).toMatchSnapshot());
|
|
42
|
-
|
|
43
|
-
it('RolesGuardProvider', () => expect(RolesGuardProvider).toMatchSnapshot());
|
|
44
|
-
|
|
45
|
-
it('LocalesController', () => expect(LocalesController).toMatchSnapshot());
|
|
46
|
-
|
|
47
|
-
it('MetricsController', () => expect(MetricsController).toMatchSnapshot());
|
|
48
|
-
|
|
49
|
-
it('ProbeController', () => expect(ProbeController).toMatchSnapshot());
|
|
50
|
-
|
|
51
|
-
it('PostLocalesDTO', () => expect(PostLocalesDTO).toMatchSnapshot());
|
|
52
|
-
|
|
53
|
-
it('GetLocalesDTO', () => expect(GetLocalesDTO).toMatchSnapshot());
|
|
54
|
-
|
|
55
|
-
it('UnsupportedProtocolError', () =>
|
|
56
|
-
expect(UnsupportedProtocolError).toMatchSnapshot());
|
|
57
|
-
|
|
58
|
-
it('TracingInterceptor', () => expect(TracingInterceptor).toMatchSnapshot());
|
|
59
|
-
|
|
60
|
-
it('ROLES_KEY', () => expect(ROLES_KEY).toMatchSnapshot());
|
|
61
|
-
});
|
package/tsconfig.build.json
DELETED