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

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 (488) hide show
  1. package/cache/types.d.ts +7 -0
  2. package/cache/types.js +3 -0
  3. package/cache/types.js.map +1 -0
  4. package/config/base.d.ts +7 -0
  5. package/config/base.js +20 -0
  6. package/config/base.js.map +1 -0
  7. package/config/browser.d.ts +6 -0
  8. package/config/browser.js +22 -0
  9. package/config/browser.js.map +1 -0
  10. package/config/node.d.ts +6 -0
  11. package/config/node.js +24 -0
  12. package/config/node.js.map +1 -0
  13. package/config/types.d.ts +7 -0
  14. package/config/types.js +3 -0
  15. package/config/types.js.map +1 -0
  16. package/di/application.d.ts +6 -0
  17. package/di/application.js +71 -0
  18. package/di/application.js.map +1 -0
  19. package/di/container.d.ts +6 -0
  20. package/di/container.js +49 -0
  21. package/di/container.js.map +1 -0
  22. package/di/errors.d.ts +21 -0
  23. package/di/errors.js +33 -0
  24. package/di/errors.js.map +1 -0
  25. package/di/index.d.ts +6 -0
  26. package/di/index.js +16 -0
  27. package/di/index.js.map +1 -0
  28. package/di/preset.d.ts +9 -0
  29. package/di/preset.js +25 -0
  30. package/di/preset.js.map +1 -0
  31. package/di/token.d.ts +7 -0
  32. package/di/token.js +17 -0
  33. package/di/token.js.map +1 -0
  34. package/di/types.d.ts +32 -0
  35. package/di/types.js +3 -0
  36. package/di/types.js.map +1 -0
  37. package/error-tracker/types.d.ts +13 -0
  38. package/error-tracker/types.js +3 -0
  39. package/error-tracker/types.js.map +1 -0
  40. package/error-tracker/utils.d.ts +22 -0
  41. package/error-tracker/utils.js +30 -0
  42. package/error-tracker/utils.js.map +1 -0
  43. package/http-client/middleware/cookie.d.ts +19 -0
  44. package/http-client/middleware/cookie.js +62 -0
  45. package/http-client/middleware/cookie.js.map +1 -0
  46. package/http-client/middleware/logging.d.ts +15 -0
  47. package/http-client/middleware/logging.js +93 -0
  48. package/http-client/middleware/logging.js.map +1 -0
  49. package/http-client/middleware/tracing.d.ts +32 -0
  50. package/http-client/middleware/tracing.js +67 -0
  51. package/http-client/middleware/tracing.js.map +1 -0
  52. package/http-client/sauce/index.d.ts +27 -0
  53. package/http-client/sauce/index.js +33 -0
  54. package/http-client/sauce/index.js.map +1 -0
  55. package/http-client/types.d.ts +6 -0
  56. package/http-client/types.js +3 -0
  57. package/http-client/types.js.map +1 -0
  58. package/http-client/utils.d.ts +9 -0
  59. package/http-client/utils.js +20 -0
  60. package/http-client/utils.js.map +1 -0
  61. package/http-server/constants.d.ts +4 -0
  62. package/http-server/constants.js +8 -0
  63. package/http-server/constants.js.map +1 -0
  64. package/http-server/handler/health-check.d.ts +6 -0
  65. package/http-server/handler/health-check.js +15 -0
  66. package/http-server/handler/health-check.js.map +1 -0
  67. package/http-server/middleware/logging.d.ts +10 -0
  68. package/http-server/middleware/logging.js +31 -0
  69. package/http-server/middleware/logging.js.map +1 -0
  70. package/http-server/middleware/metrics.d.ts +23 -0
  71. package/http-server/middleware/metrics.js +60 -0
  72. package/http-server/middleware/metrics.js.map +1 -0
  73. package/http-server/middleware/tracing.d.ts +14 -0
  74. package/http-server/middleware/tracing.js +51 -0
  75. package/http-server/middleware/tracing.js.map +1 -0
  76. package/http-server/template/index.d.ts +1 -0
  77. package/http-server/template/index.js +36 -0
  78. package/http-server/template/index.js.map +1 -0
  79. package/http-server/types.d.ts +33 -0
  80. package/http-server/types.js +3 -0
  81. package/http-server/types.js.map +1 -0
  82. package/http-server/utils.d.ts +30 -0
  83. package/http-server/utils.js +100 -0
  84. package/http-server/utils.js.map +1 -0
  85. package/logger/handler/console.d.ts +8 -0
  86. package/logger/handler/console.js +43 -0
  87. package/logger/handler/console.js.map +1 -0
  88. package/logger/handler/sentry.d.ts +8 -0
  89. package/logger/handler/sentry.js +42 -0
  90. package/logger/handler/sentry.js.map +1 -0
  91. package/logger/index.d.ts +6 -0
  92. package/logger/index.js +31 -0
  93. package/logger/index.js.map +1 -0
  94. package/logger/types.d.ts +24 -0
  95. package/logger/types.js +3 -0
  96. package/logger/types.js.map +1 -0
  97. package/metrics/constants.d.ts +4 -0
  98. package/metrics/constants.js +8 -0
  99. package/metrics/constants.js.map +1 -0
  100. package/metrics/node.d.ts +18 -0
  101. package/metrics/node.js +74 -0
  102. package/metrics/node.js.map +1 -0
  103. package/package.json +46 -63
  104. package/preset/browser/index.d.ts +1 -0
  105. package/preset/browser/index.js +45 -0
  106. package/preset/browser/index.js.map +1 -0
  107. package/preset/node/index.d.ts +19 -0
  108. package/preset/node/index.js +127 -0
  109. package/preset/node/index.js.map +1 -0
  110. package/preset/node/response.d.ts +20 -0
  111. package/preset/node/response.js +82 -0
  112. package/preset/node/response.js.map +1 -0
  113. package/saga-runner/index.d.ts +8 -0
  114. package/saga-runner/index.js +79 -0
  115. package/saga-runner/index.js.map +1 -0
  116. package/saga-runner/types.d.ts +10 -0
  117. package/saga-runner/types.js +3 -0
  118. package/saga-runner/types.js.map +1 -0
  119. package/tokens.d.ts +48 -0
  120. package/tokens.js +50 -0
  121. package/tokens.js.map +1 -0
  122. package/tracing/index.d.ts +9 -0
  123. package/tracing/index.js +20 -0
  124. package/tracing/index.js.map +1 -0
  125. package/{browser → utils/browser}/analytics/data-layer.d.ts +0 -0
  126. package/{browser → utils/browser}/analytics/data-layer.js +1 -2
  127. package/utils/browser/analytics/data-layer.js.map +1 -0
  128. package/{browser → utils/browser}/analytics/oko.d.ts +0 -0
  129. package/{browser → utils/browser}/analytics/oko.js +6 -7
  130. package/utils/browser/analytics/oko.js.map +1 -0
  131. package/utils/browser/storage/index.d.ts +4 -0
  132. package/utils/browser/storage/index.js +63 -0
  133. package/utils/browser/storage/index.js.map +1 -0
  134. package/utils/number.d.ts +6 -0
  135. package/utils/number.js +13 -0
  136. package/utils/number.js.map +1 -0
  137. package/utils/react/error-handlers/index.d.ts +38 -0
  138. package/utils/react/error-handlers/index.js +48 -0
  139. package/utils/react/error-handlers/index.js.map +1 -0
  140. package/utils/redux/remote-data.d.ts +23 -0
  141. package/utils/redux/remote-data.js +28 -0
  142. package/utils/redux/remote-data.js.map +1 -0
  143. package/utils/redux-saga/take-chain.d.ts +24 -0
  144. package/utils/redux-saga/take-chain.js +56 -0
  145. package/utils/redux-saga/take-chain.js.map +1 -0
  146. package/utils/ssr/index.d.ts +30 -0
  147. package/utils/ssr/index.js +51 -0
  148. package/utils/ssr/index.js.map +1 -0
  149. package/utils/webpack/index.d.ts +23 -0
  150. package/utils/webpack/index.js +66 -0
  151. package/utils/webpack/index.js.map +1 -0
  152. package/utils/webpack/module-federation/index.d.ts +21 -0
  153. package/utils/webpack/module-federation/index.js +74 -0
  154. package/utils/webpack/module-federation/index.js.map +1 -0
  155. package/utils/webpack/module-federation/types.d.ts +26 -0
  156. package/utils/webpack/module-federation/types.js +3 -0
  157. package/utils/webpack/module-federation/types.js.map +1 -0
  158. package/utils/webpack/module-federation/utils.d.ts +15 -0
  159. package/utils/webpack/module-federation/utils.js +36 -0
  160. package/utils/webpack/module-federation/utils.js.map +1 -0
  161. package/browser/analytics/data-layer.js.map +0 -1
  162. package/browser/analytics/oko.js.map +0 -1
  163. package/cache/helpers.d.ts +0 -4
  164. package/cache/helpers.js +0 -39
  165. package/cache/helpers.js.map +0 -1
  166. package/cache/local-storage.d.ts +0 -34
  167. package/cache/local-storage.js +0 -90
  168. package/cache/local-storage.js.map +0 -1
  169. package/cache/redis.d.ts +0 -10
  170. package/cache/redis.js +0 -54
  171. package/cache/redis.js.map +0 -1
  172. package/cache/wrap-in-trace.d.ts +0 -8
  173. package/cache/wrap-in-trace.js +0 -68
  174. package/cache/wrap-in-trace.js.map +0 -1
  175. package/config/create.d.ts +0 -8
  176. package/config/create.js +0 -32
  177. package/config/create.js.map +0 -1
  178. package/config/helpers.d.ts +0 -11
  179. package/config/helpers.js +0 -71
  180. package/config/helpers.js.map +0 -1
  181. package/config/validate.d.ts +0 -18
  182. package/config/validate.js +0 -107
  183. package/config/validate.js.map +0 -1
  184. package/container/create-inject.d.ts +0 -7
  185. package/container/create-inject.js +0 -36
  186. package/container/create-inject.js.map +0 -1
  187. package/container/get-dependencies.d.ts +0 -13
  188. package/container/get-dependencies.js +0 -54
  189. package/container/get-dependencies.js.map +0 -1
  190. package/container/index.d.ts +0 -15
  191. package/container/index.js +0 -175
  192. package/container/index.js.map +0 -1
  193. package/container/is-container.d.ts +0 -7
  194. package/container/is-container.js +0 -17
  195. package/container/is-container.js.map +0 -1
  196. package/container/service-not-found-error.d.ts +0 -10
  197. package/container/service-not-found-error.js +0 -18
  198. package/container/service-not-found-error.js.map +0 -1
  199. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  200. package/create-proxy/create-proxy-middleware/index.js +0 -47
  201. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  202. package/create-proxy/index.d.ts +0 -12
  203. package/create-proxy/index.js +0 -25
  204. package/create-proxy/index.js.map +0 -1
  205. package/create-response-sender/index.d.ts +0 -8
  206. package/create-response-sender/index.js +0 -42
  207. package/create-response-sender/index.js.map +0 -1
  208. package/get-dynamic-data/index.d.ts +0 -8
  209. package/get-dynamic-data/index.js +0 -23
  210. package/get-dynamic-data/index.js.map +0 -1
  211. package/graceful-shutdown/index.d.ts +0 -26
  212. package/graceful-shutdown/index.js +0 -87
  213. package/graceful-shutdown/index.js.map +0 -1
  214. package/helpers/add-error-handling/index.d.ts +0 -1
  215. package/helpers/add-error-handling/index.js +0 -42
  216. package/helpers/add-error-handling/index.js.map +0 -1
  217. package/helpers/api/create-enhancer.d.ts +0 -12
  218. package/helpers/api/create-enhancer.js +0 -52
  219. package/helpers/api/create-enhancer.js.map +0 -1
  220. package/helpers/api/create-instance.d.ts +0 -11
  221. package/helpers/api/create-instance.js +0 -39
  222. package/helpers/api/create-instance.js.map +0 -1
  223. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  224. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  225. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  226. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  227. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  228. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  229. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  230. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  231. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  232. package/helpers/api/middlewares/helpers.d.ts +0 -11
  233. package/helpers/api/middlewares/helpers.js +0 -27
  234. package/helpers/api/middlewares/helpers.js.map +0 -1
  235. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  236. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  237. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  238. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  239. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  240. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  241. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  242. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  243. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  244. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  245. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  246. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  247. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  248. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  249. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  250. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  251. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  252. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  253. package/helpers/api/server-adapter/constants.d.ts +0 -5
  254. package/helpers/api/server-adapter/constants.js +0 -16
  255. package/helpers/api/server-adapter/constants.js.map +0 -1
  256. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  257. package/helpers/api/server-adapter/helpers.js +0 -208
  258. package/helpers/api/server-adapter/helpers.js.map +0 -1
  259. package/helpers/api/server-adapter/index.d.ts +0 -10
  260. package/helpers/api/server-adapter/index.js +0 -118
  261. package/helpers/api/server-adapter/index.js.map +0 -1
  262. package/helpers/development/use-dot-env.d.ts +0 -6
  263. package/helpers/development/use-dot-env.js +0 -11
  264. package/helpers/development/use-dot-env.js.map +0 -1
  265. package/helpers/get-params/index.d.ts +0 -4
  266. package/helpers/get-params/index.js +0 -51
  267. package/helpers/get-params/index.js.map +0 -1
  268. package/helpers/http/request-getters.d.ts +0 -5
  269. package/helpers/http/request-getters.js +0 -49
  270. package/helpers/http/request-getters.js.map +0 -1
  271. package/helpers/http/statuses-validator.d.ts +0 -3
  272. package/helpers/http/statuses-validator.js +0 -25
  273. package/helpers/http/statuses-validator.js.map +0 -1
  274. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  275. package/helpers/logger/create-pino-instance/index.js +0 -39
  276. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  277. package/helpers/logger/format-time/index.d.ts +0 -6
  278. package/helpers/logger/format-time/index.js +0 -9
  279. package/helpers/logger/format-time/index.js.map +0 -1
  280. package/helpers/metrics/index.d.ts +0 -23
  281. package/helpers/metrics/index.js +0 -42
  282. package/helpers/metrics/index.js.map +0 -1
  283. package/helpers/prometheus/index.d.ts +0 -4
  284. package/helpers/prometheus/index.js +0 -13
  285. package/helpers/prometheus/index.js.map +0 -1
  286. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  287. package/helpers/prometheus/measure-middleware.js +0 -69
  288. package/helpers/prometheus/measure-middleware.js.map +0 -1
  289. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  290. package/helpers/prometheus/metric-adapter.js +0 -98
  291. package/helpers/prometheus/metric-adapter.js.map +0 -1
  292. package/helpers/react/error-handlers/index.d.ts +0 -40
  293. package/helpers/react/error-handlers/index.js +0 -52
  294. package/helpers/react/error-handlers/index.js.map +0 -1
  295. package/helpers/redux/constants.d.ts +0 -5
  296. package/helpers/redux/constants.js +0 -14
  297. package/helpers/redux/constants.js.map +0 -1
  298. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  299. package/helpers/redux/create-compose-middleware.js +0 -23
  300. package/helpers/redux/create-compose-middleware.js.map +0 -1
  301. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  302. package/helpers/redux/get-dev-compose-creator.js +0 -13
  303. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  304. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  305. package/helpers/redux/prepare-on-ready.js +0 -16
  306. package/helpers/redux/prepare-on-ready.js.map +0 -1
  307. package/helpers/redux/remote-data.d.ts +0 -40
  308. package/helpers/redux/remote-data.js +0 -91
  309. package/helpers/redux/remote-data.js.map +0 -1
  310. package/helpers/redux/selector/statuses.d.ts +0 -23
  311. package/helpers/redux/selector/statuses.js +0 -34
  312. package/helpers/redux/selector/statuses.js.map +0 -1
  313. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  314. package/helpers/redux/wait-on-store-readiness.js +0 -29
  315. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  316. package/helpers/render/get-react-markup-data.d.ts +0 -14
  317. package/helpers/render/get-react-markup-data.js +0 -20
  318. package/helpers/render/get-react-markup-data.js.map +0 -1
  319. package/helpers/render/index.d.ts +0 -21
  320. package/helpers/render/index.js +0 -72
  321. package/helpers/render/index.js.map +0 -1
  322. package/helpers/render/render-app.d.ts +0 -12
  323. package/helpers/render/render-app.js +0 -12
  324. package/helpers/render/render-app.js.map +0 -1
  325. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  326. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  327. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  328. package/helpers/saga/cache-result.d.ts +0 -46
  329. package/helpers/saga/cache-result.js +0 -71
  330. package/helpers/saga/cache-result.js.map +0 -1
  331. package/helpers/saga/create-store.d.ts +0 -20
  332. package/helpers/saga/create-store.js +0 -106
  333. package/helpers/saga/create-store.js.map +0 -1
  334. package/helpers/saga/do-safe-request.d.ts +0 -38
  335. package/helpers/saga/do-safe-request.js +0 -45
  336. package/helpers/saga/do-safe-request.js.map +0 -1
  337. package/helpers/saga/safe-request.d.ts +0 -7
  338. package/helpers/saga/safe-request.js +0 -15
  339. package/helpers/saga/safe-request.js.map +0 -1
  340. package/helpers/saga/take-chain.d.ts +0 -20
  341. package/helpers/saga/take-chain.js +0 -56
  342. package/helpers/saga/take-chain.js.map +0 -1
  343. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  344. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  345. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  346. package/helpers/tracer/index.d.ts +0 -24
  347. package/helpers/tracer/index.js +0 -144
  348. package/helpers/tracer/index.js.map +0 -1
  349. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  350. package/helpers/utils/check-feature-by-segment.js +0 -31
  351. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  352. package/helpers/utils/format-object-keys.d.ts +0 -6
  353. package/helpers/utils/format-object-keys.js +0 -27
  354. package/helpers/utils/format-object-keys.js.map +0 -1
  355. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  356. package/helpers/utils/get-ms-from-hrt.js +0 -22
  357. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  358. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  359. package/helpers/utils/is-match-pattern-list.js +0 -16
  360. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  361. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  362. package/helpers/utils/is-not-empty-array.js +0 -12
  363. package/helpers/utils/is-not-empty-array.js.map +0 -1
  364. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  365. package/helpers/utils/is-not-empty-string.js +0 -15
  366. package/helpers/utils/is-not-empty-string.js.map +0 -1
  367. package/helpers/utils/is-numeric.d.ts +0 -7
  368. package/helpers/utils/is-numeric.js +0 -16
  369. package/helpers/utils/is-numeric.js.map +0 -1
  370. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  371. package/helpers/utils/wrap-in-measure-event.js +0 -50
  372. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  373. package/logger/create-logger-middleware/index.d.ts +0 -14
  374. package/logger/create-logger-middleware/index.js +0 -41
  375. package/logger/create-logger-middleware/index.js.map +0 -1
  376. package/logger/create-sentry-instance/index.d.ts +0 -29
  377. package/logger/create-sentry-instance/index.js +0 -63
  378. package/logger/create-sentry-instance/index.js.map +0 -1
  379. package/logger/create-sentry-middleware/index.d.ts +0 -14
  380. package/logger/create-sentry-middleware/index.js +0 -19
  381. package/logger/create-sentry-middleware/index.js.map +0 -1
  382. package/logger/handler-creators/index.d.ts +0 -5
  383. package/logger/handler-creators/index.js +0 -41
  384. package/logger/handler-creators/index.js.map +0 -1
  385. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  386. package/logger/initialize-sentry-creator/index.js +0 -35
  387. package/logger/initialize-sentry-creator/index.js.map +0 -1
  388. package/logger/sentry-logger/index.d.ts +0 -9
  389. package/logger/sentry-logger/index.js +0 -36
  390. package/logger/sentry-logger/index.js.map +0 -1
  391. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  392. package/module-federation/__example__/webpack-config.example.js +0 -58
  393. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  394. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
  395. package/module-federation/enhanced-module-federation-plugin.js +0 -97
  396. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  397. package/module-federation/utils/index.d.ts +0 -16
  398. package/module-federation/utils/index.js +0 -33
  399. package/module-federation/utils/index.js.map +0 -1
  400. package/observe-middleware/index.d.ts +0 -9
  401. package/observe-middleware/index.js +0 -67
  402. package/observe-middleware/index.js.map +0 -1
  403. package/set-header-middleware/create.d.ts +0 -10
  404. package/set-header-middleware/create.js +0 -16
  405. package/set-header-middleware/create.js.map +0 -1
  406. package/src/browser/analytics/data-layer.ts +0 -12
  407. package/src/browser/analytics/oko.ts +0 -42
  408. package/src/cache/helpers.js +0 -32
  409. package/src/cache/local-storage.ts +0 -92
  410. package/src/cache/redis.js +0 -79
  411. package/src/cache/wrap-in-trace.js +0 -57
  412. package/src/config/create.js +0 -33
  413. package/src/config/helpers.js +0 -71
  414. package/src/config/validate.js +0 -114
  415. package/src/container/create-inject.js +0 -32
  416. package/src/container/get-dependencies.js +0 -46
  417. package/src/container/index.js +0 -188
  418. package/src/container/is-container.js +0 -14
  419. package/src/container/service-not-found-error.js +0 -14
  420. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  421. package/src/create-proxy/index.js +0 -27
  422. package/src/create-response-sender/index.js +0 -48
  423. package/src/get-dynamic-data/index.js +0 -26
  424. package/src/graceful-shutdown/index.js +0 -97
  425. package/src/helpers/add-error-handling/index.js +0 -24
  426. package/src/helpers/api/create-enhancer.js +0 -52
  427. package/src/helpers/api/create-instance.js +0 -42
  428. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  429. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  430. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  431. package/src/helpers/api/middlewares/helpers.js +0 -26
  432. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  433. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  434. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  435. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  436. package/src/helpers/api/middlewares/trace-request-middleware.ts +0 -86
  437. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  438. package/src/helpers/api/server-adapter/constants.js +0 -12
  439. package/src/helpers/api/server-adapter/helpers.js +0 -244
  440. package/src/helpers/api/server-adapter/index.js +0 -155
  441. package/src/helpers/development/use-dot-env.js +0 -9
  442. package/src/helpers/get-params/index.js +0 -59
  443. package/src/helpers/http/request-getters.js +0 -42
  444. package/src/helpers/http/statuses-validator.js +0 -20
  445. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  446. package/src/helpers/logger/format-time/index.js +0 -6
  447. package/src/helpers/metrics/index.js +0 -40
  448. package/src/helpers/prometheus/index.js +0 -9
  449. package/src/helpers/prometheus/measure-middleware.js +0 -73
  450. package/src/helpers/prometheus/metric-adapter.js +0 -99
  451. package/src/helpers/react/error-handlers/index.tsx +0 -68
  452. package/src/helpers/redux/constants.js +0 -10
  453. package/src/helpers/redux/create-compose-middleware.js +0 -24
  454. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  455. package/src/helpers/redux/prepare-on-ready.js +0 -16
  456. package/src/helpers/redux/remote-data.js +0 -124
  457. package/src/helpers/redux/selector/statuses.js +0 -30
  458. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  459. package/src/helpers/render/get-react-markup-data.js +0 -18
  460. package/src/helpers/render/index.js +0 -69
  461. package/src/helpers/render/render-app.js +0 -15
  462. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  463. package/src/helpers/saga/cache-result.js +0 -77
  464. package/src/helpers/saga/create-store.js +0 -102
  465. package/src/helpers/saga/do-safe-request.js +0 -47
  466. package/src/helpers/saga/safe-request.js +0 -11
  467. package/src/helpers/saga/take-chain.js +0 -53
  468. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  469. package/src/helpers/tracer/index.js +0 -171
  470. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  471. package/src/helpers/utils/format-object-keys.js +0 -23
  472. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  473. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  474. package/src/helpers/utils/is-not-empty-array.js +0 -8
  475. package/src/helpers/utils/is-not-empty-string.js +0 -11
  476. package/src/helpers/utils/is-numeric.ts +0 -12
  477. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  478. package/src/logger/create-logger-middleware/index.js +0 -46
  479. package/src/logger/create-sentry-instance/index.js +0 -74
  480. package/src/logger/create-sentry-middleware/index.js +0 -16
  481. package/src/logger/handler-creators/index.js +0 -38
  482. package/src/logger/initialize-sentry-creator/index.js +0 -43
  483. package/src/logger/sentry-logger/index.js +0 -33
  484. package/src/module-federation/__example__/webpack-config.example.js +0 -64
  485. package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
  486. package/src/module-federation/utils/index.js +0 -39
  487. package/src/observe-middleware/index.js +0 -70
  488. package/src/set-header-middleware/create.js +0 -17
