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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cache/types.d.ts +7 -0
  3. package/dist/cache/types.js +3 -0
  4. package/dist/cache/types.js.map +1 -0
  5. package/dist/config/browser.d.ts +6 -0
  6. package/dist/config/browser.js +13 -0
  7. package/dist/config/browser.js.map +1 -0
  8. package/dist/config/index.d.ts +7 -0
  9. package/dist/config/index.js +20 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/node.d.ts +6 -0
  12. package/dist/config/node.js +19 -0
  13. package/dist/config/node.js.map +1 -0
  14. package/dist/config/types.d.ts +7 -0
  15. package/dist/config/types.js +3 -0
  16. package/dist/config/types.js.map +1 -0
  17. package/dist/config/utils.d.ts +5 -0
  18. package/dist/config/utils.js +12 -0
  19. package/dist/config/utils.js.map +1 -0
  20. package/dist/container/application.d.ts +25 -0
  21. package/dist/container/application.js +63 -0
  22. package/dist/container/application.js.map +1 -0
  23. package/dist/container/index.d.ts +18 -0
  24. package/dist/container/index.js +74 -0
  25. package/dist/container/index.js.map +1 -0
  26. package/dist/container/types.d.ts +14 -0
  27. package/dist/container/types.js +3 -0
  28. package/dist/container/types.js.map +1 -0
  29. package/dist/error-tracker/browser.d.ts +8 -0
  30. package/dist/error-tracker/browser.js +40 -0
  31. package/dist/error-tracker/browser.js.map +1 -0
  32. package/dist/error-tracker/node.d.ts +8 -0
  33. package/dist/error-tracker/node.js +40 -0
  34. package/dist/error-tracker/node.js.map +1 -0
  35. package/dist/error-tracker/types.d.ts +18 -0
  36. package/dist/error-tracker/types.js +3 -0
  37. package/dist/error-tracker/types.js.map +1 -0
  38. package/dist/error-tracker/utils.d.ts +12 -0
  39. package/dist/error-tracker/utils.js +19 -0
  40. package/dist/error-tracker/utils.js.map +1 -0
  41. package/dist/http-client/middleware/cookie.d.ts +19 -0
  42. package/dist/http-client/middleware/cookie.js +62 -0
  43. package/dist/http-client/middleware/cookie.js.map +1 -0
  44. package/dist/http-client/middleware/tracing.d.ts +32 -0
  45. package/dist/http-client/middleware/tracing.js +67 -0
  46. package/dist/http-client/middleware/tracing.js.map +1 -0
  47. package/dist/http-client/types.d.ts +6 -0
  48. package/dist/http-client/types.js +3 -0
  49. package/dist/http-client/types.js.map +1 -0
  50. package/dist/http-client/utils.d.ts +36 -0
  51. package/dist/http-client/utils.js +49 -0
  52. package/dist/http-client/utils.js.map +1 -0
  53. package/dist/http-server/constants.d.ts +4 -0
  54. package/dist/http-server/constants.js +8 -0
  55. package/dist/http-server/constants.js.map +1 -0
  56. package/dist/http-server/handler/health-check.d.ts +6 -0
  57. package/dist/http-server/handler/health-check.js +15 -0
  58. package/dist/http-server/handler/health-check.js.map +1 -0
  59. package/dist/http-server/middleware/logging.d.ts +10 -0
  60. package/dist/http-server/middleware/logging.js +31 -0
  61. package/dist/http-server/middleware/logging.js.map +1 -0
  62. package/dist/http-server/middleware/metrics.d.ts +23 -0
  63. package/dist/http-server/middleware/metrics.js +60 -0
  64. package/dist/http-server/middleware/metrics.js.map +1 -0
  65. package/dist/http-server/middleware/tracing.d.ts +8 -0
  66. package/dist/http-server/middleware/tracing.js +32 -0
  67. package/dist/http-server/middleware/tracing.js.map +1 -0
  68. package/dist/http-server/types.d.ts +25 -0
  69. package/dist/http-server/types.js +3 -0
  70. package/dist/http-server/types.js.map +1 -0
  71. package/dist/http-server/utils.d.ts +26 -0
  72. package/dist/http-server/utils.js +88 -0
  73. package/dist/http-server/utils.js.map +1 -0
  74. package/dist/logger/handler/console.d.ts +8 -0
  75. package/dist/logger/handler/console.js +36 -0
  76. package/dist/logger/handler/console.js.map +1 -0
  77. package/dist/logger/handler/sentry.d.ts +8 -0
  78. package/dist/logger/handler/sentry.js +36 -0
  79. package/dist/logger/handler/sentry.js.map +1 -0
  80. package/dist/logger/index.d.ts +6 -0
  81. package/dist/logger/index.js +31 -0
  82. package/dist/logger/index.js.map +1 -0
  83. package/dist/logger/types.d.ts +24 -0
  84. package/dist/logger/types.js +3 -0
  85. package/dist/logger/types.js.map +1 -0
  86. package/dist/metrics/constants.d.ts +4 -0
  87. package/dist/metrics/constants.js +8 -0
  88. package/dist/metrics/constants.js.map +1 -0
  89. package/dist/metrics/node.d.ts +18 -0
  90. package/dist/metrics/node.js +74 -0
  91. package/dist/metrics/node.js.map +1 -0
  92. package/dist/preset/index.d.ts +7 -0
  93. package/dist/preset/index.js +23 -0
  94. package/dist/preset/index.js.map +1 -0
  95. package/dist/preset/node/index.d.ts +15 -0
  96. package/dist/preset/node/index.js +90 -0
  97. package/dist/preset/node/index.js.map +1 -0
  98. package/dist/preset/node/response.d.ts +12 -0
  99. package/dist/preset/node/response.js +52 -0
  100. package/dist/preset/node/response.js.map +1 -0
  101. package/dist/preset/types.d.ts +7 -0
  102. package/dist/preset/types.js +3 -0
  103. package/dist/preset/types.js.map +1 -0
  104. package/dist/saga-runner/index.d.ts +8 -0
  105. package/dist/saga-runner/index.js +77 -0
  106. package/dist/saga-runner/index.js.map +1 -0
  107. package/dist/saga-runner/types.d.ts +10 -0
  108. package/dist/saga-runner/types.js +3 -0
  109. package/dist/saga-runner/types.js.map +1 -0
  110. package/dist/tokens.d.ts +40 -0
  111. package/dist/tokens.js +43 -0
  112. package/dist/tokens.js.map +1 -0
  113. package/dist/tracer/node.d.ts +10 -0
  114. package/dist/tracer/node.js +38 -0
  115. package/dist/tracer/node.js.map +1 -0
  116. package/dist/tracer/types.d.ts +2 -0
  117. package/dist/tracer/types.js +3 -0
  118. package/dist/tracer/types.js.map +1 -0
  119. package/dist/utils/browser/analytics/data-layer.d.ts +5 -0
  120. package/dist/utils/browser/analytics/data-layer.js +15 -0
  121. package/dist/utils/browser/analytics/data-layer.js.map +1 -0
  122. package/{helpers/analytics/index.d.ts → dist/utils/browser/analytics/oko.d.ts} +1 -6
  123. package/{helpers/analytics/index.js → dist/utils/browser/analytics/oko.js} +11 -20
  124. package/dist/utils/browser/analytics/oko.js.map +1 -0
  125. package/dist/utils/browser/storage/index.d.ts +4 -0
  126. package/dist/utils/browser/storage/index.js +63 -0
  127. package/dist/utils/browser/storage/index.js.map +1 -0
  128. package/dist/utils/number.d.ts +6 -0
  129. package/dist/utils/number.js +13 -0
  130. package/dist/utils/number.js.map +1 -0
  131. package/dist/utils/react/error-handlers/index.d.ts +38 -0
  132. package/dist/utils/react/error-handlers/index.js +47 -0
  133. package/dist/utils/react/error-handlers/index.js.map +1 -0
  134. package/dist/utils/redux/remote-data.d.ts +23 -0
  135. package/dist/utils/redux/remote-data.js +28 -0
  136. package/dist/utils/redux/remote-data.js.map +1 -0
  137. package/dist/utils/redux-saga/take-chain.d.ts +24 -0
  138. package/dist/utils/redux-saga/take-chain.js +56 -0
  139. package/dist/utils/redux-saga/take-chain.js.map +1 -0
  140. package/dist/utils/webpack/module-federation/index.d.ts +21 -0
  141. package/dist/utils/webpack/module-federation/index.js +74 -0
  142. package/dist/utils/webpack/module-federation/index.js.map +1 -0
  143. package/dist/utils/webpack/module-federation/types.d.ts +26 -0
  144. package/dist/utils/webpack/module-federation/types.js +3 -0
  145. package/dist/utils/webpack/module-federation/types.js.map +1 -0
  146. package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
  147. package/dist/utils/webpack/module-federation/utils.js +36 -0
  148. package/dist/utils/webpack/module-federation/utils.js.map +1 -0
  149. package/package.json +50 -68
  150. package/readme.md +23 -0
  151. package/src/cache/types.ts +7 -0
  152. package/src/config/browser.ts +10 -0
  153. package/src/config/index.ts +18 -0
  154. package/src/config/node.ts +18 -0
  155. package/src/config/types.ts +9 -0
  156. package/src/config/utils.ts +7 -0
  157. package/src/container/application.ts +91 -0
  158. package/src/container/index.ts +79 -0
  159. package/src/container/types.ts +17 -0
  160. package/src/error-tracker/browser.ts +14 -0
  161. package/src/error-tracker/node.ts +14 -0
  162. package/src/error-tracker/types.ts +22 -0
  163. package/src/error-tracker/utils.ts +18 -0
  164. package/src/http-client/middleware/cookie.ts +73 -0
  165. package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
  166. package/src/http-client/types.ts +8 -0
  167. package/src/http-client/utils.ts +76 -0
  168. package/src/http-server/constants.ts +4 -0
  169. package/src/http-server/handler/health-check.ts +13 -0
  170. package/src/http-server/middleware/logging.ts +34 -0
  171. package/src/http-server/middleware/metrics.ts +87 -0
  172. package/src/http-server/middleware/tracing.ts +35 -0
  173. package/src/http-server/types.ts +29 -0
  174. package/src/http-server/utils.ts +105 -0
  175. package/src/logger/handler/console.ts +35 -0
  176. package/src/logger/handler/sentry.ts +38 -0
  177. package/src/logger/index.ts +31 -0
  178. package/src/logger/types.ts +28 -0
  179. package/src/metrics/constants.ts +4 -0
  180. package/src/metrics/node.ts +54 -0
  181. package/src/preset/index.ts +24 -0
  182. package/src/preset/node/index.ts +101 -0
  183. package/src/preset/node/response.ts +57 -0
  184. package/src/preset/types.ts +9 -0
  185. package/src/saga-runner/index.ts +59 -0
  186. package/src/saga-runner/types.ts +13 -0
  187. package/src/tokens.ts +54 -0
  188. package/src/tracer/node.ts +40 -0
  189. package/src/tracer/types.ts +3 -0
  190. package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
  191. package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
  192. package/src/utils/browser/analytics/data-layer.ts +12 -0
  193. package/src/{helpers/analytics/index.ts → utils/browser/analytics/oko.ts} +10 -15
  194. package/src/utils/browser/storage/index.ts +75 -0
  195. package/src/utils/number.ts +8 -0
  196. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  197. package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
  198. package/src/utils/react/error-handlers/index.tsx +62 -0
  199. package/src/utils/redux/__test__/remote-data.test.ts +50 -0
  200. package/src/utils/redux/remote-data.ts +34 -0
  201. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  202. package/src/utils/redux-saga/take-chain.ts +65 -0
  203. package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
  204. package/src/utils/webpack/module-federation/index.ts +92 -0
  205. package/src/utils/webpack/module-federation/types.ts +44 -0
  206. package/src/utils/webpack/module-federation/utils.ts +43 -0
  207. package/cache/helpers.d.ts +0 -4
  208. package/cache/helpers.js +0 -39
  209. package/cache/helpers.js.map +0 -1
  210. package/cache/local-storage.d.ts +0 -34
  211. package/cache/local-storage.js +0 -90
  212. package/cache/local-storage.js.map +0 -1
  213. package/cache/redis.d.ts +0 -10
  214. package/cache/redis.js +0 -54
  215. package/cache/redis.js.map +0 -1
  216. package/cache/wrap-in-trace.d.ts +0 -8
  217. package/cache/wrap-in-trace.js +0 -68
  218. package/cache/wrap-in-trace.js.map +0 -1
  219. package/config/create.d.ts +0 -8
  220. package/config/create.js +0 -32
  221. package/config/create.js.map +0 -1
  222. package/config/helpers.d.ts +0 -11
  223. package/config/helpers.js +0 -71
  224. package/config/helpers.js.map +0 -1
  225. package/config/validate.d.ts +0 -18
  226. package/config/validate.js +0 -107
  227. package/config/validate.js.map +0 -1
  228. package/container/create-inject.d.ts +0 -7
  229. package/container/create-inject.js +0 -36
  230. package/container/create-inject.js.map +0 -1
  231. package/container/get-dependencies.d.ts +0 -13
  232. package/container/get-dependencies.js +0 -54
  233. package/container/get-dependencies.js.map +0 -1
  234. package/container/index.d.ts +0 -15
  235. package/container/index.js +0 -175
  236. package/container/index.js.map +0 -1
  237. package/container/is-container.d.ts +0 -7
  238. package/container/is-container.js +0 -17
  239. package/container/is-container.js.map +0 -1
  240. package/container/service-not-found-error.d.ts +0 -10
  241. package/container/service-not-found-error.js +0 -18
  242. package/container/service-not-found-error.js.map +0 -1
  243. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  244. package/create-proxy/create-proxy-middleware/index.js +0 -47
  245. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  246. package/create-proxy/index.d.ts +0 -12
  247. package/create-proxy/index.js +0 -25
  248. package/create-proxy/index.js.map +0 -1
  249. package/create-response-sender/index.d.ts +0 -8
  250. package/create-response-sender/index.js +0 -42
  251. package/create-response-sender/index.js.map +0 -1
  252. package/get-dynamic-data/index.d.ts +0 -8
  253. package/get-dynamic-data/index.js +0 -23
  254. package/get-dynamic-data/index.js.map +0 -1
  255. package/graceful-shutdown/index.d.ts +0 -26
  256. package/graceful-shutdown/index.js +0 -87
  257. package/graceful-shutdown/index.js.map +0 -1
  258. package/helpers/add-error-handling/index.d.ts +0 -1
  259. package/helpers/add-error-handling/index.js +0 -42
  260. package/helpers/add-error-handling/index.js.map +0 -1
  261. package/helpers/analytics/index.js.map +0 -1
  262. package/helpers/api/create-enhancer.d.ts +0 -12
  263. package/helpers/api/create-enhancer.js +0 -52
  264. package/helpers/api/create-enhancer.js.map +0 -1
  265. package/helpers/api/create-instance.d.ts +0 -11
  266. package/helpers/api/create-instance.js +0 -39
  267. package/helpers/api/create-instance.js.map +0 -1
  268. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  269. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  270. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  271. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  272. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  273. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  274. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  275. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  276. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  277. package/helpers/api/middlewares/helpers.d.ts +0 -11
  278. package/helpers/api/middlewares/helpers.js +0 -27
  279. package/helpers/api/middlewares/helpers.js.map +0 -1
  280. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  281. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  282. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  283. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  284. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  285. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  286. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  287. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  288. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  289. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  290. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  291. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  292. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  293. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  294. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  295. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  296. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  297. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  298. package/helpers/api/server-adapter/constants.d.ts +0 -5
  299. package/helpers/api/server-adapter/constants.js +0 -16
  300. package/helpers/api/server-adapter/constants.js.map +0 -1
  301. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  302. package/helpers/api/server-adapter/helpers.js +0 -208
  303. package/helpers/api/server-adapter/helpers.js.map +0 -1
  304. package/helpers/api/server-adapter/index.d.ts +0 -10
  305. package/helpers/api/server-adapter/index.js +0 -118
  306. package/helpers/api/server-adapter/index.js.map +0 -1
  307. package/helpers/development/use-dot-env.d.ts +0 -6
  308. package/helpers/development/use-dot-env.js +0 -11
  309. package/helpers/development/use-dot-env.js.map +0 -1
  310. package/helpers/get-params/index.d.ts +0 -4
  311. package/helpers/get-params/index.js +0 -51
  312. package/helpers/get-params/index.js.map +0 -1
  313. package/helpers/http/request-getters.d.ts +0 -5
  314. package/helpers/http/request-getters.js +0 -49
  315. package/helpers/http/request-getters.js.map +0 -1
  316. package/helpers/http/statuses-validator.d.ts +0 -3
  317. package/helpers/http/statuses-validator.js +0 -25
  318. package/helpers/http/statuses-validator.js.map +0 -1
  319. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  320. package/helpers/logger/create-pino-instance/index.js +0 -39
  321. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  322. package/helpers/logger/format-time/index.d.ts +0 -6
  323. package/helpers/logger/format-time/index.js +0 -9
  324. package/helpers/logger/format-time/index.js.map +0 -1
  325. package/helpers/metrics/index.d.ts +0 -23
  326. package/helpers/metrics/index.js +0 -42
  327. package/helpers/metrics/index.js.map +0 -1
  328. package/helpers/prometheus/index.d.ts +0 -4
  329. package/helpers/prometheus/index.js +0 -13
  330. package/helpers/prometheus/index.js.map +0 -1
  331. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  332. package/helpers/prometheus/measure-middleware.js +0 -69
  333. package/helpers/prometheus/measure-middleware.js.map +0 -1
  334. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  335. package/helpers/prometheus/metric-adapter.js +0 -98
  336. package/helpers/prometheus/metric-adapter.js.map +0 -1
  337. package/helpers/react/error-handlers/index.d.ts +0 -40
  338. package/helpers/react/error-handlers/index.js +0 -52
  339. package/helpers/react/error-handlers/index.js.map +0 -1
  340. package/helpers/redux/constants.d.ts +0 -5
  341. package/helpers/redux/constants.js +0 -14
  342. package/helpers/redux/constants.js.map +0 -1
  343. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  344. package/helpers/redux/create-compose-middleware.js +0 -23
  345. package/helpers/redux/create-compose-middleware.js.map +0 -1
  346. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  347. package/helpers/redux/get-dev-compose-creator.js +0 -13
  348. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  349. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  350. package/helpers/redux/prepare-on-ready.js +0 -16
  351. package/helpers/redux/prepare-on-ready.js.map +0 -1
  352. package/helpers/redux/remote-data.d.ts +0 -40
  353. package/helpers/redux/remote-data.js +0 -91
  354. package/helpers/redux/remote-data.js.map +0 -1
  355. package/helpers/redux/selector/statuses.d.ts +0 -23
  356. package/helpers/redux/selector/statuses.js +0 -34
  357. package/helpers/redux/selector/statuses.js.map +0 -1
  358. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  359. package/helpers/redux/wait-on-store-readiness.js +0 -29
  360. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  361. package/helpers/render/get-react-markup-data.d.ts +0 -14
  362. package/helpers/render/get-react-markup-data.js +0 -20
  363. package/helpers/render/get-react-markup-data.js.map +0 -1
  364. package/helpers/render/index.d.ts +0 -21
  365. package/helpers/render/index.js +0 -72
  366. package/helpers/render/index.js.map +0 -1
  367. package/helpers/render/render-app.d.ts +0 -12
  368. package/helpers/render/render-app.js +0 -12
  369. package/helpers/render/render-app.js.map +0 -1
  370. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  371. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  372. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  373. package/helpers/saga/cache-result.d.ts +0 -46
  374. package/helpers/saga/cache-result.js +0 -71
  375. package/helpers/saga/cache-result.js.map +0 -1
  376. package/helpers/saga/create-store.d.ts +0 -20
  377. package/helpers/saga/create-store.js +0 -106
  378. package/helpers/saga/create-store.js.map +0 -1
  379. package/helpers/saga/do-safe-request.d.ts +0 -38
  380. package/helpers/saga/do-safe-request.js +0 -45
  381. package/helpers/saga/do-safe-request.js.map +0 -1
  382. package/helpers/saga/safe-request.d.ts +0 -7
  383. package/helpers/saga/safe-request.js +0 -15
  384. package/helpers/saga/safe-request.js.map +0 -1
  385. package/helpers/saga/take-chain.d.ts +0 -20
  386. package/helpers/saga/take-chain.js +0 -56
  387. package/helpers/saga/take-chain.js.map +0 -1
  388. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  389. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  390. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  391. package/helpers/tracer/index.d.ts +0 -24
  392. package/helpers/tracer/index.js +0 -144
  393. package/helpers/tracer/index.js.map +0 -1
  394. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  395. package/helpers/utils/check-feature-by-segment.js +0 -31
  396. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  397. package/helpers/utils/format-object-keys.d.ts +0 -6
  398. package/helpers/utils/format-object-keys.js +0 -27
  399. package/helpers/utils/format-object-keys.js.map +0 -1
  400. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  401. package/helpers/utils/get-ms-from-hrt.js +0 -22
  402. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  403. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  404. package/helpers/utils/is-match-pattern-list.js +0 -16
  405. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  406. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  407. package/helpers/utils/is-not-empty-array.js +0 -12
  408. package/helpers/utils/is-not-empty-array.js.map +0 -1
  409. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  410. package/helpers/utils/is-not-empty-string.js +0 -15
  411. package/helpers/utils/is-not-empty-string.js.map +0 -1
  412. package/helpers/utils/is-numeric.d.ts +0 -7
  413. package/helpers/utils/is-numeric.js +0 -16
  414. package/helpers/utils/is-numeric.js.map +0 -1
  415. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  416. package/helpers/utils/wrap-in-measure-event.js +0 -50
  417. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  418. package/logger/create-logger-middleware/index.d.ts +0 -14
  419. package/logger/create-logger-middleware/index.js +0 -41
  420. package/logger/create-logger-middleware/index.js.map +0 -1
  421. package/logger/create-sentry-instance/index.d.ts +0 -29
  422. package/logger/create-sentry-instance/index.js +0 -63
  423. package/logger/create-sentry-instance/index.js.map +0 -1
  424. package/logger/create-sentry-middleware/index.d.ts +0 -14
  425. package/logger/create-sentry-middleware/index.js +0 -19
  426. package/logger/create-sentry-middleware/index.js.map +0 -1
  427. package/logger/handler-creators/index.d.ts +0 -5
  428. package/logger/handler-creators/index.js +0 -41
  429. package/logger/handler-creators/index.js.map +0 -1
  430. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  431. package/logger/initialize-sentry-creator/index.js +0 -35
  432. package/logger/initialize-sentry-creator/index.js.map +0 -1
  433. package/logger/sentry-logger/index.d.ts +0 -9
  434. package/logger/sentry-logger/index.js +0 -36
  435. package/logger/sentry-logger/index.js.map +0 -1
  436. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  437. package/module-federation/__example__/webpack-config.example.js +0 -51
  438. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  439. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -46
  440. package/module-federation/enhanced-module-federation-plugin.js +0 -72
  441. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  442. package/module-federation/utils/index.d.ts +0 -8
  443. package/module-federation/utils/index.js +0 -28
  444. package/module-federation/utils/index.js.map +0 -1
  445. package/observe-middleware/index.d.ts +0 -9
  446. package/observe-middleware/index.js +0 -67
  447. package/observe-middleware/index.js.map +0 -1
  448. package/set-header-middleware/create.d.ts +0 -10
  449. package/set-header-middleware/create.js +0 -16
  450. package/set-header-middleware/create.js.map +0 -1
  451. package/src/cache/helpers.js +0 -32
  452. package/src/cache/local-storage.ts +0 -92
  453. package/src/cache/redis.js +0 -79
  454. package/src/cache/wrap-in-trace.js +0 -57
  455. package/src/config/create.js +0 -33
  456. package/src/config/helpers.js +0 -71
  457. package/src/config/validate.js +0 -114
  458. package/src/container/create-inject.js +0 -32
  459. package/src/container/get-dependencies.js +0 -46
  460. package/src/container/index.js +0 -188
  461. package/src/container/is-container.js +0 -14
  462. package/src/container/service-not-found-error.js +0 -14
  463. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  464. package/src/create-proxy/index.js +0 -27
  465. package/src/create-response-sender/index.js +0 -48
  466. package/src/get-dynamic-data/index.js +0 -26
  467. package/src/graceful-shutdown/index.js +0 -97
  468. package/src/helpers/add-error-handling/index.js +0 -24
  469. package/src/helpers/api/create-enhancer.js +0 -52
  470. package/src/helpers/api/create-instance.js +0 -42
  471. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  472. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  473. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  474. package/src/helpers/api/middlewares/helpers.js +0 -26
  475. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  476. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  477. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  478. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  479. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  480. package/src/helpers/api/server-adapter/constants.js +0 -12
  481. package/src/helpers/api/server-adapter/helpers.js +0 -244
  482. package/src/helpers/api/server-adapter/index.js +0 -155
  483. package/src/helpers/development/use-dot-env.js +0 -9
  484. package/src/helpers/get-params/index.js +0 -59
  485. package/src/helpers/http/request-getters.js +0 -42
  486. package/src/helpers/http/statuses-validator.js +0 -20
  487. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  488. package/src/helpers/logger/format-time/index.js +0 -6
  489. package/src/helpers/metrics/index.js +0 -40
  490. package/src/helpers/prometheus/index.js +0 -9
  491. package/src/helpers/prometheus/measure-middleware.js +0 -73
  492. package/src/helpers/prometheus/metric-adapter.js +0 -99
  493. package/src/helpers/react/error-handlers/index.tsx +0 -68
  494. package/src/helpers/redux/constants.js +0 -10
  495. package/src/helpers/redux/create-compose-middleware.js +0 -24
  496. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  497. package/src/helpers/redux/prepare-on-ready.js +0 -16
  498. package/src/helpers/redux/remote-data.js +0 -124
  499. package/src/helpers/redux/selector/statuses.js +0 -30
  500. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  501. package/src/helpers/render/get-react-markup-data.js +0 -18
  502. package/src/helpers/render/index.js +0 -69
  503. package/src/helpers/render/render-app.js +0 -15
  504. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  505. package/src/helpers/saga/cache-result.js +0 -77
  506. package/src/helpers/saga/create-store.js +0 -102
  507. package/src/helpers/saga/do-safe-request.js +0 -47
  508. package/src/helpers/saga/safe-request.js +0 -11
  509. package/src/helpers/saga/take-chain.js +0 -53
  510. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  511. package/src/helpers/tracer/index.js +0 -171
  512. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  513. package/src/helpers/utils/format-object-keys.js +0 -23
  514. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  515. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  516. package/src/helpers/utils/is-not-empty-array.js +0 -8
  517. package/src/helpers/utils/is-not-empty-string.js +0 -11
  518. package/src/helpers/utils/is-numeric.ts +0 -12
  519. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  520. package/src/logger/create-logger-middleware/index.js +0 -46
  521. package/src/logger/create-sentry-instance/index.js +0 -74
  522. package/src/logger/create-sentry-middleware/index.js +0 -16
  523. package/src/logger/handler-creators/index.js +0 -38
  524. package/src/logger/initialize-sentry-creator/index.js +0 -43
  525. package/src/logger/sentry-logger/index.js +0 -33
  526. package/src/module-federation/__example__/webpack-config.example.js +0 -57
  527. package/src/module-federation/enhanced-module-federation-plugin.js +0 -92
  528. package/src/module-federation/utils/index.js +0 -32
  529. package/src/observe-middleware/index.js +0 -70
  530. package/src/set-header-middleware/create.js +0 -17
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.provideMain = exports.provideRender = exports.provideSagaRunner = exports.PresetResponse = void 0;
4
+ const tokens_1 = require("../../tokens");
5
+ const __1 = require("..");
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 utils_1 = require("../../http-server/utils");
10
+ /**
11
+ * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
12
+ * @return Preset.
13
+ */
14
+ function PresetResponse() {
15
+ return (0, __1.createPreset)([
16
+ [tokens_1.KnownToken.Response.sagaRunner, exports.provideSagaRunner],
17
+ [tokens_1.KnownToken.Response.render, exports.provideRender],
18
+ [tokens_1.KnownToken.Response.main, exports.provideMain],
19
+ ]);
20
+ }
21
+ exports.PresetResponse = PresetResponse;
22
+ const provideSagaRunner = resolve => {
23
+ const logger = resolve(tokens_1.KnownToken.logger);
24
+ return (0, saga_runner_1.createSagaRunner)(logger);
25
+ };
26
+ exports.provideSagaRunner = provideSagaRunner;
27
+ const provideRender = resolve => {
28
+ const { res } = resolve(tokens_1.KnownToken.Response.context);
29
+ return function render(element) {
30
+ res.emit(constants_1.RESPONSE_EVENT.renderStart);
31
+ const result = (0, server_1.renderToString)(element);
32
+ res.emit(constants_1.RESPONSE_EVENT.renderFinish);
33
+ return result;
34
+ };
35
+ };
36
+ exports.provideRender = provideRender;
37
+ const provideMain = resolve => {
38
+ const context = resolve(tokens_1.KnownToken.Response.context);
39
+ const assets = resolve(tokens_1.KnownToken.Response.assets);
40
+ const prepare = resolve(tokens_1.KnownToken.Response.prepare);
41
+ const render = resolve(tokens_1.KnownToken.Response.render);
42
+ return async function main() {
43
+ utils_1.PageResponse.create()
44
+ .markup(await render(await prepare()))
45
+ .script(assets.js)
46
+ .style(assets.css)
47
+ .format(utils_1.PageResponse.defineFormat(context.req))
48
+ .send(context.res);
49
+ };
50
+ };
51
+ exports.provideMain = provideMain;
52
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/preset/node/response.ts"],"names":[],"mappings":";;;AAIA,yCAA0C;AAC1C,0BAAkC;AAClC,6CAAkD;AAClD,mDAAqD;AACrD,2DAA6D;AAC7D,mDAAuD;AAEvD;;;GAGG;AACH,SAAgB,cAAc;IAC5B,OAAO,IAAA,gBAAY,EAAC;QAClB,CAAC,mBAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,yBAAiB,CAAC;QACnD,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAa,CAAC;QAC3C,CAAC,mBAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAW,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAND,wCAMC;AAEM,MAAM,iBAAiB,GAAyB,OAAO,CAAC,EAAE;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,aAAa,GAA4D,OAAO,CAAC,EAAE;IAC9F,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO,SAAS,MAAM,CAAC,OAAoB;QACzC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QAEvC,GAAG,CAAC,IAAI,CAAC,0BAAc,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB;AAEK,MAAM,WAAW,GAAyB,OAAO,CAAC,EAAE;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEnD,OAAO,KAAK,UAAU,IAAI;QACxB,oBAAY,CAAC,MAAM,EAAE;aAClB,MAAM,CAAC,MAAM,MAAM,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACjB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;aACjB,MAAM,CAAC,oBAAY,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,WAAW,eActB"}
@@ -0,0 +1,7 @@
1
+ import type { Application } from '../container/application';
2
+ import type { Token, Provider } from '../container/types';
3
+ export declare type PresetEntry<T = any> = [Token<T>, Provider<T>];
4
+ export interface Preset {
5
+ override: <T>(token: Token<T>, provider: Provider<T>) => void;
6
+ apply: (application: Application) => void;
7
+ }
@@ -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/preset/types.ts"],"names":[],"mappings":""}
@@ -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,77 @@
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(new utils_1.SentryError(error.message, {
38
+ extra: { key: 'Saga stack', data: sagaStack },
39
+ }));
40
+ },
41
+ });
42
+ return {
43
+ middleware,
44
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
45
+ prepare(store, { timeout } = {}) {
46
+ return {
47
+ // eslint-disable-next-line require-jsdoc, jsdoc/require-jsdoc
48
+ async run(saga, ...args) {
49
+ let ready = false;
50
+ await Promise.race([
51
+ // ждем пока сага выполнится
52
+ middleware
53
+ .run(saga, ...args)
54
+ .toPromise()
55
+ .then(() => {
56
+ ready = true;
57
+ }),
58
+ // если сага не выполнилась за положенное время - прерываем
59
+ typeof timeout === 'number' &&
60
+ Number.isFinite(timeout) &&
61
+ new Promise(resolve => {
62
+ setTimeout(() => {
63
+ if (!ready) {
64
+ logger.error(Error('Сага прервана по таймауту'));
65
+ store.dispatch(redux_saga_1.END);
66
+ }
67
+ resolve();
68
+ }, timeout);
69
+ }),
70
+ ]);
71
+ },
72
+ };
73
+ },
74
+ };
75
+ }
76
+ exports.createSagaRunner = createSagaRunner;
77
+ //# 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,CACV,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;AA/CD,4CA+CC"}
@@ -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":""}
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import type { Application } from 'express';
3
+ import type { DefaultMiddleware, PageAssets, 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 './tracer/types';
9
+ import type { Cache } from './cache/types';
10
+ export declare const KnownToken: {
11
+ readonly Config: {
12
+ readonly source: import("./container/types").Token<import("@humanwhocodes/env").Env>;
13
+ readonly base: import("./container/types").Token<BaseConfig>;
14
+ };
15
+ readonly cache: import("./container/types").Token<Cache>;
16
+ readonly logger: import("./container/types").Token<Logger>;
17
+ readonly tracer: import("./container/types").Token<Tracer>;
18
+ readonly Metrics: {
19
+ readonly httpApp: import("./container/types").Token<Application>;
20
+ };
21
+ readonly Http: {
22
+ readonly Client: {
23
+ readonly factory: import("./container/types").Token<HttpClientFactory>;
24
+ };
25
+ readonly Server: {
26
+ readonly factory: import("./container/types").Token<() => Application>;
27
+ readonly Defaults: {
28
+ readonly middleware: import("./container/types").Token<DefaultMiddleware>;
29
+ };
30
+ };
31
+ };
32
+ readonly Response: {
33
+ readonly context: import("./container/types").Token<ResponseContext>;
34
+ readonly assets: import("./container/types").Token<PageAssets>;
35
+ readonly prepare: import("./container/types").Token<() => JSX.Element | Promise<JSX.Element>>;
36
+ readonly render: import("./container/types").Token<(element: JSX.Element) => string | Promise<string>>;
37
+ readonly main: import("./container/types").Token<() => void>;
38
+ readonly sagaRunner: import("./container/types").Token<SagaRunner>;
39
+ };
40
+ };
package/dist/tokens.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KnownToken = void 0;
4
+ const container_1 = require("./container");
5
+ exports.KnownToken = {
6
+ // config
7
+ Config: {
8
+ source: (0, container_1.createToken)('config.source'),
9
+ base: (0, container_1.createToken)('config.base'),
10
+ },
11
+ // cache
12
+ cache: (0, container_1.createToken)('cache'),
13
+ // logging
14
+ logger: (0, container_1.createToken)('logger'),
15
+ // tracing
16
+ tracer: (0, container_1.createToken)('tracer'),
17
+ // metrics
18
+ Metrics: {
19
+ httpApp: (0, container_1.createToken)('metrics.http-app'),
20
+ },
21
+ // http
22
+ Http: {
23
+ Client: {
24
+ factory: (0, container_1.createToken)('http.client.factory'),
25
+ },
26
+ Server: {
27
+ factory: (0, container_1.createToken)('http.server.factory'),
28
+ Defaults: {
29
+ middleware: (0, container_1.createToken)('http.server.defaults.middleware'),
30
+ },
31
+ },
32
+ },
33
+ // scope: page response
34
+ Response: {
35
+ context: (0, container_1.createToken)('response/context'),
36
+ assets: (0, container_1.createToken)('response/assets'),
37
+ prepare: (0, container_1.createToken)('response/prepare'),
38
+ render: (0, container_1.createToken)('response/render'),
39
+ main: (0, container_1.createToken)('response/main'),
40
+ sagaRunner: (0, container_1.createToken)('response/saga-runner'),
41
+ },
42
+ };
43
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAU7B,QAAA,UAAU,GAAG;IACxB,SAAS;IACT,MAAM,EAAE;QACN,MAAM,EAAE,IAAA,uBAAW,EAAe,eAAe,CAAC;QAClD,IAAI,EAAE,IAAA,uBAAW,EAAa,aAAa,CAAC;KAC7C;IAED,QAAQ;IACR,KAAK,EAAE,IAAA,uBAAW,EAAQ,OAAO,CAAC;IAElC,UAAU;IACV,MAAM,EAAE,IAAA,uBAAW,EAAS,QAAQ,CAAC;IAErC,UAAU;IACV,MAAM,EAAE,IAAA,uBAAW,EAAS,QAAQ,CAAC;IAErC,UAAU;IACV,OAAO,EAAE;QACP,OAAO,EAAE,IAAA,uBAAW,EAAc,kBAAkB,CAAC;KACtD;IAED,OAAO;IACP,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,uBAAW,EAAoB,qBAAqB,CAAC;SAC/D;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAA,uBAAW,EAAoB,qBAAqB,CAAC;YAC9D,QAAQ,EAAE;gBACR,UAAU,EAAE,IAAA,uBAAW,EAAoB,iCAAiC,CAAC;aAC9E;SACF;KACF;IAED,uBAAuB;IACvB,QAAQ,EAAE;QACR,OAAO,EAAE,IAAA,uBAAW,EAAkB,kBAAkB,CAAC;QACzD,MAAM,EAAE,IAAA,uBAAW,EAAa,iBAAiB,CAAC;QAClD,OAAO,EAAE,IAAA,uBAAW,EAA2C,kBAAkB,CAAC;QAClF,MAAM,EAAE,IAAA,uBAAW,EAAqD,iBAAiB,CAAC;QAC1F,IAAI,EAAE,IAAA,uBAAW,EAAa,eAAe,CAAC;QAC9C,UAAU,EAAE,IAAA,uBAAW,EAAa,sBAAsB,CAAC;KAC5D;CACO,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Tracer } from './types';
2
+ import type { BaseConfig } from '../config/types';
3
+ import { SpanExporter } from '@opentelemetry/tracing';
4
+ /**
5
+ * Возвращает новый tracer - объект для трассировки стадий различных процессов.
6
+ * @param config Конфиг.
7
+ * @param exporter Экспортер данных трассировки.
8
+ * @return Tracer.
9
+ */
10
+ export declare function createTracer(config: BaseConfig, exporter: SpanExporter): Tracer;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTracer = void 0;
4
+ const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
5
+ const tracing_1 = require("@opentelemetry/tracing");
6
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
7
+ const instrumentation_1 = require("@opentelemetry/instrumentation");
8
+ const instrumentation_express_1 = require("@opentelemetry/instrumentation-express");
9
+ const instrumentation_http_1 = require("@opentelemetry/instrumentation-http");
10
+ const resources_1 = require("@opentelemetry/resources");
11
+ const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
12
+ /**
13
+ * Возвращает новый tracer - объект для трассировки стадий различных процессов.
14
+ * @param config Конфиг.
15
+ * @param exporter Экспортер данных трассировки.
16
+ * @return Tracer.
17
+ */
18
+ function createTracer(config, exporter) {
19
+ // @todo доделать по инструкции: https://selvaganesh93.medium.com/tracing-node-js-application-with-opentelemetry-jaeger-ui-9523c0ac8453
20
+ const provider = new sdk_trace_node_1.NodeTracerProvider({
21
+ resource: new resources_1.Resource({
22
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: config.appName,
23
+ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: config.appVersion,
24
+ [semantic_conventions_1.SemanticResourceAttributes.DEPLOYMENT_ENVIRONMENT]: config.env,
25
+ }),
26
+ });
27
+ // @todo выяснить, почему не сходятся типы и приходится оставлять as any
28
+ provider.addSpanProcessor(new tracing_1.BatchSpanProcessor(exporter));
29
+ provider.register({
30
+ propagator: new propagator_jaeger_1.JaegerPropagator(),
31
+ });
32
+ (0, instrumentation_1.registerInstrumentations)({
33
+ instrumentations: [new instrumentation_express_1.ExpressInstrumentation(), new instrumentation_http_1.HttpInstrumentation()],
34
+ });
35
+ return provider.getTracer(config.appName, config.appVersion);
36
+ }
37
+ exports.createTracer = createTracer;
38
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/tracer/node.ts"],"names":[],"mappings":";;;AAEA,kEAAmE;AACnE,oDAA0E;AAC1E,8EAAiF;AACjF,oEAA0E;AAC1E,oFAAgF;AAChF,8EAA0E;AAC1E,wDAAoD;AACpD,wEAAoE;AAEpE;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,MAAkB,EAAE,QAAsB;IACrE,uIAAuI;IACvI,MAAM,QAAQ,GAAG,IAAI,mCAAkB,CAAC;QACtC,QAAQ,EAAE,IAAI,oBAAQ,CAAC;YACrB,CAAC,iDAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO;YACzD,CAAC,iDAA0B,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,UAAU;YAC/D,CAAC,iDAA0B,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,GAAG;SAChE,CAAC;KACH,CAAC,CAAC;IAEH,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,4BAAkB,CAAC,QAAQ,CAAQ,CAAC,CAAC;IAEnE,QAAQ,CAAC,QAAQ,CAAC;QAChB,UAAU,EAAE,IAAI,oCAAgB,EAAE;KACnC,CAAC,CAAC;IAEH,IAAA,0CAAwB,EAAC;QACvB,gBAAgB,EAAE,CAAC,IAAI,gDAAsB,EAAE,EAAE,IAAI,0CAAmB,EAAE,CAAC;KAC5E,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/D,CAAC;AAtBD,oCAsBC"}
@@ -0,0 +1,2 @@
1
+ import type { Tracer } from '@opentelemetry/api';
2
+ export type { Tracer };
@@ -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/tracer/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Отправка аналитики в око.
3
+ * @param eventData Данные события для отправки.
4
+ */
5
+ export declare const dataLayerPush: (eventData: Record<string, any>) => void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dataLayerPush = void 0;
4
+ const lodash_1 = require("lodash");
5
+ /**
6
+ * Отправка аналитики в око.
7
+ * @param eventData Данные события для отправки.
8
+ */
9
+ const dataLayerPush = (eventData) => {
10
+ const win = window;
11
+ // копируем объект так как window.dataLayer.push может менять аргумент в процессе работы
12
+ (0, lodash_1.isFunction)(win.dataLayer?.push) && win.dataLayer.push({ ...eventData });
13
+ };
14
+ exports.dataLayerPush = dataLayerPush;
15
+ //# sourceMappingURL=data-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-layer.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/data-layer.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,SAA8B,EAAE,EAAE;IAC9D,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,wFAAwF;IACxF,IAAA,mBAAU,EAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB"}
@@ -4,14 +4,9 @@ export declare type OkoEvent = Record<string, any>;
4
4
  * @param eventData Данные события для отправки.
