@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.
Files changed (513) hide show
  1. package/dist/cjs/index.js +0 -1
  2. package/dist/cjs/interfaces/index.js +0 -1
  3. package/dist/cjs/interfaces/ports/client.driven.port.js +0 -1
  4. package/dist/cjs/interfaces/ports/crud.driven.port.js +0 -1
  5. package/dist/cjs/interfaces/ports/index.js +0 -1
  6. package/dist/cjs/interfaces/ports/metrics.driven.port.js +0 -1
  7. package/dist/cjs/package.json +3 -0
  8. package/dist/cjs/src/app/application/index.js +0 -1
  9. package/dist/cjs/src/app/application/ports/index.js +0 -1
  10. package/dist/cjs/src/app/application/service/client/get-locale.use-case.js +0 -1
  11. package/dist/cjs/src/app/application/service/client/index.js +0 -1
  12. package/dist/cjs/src/app/application/service/client/set-locale.use-case.js +0 -1
  13. package/dist/cjs/src/app/application/service/index.js +0 -1
  14. package/dist/cjs/src/app/application/service/metrics/get-metrics.use-case.js +0 -1
  15. package/dist/cjs/src/app/application/service/metrics/index.js +0 -1
  16. package/dist/cjs/src/app/index.js +0 -1
  17. package/dist/cjs/src/app/infrastructure/adapters/client.repository.adapter.js +0 -1
  18. package/dist/cjs/src/app/infrastructure/adapters/index.js +0 -1
  19. package/dist/cjs/src/app/infrastructure/adapters/metrics.repository.adapter.js +0 -1
  20. package/dist/cjs/src/app/infrastructure/controllers/client.controller.js +0 -1
  21. package/dist/cjs/src/app/infrastructure/controllers/dto/index.js +0 -1
  22. package/dist/cjs/src/app/infrastructure/controllers/dto/locales.js +0 -1
  23. package/dist/cjs/src/app/infrastructure/controllers/index.js +0 -1
  24. package/dist/cjs/src/app/infrastructure/controllers/metrics.controller.js +0 -1
  25. package/dist/cjs/src/app/infrastructure/controllers/probe.controller.js +0 -1
  26. package/dist/cjs/src/app/infrastructure/index.js +0 -1
  27. package/dist/cjs/src/cors.js +0 -1
  28. package/dist/cjs/src/decorators/auth.js +1 -5
  29. package/dist/cjs/src/decorators/index.js +0 -1
  30. package/dist/cjs/src/decorators/roles.js +0 -1
  31. package/dist/cjs/src/enums/index.js +0 -1
  32. package/dist/cjs/src/enums/user.js +0 -1
  33. package/dist/cjs/src/errors.js +0 -1
  34. package/dist/cjs/src/filters/all-exception-filter.js +0 -1
  35. package/dist/cjs/src/filters/index.js +0 -1
  36. package/dist/cjs/src/http/controllers/index.js +0 -1
  37. package/dist/cjs/src/http/controllers/locales.js +0 -1
  38. package/dist/cjs/src/http/controllers/metrics.js +0 -1
  39. package/dist/cjs/src/http/controllers/probe.js +0 -1
  40. package/dist/cjs/src/http/dto/index.js +0 -1
  41. package/dist/cjs/src/http/dto/locales.js +0 -1
  42. package/dist/cjs/src/http/index.js +0 -1
  43. package/dist/cjs/src/index.js +0 -1
  44. package/dist/cjs/src/interceptors/index.js +0 -1
  45. package/dist/cjs/src/interceptors/routes-interceptor.js +0 -1
  46. package/dist/cjs/src/interceptors/tracing-interceptor.js +0 -1
  47. package/dist/cjs/src/middlewares/index.js +0 -1
  48. package/dist/cjs/src/middlewares/proxy-middleware.js +0 -1
  49. package/dist/cjs/src/middlewares/request-count-middleware.js +0 -1
  50. package/dist/cjs/src/middlewares/response-time-middleware.js +0 -1
  51. package/dist/cjs/src/providers/auth.js +0 -1
  52. package/dist/cjs/src/providers/index.js +0 -1
  53. package/dist/cjs/src/providers/roles.js +0 -1
  54. package/dist/esm/index.js +1 -0
  55. package/dist/esm/interfaces/{index.mjs → index.js} +1 -2
  56. package/dist/esm/interfaces/ports/client.driven.port.js +1 -0
  57. package/dist/esm/interfaces/ports/crud.driven.port.js +1 -0
  58. package/dist/esm/interfaces/ports/index.js +3 -0
  59. package/dist/esm/interfaces/ports/metrics.driven.port.js +1 -0
  60. package/dist/esm/package.json +3 -0
  61. package/dist/esm/src/app/application/index.js +2 -0
  62. package/dist/esm/src/app/application/ports/index.js +1 -0
  63. package/dist/esm/src/app/application/service/client/{get-locale.use-case.mjs → get-locale.use-case.js} +0 -1
  64. package/dist/esm/src/app/application/service/client/index.js +2 -0
  65. package/dist/esm/src/app/application/service/client/{set-locale.use-case.mjs → set-locale.use-case.js} +0 -1
  66. package/dist/esm/src/app/application/service/index.js +2 -0
  67. package/dist/esm/src/app/application/service/metrics/{get-metrics.use-case.mjs → get-metrics.use-case.js} +0 -1
  68. package/dist/esm/src/app/application/service/metrics/index.js +1 -0
  69. package/dist/esm/src/app/index.js +2 -0
  70. package/dist/esm/src/app/infrastructure/adapters/{client.repository.adapter.mjs → client.repository.adapter.js} +0 -1
  71. package/dist/esm/src/app/infrastructure/adapters/index.js +2 -0
  72. package/dist/esm/src/app/infrastructure/adapters/{metrics.repository.adapter.mjs → metrics.repository.adapter.js} +0 -1
  73. package/dist/esm/src/app/infrastructure/controllers/{client.controller.mjs → client.controller.js} +2 -3
  74. package/dist/esm/src/app/infrastructure/controllers/dto/index.js +1 -0
  75. package/dist/esm/src/app/infrastructure/controllers/dto/{locales.mjs → locales.js} +0 -1
  76. package/dist/esm/src/app/infrastructure/controllers/index.js +3 -0
  77. package/dist/esm/src/app/infrastructure/controllers/{metrics.controller.mjs → metrics.controller.js} +1 -2
  78. package/dist/esm/src/app/infrastructure/controllers/{probe.controller.mjs → probe.controller.js} +0 -1
  79. package/dist/esm/src/app/infrastructure/index.js +2 -0
  80. package/dist/esm/src/{cors.mjs → cors.js} +1 -2
  81. package/dist/esm/src/decorators/auth.js +4 -0
  82. package/dist/esm/src/decorators/index.js +2 -0
  83. package/dist/esm/src/decorators/{roles.mjs → roles.js} +0 -1
  84. package/dist/esm/src/enums/index.js +1 -0
  85. package/dist/esm/src/enums/user.js +1 -0
  86. package/dist/esm/src/{errors.mjs → errors.js} +0 -1
  87. package/dist/esm/src/filters/{all-exception-filter.mjs → all-exception-filter.js} +1 -2
  88. package/dist/esm/src/filters/index.js +1 -0
  89. package/dist/esm/src/http/controllers/index.js +3 -0
  90. package/dist/esm/src/http/controllers/{locales.mjs → locales.js} +1 -2
  91. package/dist/esm/src/http/controllers/{metrics.mjs → metrics.js} +0 -1
  92. package/dist/esm/src/http/controllers/{probe.mjs → probe.js} +0 -1
  93. package/dist/esm/src/http/dto/index.js +1 -0
  94. package/dist/esm/src/http/dto/{locales.mjs → locales.js} +0 -1
  95. package/dist/esm/src/http/index.js +2 -0
  96. package/dist/esm/src/index.js +10 -0
  97. package/dist/esm/src/interceptors/index.js +2 -0
  98. package/dist/esm/src/interceptors/{routes-interceptor.mjs → routes-interceptor.js} +1 -2
  99. package/dist/esm/src/interceptors/{tracing-interceptor.mjs → tracing-interceptor.js} +0 -1
  100. package/dist/esm/src/middlewares/index.js +3 -0
  101. package/dist/esm/src/middlewares/{proxy-middleware.mjs → proxy-middleware.js} +0 -1
  102. package/dist/esm/src/middlewares/{request-count-middleware.mjs → request-count-middleware.js} +1 -2
  103. package/dist/esm/src/middlewares/{response-time-middleware.mjs → response-time-middleware.js} +1 -2
  104. package/dist/esm/src/providers/{auth.mjs → auth.js} +0 -1
  105. package/dist/esm/src/providers/index.js +2 -0
  106. package/dist/esm/src/providers/{roles.mjs → roles.js} +2 -3
  107. package/dist/types/src/decorators/auth.d.ts +1 -1
  108. package/dist/types/src/interceptors/routes-interceptor.d.ts +2 -1
  109. package/package.json +36 -11
  110. package/.nyc_output/93c3df5e-0169-4aae-9ca3-55ec078c9bfc.json +0 -1
  111. package/.nyc_output/984c0d25-72fc-470d-a9d5-994f63c7773e.json +0 -1
  112. package/.nyc_output/ed5276f2-893e-4b7c-ab18-7527a9c91a2d.json +0 -1
  113. package/.nyc_output/processinfo/93c3df5e-0169-4aae-9ca3-55ec078c9bfc.json +0 -1
  114. package/.nyc_output/processinfo/984c0d25-72fc-470d-a9d5-994f63c7773e.json +0 -1
  115. package/.nyc_output/processinfo/ed5276f2-893e-4b7c-ab18-7527a9c91a2d.json +0 -1
  116. package/.nyc_output/processinfo/index.json +0 -1
  117. package/CHANGELOG.md +0 -1283
  118. package/allure-results/06be5133-7300-4999-a964-8e2cf2e8433b-result.json +0 -1
  119. package/allure-results/13358ab2-596e-474e-a07c-ac82552a4799-result.json +0 -1
  120. package/allure-results/2b2df749-c29a-4f64-bc48-8c4ecd910c89-result.json +0 -1
  121. package/allure-results/34b63fac-556c-411f-9d0e-a1a68ed9edb1-result.json +0 -1
  122. package/allure-results/34d694a2-c986-4688-8d87-2b8917c01d30-result.json +0 -1
  123. package/allure-results/4e89a985-0880-45f5-90e7-077be33dcec6-result.json +0 -1
  124. package/allure-results/58f6344b-f83b-42f3-9537-3b0ff06c6a35-result.json +0 -1
  125. package/allure-results/6a865229-7793-407a-9298-baa21c003fa1-result.json +0 -1
  126. package/allure-results/7f7c75dd-81da-4db1-afe0-0e147d5fb844-result.json +0 -1
  127. package/allure-results/86ee0a03-8925-4961-b76a-8040f9613f58-result.json +0 -1
  128. package/allure-results/87c36229-7158-4566-a465-333d2c54d160-container.json +0 -1
  129. package/allure-results/ab43746f-f321-46df-8acd-624aa30ce63f-result.json +0 -1
  130. package/allure-results/ab8ee629-44e0-4da7-8089-4b00f15b705d-container.json +0 -1
  131. package/allure-results/ac4ee827-c0e5-4349-b6ee-00831f1f4b5c-result.json +0 -1
  132. package/allure-results/ac57cb14-8fa6-441b-8540-7c4f599a2706-result.json +0 -1
  133. package/allure-results/b2302e67-971f-4594-ac18-0daaaa489498-result.json +0 -1
  134. package/allure-results/b62fb1f7-47b7-40d0-b347-7bfbcf15164d-result.json +0 -1
  135. package/allure-results/bc7dfd81-d002-4d32-8a6f-6b8ab0364543-result.json +0 -1
  136. package/allure-results/cf1bb5d6-048d-4a58-8cf4-023576d59935-result.json +0 -1
  137. package/allure-results/e9c54e2f-6cbe-4cd5-89c9-eeee96b34474-result.json +0 -1
  138. package/coverage/base.css +0 -224
  139. package/coverage/block-navigation.js +0 -87
  140. package/coverage/clover.xml +0 -418
  141. package/coverage/coverage-final.json +0 -50
  142. package/coverage/favicon.png +0 -0
  143. package/coverage/index.html +0 -416
  144. package/coverage/interfaces/index.html +0 -116
  145. package/coverage/interfaces/index.ts.html +0 -118
  146. package/coverage/interfaces/ports/client.driven.port.ts.html +0 -100
  147. package/coverage/interfaces/ports/crud.driven.port.ts.html +0 -256
  148. package/coverage/interfaces/ports/index.html +0 -161
  149. package/coverage/interfaces/ports/index.ts.html +0 -94
  150. package/coverage/interfaces/ports/metrics.driven.port.ts.html +0 -94
  151. package/coverage/prettify.css +0 -1
  152. package/coverage/prettify.js +0 -2
  153. package/coverage/sort-arrow-sprite.png +0 -0
  154. package/coverage/sorter.js +0 -210
  155. package/coverage/src/app/application/index.html +0 -116
  156. package/coverage/src/app/application/index.ts.html +0 -91
  157. package/coverage/src/app/application/ports/index.html +0 -116
  158. package/coverage/src/app/application/ports/index.ts.html +0 -88
  159. package/coverage/src/app/application/service/client/get-locale.use-case.ts.html +0 -124
  160. package/coverage/src/app/application/service/client/index.html +0 -146
  161. package/coverage/src/app/application/service/client/index.ts.html +0 -91
  162. package/coverage/src/app/application/service/client/set-locale.use-case.ts.html +0 -124
  163. package/coverage/src/app/application/service/index.html +0 -116
  164. package/coverage/src/app/application/service/index.ts.html +0 -91
  165. package/coverage/src/app/application/service/metrics/get-metrics.use-case.ts.html +0 -124
  166. package/coverage/src/app/application/service/metrics/index.html +0 -131
  167. package/coverage/src/app/application/service/metrics/index.ts.html +0 -88
  168. package/coverage/src/app/index.html +0 -116
  169. package/coverage/src/app/index.ts.html +0 -91
  170. package/coverage/src/app/infrastructure/adapters/client.repository.adapter.ts.html +0 -190
  171. package/coverage/src/app/infrastructure/adapters/index.html +0 -146
  172. package/coverage/src/app/infrastructure/adapters/index.ts.html +0 -91
  173. package/coverage/src/app/infrastructure/adapters/metrics.repository.adapter.ts.html +0 -124
  174. package/coverage/src/app/infrastructure/controllers/client.controller.ts.html +0 -169
  175. package/coverage/src/app/infrastructure/controllers/index.html +0 -161
  176. package/coverage/src/app/infrastructure/controllers/index.ts.html +0 -94
  177. package/coverage/src/app/infrastructure/controllers/metrics.controller.ts.html +0 -133
  178. package/coverage/src/app/infrastructure/controllers/probe.controller.ts.html +0 -139
  179. package/coverage/src/app/infrastructure/index.html +0 -116
  180. package/coverage/src/app/infrastructure/index.ts.html +0 -94
  181. package/coverage/src/cors.ts.html +0 -142
  182. package/coverage/src/decorators/auth.ts.html +0 -112
  183. package/coverage/src/decorators/index.html +0 -146
  184. package/coverage/src/decorators/index.ts.html +0 -91
  185. package/coverage/src/decorators/roles.ts.html +0 -121
  186. package/coverage/src/enums/index.html +0 -131
  187. package/coverage/src/enums/index.ts.html +0 -88
  188. package/coverage/src/enums/user.ts.html +0 -88
  189. package/coverage/src/errors.ts.html +0 -142
  190. package/coverage/src/filters/all-exception-filter.ts.html +0 -358
  191. package/coverage/src/filters/index.html +0 -131
  192. package/coverage/src/filters/index.ts.html +0 -88
  193. package/coverage/src/http/controllers/index.html +0 -161
  194. package/coverage/src/http/controllers/index.ts.html +0 -94
  195. package/coverage/src/http/controllers/locales.ts.html +0 -322
  196. package/coverage/src/http/controllers/metrics.ts.html +0 -148
  197. package/coverage/src/http/controllers/probe.ts.html +0 -163
  198. package/coverage/src/http/dto/index.html +0 -131
  199. package/coverage/src/http/dto/index.ts.html +0 -88
  200. package/coverage/src/http/dto/locales.ts.html +0 -130
  201. package/coverage/src/http/index.html +0 -116
  202. package/coverage/src/http/index.ts.html +0 -91
  203. package/coverage/src/index.html +0 -146
  204. package/coverage/src/index.ts.html +0 -115
  205. package/coverage/src/interceptors/index.html +0 -146
  206. package/coverage/src/interceptors/index.ts.html +0 -91
  207. package/coverage/src/interceptors/routes-interceptor.ts.html +0 -202
  208. package/coverage/src/interceptors/tracing-interceptor.ts.html +0 -307
  209. package/coverage/src/middlewares/index.html +0 -161
  210. package/coverage/src/middlewares/index.ts.html +0 -94
  211. package/coverage/src/middlewares/proxy-middleware.ts.html +0 -319
  212. package/coverage/src/middlewares/request-count-middleware.ts.html +0 -208
  213. package/coverage/src/middlewares/response-time-middleware.ts.html +0 -304
  214. package/coverage/src/providers/auth.ts.html +0 -193
  215. package/coverage/src/providers/index.html +0 -146
  216. package/coverage/src/providers/index.ts.html +0 -91
  217. package/coverage/src/providers/roles.ts.html +0 -187
  218. package/dist/cjs/index.js.map +0 -1
  219. package/dist/cjs/interfaces/index.js.map +0 -1
  220. package/dist/cjs/interfaces/ports/client.driven.port.js.map +0 -1
  221. package/dist/cjs/interfaces/ports/crud.driven.port.js.map +0 -1
  222. package/dist/cjs/interfaces/ports/index.js.map +0 -1
  223. package/dist/cjs/interfaces/ports/metrics.driven.port.js.map +0 -1
  224. package/dist/cjs/src/app/application/index.js.map +0 -1
  225. package/dist/cjs/src/app/application/ports/index.js.map +0 -1
  226. package/dist/cjs/src/app/application/service/client/get-locale.use-case.js.map +0 -1
  227. package/dist/cjs/src/app/application/service/client/index.js.map +0 -1
  228. package/dist/cjs/src/app/application/service/client/set-locale.use-case.js.map +0 -1
  229. package/dist/cjs/src/app/application/service/index.js.map +0 -1
  230. package/dist/cjs/src/app/application/service/metrics/get-metrics.use-case.js.map +0 -1
  231. package/dist/cjs/src/app/application/service/metrics/index.js.map +0 -1
  232. package/dist/cjs/src/app/index.js.map +0 -1
  233. package/dist/cjs/src/app/infrastructure/adapters/client.repository.adapter.js.map +0 -1
  234. package/dist/cjs/src/app/infrastructure/adapters/index.js.map +0 -1
  235. package/dist/cjs/src/app/infrastructure/adapters/metrics.repository.adapter.js.map +0 -1
  236. package/dist/cjs/src/app/infrastructure/controllers/client.controller.js.map +0 -1
  237. package/dist/cjs/src/app/infrastructure/controllers/dto/index.js.map +0 -1
  238. package/dist/cjs/src/app/infrastructure/controllers/dto/locales.js.map +0 -1
  239. package/dist/cjs/src/app/infrastructure/controllers/index.js.map +0 -1
  240. package/dist/cjs/src/app/infrastructure/controllers/metrics.controller.js.map +0 -1
  241. package/dist/cjs/src/app/infrastructure/controllers/probe.controller.js.map +0 -1
  242. package/dist/cjs/src/app/infrastructure/index.js.map +0 -1
  243. package/dist/cjs/src/cors.js.map +0 -1
  244. package/dist/cjs/src/decorators/auth.js.map +0 -1
  245. package/dist/cjs/src/decorators/index.js.map +0 -1
  246. package/dist/cjs/src/decorators/roles.js.map +0 -1
  247. package/dist/cjs/src/enums/index.js.map +0 -1
  248. package/dist/cjs/src/enums/user.js.map +0 -1
  249. package/dist/cjs/src/errors.js.map +0 -1
  250. package/dist/cjs/src/filters/all-exception-filter.js.map +0 -1
  251. package/dist/cjs/src/filters/index.js.map +0 -1
  252. package/dist/cjs/src/http/controllers/index.js.map +0 -1
  253. package/dist/cjs/src/http/controllers/locales.js.map +0 -1
  254. package/dist/cjs/src/http/controllers/metrics.js.map +0 -1
  255. package/dist/cjs/src/http/controllers/probe.js.map +0 -1
  256. package/dist/cjs/src/http/dto/index.js.map +0 -1
  257. package/dist/cjs/src/http/dto/locales.js.map +0 -1
  258. package/dist/cjs/src/http/index.js.map +0 -1
  259. package/dist/cjs/src/index.js.map +0 -1
  260. package/dist/cjs/src/interceptors/index.js.map +0 -1
  261. package/dist/cjs/src/interceptors/routes-interceptor.js.map +0 -1
  262. package/dist/cjs/src/interceptors/tracing-interceptor.js.map +0 -1
  263. package/dist/cjs/src/middlewares/index.js.map +0 -1
  264. package/dist/cjs/src/middlewares/proxy-middleware.js.map +0 -1
  265. package/dist/cjs/src/middlewares/request-count-middleware.js.map +0 -1
  266. package/dist/cjs/src/middlewares/response-time-middleware.js.map +0 -1
  267. package/dist/cjs/src/providers/auth.js.map +0 -1
  268. package/dist/cjs/src/providers/index.js.map +0 -1
  269. package/dist/cjs/src/providers/roles.js.map +0 -1
  270. package/dist/cjs/tsconfig.build.cjs.tsbuildinfo +0 -1
  271. package/dist/esm/index.mjs +0 -2
  272. package/dist/esm/index.mjs.map +0 -1
  273. package/dist/esm/interfaces/index.mjs.map +0 -1
  274. package/dist/esm/interfaces/ports/client.driven.port.mjs +0 -2
  275. package/dist/esm/interfaces/ports/client.driven.port.mjs.map +0 -1
  276. package/dist/esm/interfaces/ports/crud.driven.port.mjs +0 -2
  277. package/dist/esm/interfaces/ports/crud.driven.port.mjs.map +0 -1
  278. package/dist/esm/interfaces/ports/index.mjs +0 -4
  279. package/dist/esm/interfaces/ports/index.mjs.map +0 -1
  280. package/dist/esm/interfaces/ports/metrics.driven.port.mjs +0 -2
  281. package/dist/esm/interfaces/ports/metrics.driven.port.mjs.map +0 -1
  282. package/dist/esm/src/app/application/index.mjs +0 -3
  283. package/dist/esm/src/app/application/index.mjs.map +0 -1
  284. package/dist/esm/src/app/application/ports/index.mjs +0 -2
  285. package/dist/esm/src/app/application/ports/index.mjs.map +0 -1
  286. package/dist/esm/src/app/application/service/client/get-locale.use-case.mjs.map +0 -1
  287. package/dist/esm/src/app/application/service/client/index.mjs +0 -3
  288. package/dist/esm/src/app/application/service/client/index.mjs.map +0 -1
  289. package/dist/esm/src/app/application/service/client/set-locale.use-case.mjs.map +0 -1
  290. package/dist/esm/src/app/application/service/index.mjs +0 -3
  291. package/dist/esm/src/app/application/service/index.mjs.map +0 -1
  292. package/dist/esm/src/app/application/service/metrics/get-metrics.use-case.mjs.map +0 -1
  293. package/dist/esm/src/app/application/service/metrics/index.mjs +0 -2
  294. package/dist/esm/src/app/application/service/metrics/index.mjs.map +0 -1
  295. package/dist/esm/src/app/index.mjs +0 -3
  296. package/dist/esm/src/app/index.mjs.map +0 -1
  297. package/dist/esm/src/app/infrastructure/adapters/client.repository.adapter.mjs.map +0 -1
  298. package/dist/esm/src/app/infrastructure/adapters/index.mjs +0 -3
  299. package/dist/esm/src/app/infrastructure/adapters/index.mjs.map +0 -1
  300. package/dist/esm/src/app/infrastructure/adapters/metrics.repository.adapter.mjs.map +0 -1
  301. package/dist/esm/src/app/infrastructure/controllers/client.controller.mjs.map +0 -1
  302. package/dist/esm/src/app/infrastructure/controllers/dto/index.mjs +0 -2
  303. package/dist/esm/src/app/infrastructure/controllers/dto/index.mjs.map +0 -1
  304. package/dist/esm/src/app/infrastructure/controllers/dto/locales.mjs.map +0 -1
  305. package/dist/esm/src/app/infrastructure/controllers/index.mjs +0 -4
  306. package/dist/esm/src/app/infrastructure/controllers/index.mjs.map +0 -1
  307. package/dist/esm/src/app/infrastructure/controllers/metrics.controller.mjs.map +0 -1
  308. package/dist/esm/src/app/infrastructure/controllers/probe.controller.mjs.map +0 -1
  309. package/dist/esm/src/app/infrastructure/index.mjs +0 -3
  310. package/dist/esm/src/app/infrastructure/index.mjs.map +0 -1
  311. package/dist/esm/src/cors.mjs.map +0 -1
  312. package/dist/esm/src/decorators/auth.mjs +0 -8
  313. package/dist/esm/src/decorators/auth.mjs.map +0 -1
  314. package/dist/esm/src/decorators/index.mjs +0 -3
  315. package/dist/esm/src/decorators/index.mjs.map +0 -1
  316. package/dist/esm/src/decorators/roles.mjs.map +0 -1
  317. package/dist/esm/src/enums/index.mjs +0 -2
  318. package/dist/esm/src/enums/index.mjs.map +0 -1
  319. package/dist/esm/src/enums/user.mjs +0 -2
  320. package/dist/esm/src/enums/user.mjs.map +0 -1
  321. package/dist/esm/src/errors.mjs.map +0 -1
  322. package/dist/esm/src/filters/all-exception-filter.mjs.map +0 -1
  323. package/dist/esm/src/filters/index.mjs +0 -2
  324. package/dist/esm/src/filters/index.mjs.map +0 -1
  325. package/dist/esm/src/http/controllers/index.mjs +0 -4
  326. package/dist/esm/src/http/controllers/index.mjs.map +0 -1
  327. package/dist/esm/src/http/controllers/locales.mjs.map +0 -1
  328. package/dist/esm/src/http/controllers/metrics.mjs.map +0 -1
  329. package/dist/esm/src/http/controllers/probe.mjs.map +0 -1
  330. package/dist/esm/src/http/dto/index.mjs +0 -2
  331. package/dist/esm/src/http/dto/index.mjs.map +0 -1
  332. package/dist/esm/src/http/dto/locales.mjs.map +0 -1
  333. package/dist/esm/src/http/index.mjs +0 -3
  334. package/dist/esm/src/http/index.mjs.map +0 -1
  335. package/dist/esm/src/index.mjs +0 -11
  336. package/dist/esm/src/index.mjs.map +0 -1
  337. package/dist/esm/src/interceptors/index.mjs +0 -3
  338. package/dist/esm/src/interceptors/index.mjs.map +0 -1
  339. package/dist/esm/src/interceptors/routes-interceptor.mjs.map +0 -1
  340. package/dist/esm/src/interceptors/tracing-interceptor.mjs.map +0 -1
  341. package/dist/esm/src/middlewares/index.mjs +0 -4
  342. package/dist/esm/src/middlewares/index.mjs.map +0 -1
  343. package/dist/esm/src/middlewares/proxy-middleware.mjs.map +0 -1
  344. package/dist/esm/src/middlewares/request-count-middleware.mjs.map +0 -1
  345. package/dist/esm/src/middlewares/response-time-middleware.mjs.map +0 -1
  346. package/dist/esm/src/providers/auth.mjs.map +0 -1
  347. package/dist/esm/src/providers/index.mjs +0 -3
  348. package/dist/esm/src/providers/index.mjs.map +0 -1
  349. package/dist/esm/src/providers/roles.mjs.map +0 -1
  350. package/dist/esm/tsconfig.build.esm.tsbuildinfo +0 -1
  351. package/dist/index.js +0 -18
  352. package/dist/index.js.map +0 -1
  353. package/dist/interfaces/index.js +0 -24
  354. package/dist/interfaces/index.js.map +0 -1
  355. package/dist/interfaces/ports/client.driven.port.js +0 -3
  356. package/dist/interfaces/ports/client.driven.port.js.map +0 -1
  357. package/dist/interfaces/ports/crud.driven.port.js +0 -3
  358. package/dist/interfaces/ports/crud.driven.port.js.map +0 -1
  359. package/dist/interfaces/ports/index.js +0 -20
  360. package/dist/interfaces/ports/index.js.map +0 -1
  361. package/dist/interfaces/ports/metrics.driven.port.js +0 -3
  362. package/dist/interfaces/ports/metrics.driven.port.js.map +0 -1
  363. package/dist/src/app/application/index.js +0 -19
  364. package/dist/src/app/application/index.js.map +0 -1
  365. package/dist/src/app/application/ports/index.js +0 -18
  366. package/dist/src/app/application/ports/index.js.map +0 -1
  367. package/dist/src/app/application/service/client/get-locale.use-case.js +0 -28
  368. package/dist/src/app/application/service/client/get-locale.use-case.js.map +0 -1
  369. package/dist/src/app/application/service/client/index.js +0 -19
  370. package/dist/src/app/application/service/client/index.js.map +0 -1
  371. package/dist/src/app/application/service/client/set-locale.use-case.js +0 -28
  372. package/dist/src/app/application/service/client/set-locale.use-case.js.map +0 -1
  373. package/dist/src/app/application/service/index.js +0 -19
  374. package/dist/src/app/application/service/index.js.map +0 -1
  375. package/dist/src/app/application/service/metrics/get-metrics.use-case.js +0 -28
  376. package/dist/src/app/application/service/metrics/get-metrics.use-case.js.map +0 -1
  377. package/dist/src/app/application/service/metrics/index.js +0 -18
  378. package/dist/src/app/application/service/metrics/index.js.map +0 -1
  379. package/dist/src/app/index.js +0 -19
  380. package/dist/src/app/index.js.map +0 -1
  381. package/dist/src/app/infrastructure/adapters/client.repository.adapter.js +0 -38
  382. package/dist/src/app/infrastructure/adapters/client.repository.adapter.js.map +0 -1
  383. package/dist/src/app/infrastructure/adapters/index.js +0 -19
  384. package/dist/src/app/infrastructure/adapters/index.js.map +0 -1
  385. package/dist/src/app/infrastructure/adapters/metrics.repository.adapter.js +0 -28
  386. package/dist/src/app/infrastructure/adapters/metrics.repository.adapter.js.map +0 -1
  387. package/dist/src/app/infrastructure/controllers/client.controller.js +0 -56
  388. package/dist/src/app/infrastructure/controllers/client.controller.js.map +0 -1
  389. package/dist/src/app/infrastructure/controllers/dto/index.js +0 -18
  390. package/dist/src/app/infrastructure/controllers/dto/index.js.map +0 -1
  391. package/dist/src/app/infrastructure/controllers/dto/locales.js +0 -31
  392. package/dist/src/app/infrastructure/controllers/dto/locales.js.map +0 -1
  393. package/dist/src/app/infrastructure/controllers/index.js +0 -20
  394. package/dist/src/app/infrastructure/controllers/index.js.map +0 -1
  395. package/dist/src/app/infrastructure/controllers/metrics.controller.js +0 -38
  396. package/dist/src/app/infrastructure/controllers/metrics.controller.js.map +0 -1
  397. package/dist/src/app/infrastructure/controllers/probe.controller.js +0 -42
  398. package/dist/src/app/infrastructure/controllers/probe.controller.js.map +0 -1
  399. package/dist/src/app/infrastructure/index.js +0 -32
  400. package/dist/src/app/infrastructure/index.js.map +0 -1
  401. package/dist/src/cors.js +0 -15
  402. package/dist/src/cors.js.map +0 -1
  403. package/dist/src/decorators/auth.js +0 -12
  404. package/dist/src/decorators/auth.js.map +0 -1
  405. package/dist/src/decorators/index.js +0 -19
  406. package/dist/src/decorators/index.js.map +0 -1
  407. package/dist/src/decorators/roles.js +0 -11
  408. package/dist/src/decorators/roles.js.map +0 -1
  409. package/dist/src/enums/index.js +0 -18
  410. package/dist/src/enums/index.js.map +0 -1
  411. package/dist/src/enums/user.js +0 -6
  412. package/dist/src/enums/user.js.map +0 -1
  413. package/dist/src/errors.js +0 -23
  414. package/dist/src/errors.js.map +0 -1
  415. package/dist/src/filters/all-exception-filter.js +0 -74
  416. package/dist/src/filters/all-exception-filter.js.map +0 -1
  417. package/dist/src/filters/index.js +0 -18
  418. package/dist/src/filters/index.js.map +0 -1
  419. package/dist/src/http/controllers/index.js +0 -20
  420. package/dist/src/http/controllers/index.js.map +0 -1
  421. package/dist/src/http/controllers/locales.js +0 -83
  422. package/dist/src/http/controllers/locales.js.map +0 -1
  423. package/dist/src/http/controllers/metrics.js +0 -39
  424. package/dist/src/http/controllers/metrics.js.map +0 -1
  425. package/dist/src/http/controllers/probe.js +0 -44
  426. package/dist/src/http/controllers/probe.js.map +0 -1
  427. package/dist/src/http/dto/index.js +0 -18
  428. package/dist/src/http/dto/index.js.map +0 -1
  429. package/dist/src/http/dto/locales.js +0 -31
  430. package/dist/src/http/dto/locales.js.map +0 -1
  431. package/dist/src/http/index.js +0 -19
  432. package/dist/src/http/index.js.map +0 -1
  433. package/dist/src/index.js +0 -27
  434. package/dist/src/index.js.map +0 -1
  435. package/dist/src/interceptors/index.js +0 -19
  436. package/dist/src/interceptors/index.js.map +0 -1
  437. package/dist/src/interceptors/routes-interceptor.js +0 -33
  438. package/dist/src/interceptors/routes-interceptor.js.map +0 -1
  439. package/dist/src/interceptors/tracing-interceptor.js +0 -81
  440. package/dist/src/interceptors/tracing-interceptor.js.map +0 -1
  441. package/dist/src/middlewares/index.js +0 -20
  442. package/dist/src/middlewares/index.js.map +0 -1
  443. package/dist/src/middlewares/proxy-middleware.js +0 -79
  444. package/dist/src/middlewares/proxy-middleware.js.map +0 -1
  445. package/dist/src/middlewares/request-count-middleware.js +0 -55
  446. package/dist/src/middlewares/request-count-middleware.js.map +0 -1
  447. package/dist/src/middlewares/response-time-middleware.js +0 -67
  448. package/dist/src/middlewares/response-time-middleware.js.map +0 -1
  449. package/dist/src/providers/auth.js +0 -45
  450. package/dist/src/providers/auth.js.map +0 -1
  451. package/dist/src/providers/index.js +0 -19
  452. package/dist/src/providers/index.js.map +0 -1
  453. package/dist/src/providers/roles.js +0 -40
  454. package/dist/src/providers/roles.js.map +0 -1
  455. package/dist/tsconfig.build.tsbuildinfo +0 -1
  456. package/dist/types/tsconfig.build.types.tsbuildinfo +0 -1
  457. package/index.d.ts +0 -155
  458. package/interfaces/index.ts +0 -11
  459. package/interfaces/ports/client.driven.port.ts +0 -5
  460. package/interfaces/ports/crud.driven.port.ts +0 -57
  461. package/interfaces/ports/index.ts +0 -3
  462. package/interfaces/ports/metrics.driven.port.ts +0 -3
  463. package/src/app/application/index.ts +0 -2
  464. package/src/app/application/ports/index.ts +0 -1
  465. package/src/app/application/service/client/get-locale.use-case.ts +0 -13
  466. package/src/app/application/service/client/index.ts +0 -2
  467. package/src/app/application/service/client/set-locale.use-case.ts +0 -13
  468. package/src/app/application/service/index.ts +0 -2
  469. package/src/app/application/service/metrics/get-metrics.use-case.ts +0 -13
  470. package/src/app/application/service/metrics/index.ts +0 -1
  471. package/src/app/domain/.keep +0 -0
  472. package/src/app/index.ts +0 -2
  473. package/src/app/infrastructure/adapters/client.repository.adapter.ts +0 -35
  474. package/src/app/infrastructure/adapters/index.ts +0 -2
  475. package/src/app/infrastructure/adapters/metrics.repository.adapter.ts +0 -13
  476. package/src/app/infrastructure/controllers/client.controller.ts +0 -28
  477. package/src/app/infrastructure/controllers/dto/index.ts +0 -1
  478. package/src/app/infrastructure/controllers/dto/locales.ts +0 -15
  479. package/src/app/infrastructure/controllers/index.ts +0 -3
  480. package/src/app/infrastructure/controllers/metrics.controller.ts +0 -16
  481. package/src/app/infrastructure/controllers/probe.controller.ts +0 -18
  482. package/src/app/infrastructure/index.ts +0 -3
  483. package/src/cors.ts +0 -19
  484. package/src/decorators/auth.ts +0 -9
  485. package/src/decorators/index.ts +0 -2
  486. package/src/decorators/roles.ts +0 -12
  487. package/src/enums/index.ts +0 -1
  488. package/src/enums/user.ts +0 -1
  489. package/src/errors.ts +0 -19
  490. package/src/filters/all-exception-filter.ts +0 -91
  491. package/src/filters/index.ts +0 -1
  492. package/src/http/controllers/index.ts +0 -3
  493. package/src/http/controllers/locales.ts +0 -79
  494. package/src/http/controllers/metrics.ts +0 -21
  495. package/src/http/controllers/probe.ts +0 -26
  496. package/src/http/dto/index.ts +0 -1
  497. package/src/http/dto/locales.ts +0 -15
  498. package/src/http/index.ts +0 -2
  499. package/src/index.ts +0 -10
  500. package/src/interceptors/index.ts +0 -2
  501. package/src/interceptors/routes-interceptor.ts +0 -39
  502. package/src/interceptors/tracing-interceptor.ts +0 -74
  503. package/src/middlewares/index.ts +0 -3
  504. package/src/middlewares/proxy-middleware.ts +0 -78
  505. package/src/middlewares/request-count-middleware.ts +0 -41
  506. package/src/middlewares/response-time-middleware.ts +0 -73
  507. package/src/providers/auth.ts +0 -36
  508. package/src/providers/index.ts +0 -2
  509. package/src/providers/roles.ts +0 -34
  510. package/tests/__snapshots__/index.spec.ts.snap +0 -44
  511. package/tests/index.spec.ts +0 -61
  512. package/tsconfig.build.json +0 -5
  513. 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
- }
@@ -1 +0,0 @@
1
- export * from './locales';
@@ -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
@@ -1,2 +0,0 @@
1
- export * from './controllers';
2
- export * from './dto';
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,2 +0,0 @@
1
- export * from './routes-interceptor';
2
- export * from './tracing-interceptor';
@@ -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
- }
@@ -1,3 +0,0 @@
1
- export * from './proxy-middleware';
2
- export * from './request-count-middleware';
3
- export * from './response-time-middleware';
@@ -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
- }
@@ -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
- }
@@ -1,2 +0,0 @@
1
- export * from './roles';
2
- export * from './auth';
@@ -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
- `;
@@ -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
- });
@@ -1,5 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": ["index.ts", "src/**/*"],
4
- "exclude": ["node_modules", "dist", "tests", "**/*spec.ts"]
5
- }
package/tsconfig.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- "strict": true,
5
- "strictPropertyInitialization": false
6
- },
7
- "include": ["index.ts", "src/**/*", "tests/**/*"],
8
- "exclude": ["node_modules", "dist"]
9
- }