package/package.json CHANGED
@@ -1,83 +1,66 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "10.1.0",
4
- "description": "Set of utils that are not directly related to UI",
5
- "repository": "ssh://git@github.com:sima-land/isomorph.git",
3
+ "version": "11.0.0-alpha.10",
4
+ "description": "Tiny framework for fast start frontend microservices",
6
5
  "author": "www.sima-land.ru team",
7
6
  "license": "Apache-2.0",
8
- "private": false,
9
- "engines": {
10
- "node": ">=14.17.0"
11
- },
12
7
  "scripts": {
13
8
  "prepare": "",
14
- "build:before": "rimraf build",
9
+ "type-check": "tsc -p . --noEmit",
10
+ "build:before": "rm -rf dist",
15
11
  "build:main": "tsc --project tsconfig.build.json",
16
- "build:after": "node ./dist.js",
12
+ "build:after": "cp package.json dist/package.json",
17
13
  "build": "npm run build:before && npm run build:main && npm run build:after",
18
- "type-check": "tsc -p . --noEmit",
19
14
  "lint": "eslint --cache ./src --ext .js,.jsx,.ts,.tsx",
20
15
  "test": "jest",
21
- "coverage": "jest --clearCache && jest --coverage"
22
- },
23
- "dependencies": {
24
- "axios": "^0.21.1",
25
- "express-http-proxy": "^1.5.1",
26
- "ioredis": "^4.10.0",
27
- "jaeger-client": "^3.15.0",
28
- "middleware-axios": "^2.1.1",
29
- "opentracing": "^0.14.3",
30
- "pino": "^5.13.1",
31
- "pino-pretty": "^3.2.0",
32
- "prom-client": "^11.5.2"
16
+ "test:coverage": "jest --clearCache && jest --coverage"
33
17
  },