5
5
  */
6
6
  export declare const okoPush: (eventData: OkoEvent) => void;
7
- /**
8
- * Эффект для отправки события в ОКО.
9
- * @param data Данные события для отправки в ОКО.
10
- */
11
- export declare function sendAnalytics(data: OkoEvent): Generator<import("redux-saga/effects").CallEffect<void>, void, unknown>;
12
7
  /**
13
8
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
14
9
  * @param data Данные события для отправки в ОКО.
15
10
  * @return Функция.
16
11
  */
17
- export declare const useAnalytics: (data: OkoEvent) => () => void;
12
+ export declare const useOkoPush: (data: OkoEvent) => () => void;
@@ -1,42 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAnalytics = exports.sendAnalytics = exports.okoPush = void 0;
3
+ exports.useOkoPush = exports.okoPush = void 0;
4
4
  const react_1 = require("react");
5
- const effects_1 = require("redux-saga/effects");
6
5
  const lodash_1 = require("lodash");
7
6
  /**
8
7
  * Отправка аналитики в око.
9
8
  * @param eventData Данные события для отправки.
10
9
  */
11
10
  const okoPush = (eventData) => {
12
- var _a;
11
+ const win = window;
13
12
  // копируем объект так как window.oko.push меняет свой аргумент в процессе выполнения
14
- lodash_1.isFunction((_a = window.oko) === null || _a === void 0 ? void 0 : _a.push) && window.oko.push(Object.assign({}, eventData));
13
+ (0, lodash_1.isFunction)(win.oko?.push) && win.oko.push({ ...eventData });
15
14
  };
