@sima-land/isomorph 10.1.0 → 11.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cache/types.d.ts +7 -0
  3. package/dist/cache/types.js +3 -0
  4. package/dist/cache/types.js.map +1 -0
  5. package/dist/config/browser.d.ts +6 -0
  6. package/dist/config/browser.js +13 -0
  7. package/dist/config/browser.js.map +1 -0
  8. package/dist/config/index.d.ts +7 -0
  9. package/dist/config/index.js +20 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/node.d.ts +6 -0
  12. package/dist/config/node.js +19 -0
  13. package/dist/config/node.js.map +1 -0
  14. package/dist/config/types.d.ts +7 -0
  15. package/dist/config/types.js +3 -0
  16. package/dist/config/types.js.map +1 -0
  17. package/dist/config/utils.d.ts +5 -0
  18. package/dist/config/utils.js +12 -0
  19. package/dist/config/utils.js.map +1 -0
  20. package/dist/container/application.d.ts +25 -0
  21. package/dist/container/application.js +63 -0
  22. package/dist/container/application.js.map +1 -0
  23. package/dist/container/index.d.ts +18 -0
  24. package/dist/container/index.js +74 -0
  25. package/dist/container/index.js.map +1 -0
  26. package/dist/container/types.d.ts +14 -0
  27. package/dist/container/types.js +3 -0
  28. package/dist/container/types.js.map +1 -0
  29. package/dist/error-tracker/browser.d.ts +8 -0
  30. package/dist/error-tracker/browser.js +40 -0
  31. package/dist/error-tracker/browser.js.map +1 -0
  32. package/dist/error-tracker/node.d.ts +8 -0
  33. package/dist/error-tracker/node.js +40 -0
  34. package/dist/error-tracker/node.js.map +1 -0
  35. package/dist/error-tracker/types.d.ts +18 -0
  36. package/dist/error-tracker/types.js +3 -0
  37. package/dist/error-tracker/types.js.map +1 -0
  38. package/dist/error-tracker/utils.d.ts +12 -0
  39. package/dist/error-tracker/utils.js +19 -0
  40. package/dist/error-tracker/utils.js.map +1 -0
  41. package/dist/http-client/middleware/cookie.d.ts +19 -0
  42. package/dist/http-client/middleware/cookie.js +62 -0
  43. package/dist/http-client/middleware/cookie.js.map +1 -0
  44. package/dist/http-client/middleware/tracing.d.ts +32 -0
  45. package/dist/http-client/middleware/tracing.js +67 -0
  46. package/dist/http-client/middleware/tracing.js.map +1 -0
  47. package/dist/http-client/types.d.ts +6 -0
  48. package/dist/http-client/types.js +3 -0
  49. package/dist/http-client/types.js.map +1 -0
  50. package/dist/http-client/utils.d.ts +36 -0
  51. package/dist/http-client/utils.js +49 -0
  52. package/dist/http-client/utils.js.map +1 -0
  53. package/dist/http-server/constants.d.ts +4 -0
  54. package/dist/http-server/constants.js +8 -0
  55. package/dist/http-server/constants.js.map +1 -0
  56. package/dist/http-server/handler/health-check.d.ts +6 -0
  57. package/dist/http-server/handler/health-check.js +15 -0
  58. package/dist/http-server/handler/health-check.js.map +1 -0
  59. package/dist/http-server/middleware/logging.d.ts +10 -0
  60. package/dist/http-server/middleware/logging.js +31 -0
  61. package/dist/http-server/middleware/logging.js.map +1 -0
  62. package/dist/http-server/middleware/metrics.d.ts +23 -0
  63. package/dist/http-server/middleware/metrics.js +60 -0
  64. package/dist/http-server/middleware/metrics.js.map +1 -0
  65. package/dist/http-server/middleware/tracing.d.ts +8 -0
  66. package/dist/http-server/middleware/tracing.js +32 -0
  67. package/dist/http-server/middleware/tracing.js.map +1 -0
  68. package/dist/http-server/types.d.ts +25 -0
  69. package/dist/http-server/types.js +3 -0
  70. package/dist/http-server/types.js.map +1 -0
  71. package/dist/http-server/utils.d.ts +26 -0
  72. package/dist/http-server/utils.js +88 -0
  73. package/dist/http-server/utils.js.map +1 -0
  74. package/dist/logger/handler/console.d.ts +8 -0
  75. package/dist/logger/handler/console.js +36 -0
  76. package/dist/logger/handler/console.js.map +1 -0
  77. package/dist/logger/handler/sentry.d.ts +8 -0
  78. package/dist/logger/handler/sentry.js +36 -0
  79. package/dist/logger/handler/sentry.js.map +1 -0
  80. package/dist/logger/index.d.ts +6 -0
  81. package/dist/logger/index.js +31 -0
  82. package/dist/logger/index.js.map +1 -0
  83. package/dist/logger/types.d.ts +24 -0
  84. package/dist/logger/types.js +3 -0
  85. package/dist/logger/types.js.map +1 -0
  86. package/dist/metrics/constants.d.ts +4 -0
  87. package/dist/metrics/constants.js +8 -0
  88. package/dist/metrics/constants.js.map +1 -0
  89. package/dist/metrics/node.d.ts +18 -0
  90. package/dist/metrics/node.js +74 -0
  91. package/dist/metrics/node.js.map +1 -0
  92. package/dist/preset/index.d.ts +7 -0
  93. package/dist/preset/index.js +23 -0
  94. package/dist/preset/index.js.map +1 -0
  95. package/dist/preset/node/index.d.ts +15 -0
  96. package/dist/preset/node/index.js +90 -0
  97. package/dist/preset/node/index.js.map +1 -0
  98. package/dist/preset/node/response.d.ts +12 -0
  99. package/dist/preset/node/response.js +52 -0
  100. package/dist/preset/node/response.js.map +1 -0
  101. package/dist/preset/types.d.ts +7 -0
  102. package/dist/preset/types.js +3 -0
  103. package/dist/preset/types.js.map +1 -0
  104. package/dist/saga-runner/index.d.ts +8 -0
  105. package/dist/saga-runner/index.js +77 -0
  106. package/dist/saga-runner/index.js.map +1 -0
  107. package/dist/saga-runner/types.d.ts +10 -0
  108. package/dist/saga-runner/types.js +3 -0
  109. package/dist/saga-runner/types.js.map +1 -0
  110. package/dist/tokens.d.ts +40 -0
  111. package/dist/tokens.js +43 -0
  112. package/dist/tokens.js.map +1 -0
  113. package/dist/tracer/node.d.ts +10 -0
  114. package/dist/tracer/node.js +38 -0
  115. package/dist/tracer/node.js.map +1 -0
  116. package/dist/tracer/types.d.ts +2 -0
  117. package/dist/tracer/types.js +3 -0
  118. package/dist/tracer/types.js.map +1 -0
  119. package/{browser → dist/utils/browser}/analytics/data-layer.d.ts +0 -0
  120. package/{browser → dist/utils/browser}/analytics/data-layer.js +1 -2
  121. package/dist/utils/browser/analytics/data-layer.js.map +1 -0
  122. package/{browser → dist/utils/browser}/analytics/oko.d.ts +0 -0
  123. package/{browser → dist/utils/browser}/analytics/oko.js +6 -7
  124. package/dist/utils/browser/analytics/oko.js.map +1 -0
  125. package/dist/utils/browser/storage/index.d.ts +4 -0
  126. package/dist/utils/browser/storage/index.js +63 -0
  127. package/dist/utils/browser/storage/index.js.map +1 -0
  128. package/dist/utils/number.d.ts +6 -0
  129. package/dist/utils/number.js +13 -0
  130. package/dist/utils/number.js.map +1 -0
  131. package/dist/utils/react/error-handlers/index.d.ts +38 -0
  132. package/dist/utils/react/error-handlers/index.js +47 -0
  133. package/dist/utils/react/error-handlers/index.js.map +1 -0
  134. package/dist/utils/redux/remote-data.d.ts +23 -0
  135. package/dist/utils/redux/remote-data.js +28 -0
  136. package/dist/utils/redux/remote-data.js.map +1 -0
  137. package/dist/utils/redux-saga/take-chain.d.ts +24 -0
  138. package/dist/utils/redux-saga/take-chain.js +56 -0
  139. package/dist/utils/redux-saga/take-chain.js.map +1 -0
  140. package/dist/utils/webpack/module-federation/index.d.ts +21 -0
  141. package/dist/utils/webpack/module-federation/index.js +74 -0
  142. package/dist/utils/webpack/module-federation/index.js.map +1 -0
  143. package/dist/utils/webpack/module-federation/types.d.ts +26 -0
  144. package/dist/utils/webpack/module-federation/types.js +3 -0
  145. package/dist/utils/webpack/module-federation/types.js.map +1 -0
  146. package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
  147. package/dist/utils/webpack/module-federation/utils.js +36 -0
  148. package/dist/utils/webpack/module-federation/utils.js.map +1 -0
  149. package/package.json +49 -63
  150. package/readme.md +23 -0
  151. package/src/cache/types.ts +7 -0
  152. package/src/config/browser.ts +10 -0
  153. package/src/config/index.ts +18 -0
  154. package/src/config/node.ts +18 -0
  155. package/src/config/types.ts +9 -0
  156. package/src/config/utils.ts +7 -0
  157. package/src/container/application.ts +91 -0
  158. package/src/container/index.ts +79 -0
  159. package/src/container/types.ts +17 -0
  160. package/src/error-tracker/browser.ts +14 -0
  161. package/src/error-tracker/node.ts +14 -0
  162. package/src/error-tracker/types.ts +22 -0
  163. package/src/error-tracker/utils.ts +18 -0
  164. package/src/http-client/middleware/cookie.ts +73 -0
  165. package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
  166. package/src/http-client/types.ts +8 -0
  167. package/src/http-client/utils.ts +76 -0
  168. package/src/http-server/constants.ts +4 -0
  169. package/src/http-server/handler/health-check.ts +13 -0
  170. package/src/http-server/middleware/logging.ts +34 -0
  171. package/src/http-server/middleware/metrics.ts +87 -0
  172. package/src/http-server/middleware/tracing.ts +35 -0
  173. package/src/http-server/types.ts +29 -0
  174. package/src/http-server/utils.ts +105 -0
  175. package/src/logger/handler/console.ts +35 -0
  176. package/src/logger/handler/sentry.ts +38 -0
  177. package/src/logger/index.ts +31 -0
  178. package/src/logger/types.ts +28 -0
  179. package/src/metrics/constants.ts +4 -0
  180. package/src/metrics/node.ts +54 -0
  181. package/src/preset/index.ts +24 -0
  182. package/src/preset/node/index.ts +101 -0
  183. package/src/preset/node/response.ts +57 -0
  184. package/src/preset/types.ts +9 -0
  185. package/src/saga-runner/index.ts +59 -0
  186. package/src/saga-runner/types.ts +13 -0
  187. package/src/tokens.ts +54 -0
  188. package/src/tracer/node.ts +40 -0
  189. package/src/tracer/types.ts +3 -0
  190. package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
  191. package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
  192. package/src/{browser → utils/browser}/analytics/data-layer.ts +0 -0
  193. package/src/{browser → utils/browser}/analytics/oko.ts +6 -4
  194. package/src/utils/browser/storage/index.ts +75 -0
  195. package/src/utils/number.ts +8 -0
  196. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  197. package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
  198. package/src/utils/react/error-handlers/index.tsx +62 -0
  199. package/src/utils/redux/__test__/remote-data.test.ts +50 -0
  200. package/src/utils/redux/remote-data.ts +34 -0
  201. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  202. package/src/utils/redux-saga/take-chain.ts +65 -0
  203. package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
  204. package/src/utils/webpack/module-federation/index.ts +92 -0
  205. package/src/utils/webpack/module-federation/types.ts +44 -0
  206. package/src/utils/webpack/module-federation/utils.ts +43 -0
  207. package/browser/analytics/data-layer.js.map +0 -1
  208. package/browser/analytics/oko.js.map +0 -1
  209. package/cache/helpers.d.ts +0 -4
  210. package/cache/helpers.js +0 -39
  211. package/cache/helpers.js.map +0 -1
  212. package/cache/local-storage.d.ts +0 -34
  213. package/cache/local-storage.js +0 -90
  214. package/cache/local-storage.js.map +0 -1
  215. package/cache/redis.d.ts +0 -10
  216. package/cache/redis.js +0 -54
  217. package/cache/redis.js.map +0 -1
  218. package/cache/wrap-in-trace.d.ts +0 -8
  219. package/cache/wrap-in-trace.js +0 -68
  220. package/cache/wrap-in-trace.js.map +0 -1
  221. package/config/create.d.ts +0 -8
  222. package/config/create.js +0 -32
  223. package/config/create.js.map +0 -1
  224. package/config/helpers.d.ts +0 -11
  225. package/config/helpers.js +0 -71
  226. package/config/helpers.js.map +0 -1
  227. package/config/validate.d.ts +0 -18
  228. package/config/validate.js +0 -107
  229. package/config/validate.js.map +0 -1
  230. package/container/create-inject.d.ts +0 -7
  231. package/container/create-inject.js +0 -36
  232. package/container/create-inject.js.map +0 -1
  233. package/container/get-dependencies.d.ts +0 -13
  234. package/container/get-dependencies.js +0 -54
  235. package/container/get-dependencies.js.map +0 -1
  236. package/container/index.d.ts +0 -15
  237. package/container/index.js +0 -175
  238. package/container/index.js.map +0 -1
  239. package/container/is-container.d.ts +0 -7
  240. package/container/is-container.js +0 -17
  241. package/container/is-container.js.map +0 -1
  242. package/container/service-not-found-error.d.ts +0 -10
  243. package/container/service-not-found-error.js +0 -18
  244. package/container/service-not-found-error.js.map +0 -1
  245. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  246. package/create-proxy/create-proxy-middleware/index.js +0 -47
  247. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  248. package/create-proxy/index.d.ts +0 -12
  249. package/create-proxy/index.js +0 -25
  250. package/create-proxy/index.js.map +0 -1
  251. package/create-response-sender/index.d.ts +0 -8
  252. package/create-response-sender/index.js +0 -42
  253. package/create-response-sender/index.js.map +0 -1
  254. package/get-dynamic-data/index.d.ts +0 -8
  255. package/get-dynamic-data/index.js +0 -23
  256. package/get-dynamic-data/index.js.map +0 -1
  257. package/graceful-shutdown/index.d.ts +0 -26
  258. package/graceful-shutdown/index.js +0 -87
  259. package/graceful-shutdown/index.js.map +0 -1
  260. package/helpers/add-error-handling/index.d.ts +0 -1
  261. package/helpers/add-error-handling/index.js +0 -42
  262. package/helpers/add-error-handling/index.js.map +0 -1
  263. package/helpers/api/create-enhancer.d.ts +0 -12
  264. package/helpers/api/create-enhancer.js +0 -52
  265. package/helpers/api/create-enhancer.js.map +0 -1
  266. package/helpers/api/create-instance.d.ts +0 -11
  267. package/helpers/api/create-instance.js +0 -39
  268. package/helpers/api/create-instance.js.map +0 -1
  269. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  270. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  271. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  272. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  273. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  274. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  275. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  276. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  277. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  278. package/helpers/api/middlewares/helpers.d.ts +0 -11
  279. package/helpers/api/middlewares/helpers.js +0 -27
  280. package/helpers/api/middlewares/helpers.js.map +0 -1
  281. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  282. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  283. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  284. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  285. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  286. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  287. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  288. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  289. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  290. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  291. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  292. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  293. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  294. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  295. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  296. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  297. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  298. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  299. package/helpers/api/server-adapter/constants.d.ts +0 -5
  300. package/helpers/api/server-adapter/constants.js +0 -16
  301. package/helpers/api/server-adapter/constants.js.map +0 -1
  302. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  303. package/helpers/api/server-adapter/helpers.js +0 -208
  304. package/helpers/api/server-adapter/helpers.js.map +0 -1
  305. package/helpers/api/server-adapter/index.d.ts +0 -10
  306. package/helpers/api/server-adapter/index.js +0 -118
  307. package/helpers/api/server-adapter/index.js.map +0 -1
  308. package/helpers/development/use-dot-env.d.ts +0 -6
  309. package/helpers/development/use-dot-env.js +0 -11
  310. package/helpers/development/use-dot-env.js.map +0 -1
  311. package/helpers/get-params/index.d.ts +0 -4
  312. package/helpers/get-params/index.js +0 -51
  313. package/helpers/get-params/index.js.map +0 -1
  314. package/helpers/http/request-getters.d.ts +0 -5
  315. package/helpers/http/request-getters.js +0 -49
  316. package/helpers/http/request-getters.js.map +0 -1
  317. package/helpers/http/statuses-validator.d.ts +0 -3
  318. package/helpers/http/statuses-validator.js +0 -25
  319. package/helpers/http/statuses-validator.js.map +0 -1
  320. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  321. package/helpers/logger/create-pino-instance/index.js +0 -39
  322. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  323. package/helpers/logger/format-time/index.d.ts +0 -6
  324. package/helpers/logger/format-time/index.js +0 -9
  325. package/helpers/logger/format-time/index.js.map +0 -1
  326. package/helpers/metrics/index.d.ts +0 -23
  327. package/helpers/metrics/index.js +0 -42
  328. package/helpers/metrics/index.js.map +0 -1
  329. package/helpers/prometheus/index.d.ts +0 -4
  330. package/helpers/prometheus/index.js +0 -13
  331. package/helpers/prometheus/index.js.map +0 -1
  332. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  333. package/helpers/prometheus/measure-middleware.js +0 -69
  334. package/helpers/prometheus/measure-middleware.js.map +0 -1
  335. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  336. package/helpers/prometheus/metric-adapter.js +0 -98
  337. package/helpers/prometheus/metric-adapter.js.map +0 -1
  338. package/helpers/react/error-handlers/index.d.ts +0 -40
  339. package/helpers/react/error-handlers/index.js +0 -52
  340. package/helpers/react/error-handlers/index.js.map +0 -1
  341. package/helpers/redux/constants.d.ts +0 -5
  342. package/helpers/redux/constants.js +0 -14
  343. package/helpers/redux/constants.js.map +0 -1
  344. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  345. package/helpers/redux/create-compose-middleware.js +0 -23
  346. package/helpers/redux/create-compose-middleware.js.map +0 -1
  347. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  348. package/helpers/redux/get-dev-compose-creator.js +0 -13
  349. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  350. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  351. package/helpers/redux/prepare-on-ready.js +0 -16
  352. package/helpers/redux/prepare-on-ready.js.map +0 -1
  353. package/helpers/redux/remote-data.d.ts +0 -40
  354. package/helpers/redux/remote-data.js +0 -91
  355. package/helpers/redux/remote-data.js.map +0 -1
  356. package/helpers/redux/selector/statuses.d.ts +0 -23
  357. package/helpers/redux/selector/statuses.js +0 -34
  358. package/helpers/redux/selector/statuses.js.map +0 -1
  359. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  360. package/helpers/redux/wait-on-store-readiness.js +0 -29
  361. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  362. package/helpers/render/get-react-markup-data.d.ts +0 -14
  363. package/helpers/render/get-react-markup-data.js +0 -20
  364. package/helpers/render/get-react-markup-data.js.map +0 -1
  365. package/helpers/render/index.d.ts +0 -21
  366. package/helpers/render/index.js +0 -72
  367. package/helpers/render/index.js.map +0 -1
  368. package/helpers/render/render-app.d.ts +0 -12
  369. package/helpers/render/render-app.js +0 -12
  370. package/helpers/render/render-app.js.map +0 -1
  371. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  372. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  373. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  374. package/helpers/saga/cache-result.d.ts +0 -46
  375. package/helpers/saga/cache-result.js +0 -71
  376. package/helpers/saga/cache-result.js.map +0 -1
  377. package/helpers/saga/create-store.d.ts +0 -20
  378. package/helpers/saga/create-store.js +0 -106
  379. package/helpers/saga/create-store.js.map +0 -1
  380. package/helpers/saga/do-safe-request.d.ts +0 -38
  381. package/helpers/saga/do-safe-request.js +0 -45
  382. package/helpers/saga/do-safe-request.js.map +0 -1
  383. package/helpers/saga/safe-request.d.ts +0 -7
  384. package/helpers/saga/safe-request.js +0 -15
  385. package/helpers/saga/safe-request.js.map +0 -1
  386. package/helpers/saga/take-chain.d.ts +0 -20
  387. package/helpers/saga/take-chain.js +0 -56
  388. package/helpers/saga/take-chain.js.map +0 -1
  389. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  390. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  391. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  392. package/helpers/tracer/index.d.ts +0 -24
  393. package/helpers/tracer/index.js +0 -144
  394. package/helpers/tracer/index.js.map +0 -1
  395. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  396. package/helpers/utils/check-feature-by-segment.js +0 -31
  397. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  398. package/helpers/utils/format-object-keys.d.ts +0 -6
  399. package/helpers/utils/format-object-keys.js +0 -27
  400. package/helpers/utils/format-object-keys.js.map +0 -1
  401. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  402. package/helpers/utils/get-ms-from-hrt.js +0 -22
  403. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  404. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  405. package/helpers/utils/is-match-pattern-list.js +0 -16
  406. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  407. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  408. package/helpers/utils/is-not-empty-array.js +0 -12
  409. package/helpers/utils/is-not-empty-array.js.map +0 -1
  410. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  411. package/helpers/utils/is-not-empty-string.js +0 -15
  412. package/helpers/utils/is-not-empty-string.js.map +0 -1
  413. package/helpers/utils/is-numeric.d.ts +0 -7
  414. package/helpers/utils/is-numeric.js +0 -16
  415. package/helpers/utils/is-numeric.js.map +0 -1
  416. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  417. package/helpers/utils/wrap-in-measure-event.js +0 -50
  418. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  419. package/logger/create-logger-middleware/index.d.ts +0 -14
  420. package/logger/create-logger-middleware/index.js +0 -41
  421. package/logger/create-logger-middleware/index.js.map +0 -1
  422. package/logger/create-sentry-instance/index.d.ts +0 -29
  423. package/logger/create-sentry-instance/index.js +0 -63
  424. package/logger/create-sentry-instance/index.js.map +0 -1
  425. package/logger/create-sentry-middleware/index.d.ts +0 -14
  426. package/logger/create-sentry-middleware/index.js +0 -19
  427. package/logger/create-sentry-middleware/index.js.map +0 -1
  428. package/logger/handler-creators/index.d.ts +0 -5
  429. package/logger/handler-creators/index.js +0 -41
  430. package/logger/handler-creators/index.js.map +0 -1
  431. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  432. package/logger/initialize-sentry-creator/index.js +0 -35
  433. package/logger/initialize-sentry-creator/index.js.map +0 -1
  434. package/logger/sentry-logger/index.d.ts +0 -9
  435. package/logger/sentry-logger/index.js +0 -36
  436. package/logger/sentry-logger/index.js.map +0 -1
  437. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  438. package/module-federation/__example__/webpack-config.example.js +0 -58
  439. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  440. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
  441. package/module-federation/enhanced-module-federation-plugin.js +0 -97
  442. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  443. package/module-federation/utils/index.d.ts +0 -16
  444. package/module-federation/utils/index.js +0 -33
  445. package/module-federation/utils/index.js.map +0 -1
  446. package/observe-middleware/index.d.ts +0 -9
  447. package/observe-middleware/index.js +0 -67
  448. package/observe-middleware/index.js.map +0 -1
  449. package/set-header-middleware/create.d.ts +0 -10
  450. package/set-header-middleware/create.js +0 -16
  451. package/set-header-middleware/create.js.map +0 -1
  452. package/src/cache/helpers.js +0 -32
  453. package/src/cache/local-storage.ts +0 -92
  454. package/src/cache/redis.js +0 -79
  455. package/src/cache/wrap-in-trace.js +0 -57
  456. package/src/config/create.js +0 -33
  457. package/src/config/helpers.js +0 -71
  458. package/src/config/validate.js +0 -114
  459. package/src/container/create-inject.js +0 -32
  460. package/src/container/get-dependencies.js +0 -46
  461. package/src/container/index.js +0 -188
  462. package/src/container/is-container.js +0 -14
  463. package/src/container/service-not-found-error.js +0 -14
  464. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  465. package/src/create-proxy/index.js +0 -27
  466. package/src/create-response-sender/index.js +0 -48
  467. package/src/get-dynamic-data/index.js +0 -26
  468. package/src/graceful-shutdown/index.js +0 -97
  469. package/src/helpers/add-error-handling/index.js +0 -24
  470. package/src/helpers/api/create-enhancer.js +0 -52
  471. package/src/helpers/api/create-instance.js +0 -42
  472. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  473. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  474. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  475. package/src/helpers/api/middlewares/helpers.js +0 -26
  476. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  477. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  478. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  479. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  480. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  481. package/src/helpers/api/server-adapter/constants.js +0 -12
  482. package/src/helpers/api/server-adapter/helpers.js +0 -244
  483. package/src/helpers/api/server-adapter/index.js +0 -155
  484. package/src/helpers/development/use-dot-env.js +0 -9
  485. package/src/helpers/get-params/index.js +0 -59
  486. package/src/helpers/http/request-getters.js +0 -42
  487. package/src/helpers/http/statuses-validator.js +0 -20
  488. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  489. package/src/helpers/logger/format-time/index.js +0 -6
  490. package/src/helpers/metrics/index.js +0 -40
  491. package/src/helpers/prometheus/index.js +0 -9
  492. package/src/helpers/prometheus/measure-middleware.js +0 -73
  493. package/src/helpers/prometheus/metric-adapter.js +0 -99
  494. package/src/helpers/react/error-handlers/index.tsx +0 -68
  495. package/src/helpers/redux/constants.js +0 -10
  496. package/src/helpers/redux/create-compose-middleware.js +0 -24
  497. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  498. package/src/helpers/redux/prepare-on-ready.js +0 -16
  499. package/src/helpers/redux/remote-data.js +0 -124
  500. package/src/helpers/redux/selector/statuses.js +0 -30
  501. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  502. package/src/helpers/render/get-react-markup-data.js +0 -18
  503. package/src/helpers/render/index.js +0 -69
  504. package/src/helpers/render/render-app.js +0 -15
  505. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  506. package/src/helpers/saga/cache-result.js +0 -77
  507. package/src/helpers/saga/create-store.js +0 -102
  508. package/src/helpers/saga/do-safe-request.js +0 -47
  509. package/src/helpers/saga/safe-request.js +0 -11
  510. package/src/helpers/saga/take-chain.js +0 -53
  511. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  512. package/src/helpers/tracer/index.js +0 -171
  513. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  514. package/src/helpers/utils/format-object-keys.js +0 -23
  515. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  516. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  517. package/src/helpers/utils/is-not-empty-array.js +0 -8
  518. package/src/helpers/utils/is-not-empty-string.js +0 -11
  519. package/src/helpers/utils/is-numeric.ts +0 -12
  520. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  521. package/src/logger/create-logger-middleware/index.js +0 -46
  522. package/src/logger/create-sentry-instance/index.js +0 -74
  523. package/src/logger/create-sentry-middleware/index.js +0 -16
  524. package/src/logger/handler-creators/index.js +0 -38
  525. package/src/logger/initialize-sentry-creator/index.js +0 -43
  526. package/src/logger/sentry-logger/index.js +0 -33
  527. package/src/module-federation/__example__/webpack-config.example.js +0 -64
  528. package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
  529. package/src/module-federation/utils/index.js +0 -39
  530. package/src/observe-middleware/index.js +0 -70
  531. package/src/set-header-middleware/create.js +0 -17
