@sima-land/isomorph 11.0.0-alpha.36 → 11.0.0-alpha.38

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 (579) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +25 -0
  3. package/dist/cjs/cache/index.js +6 -0
  4. package/dist/cjs/cache/index.js.map +1 -0
  5. package/dist/cjs/cache/types.js +6 -0
  6. package/dist/cjs/cache/types.js.map +1 -0
  7. package/dist/cjs/config/base.js +22 -0
  8. package/dist/cjs/config/base.js.map +1 -0
  9. package/dist/cjs/config/index.js +20 -0
  10. package/dist/cjs/config/index.js.map +1 -0
  11. package/dist/cjs/config/source.js +25 -0
  12. package/dist/cjs/config/source.js.map +1 -0
  13. package/dist/cjs/config/types.js +6 -0
  14. package/dist/cjs/config/types.js.map +1 -0
  15. package/dist/cjs/di/application.js +106 -0
  16. package/dist/cjs/di/application.js.map +1 -0
  17. package/dist/cjs/di/container.js +55 -0
  18. package/dist/cjs/di/container.js.map +1 -0
  19. package/dist/cjs/di/errors.js +65 -0
  20. package/dist/cjs/di/errors.js.map +1 -0
  21. package/dist/cjs/di/index.js +59 -0
  22. package/dist/cjs/di/index.js.map +1 -0
  23. package/dist/cjs/di/preset.js +32 -0
  24. package/dist/cjs/di/preset.js.map +1 -0
  25. package/dist/cjs/di/token.js +44 -0
  26. package/dist/cjs/di/token.js.map +1 -0
  27. package/dist/cjs/di/types.js +6 -0
  28. package/dist/cjs/di/types.js.map +1 -0
  29. package/dist/cjs/http/errors.js +47 -0
  30. package/dist/cjs/http/errors.js.map +1 -0
  31. package/dist/cjs/http/index.js +63 -0
  32. package/dist/cjs/http/index.js.map +1 -0
  33. package/dist/cjs/http/types.js +6 -0
  34. package/dist/cjs/http/types.js.map +1 -0
  35. package/dist/cjs/log/errors.js +35 -0
  36. package/dist/cjs/log/errors.js.map +1 -0
  37. package/dist/cjs/log/handler/pino.js +31 -0
  38. package/dist/cjs/log/handler/pino.js.map +1 -0
  39. package/dist/cjs/log/handler/sentry.js +57 -0
  40. package/dist/cjs/log/handler/sentry.js.map +1 -0
  41. package/dist/cjs/log/index.js +26 -0
  42. package/dist/cjs/log/index.js.map +1 -0
  43. package/dist/cjs/log/logger.js +35 -0
  44. package/dist/cjs/log/logger.js.map +1 -0
  45. package/dist/cjs/log/types.js +6 -0
  46. package/dist/cjs/log/types.js.map +1 -0
  47. package/dist/cjs/package.json +1 -0
  48. package/dist/cjs/preset/isomorphic/constants.js +14 -0
  49. package/dist/cjs/preset/isomorphic/constants.js.map +1 -0
  50. package/dist/cjs/preset/isomorphic/index.js +6 -0
  51. package/dist/cjs/preset/isomorphic/index.js.map +1 -0
  52. package/{preset → dist/cjs/preset}/isomorphic/providers/index.js +19 -15
  53. package/dist/cjs/preset/isomorphic/providers/index.js.map +1 -0
  54. package/dist/cjs/preset/isomorphic/types.js +6 -0
  55. package/dist/cjs/preset/isomorphic/types.js.map +1 -0
  56. package/dist/cjs/preset/isomorphic/utils/index.js +322 -0
  57. package/dist/cjs/preset/isomorphic/utils/index.js.map +1 -0
  58. package/dist/cjs/preset/node/handler/index.js +52 -0
  59. package/dist/cjs/preset/node/handler/index.js.map +1 -0
  60. package/dist/cjs/preset/node/handler/providers/index.js +212 -0
  61. package/dist/cjs/preset/node/handler/providers/index.js.map +1 -0
  62. package/dist/cjs/preset/node/handler/utils/index.js +132 -0
  63. package/dist/cjs/preset/node/handler/utils/index.js.map +1 -0
  64. package/dist/cjs/preset/node/index.js +26 -0
  65. package/dist/cjs/preset/node/index.js.map +1 -0
  66. package/dist/cjs/preset/node/node/index.js +61 -0
  67. package/dist/cjs/preset/node/node/index.js.map +1 -0
  68. package/dist/cjs/preset/node/node/providers/index.js +403 -0
  69. package/dist/cjs/preset/node/node/providers/index.js.map +1 -0
  70. package/dist/cjs/preset/node/node/utils/http-client/index.js +122 -0
  71. package/dist/cjs/preset/node/node/utils/http-client/index.js.map +1 -0
  72. package/dist/cjs/preset/node/node/utils/http-server/index.js +18 -0
  73. package/dist/cjs/preset/node/node/utils/http-server/index.js.map +1 -0
  74. package/dist/cjs/preset/node/node/utils/index.js +20 -0
  75. package/dist/cjs/preset/node/node/utils/index.js.map +1 -0
  76. package/dist/cjs/preset/node/types.js +6 -0
  77. package/dist/cjs/preset/node/types.js.map +1 -0
  78. package/dist/cjs/preset/web/index.js +34 -0
  79. package/dist/cjs/preset/web/index.js.map +1 -0
  80. package/dist/cjs/preset/web/providers/index.js +94 -0
  81. package/dist/cjs/preset/web/providers/index.js.map +1 -0
  82. package/dist/cjs/tokens.js +86 -0
  83. package/dist/cjs/tokens.js.map +1 -0
  84. package/dist/cjs/utils/axios/index.js +40 -0
  85. package/dist/cjs/utils/axios/index.js.map +1 -0
  86. package/dist/cjs/utils/axios/middleware/cookie.js +28 -0
  87. package/dist/cjs/utils/axios/middleware/cookie.js.map +1 -0
  88. package/dist/cjs/utils/axios/middleware/log.js +37 -0
  89. package/dist/cjs/utils/axios/middleware/log.js.map +1 -0
  90. package/dist/cjs/utils/axios/sauce/index.js +57 -0
  91. package/dist/cjs/utils/axios/sauce/index.js.map +1 -0
  92. package/{utils → dist/cjs/utils}/axios/utils/index.js +19 -14
  93. package/dist/cjs/utils/axios/utils/index.js.map +1 -0
  94. package/{utils → dist/cjs/utils}/express/handler/health-check.js +11 -7
  95. package/dist/cjs/utils/express/handler/health-check.js.map +1 -0
  96. package/dist/cjs/utils/express/index.js +20 -0
  97. package/dist/cjs/utils/express/index.js.map +1 -0
  98. package/dist/cjs/utils/express/utils/index.js +22 -0
  99. package/dist/cjs/utils/express/utils/index.js.map +1 -0
  100. package/dist/cjs/utils/function.js +44 -0
  101. package/dist/cjs/utils/function.js.map +1 -0
  102. package/dist/cjs/utils/index.js +20 -0
  103. package/dist/cjs/utils/index.js.map +1 -0
  104. package/{utils/number.js → dist/cjs/utils/math.js} +7 -5
  105. package/dist/cjs/utils/math.js.map +1 -0
  106. package/dist/cjs/utils/react/error-handlers/index.js +80 -0
  107. package/dist/cjs/utils/react/error-handlers/index.js.map +1 -0
  108. package/dist/cjs/utils/react/index.js +19 -0
  109. package/dist/cjs/utils/react/index.js.map +1 -0
  110. package/dist/cjs/utils/redux/index.js +19 -0
  111. package/dist/cjs/utils/redux/index.js.map +1 -0
  112. package/dist/cjs/utils/redux/remote-data.js +118 -0
  113. package/dist/cjs/utils/redux/remote-data.js.map +1 -0
  114. package/dist/cjs/utils/redux-saga/index.js +20 -0
  115. package/dist/cjs/utils/redux-saga/index.js.map +1 -0
  116. package/dist/cjs/utils/redux-saga/middleware.js +149 -0
  117. package/dist/cjs/utils/redux-saga/middleware.js.map +1 -0
  118. package/dist/cjs/utils/redux-saga/take-chain.js +66 -0
  119. package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -0
  120. package/dist/cjs/utils/redux-saga/types.js +6 -0
  121. package/dist/cjs/utils/redux-saga/types.js.map +1 -0
  122. package/dist/cjs/utils/ssr/index.js +73 -0
  123. package/dist/cjs/utils/ssr/index.js.map +1 -0
  124. package/dist/cjs/utils/web/analytics/data-layer.js +20 -0
  125. package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -0
  126. package/dist/cjs/utils/web/analytics/index.js +20 -0
  127. package/dist/cjs/utils/web/analytics/index.js.map +1 -0
  128. package/dist/cjs/utils/web/analytics/oko.js +20 -0
  129. package/dist/cjs/utils/web/analytics/oko.js.map +1 -0
  130. package/dist/cjs/utils/web/storage/index.js +75 -0
  131. package/dist/cjs/utils/web/storage/index.js.map +1 -0
  132. package/dist/cjs/utils/webpack/env/index.js +96 -0
  133. package/dist/cjs/utils/webpack/env/index.js.map +1 -0
  134. package/dist/cjs/utils/webpack/env/types.js +6 -0
  135. package/dist/cjs/utils/webpack/env/types.js.map +1 -0
  136. package/dist/cjs/utils/webpack/env/utils.js +55 -0
  137. package/dist/cjs/utils/webpack/env/utils.js.map +1 -0
  138. package/dist/cjs/utils/webpack/index.js +20 -0
  139. package/dist/cjs/utils/webpack/index.js.map +1 -0
  140. package/dist/cjs/utils/webpack/module-federation/index.js +110 -0
  141. package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -0
  142. package/dist/cjs/utils/webpack/module-federation/types.js +6 -0
  143. package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -0
  144. package/{utils → dist/cjs/utils}/webpack/module-federation/utils.js +26 -31
  145. package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -0
  146. package/dist/esm/cache/index.js +2 -0
  147. package/dist/esm/cache/index.js.map +1 -0
  148. package/dist/esm/cache/types.js +2 -0
  149. package/dist/esm/cache/types.js.map +1 -0
  150. package/dist/esm/config/base.js +16 -0
  151. package/dist/esm/config/base.js.map +1 -0
  152. package/dist/esm/config/index.js +3 -0
  153. package/dist/esm/config/index.js.map +1 -0
  154. package/dist/esm/config/source.js +19 -0
  155. package/dist/esm/config/source.js.map +1 -0
  156. package/dist/esm/config/types.js +2 -0
  157. package/dist/esm/config/types.js.map +1 -0
  158. package/dist/esm/di/application.js +100 -0
  159. package/dist/esm/di/application.js.map +1 -0
  160. package/dist/esm/di/container.js +49 -0
  161. package/dist/esm/di/container.js.map +1 -0
  162. package/dist/esm/di/errors.js +56 -0
  163. package/dist/esm/di/errors.js.map +1 -0
  164. package/dist/esm/di/index.js +6 -0
  165. package/dist/esm/di/index.js.map +1 -0
  166. package/dist/esm/di/preset.js +26 -0
  167. package/dist/esm/di/preset.js.map +1 -0
  168. package/dist/esm/di/token.js +38 -0
  169. package/dist/esm/di/token.js.map +1 -0
  170. package/dist/esm/di/types.js +2 -0
  171. package/dist/esm/di/types.js.map +1 -0
  172. package/dist/esm/http/errors.js +39 -0
  173. package/dist/esm/http/errors.js.map +1 -0
  174. package/dist/esm/http/index.js +4 -0
  175. package/dist/esm/http/index.js.map +1 -0
  176. package/dist/esm/http/types.js +2 -0
  177. package/dist/esm/http/types.js.map +1 -0
  178. package/dist/esm/log/errors.js +27 -0
  179. package/dist/esm/log/errors.js.map +1 -0
  180. package/dist/esm/log/handler/pino.js +25 -0
  181. package/dist/esm/log/handler/pino.js.map +1 -0
  182. package/dist/esm/log/handler/sentry.js +52 -0
  183. package/dist/esm/log/handler/sentry.js.map +1 -0
  184. package/dist/esm/log/index.js +3 -0
  185. package/dist/esm/log/index.js.map +1 -0
  186. package/dist/esm/log/logger.js +29 -0
  187. package/dist/esm/log/logger.js.map +1 -0
  188. package/dist/esm/log/types.js +2 -0
  189. package/dist/esm/log/types.js.map +1 -0
  190. package/dist/esm/package.json +1 -0
  191. package/dist/esm/preset/isomorphic/constants.js +8 -0
  192. package/dist/esm/preset/isomorphic/constants.js.map +1 -0
  193. package/dist/esm/preset/isomorphic/index.js +2 -0
  194. package/dist/esm/preset/isomorphic/index.js.map +1 -0
  195. package/dist/esm/preset/isomorphic/providers/index.js +35 -0
  196. package/dist/esm/preset/isomorphic/providers/index.js.map +1 -0
  197. package/dist/esm/preset/isomorphic/types.js +2 -0
  198. package/dist/esm/preset/isomorphic/types.js.map +1 -0
  199. package/dist/esm/preset/isomorphic/utils/index.js +309 -0
  200. package/dist/esm/preset/isomorphic/utils/index.js.map +1 -0
  201. package/dist/esm/preset/node/handler/index.js +42 -0
  202. package/dist/esm/preset/node/handler/index.js.map +1 -0
  203. package/dist/esm/preset/node/handler/providers/index.js +194 -0
  204. package/dist/esm/preset/node/handler/providers/index.js.map +1 -0
  205. package/dist/esm/preset/node/handler/utils/index.js +113 -0
  206. package/dist/esm/preset/node/handler/utils/index.js.map +1 -0
  207. package/dist/esm/preset/node/index.js +3 -0
  208. package/dist/esm/preset/node/index.js.map +1 -0
  209. package/dist/esm/preset/node/node/index.js +56 -0
  210. package/dist/esm/preset/node/node/index.js.map +1 -0
  211. package/dist/esm/preset/node/node/providers/index.js +378 -0
  212. package/dist/esm/preset/node/node/providers/index.js.map +1 -0
  213. package/dist/esm/preset/node/node/utils/http-client/index.js +114 -0
  214. package/dist/esm/preset/node/node/utils/http-client/index.js.map +1 -0
  215. package/dist/esm/preset/node/node/utils/http-server/index.js +12 -0
  216. package/dist/esm/preset/node/node/utils/http-server/index.js.map +1 -0
  217. package/dist/esm/preset/node/node/utils/index.js +3 -0
  218. package/dist/esm/preset/node/node/utils/index.js.map +1 -0
  219. package/dist/esm/preset/node/types.js +2 -0
  220. package/dist/esm/preset/node/types.js.map +1 -0
  221. package/dist/esm/preset/web/index.js +29 -0
  222. package/dist/esm/preset/web/index.js.map +1 -0
  223. package/dist/esm/preset/web/providers/index.js +85 -0
  224. package/dist/esm/preset/web/providers/index.js.map +1 -0
  225. package/dist/esm/tokens.js +81 -0
  226. package/dist/esm/tokens.js.map +1 -0
  227. package/dist/esm/utils/axios/index.js +5 -0
  228. package/dist/esm/utils/axios/index.js.map +1 -0
  229. package/dist/esm/utils/axios/middleware/cookie.js +22 -0
  230. package/dist/esm/utils/axios/middleware/cookie.js.map +1 -0
  231. package/dist/esm/utils/axios/middleware/log.js +31 -0
  232. package/dist/esm/utils/axios/middleware/log.js.map +1 -0
  233. package/dist/esm/utils/axios/sauce/index.js +50 -0
  234. package/dist/esm/utils/axios/sauce/index.js.map +1 -0
  235. package/dist/esm/utils/axios/utils/index.js +24 -0
  236. package/dist/esm/utils/axios/utils/index.js.map +1 -0
  237. package/dist/esm/utils/express/handler/health-check.js +13 -0
  238. package/dist/esm/utils/express/handler/health-check.js.map +1 -0
  239. package/dist/esm/utils/express/index.js +3 -0
  240. package/dist/esm/utils/express/index.js.map +1 -0
  241. package/dist/esm/utils/express/utils/index.js +16 -0
  242. package/dist/esm/utils/express/utils/index.js.map +1 -0
  243. package/dist/esm/utils/function.js +38 -0
  244. package/dist/esm/utils/function.js.map +1 -0
  245. package/dist/esm/utils/index.js +3 -0
  246. package/dist/esm/utils/index.js.map +1 -0
  247. package/dist/esm/utils/math.js +9 -0
  248. package/dist/esm/utils/math.js.map +1 -0
  249. package/dist/esm/utils/react/error-handlers/index.js +69 -0
  250. package/dist/esm/utils/react/error-handlers/index.js.map +1 -0
  251. package/dist/esm/utils/react/index.js +3 -0
  252. package/dist/esm/utils/react/index.js.map +1 -0
  253. package/dist/esm/utils/redux/index.js +3 -0
  254. package/dist/esm/utils/redux/index.js.map +1 -0
  255. package/dist/esm/utils/redux/remote-data.js +108 -0
  256. package/dist/esm/utils/redux/remote-data.js.map +1 -0
  257. package/dist/esm/utils/redux-saga/index.js +3 -0
  258. package/dist/esm/utils/redux-saga/index.js.map +1 -0
  259. package/dist/esm/utils/redux-saga/middleware.js +143 -0
  260. package/dist/esm/utils/redux-saga/middleware.js.map +1 -0
  261. package/dist/esm/utils/redux-saga/take-chain.js +59 -0
  262. package/dist/esm/utils/redux-saga/take-chain.js.map +1 -0
  263. package/dist/esm/utils/redux-saga/types.js +2 -0
  264. package/dist/esm/utils/redux-saga/types.js.map +1 -0
  265. package/dist/esm/utils/ssr/index.js +66 -0
  266. package/dist/esm/utils/ssr/index.js.map +1 -0
  267. package/dist/esm/utils/web/analytics/data-layer.js +14 -0
  268. package/dist/esm/utils/web/analytics/data-layer.js.map +1 -0
  269. package/dist/esm/utils/web/analytics/index.js +3 -0
  270. package/dist/esm/utils/web/analytics/index.js.map +1 -0
  271. package/dist/esm/utils/web/analytics/oko.js +14 -0
  272. package/dist/esm/utils/web/analytics/oko.js.map +1 -0
  273. package/dist/esm/utils/web/storage/index.js +69 -0
  274. package/dist/esm/utils/web/storage/index.js.map +1 -0
  275. package/dist/esm/utils/webpack/env/index.js +89 -0
  276. package/dist/esm/utils/webpack/env/index.js.map +1 -0
  277. package/dist/esm/utils/webpack/env/types.js +2 -0
  278. package/dist/esm/utils/webpack/env/types.js.map +1 -0
  279. package/dist/esm/utils/webpack/env/utils.js +48 -0
  280. package/dist/esm/utils/webpack/env/utils.js.map +1 -0
  281. package/dist/esm/utils/webpack/index.js +4 -0
  282. package/dist/esm/utils/webpack/index.js.map +1 -0
  283. package/dist/esm/utils/webpack/module-federation/index.js +96 -0
  284. package/dist/esm/utils/webpack/module-federation/index.js.map +1 -0
  285. package/dist/esm/utils/webpack/module-federation/types.js +2 -0
  286. package/dist/esm/utils/webpack/module-federation/types.js.map +1 -0
  287. package/dist/esm/utils/webpack/module-federation/utils.js +80 -0
  288. package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -0
  289. package/dist/types/cache/index.d.ts +1 -0
  290. package/dist/types/log/index.d.ts +3 -0
  291. package/dist/types/preset/isomorphic/index.d.ts +1 -0
  292. package/{preset → dist/types/preset}/isomorphic/types.d.ts +0 -9
  293. package/{preset → dist/types/preset}/node/index.d.ts +1 -0
  294. package/dist/types/preset/node/node/utils/index.d.ts +2 -0
  295. package/dist/types/preset/node/types.d.ts +9 -0
  296. package/{tokens.d.ts → dist/types/tokens.d.ts} +2 -1
  297. package/{utils → dist/types/utils}/axios/sauce/index.d.ts +1 -1
  298. package/dist/types/utils/index.d.ts +2 -0
  299. package/{utils → dist/types/utils}/redux/remote-data.d.ts +8 -8
  300. package/{utils → dist/types/utils}/ssr/index.d.ts +1 -0
  301. package/dist/types/utils/web/analytics/index.d.ts +2 -0
  302. package/{utils → dist/types/utils}/webpack/module-federation/index.d.ts +2 -2
  303. package/package.json +173 -9
  304. package/src/cache/index.ts +1 -0
  305. package/src/cache/types.ts +34 -0
  306. package/src/config/base.ts +18 -0
  307. package/src/config/index.ts +3 -0
  308. package/src/config/source.ts +23 -0
  309. package/src/config/types.ts +25 -0
  310. package/src/di/__test__/application.test.ts +258 -0
  311. package/src/di/__test__/container.test.ts +103 -0
  312. package/src/di/__test__/errors.test.ts +56 -0
  313. package/src/di/__test__/preset.test.ts +23 -0
  314. package/src/di/__test__/token.test.ts +25 -0
  315. package/src/di/application.ts +126 -0
  316. package/src/di/container.ts +60 -0
  317. package/src/di/errors.ts +59 -0
  318. package/src/di/index.ts +6 -0
  319. package/src/di/preset.ts +32 -0
  320. package/src/di/token.ts +41 -0
  321. package/src/di/types.ts +105 -0
  322. package/src/http/__test__/errors.test.ts +35 -0
  323. package/src/http/errors.ts +42 -0
  324. package/src/http/index.ts +14 -0
  325. package/src/http/types.ts +8 -0
  326. package/src/log/__test__/errors.test.ts +13 -0
  327. package/src/log/__test__/logger.test.ts +24 -0
  328. package/src/log/errors.ts +33 -0
  329. package/src/log/handler/pino.ts +27 -0
  330. package/src/log/handler/sentry.ts +57 -0
  331. package/src/log/index.ts +12 -0
  332. package/src/log/logger.ts +30 -0
  333. package/src/log/types.ts +76 -0
  334. package/src/preset/isomorphic/constants.ts +7 -0
  335. package/src/preset/isomorphic/index.ts +7 -0
  336. package/src/preset/isomorphic/providers/index.ts +40 -0
  337. package/src/preset/isomorphic/types.ts +37 -0
  338. package/src/preset/isomorphic/utils/__test__/index.test.ts +541 -0
  339. package/src/preset/isomorphic/utils/index.ts +349 -0
  340. package/src/preset/node/handler/index.ts +46 -0
  341. package/src/preset/node/handler/providers/index.tsx +214 -0
  342. package/src/preset/node/handler/utils/index.tsx +110 -0
  343. package/src/preset/node/index.ts +3 -0
  344. package/src/preset/node/node/index.ts +73 -0
  345. package/src/preset/node/node/providers/index.ts +434 -0
  346. package/src/preset/node/node/utils/http-client/__test__/index.test.ts +232 -0
  347. package/src/preset/node/node/utils/http-client/index.ts +129 -0
  348. package/src/preset/node/node/utils/http-server/index.ts +17 -0
  349. package/src/preset/node/node/utils/index.ts +2 -0
  350. package/src/preset/node/types.ts +10 -0
  351. package/src/preset/web/index.ts +40 -0
  352. package/src/preset/web/providers/index.ts +108 -0
  353. package/src/tokens.ts +108 -0
  354. package/src/utils/axios/index.ts +12 -0
  355. package/src/utils/axios/middleware/__test__/cookie.test.ts +94 -0
  356. package/src/utils/axios/middleware/__test__/log.test.ts +121 -0
  357. package/src/utils/axios/middleware/cookie.ts +26 -0
  358. package/src/utils/axios/middleware/log.ts +52 -0
  359. package/src/utils/axios/sauce/index.ts +76 -0
  360. package/src/utils/axios/utils/__test__/index.test.ts +89 -0
  361. package/src/utils/axios/utils/index.ts +26 -0
  362. package/src/utils/express/handler/health-check.ts +13 -0
  363. package/src/utils/express/index.ts +2 -0
  364. package/src/utils/express/utils/index.ts +18 -0
  365. package/src/utils/function.ts +57 -0
  366. package/src/utils/index.ts +2 -0
  367. package/src/utils/math.ts +8 -0
  368. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  369. package/src/utils/react/error-handlers/__test__/index.test.tsx +63 -0
  370. package/src/utils/react/error-handlers/index.tsx +68 -0
  371. package/src/utils/react/index.ts +3 -0
  372. package/src/utils/redux/__test__/remote-data.test.ts +172 -0
  373. package/src/utils/redux/index.ts +4 -0
  374. package/src/utils/redux/remote-data.ts +138 -0
  375. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  376. package/src/utils/redux-saga/index.ts +3 -0
  377. package/src/utils/redux-saga/middleware.ts +168 -0
  378. package/src/utils/redux-saga/take-chain.ts +67 -0
  379. package/src/utils/redux-saga/types.ts +43 -0
  380. package/src/utils/ssr/index.tsx +78 -0
  381. package/src/utils/web/analytics/__test__/data-layer.test.ts +50 -0
  382. package/src/utils/web/analytics/__test__/oko.test.ts +50 -0
  383. package/src/utils/web/analytics/data-layer.ts +12 -0
  384. package/src/utils/web/analytics/index.ts +2 -0
  385. package/src/utils/web/analytics/oko.ts +14 -0
  386. package/src/utils/web/storage/index.ts +84 -0
  387. package/src/utils/webpack/env/index.ts +91 -0
  388. package/src/utils/webpack/env/types.ts +14 -0
  389. package/src/utils/webpack/env/utils.ts +53 -0
  390. package/src/utils/webpack/index.ts +7 -0
  391. package/src/utils/webpack/module-federation/__test__/__snapshots__/utils.test.ts.snap +124 -0
  392. package/src/utils/webpack/module-federation/__test__/index.test.ts +311 -0
  393. package/src/utils/webpack/module-federation/__test__/utils.test.ts +28 -0
  394. package/src/utils/webpack/module-federation/index.ts +102 -0
  395. package/src/utils/webpack/module-federation/types.ts +54 -0
  396. package/src/utils/webpack/module-federation/utils.ts +104 -0
  397. package/cache/types.js +0 -3
  398. package/cache/types.js.map +0 -1
  399. package/config/base.js +0 -20
  400. package/config/base.js.map +0 -1
  401. package/config/index.js +0 -8
  402. package/config/index.js.map +0 -1
  403. package/config/source.js +0 -21
  404. package/config/source.js.map +0 -1
  405. package/config/types.js +0 -3
  406. package/config/types.js.map +0 -1
  407. package/di/application.js +0 -88
  408. package/di/application.js.map +0 -1
  409. package/di/container.js +0 -52
  410. package/di/container.js.map +0 -1
  411. package/di/errors.js +0 -59
  412. package/di/errors.js.map +0 -1
  413. package/di/index.js +0 -17
  414. package/di/index.js.map +0 -1
  415. package/di/preset.js +0 -27
  416. package/di/preset.js.map +0 -1
  417. package/di/token.js +0 -39
  418. package/di/token.js.map +0 -1
  419. package/di/types.js +0 -3
  420. package/di/types.js.map +0 -1
  421. package/http/errors.js +0 -42
  422. package/http/errors.js.map +0 -1
  423. package/http/index.js +0 -16
  424. package/http/index.js.map +0 -1
  425. package/http/types.js +0 -3
  426. package/http/types.js.map +0 -1
  427. package/log/errors.js +0 -31
  428. package/log/errors.js.map +0 -1
  429. package/log/handler/pino.js +0 -29
  430. package/log/handler/pino.js.map +0 -1
  431. package/log/handler/sentry.js +0 -50
  432. package/log/handler/sentry.js.map +0 -1
  433. package/log/index.d.ts +0 -3
  434. package/log/index.js +0 -9
  435. package/log/index.js.map +0 -1
  436. package/log/logger.js +0 -29
  437. package/log/logger.js.map +0 -1
  438. package/log/types.js +0 -3
  439. package/log/types.js.map +0 -1
  440. package/preset/isomorphic/constants.js +0 -11
  441. package/preset/isomorphic/constants.js.map +0 -1
  442. package/preset/isomorphic/providers/index.js.map +0 -1
  443. package/preset/isomorphic/types.js +0 -3
  444. package/preset/isomorphic/types.js.map +0 -1
  445. package/preset/isomorphic/utils/index.js +0 -289
  446. package/preset/isomorphic/utils/index.js.map +0 -1
  447. package/preset/node/handler/index.js +0 -38
  448. package/preset/node/handler/index.js.map +0 -1
  449. package/preset/node/handler/providers/index.js +0 -184
  450. package/preset/node/handler/providers/index.js.map +0 -1
  451. package/preset/node/handler/utils/index.js +0 -81
  452. package/preset/node/handler/utils/index.js.map +0 -1
  453. package/preset/node/index.js +0 -9
  454. package/preset/node/index.js.map +0 -1
  455. package/preset/node/node/index.js +0 -49
  456. package/preset/node/node/index.js.map +0 -1
  457. package/preset/node/node/providers/index.js +0 -392
  458. package/preset/node/node/providers/index.js.map +0 -1
  459. package/preset/node/node/utils/http-client/index.js +0 -109
  460. package/preset/node/node/utils/http-client/index.js.map +0 -1
  461. package/preset/node/node/utils/http-server/index.js +0 -21
  462. package/preset/node/node/utils/http-server/index.js.map +0 -1
  463. package/preset/web/index.js +0 -30
  464. package/preset/web/index.js.map +0 -1
  465. package/preset/web/providers/index.js +0 -88
  466. package/preset/web/providers/index.js.map +0 -1
  467. package/tokens.js +0 -81
  468. package/tokens.js.map +0 -1
  469. package/utils/axios/index.js +0 -13
  470. package/utils/axios/index.js.map +0 -1
  471. package/utils/axios/middleware/cookie.js +0 -26
  472. package/utils/axios/middleware/cookie.js.map +0 -1
  473. package/utils/axios/middleware/log.js +0 -26
  474. package/utils/axios/middleware/log.js.map +0 -1
  475. package/utils/axios/sauce/index.js +0 -50
  476. package/utils/axios/sauce/index.js.map +0 -1
  477. package/utils/axios/utils/index.js.map +0 -1
  478. package/utils/express/handler/health-check.js.map +0 -1
  479. package/utils/express/index.js +0 -8
  480. package/utils/express/index.js.map +0 -1
  481. package/utils/express/utils/index.js +0 -20
  482. package/utils/express/utils/index.js.map +0 -1
  483. package/utils/function.js +0 -23
  484. package/utils/function.js.map +0 -1
  485. package/utils/number.js.map +0 -1
  486. package/utils/react/error-handlers/index.js +0 -47
  487. package/utils/react/error-handlers/index.js.map +0 -1
  488. package/utils/react/index.js +0 -7
  489. package/utils/react/index.js.map +0 -1
  490. package/utils/redux/index.js +0 -7
  491. package/utils/redux/index.js.map +0 -1
  492. package/utils/redux/remote-data.js +0 -91
  493. package/utils/redux/remote-data.js.map +0 -1
  494. package/utils/redux-saga/index.js +0 -8
  495. package/utils/redux-saga/index.js.map +0 -1
  496. package/utils/redux-saga/middleware.js +0 -142
  497. package/utils/redux-saga/middleware.js.map +0 -1
  498. package/utils/redux-saga/take-chain.js +0 -58
  499. package/utils/redux-saga/take-chain.js.map +0 -1
  500. package/utils/redux-saga/types.js +0 -3
  501. package/utils/redux-saga/types.js.map +0 -1
  502. package/utils/ssr/index.js +0 -54
  503. package/utils/ssr/index.js.map +0 -1
  504. package/utils/web/analytics/data-layer.js +0 -16
  505. package/utils/web/analytics/data-layer.js.map +0 -1
  506. package/utils/web/analytics/oko.js +0 -16
  507. package/utils/web/analytics/oko.js.map +0 -1
  508. package/utils/web/storage/index.js +0 -69
  509. package/utils/web/storage/index.js.map +0 -1
  510. package/utils/webpack/env/index.js +0 -76
  511. package/utils/webpack/env/index.js.map +0 -1
  512. package/utils/webpack/env/types.js +0 -3
  513. package/utils/webpack/env/types.js.map +0 -1
  514. package/utils/webpack/env/utils.js +0 -52
  515. package/utils/webpack/env/utils.js.map +0 -1
  516. package/utils/webpack/index.js +0 -8
  517. package/utils/webpack/index.js.map +0 -1
  518. package/utils/webpack/module-federation/index.js +0 -81
  519. package/utils/webpack/module-federation/index.js.map +0 -1
  520. package/utils/webpack/module-federation/types.js +0 -3
  521. package/utils/webpack/module-federation/types.js.map +0 -1
  522. package/utils/webpack/module-federation/utils.js.map +0 -1
  523. /package/{cache → dist/types/cache}/types.d.ts +0 -0
  524. /package/{config → dist/types/config}/base.d.ts +0 -0
  525. /package/{config → dist/types/config}/index.d.ts +0 -0
  526. /package/{config → dist/types/config}/source.d.ts +0 -0
  527. /package/{config → dist/types/config}/types.d.ts +0 -0
  528. /package/{di → dist/types/di}/application.d.ts +0 -0
  529. /package/{di → dist/types/di}/container.d.ts +0 -0
  530. /package/{di → dist/types/di}/errors.d.ts +0 -0
  531. /package/{di → dist/types/di}/index.d.ts +0 -0
  532. /package/{di → dist/types/di}/preset.d.ts +0 -0
  533. /package/{di → dist/types/di}/token.d.ts +0 -0
  534. /package/{di → dist/types/di}/types.d.ts +0 -0
  535. /package/{http → dist/types/http}/errors.d.ts +0 -0
  536. /package/{http → dist/types/http}/index.d.ts +0 -0
  537. /package/{http → dist/types/http}/types.d.ts +0 -0
  538. /package/{log → dist/types/log}/errors.d.ts +0 -0
  539. /package/{log → dist/types/log}/handler/pino.d.ts +0 -0
  540. /package/{log → dist/types/log}/handler/sentry.d.ts +0 -0
  541. /package/{log → dist/types/log}/logger.d.ts +0 -0
  542. /package/{log → dist/types/log}/types.d.ts +0 -0
  543. /package/{preset → dist/types/preset}/isomorphic/constants.d.ts +0 -0
  544. /package/{preset → dist/types/preset}/isomorphic/providers/index.d.ts +0 -0
  545. /package/{preset → dist/types/preset}/isomorphic/utils/index.d.ts +0 -0
  546. /package/{preset → dist/types/preset}/node/handler/index.d.ts +0 -0
  547. /package/{preset → dist/types/preset}/node/handler/providers/index.d.ts +0 -0
  548. /package/{preset → dist/types/preset}/node/handler/utils/index.d.ts +0 -0
  549. /package/{preset → dist/types/preset}/node/node/index.d.ts +0 -0
  550. /package/{preset → dist/types/preset}/node/node/providers/index.d.ts +0 -0
  551. /package/{preset → dist/types/preset}/node/node/utils/http-client/index.d.ts +0 -0
  552. /package/{preset → dist/types/preset}/node/node/utils/http-server/index.d.ts +0 -0
  553. /package/{preset → dist/types/preset}/web/index.d.ts +0 -0
  554. /package/{preset → dist/types/preset}/web/providers/index.d.ts +0 -0
  555. /package/{utils → dist/types/utils}/axios/index.d.ts +0 -0
  556. /package/{utils → dist/types/utils}/axios/middleware/cookie.d.ts +0 -0
  557. /package/{utils → dist/types/utils}/axios/middleware/log.d.ts +0 -0
  558. /package/{utils → dist/types/utils}/axios/utils/index.d.ts +0 -0
  559. /package/{utils → dist/types/utils}/express/handler/health-check.d.ts +0 -0
  560. /package/{utils → dist/types/utils}/express/index.d.ts +0 -0
  561. /package/{utils → dist/types/utils}/express/utils/index.d.ts +0 -0
  562. /package/{utils → dist/types/utils}/function.d.ts +0 -0
  563. /package/{utils/number.d.ts → dist/types/utils/math.d.ts} +0 -0
  564. /package/{utils → dist/types/utils}/react/error-handlers/index.d.ts +0 -0
  565. /package/{utils → dist/types/utils}/react/index.d.ts +0 -0
  566. /package/{utils → dist/types/utils}/redux/index.d.ts +0 -0
  567. /package/{utils → dist/types/utils}/redux-saga/index.d.ts +0 -0
  568. /package/{utils → dist/types/utils}/redux-saga/middleware.d.ts +0 -0
  569. /package/{utils → dist/types/utils}/redux-saga/take-chain.d.ts +0 -0
  570. /package/{utils → dist/types/utils}/redux-saga/types.d.ts +0 -0
  571. /package/{utils → dist/types/utils}/web/analytics/data-layer.d.ts +0 -0
  572. /package/{utils → dist/types/utils}/web/analytics/oko.d.ts +0 -0
  573. /package/{utils → dist/types/utils}/web/storage/index.d.ts +0 -0
  574. /package/{utils → dist/types/utils}/webpack/env/index.d.ts +0 -0
  575. /package/{utils → dist/types/utils}/webpack/env/types.d.ts +0 -0
  576. /package/{utils → dist/types/utils}/webpack/env/utils.d.ts +0 -0
  577. /package/{utils → dist/types/utils}/webpack/index.d.ts +0 -0
  578. /package/{utils → dist/types/utils}/webpack/module-federation/types.d.ts +0 -0
  579. /package/{utils → dist/types/utils}/webpack/module-federation/utils.d.ts +0 -0