16
15
  exports.okoPush = okoPush;
17
- /**
18
- * Эффект для отправки события в ОКО.
19
- * @param data Данные события для отправки в ОКО.
20
- */
21
- function* sendAnalytics(data) {
22
- yield effects_1.call(exports.okoPush, data);
23
- }
24
- exports.sendAnalytics = sendAnalytics;
25
16
  /**
26
17
  * Хук, возвращающий функцию, которая отправит аналитику в ОКО.
27
18
  * @param data Данные события для отправки в ОКО.
28
19
  * @return Функция.
29
20
  */
30
- const useAnalytics = (data) => {
31
- const dataRef = react_1.useRef();
32
- const fnRef = react_1.useRef();
21
+ const useOkoPush = (data) => {
22
+ const dataRef = (0, react_1.useRef)();
23
+ const fnRef = (0, react_1.useRef)();
33
24
  if (!dataRef.current) {
34
- dataRef.current = Object.assign({}, data);
25
+ dataRef.current = { ...data };
35
26
  }
36
27
  if (!fnRef.current) {
37
- fnRef.current = () => exports.okoPush(dataRef.current);
28
+ fnRef.current = () => (0, exports.okoPush)(dataRef.current);
38
29
  }
39
- if (!lodash_1.isEqual(data, dataRef.current)) {
30
+ if (!(0, lodash_1.isEqual)(data, dataRef.current)) {
40
31
  throw Error([
41
32
  'useAnalytics: Данные для аналитики изменились.',
42
33
  'Если необходимо использовать динамические данные, вынесите логику из React-компонента.',
@@ -44,5 +35,5 @@ const useAnalytics = (data) => {
44
35
  }
45
36
  return fnRef.current;
46
37
  };
47
- exports.useAnalytics = useAnalytics;
48
- //# sourceMappingURL=index.js.map
38
+ exports.useOkoPush = useOkoPush;
39
+ //# sourceMappingURL=oko.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../../src/utils/browser/analytics/oko.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,mCAA6C;AAI7C;;;GAGG;AACI,MAAM,OAAO,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAQ,MAAM,CAAC;IAExB,qFAAqF;IACrF,IAAA,mBAAU,EAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;GAIG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,IAAA,cAAM,GAAY,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,cAAM,GAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CACT;YACE,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;KACH;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB"}
@@ -0,0 +1,4 @@
1
+ export interface StorageUtils extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {
2
+ isAvailable: () => boolean;
3
+ }
4
+ export declare function createStorageUtils(getStorage: () => Storage): StorageUtils;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createStorageUtils = void 0;
5
+ function createStorageUtils(getStorage) {
6
+ function isAvailable() {
7
+ try {
8
+ const testKey = `local_storage_test_key::${Date.now()}`;
9
+ getStorage().setItem(testKey, testKey);
10
+ getStorage().removeItem(testKey);
11
+ return true;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ }
17
+ function clear() {
18
+ if (isAvailable()) {
19
+ getStorage().clear();
20
+ }
21
+ }
22
+ function getItem(name) {
23
+ if (isAvailable()) {
24
+ return getStorage().getItem(name);
25
+ }
26
+ return null;
27
+ }
28
+ function key(index) {
29
+ if (isAvailable()) {
30
+ return getStorage().key(index);
31
+ }
32
+ return null;
33
+ }
34
+ function removeItem(name) {
35
+ if (isAvailable()) {
36
+ getStorage().removeItem(name);
37
+ }
38
+ }
39
+ function setItem(name, value) {
40
+ if (isAvailable()) {
41
+ getStorage().setItem(name, value);
42
+ }
43
+ }
44
+ function length() {
45
+ if (isAvailable()) {
46
+ return getStorage().length;
47
+ }
48
+ return 0;
49
+ }
50
+ return {
51
+ isAvailable,
52
+ clear,
53
+ getItem,
54
+ key,
55
+ removeItem,
56
+ setItem,
57
+ get length() {
58
+ return length();
59
+ },
60
+ };
61
+ }
62
+ exports.createStorageUtils = createStorageUtils;
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/browser/storage/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAOvD,SAAgB,kBAAkB,CAAC,UAAyB;IAC1D,SAAS,WAAW;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAExD,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,UAAU,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;SACtB;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY;QAC3B,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACnC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,GAAG,CAAC,KAAa;QACxB,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,UAAU,CAAC,IAAY;QAC9B,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,WAAW,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;IACH,CAAC;IAED,SAAS,MAAM;QACb,IAAI,WAAW,EAAE,EAAE;YACjB,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC;SAC5B;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO;QACL,WAAW;QAEX,KAAK;QACL,OAAO;QACP,GAAG;QACH,UAAU;QACV,OAAO;QACP,IAAI,MAAM;YACR,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAnED,gDAmEC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Переводит наносекунды в миллисекунды.
3
+ * @param nanoseconds Наносекунды.
4
+ * @return Миллисекунды.
5
+ */
6
+ export declare function toMilliseconds(nanoseconds: bigint): number;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toMilliseconds = void 0;
4
+ /**
5
+ * Переводит наносекунды в миллисекунды.
6
+ * @param nanoseconds Наносекунды.
7
+ * @return Миллисекунды.
8
+ */
9
+ function toMilliseconds(nanoseconds) {
10
+ return Number(nanoseconds / 1000000n);
11
+ }
12
+ exports.toMilliseconds = toMilliseconds;
13
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/utils/number.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,SAAgB,cAAc,CAAC,WAAmB;IAChD,OAAO,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;AACxC,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ export interface Props {
3
+ /** Дочерний компонент. */
4
+ children: NonNullable<React.ReactNode> | null;
5
+ /** Запасной элемент, если возникла ошибка. */
6
+ fallback: NonNullable<React.ReactNode> | null;
7
+ /** Функция для логирования ошибки. */
8
+ onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
9
+ }
10
+ /**
11
+ * Обработчик ошибок в React-компонентах.
12
+ */
13
+ export declare class ErrorBoundary extends React.Component<Props, {
14
+ hasError: boolean;
15
+ }> {
16
+ /**
17
+ * @param props Свойства.
18
+ */
19
+ constructor(props: Props);
20
+ /** @inheritdoc */
21
+ static getDerivedStateFromError(): {
22
+ hasError: boolean;
23
+ };
24
+ /** @inheritdoc */
25
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
26
+ /**
27
+ * Рендер.
28
+ * @return Дочерний элемент либо запасное значение.
29
+ */
30
+ render(): {} | null;
31
+ }
32
+ /**
33
+ * Обертка над Suspense c перехватом ошибок.
34
+ * @todo Возможно этот компонент не нужен...
35
+ * @param props Свойства.
36
+ * @return Элемент.
37
+ */
38
+ export declare const SafeSuspense: ({ children, fallback, onError }: Props) => JSX.Element;
@@ -0,0 +1,47 @@
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.SafeSuspense = exports.ErrorBoundary = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ /**
9
+ * Обработчик ошибок в React-компонентах.
10
+ */
11
+ class ErrorBoundary extends react_1.default.Component {
12
+ /**
13
+ * @param props Свойства.
14
+ */
15
+ constructor(props) {
16
+ super(props);
17
+ this.state = { hasError: false };
18
+ }
19
+ /** @inheritdoc */
20
+ static getDerivedStateFromError() {
21
+ return { hasError: true };
22
+ }
23
+ /** @inheritdoc */
24
+ componentDidCatch(error, errorInfo) {
25
+ const { onError } = this.props;
26
+ onError?.(error, errorInfo);
27
+ }
28
+ /**
29
+ * Рендер.
30
+ * @return Дочерний элемент либо запасное значение.
31
+ */
32
+ render() {
33
+ const { children, fallback } = this.props;
34
+ return this.state.hasError ? fallback : children;
35
+ }
36
+ }
37
+ exports.ErrorBoundary = ErrorBoundary;
38
+ /**
39
+ * Обертка над Suspense c перехватом ошибок.
40
+ * @todo Возможно этот компонент не нужен...
41
+ * @param props Свойства.
42
+ * @return Элемент.
43
+ */
44
+ const SafeSuspense = ({ children, fallback, onError }) => (react_1.default.createElement(react_1.default.Suspense, { fallback: fallback },
45
+ react_1.default.createElement(ErrorBoundary, { fallback: fallback, onError: onError }, children)));
46
+ exports.SafeSuspense = SafeSuspense;
47
+ //# sourceMappingURL=index.js.map