@sima-land/isomorph 11.0.0-alpha.44 → 11.0.0-alpha.45

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 (791) hide show
  1. package/dist/cjs/di/application.js +3 -3
  2. package/dist/cjs/di/application.js.map +1 -1
  3. package/dist/cjs/http/errors.js +11 -3
  4. package/dist/cjs/http/errors.js.map +1 -1
  5. package/dist/cjs/http/index.js +7 -0
  6. package/dist/cjs/http/index.js.map +1 -1
  7. package/dist/cjs/http/types.js.map +1 -1
  8. package/dist/cjs/http/utils.js +80 -0
  9. package/dist/cjs/http/utils.js.map +1 -0
  10. package/dist/cjs/package.json +8 -6
  11. package/dist/cjs/preset/bun/index.js +79 -0
  12. package/dist/cjs/preset/bun/index.js.map +1 -0
  13. package/dist/cjs/preset/bun/providers/config-source.js +13 -0
  14. package/dist/cjs/preset/bun/providers/config-source.js.map +1 -0
  15. package/dist/cjs/preset/bun/providers/fetch-middleware.js +13 -0
  16. package/dist/cjs/preset/bun/providers/fetch-middleware.js.map +1 -0
  17. package/dist/cjs/preset/bun/providers/log-handler-sentry.js +24 -0
  18. package/dist/cjs/preset/bun/providers/log-handler-sentry.js.map +1 -0
  19. package/dist/cjs/preset/bun/providers/logger.js +18 -0
  20. package/dist/cjs/preset/bun/providers/logger.js.map +1 -0
  21. package/dist/cjs/preset/bun/providers/serve-metrics.js +25 -0
  22. package/dist/cjs/preset/bun/providers/serve-metrics.js.map +1 -0
  23. package/dist/cjs/preset/bun/providers/serve-middleware.js +29 -0
  24. package/dist/cjs/preset/bun/providers/serve-middleware.js.map +1 -0
  25. package/dist/cjs/preset/bun/providers/serve.js +33 -0
  26. package/dist/cjs/preset/bun/providers/serve.js.map +1 -0
  27. package/dist/cjs/preset/bun/providers/service-routes.js +16 -0
  28. package/dist/cjs/preset/bun/providers/service-routes.js.map +1 -0
  29. package/dist/cjs/preset/bun/utils/get-stats-handler.js +30 -0
  30. package/dist/cjs/preset/bun/utils/get-stats-handler.js.map +1 -0
  31. package/dist/cjs/preset/bun-handler/index.js +66 -0
  32. package/dist/cjs/preset/bun-handler/index.js.map +1 -0
  33. package/dist/cjs/preset/bun-handler/providers/accept-type.js +24 -0
  34. package/dist/cjs/preset/bun-handler/providers/accept-type.js.map +1 -0
  35. package/dist/cjs/preset/bun-handler/providers/cookie-store.js +15 -0
  36. package/dist/cjs/preset/bun-handler/providers/cookie-store.js.map +1 -0
  37. package/dist/cjs/preset/bun-handler/providers/fetch-middleware.js +31 -0
  38. package/dist/cjs/preset/bun-handler/providers/fetch-middleware.js.map +1 -0
  39. package/dist/cjs/preset/bun-handler/providers/handler-main.js +93 -0
  40. package/dist/cjs/preset/bun-handler/providers/handler-main.js.map +1 -0
  41. package/dist/cjs/preset/bun-handler/providers/specific-params.js +19 -0
  42. package/dist/cjs/preset/bun-handler/providers/specific-params.js.map +1 -0
  43. package/dist/cjs/preset/isomorphic/index.js +63 -0
  44. package/dist/cjs/preset/isomorphic/index.js.map +1 -1
  45. package/dist/cjs/preset/isomorphic/providers/abort-controller.js +14 -0
  46. package/dist/cjs/preset/isomorphic/providers/abort-controller.js.map +1 -0
  47. package/dist/cjs/preset/isomorphic/providers/axios-factory.js +24 -0
  48. package/dist/cjs/preset/isomorphic/providers/axios-factory.js.map +1 -0
  49. package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js +18 -0
  50. package/dist/cjs/preset/isomorphic/providers/axios-log-handler.js.map +1 -0
  51. package/dist/cjs/preset/isomorphic/providers/base-config.js +18 -0
  52. package/dist/cjs/preset/isomorphic/providers/base-config.js.map +1 -0
  53. package/dist/cjs/preset/isomorphic/providers/fetch.js +18 -0
  54. package/dist/cjs/preset/isomorphic/providers/fetch.js.map +1 -0
  55. package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js +26 -0
  56. package/dist/cjs/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -0
  57. package/dist/cjs/preset/isomorphic/types.js.map +1 -1
  58. package/dist/cjs/preset/isomorphic/utils/axios-logging.js +147 -0
  59. package/dist/cjs/preset/isomorphic/utils/axios-logging.js.map +1 -0
  60. package/dist/cjs/preset/isomorphic/utils/disableable.js +32 -0
  61. package/dist/cjs/preset/isomorphic/utils/disableable.js.map +1 -0
  62. package/dist/cjs/preset/isomorphic/utils/display-url.js +32 -0
  63. package/dist/cjs/preset/isomorphic/utils/display-url.js.map +1 -0
  64. package/dist/cjs/preset/isomorphic/utils/fetch-logging.js +84 -0
  65. package/dist/cjs/preset/isomorphic/utils/fetch-logging.js.map +1 -0
  66. package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js +21 -0
  67. package/dist/cjs/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -0
  68. package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js +31 -0
  69. package/dist/cjs/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -0
  70. package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js +25 -0
  71. package/dist/cjs/preset/isomorphic/utils/get-fetch-logging.js.map +1 -0
  72. package/dist/cjs/preset/isomorphic/utils/hide-first-id.js +20 -0
  73. package/dist/cjs/preset/isomorphic/utils/hide-first-id.js.map +1 -0
  74. package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js +46 -0
  75. package/dist/cjs/preset/isomorphic/utils/http-api-host-pool.js.map +1 -0
  76. package/dist/cjs/preset/isomorphic/utils/http-status.js +70 -0
  77. package/dist/cjs/preset/isomorphic/utils/http-status.js.map +1 -0
  78. package/dist/cjs/preset/isomorphic/utils/saga-logging.js +54 -0
  79. package/dist/cjs/preset/isomorphic/utils/saga-logging.js.map +1 -0
  80. package/dist/cjs/preset/isomorphic/utils/severity-from-status.js +30 -0
  81. package/dist/cjs/preset/isomorphic/utils/severity-from-status.js.map +1 -0
  82. package/dist/cjs/preset/node/index.js +93 -7
  83. package/dist/cjs/preset/node/index.js.map +1 -1
  84. package/dist/cjs/preset/node/providers/config-source.js +29 -0
  85. package/dist/cjs/preset/node/providers/config-source.js.map +1 -0
  86. package/dist/cjs/preset/node/providers/express-error-middleware.js +15 -0
  87. package/dist/cjs/preset/node/providers/express-error-middleware.js.map +1 -0
  88. package/dist/cjs/preset/node/providers/express-factory.js +16 -0
  89. package/dist/cjs/preset/node/providers/express-factory.js.map +1 -0
  90. package/dist/cjs/preset/node/providers/express-log-middleware.js +45 -0
  91. package/dist/cjs/preset/node/providers/express-log-middleware.js.map +1 -0
  92. package/dist/cjs/preset/node/providers/express-metrics-middleware.js +60 -0
  93. package/dist/cjs/preset/node/providers/express-metrics-middleware.js.map +1 -0
  94. package/dist/cjs/preset/node/providers/express-request-middleware.js +15 -0
  95. package/dist/cjs/preset/node/providers/express-request-middleware.js.map +1 -0
  96. package/dist/cjs/preset/node/providers/express-tracing-middleware.js +56 -0
  97. package/dist/cjs/preset/node/providers/express-tracing-middleware.js.map +1 -0
  98. package/dist/cjs/preset/node/providers/log-handler-pino.js +32 -0
  99. package/dist/cjs/preset/node/providers/log-handler-pino.js.map +1 -0
  100. package/dist/cjs/preset/node/providers/log-handler-sentry.js +31 -0
  101. package/dist/cjs/preset/node/providers/log-handler-sentry.js.map +1 -0
  102. package/dist/cjs/preset/node/providers/logger.js +23 -0
  103. package/dist/cjs/preset/node/providers/logger.js.map +1 -0
  104. package/dist/cjs/preset/node/providers/metrics-http-app.js +26 -0
  105. package/dist/cjs/preset/node/providers/metrics-http-app.js.map +1 -0
  106. package/dist/cjs/preset/node/providers/span-exporter.js +21 -0
  107. package/dist/cjs/preset/node/providers/span-exporter.js.map +1 -0
  108. package/dist/cjs/preset/node/providers/tracer-provider-resource.js +26 -0
  109. package/dist/cjs/preset/node/providers/tracer-provider-resource.js.map +1 -0
  110. package/dist/cjs/preset/node/providers/tracer-provider.js +27 -0
  111. package/dist/cjs/preset/node/providers/tracer-provider.js.map +1 -0
  112. package/dist/cjs/preset/node/providers/tracer.js +18 -0
  113. package/dist/cjs/preset/node/providers/tracer.js.map +1 -0
  114. package/dist/cjs/preset/node/types.js.map +1 -1
  115. package/dist/cjs/preset/node/{node/utils/http-client/index.js → utils/axios-tracing-middleware.js} +11 -52
  116. package/dist/cjs/preset/node/utils/axios-tracing-middleware.js.map +1 -0
  117. package/dist/cjs/preset/node/utils/emitter-as-target.js +52 -0
  118. package/dist/cjs/preset/node/utils/emitter-as-target.js.map +1 -0
  119. package/dist/cjs/preset/node/{node/utils/http-server/index.js → utils/get-client-ip.js} +2 -2
  120. package/dist/cjs/preset/node/utils/get-client-ip.js.map +1 -0
  121. package/dist/cjs/preset/node/utils/get-forwarded-headers.js +36 -0
  122. package/dist/cjs/preset/node/utils/get-forwarded-headers.js.map +1 -0
  123. package/dist/cjs/preset/node/utils/get-page-response-format.js +20 -0
  124. package/dist/cjs/preset/node/utils/get-page-response-format.js.map +1 -0
  125. package/dist/cjs/preset/node/utils/handler-provider.js +29 -0
  126. package/dist/cjs/preset/node/utils/handler-provider.js.map +1 -0
  127. package/dist/cjs/preset/node-handler/index.js +73 -0
  128. package/dist/cjs/preset/node-handler/index.js.map +1 -0
  129. package/dist/cjs/preset/node-handler/providers/accepts-type.js +17 -0
  130. package/dist/cjs/preset/node-handler/providers/accepts-type.js.map +1 -0
  131. package/dist/cjs/preset/node-handler/providers/axios-log-handler.js +25 -0
  132. package/dist/cjs/preset/node-handler/providers/axios-log-handler.js.map +1 -0
  133. package/dist/cjs/preset/node-handler/providers/axios-middleware.js +55 -0
  134. package/dist/cjs/preset/node-handler/providers/axios-middleware.js.map +1 -0
  135. package/dist/cjs/preset/node-handler/providers/cookie-store.js +18 -0
  136. package/dist/cjs/preset/node-handler/providers/cookie-store.js.map +1 -0
  137. package/dist/cjs/preset/node-handler/providers/fetch-middleware.js +36 -0
  138. package/dist/cjs/preset/node-handler/providers/fetch-middleware.js.map +1 -0
  139. package/dist/cjs/preset/node-handler/providers/handler-main.js +79 -0
  140. package/dist/cjs/preset/node-handler/providers/handler-main.js.map +1 -0
  141. package/dist/cjs/preset/node-handler/providers/response-events.js +18 -0
  142. package/dist/cjs/preset/node-handler/providers/response-events.js.map +1 -0
  143. package/dist/cjs/preset/node-handler/providers/specific-params.js +28 -0
  144. package/dist/cjs/preset/node-handler/providers/specific-params.js.map +1 -0
  145. package/dist/cjs/preset/server/constants.js +21 -0
  146. package/dist/cjs/preset/server/constants.js.map +1 -0
  147. package/dist/cjs/preset/server/index.js +89 -0
  148. package/dist/cjs/preset/server/index.js.map +1 -0
  149. package/dist/cjs/preset/server/providers/element-to-string.js +24 -0
  150. package/dist/cjs/preset/server/providers/element-to-string.js.map +1 -0
  151. package/dist/cjs/preset/server/providers/fetch-log-handler.js +23 -0
  152. package/dist/cjs/preset/server/providers/fetch-log-handler.js.map +1 -0
  153. package/dist/cjs/preset/server/providers/format-page-response.js +68 -0
  154. package/dist/cjs/preset/server/providers/format-page-response.js.map +1 -0
  155. package/dist/cjs/preset/server/providers/known-http-api-hosts.js +24 -0
  156. package/dist/cjs/preset/server/providers/known-http-api-hosts.js.map +1 -0
  157. package/dist/cjs/preset/server/providers/page-helmet.js +21 -0
  158. package/dist/cjs/preset/server/providers/page-helmet.js.map +1 -0
  159. package/dist/cjs/preset/server/providers/page-render.js +21 -0
  160. package/dist/cjs/preset/server/providers/page-render.js.map +1 -0
  161. package/dist/cjs/preset/server/providers/response-events.js +17 -0
  162. package/dist/cjs/preset/server/providers/response-events.js.map +1 -0
  163. package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js +18 -0
  164. package/dist/cjs/preset/server/providers/ssr-bridge-server-side.js.map +1 -0
  165. package/dist/cjs/preset/server/types.js +6 -0
  166. package/dist/cjs/preset/server/types.js.map +1 -0
  167. package/dist/cjs/preset/server/utils/apply-server-middleware.js +22 -0
  168. package/dist/cjs/preset/server/utils/apply-server-middleware.js.map +1 -0
  169. package/dist/cjs/preset/server/utils/format-handler-error.js +40 -0
  170. package/dist/cjs/preset/server/utils/format-handler-error.js.map +1 -0
  171. package/dist/cjs/preset/server/utils/get-client-ip.js +16 -0
  172. package/dist/cjs/preset/server/utils/get-client-ip.js.map +1 -0
  173. package/dist/cjs/preset/server/utils/get-fetch-tracing.js +46 -0
  174. package/dist/cjs/preset/server/utils/get-fetch-tracing.js.map +1 -0
  175. package/dist/cjs/preset/server/utils/get-forwarded-headers.js +34 -0
  176. package/dist/cjs/preset/server/utils/get-forwarded-headers.js.map +1 -0
  177. package/dist/cjs/preset/server/utils/get-handler-metrics.js +43 -0
  178. package/dist/cjs/preset/server/utils/get-handler-metrics.js.map +1 -0
  179. package/dist/cjs/preset/server/utils/get-health-check.js +22 -0
  180. package/dist/cjs/preset/server/utils/get-health-check.js.map +1 -0
  181. package/dist/cjs/preset/server/utils/get-page-response-format.js +21 -0
  182. package/dist/cjs/preset/server/utils/get-page-response-format.js.map +1 -0
  183. package/dist/cjs/preset/server/utils/get-serve-error-logging.js +36 -0
  184. package/dist/cjs/preset/server/utils/get-serve-error-logging.js.map +1 -0
  185. package/dist/cjs/preset/server/utils/get-serve-logging.js +37 -0
  186. package/dist/cjs/preset/server/utils/get-serve-logging.js.map +1 -0
  187. package/dist/cjs/preset/server/utils/get-serve-measuring.js +57 -0
  188. package/dist/cjs/preset/server/utils/get-serve-measuring.js.map +1 -0
  189. package/dist/cjs/preset/server/utils/handler-provider.js +30 -0
  190. package/dist/cjs/preset/server/utils/handler-provider.js.map +1 -0
  191. package/dist/cjs/preset/{node/handler/utils/index.js → server/utils/regular-helmet.js} +2 -66
  192. package/dist/cjs/preset/server/utils/regular-helmet.js.map +1 -0
  193. package/dist/cjs/preset/server/utils/specific-extras.js +30 -0
  194. package/dist/cjs/preset/server/utils/specific-extras.js.map +1 -0
  195. package/dist/cjs/preset/web/index.js +22 -10
  196. package/dist/cjs/preset/web/index.js.map +1 -1
  197. package/dist/cjs/preset/web/providers/axios-middleware.js +19 -0
  198. package/dist/cjs/preset/web/providers/axios-middleware.js.map +1 -0
  199. package/dist/cjs/preset/web/providers/config-source.js +19 -0
  200. package/dist/cjs/preset/web/providers/config-source.js.map +1 -0
  201. package/dist/cjs/preset/web/providers/fetch-middleware.js +21 -0
  202. package/dist/cjs/preset/web/providers/fetch-middleware.js.map +1 -0
  203. package/dist/cjs/preset/web/providers/known-http-api-hosts.js +24 -0
  204. package/dist/cjs/preset/web/providers/known-http-api-hosts.js.map +1 -0
  205. package/dist/cjs/preset/web/providers/logger.js +47 -0
  206. package/dist/cjs/preset/web/providers/logger.js.map +1 -0
  207. package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js +18 -0
  208. package/dist/cjs/preset/web/providers/ssr-bridge-client-side.js.map +1 -0
  209. package/dist/cjs/tokens.js +111 -30
  210. package/dist/cjs/tokens.js.map +1 -1
  211. package/dist/cjs/utils/express/utils/index.js.map +1 -1
  212. package/dist/esm/di/application.js +3 -3
  213. package/dist/esm/di/application.js.map +1 -1
  214. package/dist/esm/http/errors.js +11 -3
  215. package/dist/esm/http/errors.js.map +1 -1
  216. package/dist/esm/http/index.js +1 -0
  217. package/dist/esm/http/index.js.map +1 -1
  218. package/dist/esm/http/types.js.map +1 -1
  219. package/dist/esm/http/utils.js +74 -0
  220. package/dist/esm/http/utils.js.map +1 -0
  221. package/dist/esm/package.json +8 -6
  222. package/dist/esm/preset/bun/index.js +62 -0
  223. package/dist/esm/preset/bun/index.js.map +1 -0
  224. package/dist/esm/preset/bun/providers/config-source.js +6 -0
  225. package/dist/esm/preset/bun/providers/config-source.js.map +1 -0
  226. package/dist/esm/preset/bun/providers/fetch-middleware.js +7 -0
  227. package/dist/esm/preset/bun/providers/fetch-middleware.js.map +1 -0
  228. package/dist/esm/preset/bun/providers/log-handler-sentry.js +18 -0
  229. package/dist/esm/preset/bun/providers/log-handler-sentry.js.map +1 -0
  230. package/dist/esm/preset/bun/providers/logger.js +12 -0
  231. package/dist/esm/preset/bun/providers/logger.js.map +1 -0
  232. package/dist/esm/preset/bun/providers/serve-metrics.js +18 -0
  233. package/dist/esm/preset/bun/providers/serve-metrics.js.map +1 -0
  234. package/dist/esm/preset/bun/providers/serve-middleware.js +23 -0
  235. package/dist/esm/preset/bun/providers/serve-middleware.js.map +1 -0
  236. package/dist/esm/preset/bun/providers/serve.js +27 -0
  237. package/dist/esm/preset/bun/providers/serve.js.map +1 -0
  238. package/dist/esm/preset/bun/providers/service-routes.js +10 -0
  239. package/dist/esm/preset/bun/providers/service-routes.js.map +1 -0
  240. package/dist/esm/preset/bun/utils/get-stats-handler.js +22 -0
  241. package/dist/esm/preset/bun/utils/get-stats-handler.js.map +1 -0
  242. package/dist/esm/preset/bun-handler/index.js +60 -0
  243. package/dist/esm/preset/bun-handler/index.js.map +1 -0
  244. package/dist/esm/preset/bun-handler/providers/accept-type.js +18 -0
  245. package/dist/esm/preset/bun-handler/providers/accept-type.js.map +1 -0
  246. package/dist/esm/preset/bun-handler/providers/cookie-store.js +9 -0
  247. package/dist/esm/preset/bun-handler/providers/cookie-store.js.map +1 -0
  248. package/dist/esm/preset/bun-handler/providers/fetch-middleware.js +25 -0
  249. package/dist/esm/preset/bun-handler/providers/fetch-middleware.js.map +1 -0
  250. package/dist/esm/preset/bun-handler/providers/handler-main.js +84 -0
  251. package/dist/esm/preset/bun-handler/providers/handler-main.js.map +1 -0
  252. package/dist/esm/preset/bun-handler/providers/specific-params.js +13 -0
  253. package/dist/esm/preset/bun-handler/providers/specific-params.js.map +1 -0
  254. package/dist/esm/preset/isomorphic/index.js +10 -1
  255. package/dist/esm/preset/isomorphic/index.js.map +1 -1
  256. package/dist/esm/preset/isomorphic/providers/abort-controller.js +8 -0
  257. package/dist/esm/preset/isomorphic/providers/abort-controller.js.map +1 -0
  258. package/dist/esm/preset/isomorphic/providers/axios-factory.js +19 -0
  259. package/dist/esm/preset/isomorphic/providers/axios-factory.js.map +1 -0
  260. package/dist/esm/preset/isomorphic/providers/axios-log-handler.js +13 -0
  261. package/dist/esm/preset/isomorphic/providers/axios-log-handler.js.map +1 -0
  262. package/dist/esm/preset/isomorphic/providers/base-config.js +13 -0
  263. package/dist/esm/preset/isomorphic/providers/base-config.js.map +1 -0
  264. package/dist/esm/preset/isomorphic/providers/fetch.js +13 -0
  265. package/dist/esm/preset/isomorphic/providers/fetch.js.map +1 -0
  266. package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js +20 -0
  267. package/dist/esm/preset/isomorphic/providers/redux-middleware-saga.js.map +1 -0
  268. package/dist/esm/preset/isomorphic/types.js.map +1 -1
  269. package/dist/esm/preset/isomorphic/utils/axios-logging.js +140 -0
  270. package/dist/esm/preset/isomorphic/utils/axios-logging.js.map +1 -0
  271. package/dist/esm/preset/isomorphic/utils/disableable.js +25 -0
  272. package/dist/esm/preset/isomorphic/utils/disableable.js.map +1 -0
  273. package/dist/esm/preset/isomorphic/utils/display-url.js +26 -0
  274. package/dist/esm/preset/isomorphic/utils/display-url.js.map +1 -0
  275. package/dist/esm/preset/isomorphic/utils/fetch-logging.js +78 -0
  276. package/dist/esm/preset/isomorphic/utils/fetch-logging.js.map +1 -0
  277. package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js +16 -0
  278. package/dist/esm/preset/isomorphic/utils/get-fetch-error-logging.js.map +1 -0
  279. package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js +25 -0
  280. package/dist/esm/preset/isomorphic/utils/get-fetch-extra-aborting.js.map +1 -0
  281. package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js +20 -0
  282. package/dist/esm/preset/isomorphic/utils/get-fetch-logging.js.map +1 -0
  283. package/dist/esm/preset/isomorphic/utils/hide-first-id.js +14 -0
  284. package/dist/esm/preset/isomorphic/utils/hide-first-id.js.map +1 -0
  285. package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js +39 -0
  286. package/dist/esm/preset/isomorphic/utils/http-api-host-pool.js.map +1 -0
  287. package/dist/esm/preset/isomorphic/utils/http-status.js +63 -0
  288. package/dist/esm/preset/isomorphic/utils/http-status.js.map +1 -0
  289. package/dist/esm/preset/isomorphic/utils/saga-logging.js +47 -0
  290. package/dist/esm/preset/isomorphic/utils/saga-logging.js.map +1 -0
  291. package/dist/esm/preset/isomorphic/utils/severity-from-status.js +24 -0
  292. package/dist/esm/preset/isomorphic/utils/severity-from-status.js.map +1 -0
  293. package/dist/esm/preset/node/index.js +82 -2
  294. package/dist/esm/preset/node/index.js.map +1 -1
  295. package/dist/esm/preset/node/providers/config-source.js +23 -0
  296. package/dist/esm/preset/node/providers/config-source.js.map +1 -0
  297. package/dist/esm/preset/node/providers/express-error-middleware.js +10 -0
  298. package/dist/esm/preset/node/providers/express-error-middleware.js.map +1 -0
  299. package/dist/esm/preset/node/providers/express-factory.js +10 -0
  300. package/dist/esm/preset/node/providers/express-factory.js.map +1 -0
  301. package/dist/esm/preset/node/providers/express-log-middleware.js +40 -0
  302. package/dist/esm/preset/node/providers/express-log-middleware.js.map +1 -0
  303. package/dist/esm/preset/node/providers/express-metrics-middleware.js +55 -0
  304. package/dist/esm/preset/node/providers/express-metrics-middleware.js.map +1 -0
  305. package/dist/esm/preset/node/providers/express-request-middleware.js +10 -0
  306. package/dist/esm/preset/node/providers/express-request-middleware.js.map +1 -0
  307. package/dist/esm/preset/node/providers/express-tracing-middleware.js +51 -0
  308. package/dist/esm/preset/node/providers/express-tracing-middleware.js.map +1 -0
  309. package/dist/esm/preset/node/providers/log-handler-pino.js +26 -0
  310. package/dist/esm/preset/node/providers/log-handler-pino.js.map +1 -0
  311. package/dist/esm/preset/node/providers/log-handler-sentry.js +24 -0
  312. package/dist/esm/preset/node/providers/log-handler-sentry.js.map +1 -0
  313. package/dist/esm/preset/node/providers/logger.js +18 -0
  314. package/dist/esm/preset/node/providers/logger.js.map +1 -0
  315. package/dist/esm/preset/node/providers/metrics-http-app.js +18 -0
  316. package/dist/esm/preset/node/providers/metrics-http-app.js.map +1 -0
  317. package/dist/esm/preset/node/providers/span-exporter.js +16 -0
  318. package/dist/esm/preset/node/providers/span-exporter.js.map +1 -0
  319. package/dist/esm/preset/node/providers/tracer-provider-resource.js +20 -0
  320. package/dist/esm/preset/node/providers/tracer-provider-resource.js.map +1 -0
  321. package/dist/esm/preset/node/providers/tracer-provider.js +22 -0
  322. package/dist/esm/preset/node/providers/tracer-provider.js.map +1 -0
  323. package/dist/esm/preset/node/providers/tracer.js +13 -0
  324. package/dist/esm/preset/node/providers/tracer.js.map +1 -0
  325. package/dist/esm/preset/node/types.js.map +1 -1
  326. package/dist/esm/preset/node/{node/utils/http-client/index.js → utils/axios-tracing-middleware.js} +8 -47
  327. package/dist/esm/preset/node/utils/axios-tracing-middleware.js.map +1 -0
  328. package/dist/esm/preset/node/utils/emitter-as-target.js +45 -0
  329. package/dist/esm/preset/node/utils/emitter-as-target.js.map +1 -0
  330. package/dist/esm/preset/node/{node/utils/http-server/index.js → utils/get-client-ip.js} +2 -2
  331. package/dist/esm/preset/node/utils/get-client-ip.js.map +1 -0
  332. package/dist/esm/preset/node/utils/get-forwarded-headers.js +31 -0
  333. package/dist/esm/preset/node/utils/get-forwarded-headers.js.map +1 -0
  334. package/dist/esm/preset/node/utils/get-page-response-format.js +14 -0
  335. package/dist/esm/preset/node/utils/get-page-response-format.js.map +1 -0
  336. package/dist/esm/preset/node/utils/handler-provider.js +24 -0
  337. package/dist/esm/preset/node/utils/handler-provider.js.map +1 -0
  338. package/dist/esm/preset/node-handler/index.js +68 -0
  339. package/dist/esm/preset/node-handler/index.js.map +1 -0
  340. package/dist/esm/preset/node-handler/providers/accepts-type.js +12 -0
  341. package/dist/esm/preset/node-handler/providers/accepts-type.js.map +1 -0
  342. package/dist/esm/preset/node-handler/providers/axios-log-handler.js +20 -0
  343. package/dist/esm/preset/node-handler/providers/axios-log-handler.js.map +1 -0
  344. package/dist/esm/preset/node-handler/providers/axios-middleware.js +50 -0
  345. package/dist/esm/preset/node-handler/providers/axios-middleware.js.map +1 -0
  346. package/dist/esm/preset/node-handler/providers/cookie-store.js +13 -0
  347. package/dist/esm/preset/node-handler/providers/cookie-store.js.map +1 -0
  348. package/dist/esm/preset/node-handler/providers/fetch-middleware.js +31 -0
  349. package/dist/esm/preset/node-handler/providers/fetch-middleware.js.map +1 -0
  350. package/dist/esm/preset/node-handler/providers/handler-main.js +71 -0
  351. package/dist/esm/preset/node-handler/providers/handler-main.js.map +1 -0
  352. package/dist/esm/preset/node-handler/providers/response-events.js +13 -0
  353. package/dist/esm/preset/node-handler/providers/response-events.js.map +1 -0
  354. package/dist/esm/preset/node-handler/providers/specific-params.js +23 -0
  355. package/dist/esm/preset/node-handler/providers/specific-params.js.map +1 -0
  356. package/dist/esm/preset/server/constants.js +15 -0
  357. package/dist/esm/preset/server/constants.js.map +1 -0
  358. package/dist/esm/preset/server/index.js +14 -0
  359. package/dist/esm/preset/server/index.js.map +1 -0
  360. package/dist/esm/preset/server/providers/element-to-string.js +19 -0
  361. package/dist/esm/preset/server/providers/element-to-string.js.map +1 -0
  362. package/dist/esm/preset/server/providers/fetch-log-handler.js +18 -0
  363. package/dist/esm/preset/server/providers/fetch-log-handler.js.map +1 -0
  364. package/dist/esm/preset/server/providers/format-page-response.js +63 -0
  365. package/dist/esm/preset/server/providers/format-page-response.js.map +1 -0
  366. package/dist/esm/preset/server/providers/known-http-api-hosts.js +19 -0
  367. package/dist/esm/preset/server/providers/known-http-api-hosts.js.map +1 -0
  368. package/dist/esm/preset/server/providers/page-helmet.js +16 -0
  369. package/dist/esm/preset/server/providers/page-helmet.js.map +1 -0
  370. package/dist/esm/preset/server/providers/page-render.js +9 -0
  371. package/dist/esm/preset/server/providers/page-render.js.map +1 -0
  372. package/dist/esm/preset/server/providers/response-events.js +12 -0
  373. package/dist/esm/preset/server/providers/response-events.js.map +1 -0
  374. package/dist/esm/preset/server/providers/ssr-bridge-server-side.js +13 -0
  375. package/dist/esm/preset/server/providers/ssr-bridge-server-side.js.map +1 -0
  376. package/dist/esm/preset/server/types.js +2 -0
  377. package/dist/esm/preset/server/types.js.map +1 -0
  378. package/dist/esm/preset/server/utils/apply-server-middleware.js +16 -0
  379. package/dist/esm/preset/server/utils/apply-server-middleware.js.map +1 -0
  380. package/dist/esm/preset/server/utils/format-handler-error.js +34 -0
  381. package/dist/esm/preset/server/utils/format-handler-error.js.map +1 -0
  382. package/dist/esm/preset/server/utils/get-client-ip.js +10 -0
  383. package/dist/esm/preset/server/utils/get-client-ip.js.map +1 -0
  384. package/dist/esm/preset/server/utils/get-fetch-tracing.js +41 -0
  385. package/dist/esm/preset/server/utils/get-fetch-tracing.js.map +1 -0
  386. package/dist/esm/preset/server/utils/get-forwarded-headers.js +29 -0
  387. package/dist/esm/preset/server/utils/get-forwarded-headers.js.map +1 -0
  388. package/dist/esm/preset/server/utils/get-handler-metrics.js +35 -0
  389. package/dist/esm/preset/server/utils/get-handler-metrics.js.map +1 -0
  390. package/dist/esm/preset/server/utils/get-health-check.js +16 -0
  391. package/dist/esm/preset/server/utils/get-health-check.js.map +1 -0
  392. package/dist/esm/preset/server/utils/get-page-response-format.js +15 -0
  393. package/dist/esm/preset/server/utils/get-page-response-format.js.map +1 -0
  394. package/dist/esm/preset/server/utils/get-serve-error-logging.js +31 -0
  395. package/dist/esm/preset/server/utils/get-serve-error-logging.js.map +1 -0
  396. package/dist/esm/preset/server/utils/get-serve-logging.js +32 -0
  397. package/dist/esm/preset/server/utils/get-serve-logging.js.map +1 -0
  398. package/dist/esm/preset/server/utils/get-serve-measuring.js +52 -0
  399. package/dist/esm/preset/server/utils/get-serve-measuring.js.map +1 -0
  400. package/dist/esm/preset/server/utils/handler-provider.js +25 -0
  401. package/dist/esm/preset/server/utils/handler-provider.js.map +1 -0
  402. package/dist/esm/preset/{node/handler/utils/index.js → server/utils/regular-helmet.js} +2 -62
  403. package/dist/esm/preset/server/utils/regular-helmet.js.map +1 -0
  404. package/dist/esm/preset/server/utils/specific-extras.js +23 -0
  405. package/dist/esm/preset/server/utils/specific-extras.js.map +1 -0
  406. package/dist/esm/preset/web/index.js +18 -6
  407. package/dist/esm/preset/web/index.js.map +1 -1
  408. package/dist/esm/preset/web/providers/axios-middleware.js +14 -0
  409. package/dist/esm/preset/web/providers/axios-middleware.js.map +1 -0
  410. package/dist/esm/preset/web/providers/config-source.js +14 -0
  411. package/dist/esm/preset/web/providers/config-source.js.map +1 -0
  412. package/dist/esm/preset/web/providers/fetch-middleware.js +16 -0
  413. package/dist/esm/preset/web/providers/fetch-middleware.js.map +1 -0
  414. package/dist/esm/preset/web/providers/known-http-api-hosts.js +19 -0
  415. package/dist/esm/preset/web/providers/known-http-api-hosts.js.map +1 -0
  416. package/dist/esm/preset/web/providers/logger.js +42 -0
  417. package/dist/esm/preset/web/providers/logger.js.map +1 -0
  418. package/dist/esm/preset/web/providers/ssr-bridge-client-side.js +13 -0
  419. package/dist/esm/preset/web/providers/ssr-bridge-client-side.js.map +1 -0
  420. package/dist/esm/tokens.js +111 -30
  421. package/dist/esm/tokens.js.map +1 -1
  422. package/dist/esm/utils/express/utils/index.js.map +1 -1
  423. package/dist/types/http/errors.d.ts +6 -2
  424. package/dist/types/http/errors.d.ts.map +1 -1
  425. package/dist/types/http/index.d.ts +2 -1
  426. package/dist/types/http/index.d.ts.map +1 -1
  427. package/dist/types/http/types.d.ts +22 -0
  428. package/dist/types/http/types.d.ts.map +1 -1
  429. package/dist/types/http/utils.d.ts +32 -0
  430. package/dist/types/http/utils.d.ts.map +1 -0
  431. package/dist/types/preset/bun/index.d.ts +10 -0
  432. package/dist/types/preset/bun/index.d.ts.map +1 -0
  433. package/dist/types/preset/bun/providers/config-source.d.ts +3 -0
  434. package/dist/types/preset/bun/providers/config-source.d.ts.map +1 -0
  435. package/dist/types/preset/bun/providers/fetch-middleware.d.ts +3 -0
  436. package/dist/types/preset/bun/providers/fetch-middleware.d.ts.map +1 -0
  437. package/dist/types/preset/bun/providers/log-handler-sentry.d.ts +3 -0
  438. package/dist/types/preset/bun/providers/log-handler-sentry.d.ts.map +1 -0
  439. package/dist/types/preset/bun/providers/logger.d.ts +4 -0
  440. package/dist/types/preset/bun/providers/logger.d.ts.map +1 -0
  441. package/dist/types/preset/bun/providers/serve-metrics.d.ts +3 -0
  442. package/dist/types/preset/bun/providers/serve-metrics.d.ts.map +1 -0
  443. package/dist/types/preset/bun/providers/serve-middleware.d.ts +4 -0
  444. package/dist/types/preset/bun/providers/serve-middleware.d.ts.map +1 -0
  445. package/dist/types/preset/bun/providers/serve.d.ts +4 -0
  446. package/dist/types/preset/bun/providers/serve.d.ts.map +1 -0
  447. package/dist/types/preset/bun/providers/service-routes.d.ts +3 -0
  448. package/dist/types/preset/bun/providers/service-routes.d.ts.map +1 -0
  449. package/dist/types/preset/bun/utils/get-stats-handler.d.ts +7 -0
  450. package/dist/types/preset/bun/utils/get-stats-handler.d.ts.map +1 -0
  451. package/dist/types/preset/bun-handler/index.d.ts +9 -0
  452. package/dist/types/preset/bun-handler/index.d.ts.map +1 -0
  453. package/dist/types/preset/bun-handler/providers/accept-type.d.ts +11 -0
  454. package/dist/types/preset/bun-handler/providers/accept-type.d.ts.map +1 -0
  455. package/dist/types/preset/bun-handler/providers/cookie-store.d.ts +4 -0
  456. package/dist/types/preset/bun-handler/providers/cookie-store.d.ts.map +1 -0
  457. package/dist/types/preset/bun-handler/providers/fetch-middleware.d.ts +4 -0
  458. package/dist/types/preset/bun-handler/providers/fetch-middleware.d.ts.map +1 -0
  459. package/dist/types/preset/bun-handler/providers/handler-main.d.ts +3 -0
  460. package/dist/types/preset/bun-handler/providers/handler-main.d.ts.map +1 -0
  461. package/dist/types/preset/bun-handler/providers/specific-params.d.ts +3 -0
  462. package/dist/types/preset/bun-handler/providers/specific-params.d.ts.map +1 -0
  463. package/dist/types/preset/isomorphic/index.d.ts +9 -0
  464. package/dist/types/preset/isomorphic/index.d.ts.map +1 -1
  465. package/dist/types/preset/isomorphic/providers/abort-controller.d.ts +6 -0
  466. package/dist/types/preset/isomorphic/providers/abort-controller.d.ts.map +1 -0
  467. package/dist/types/preset/isomorphic/providers/axios-factory.d.ts +9 -0
  468. package/dist/types/preset/isomorphic/providers/axios-factory.d.ts.map +1 -0
  469. package/dist/types/preset/isomorphic/providers/axios-log-handler.d.ts +9 -0
  470. package/dist/types/preset/isomorphic/providers/axios-log-handler.d.ts.map +1 -0
  471. package/dist/types/preset/isomorphic/providers/base-config.d.ts +9 -0
  472. package/dist/types/preset/isomorphic/providers/base-config.d.ts.map +1 -0
  473. package/dist/types/preset/isomorphic/providers/fetch.d.ts +8 -0
  474. package/dist/types/preset/isomorphic/providers/fetch.d.ts.map +1 -0
  475. package/dist/types/preset/isomorphic/providers/redux-middleware-saga.d.ts +9 -0
  476. package/dist/types/preset/isomorphic/providers/redux-middleware-saga.d.ts.map +1 -0
  477. package/dist/types/preset/isomorphic/types.d.ts +1 -1
  478. package/dist/types/preset/isomorphic/types.d.ts.map +1 -1
  479. package/dist/types/preset/isomorphic/utils/axios-logging.d.ts +34 -0
  480. package/dist/types/preset/isomorphic/utils/axios-logging.d.ts.map +1 -0
  481. package/dist/types/preset/isomorphic/utils/disableable.d.ts +18 -0
  482. package/dist/types/preset/isomorphic/utils/disableable.d.ts.map +1 -0
  483. package/dist/types/preset/isomorphic/utils/display-url.d.ts +9 -0
  484. package/dist/types/preset/isomorphic/utils/display-url.d.ts.map +1 -0
  485. package/dist/types/preset/isomorphic/utils/fetch-logging.d.ts +18 -0
  486. package/dist/types/preset/isomorphic/utils/fetch-logging.d.ts.map +1 -0
  487. package/dist/types/preset/isomorphic/utils/get-fetch-error-logging.d.ts +8 -0
  488. package/dist/types/preset/isomorphic/utils/get-fetch-error-logging.d.ts.map +1 -0
  489. package/dist/types/preset/isomorphic/utils/get-fetch-extra-aborting.d.ts +9 -0
  490. package/dist/types/preset/isomorphic/utils/get-fetch-extra-aborting.d.ts.map +1 -0
  491. package/dist/types/preset/isomorphic/utils/get-fetch-logging.d.ts +9 -0
  492. package/dist/types/preset/isomorphic/utils/get-fetch-logging.d.ts.map +1 -0
  493. package/dist/types/preset/isomorphic/utils/hide-first-id.d.ts +11 -0
  494. package/dist/types/preset/isomorphic/utils/hide-first-id.d.ts.map +1 -0
  495. package/dist/types/preset/isomorphic/utils/http-api-host-pool.d.ts +24 -0
  496. package/dist/types/preset/isomorphic/utils/http-api-host-pool.d.ts.map +1 -0
  497. package/dist/types/preset/isomorphic/utils/http-status.d.ts +29 -0
  498. package/dist/types/preset/isomorphic/utils/http-status.d.ts.map +1 -0
  499. package/dist/types/preset/isomorphic/utils/saga-logging.d.ts +30 -0
  500. package/dist/types/preset/isomorphic/utils/saga-logging.d.ts.map +1 -0
  501. package/dist/types/preset/isomorphic/utils/severity-from-status.d.ts +8 -0
  502. package/dist/types/preset/isomorphic/utils/severity-from-status.d.ts.map +1 -0
  503. package/dist/types/preset/node/index.d.ts +12 -3
  504. package/dist/types/preset/node/index.d.ts.map +1 -1
  505. package/dist/types/preset/node/providers/config-source.d.ts +7 -0
  506. package/dist/types/preset/node/providers/config-source.d.ts.map +1 -0
  507. package/dist/types/preset/node/providers/express-error-middleware.d.ts +7 -0
  508. package/dist/types/preset/node/providers/express-error-middleware.d.ts.map +1 -0
  509. package/dist/types/preset/node/providers/express-factory.d.ts +7 -0
  510. package/dist/types/preset/node/providers/express-factory.d.ts.map +1 -0
  511. package/dist/types/preset/node/providers/express-log-middleware.d.ts +9 -0
  512. package/dist/types/preset/node/providers/express-log-middleware.d.ts.map +1 -0
  513. package/dist/types/preset/node/providers/express-metrics-middleware.d.ts +9 -0
  514. package/dist/types/preset/node/providers/express-metrics-middleware.d.ts.map +1 -0
  515. package/dist/types/preset/node/providers/express-request-middleware.d.ts +7 -0
  516. package/dist/types/preset/node/providers/express-request-middleware.d.ts.map +1 -0
  517. package/dist/types/preset/node/providers/express-tracing-middleware.d.ts +9 -0
  518. package/dist/types/preset/node/providers/express-tracing-middleware.d.ts.map +1 -0
  519. package/dist/types/preset/node/providers/log-handler-pino.d.ts +9 -0
  520. package/dist/types/preset/node/providers/log-handler-pino.d.ts.map +1 -0
  521. package/dist/types/preset/node/providers/log-handler-sentry.d.ts +9 -0
  522. package/dist/types/preset/node/providers/log-handler-sentry.d.ts.map +1 -0
  523. package/dist/types/preset/node/providers/logger.d.ts +9 -0
  524. package/dist/types/preset/node/providers/logger.d.ts.map +1 -0
  525. package/dist/types/preset/node/providers/metrics-http-app.d.ts +7 -0
  526. package/dist/types/preset/node/providers/metrics-http-app.d.ts.map +1 -0
  527. package/dist/types/preset/node/providers/span-exporter.d.ts +9 -0
  528. package/dist/types/preset/node/providers/span-exporter.d.ts.map +1 -0
  529. package/dist/types/preset/node/providers/tracer-provider-resource.d.ts +9 -0
  530. package/dist/types/preset/node/providers/tracer-provider-resource.d.ts.map +1 -0
  531. package/dist/types/preset/node/providers/tracer-provider.d.ts +9 -0
  532. package/dist/types/preset/node/providers/tracer-provider.d.ts.map +1 -0
  533. package/dist/types/preset/node/providers/tracer.d.ts +9 -0
  534. package/dist/types/preset/node/providers/tracer.d.ts.map +1 -0
  535. package/dist/types/preset/node/types.d.ts +4 -4
  536. package/dist/types/preset/node/types.d.ts.map +1 -1
  537. package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts +23 -0
  538. package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts.map +1 -0
  539. package/dist/types/preset/node/utils/emitter-as-target.d.ts +18 -0
  540. package/dist/types/preset/node/utils/emitter-as-target.d.ts.map +1 -0
  541. package/dist/types/preset/node/utils/get-client-ip.d.ts +8 -0
  542. package/dist/types/preset/node/utils/get-client-ip.d.ts.map +1 -0
  543. package/dist/types/preset/node/utils/get-forwarded-headers.d.ts +10 -0
  544. package/dist/types/preset/node/utils/get-forwarded-headers.d.ts.map +1 -0
  545. package/dist/types/preset/node/utils/get-page-response-format.d.ts +9 -0
  546. package/dist/types/preset/node/utils/get-page-response-format.d.ts.map +1 -0
  547. package/dist/types/preset/node/utils/handler-provider.d.ts +9 -0
  548. package/dist/types/preset/node/utils/handler-provider.d.ts.map +1 -0
  549. package/dist/types/preset/{node/handler → node-handler}/index.d.ts +2 -3
  550. package/dist/types/preset/node-handler/index.d.ts.map +1 -0
  551. package/dist/types/preset/node-handler/providers/accepts-type.d.ts +13 -0
  552. package/dist/types/preset/node-handler/providers/accepts-type.d.ts.map +1 -0
  553. package/dist/types/preset/node-handler/providers/axios-log-handler.d.ts +9 -0
  554. package/dist/types/preset/node-handler/providers/axios-log-handler.d.ts.map +1 -0
  555. package/dist/types/preset/node-handler/providers/axios-middleware.d.ts +9 -0
  556. package/dist/types/preset/node-handler/providers/axios-middleware.d.ts.map +1 -0
  557. package/dist/types/preset/node-handler/providers/cookie-store.d.ts +9 -0
  558. package/dist/types/preset/node-handler/providers/cookie-store.d.ts.map +1 -0
  559. package/dist/types/preset/node-handler/providers/fetch-middleware.d.ts +9 -0
  560. package/dist/types/preset/node-handler/providers/fetch-middleware.d.ts.map +1 -0
  561. package/dist/types/preset/node-handler/providers/handler-main.d.ts +9 -0
  562. package/dist/types/preset/node-handler/providers/handler-main.d.ts.map +1 -0
  563. package/dist/types/preset/node-handler/providers/response-events.d.ts +8 -0
  564. package/dist/types/preset/node-handler/providers/response-events.d.ts.map +1 -0
  565. package/dist/types/preset/node-handler/providers/specific-params.d.ts +8 -0
  566. package/dist/types/preset/node-handler/providers/specific-params.d.ts.map +1 -0
  567. package/dist/types/preset/server/constants.d.ts +13 -0
  568. package/dist/types/preset/server/constants.d.ts.map +1 -0
  569. package/dist/types/preset/server/index.d.ts +13 -0
  570. package/dist/types/preset/server/index.d.ts.map +1 -0
  571. package/dist/types/preset/server/providers/element-to-string.d.ts +9 -0
  572. package/dist/types/preset/server/providers/element-to-string.d.ts.map +1 -0
  573. package/dist/types/preset/server/providers/fetch-log-handler.d.ts +9 -0
  574. package/dist/types/preset/server/providers/fetch-log-handler.d.ts.map +1 -0
  575. package/dist/types/preset/server/providers/format-page-response.d.ts +10 -0
  576. package/dist/types/preset/server/providers/format-page-response.d.ts.map +1 -0
  577. package/dist/types/preset/server/providers/known-http-api-hosts.d.ts +10 -0
  578. package/dist/types/preset/server/providers/known-http-api-hosts.d.ts.map +1 -0
  579. package/dist/types/preset/server/providers/page-helmet.d.ts +11 -0
  580. package/dist/types/preset/server/providers/page-helmet.d.ts.map +1 -0
  581. package/dist/types/preset/server/providers/page-render.d.ts +6 -0
  582. package/dist/types/preset/server/providers/page-render.d.ts.map +1 -0
  583. package/dist/types/preset/server/providers/response-events.d.ts +8 -0
  584. package/dist/types/preset/server/providers/response-events.d.ts.map +1 -0
  585. package/dist/types/preset/server/providers/ssr-bridge-server-side.d.ts +9 -0
  586. package/dist/types/preset/server/providers/ssr-bridge-server-side.d.ts.map +1 -0
  587. package/dist/types/preset/server/types.d.ts +28 -0
  588. package/dist/types/preset/server/types.d.ts.map +1 -0
  589. package/dist/types/preset/server/utils/apply-server-middleware.d.ts +8 -0
  590. package/dist/types/preset/server/utils/apply-server-middleware.d.ts.map +1 -0
  591. package/dist/types/preset/server/utils/format-handler-error.d.ts +18 -0
  592. package/dist/types/preset/server/utils/format-handler-error.d.ts.map +1 -0
  593. package/dist/types/preset/server/utils/get-client-ip.d.ts +7 -0
  594. package/dist/types/preset/server/utils/get-client-ip.d.ts.map +1 -0
  595. package/dist/types/preset/server/utils/get-fetch-tracing.d.ts +10 -0
  596. package/dist/types/preset/server/utils/get-fetch-tracing.d.ts.map +1 -0
  597. package/dist/types/preset/server/utils/get-forwarded-headers.d.ts +9 -0
  598. package/dist/types/preset/server/utils/get-forwarded-headers.d.ts.map +1 -0
  599. package/dist/types/preset/server/utils/get-handler-metrics.d.ts +15 -0
  600. package/dist/types/preset/server/utils/get-handler-metrics.d.ts.map +1 -0
  601. package/dist/types/preset/server/utils/get-health-check.d.ts +8 -0
  602. package/dist/types/preset/server/utils/get-health-check.d.ts.map +1 -0
  603. package/dist/types/preset/server/utils/get-page-response-format.d.ts +9 -0
  604. package/dist/types/preset/server/utils/get-page-response-format.d.ts.map +1 -0
  605. package/dist/types/preset/server/utils/get-serve-error-logging.d.ts +9 -0
  606. package/dist/types/preset/server/utils/get-serve-error-logging.d.ts.map +1 -0
  607. package/dist/types/preset/server/utils/get-serve-logging.d.ts +9 -0
  608. package/dist/types/preset/server/utils/get-serve-logging.d.ts.map +1 -0
  609. package/dist/types/preset/server/utils/get-serve-measuring.d.ts +9 -0
  610. package/dist/types/preset/server/utils/get-serve-measuring.d.ts.map +1 -0
  611. package/dist/types/preset/server/utils/handler-provider.d.ts +11 -0
  612. package/dist/types/preset/server/utils/handler-provider.d.ts.map +1 -0
  613. package/dist/types/preset/server/utils/regular-helmet.d.ts +15 -0
  614. package/dist/types/preset/server/utils/regular-helmet.d.ts.map +1 -0
  615. package/dist/types/preset/server/utils/specific-extras.d.ts +18 -0
  616. package/dist/types/preset/server/utils/specific-extras.d.ts.map +1 -0
  617. package/dist/types/preset/web/index.d.ts.map +1 -1
  618. package/dist/types/preset/web/providers/axios-middleware.d.ts +8 -0
  619. package/dist/types/preset/web/providers/axios-middleware.d.ts.map +1 -0
  620. package/dist/types/preset/web/providers/config-source.d.ts +7 -0
  621. package/dist/types/preset/web/providers/config-source.d.ts.map +1 -0
  622. package/dist/types/preset/web/providers/fetch-middleware.d.ts +8 -0
  623. package/dist/types/preset/web/providers/fetch-middleware.d.ts.map +1 -0
  624. package/dist/types/preset/web/providers/known-http-api-hosts.d.ts +10 -0
  625. package/dist/types/preset/web/providers/known-http-api-hosts.d.ts.map +1 -0
  626. package/dist/types/preset/web/providers/logger.d.ts +9 -0
  627. package/dist/types/preset/web/providers/logger.d.ts.map +1 -0
  628. package/dist/types/preset/web/providers/ssr-bridge-client-side.d.ts +9 -0
  629. package/dist/types/preset/web/providers/ssr-bridge-client-side.d.ts.map +1 -0
  630. package/dist/types/tokens.d.ts +124 -27
  631. package/dist/types/tokens.d.ts.map +1 -1
  632. package/dist/types/utils/express/utils/index.d.ts.map +1 -1
  633. package/package.json +100 -123
  634. package/dist/cjs/preset/isomorphic/constants.js +0 -14
  635. package/dist/cjs/preset/isomorphic/constants.js.map +0 -1
  636. package/dist/cjs/preset/isomorphic/providers/index.js +0 -42
  637. package/dist/cjs/preset/isomorphic/providers/index.js.map +0 -1
  638. package/dist/cjs/preset/isomorphic/utils/index.js +0 -322
  639. package/dist/cjs/preset/isomorphic/utils/index.js.map +0 -1
  640. package/dist/cjs/preset/node/handler/index.js +0 -52
  641. package/dist/cjs/preset/node/handler/index.js.map +0 -1
  642. package/dist/cjs/preset/node/handler/providers/index.js +0 -212
  643. package/dist/cjs/preset/node/handler/providers/index.js.map +0 -1
  644. package/dist/cjs/preset/node/handler/utils/index.js.map +0 -1
  645. package/dist/cjs/preset/node/node/index.js +0 -61
  646. package/dist/cjs/preset/node/node/index.js.map +0 -1
  647. package/dist/cjs/preset/node/node/providers/index.js +0 -403
  648. package/dist/cjs/preset/node/node/providers/index.js.map +0 -1
  649. package/dist/cjs/preset/node/node/utils/http-client/index.js.map +0 -1
  650. package/dist/cjs/preset/node/node/utils/http-server/index.js.map +0 -1
  651. package/dist/cjs/preset/node/node/utils/index.js +0 -20
  652. package/dist/cjs/preset/node/node/utils/index.js.map +0 -1
  653. package/dist/cjs/preset/web/providers/index.js +0 -94
  654. package/dist/cjs/preset/web/providers/index.js.map +0 -1
  655. package/dist/esm/preset/isomorphic/constants.js +0 -8
  656. package/dist/esm/preset/isomorphic/constants.js.map +0 -1
  657. package/dist/esm/preset/isomorphic/providers/index.js +0 -35
  658. package/dist/esm/preset/isomorphic/providers/index.js.map +0 -1
  659. package/dist/esm/preset/isomorphic/utils/index.js +0 -309
  660. package/dist/esm/preset/isomorphic/utils/index.js.map +0 -1
  661. package/dist/esm/preset/node/handler/index.js +0 -42
  662. package/dist/esm/preset/node/handler/index.js.map +0 -1
  663. package/dist/esm/preset/node/handler/providers/index.js +0 -194
  664. package/dist/esm/preset/node/handler/providers/index.js.map +0 -1
  665. package/dist/esm/preset/node/handler/utils/index.js.map +0 -1
  666. package/dist/esm/preset/node/node/index.js +0 -56
  667. package/dist/esm/preset/node/node/index.js.map +0 -1
  668. package/dist/esm/preset/node/node/providers/index.js +0 -378
  669. package/dist/esm/preset/node/node/providers/index.js.map +0 -1
  670. package/dist/esm/preset/node/node/utils/http-client/index.js.map +0 -1
  671. package/dist/esm/preset/node/node/utils/http-server/index.js.map +0 -1
  672. package/dist/esm/preset/node/node/utils/index.js +0 -3
  673. package/dist/esm/preset/node/node/utils/index.js.map +0 -1
  674. package/dist/esm/preset/web/providers/index.js +0 -85
  675. package/dist/esm/preset/web/providers/index.js.map +0 -1
  676. package/dist/types/preset/isomorphic/constants.d.ts +0 -8
  677. package/dist/types/preset/isomorphic/constants.d.ts.map +0 -1
  678. package/dist/types/preset/isomorphic/providers/index.d.ts +0 -23
  679. package/dist/types/preset/isomorphic/providers/index.d.ts.map +0 -1
  680. package/dist/types/preset/isomorphic/utils/index.d.ts +0 -119
  681. package/dist/types/preset/isomorphic/utils/index.d.ts.map +0 -1
  682. package/dist/types/preset/node/handler/index.d.ts.map +0 -1
  683. package/dist/types/preset/node/handler/providers/index.d.ts +0 -36
  684. package/dist/types/preset/node/handler/providers/index.d.ts.map +0 -1
  685. package/dist/types/preset/node/handler/utils/index.d.ts +0 -47
  686. package/dist/types/preset/node/handler/utils/index.d.ts.map +0 -1
  687. package/dist/types/preset/node/node/index.d.ts +0 -9
  688. package/dist/types/preset/node/node/index.d.ts.map +0 -1
  689. package/dist/types/preset/node/node/providers/index.d.ts +0 -113
  690. package/dist/types/preset/node/node/providers/index.d.ts.map +0 -1
  691. package/dist/types/preset/node/node/utils/http-client/index.d.ts +0 -42
  692. package/dist/types/preset/node/node/utils/http-client/index.d.ts.map +0 -1
  693. package/dist/types/preset/node/node/utils/http-server/index.d.ts +0 -8
  694. package/dist/types/preset/node/node/utils/http-server/index.d.ts.map +0 -1
  695. package/dist/types/preset/node/node/utils/index.d.ts +0 -3
  696. package/dist/types/preset/node/node/utils/index.d.ts.map +0 -1
  697. package/dist/types/preset/web/providers/index.d.ts +0 -36
  698. package/dist/types/preset/web/providers/index.d.ts.map +0 -1
  699. package/src/cache/index.ts +0 -1
  700. package/src/cache/types.ts +0 -34
  701. package/src/config/base.ts +0 -18
  702. package/src/config/index.ts +0 -3
  703. package/src/config/source.ts +0 -23
  704. package/src/config/types.ts +0 -25
  705. package/src/di/__test__/application.test.ts +0 -258
  706. package/src/di/__test__/container.test.ts +0 -103
  707. package/src/di/__test__/errors.test.ts +0 -56
  708. package/src/di/__test__/preset.test.ts +0 -23
  709. package/src/di/__test__/token.test.ts +0 -25
  710. package/src/di/application.ts +0 -126
  711. package/src/di/container.ts +0 -60
  712. package/src/di/errors.ts +0 -59
  713. package/src/di/index.ts +0 -6
  714. package/src/di/preset.ts +0 -32
  715. package/src/di/token.ts +0 -41
  716. package/src/di/types.ts +0 -105
  717. package/src/http/__test__/errors.test.ts +0 -35
  718. package/src/http/errors.ts +0 -42
  719. package/src/http/index.ts +0 -14
  720. package/src/http/types.ts +0 -8
  721. package/src/log/__test__/errors.test.ts +0 -13
  722. package/src/log/__test__/logger.test.ts +0 -24
  723. package/src/log/errors.ts +0 -33
  724. package/src/log/handler/pino.ts +0 -27
  725. package/src/log/handler/sentry.ts +0 -57
  726. package/src/log/index.ts +0 -12
  727. package/src/log/logger.ts +0 -30
  728. package/src/log/types.ts +0 -76
  729. package/src/preset/isomorphic/constants.ts +0 -7
  730. package/src/preset/isomorphic/index.ts +0 -7
  731. package/src/preset/isomorphic/providers/index.ts +0 -40
  732. package/src/preset/isomorphic/types.ts +0 -37
  733. package/src/preset/isomorphic/utils/__test__/index.test.ts +0 -541
  734. package/src/preset/isomorphic/utils/index.ts +0 -349
  735. package/src/preset/node/handler/index.ts +0 -46
  736. package/src/preset/node/handler/providers/index.tsx +0 -214
  737. package/src/preset/node/handler/utils/index.tsx +0 -110
  738. package/src/preset/node/index.ts +0 -3
  739. package/src/preset/node/node/index.ts +0 -73
  740. package/src/preset/node/node/providers/index.ts +0 -434
  741. package/src/preset/node/node/utils/http-client/__test__/index.test.ts +0 -232
  742. package/src/preset/node/node/utils/http-client/index.ts +0 -129
  743. package/src/preset/node/node/utils/http-server/index.ts +0 -17
  744. package/src/preset/node/node/utils/index.ts +0 -2
  745. package/src/preset/node/types.ts +0 -10
  746. package/src/preset/web/index.ts +0 -40
  747. package/src/preset/web/providers/index.ts +0 -108
  748. package/src/tokens.ts +0 -108
  749. package/src/utils/axios/index.ts +0 -12
  750. package/src/utils/axios/middleware/__test__/cookie.test.ts +0 -94
  751. package/src/utils/axios/middleware/__test__/log.test.ts +0 -121
  752. package/src/utils/axios/middleware/cookie.ts +0 -26
  753. package/src/utils/axios/middleware/log.ts +0 -52
  754. package/src/utils/axios/sauce/index.ts +0 -76
  755. package/src/utils/axios/utils/__test__/index.test.ts +0 -89
  756. package/src/utils/axios/utils/index.ts +0 -26
  757. package/src/utils/express/handler/health-check.ts +0 -13
  758. package/src/utils/express/index.ts +0 -2
  759. package/src/utils/express/utils/index.ts +0 -18
  760. package/src/utils/function.ts +0 -57
  761. package/src/utils/index.ts +0 -2
  762. package/src/utils/math.ts +0 -8
  763. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +0 -27
  764. package/src/utils/react/error-handlers/__test__/index.test.tsx +0 -63
  765. package/src/utils/react/error-handlers/index.tsx +0 -68
  766. package/src/utils/react/index.ts +0 -3
  767. package/src/utils/redux/__test__/remote-data.test.ts +0 -172
  768. package/src/utils/redux/index.ts +0 -4
  769. package/src/utils/redux/remote-data.ts +0 -138
  770. package/src/utils/redux-saga/__test__/take-chain.test.ts +0 -141
  771. package/src/utils/redux-saga/index.ts +0 -3
  772. package/src/utils/redux-saga/middleware.ts +0 -168
  773. package/src/utils/redux-saga/take-chain.ts +0 -67
  774. package/src/utils/redux-saga/types.ts +0 -43
  775. package/src/utils/ssr/index.tsx +0 -78
  776. package/src/utils/web/analytics/__test__/data-layer.test.ts +0 -50
  777. package/src/utils/web/analytics/__test__/oko.test.ts +0 -50
  778. package/src/utils/web/analytics/data-layer.ts +0 -12
  779. package/src/utils/web/analytics/index.ts +0 -2
  780. package/src/utils/web/analytics/oko.ts +0 -14
  781. package/src/utils/web/storage/index.ts +0 -83
  782. package/src/utils/webpack/env/index.ts +0 -91
  783. package/src/utils/webpack/env/types.ts +0 -14
  784. package/src/utils/webpack/env/utils.ts +0 -53
  785. package/src/utils/webpack/index.ts +0 -7
  786. package/src/utils/webpack/module-federation/__test__/__snapshots__/utils.test.ts.snap +0 -124
  787. package/src/utils/webpack/module-federation/__test__/index.test.ts +0 -311
  788. package/src/utils/webpack/module-federation/__test__/utils.test.ts +0 -28
  789. package/src/utils/webpack/module-federation/index.ts +0 -102
  790. package/src/utils/webpack/module-federation/types.ts +0 -54
  791. package/src/utils/webpack/module-federation/utils.ts +0 -104
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_http","require","_tokens","_httpClient","_middlewareAxios","_utils","_axios","_constants","_react","_utils2","_server","_jsxRuntime","provideHttpClientFactory","resolve","appConfig","KnownToken","Config","base","tracer","Tracing","context","Http","Handler","logHandler","Client","Middleware","Log","handler","cookieStore","createCookieStore","req","header","subscribe","res","writableEnded","setHeader","getCookies","defaultHeaders","getRequestHeaders","config","client","create","headers","use","HttpStatus","axiosMiddleware","tracingMiddleware","locals","tracing","rootContext","logMiddleware","cookieMiddleware","provideHandlerMain","logger","assetsInit","Page","assets","render","extras","Response","specificExtras","Helmet","helmet","getAssets","elementToString","element","emit","RESPONSE_EVENT_TYPE","renderStart","result","renderToString","renderFinish","meta","getMeta","jsx","HelmetContext","Provider","value","title","appName","children","getResponseFormat","js","css","criticalJs","criticalCss","JSON","stringify","env","send","json","markup","bundle_js","bundle_css","critical_js","critical_css","error","message","statusCode","Error","ResponseError","String","status","providePageRender","jsxs","Fragment","providePageHelmet","RegularHelmet","provideSpecificParams","headerValue","processedValue","Buffer","from","toString","parse"],"sources":["../../../../../../src/preset/node/handler/providers/index.tsx"],"sourcesContent":["import { ResponseError, createCookieStore } from '../../../../http';\nimport { Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\nimport { getRequestHeaders, tracingMiddleware } from '../../node/utils/http-client';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\nimport { HttpStatus } from '../../../isomorphic/utils';\nimport { cookieMiddleware, logMiddleware } from '../../../../utils/axios';\nimport { RESPONSE_EVENT_TYPE } from '../../../isomorphic/constants';\nimport { ConventionalJson } from '../../../isomorphic/types';\nimport { Fragment } from 'react';\nimport { HelmetContext, RegularHelmet, getResponseFormat } from '../utils';\nimport { renderToString } from 'react-dom/server';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideHttpClientFactory(resolve: Resolve) {\n // @todo а что если привести все зависимости к виду:\n // const getAppConfig = resolve.lazy(KnownToken.Config.base);\n\n const appConfig = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.Http.Handler.context);\n const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);\n\n // @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)\n // можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)\n // const controller = new AbortController();\n // context.res.on('finish', () => {\n // controller.abort();\n // });\n\n // ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie\n const cookieStore = createCookieStore(context.req.header('cookie'));\n\n cookieStore.subscribe(() => {\n if (!context.res.writableEnded) {\n context.res.setHeader('cookie', cookieStore.getCookies());\n }\n });\n\n const defaultHeaders = getRequestHeaders(appConfig, context.req);\n\n return (config: CreateAxiosDefaults = {}) => {\n const client = create({\n ...config,\n headers: {\n ...defaultHeaders,\n\n // @todo убрать as any\n ...(config.headers as any),\n },\n });\n\n client.use(HttpStatus.axiosMiddleware());\n client.use(tracingMiddleware(tracer, context.res.locals.tracing.rootContext));\n client.use(logMiddleware(logHandler));\n client.use(cookieMiddleware(cookieStore));\n\n return client;\n };\n}\n\n/**\n * Провайдер главной функции обработчика входящего http-запроса.\n * @param resolve Функция для получения зависимости по токену.\n * @return Главная функция.\n */\nexport function provideHandlerMain(resolve: Resolve): VoidFunction {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);\n const render = resolve(KnownToken.Http.Handler.Page.render);\n const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);\n const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);\n const { req, res } = resolve(KnownToken.Http.Handler.context);\n\n const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;\n\n /**\n * Рендер JSX-элемента в строку.\n * @param element Элемент.\n * @return Строка.\n */\n const elementToString = (element: JSX.Element) => {\n res.emit(RESPONSE_EVENT_TYPE.renderStart);\n const result = renderToString(element);\n res.emit(RESPONSE_EVENT_TYPE.renderFinish);\n\n return result;\n };\n\n return async () => {\n try {\n const assets = await getAssets();\n const meta = extras.getMeta();\n\n const jsx = (\n <HelmetContext.Provider value={{ title: config.appName, assets }}>\n <Helmet>{await render()}</Helmet>\n </HelmetContext.Provider>\n );\n\n switch (getResponseFormat(req)) {\n case 'html': {\n res.setHeader('simaland-bundle-js', assets.js);\n res.setHeader('simaland-bundle-css', assets.css);\n\n if (assets.criticalJs) {\n res.setHeader('simaland-critical-js', assets.criticalJs);\n }\n\n if (assets.criticalCss) {\n res.setHeader('simaland-critical-css', assets.criticalCss);\n }\n\n if (meta) {\n res.setHeader('simaland-meta', JSON.stringify(meta));\n }\n\n // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css\n // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу\n if (config.env === 'development') {\n res.send(`<!DOCTYPE html>${elementToString(jsx)}`);\n } else {\n res.send(elementToString(jsx));\n }\n break;\n }\n\n case 'json': {\n res.json({\n markup: elementToString(jsx),\n bundle_js: assets.js,\n bundle_css: assets.css,\n critical_js: assets.criticalJs,\n critical_css: assets.criticalCss,\n meta,\n } satisfies ConventionalJson);\n break;\n }\n }\n } catch (error) {\n let message;\n let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500\n\n if (error instanceof Error) {\n message = error.message;\n\n if (error instanceof ResponseError) {\n statusCode = error.statusCode;\n }\n } else {\n message = String(error);\n }\n\n res.status(statusCode).send(message);\n logger.error(error);\n }\n };\n}\n\n/**\n * Провайдер render-функции.\n * @return Render-Функция.\n */\nexport function providePageRender() {\n return () => (\n <>\n <h1>Hello, world!</h1>\n <p>This is a stub page. Define the render component in your handler</p>\n </>\n );\n}\n\n/**\n * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.\n * @param resolve Функция для получения зависимости по токену.\n * @return Helmet-компонент.\n */\nexport function providePageHelmet(resolve: Resolve) {\n const config = resolve(KnownToken.Config.base);\n const { req } = resolve(KnownToken.Http.Handler.context);\n\n return config.env === 'development' && getResponseFormat(req) === 'html'\n ? RegularHelmet\n : Fragment;\n}\n\n/**\n * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.\n * @param resolve Функция для получения зависимости по токену.\n * @return Параметры.\n */\nexport function provideSpecificParams(resolve: Resolve): Record<string, unknown> {\n const context = resolve(KnownToken.Http.Handler.context);\n\n try {\n const headerValue = context.req.header('simaland-params');\n\n /**\n * Node.js переводит в ASCII.\n * @see {https://github.com/nodejs/node/issues/17390}\n */\n const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';\n\n return processedValue ? JSON.parse(processedValue) : {};\n } catch {\n return {};\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","require","_di","_tokens","_jsxRuntime","HelmetContext","exports","createContext","resetCSS","RegularHelmet","children","title","assets","useContext","jsxs","jsx","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","resolve","parent","CURRENT_APP","res","next","app","attach","bind","KnownToken","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return (resolve: Resolve): Handler => {\n const parent = resolve(CURRENT_APP);\n\n return (req, res, next) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.PresetNode = PresetNode;
7
- var _tokens = require("../../../tokens");
8
- var _providers = require("../../isomorphic/providers");
9
- var _di = require("../../../di");
10
- var _healthCheck = require("../../../utils/express/handler/health-check");
11
- var _providers2 = require("./providers");
12
- /**
13
- * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
14
- * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
15
- * @return Preset.
16
- */
17
- function PresetNode(customize) {
18
- // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
19
- const preset = (0, _di.createPreset)();
20
-
21
- // config
22
- preset.set(_tokens.KnownToken.Config.source, _providers2.provideConfigSource);
23
- preset.set(_tokens.KnownToken.Config.base, _providers.provideBaseConfig);
24
-
25
- // log
26
- preset.set(_tokens.KnownToken.logger, _providers2.provideLogger);
27
-
28
- // tracing
29
- preset.set(_tokens.KnownToken.Tracing.tracer, _providers2.provideTracer);
30
- preset.set(_tokens.KnownToken.Tracing.spanExporter, _providers2.provideSpanExporter);
31
- preset.set(_tokens.KnownToken.Tracing.tracerProvider, _providers2.provideTracerProvider);
32
- preset.set(_tokens.KnownToken.Tracing.tracerProviderResource, _providers2.provideTracerProviderResource);
33
-
34
- // metrics
35
- preset.set(_tokens.KnownToken.Metrics.httpApp, _providers2.provideMetricsHttpApp);
36
-
37
- // http client
38
- preset.set(_tokens.KnownToken.Http.Client.factory, _providers2.provideHttpClientFactory);
39
-
40
- // http server
41
- preset.set(_tokens.KnownToken.Http.Server.factory, _providers2.provideHttpServerFactory);
42
- preset.set(_tokens.KnownToken.Http.Server.Handlers.healthCheck, _healthCheck.healthCheck);
43
- preset.set(_tokens.KnownToken.Http.Server.Middleware.request, _providers2.provideHttpServerRequestMiddleware);
44
- preset.set(_tokens.KnownToken.Http.Server.Middleware.log, _providers2.provideHttpServerLogMiddleware);
45
- preset.set(_tokens.KnownToken.Http.Server.Middleware.metrics, _providers2.provideHttpServerMetricsMiddleware);
46
- preset.set(_tokens.KnownToken.Http.Server.Middleware.tracing, _providers2.provideHttpServerTracingMiddleware);
47
- preset.set(_tokens.KnownToken.Http.Server.Middleware.error, _providers2.provideHttpServerErrorMiddleware);
48
-
49
- // http api
50
- preset.set(_tokens.KnownToken.Http.Api.knownHosts, _providers2.provideKnownHttpApiHosts);
51
-
52
- // ssr bridge
53
- preset.set(_tokens.KnownToken.SsrBridge.serverSide, _providers2.provideSsrBridgeServerSide);
54
- if (customize) {
55
- customize({
56
- override: preset.set.bind(preset)
57
- });
58
- }
59
- return preset;
60
- }
61
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_tokens","require","_providers","_di","_healthCheck","_providers2","PresetNode","customize","preset","createPreset","set","KnownToken","Config","source","provideConfigSource","base","provideBaseConfig","logger","provideLogger","Tracing","tracer","provideTracer","spanExporter","provideSpanExporter","tracerProvider","provideTracerProvider","tracerProviderResource","provideTracerProviderResource","Metrics","httpApp","provideMetricsHttpApp","Http","Client","factory","provideHttpClientFactory","Server","provideHttpServerFactory","Handlers","healthCheck","Middleware","request","provideHttpServerRequestMiddleware","log","provideHttpServerLogMiddleware","metrics","provideHttpServerMetricsMiddleware","tracing","provideHttpServerTracingMiddleware","error","provideHttpServerErrorMiddleware","Api","knownHosts","provideKnownHttpApiHosts","SsrBridge","serverSide","provideSsrBridgeServerSide","override","bind"],"sources":["../../../../../src/preset/node/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../../tokens';\nimport { provideBaseConfig } from '../../isomorphic/providers';\nimport { Preset, createPreset } from '../../../di';\nimport { PresetTuner } from '../../isomorphic/types';\nimport { healthCheck } from '../../../utils/express/handler/health-check';\nimport {\n provideConfigSource,\n provideHttpClientFactory,\n provideHttpServerErrorMiddleware,\n provideHttpServerFactory,\n provideHttpServerLogMiddleware,\n provideHttpServerMetricsMiddleware,\n provideHttpServerRequestMiddleware,\n provideHttpServerTracingMiddleware,\n provideKnownHttpApiHosts,\n provideLogger,\n provideMetricsHttpApp,\n provideSpanExporter,\n provideSsrBridgeServerSide,\n provideTracer,\n provideTracerProvider,\n provideTracerProviderResource,\n} from './providers';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);\n preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);\n\n // metrics\n preset.set(KnownToken.Metrics.httpApp, provideMetricsHttpApp);\n\n // http client\n preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);\n\n // http server\n preset.set(KnownToken.Http.Server.factory, provideHttpServerFactory);\n preset.set(KnownToken.Http.Server.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Http.Server.Middleware.request, provideHttpServerRequestMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.error, provideHttpServerErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,GAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAmBA;AACA;AACA;AACA;AACA;AACO,SAASK,UAAUA,CAACC,SAAuB,EAAU;EAC1D;EACA,MAAMC,MAAM,GAAG,IAAAC,gBAAY,EAAC,CAAC;;EAE7B;EACAD,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACC,MAAM,EAAEC,+BAAmB,CAAC;EACzDN,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACC,MAAM,CAACG,IAAI,EAAEC,4BAAiB,CAAC;;EAErD;EACAR,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACM,MAAM,EAAEC,yBAAa,CAAC;;EAE5C;EACAV,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,OAAO,CAACC,MAAM,EAAEC,yBAAa,CAAC;EACpDb,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,OAAO,CAACG,YAAY,EAAEC,+BAAmB,CAAC;EAChEf,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,OAAO,CAACK,cAAc,EAAEC,iCAAqB,CAAC;EACpEjB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACQ,OAAO,CAACO,sBAAsB,EAAEC,yCAA6B,CAAC;;EAEpF;EACAnB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACiB,OAAO,CAACC,OAAO,EAAEC,iCAAqB,CAAC;;EAE7D;EACAtB,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACC,MAAM,CAACC,OAAO,EAAEC,oCAAwB,CAAC;;EAEpE;EACA1B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACF,OAAO,EAAEG,oCAAwB,CAAC;EACpE5B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACE,QAAQ,CAACC,WAAW,EAAEA,wBAAW,CAAC;EACpE9B,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACI,UAAU,CAACC,OAAO,EAAEC,8CAAkC,CAAC;EACzFjC,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACI,UAAU,CAACG,GAAG,EAAEC,0CAA8B,CAAC;EACjFnC,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACI,UAAU,CAACK,OAAO,EAAEC,8CAAkC,CAAC;EACzFrC,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACI,UAAU,CAACO,OAAO,EAAEC,8CAAkC,CAAC;EACzFvC,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACI,MAAM,CAACI,UAAU,CAACS,KAAK,EAAEC,4CAAgC,CAAC;;EAErF;EACAzC,MAAM,CAACE,GAAG,CAACC,kBAAU,CAACoB,IAAI,CAACmB,GAAG,CAACC,UAAU,EAAEC,oCAAwB,CAAC;;EAEpE;EACA5C,MAAM,CAACE,GAAG,CAACC,kBAAU,CAAC0C,SAAS,CAACC,UAAU,EAAEC,sCAA0B,CAAC;EAEvE,IAAIhD,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEiD,QAAQ,EAAEhD,MAAM,CAACE,GAAG,CAAC+C,IAAI,CAACjD,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf"}
@@ -1,403 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.provideConfigSource = provideConfigSource;
7
- exports.provideHttpClientFactory = provideHttpClientFactory;
8
- exports.provideHttpServerErrorMiddleware = provideHttpServerErrorMiddleware;
9
- exports.provideHttpServerFactory = provideHttpServerFactory;
10
- exports.provideHttpServerLogMiddleware = provideHttpServerLogMiddleware;
11
- exports.provideHttpServerMetricsMiddleware = provideHttpServerMetricsMiddleware;
12
- exports.provideHttpServerRequestMiddleware = provideHttpServerRequestMiddleware;
13
- exports.provideHttpServerTracingMiddleware = provideHttpServerTracingMiddleware;
14
- exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
15
- exports.provideLogger = provideLogger;
16
- exports.provideMetricsHttpApp = provideMetricsHttpApp;
17
- exports.providePinoHandler = providePinoHandler;
18
- exports.provideSentryHandler = provideSentryHandler;
19
- exports.provideSpanExporter = provideSpanExporter;
20
- exports.provideSsrBridgeServerSide = provideSsrBridgeServerSide;
21
- exports.provideTracer = provideTracer;
22
- exports.provideTracerProvider = provideTracerProvider;
23
- exports.provideTracerProviderResource = provideTracerProviderResource;
24
- var _ssr = require("../../../../utils/ssr");
25
- var _config = require("../../../../config");
26
- var _log = require("../../../../log");
27
- var _pino = require("../../../../log/handler/pino");
28
- var _sentry = require("../../../../log/handler/sentry");
29
- var _utils = require("../../../isomorphic/utils");
30
- var _tokens = require("../../../../tokens");
31
- var _utils2 = require("../../../../utils");
32
- var _constants = require("../../../isomorphic/constants");
33
- var _httpServer = require("../utils/http-server");
34
- var _nodeOs = _interopRequireDefault(require("node:os"));
35
- var _nodePath = _interopRequireDefault(require("node:path"));
36
- var _dotenv = require("dotenv");
37
- var _node = require("@sentry/node");
38
- var PromClient = _interopRequireWildcard(require("prom-client"));
39
- var _express = _interopRequireDefault(require("express"));
40
- var _pino2 = _interopRequireDefault(require("pino"));
41
- var _pinoPretty = _interopRequireDefault(require("pino-pretty"));
42
- var _api = require("@opentelemetry/api");
43
- var _sdkTraceBase = require("@opentelemetry/sdk-trace-base");
44
- var _exporterTraceOtlpHttp = require("@opentelemetry/exporter-trace-otlp-http");
45
- var _propagatorJaeger = require("@opentelemetry/propagator-jaeger");
46
- var _sdkTraceNode = require("@opentelemetry/sdk-trace-node");
47
- var _resources = require("@opentelemetry/resources");
48
- var _semanticConventions = require("@opentelemetry/semantic-conventions");
49
- var _middlewareAxios = require("middleware-axios");
50
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
52
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
- // Node.js specific packages
54
-
55
- // Node.js libraries (not isomorphic)
56
-
57
- // opentelemetry
58
-
59
- /**
60
- * Провайдер источника конфигурации.
61
- * @return Источник конфигурации.
62
- */
63
- function provideConfigSource() {
64
- const envName = process.env.NODE_ENV;
65
-
66
- // подключаем соответствующий среде файл со значениями по умолчанию
67
- if (envName) {
68
- (0, _dotenv.config)({
69
- path: _nodePath.default.resolve(process.cwd(), `./.env.${envName}`)
70
- });
71
- }
72
- return (0, _config.createConfigSource)(process.env);
73
- }
74
-
75
- /**
76
- * Провайдер Logger'а.
77
- * @param resolve Функция для получения зависимости по токену.
78
- * @return Logger.
79
- */
80
- function provideLogger(resolve) {
81
- const logger = (0, _log.createLogger)();
82
-
83
- // @todo возможно надо придумать как не давать вызывать провайдеры внутри провайдеров
84
- logger.subscribe(providePinoHandler(resolve));
85
- logger.subscribe(provideSentryHandler(resolve));
86
- return logger;
87
- }
88
-
89
- /**
90
- * Провайдер обработчика логирования для Sentry.
91
- * @param resolve Функция для получения зависимости по токену.
92
- * @return Обработчик.
93
- */
94
- function provideSentryHandler(resolve) {
95
- const source = resolve(_tokens.KnownToken.Config.source);
96
-
97
- // экспериментально пробуем не использовать вручную созданный клиент
98
- (0, _node.init)({
99
- dsn: source.require('SENTRY_DSN'),
100
- release: source.require('SENTRY_RELEASE'),
101
- environment: source.require('SENTRY_ENVIRONMENT')
102
- });
103
-
104
- // ВАЖНО: передаем функцию чтобы брать текущий hub в момент вызова метода logger'а
105
- // это нужно чтобы хлебные крошки в ошибках Sentry группировались по запросам
106
- return (0, _sentry.createSentryHandler)(_node.getCurrentHub);
107
- }
108
-
109
- /**
110
- * Провайдер обработчика логирования для Pino.
111
- * @param resolve Функция для получения зависимости по токену.
112
- * @return Обработчик.
113
- */
114
- function providePinoHandler(resolve) {
115
- const config = resolve(_tokens.KnownToken.Config.base);
116
- const pinoLogger = (0, _pino2.default)(config.env === 'production' ? {
117
- formatters: {
118
- // ВАЖНО: для Fluent необходимо наличие поля level: string
119
- level: label => ({
120
- level: label
121
- })
122
- }
123
- } : (0, _pinoPretty.default)({
124
- colorize: true,
125
- translateTime: 'yyyy-mm-dd HH:MM:ss.l o'
126
- }));
127
- return (0, _pino.createPinoHandler)(pinoLogger);
128
- }
129
-
130
- /**
131
- * Провайдер объекта Tracer.
132
- * @param resolve Функция для получения зависимости по токену.
133
- * @return Tracer.
134
- */
135
- function provideTracer(resolve) {
136
- const config = resolve(_tokens.KnownToken.Config.base);
137
- const provider = resolve(_tokens.KnownToken.Tracing.tracerProvider);
138
- return provider.getTracer(config.appName, config.appVersion);
139
- }
140
-
141
- /**
142
- * Провайдер объекта SpanExporter.
143
- * @param resolve Функция для получения зависимости по токену.
144
- * @return SpanExporter.
145
- */
146
- function provideSpanExporter(resolve) {
147
- const source = resolve(_tokens.KnownToken.Config.source);
148
- return new _exporterTraceOtlpHttp.OTLPTraceExporter({
149
- url: source.require('JAEGER_AGENT_URL')
150
- });
151
- }
152
-
153
- /**
154
- * Провайдер объекта BasicTracerProvider.
155
- * @param resolve Функция для получения зависимости по токену.
156
- * @return BasicTracerProvider.
157
- */
158
- function provideTracerProvider(resolve) {
159
- const exporter = resolve(_tokens.KnownToken.Tracing.spanExporter);
160
- const resource = resolve(_tokens.KnownToken.Tracing.tracerProviderResource);
161
- const provider = new _sdkTraceNode.NodeTracerProvider({
162
- resource
163
- });
164
- provider.addSpanProcessor(new _sdkTraceBase.BatchSpanProcessor(exporter));
165
- provider.register({
166
- propagator: new _propagatorJaeger.JaegerPropagator()
167
- });
168
- return provider;
169
- }
170
-
171
- /**
172
- * Провайдер объекта Resource.
173
- * @param resolve Функция для получения зависимости по токену.
174
- * @return Resource.
175
- */
176
- function provideTracerProviderResource(resolve) {
177
- const config = resolve(_tokens.KnownToken.Config.base);
178
- return new _resources.Resource({
179
- [_semanticConventions.SemanticResourceAttributes.HOST_NAME]: _nodeOs.default.hostname(),
180
- [_semanticConventions.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
181
- [_semanticConventions.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
182
- [_semanticConventions.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env
183
- });
184
- }
185
-
186
- /**
187
- * Провайдер фабрики http-клиентов.
188
- * @return Фабрика.
189
- */
190
- function provideHttpClientFactory() {
191
- return _middlewareAxios.create;
192
- }
193
-
194
- /**
195
- * Провайдер фабрики http-серверов.
196
- * @return Фабрика.
197
- */
198
- function provideHttpServerFactory() {
199
- return _express.default;
200
- }
201
-
202
- /**
203
- * Провайдер промежуточного слоя учета входящих http-запросов.
204
- * @return Промежуточный слой.
205
- */
206
- function provideHttpServerRequestMiddleware() {
207
- return _node.Handlers.requestHandler();
208
- }
209
-
210
- /**
211
- * Провайдер промежуточного слоя логирования входящих http-запросов.
212
- * @param resolve Функция для получения зависимости по токену.
213
- * @return Промежуточный слой.
214
- */
215
- function provideHttpServerLogMiddleware(resolve) {
216
- const config = resolve(_tokens.KnownToken.Config.base);
217
- const logger = resolve(_tokens.KnownToken.logger);
218
- return (req, res, next) => {
219
- const start = process.hrtime.bigint();
220
- const remoteIp = (0, _httpServer.getClientIp)(req) ?? '';
221
- const startMsg = {
222
- type: 'http.request[incoming]',
223
- version: config.appVersion,
224
- route: req.originalUrl,
225
- method: req.method,
226
- remote_ip: remoteIp
227
- };
228
- logger.info(startMsg);
229
- res.once('finish', () => {
230
- const finish = process.hrtime.bigint();
231
- const finishMsg = {
232
- type: 'http.response[outgoing]',
233
- version: config.appVersion,
234
- route: req.originalUrl,
235
- method: req.method,
236
- status: res.statusCode,
237
- remote_ip: remoteIp,
238
- latency: (0, _utils2.toMilliseconds)(finish - start)
239
- };
240
- logger.info(finishMsg);
241
- });
242
- next();
243
- };
244
- }
245
-
246
- /**
247
- * Провайдер промежуточного слоя сбора метрик входящих http-запросов.
248
- * @param resolve Функция для получения зависимости по токену.
249
- * @return Промежуточный слой.
250
- */
251
- function provideHttpServerMetricsMiddleware(resolve) {
252
- const config = resolve(_tokens.KnownToken.Config.base);
253
- const ConventionalLabels = {
254
- HTTP_RESPONSE: ['version', 'route', 'code', 'method'],
255
- SSR: ['version', 'route', 'method']
256
- };
257
- const requestCount = new PromClient.Counter({
258
- name: 'http_request_count',
259
- help: 'Incoming HTTP request count',
260
- labelNames: ConventionalLabels.HTTP_RESPONSE
261
- });
262
- const responseDuration = new PromClient.Histogram({
263
- name: 'http_response_duration_ms',
264
- help: 'Duration of incoming HTTP requests in ms',
265
- labelNames: ConventionalLabels.HTTP_RESPONSE,
266
- buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000]
267
- });
268
- const renderDuration = new PromClient.Histogram({
269
- name: 'render_duration_ms',
270
- help: 'Duration of SSR ms',
271
- labelNames: ConventionalLabels.SSR,
272
- buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500]
273
- });
274
-
275
- /**
276
- * Функция формирования labels.
277
- * @param req Request.
278
- * @param res Response.
279
- * @return Labels.
280
- */
281
- const getLabels = (req, res) => ({
282
- version: config.appVersion,
283
- route: req.baseUrl + req.path,
284
- code: res.statusCode,
285
- method: req.method
286
- });
287
- return (req, res, next) => {
288
- const responseStart = process.hrtime.bigint();
289
- requestCount.inc(getLabels(req, res), 1);
290
- res.once(_constants.RESPONSE_EVENT_TYPE.renderStart, () => {
291
- const renderStart = process.hrtime.bigint();
292
- res.once(_constants.RESPONSE_EVENT_TYPE.renderFinish, () => {
293
- const renderFinish = process.hrtime.bigint();
294
- renderDuration.observe({
295
- version: config.appVersion,
296
- method: req.method,
297
- route: req.baseUrl + req.path
298
- }, (0, _utils2.toMilliseconds)(renderFinish - renderStart));
299
- });
300
- });
301
- res.once('finish', () => {
302
- const responseFinish = process.hrtime.bigint();
303
- responseDuration.observe(getLabels(req, res), (0, _utils2.toMilliseconds)(responseFinish - responseStart));
304
- });
305
- next();
306
- };
307
- }
308
-
309
- /**
310
- * Провайдер промежуточного слоя трассировки входящих http-запросов.
311
- * @param resolve Функция для получения зависимости по токену.
312
- * @return Промежуточный слой.
313
- */
314
- function provideHttpServerTracingMiddleware(resolve) {
315
- const tracer = resolve(_tokens.KnownToken.Tracing.tracer);
316
-
317
- /**
318
- * Возвращает набор стандартных атрибутов для спана.
319
- * @param req Входящий http-запрос.
320
- * @return Атрибуты.
321
- */
322
- const getConventionalRequestAttrs = req => {
323
- const result = {
324
- 'request.path': req.originalUrl
325
- };
326
- for (const headerName in req.headers) {
327
- if (headerName.toLowerCase().startsWith('simaland-')) {
328
- result[headerName] = req.header(headerName);
329
- }
330
- }
331
- return result;
332
- };
333
- return (req, res, next) => {
334
- const externalContext = _api.propagation.extract(_api.ROOT_CONTEXT, req.headers);
335
- const rootSpan = tracer.startSpan('response', undefined, externalContext);
336
- rootSpan.setAttributes(getConventionalRequestAttrs(req));
337
- const rootContext = _api.trace.setSpan(externalContext, rootSpan);
338
- res.locals.tracing = {
339
- rootSpan,
340
- rootContext,
341
- renderSpan: null
342
- };
343
- res.once(_constants.RESPONSE_EVENT_TYPE.renderStart, () => {
344
- res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);
345
- res.once(_constants.RESPONSE_EVENT_TYPE.renderFinish, () => {
346
- res.locals.tracing.renderSpan.end();
347
- });
348
- });
349
- res.once('finish', () => {
350
- rootSpan.end();
351
- });
352
- next();
353
- };
354
- }
355
-
356
- /**
357
- * Провайдер промежуточного слоя обработки ошибок в рамках ответ на http-запросы.
358
- * @return Промежуточный слой.
359
- */
360
- function provideHttpServerErrorMiddleware() {
361
- return _node.Handlers.errorHandler();
362
- }
363
-
364
- /**
365
- * Провайдер серверной части "моста" для передачи данных между сервером и клиентом.
366
- * @param resolve Функция для получения зависимости по токену.
367
- * @return Серверная часть "моста".
368
- */
369
- function provideSsrBridgeServerSide(resolve) {
370
- const config = resolve(_tokens.KnownToken.Config.base);
371
- return _ssr.SsrBridge.prepare(config.appName);
372
- }
373
-
374
- /**
375
- * Провайдер известных http-хостов.
376
- * @param resolve Функция для получения зависимости по токену.
377
- * @return Пул известных http-хостов.
378
- */
379
- function provideKnownHttpApiHosts(resolve) {
380
- const source = resolve(_tokens.KnownToken.Config.source);
381
- return new _utils.HttpApiHostPool({
382
- ilium: 'API_URL_ILIUM',
383
- simaV3: 'API_URL_SIMALAND_V3',
384
- simaV4: 'API_URL_SIMALAND_V4',
385
- simaV6: 'API_URL_SIMALAND_V6'
386
- }, source);
387
- }
388
-
389
- /**
390
- * Провайдер express-приложения метрик.
391
- * @return Пул известных http-хостов.
392
- */
393
- function provideMetricsHttpApp() {
394
- PromClient.collectDefaultMetrics();
395
- const app = (0, _express.default)();
396
- app.get('/', async function (req, res) {
397
- const metrics = await PromClient.register.metrics();
398
- res.setHeader('Content-Type', PromClient.register.contentType);
399
- res.send(metrics);
400
- });
401
- return app;
402
- }
403
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_ssr","require","_config","_log","_pino","_sentry","_utils","_tokens","_utils2","_constants","_httpServer","_nodeOs","_interopRequireDefault","_nodePath","_dotenv","_node","PromClient","_interopRequireWildcard","_express","_pino2","_pinoPretty","_api","_sdkTraceBase","_exporterTraceOtlpHttp","_propagatorJaeger","_sdkTraceNode","_resources","_semanticConventions","_middlewareAxios","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","provideConfigSource","envName","process","env","NODE_ENV","applyDotenv","path","resolve","cwd","createConfigSource","provideLogger","logger","createLogger","subscribe","providePinoHandler","provideSentryHandler","source","KnownToken","Config","init","dsn","release","environment","createSentryHandler","getCurrentHub","config","base","pinoLogger","pino","formatters","level","label","PinoPretty","colorize","translateTime","createPinoHandler","provideTracer","provider","Tracing","tracerProvider","getTracer","appName","appVersion","provideSpanExporter","OTLPTraceExporter","url","provideTracerProvider","exporter","spanExporter","resource","tracerProviderResource","NodeTracerProvider","addSpanProcessor","BatchSpanProcessor","register","propagator","JaegerPropagator","provideTracerProviderResource","Resource","SemanticResourceAttributes","HOST_NAME","os","hostname","SERVICE_NAME","SERVICE_VERSION","DEPLOYMENT_ENVIRONMENT","provideHttpClientFactory","create","provideHttpServerFactory","Express","provideHttpServerRequestMiddleware","Handlers","requestHandler","provideHttpServerLogMiddleware","req","res","next","start","hrtime","bigint","remoteIp","getClientIp","startMsg","type","version","route","originalUrl","method","remote_ip","info","once","finish","finishMsg","status","statusCode","latency","toMilliseconds","provideHttpServerMetricsMiddleware","ConventionalLabels","HTTP_RESPONSE","SSR","requestCount","Counter","name","help","labelNames","responseDuration","Histogram","buckets","renderDuration","getLabels","baseUrl","code","responseStart","inc","RESPONSE_EVENT_TYPE","renderStart","renderFinish","observe","responseFinish","provideHttpServerTracingMiddleware","tracer","getConventionalRequestAttrs","result","headerName","headers","toLowerCase","startsWith","header","externalContext","propagation","extract","ROOT_CONTEXT","rootSpan","startSpan","undefined","setAttributes","rootContext","trace","setSpan","locals","tracing","renderSpan","end","provideHttpServerErrorMiddleware","errorHandler","provideSsrBridgeServerSide","SsrBridge","prepare","provideKnownHttpApiHosts","HttpApiHostPool","ilium","simaV3","simaV4","simaV6","provideMetricsHttpApp","collectDefaultMetrics","app","metrics","setHeader","contentType","send"],"sources":["../../../../../../src/preset/node/node/providers/index.ts"],"sourcesContent":["import type { ConventionalFluentInfo, Logger, LogHandler } from '../../../../log/types';\nimport { BridgeServerSide, SsrBridge } from '../../../../utils/ssr';\nimport { ConfigSource, createConfigSource } from '../../../../config';\nimport { createLogger } from '../../../../log';\nimport { createPinoHandler } from '../../../../log/handler/pino';\nimport { createSentryHandler } from '../../../../log/handler/sentry';\nimport { HttpApiHostPool } from '../../../isomorphic/utils';\nimport { KnownToken } from '../../../../tokens';\nimport { Resolve } from '../../../../di';\nimport { StrictMap, KnownHttpApiKey } from '../../../isomorphic/types';\nimport { toMilliseconds } from '../../../../utils';\nimport { RESPONSE_EVENT_TYPE } from '../../../isomorphic/constants';\nimport { getClientIp } from '../utils/http-server';\n\n// Node.js specific packages\nimport os from 'node:os';\nimport path from 'node:path';\n\n// Node.js libraries (not isomorphic)\nimport { config as applyDotenv } from 'dotenv';\nimport { init, getCurrentHub, Handlers } from '@sentry/node';\nimport * as PromClient from 'prom-client';\nimport Express, { Application, ErrorRequestHandler, Handler, Request, Response } from 'express';\nimport pino from 'pino';\nimport PinoPretty from 'pino-pretty';\n\n// opentelemetry\nimport { propagation, ROOT_CONTEXT, trace, type Tracer } from '@opentelemetry/api';\nimport {\n BasicTracerProvider,\n BatchSpanProcessor,\n SpanExporter,\n} from '@opentelemetry/sdk-trace-base';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { JaegerPropagator } from '@opentelemetry/propagator-jaeger';\nimport { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';\nimport { Resource } from '@opentelemetry/resources';\nimport { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';\nimport { create } from 'middleware-axios';\n\n/**\n * Провайдер источника конфигурации.\n * @return Источник конфигурации.\n */\nexport function provideConfigSource(): ConfigSource {\n const envName = process.env.NODE_ENV;\n\n // подключаем соответствующий среде файл со значениями по умолчанию\n if (envName) {\n applyDotenv({ path: path.resolve(process.cwd(), `./.env.${envName}`) });\n }\n\n return createConfigSource(process.env);\n}\n\n/**\n * Провайдер Logger'а.\n * @param resolve Функция для получения зависимости по токену.\n * @return Logger.\n */\nexport function provideLogger(resolve: Resolve): Logger {\n const logger = createLogger();\n\n // @todo возможно надо придумать как не давать вызывать провайдеры внутри провайдеров\n logger.subscribe(providePinoHandler(resolve));\n logger.subscribe(provideSentryHandler(resolve));\n\n return logger;\n}\n\n/**\n * Провайдер обработчика логирования для Sentry.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function provideSentryHandler(resolve: Resolve): LogHandler {\n const source = resolve(KnownToken.Config.source);\n\n // экспериментально пробуем не использовать вручную созданный клиент\n init({\n dsn: source.require('SENTRY_DSN'),\n release: source.require('SENTRY_RELEASE'),\n environment: source.require('SENTRY_ENVIRONMENT'),\n });\n\n // ВАЖНО: передаем функцию чтобы брать текущий hub в момент вызова метода logger'а\n // это нужно чтобы хлебные крошки в ошибках Sentry группировались по запросам\n return createSentryHandler(getCurrentHub);\n}\n\n/**\n * Провайдер обработчика логирования для Pino.\n * @param resolve Функция для получения зависимости по токену.\n * @return Обработчик.\n */\nexport function providePinoHandler(resolve: Resolve): LogHandler {\n const config = resolve(KnownToken.Config.base);\n\n const pinoLogger = pino(\n config.env === 'production'\n ? {\n formatters: {\n // ВАЖНО: для Fluent необходимо наличие поля level: string\n level: label => ({ level: label }),\n },\n }\n : PinoPretty({\n colorize: true,\n translateTime: 'yyyy-mm-dd HH:MM:ss.l o',\n }),\n );\n\n return createPinoHandler(pinoLogger);\n}\n\n/**\n * Провайдер объекта Tracer.\n * @param resolve Функция для получения зависимости по токену.\n * @return Tracer.\n */\nexport function provideTracer(resolve: Resolve): Tracer {\n const config = resolve(KnownToken.Config.base);\n const provider = resolve(KnownToken.Tracing.tracerProvider);\n\n return provider.getTracer(config.appName, config.appVersion);\n}\n\n/**\n * Провайдер объекта SpanExporter.\n * @param resolve Функция для получения зависимости по токену.\n * @return SpanExporter.\n */\nexport function provideSpanExporter(resolve: Resolve): SpanExporter {\n const source = resolve(KnownToken.Config.source);\n\n return new OTLPTraceExporter({\n url: source.require('JAEGER_AGENT_URL'),\n });\n}\n\n/**\n * Провайдер объекта BasicTracerProvider.\n * @param resolve Функция для получения зависимости по токену.\n * @return BasicTracerProvider.\n */\nexport function provideTracerProvider(resolve: Resolve): BasicTracerProvider {\n const exporter = resolve(KnownToken.Tracing.spanExporter);\n const resource = resolve(KnownToken.Tracing.tracerProviderResource);\n\n const provider = new NodeTracerProvider({ resource });\n\n provider.addSpanProcessor(new BatchSpanProcessor(exporter));\n provider.register({ propagator: new JaegerPropagator() });\n\n return provider;\n}\n\n/**\n * Провайдер объекта Resource.\n * @param resolve Функция для получения зависимости по токену.\n * @return Resource.\n */\nexport function provideTracerProviderResource(resolve: Resolve): Resource {\n const config = resolve(KnownToken.Config.base);\n\n return new Resource({\n [SemanticResourceAttributes.HOST_NAME]: os.hostname(),\n [SemanticResourceAttributes.SERVICE_NAME]: config.appName,\n [SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,\n [SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,\n });\n}\n\n/**\n * Провайдер фабрики http-клиентов.\n * @return Фабрика.\n */\nexport function provideHttpClientFactory() {\n return create;\n}\n\n/**\n * Провайдер фабрики http-серверов.\n * @return Фабрика.\n */\nexport function provideHttpServerFactory() {\n return Express;\n}\n\n/**\n * Провайдер промежуточного слоя учета входящих http-запросов.\n * @return Промежуточный слой.\n */\nexport function provideHttpServerRequestMiddleware(): Handler {\n return Handlers.requestHandler();\n}\n\n/**\n * Провайдер промежуточного слоя логирования входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideHttpServerLogMiddleware(resolve: Resolve): Handler {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n\n return (req, res, next) => {\n const start = process.hrtime.bigint();\n const remoteIp = getClientIp(req) ?? '';\n\n const startMsg: Omit<ConventionalFluentInfo, 'latency' | 'status'> & { type: string } = {\n type: 'http.request[incoming]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n remote_ip: remoteIp,\n };\n\n logger.info(startMsg);\n\n res.once('finish', () => {\n const finish = process.hrtime.bigint();\n\n const finishMsg: ConventionalFluentInfo & { type: string } = {\n type: 'http.response[outgoing]',\n version: config.appVersion,\n route: req.originalUrl,\n method: req.method,\n status: res.statusCode,\n remote_ip: remoteIp,\n latency: toMilliseconds(finish - start),\n };\n\n logger.info(finishMsg);\n });\n\n next();\n };\n}\n\n/**\n * Провайдер промежуточного слоя сбора метрик входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideHttpServerMetricsMiddleware(resolve: Resolve): Handler {\n const config = resolve(KnownToken.Config.base);\n\n const ConventionalLabels = {\n HTTP_RESPONSE: ['version', 'route', 'code', 'method'],\n SSR: ['version', 'route', 'method'],\n } as const;\n\n const requestCount = new PromClient.Counter({\n name: 'http_request_count',\n help: 'Incoming HTTP request count',\n labelNames: ConventionalLabels.HTTP_RESPONSE,\n });\n\n const responseDuration = new PromClient.Histogram({\n name: 'http_response_duration_ms',\n help: 'Duration of incoming HTTP requests in ms',\n labelNames: ConventionalLabels.HTTP_RESPONSE,\n buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000],\n });\n\n const renderDuration = new PromClient.Histogram({\n name: 'render_duration_ms',\n help: 'Duration of SSR ms',\n labelNames: ConventionalLabels.SSR,\n buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500],\n });\n\n /**\n * Функция формирования labels.\n * @param req Request.\n * @param res Response.\n * @return Labels.\n */\n const getLabels = (\n req: Request,\n res: Response,\n ): Record<(typeof ConventionalLabels.HTTP_RESPONSE)[number], string | number> => ({\n version: config.appVersion,\n route: req.baseUrl + req.path,\n code: res.statusCode,\n method: req.method,\n });\n\n return (req, res, next) => {\n const responseStart = process.hrtime.bigint();\n\n requestCount.inc(getLabels(req, res), 1);\n\n res.once(RESPONSE_EVENT_TYPE.renderStart, () => {\n const renderStart = process.hrtime.bigint();\n\n res.once(RESPONSE_EVENT_TYPE.renderFinish, () => {\n const renderFinish = process.hrtime.bigint();\n\n renderDuration.observe(\n {\n version: config.appVersion,\n method: req.method,\n route: req.baseUrl + req.path,\n },\n toMilliseconds(renderFinish - renderStart),\n );\n });\n });\n\n res.once('finish', () => {\n const responseFinish = process.hrtime.bigint();\n\n responseDuration.observe(getLabels(req, res), toMilliseconds(responseFinish - responseStart));\n });\n\n next();\n };\n}\n\n/**\n * Провайдер промежуточного слоя трассировки входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideHttpServerTracingMiddleware(resolve: Resolve): Handler {\n const tracer = resolve(KnownToken.Tracing.tracer);\n\n /**\n * Возвращает набор стандартных атрибутов для спана.\n * @param req Входящий http-запрос.\n * @return Атрибуты.\n */\n const getConventionalRequestAttrs = (req: Request): Record<string, string | undefined> => {\n const result: Record<string, string | undefined> = {\n 'request.path': req.originalUrl,\n };\n\n for (const headerName in req.headers) {\n if (headerName.toLowerCase().startsWith('simaland-')) {\n result[headerName] = req.header(headerName);\n }\n }\n\n return result;\n };\n\n return (req, res, next) => {\n const externalContext = propagation.extract(ROOT_CONTEXT, req.headers);\n const rootSpan = tracer.startSpan('response', undefined, externalContext);\n\n rootSpan.setAttributes(getConventionalRequestAttrs(req));\n\n const rootContext = trace.setSpan(externalContext, rootSpan);\n\n res.locals.tracing = {\n rootSpan,\n rootContext,\n renderSpan: null,\n };\n\n res.once(RESPONSE_EVENT_TYPE.renderStart, () => {\n res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);\n\n res.once(RESPONSE_EVENT_TYPE.renderFinish, () => {\n res.locals.tracing.renderSpan.end();\n });\n });\n\n res.once('finish', () => {\n rootSpan.end();\n });\n\n next();\n };\n}\n\n/**\n * Провайдер промежуточного слоя обработки ошибок в рамках ответ на http-запросы.\n * @return Промежуточный слой.\n */\nexport function provideHttpServerErrorMiddleware(): ErrorRequestHandler {\n return Handlers.errorHandler();\n}\n\n/**\n * Провайдер серверной части \"моста\" для передачи данных между сервером и клиентом.\n * @param resolve Функция для получения зависимости по токену.\n * @return Серверная часть \"моста\".\n */\nexport function provideSsrBridgeServerSide(resolve: Resolve): BridgeServerSide {\n const config = resolve(KnownToken.Config.base);\n\n return SsrBridge.prepare(config.appName);\n}\n\n/**\n * Провайдер известных http-хостов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Пул известных http-хостов.\n */\nexport function provideKnownHttpApiHosts(resolve: Resolve): StrictMap<KnownHttpApiKey> {\n const source = resolve(KnownToken.Config.source);\n\n return new HttpApiHostPool(\n {\n ilium: 'API_URL_ILIUM',\n simaV3: 'API_URL_SIMALAND_V3',\n simaV4: 'API_URL_SIMALAND_V4',\n simaV6: 'API_URL_SIMALAND_V6',\n },\n source,\n );\n}\n\n/**\n * Провайдер express-приложения метрик.\n * @return Пул известных http-хостов.\n */\nexport function provideMetricsHttpApp(): Application {\n PromClient.collectDefaultMetrics();\n\n const app = Express();\n\n app.get('/', async function (req, res) {\n const metrics = await PromClient.register.metrics();\n\n res.setHeader('Content-Type', PromClient.register.contentType);\n res.send(metrics);\n });\n\n return app;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_api","require","_semanticConventions","_httpServer","_utils","tracingMiddleware","tracer","rootContext","trace","config","next","defaults","method","url","foundId","getRequestInfo","span","startSpan","undefined","setAttributes","SemanticAttributes","HTTP_URL","HTTP_METHOD","JSON","stringify","params","headers","toLowerCase","error","setStatus","code","SpanStatusCode","ERROR","message","end","toUpperCase","baseURL","hideFirstId","displayUrl","found","exec","replace","Number","getRequestHeaders","request","result","appName","appVersion","clientIp","getClientIp","cookie","get","Cookie","key","Object","keys","value","header","indexOf"],"sources":["../../../../../../../src/preset/node/node/utils/http-client/index.ts"],"sourcesContent":["import type { AxiosDefaults, AxiosRequestConfig } from 'axios';\nimport type { Middleware } from 'middleware-axios';\nimport type { Request } from 'express';\nimport { Context, Tracer, SpanStatusCode } from '@opentelemetry/api';\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\nimport { BaseConfig } from '../../../../../config';\nimport { getClientIp } from '../http-server';\nimport { displayUrl } from '../../../../isomorphic/utils';\n\n/**\n * Возвращает новый middleware для трассировки исходящих запросов.\n * @param tracer Трейсер.\n * @param rootContext Контекст.\n * @return Middleware.\n */\nexport function tracingMiddleware(tracer: Tracer, rootContext: Context): Middleware<any> {\n return async function trace(config, next, defaults) {\n const { method, url, foundId } = getRequestInfo(config, defaults);\n const span = tracer.startSpan(`HTTP ${method} ${url}`, undefined, rootContext);\n\n span.setAttributes({\n [SemanticAttributes.HTTP_URL]: url,\n [SemanticAttributes.HTTP_METHOD]: method,\n 'request.params': JSON.stringify({\n ...defaults.params,\n ...config.params,\n }),\n 'request.headers': JSON.stringify({\n ...defaults.headers[method.toLowerCase() as 'get'],\n ...config.headers,\n }),\n\n // если нашли id - добавляем в теги\n ...(foundId && { 'request.id': foundId }),\n });\n\n try {\n await next(config);\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // не прячем ошибку\n throw error;\n }\n\n span.end();\n };\n}\n\n/**\n * Формирует базовые данные запроса.\n * Заменяет первое найденное число в url на \"{id}\", возвращая его в результате.\n * @param config Axios-конфиг запроса.\n * @param defaults Базовый конфиг экземпляра Axios.\n * @return Базовые данные запроса.\n */\nexport function getRequestInfo(\n config: AxiosRequestConfig,\n defaults: AxiosDefaults,\n): {\n method: string;\n url: string;\n foundId?: number;\n} {\n const method = (config.method || 'GET').toUpperCase();\n const baseURL = config.baseURL || defaults.baseURL || '';\n\n // ВАЖНО: абстрагируем id только в url игнорируя baseURL\n const [url, foundId] = hideFirstId(config.url || defaults.url || '');\n\n return {\n method,\n url: displayUrl(baseURL, url),\n foundId,\n };\n}\n\n/**\n * Преобразует строку вида:\n * \"/api/v2/something/123456/some-bff/123456\"\n * в строку вида:\n * \"/api/v2/something/{id}/some-bff/123456\"\n * и возвращает кортеж с этой строкой и вырезанным числом в случае если оно найдено.\n * @param url Url.\n * @return Кортеж со строкой и результатом поиска числа.\n */\nexport function hideFirstId(url: string): [string, number | undefined] {\n const found = /\\d{2,}/.exec(url);\n\n return found ? [url.replace(found[0], '{id}'), Number(found[0])] : [url, undefined];\n}\n\n/**\n * Формирует заголовки для исходящих запросов с сервера по соглашению.\n * @param config Конфиг.\n * @param request Входящий запрос.\n * @return Заголовки для исходящих запросов.\n */\nexport function getRequestHeaders(config: BaseConfig, request: Request): Record<string, string> {\n const result: Record<string, string> = {\n 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,\n };\n\n const clientIp = getClientIp(request);\n if (clientIp) {\n result['X-Client-Ip'] = clientIp;\n }\n\n const cookie = request.get('cookie');\n if (cookie) {\n result.Cookie = cookie;\n }\n\n // добавляем специфичные заголовки\n for (const key of Object.keys(request.headers)) {\n const value = request.header(key);\n\n if (key.toLowerCase().indexOf('simaland-') === 0 && value) {\n result[key] = value;\n }\n }\n\n return result;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_nodeNet","_interopRequireDefault","require","obj","__esModule","default","getClientIp","request","headerValue","get","socket","remoteAddress","net","isIP","undefined"],"sources":["../../../../../../../src/preset/node/node/utils/http-server/index.ts"],"sourcesContent":["import type { Request } from 'express';\nimport net from 'node:net';\n\n/**\n * Определяет IP входящего запроса.\n * @param request Входящий запрос.\n * @return IP.\n */\nexport function getClientIp(request: Request): string | undefined {\n const headerValue =\n request.get('x-client-ip') ||\n request.get('x-forwarded-for') ||\n request.socket.remoteAddress ||\n '';\n\n return net.isIP(headerValue) ? headerValue : undefined;\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA2B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3B;AACA;AACA;AACA;AACA;AACO,SAASG,WAAWA,CAACC,OAAgB,EAAsB;EAChE,MAAMC,WAAW,GACfD,OAAO,CAACE,GAAG,CAAC,aAAa,CAAC,IAC1BF,OAAO,CAACE,GAAG,CAAC,iBAAiB,CAAC,IAC9BF,OAAO,CAACG,MAAM,CAACC,aAAa,IAC5B,EAAE;EAEJ,OAAOC,gBAAG,CAACC,IAAI,CAACL,WAAW,CAAC,GAAGA,WAAW,GAAGM,SAAS;AACxD"}