34
18
  "devDependencies": {
35
- "@babel/core": "^7.14.2",
36
- "@babel/preset-env": "^7.14.2",
37
- "@babel/preset-react": "^7.13.13",
38
- "@babel/preset-typescript": "^7.16.5",
39
- "@sentry/browser": "^5.15.5",
40
- "@sentry/node": "5.10.2",
41
- "@sima-land/linters": "^1.0.12",
19
+ "@sima-land/linters": "^2.1.2",
20
+ "@swc/jest": "^0.2.20",
42
21
  "@testing-library/react": "^12.1.3",
22
+ "@types/ejs": "^3.1.1",
43
23
  "@types/express": "^4.17.13",
44
- "@types/jaeger-client": "^3.18.2",
45
- "@types/jest": "^27.0.3",
46
- "@types/lodash": "^4.14.171",
47
- "@types/node": "^16.4.5",
48
- "@types/react": "^16.14.0",
49
- "@types/react-dom": "^17.0.5",
50
- "@types/react-redux": "^7.1.16",
24
+ "@types/jest": "^27.4.1",
25
+ "@types/jsesc": "^3.0.1",
26
+ "@types/lodash": "^4.14.182",
27
+ "@types/react": "^17.0.40",
28
+ "@types/react-dom": "^17.0.13",
51
29
  "@types/webpack": "^5.28.0",
52
- "@typescript-eslint/eslint-plugin": "^4.23.0",
53
- "@typescript-eslint/parser": "^4.23.0",
54
- "babel-jest": "^27.4.5",
55
- "copyfiles": "^2.4.1",
56
- "dotenv": "^8.2.0",
57
- "husky": "^7.0.1",
58
- "identity-obj-proxy": "3.0.x",
59
- "jest": "^27.4.5",
60
- "lint-staged": "^11.1.1",
61
- "lodash": "^4.17.21",
62
- "react": "^17.0.2",
63
- "react-dom": "^17.0.2",
64
- "react-redux": "^7.1.3",
65
- "redux": "^4.0.5",
66
- "redux-saga": "^1.1.3",
67
- "reduxsauce": "^1.1.2",
68
- "reselect": "^4.0.0",
69
- "rimraf": "^3.0.2",
70
- "sentry-testkit": "^3.2.1",
71
- "typescript": "^4.2.4"
30
+ "husky": "^7.0.4",
31
+ "jest": "^27.5.1",
32
+ "typescript": "^4.6.2"
33
+ },
34
+ "dependencies": {
35
+ "@humanwhocodes/env": "^2.2.0",
36
+ "@opentelemetry/api": "^1.1.0",
37
+ "@opentelemetry/exporter-jaeger": "^1.0.1",
38
+ "@opentelemetry/instrumentation": "^0.27.0",
39
+ "@opentelemetry/instrumentation-express": "^0.28.0",
40
+ "@opentelemetry/instrumentation-http": "^0.27.0",
41
+ "@opentelemetry/resources": "^1.0.1",
42
+ "@opentelemetry/sdk-trace-node": "^1.0.1",
43
+ "@opentelemetry/semantic-conventions": "^1.0.1",
44
+ "@opentelemetry/tracing": "^0.24.0",
45
+ "@sentry/browser": "^6.19.3",
46
+ "@sentry/node": "^6.19.3",
47
+ "dotenv": "^16.0.0",
48
+ "ejs": "^3.1.8",
49
+ "express": "^4.17.3",
50
+ "jsesc": "^3.0.2",
51
+ "middleware-axios": "^2.1.2",
52
+ "pino": "^7.9.1",
53
+ "pino-pretty": "^7.5.4",
54
+ "prom-client": "^14.0.1",
55
+ "webpack": "^5.72.0"
72
56
  },