@@ -1,97 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import isNumeric from '../helpers/utils/is-numeric';
3
-
4
- /**
5
- * Время ожидания до принудительного завершения процесса приложения по умолчанию.
6
- * @type {number}
7
- */
8
- export const defaultExitTimeout = 20000;
9
-
10
- /**
11
- * Декорирует http-сервер, добавляя остановку при завершении процесса node-приложения.
12
- * @param {import('http').Server} server Экземпляр класса http.Server.
13
- * @param {Object} [options] Экземпляр класса http.Server.
14
- * @param {Function} [options.onSuccess] Будет вызвана перед завершением процесса в случае успешного завершения.
15
- * @param {Function} [options.onError] Будет вызвана перед принудительным завершением процесса.
16
- * @param {number} [options.timeout=20000] Время ожидания остановки, после которого выполнится принудительная остановка.
17
- */
18
- export const decorateGracefulShutdown = (server, options) => {
19
- const handleShutdown = createShutdownHandler(server, options);
20
-
21
- // e.g. kill
22
- process.on('SIGTERM', handleShutdown);
23
-
24
- // e.g. Ctrl + C
25
- process.on('SIGINT', handleShutdown);
26
- };
27
-
28
- /**
29
- * Возвращает функцию, которая запускает остановку http-сервера и завершает процесс приложения принудительно.
30
- * @param {import('http').Server} server Экземпляр класса http.Server.
31
- * @param {Object} [options] Экземпляр класса http.Server.
32
- * @param {Function} [options.onSuccess] Будет вызвана перед завершением процесса.
33
- * @param {Function} [options.onError] Будет вызвана перед завершением процесса.
34
- * @param {number} [options.timeout=20000] Время ожидания остановки, после которого выполнится принудительная остановка.
35
- * @return {Function} Функция, запускающая остановку http-сервера и завершающая процесс приложения принудительно.
36
- */
37
- export const createShutdownHandler = (
38
- server,
39
- {
40
- onError,
41
- onSuccess,
42
- timeout = defaultExitTimeout,
43
- } = {}
44
- ) => {
45
- const validTimeout = isNumeric(timeout)
46
- ? Number(timeout)
47
- : defaultExitTimeout;
48
-
49
- return () => {
50
- server.close(createCloseHandler(0, onSuccess));
51
- setTimeout(createCloseHandler(1, onError), validTimeout); // принудительное завершение
52
- };
53
- };
54
-
55
- /**
56
- * Возвращает функцию, которая завершает процесс node-приложения с определенным кодом.
57
- * @param {number} [exitCode=0] Код завершения процесса.
58
- * @param {Function} [onClose] Функция, которая будет вызвана перед завершением процесса.
59
- * @return {Function} Функция завершения процесса.
60
- */
61
- export const createCloseHandler = (exitCode = 0, onClose) => () => {
62
- isFunction(onClose) && onClose(exitCode);
63
- process.exit(exitCode);
64
- };
65
-
66
- /**
67
- * Создаёт обработчики событий завершения приложения.
68
- * @param {Object} options Опции.
69
- * @param {Object} options.logger Логгер.
70
- * @param {Object} [options.config] Конфигурация приложения.
71
- * @param {string} options.message Сообщение, которое будет залоггировано в консоль.
72
- * @return {Function} Обработчик завершения приложения.
73
- */
74
- export const onExitHandlerCreator = ({ logger, config, message }) => () => {
75
- const { isDevelopment = true } = config || {};
76
- isDevelopment && logger.info(message);
77
- };
78
-
79
- /**
80
- * Сервис для реализации лёгкого завершения приложения.
81
- * @param {Object} options Опции.
82
- * @param {Function} options.onExitError Обработчик завершения с ошибкой.
83
- * @param {Function} options.onExitSuccess Обработчик успешного завершения.
84
- * @param {number} options.processExitTimeout Максимальное время, отведённое приложению на завершение.
85
- * @return {Function} Функция, реализующая лёгкое завершение приложения.
86
- */
87
- export const gracefulShutdownCreator = (
88
- {
89
- onExitError: onError,
90
- onExitSuccess: onSuccess,
91
- processExitTimeout: timeout,
92
- }
93
- ) => server => decorateGracefulShutdown(server, {
94
- onError,
95
- onSuccess,
96
- timeout,
97
- });
@@ -1,24 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
-
3
- /**
4
- * Возвращает функцию с обработкой ошибки обработчика роута Express.
5
- * @param {Function} handler Обработчик роута Express.
6
- * @param {Function} [errorHandler] Обработчик ошибки роута Express.
7
- * @return {Function} Обработчик роута обернутого для отлова ошибок.
8
- */
9
- export const addErrorHandling = (handler, errorHandler) => {
10
- if (!isFunction(handler)) {
11
- throw new Error('Аргумент "handler" должен быть функцией.');
12
- }
13
- return async (request, response, next, ...args) => {
14
- try {
15
- await handler(request, response, next, ...args);
16
- } catch (err) {
17
- if (isFunction(errorHandler)) {
18
- await errorHandler(err, request, response, next, ...args);
19
- } else {
20
- await next(err);
21
- }
22
- }
23
- };
24
- };
@@ -1,52 +0,0 @@
1
- import { createService } from '../../container';
2
-
3
- /**
4
- * Конструктор для создания функции для применения middleware к экземпляру axios.
5
- * @param {Array} middlewares Middleware, которые должны быть применены.
6
- * @return {function(Object): Object} Функция для применения middleware к экземпляру axios.
7
- */
8
- export const applyMiddleware = (...middlewares) =>
9
- instance =>
10
- middlewares.reduce(
11
- (currentInstance, middleware) => currentInstance.use(middleware),
12
- instance
13
- );
14
-
15
- /**
16
- * Функция для сборки middleware в функцию для применения к экземпляру axios.
17
- * @param {Array<Function>} constructors Функции-конструкторы middleware.
18
- * @param {Object} params Параметры для конструкторов.
19
- * @return {function(Object): Object} Функция для применения созданных middleware к экземпляру axios.
20
- */
21
- export const createEnhancer = (constructors, params) =>
22
- applyMiddleware(
23
- ...Array.isArray(constructors) ? constructors.map(constructor => constructor(params)) : []
24
- );
25
-
26
- /**
27
- * Преобразует опции сервиса в аргументы функции.
28
- * @param {Object} param Параметры.
29
- * @param {Array<Function>} param.constructors Функции-конструкторы middleware.
30
- * @param {Object} param.params Параметры для конструкторов.
31
- * @return {Array} Массив агрументов для использования в функции.
32
- */
33
- export const mapServiceOptionsToArgs = (
34
- {
35
- constructors,
36
- ...params
37
- }
38
- ) => [
39
- constructors,
40
- params,
41
- ];
42
-
43
- /**
44
- * Функция для сборки middleware в функцию для применения к экземпляру axios для использования в контейнере.
45
- * @type {Function}
46
- */
47
- const enhancerConstructor = createService(
48
- createEnhancer,
49
- mapServiceOptionsToArgs
50
- );
51
-
52
- export default enhancerConstructor;
@@ -1,42 +0,0 @@
1
- import { create } from 'middleware-axios';
2
- import isFunction from 'lodash/isFunction';
3
- import { createService } from '../../container';
4
-
5
- /**
6
- * Функция для создания экземпляра axios с возможностью передать обработчик для применения middleware.
7
- * @param {Object} config Конфигурация для axios.
8
- * @param {Function} enhancer Функция для применения middleware к экземпляру.
9
- * @return {Object} Экземпляр axios с применёнными middleware.
10
- */
11
- export const createInstance = (config, enhancer) => {
12
- const instance = create(config);
13
- return isFunction(enhancer) ? enhancer(instance) : instance;
14
- };
15
-
16
- /**
17
- * Преобразует опции сервиса в аргументы функции.
18
- * @param {Object} param Параметры.
19
- * @param {Object} param.config Конфигурация для axios.
20
- * @param {Function} param.enhancer Функция для применения middleware к экземпляру.
21
- * @return {Array} Массив агрументов для использования в функции.
22
- */
23
- export const mapServiceOptionsToArgs = (
24
- {
25
- config,
26
- enhancer,
27
- }
28
- ) => [
29
- config,
30
- enhancer,
31
- ];
32
-
33
- /**
34
- * Конструктор экземпляра axios для использования в контейнере.
35
- * @type {Function}
36
- */
37
- const instanceConstructor = createService(
38
- createInstance,
39
- mapServiceOptionsToArgs
40
- );
41
-
42
- export default instanceConstructor;
@@ -1,27 +0,0 @@
1
- import uniq from 'lodash/uniq';
2
- import get from 'lodash/get';
3
-
4
- /**
5
- * Создаёт middleware для сбора cookie со всех запросов в API и их передачи в ответ сервера.
6
- * @param {Object} options Параметры для создания middleware.
7
- * @param {Object} options.response Ответ на запрос в сервис.
8
- * @return {function(Object, Function): Promise} Middleware для сбора cookie со всех запросов в API.
9
- */
10
- const createCollectCookieMiddleware = ({ response }) =>
11
-
12
- /**
13
- * Middleware для сбора cookie со всех запросов в API.
14
- * @param {Object} requestConfig Конфигурация запроса API.
15
- * @param {Function} next Функция для передачи контекста выполнения следующему middleware.
16
- * @return {Promise} Промис.
17
- */
18
- async (requestConfig, next) => {
19
- const apiResponse = await next(requestConfig);
20
- const initialCookie = response.get('set-cookie') || [];
21
- const additionalCookie = get(apiResponse, 'headers.set-cookie', []);
22
- if (additionalCookie.length) {
23
- response.set('set-cookie', uniq([...initialCookie, ...additionalCookie]));
24
- }
25
- };
26
-
27
- export default createCollectCookieMiddleware;
@@ -1,31 +0,0 @@
1
- import { getMsFromHRT } from '../../utils/get-ms-from-hrt';
2
-
3
- /**
4
- * Создаёт middleware, собирающий данные о времени ответа запросов в API.
5
- * @param {Object} param Параметры.
6
- * @param {Object} param.response Ответ.
7
- * @param {string} param.timeDataKey Ключ свойства в response.locals для сохранения замеров времени.
8
- * @return {function(Object, Function)} Middleware для сохранения времени ответа API.
9
- */
10
- const createCountApiResponseTimeMiddleware = ({ response, timeDataKey }) =>
11
-
12
- /**
13
- * Middleware для сбора данных о времени ответа запросов в API.
14
- * @param {Object} requestConfig Конфигурация запроса API.
15
- * @param {Function} next Функция для передачи контекста выполнения следующему middleware.
16
- * @return {Promise} Промис.
17
- */
18
- async (requestConfig, next) => {
19
- const startTime = process.hrtime();
20
- const apiResponse = await next(requestConfig);
21
- const url = apiResponse.config.url.replace(/\/\d+/gi, '/ID');
22
- const method = apiResponse.config.method.toUpperCase();
23
-
24
- if (!response.locals[timeDataKey]) {
25
- response.locals[timeDataKey] = {};
26
- }
27
- response.locals[timeDataKey][`${method} ${url}`] = getMsFromHRT(process.hrtime(startTime));
28
- return response;
29
- };
30
-
31
- export default createCountApiResponseTimeMiddleware;
@@ -1,124 +0,0 @@
1
- import { createService } from '../../../container';
2
- import pick from 'lodash/pick';
3
-
4
- /**
5
- * Отправляет крошки http запроса.
6
- * @param {Function} sendBreadcrumb Функция отправки крошек.
7
- * @param {Object} response Объект в формате ответа Axios, содержащий данные об ответе.
8
- * @param {boolean} asRequest Обработать как событие запроса.
9
- * @private
10
- */
11
- export const _sendHttpBreadcrumb = (sendBreadcrumb, response, asRequest = false) => {
12
- const statusCode = asRequest ? 'FETCHING' : response?.status || 'UNKNOWN';
13
- const { url, baseURL, method, params } = response?.config || {};
14
-
15
- const fullURL = baseURL ? `${baseURL.replace(/\/$/, '')}${url}` : url;
16
-
17
- const breadcrumb = {
18
- category: asRequest ? 'http.request' : 'http.response',
19
- type: 'http',
20
- data: {
21
- url: fullURL,
22
- status_code: statusCode,
23
- method: method && method.toUpperCase(),
24
- params,
25
- },
26
- level: asRequest || (statusCode >= 200 && statusCode < 300) ? 'info' : 'error',
27
- };
28
-
29
- sendBreadcrumb && sendBreadcrumb(breadcrumb);
30
- };
31
-
32
- /**
33
- * Создаёт middleware, добавляющий хлебные крошки о запросе в API в сервис логирования ошибок.
34
- * @param {Object} sentry Сервис логирования.
35
- * @param {Function} sentry.captureBreadcrumb Функция сбора хлебных крошек.
36
- * @return {function(Object, Function)} Middleware для добавления крошек.
37
- * @private
38
- */
39
- const _createAttachBreadcrumbsMiddleware = ({ captureBreadcrumb }) =>
40
-
41
- /**
42
- * Middleware добавления крошек в сервис логирования.
43
- * @param {Object} requestConfig Конфигурация запроса API.
44
- * @param {Function} next Функция для передачи контекста выполнения следующему middleware.
45
- * @return {Promise} Промис.
46
- */
47
- async (config, next, defaults) => {
48
- try {
49
- _sendHttpBreadcrumb(captureBreadcrumb, { config: { ...defaults, ...config } }, true);
50
-
51
- const apiResponse = await next(config);
52
-
53
- _sendHttpBreadcrumb(captureBreadcrumb, apiResponse);
54
- } catch (error) {
55
- error.isAxiosError && error.response && _sendHttpBreadcrumb(captureBreadcrumb, error.response);
56
-
57
- throw error;
58
- }
59
- };
60
-
61
- /**
62
- * Создаёт middleware, отправляющий исключения при запросе в API в сервис логирования ошибок.
63
- * @param {Object} sentry Сервис логирования.
64
- * @param {Function} sentry.captureExtendedException Функция отправки исключения.
65
- * @return {function(Object, Function)} Middleware для захвата исключения.
66
- * @private
67
- */
68
- const _createHandleExceptionMiddleware = ({ captureExtendedException }) =>
69
- async (config, next, defaults) => {
70
- try {
71
- await next(config);
72
- } catch (error) {
73
- const { status } = error.response || {};
74
- const { logLevelConfig } = config;
75
-
76
- captureExtendedException && captureExtendedException(
77
- error,
78
- pick(
79
- { ...defaults, ...config },
80
- ['url', 'baseURL', 'method', 'headers', 'params', 'data']
81
- ),
82
- {
83
- dataName: 'Request details',
84
- dataAsContext: true,
85
- level: _getLevelFromConfig(status, logLevelConfig),
86
- }
87
- );
88
- }
89
- };
90
-
91
- /**
92
- * Функция преобразования конфига уровней логирования запроса в уровень логирования Sentry.
93
- * @param {number} statusCode Код ответа сервера.
94
- * @param {Object} logLevelConfig Конфиг уровней логирования. `{ default: 'error', 422: 'warning', 419: 'error' }`.
95
- * @return {string} Log level.
96
- * @private
97
- */
98
- export const _getLevelFromConfig = (statusCode, logLevelConfig = {}) => {
99
- let level = logLevelConfig.default || 'warning';
100
-
101
- if (statusCode && logLevelConfig[statusCode]) {
102
- level = logLevelConfig[statusCode];
103
- }
104
-
105
- return level;
106
- };
107
-
108
- /**
109
- * Функция преобразования зависимостей сервиса в аргументы функции.
110
- * @param {Object} dependencies Зависимости.
111
- * @return {Array} Массив аргументов.
112
- * @private
113
- */
114
- export const _deptToArg = ({ sentry }) => [sentry];
115
-
116
- export const createAttachBreadcrumbsMiddleware = createService(
117
- _createAttachBreadcrumbsMiddleware,
118
- _deptToArg
119
- );
120
-
121
- export const createHandleExceptionMiddleware = createService(
122
- _createHandleExceptionMiddleware,
123
- _deptToArg
124
- );
@@ -1,26 +0,0 @@
1
- import pipe from 'lodash/fp/pipe';
2
- import path from 'lodash/fp/path';
3
- import pickBy from 'lodash/fp/pickBy';
4
-
5
- // Префикс сервисных заголовков.
6
- const SERVICE_PREFIX = 'Simaland-';
7
-
8
- /**
9
- * Возвращает объект заголовков, содержащих в своем названии префикс сервисных заголовков.
10
- * @param {import('http').IncomingMessage} request Запрос приложения.
11
- * @param {Object} request.headers Заголовки запроса.
12
- * @return {Object.<string, string>} Коллекция сервисных заголовков.
13
- */
14
- export const getServiceHeaders = pipe(
15
- path('headers'),
16
- pickBy((value, key) => key.toLowerCase().indexOf(SERVICE_PREFIX.toLowerCase()) === 0)
17
- );
18
-
19
- /** Формирует из параметров конфигурации и возвращает User-Agent.
20
- * @param {Object} config Конфигурация приложения.
21
- * @param {string} config.serviceName Название сервиса из конфигурации.
22
- * @param {string} config.version Версия приложения.
23
- * @return {string} User-Agent.
24
- */
25
- export const getServiceUserAgent = ({ serviceName, version } = {}) =>
26
- serviceName && version ? `simaland-${serviceName}/${version}` : '';
@@ -1,19 +0,0 @@
1
- /**
2
- * Создаёт middleware для добавления заголовков в запросы API.
3
- * @param {Object} options Параметры для создания middleware.
4
- * @param {Object} options.headers Объект заголовков для добавления к запросу в API.
5
- * @return {function(Object, Function): Promise} Middleware для использования в API.
6
- */
7
- export const createPassHeadersMiddleware = ({ headers }) =>
8
- async (requestConfig, next) => {
9
- if (!requestConfig.headers) {
10
- requestConfig.headers = {};
11
- }
12
-
13
- requestConfig.headers = {
14
- ...requestConfig.headers,
15
- ...headers,
16
- };
17
-
18
- await next(requestConfig);
19
- };
@@ -1,18 +0,0 @@
1
- import omit from 'lodash/omit';
2
- import { getCookie, getXClientIp } from '../../http/request-getters';
3
- import { getServiceHeaders, getServiceUserAgent } from './helpers';
4
-
5
- /**
6
- * Формирует объект заголовков из конфигурации приложения и запроса к приложению.
7
- * @param {Object} options Опции сервиса.
8
- * @param {Object} options.config Конфигурация приложения.
9
- * @param {import('http').IncomingMessage} options.request Запрос приложения.
10
- * @param {string|string[]} options.exclude Заголовки, которые требуется исключить из итогового списка.
11
- * @return {Object} Заголовки.
12
- */
13
- export const prepareRequestHeaders = ({ config, request, exclude = [] }) => omit({
14
- 'X-Client-Ip': getXClientIp({ request }),
15
- 'User-Agent': getServiceUserAgent(config),
16
- Cookie: getCookie(request),
17
- ...getServiceHeaders(request),
18
- }, exclude);
@@ -1,22 +0,0 @@
1
- import http from 'http';
2
- import https from 'https';
3
-
4
- /**
5
- * Добавляет в конфигурацию запроса опции httpAgent и httpsAgent.
6
- * @param {Object} options Параметры для создания middleware.
7
- * @param {https.Agent} options.httpsAgent Кастомизированный экземпляр https.Agent.
8
- * @param {http.Agent} options.httpAgent Кастомизированный экземпляр http.Agent.
9
- * @return {function(Object, Function):Promise} Middleware для использования в API.
10
- */
11
- const createSetHttpAgentsMiddleware = ({ httpsAgent, httpAgent }) =>
12
- async (requestConfig, next) => {
13
- if (httpAgent instanceof http.Agent) {
14
- requestConfig.httpAgent = httpAgent;
15
- }
16
- if (httpsAgent instanceof https.Agent) {
17
- requestConfig.httpsAgent = httpsAgent;
18
- }
19
- await next(requestConfig);
20
- };
21
-
22
- export default createSetHttpAgentsMiddleware;
@@ -1,46 +0,0 @@
1
- import EventEmitter from 'events';
2
- import { REQUEST_STAGES } from '../server-adapter/constants';
3
- import { FORMAT_HTTP_HEADERS } from 'opentracing';
4
-
5
- /**
6
- * Класс, наследующий от EventEmitter.
7
- */
8
- export class StageRequestEmitter extends EventEmitter {}
9
-
10
- /**
11
- * Создаёт middleware для трассировки этапов запроса в API.
12
- * @param {Object} options Параметры для создания middleware.
13
- * @param {Object} options.tracer Объект трейсера.
14
- * @return {function(Object, Function): Promise} Middleware для трассироваки запросов в API.
15
- */
16
- const createStagesTraceRequestMiddleware = ({ tracer }) =>
17
-
18
- /**
19
- * Middleware для трассировки этапов запроса в API.
20
- * @param {Object} requestConfig Параметры для создания middleware.
21
- * @param {Function} next Функция для получения данных.
22
- * @return {Promise} Promise.
23
- */
24
- async (requestConfig, next) => {
25
- const parentSpanContext = tracer.extract(FORMAT_HTTP_HEADERS, requestConfig.headers);
26
- const emitter = new StageRequestEmitter();
27
-
28
- let currentSpan;
29
- Object.values(REQUEST_STAGES).map(stage => emitter.on(stage, () => {
30
- if (currentSpan) {
31
- currentSpan
32
- .setOperationName(stage.replace('finish:', ''))
33
- .finish();
34
- }
35
- if (stage !== REQUEST_STAGES.end) {
36
- currentSpan = tracer.startSpan('', { childOf: parentSpanContext });
37
- }
38
- }));
39
- requestConfig.emitter = emitter;
40
-
41
- await next(requestConfig);
42
-
43
- emitter.removeAllListeners();
44
- };
45
-
46
- export default createStagesTraceRequestMiddleware;
@@ -1,58 +0,0 @@
1
- /**
2
- * Сертификат TLS для https.
3
- * @type {string}
4
- */
5
- export const fakeCert = `-----BEGIN CERTIFICATE-----
6
- MIIDazCCAlOgAwIBAgIUAufH+Il0B8cP7bvU8PedE9F0b9MwDQYJKoZIhvcNAQEL
7
- BQAwRTELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
8
- GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDAyMTUwNzM5MzRaFw0yMDAz
9
- MTYwNzM5MzRaMEUxCzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
10
- HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
11
- AQUAA4IBDwAwggEKAoIBAQDFuY/Pld4KGeLtvbFrnwjjqPHdYiJw6UM6GjEuzAHN
12
- fLjYjzCxbsae/UO+QyyLlZ0apQKHiznBga8Bc3JNZQ2O9xZ9BTUnJdvfq2ZgyGE8
13
- 9l4EWOd6I3MBLdzby9+NRs/mNSB10OkhOyYwcbjL8aR6QHzT570bg2Ab8mcLkKit
14
- aPD6Jtk+iOMdRdudKIcv3fvBxKPwYPsvDtpEaSIjysimQKF40uk7yTu1r0liuknE
15
- CObowqiH1zt+OTCutgpIAo7MuuE8ga7fQlq9IzlgIpgl2W12NjEYDB87jQ3FT7Dn
16
- qy5uZq4r9b5oQ4tRLgsP/yVLac0vCzwoA8EB2+0bxsiVAgMBAAGjUzBRMB0GA1Ud
17
- DgQWBBSQYsuIbKB5tOmH2hbLaWKkrfzLEzAfBgNVHSMEGDAWgBSQYsuIbKB5tOmH
18
- 2hbLaWKkrfzLEzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBp
19
- HzTKEe5F81Mdqeb84/+TeR7H6GTMXE8jl/wIXprkapG7FizRQ/nlGQSYHJ/U9R2w
20
- lTvnr0logj2f4Hz1WdyRCaE5BMTwSVPlbIPjfXBzvB140jlJpGzr5qbnMkwjymZT
21
- nRydKP1DdwlYnl6BwgZ7xGCyB2k9bWSfYu9918AXE/AKcan5siHlYWhobP1uVMIl
22
- JksaKH9nnQ/oZK/KZA1YoTc47ZqIGbNnHHFLuQ7BEClXRL4ixxrLLK2Kjxtd6PXD
23
- r1LpsSnEDuQ3MzzeKNduPolMdct8ioKJ2OA81ts/cImB4t80TdWujbL/oUXkHbdN
24
- YyJK3ZaLm/5uzOOHIuSu
25
- -----END CERTIFICATE-----`;
26
-
27
- /**
28
- * Ключ TLS для https.
29
- * @type {string}
30
- */
31
- export const fakeKey = `-----BEGIN PRIVATE KEY-----
32
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFuY/Pld4KGeLt
33
- vbFrnwjjqPHdYiJw6UM6GjEuzAHNfLjYjzCxbsae/UO+QyyLlZ0apQKHiznBga8B
34
- c3JNZQ2O9xZ9BTUnJdvfq2ZgyGE89l4EWOd6I3MBLdzby9+NRs/mNSB10OkhOyYw
35
- cbjL8aR6QHzT570bg2Ab8mcLkKitaPD6Jtk+iOMdRdudKIcv3fvBxKPwYPsvDtpE
36
- aSIjysimQKF40uk7yTu1r0liuknECObowqiH1zt+OTCutgpIAo7MuuE8ga7fQlq9
37
- IzlgIpgl2W12NjEYDB87jQ3FT7Dnqy5uZq4r9b5oQ4tRLgsP/yVLac0vCzwoA8EB
38
- 2+0bxsiVAgMBAAECggEAEYBoW16PpeM+s/6LetQ77DLjHc527/mlyrnQyqyiKDc3
39
- AWxDSiFdEWunmGrHwZ8/pcEfZTIMrbU18XHvlywvtAzo/637U3jFapn4WO7DtKq2
40
- Dbp02tnSbzNJDmeQZSf0dRMUyXjxedCLg9Q9IEhGX8/ffL5RfeL2GeMt/dcTJy4v
41
- 4Oo6GXP3YH/Ts+RxsHC9gWg3HukqwEycRYhaBCXSR4GEZE2wqhzkcVf9PxHpzHkT
42
- ktISa55bEMwhGtQewmXlCqlSiISLHQkJvkP83GOh6k/14jsPrToPasA+hBGNfj9K
43
- O+6fi4pxxmM8N7DgkLRHm9WQbYq5ZCCCklqkFxVJjQKBgQDxWjyC97U41dgFIoes
44
- JA++Nb39uyIHyh7s+JQt5miBNvns6KSKLqVql5lPeAa8Mj97orvLQUW/T0ogMTUJ
45
- JcwKTLF4TNqYMPKupoZk3fnrgGuclTVjjU2hSqrzp7XFP+vLNuktkVg2HoRrgT29
46
- qgDTQThZZQTTqEtgbIseaeqBXwKBgQDRuYGdeRaeTJVTVgmvAlfAvWuNUBvLNxHh
47
- 0ObCLIiFbF9g8bSd/WeqLyUs1zBQslxIXvnhIO9dPcDGqX3u+SSUzcc//YGYFvAB
48
- 6I1sTNPi+RsEz9bAM6/EpWQkbaaPpwHITz0YXGReou76nRirl0s5zqdbYWKkvk0n
49
- ZXgQVCe2iwKBgFv20k/lKzx431M1kRTauNT1jWt9Pr5RGe+Z2HyU6wUxeZH4I5oz
50
- o/w1v8k0JvzW+LGXlI8iU/1NrSUPGvJdYJ4cExOP1Utge1hpQ5RzsKM3z8leYXWJ
51
- hicLWJB3Ox/p92L7jWY7l60ne7WrDWeTu7TDiUEm6OvtmKspMOlp2l1pAoGBAMG1
52
- SdadJRsJOVNDwKX4z/yh+FkJiOJl9wpP3ROz9lTmCCKOnXjfuYQjD38fMu0WEM53
53
- iu05clz40LmtizfSvssCVerwx2YmqX/Zv+Yr//lAhIgpP/0+wDYtXRWYgaNlaewN
54
- 5CxACiSu8XRg7YxvrXezPDjW9jmb279rpT3PvO6JAoGAMN3sEr5Utws14g3BDaIc
55
- 9jHvYKKc05oqRbnfHkJmQBaphfj8DYwIgVrHc63RTadp6eK50gpEMk9cZiw3xu7I
56
- YQsOyH4x06NoPGelxkhX/rxOXOVtNmCNpMjgxoQJRm3WXNza476l3xDk2BltfTL6
57
- aawhzRoba6tWmXzyog3whEs=
58
- -----END PRIVATE KEY-----`;
@@ -1,12 +0,0 @@
1
- /**
2
- * Стадии запроса к API.
3
- * @type {Object}
4
- */
5
- export const REQUEST_STAGES = Object.freeze({
6
- start: 'start:request',
7
- dnsLookupFinish: 'finish:DNS Lookup',
8
- tcpConnectionConnect: 'finish:TCP Connection',
9
- tlsHandshakeFinish: 'finish:TLS Handshake',
10
- firstByteReceived: 'finish:Time to First Byte',
11
- end: 'finish:Data Loading',
12
- });