@@ -1,392 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.provideMetricsHttpApp = exports.provideKnownHttpApiHosts = exports.provideSsrBridgeServerSide = exports.provideHttpServerErrorMiddleware = exports.provideHttpServerTracingMiddleware = exports.provideHttpServerMetricsMiddleware = exports.provideHttpServerLogMiddleware = exports.provideHttpServerRequestMiddleware = exports.provideHttpServerFactory = exports.provideHttpClientFactory = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.providePinoHandler = exports.provideSentryHandler = exports.provideLogger = exports.provideConfigSource = void 0;
30
- const ssr_1 = require("../../../../utils/ssr");
31
- const config_1 = require("../../../../config");
32
- const log_1 = require("../../../../log");
33
- const pino_1 = require("../../../../log/handler/pino");
34
- const sentry_1 = require("../../../../log/handler/sentry");
35
- const utils_1 = require("../../../isomorphic/utils");
36
- const tokens_1 = require("../../../../tokens");
37
- const number_1 = require("../../../../utils/number");
38
- const constants_1 = require("../../../isomorphic/constants");
39
- const http_server_1 = require("../utils/http-server");
40
- // Node.js specific packages
41
- const node_os_1 = __importDefault(require("node:os"));
42
- const node_path_1 = __importDefault(require("node:path"));
43
- // Node.js libraries (not isomorphic)
44
- const dotenv_1 = require("dotenv");
45
- const node_1 = require("@sentry/node");
46
- const PromClient = __importStar(require("prom-client"));
47
- const express_1 = __importDefault(require("express"));
48
- const pino_2 = __importDefault(require("pino"));
49
- const pino_pretty_1 = __importDefault(require("pino-pretty"));
50
- // opentelemetry
51
- const api_1 = require("@opentelemetry/api");
52
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
53
- const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
54
- const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
55
- const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
56
- const resources_1 = require("@opentelemetry/resources");
57
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
58
- const middleware_axios_1 = require("middleware-axios");
59
- /**
60
- * Провайдер источника конфигурации.
61
- * @return Источник конфигурации.
62
- */
63
- function provideConfigSource() {
64
- const envName = process.env.NODE_ENV;
65
- // подключаем соответствующий среде файл со значениями по умолчанию
66
- if (envName) {
67
- (0, dotenv_1.config)({ path: node_path_1.default.resolve(process.cwd(), `./.env.${envName}`) });
68
- }
69
- return (0, config_1.createConfigSource)(process.env);
70
- }
71
- exports.provideConfigSource = provideConfigSource;
72
- /**
73
- * Провайдер Logger'а.
74
- * @param resolve Функция для получения зависимости по токену.
75
- * @return Logger.
76
- */
77
- function provideLogger(resolve) {
78
- const logger = (0, log_1.createLogger)();
79
- // @todo возможно надо придумать как не давать вызывать провайдеры внутри провайдеров
80
- logger.subscribe(providePinoHandler(resolve));
81
- logger.subscribe(provideSentryHandler(resolve));
82
- return logger;
83
- }
84
- exports.provideLogger = provideLogger;
85
- /**
86
- * Провайдер обработчика логирования для Sentry.
87
- * @param resolve Функция для получения зависимости по токену.
88
- * @return Обработчик.
89
- */
90
- function provideSentryHandler(resolve) {
91
- const source = resolve(tokens_1.KnownToken.Config.source);
92
- // экспериментально пробуем не использовать вручную созданный клиент
93
- (0, node_1.init)({
94
- dsn: source.require('SENTRY_DSN'),
95
- release: source.require('SENTRY_RELEASE'),
96
- environment: source.require('SENTRY_ENVIRONMENT'),
97
- });
98
- // ВАЖНО: передаем функцию чтобы брать текущий hub в момент вызова метода logger'а
99
- // это нужно чтобы хлебные крошки в ошибках Sentry группировались по запросам
100
- return (0, sentry_1.createSentryHandler)(node_1.getCurrentHub);
101
- }
102
- exports.provideSentryHandler = provideSentryHandler;
103
- /**
104
- * Провайдер обработчика логирования для Pino.
105
- * @param resolve Функция для получения зависимости по токену.
106
- * @return Обработчик.
107
- */
108
- function providePinoHandler(resolve) {
109
- const config = resolve(tokens_1.KnownToken.Config.base);
110
- const pinoLogger = (0, pino_2.default)(config.env === 'production'
111
- ? {
112
- formatters: {
113
- // ВАЖНО: для Fluent необходимо наличие поля level: string
114
- level: label => ({ level: label }),
115
- },
116
- }
117
- : (0, pino_pretty_1.default)({
118
- colorize: true,
119
- translateTime: 'yyyy-mm-dd HH:MM:ss.l o',
120
- }));
121
- return (0, pino_1.createPinoHandler)(pinoLogger);
122
- }
123
- exports.providePinoHandler = providePinoHandler;
124
- /**
125
- * Провайдер объекта Tracer.
126
- * @param resolve Функция для получения зависимости по токену.
127
- * @return Tracer.
128
- */
129
- function provideTracer(resolve) {
130
- const config = resolve(tokens_1.KnownToken.Config.base);
131
- const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
132
- return provider.getTracer(config.appName, config.appVersion);
133
- }
134
- exports.provideTracer = provideTracer;
135
- /**
136
- * Провайдер объекта SpanExporter.
137
- * @param resolve Функция для получения зависимости по токену.
138
- * @return SpanExporter.
139
- */
140
- function provideSpanExporter(resolve) {
141
- const source = resolve(tokens_1.KnownToken.Config.source);
142
- return new exporter_trace_otlp_http_1.OTLPTraceExporter({
143
- url: source.require('JAEGER_AGENT_URL'),
144
- });
145
- }
146
- exports.provideSpanExporter = provideSpanExporter;
147
- /**
148
- * Провайдер объекта BasicTracerProvider.
149
- * @param resolve Функция для получения зависимости по токену.
150
- * @return BasicTracerProvider.
151
- */
152
- function provideTracerProvider(resolve) {
153
- const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
154
- const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
155
- const provider = new sdk_trace_node_1.NodeTracerProvider({ resource });
156
- provider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor(exporter));
157
- provider.register({ propagator: new propagator_jaeger_1.JaegerPropagator() });
158
- return provider;
159
- }
160
- exports.provideTracerProvider = provideTracerProvider;
161
- /**
162
- * Провайдер объекта Resource.
163
- * @param resolve Функция для получения зависимости по токену.
164
- * @return Resource.
165
- */
166
- function provideTracerProviderResource(resolve) {
167
- const config = resolve(tokens_1.KnownToken.Config.base);
168
- return new resources_1.Resource({
169
- [semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: node_os_1.default.hostname(),
170
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
171
- [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
172
- [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
173
- });
174
- }
175
- exports.provideTracerProviderResource = provideTracerProviderResource;
176
- /**
177
- * Провайдер фабрики http-клиентов.
178
- * @return Фабрика.
179
- */
180
- function provideHttpClientFactory() {
181
- return middleware_axios_1.create;
182
- }
183
- exports.provideHttpClientFactory = provideHttpClientFactory;
184
- /**
185
- * Провайдер фабрики http-серверов.
186
- * @return Фабрика.
187
- */
188
- function provideHttpServerFactory() {
189
- return express_1.default;
190
- }
191
- exports.provideHttpServerFactory = provideHttpServerFactory;
192
- /**
193
- * Провайдер промежуточного слоя учета входящих http-запросов.
194
- * @return Промежуточный слой.
195
- */
196
- function provideHttpServerRequestMiddleware() {
197
- return node_1.Handlers.requestHandler();
198
- }
199
- exports.provideHttpServerRequestMiddleware = provideHttpServerRequestMiddleware;
200
- /**
201
- * Провайдер промежуточного слоя логирования входящих http-запросов.
202
- * @param resolve Функция для получения зависимости по токену.
203
- * @return Промежуточный слой.
204
- */
205
- function provideHttpServerLogMiddleware(resolve) {
206
- const config = resolve(tokens_1.KnownToken.Config.base);
207
- const logger = resolve(tokens_1.KnownToken.logger);
208
- return (req, res, next) => {
209
- const start = process.hrtime.bigint();
210
- const remoteIp = (0, http_server_1.getClientIp)(req) ?? '';
211
- const startMsg = {
212
- type: 'http.request[incoming]',
213
- version: config.appVersion,
214
- route: req.originalUrl,
215
- method: req.method,
216
- remote_ip: remoteIp,
217
- };
218
- logger.info(startMsg);
219
- res.once('finish', () => {
220
- const finish = process.hrtime.bigint();
221
- const finishMsg = {
222
- type: 'http.response[outgoing]',
223
- version: config.appVersion,
224
- route: req.originalUrl,
225
- method: req.method,
226
- status: res.statusCode,
227
- remote_ip: remoteIp,
228
- latency: (0, number_1.toMilliseconds)(finish - start),
229
- };
230
- logger.info(finishMsg);
231
- });
232
- next();
233
- };
234
- }
235
- exports.provideHttpServerLogMiddleware = provideHttpServerLogMiddleware;
236
- /**
237
- * Провайдер промежуточного слоя сбора метрик входящих http-запросов.
238
- * @param resolve Функция для получения зависимости по токену.
239
- * @return Промежуточный слой.
240
- */
241
- function provideHttpServerMetricsMiddleware(resolve) {
242
- const config = resolve(tokens_1.KnownToken.Config.base);
243
- const ConventionalLabels = {
244
- HTTP_RESPONSE: ['version', 'route', 'code', 'method'],
245
- SSR: ['version', 'route', 'method'],
246
- };
247
- const requestCount = new PromClient.Counter({
248
- name: 'http_request_count',
249
- help: 'Incoming HTTP request count',
250
- labelNames: ConventionalLabels.HTTP_RESPONSE,
251
- });
252
- const responseDuration = new PromClient.Histogram({
253
- name: 'http_response_duration_ms',
254
- help: 'Duration of incoming HTTP requests in ms',
255
- labelNames: ConventionalLabels.HTTP_RESPONSE,
256
- buckets: [30, 100, 200, 500, 1000, 2500, 5000, 10000],
257
- });
258
- const renderDuration = new PromClient.Histogram({
259
- name: 'render_duration_ms',
260
- help: 'Duration of SSR ms',
261
- labelNames: ConventionalLabels.SSR,
262
- buckets: [0.1, 15, 50, 100, 250, 500, 800, 1500],
263
- });
264
- /**
265
- * Функция формирования labels.
266
- * @param req Request.
267
- * @param res Response.
268
- * @return Labels.
269
- */
270
- const getLabels = (req, res) => ({
271
- version: config.appVersion,
272
- route: req.baseUrl + req.path,
273
- code: res.statusCode,
274
- method: req.method,
275
- });
276
- return (req, res, next) => {
277
- const responseStart = process.hrtime.bigint();
278
- requestCount.inc(getLabels(req, res), 1);
279
- res.once(constants_1.RESPONSE_EVENT_TYPE.renderStart, () => {
280
- const renderStart = process.hrtime.bigint();
281
- res.once(constants_1.RESPONSE_EVENT_TYPE.renderFinish, () => {
282
- const renderFinish = process.hrtime.bigint();
283
- renderDuration.observe({
284
- version: config.appVersion,
285
- method: req.method,
286
- route: req.baseUrl + req.path,
287
- }, (0, number_1.toMilliseconds)(renderStart - renderFinish));
288
- });
289
- });
290
- res.once('finish', () => {
291
- const responseFinish = process.hrtime.bigint();
292
- responseDuration.observe(getLabels(req, res), (0, number_1.toMilliseconds)(responseFinish - responseStart));
293
- });
294
- next();
295
- };
296
- }
297
- exports.provideHttpServerMetricsMiddleware = provideHttpServerMetricsMiddleware;
298
- /**
299
- * Провайдер промежуточного слоя трассировки входящих http-запросов.
300
- * @param resolve Функция для получения зависимости по токену.
301
- * @return Промежуточный слой.
302
- */
303
- function provideHttpServerTracingMiddleware(resolve) {
304
- const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
305
- /**
306
- * Возвращает набор стандартных атрибутов для спана.
307
- * @param req Входящий http-запрос.
308
- * @return Атрибуты.
309
- */
310
- const getConventionalRequestAttrs = (req) => {
311
- const result = {
312
- 'request.path': req.originalUrl,
313
- };
314
- for (const headerName in req.headers) {
315
- if (headerName.toLowerCase().startsWith('simaland-')) {
316
- result[headerName] = req.header(headerName);
317
- }
318
- }
319
- return result;
320
- };
321
- return (req, res, next) => {
322
- const externalContext = api_1.propagation.extract(api_1.ROOT_CONTEXT, req.headers);
323
- const rootSpan = tracer.startSpan('response', undefined, externalContext);
324
- rootSpan.setAttributes(getConventionalRequestAttrs(req));
325
- const rootContext = api_1.trace.setSpan(externalContext, rootSpan);
326
- res.locals.tracing = {
327
- rootSpan,
328
- rootContext,
329
- renderSpan: null,
330
- };
331
- res.once(constants_1.RESPONSE_EVENT_TYPE.renderStart, () => {
332
- res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);
333
- res.once(constants_1.RESPONSE_EVENT_TYPE.renderFinish, () => {
334
- res.locals.tracing.renderSpan.end();
335
- });
336
- });
337
- res.once('finish', () => {
338
- rootSpan.end();
339
- });
340
- next();
341
- };
342
- }
343
- exports.provideHttpServerTracingMiddleware = provideHttpServerTracingMiddleware;
344
- /**
345
- * Провайдер промежуточного слоя обработки ошибок в рамках ответ на http-запросы.
346
- * @return Промежуточный слой.
347
- */
348
- function provideHttpServerErrorMiddleware() {
349
- return node_1.Handlers.errorHandler();
350
- }
351
- exports.provideHttpServerErrorMiddleware = provideHttpServerErrorMiddleware;
352
- /**
353
- * Провайдер серверной части "моста" для передачи данных между сервером и клиентом.
354
- * @param resolve Функция для получения зависимости по токену.
355
- * @return Серверная часть "моста".
356
- */
357
- function provideSsrBridgeServerSide(resolve) {
358
- const config = resolve(tokens_1.KnownToken.Config.base);
359
- return ssr_1.SsrBridge.prepare(config.appName);
360
- }
361
- exports.provideSsrBridgeServerSide = provideSsrBridgeServerSide;
362
- /**
363
- * Провайдер известных http-хостов.
364
- * @param resolve Функция для получения зависимости по токену.
365
- * @return Пул известных http-хостов.
366
- */
367
- function provideKnownHttpApiHosts(resolve) {
368
- const source = resolve(tokens_1.KnownToken.Config.source);
369
- return new utils_1.HttpApiHostPool({
370
- ilium: 'API_URL_ILIUM',
371
- simaV3: 'API_URL_SIMALAND_V3',
372
- simaV4: 'API_URL_SIMALAND_V4',
373
- simaV6: 'API_URL_SIMALAND_V6',
374
- }, source);
375
- }
376
- exports.provideKnownHttpApiHosts = provideKnownHttpApiHosts;
377
- /**
378
- * Провайдер express-приложения метрик.
379
- * @return Пул известных http-хостов.
380
- */
381
- function provideMetricsHttpApp() {
382
- PromClient.collectDefaultMetrics();
383
- const app = (0, express_1.default)();
384
- app.get('/', async function (req, res) {
385
- const metrics = await PromClient.register.metrics();
386
- res.setHeader('Content-Type', PromClient.register.contentType);
387
- res.send(metrics);
388
- });
389
- return app;
390
- }
391
- exports.provideMetricsHttpApp = provideMetricsHttpApp;
392
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/preset/node/node/providers/index.ts"],"names":[],"mappings":"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"}
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRequestHeaders = exports.hideFirstId = exports.getRequestInfo = exports.tracingMiddleware = void 0;
4
- const api_1 = require("@opentelemetry/api");
5
- const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
6
- const http_server_1 = require("../http-server");
7
- const utils_1 = require("../../../../isomorphic/utils");
8
- /**
9
- * Возвращает новый middleware для трассировки исходящих запросов.
10
- * @param tracer Трейсер.
11
- * @param rootContext Контекст.
12
- * @return Middleware.
13
- */
14
- function tracingMiddleware(tracer, rootContext) {
15
- return async function trace(config, next, defaults) {
16
- const { method, url, foundId } = getRequestInfo(config, defaults);
17
- const span = tracer.startSpan(`HTTP ${method} ${url}`, undefined, rootContext);
18
- span.setAttributes({
19
- [semantic_conventions_1.SemanticAttributes.HTTP_URL]: url,
20
- [semantic_conventions_1.SemanticAttributes.HTTP_METHOD]: method,
21
- 'request.params': JSON.stringify({
22
- ...defaults.params,
23
- ...config.params,
24
- }),
25
- 'request.headers': JSON.stringify({
26
- ...defaults.headers[method.toLowerCase()],
27
- ...config.headers,
28
- }),
29
- // если нашли id - добавляем в теги
30
- ...(foundId && { 'request.id': foundId }),
31
- });
32
- try {
33
- await next(config);
34
- }
35
- catch (error) {
36
- span.setStatus({
37
- code: api_1.SpanStatusCode.ERROR,
38
- message: 'HTTP Request failed',
39
- });
40
- span.end();
41
- // не прячем ошибку
42
- throw error;
43
- }
44
- span.end();
45
- };
46
- }
47
- exports.tracingMiddleware = tracingMiddleware;
48
- /**
49
- * Формирует базовые данные запроса.
50
- * Заменяет первое найденное число в url на "{id}", возвращая его в результате.
51
- * @param config Axios-конфиг запроса.
52
- * @param defaults Базовый конфиг экземпляра Axios.
53
- * @return Базовые данные запроса.
54
- */
55
- function getRequestInfo(config, defaults) {
56
- const method = (config.method || 'GET').toUpperCase();
57
- const baseURL = config.baseURL || defaults.baseURL || '';
58
- // ВАЖНО: абстрагируем id только в url игнорируя baseURL
59
- const [url, foundId] = hideFirstId(config.url || defaults.url || '');
60
- return {
61
- method,
62
- url: (0, utils_1.displayUrl)(baseURL, url),
63
- foundId,
64
- };
65
- }
66
- exports.getRequestInfo = getRequestInfo;
67
- /**
68
- * Преобразует строку вида:
69
- * "/api/v2/something/123456/some-bff/123456"
70
- * в строку вида:
71
- * "/api/v2/something/{id}/some-bff/123456"
72
- * и возвращает кортеж с этой строкой и вырезанным числом в случае если оно найдено.
73
- * @param url Url.
74
- * @return Кортеж со строкой и результатом поиска числа.
75
- */
76
- function hideFirstId(url) {
77
- const found = /\d{2,}/.exec(url);
78
- return found ? [url.replace(found[0], '{id}'), Number(found[0])] : [url, undefined];
79
- }
80
- exports.hideFirstId = hideFirstId;
81
- /**
82
- * Формирует заголовки для исходящих запросов с сервера по соглашению.
83
- * @param config Конфиг.
84
- * @param request Входящий запрос.
85
- * @return Заголовки для исходящих запросов.
86
- */
87
- function getRequestHeaders(config, request) {
88
- const result = {
89
- 'User-Agent': `simaland-${config.appName}/${config.appVersion}`,
90
- };
91
- const clientIp = (0, http_server_1.getClientIp)(request);
92
- if (clientIp) {
93
- result['X-Client-Ip'] = clientIp;
94
- }
95
- const cookie = request.get('cookie');
96
- if (cookie) {
97
- result.Cookie = cookie;
98
- }
99
- // добавляем специфичные заголовки
100
- for (const key of Object.keys(request.headers)) {
101
- const value = request.header(key);
102
- if (key.toLowerCase().indexOf('simaland-') === 0 && value) {
103
- result[key] = value;
104
- }
105
- }
106
- return result;
107
- }
108
- exports.getRequestHeaders = getRequestHeaders;
109
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/preset/node/node/utils/http-client/index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getClientIp = void 0;
7
- const node_net_1 = __importDefault(require("node:net"));
8
- /**
9
- * Определяет IP входящего запроса.
10
- * @param request Входящий запрос.
11
- * @return IP.
12
- */
13
- function getClientIp(request) {
14
- const headerValue = request.get('x-client-ip') ||
15
- request.get('x-forwarded-for') ||
16
- request.socket.remoteAddress ||
17
- '';
18
- return node_net_1.default.isIP(headerValue) ? headerValue : undefined;
19
- }
20
- exports.getClientIp = getClientIp;
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/preset/node/node/utils/http-server/index.ts"],"names":[],"mappings":";;;;;;AACA,wDAA2B;AAE3B;;;;GAIG;AACH,SAAgB,WAAW,CAAC,OAAgB;IAC1C,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,aAAa;QAC5B,EAAE,CAAC;IAEL,OAAO,kBAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AARD,kCAQC"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PresetWeb = void 0;
4
- const di_1 = require("../../di");
5
- const tokens_1 = require("../../tokens");
6
- const providers_1 = require("../isomorphic/providers");
7
- const providers_2 = require("./providers");
8
- /**
9
- * Возвращает preset с зависимостями для frontend-микросервисов в браузере.
10
- * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
11
- * @return Preset.
12
- */
13
- function PresetWeb(customize) {
14
- // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
15
- const preset = (0, di_1.createPreset)();
16
- preset.set(tokens_1.KnownToken.Config.source, providers_2.provideConfigSource);
17
- preset.set(tokens_1.KnownToken.Config.base, providers_1.provideBaseConfig);
18
- preset.set(tokens_1.KnownToken.logger, providers_2.provideLogger);
19
- preset.set(tokens_1.KnownToken.sagaMiddleware, providers_1.provideSagaMiddleware);
20
- preset.set(tokens_1.KnownToken.Http.Client.factory, providers_2.provideHttpClientFactory);
21
- preset.set(tokens_1.KnownToken.Http.Client.Middleware.Log.handler, providers_1.provideHttpClientLogHandler);
22
- preset.set(tokens_1.KnownToken.SsrBridge.clientSide, providers_2.provideBridgeClientSide);
23
- preset.set(tokens_1.KnownToken.Http.Api.knownHosts, providers_2.provideKnownHttpApiHosts);
24
- if (customize) {
25
- customize({ override: preset.set.bind(preset) });
26
- }
27
- return preset;
28
- }
29
- exports.PresetWeb = PresetWeb;
30
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/web/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgD;AAChD,yCAA0C;AAE1C,uDAIiC;AACjC,2CAMqB;AAErB;;;;GAIG;AACH,SAAgB,SAAS,CAAC,SAAuB;IAC/C,yFAAyF;IACzF,MAAM,MAAM,GAAG,IAAA,iBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,+BAAmB,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,6BAAiB,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,MAAM,EAAE,yBAAa,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,cAAc,EAAE,iCAAqB,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oCAAwB,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,uCAA2B,CAAC,CAAC;IACvF,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,SAAS,CAAC,UAAU,EAAE,mCAAuB,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,mBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,oCAAwB,CAAC,CAAC;IAErE,IAAI,SAAS,EAAE;QACb,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAClD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAlBD,8BAkBC"}