73
57
  "peerDependencies": {
58
+ "@reduxjs/toolkit": "^1.8.0",
59
+ "axios": "^0.24.0",
74
60
  "lodash": "^4.17.21",
75
- "react": "^16.12.0 || ^17.0.2",
76
- "react-dom": "^16.12.0 || ^17.0.2",
77
- "react-redux": "^7.1.3",
78
- "redux": "^4.0.5",
79
- "redux-saga": "^1.1.3",
80
- "reduxsauce": "^1.1.2",
81
- "reselect": "^4.0.0"
61
+ "react": "^17.0.2",
62
+ "react-dom": "^17.0.2",
63
+ "react-redux": "^7.2.6",
64
+ "redux-saga": "^1.1.3"
82
65
  }
83
66
  }
@@ -0,0 +1 @@
1
+ export declare function PresetBrowser(): import("../../di").Preset;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PresetBrowser = void 0;
4
+ /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
5
+ const di_1 = require("../../di");
6
+ const tokens_1 = require("../../tokens");
7
+ const base_1 = require("../../config/base");
8
+ const browser_1 = require("../../config/browser");
9
+ const logger_1 = require("../../logger");
10
+ const sentry_1 = require("../../logger/handler/sentry");
11
+ const saga_runner_1 = require("../../saga-runner");
12
+ const browser_2 = require("@sentry/browser");
13
+ const middleware_axios_1 = require("middleware-axios");
14
+ function PresetBrowser() {
15
+ return (0, di_1.createPreset)([
16
+ [tokens_1.KnownToken.Config.source, browser_1.createConfigSource],
17
+ [tokens_1.KnownToken.Config.base, provideBaseConfig],
18
+ [tokens_1.KnownToken.logger, provideLogger],
19
+ [tokens_1.KnownToken.sagaRunner, provideSagaRunner],
20
+ [tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
21
+ ]);
22
+ }
23
+ exports.PresetBrowser = PresetBrowser;
24
+ function provideBaseConfig(resolve) {
25
+ const source = resolve(tokens_1.KnownToken.Config.source);
26
+ return (0, base_1.createBaseConfig)(source);
27
+ }
28
+ function provideLogger(resolve) {
29
+ const source = resolve(tokens_1.KnownToken.Config.source);
30
+ const client = new browser_2.BrowserClient({
31
+ dsn: source.require('SENTRY_CLIENT_DSN'),
32
+ release: source.require('SENTRY_RELEASE'),
33
+ environment: source.require('SENTRY_ENVIRONMENT'),
34
+ integrations: [...browser_2.defaultIntegrations],
35
+ });
36
+ const hub = new browser_2.Hub(client);
37
+ const logger = (0, logger_1.createLogger)();
38
+ logger.subscribe((0, sentry_1.createSentryHandler)(hub));
39
+ return logger;
40
+ }
41
+ function provideSagaRunner(resolve) {
42
+ const logger = resolve(tokens_1.KnownToken.logger);
43
+ return (0, saga_runner_1.createSagaRunner)(logger);
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/browser/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,iCAAiD;AACjD,yCAA0C;AAC1C,4CAAqD;AACrD,kDAA0D;AAC1D,yCAA4C;AAC5C,wDAAkE;AAClE,mDAAqD;AACrD,6CAA0E;AAI1E,uDAA0C;AAE1C,SAAgB,aAAa;IAC3B,OAAO,IAAA,iBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,EAAE,4BAAkB,CAAC;QAC9C,CAAC,mBAAU,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC3C,CAAC,mBAAU,CAAC,MAAM,EAAE,aAAa,CAAC;QAClC,CAAC,mBAAU,CAAC,UAAU,EAAE,iBAAiB,CAAC;QAC1C,CAAC,mBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAM,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AARD,sCAQC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC;QAC/B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACjD,YAAY,EAAE,CAAC,GAAG,6BAAmB,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,MAAM,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,MAAM,CAAC,SAAS,CAAC,IAAA,4BAAmB,EAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BaseConfig } from '../../config/types';
2
+ import type { Logger } from '../../logger/types';
3
+ import type { Tracer } from '@opentelemetry/api';
4
+ import type { DefaultMiddleware } from '../../http-server/types';
5
+ import { Provider, Preset } from '../../di';
6
+ import { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
7
+ import { Resource } from '@opentelemetry/resources';
8
+ /**
9
+ * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
10
+ * @return Preset.
11
+ */
12
+ export declare function PresetNode(): Preset;
13
+ export declare const provideBaseConfig: Provider<BaseConfig>;
14
+ export declare const provideLogger: Provider<Logger>;
15
+ export declare const provideTracer: Provider<Tracer>;
16
+ export declare const provideSpanExporter: Provider<SpanExporter>;
17
+ export declare const provideTracerProvider: Provider<BasicTracerProvider>;
18
+ export declare const provideTracerProviderResource: Provider<Resource>;
19
+ export declare const provideDefaultMiddleware: Provider<DefaultMiddleware>;
@@ -0,0 +1,127 @@
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.provideDefaultMiddleware = exports.provideTracerProviderResource = exports.provideTracerProvider = exports.provideSpanExporter = exports.provideTracer = exports.provideLogger = exports.provideBaseConfig = exports.PresetNode = void 0;
7
+ const di_1 = require("../../di");
8
+ const tracing_1 = require("@opentelemetry/tracing");
9
+ const tokens_1 = require("../../tokens");
10
+ const node_1 = require("../../config/node");
11
+ const base_1 = require("../../config/base");
12
+ const logger_1 = require("../../logger");
13
+ const console_1 = require("../../logger/handler/console");
14
+ const sentry_1 = require("../../logger/handler/sentry");
15
+ const logging_1 = require("../../http-server/middleware/logging");
16
+ const tracing_2 = require("../../http-server/middleware/tracing");
17
+ const metrics_1 = require("../../http-server/middleware/metrics");
18
+ const node_2 = require("../../metrics/node");
19
+ const exporter_jaeger_1 = require("@opentelemetry/exporter-jaeger");
20
+ const middleware_axios_1 = require("middleware-axios");
21
+ const express_1 = __importDefault(require("express"));
22
+ const node_3 = require("@sentry/node");
23
+ const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
24
+ const resources_1 = require("@opentelemetry/resources");
25
+ const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
26
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
27
+ const tracing_3 = require("../../tracing");
28
+ const os_1 = require("os");
29
+ /**
30
+ * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
31
+ * @return Preset.
32
+ */
33
+ function PresetNode() {
34
+ return (0, di_1.createPreset)([
35
+ [tokens_1.KnownToken.Config.source, node_1.createConfigSource],
36
+ [tokens_1.KnownToken.Config.base, exports.provideBaseConfig],
37
+ [tokens_1.KnownToken.logger, exports.provideLogger],
38
+ [tokens_1.KnownToken.Tracing.tracer, exports.provideTracer],
39
+ [tokens_1.KnownToken.Tracing.spanExporter, exports.provideSpanExporter],
40
+ [tokens_1.KnownToken.Tracing.tracerProvider, exports.provideTracerProvider],
41
+ [tokens_1.KnownToken.Tracing.tracerProviderResource, exports.provideTracerProviderResource],
42
+ [tokens_1.KnownToken.Http.Client.factory, () => middleware_axios_1.create],
43
+ [tokens_1.KnownToken.Http.Server.factory, () => express_1.default],
44
+ [tokens_1.KnownToken.Http.Server.Defaults.middleware, exports.provideDefaultMiddleware],
45
+ [tokens_1.KnownToken.Metrics.httpApp, node_2.createMetricsHttpApp],
46
+ ]);
47
+ }
48
+ exports.PresetNode = PresetNode;
49
+ const provideBaseConfig = resolve => {
50
+ const source = resolve(tokens_1.KnownToken.Config.source);
51
+ return (0, base_1.createBaseConfig)(source);
52
+ };
53
+ exports.provideBaseConfig = provideBaseConfig;
54
+ const provideLogger = resolve => {
55
+ const source = resolve(tokens_1.KnownToken.Config.source);
56
+ const config = resolve(tokens_1.KnownToken.Config.base);
57
+ const client = new node_3.NodeClient({
58
+ dsn: source.require('SENTRY_SERVER_DSN'),
59
+ release: source.require('SENTRY_RELEASE'),
60
+ environment: source.require('SENTRY_ENVIRONMENT'),
61
+ integrations: [...node_3.defaultIntegrations],
62
+ });
63
+ const hub = new node_3.Hub(client);
64
+ const logger = (0, logger_1.createLogger)();
65
+ logger.subscribe((0, console_1.createConsoleHandler)(config));
66
+ logger.subscribe((0, sentry_1.createSentryHandler)(hub));
67
+ return logger;
68
+ };
69
+ exports.provideLogger = provideLogger;
70
+ const provideTracer = resolve => {
71
+ const config = resolve(tokens_1.KnownToken.Config.base);
72
+ const provider = resolve(tokens_1.KnownToken.Tracing.tracerProvider);
73
+ return provider.getTracer(config.appName, config.appVersion);
74
+ };
75
+ exports.provideTracer = provideTracer;
76
+ const provideSpanExporter = resolve => {
77
+ const source = resolve(tokens_1.KnownToken.Config.source);
78
+ const exporter = new exporter_jaeger_1.JaegerExporter({
79
+ host: source.require('JAEGER_AGENT_HOST'),
80
+ port: parseInt(source.require('JAEGER_AGENT_PORT')) || undefined,
81
+ });
82
+ return exporter;
83
+ };
84
+ exports.provideSpanExporter = provideSpanExporter;
85
+ const provideTracerProvider = resolve => {
86
+ const exporter = resolve(tokens_1.KnownToken.Tracing.spanExporter);
87
+ const resource = resolve(tokens_1.KnownToken.Tracing.tracerProviderResource);
88
+ const provider = new sdk_trace_node_1.NodeTracerProvider({
89
+ resource,
90
+ });
91
+ provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter)); // @todo разобраться с as any
92
+ provider.register({
93
+ propagator: new propagator_jaeger_1.JaegerPropagator(),
94
+ });
95
+ return provider; // @todo разобраться с as any
96
+ };
97
+ exports.provideTracerProvider = provideTracerProvider;
98
+ const provideTracerProviderResource = resolve => {
99
+ const config = resolve(tokens_1.KnownToken.Config.base);
100
+ return (0, tracing_3.getConventionalResource)(config).merge(new resources_1.Resource({
101
+ [semantic_conventions_1.SemanticResourceAttributes.HOST_NAME]: (0, os_1.hostname)(),
102
+ }));
103
+ };
104
+ exports.provideTracerProviderResource = provideTracerProviderResource;
105
+ const provideDefaultMiddleware = resolve => {
106
+ const config = resolve(tokens_1.KnownToken.Config.base);
107
+ const logger = resolve(tokens_1.KnownToken.logger);
108
+ const tracer = resolve(tokens_1.KnownToken.Tracing.tracer);
109
+ const metrics = (0, node_2.createDefaultMetrics)();
110
+ return {
111
+ start: [node_3.Handlers.requestHandler()],
112
+ logging: [(0, logging_1.loggingMiddleware)(config, logger)],
113
+ tracing: [(0, tracing_2.tracingMiddleware)(tracer)],
114
+ metrics: [
115
+ (0, metrics_1.responseMetricsMiddleware)(config, {
116
+ counter: metrics.requestCount,
117
+ histogram: metrics.responseDuration,
118
+ }),
119
+ (0, metrics_1.renderMetricsMiddleware)(config, {
120
+ histogram: metrics.renderDuration,
121
+ }),
122
+ ],
123
+ finish: [node_3.Handlers.errorHandler()],
124
+ };
125
+ };
126
+ exports.provideDefaultMiddleware = provideDefaultMiddleware;
127
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preset/node/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import type { SagaRunner } from '../../saga-runner/types';
3
+ import type { PageTemplate } from '../../http-server/types';
4
+ import type { Handler } from 'express';
5
+ import { Application, Preset, Provider, Resolve } from '../../di';
6
+ /**
7
+ * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
8
+ * @return Preset.
9
+ */
10
+ export declare function PresetResponse(): Preset;
11
+ export declare const provideSagaRunner: Provider<SagaRunner>;
12
+ export declare const provideRender: Provider<(el: JSX.Element) => string | Promise<string>>;
13
+ export declare const provideTemplate: Provider<PageTemplate>;
14
+ export declare const provideMain: Provider<() => void>;
15
+ /**
16
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
17
+ * @param appFactory Фабрика di-приложения запроса.
18
+ * @return Обработчик.
19
+ */
20
+ export declare function HandlerProvider(appFactory: () => Application): (resolve: Resolve) => Handler;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandlerProvider = exports.provideMain = exports.provideTemplate = exports.provideRender = exports.provideSagaRunner = exports.PresetResponse = void 0;
4
+ const di_1 = require("../../di");
5
+ const tokens_1 = require("../../tokens");
6
+ const server_1 = require("react-dom/server");
7
+ const saga_runner_1 = require("../../saga-runner");
8
+ const constants_1 = require("../../http-server/constants");
9
+ const template_1 = require("../../http-server/template");
10
+ const utils_1 = require("../../http-server/utils");
11
+ /**
12
+ * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
13
+ * @return Preset.
14
+ */
15
+ function PresetResponse() {
16
+ return (0, di_1.createPreset)([
17
+ [tokens_1.KnownToken.sagaRunner, exports.provideSagaRunner],
18
+ [tokens_1.KnownToken.Response.render, exports.provideRender],
19
+ [tokens_1.KnownToken.Response.template, exports.provideTemplate],
20
+ [tokens_1.KnownToken.Response.main, exports.provideMain],
21
+ ]);
22
+ }
23
+ exports.PresetResponse = PresetResponse;
24
+ const provideSagaRunner = resolve => {
25
+ const logger = resolve(tokens_1.KnownToken.logger);
26
+ return (0, saga_runner_1.createSagaRunner)(logger);
27
+ };
28
+ exports.provideSagaRunner = provideSagaRunner;
29
+ const provideRender = resolve => {
30
+ const { res } = resolve(tokens_1.KnownToken.Response.context);
31
+ return function render(element) {
32
+ res.emit(constants_1.RESPONSE_EVENT.renderStart);
33
+ const result = (0, server_1.renderToString)(element);
34
+ res.emit(constants_1.RESPONSE_EVENT.renderFinish);
35
+ return result;
36
+ };
37
+ };
38
+ exports.provideRender = provideRender;
39
+ const provideTemplate = resolve => {
40
+ const config = resolve(tokens_1.KnownToken.Config.base);
41
+ return function template(data) {
42
+ return data.type === 'html'
43
+ ? (0, template_1.pageTemplate)({ ...data, title: `[dev] ${config.appName}` })
44
+ : data.markup;
45
+ };
46
+ };
47
+ exports.provideTemplate = provideTemplate;
48
+ const provideMain = resolve => {
49
+ const context = resolve(tokens_1.KnownToken.Response.context);
50
+ const assets = resolve(tokens_1.KnownToken.Response.assets);
51
+ const prepare = resolve(tokens_1.KnownToken.Response.prepare);
52
+ const render = resolve(tokens_1.KnownToken.Response.render);
53
+ const template = resolve(tokens_1.KnownToken.Response.template);
54
+ return async function main() {
55
+ utils_1.PageResponse.create()
56
+ .markup(await render(await prepare()))
57
+ .script(assets.js)
58
+ .styles(assets.css)
59
+ .format(utils_1.PageResponse.defineFormat(context.req))
60
+ .template(template)
61
+ .send(context.res);
62
+ };
63
+ };
64
+ exports.provideMain = provideMain;
65
+ /**
66
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
67
+ * @param appFactory Фабрика di-приложения запроса.
68
+ * @return Обработчик.
69
+ */
70
+ function HandlerProvider(appFactory) {
71
+ return function provider(resolve) {
72
+ const parent = resolve(di_1.CURRENT_APP);
73
+ return function handler(req, res, next) {
74
+ const app = appFactory();
75
+ app.attach(parent);
76
+ app.bind(tokens_1.KnownToken.Response.context).toValue({ req, res, next });
77
+ app.get(tokens_1.KnownToken.Response.main)();
78
+ };
79
+ };
80
+ }
81
+ exports.HandlerProvider = HandlerProvider;
82
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Logger } from '../logger/types';
2
+ import type { SagaRunner } from './types';
3
+ /**
4
+ * Возвращает новый runner для redux-saga.
5
+ * @param logger Logger.
6
+ * @return Runner.
7
+ */
8
+ export declare function createSagaRunner(logger: Logger): SagaRunner;
@@ -0,0 +1,79 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createSagaRunner = void 0;
27
+ const redux_saga_1 = __importStar(require("redux-saga"));
28
+ const utils_1 = require("../error-tracker/utils");
29
+ /**
30
+ * Возвращает новый runner для redux-saga.
31
+ * @param logger Logger.
32
+ * @return Runner.
33
+ */
34
+ function createSagaRunner(logger) {
35
+ const middleware = (0, redux_saga_1.default)({
36
+ onError: (error, { sagaStack }) => {
37
+ logger.error(
38
+ // @todo убрать отсюда упоминание sentry, вынести в провайдер, возможно заменить аргумент logger на onError
39
+ new utils_1.SentryError(error.message, {
40
+ extra: { key: 'Saga stack', data: sagaStack },
41
+ }));
42
+ },
43
+ });
44
+ return {
45
+ middleware,
46
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
47
+ prepare(store, { timeout } = {}) {
48
+ return {
49
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
50
+ async run(saga, ...args) {
51
+ let ready = false;
52
+ await Promise.race([
53
+ // ждем пока сага выполнится
54
+ middleware
55
+ .run(saga, ...args)
56
+ .toPromise()
57
+ .then(() => {
58
+ ready = true;
59
+ }),
60
+ // если сага не выполнилась за положенное время - прерываем
61
+ typeof timeout === 'number' &&
62
+ Number.isFinite(timeout) &&
63
+ new Promise(resolve => {
64
+ setTimeout(() => {
65
+ if (!ready) {
66
+ logger.error(Error('Сага прервана по таймауту'));
67
+ store.dispatch(redux_saga_1.END);
68
+ }
69
+ resolve();
70
+ }, timeout);
71
+ }),
72
+ ]);
73
+ },
74
+ };
75
+ },
76
+ };
77
+ }
78
+ exports.createSagaRunner = createSagaRunner;
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/saga-runner/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yDAA6D;AAC7D,kDAAqD;AAErD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,UAAU,GAAG,IAAA,oBAAoB,EAAC;QACtC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK;YACV,2GAA2G;YAC3G,IAAI,mBAAW,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7B,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9C,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QAEV,8DAA8D;QAC9D,OAAO,CAAC,KAAY,EAAE,EAAE,OAAO,KAA2B,EAAE;YAC1D,OAAO;gBACL,8DAA8D;gBAC9D,KAAK,CAAC,GAAG,CAAiB,IAAO,EAAE,GAAG,IAAmB;oBACvD,IAAI,KAAK,GAAG,KAAK,CAAC;oBAElB,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjB,4BAA4B;wBAC5B,UAAU;6BACP,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;6BAClB,SAAS,EAAE;6BACX,IAAI,CAAC,GAAG,EAAE;4BACT,KAAK,GAAG,IAAI,CAAC;wBACf,CAAC,CAAC;wBAEJ,2DAA2D;wBAC3D,OAAO,OAAO,KAAK,QAAQ;4BACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;4BACxB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gCAC1B,UAAU,CAAC,GAAG,EAAE;oCACd,IAAI,CAAC,KAAK,EAAE;wCACV,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;wCACjD,KAAK,CAAC,QAAQ,CAAC,gBAAG,CAAC,CAAC;qCACrB;oCACD,OAAO,EAAE,CAAC;gCACZ,CAAC,EAAE,OAAO,CAAC,CAAC;4BACd,CAAC,CAAC;qBACL,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAhDD,4CAgDC"}
@@ -0,0 +1,10 @@
1
+ import type { Saga, SagaMiddleware } from 'redux-saga';
2
+ import type { Store } from '@reduxjs/toolkit';
3
+ export interface SagaRunner {
4
+ middleware: SagaMiddleware<any>;
5
+ prepare: (store: Store, options?: {
6
+ timeout?: number;
7
+ }) => {
8
+ run: <S extends Saga>(saga: S, ...args: Parameters<S>) => Promise<void>;
9
+ };
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/saga-runner/types.ts"],"names":[],"mappings":""}
package/tokens.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ /// <reference types="react" />
2
+ import type { Application } from 'express';
3
+ import type { DefaultMiddleware, PageAssets, PageTemplate, ResponseContext } from './http-server/types';
4
+ import type { SagaRunner } from './saga-runner/types';
5
+ import type { Logger } from './logger/types';
6
+ import type { HttpClientFactory } from './http-client/types';
7
+ import type { BaseConfig } from './config/types';
8
+ import type { Tracer } from '@opentelemetry/api';
9
+ import type { Cache } from './cache/types';
10
+ import type { BasicTracerProvider, SpanExporter } from '@opentelemetry/tracing';
11
+ import type { Resource } from '@opentelemetry/resources';
12
+ export declare const KnownToken: {
13
+ readonly Config: {
14
+ readonly source: import("./di").Token<import("@humanwhocodes/env").Env>;
15
+ readonly base: import("./di").Token<BaseConfig>;
16
+ };
17
+ readonly cache: import("./di").Token<Cache>;
18
+ readonly logger: import("./di").Token<Logger>;
19
+ readonly sagaRunner: import("./di").Token<SagaRunner>;
20
+ readonly Tracing: {
21
+ readonly tracer: import("./di").Token<Tracer>;
22
+ readonly spanExporter: import("./di").Token<SpanExporter>;
23
+ readonly tracerProvider: import("./di").Token<BasicTracerProvider>;
24
+ readonly tracerProviderResource: import("./di").Token<Resource>;
25
+ };
26
+ readonly Metrics: {
27
+ readonly httpApp: import("./di").Token<Application>;
28
+ };
29
+ readonly Http: {
30
+ readonly Client: {
31
+ readonly factory: import("./di").Token<HttpClientFactory>;
32
+ };
33
+ readonly Server: {
34
+ readonly factory: import("./di").Token<() => Application>;
35
+ readonly Defaults: {
36
+ readonly middleware: import("./di").Token<DefaultMiddleware>;
37
+ };
38
+ };
39
+ };
40
+ readonly Response: {
41
+ readonly template: import("./di").Token<PageTemplate>;
42
+ readonly context: import("./di").Token<ResponseContext>;
43
+ readonly assets: import("./di").Token<PageAssets>;
44
+ readonly prepare: import("./di").Token<() => JSX.Element | Promise<JSX.Element>>;
45
+ readonly render: import("./di").Token<(element: JSX.Element) => string | Promise<string>>;
46
+ readonly main: import("./di").Token<() => void>;
47
+ };
48
+ };