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

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 (479) 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/browser.d.ts +6 -0
  5. package/config/browser.js +13 -0
  6. package/config/browser.js.map +1 -0
  7. package/config/index.d.ts +7 -0
  8. package/config/index.js +20 -0
  9. package/config/index.js.map +1 -0
  10. package/config/node.d.ts +6 -0
  11. package/config/node.js +19 -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/config/utils.d.ts +5 -0
  17. package/config/utils.js +12 -0
  18. package/config/utils.js.map +1 -0
  19. package/container/application.d.ts +25 -0
  20. package/container/application.js +63 -0
  21. package/container/application.js.map +1 -0
  22. package/container/index.d.ts +16 -13
  23. package/container/index.js +60 -161
  24. package/container/index.js.map +1 -1
  25. package/container/types.d.ts +14 -0
  26. package/container/types.js +3 -0
  27. package/container/types.js.map +1 -0
  28. package/error-tracker/browser.d.ts +8 -0
  29. package/error-tracker/browser.js +40 -0
  30. package/error-tracker/browser.js.map +1 -0
  31. package/error-tracker/node.d.ts +8 -0
  32. package/error-tracker/node.js +40 -0
  33. package/error-tracker/node.js.map +1 -0
  34. package/error-tracker/types.d.ts +18 -0
  35. package/error-tracker/types.js +3 -0
  36. package/error-tracker/types.js.map +1 -0
  37. package/error-tracker/utils.d.ts +12 -0
  38. package/error-tracker/utils.js +19 -0
  39. package/error-tracker/utils.js.map +1 -0
  40. package/http-client/middleware/cookie.d.ts +19 -0
  41. package/http-client/middleware/cookie.js +62 -0
  42. package/http-client/middleware/cookie.js.map +1 -0
  43. package/http-client/middleware/tracing.d.ts +32 -0
  44. package/http-client/middleware/tracing.js +67 -0
  45. package/http-client/middleware/tracing.js.map +1 -0
  46. package/http-client/sauce/index.d.ts +27 -0
  47. package/http-client/sauce/index.js +33 -0
  48. package/http-client/sauce/index.js.map +1 -0
  49. package/http-client/types.d.ts +6 -0
  50. package/http-client/types.js +3 -0
  51. package/http-client/types.js.map +1 -0
  52. package/http-client/utils.d.ts +9 -0
  53. package/http-client/utils.js +20 -0
  54. package/http-client/utils.js.map +1 -0
  55. package/http-server/constants.d.ts +4 -0
  56. package/http-server/constants.js +8 -0
  57. package/http-server/constants.js.map +1 -0
  58. package/http-server/handler/health-check.d.ts +6 -0
  59. package/http-server/handler/health-check.js +15 -0
  60. package/http-server/handler/health-check.js.map +1 -0
  61. package/http-server/middleware/logging.d.ts +10 -0
  62. package/http-server/middleware/logging.js +31 -0
  63. package/http-server/middleware/logging.js.map +1 -0
  64. package/http-server/middleware/metrics.d.ts +23 -0
  65. package/http-server/middleware/metrics.js +60 -0
  66. package/http-server/middleware/metrics.js.map +1 -0
  67. package/http-server/middleware/tracing.d.ts +8 -0
  68. package/http-server/middleware/tracing.js +33 -0
  69. package/http-server/middleware/tracing.js.map +1 -0
  70. package/http-server/template/index.d.ts +1 -0
  71. package/http-server/template/index.js +36 -0
  72. package/http-server/template/index.js.map +1 -0
  73. package/http-server/types.d.ts +33 -0
  74. package/http-server/types.js +3 -0
  75. package/http-server/types.js.map +1 -0
  76. package/http-server/utils.d.ts +30 -0
  77. package/http-server/utils.js +100 -0
  78. package/http-server/utils.js.map +1 -0
  79. package/logger/handler/console.d.ts +8 -0
  80. package/logger/handler/console.js +36 -0
  81. package/logger/handler/console.js.map +1 -0
  82. package/logger/handler/sentry.d.ts +8 -0
  83. package/logger/handler/sentry.js +36 -0
  84. package/logger/handler/sentry.js.map +1 -0
  85. package/logger/index.d.ts +6 -0
  86. package/logger/index.js +31 -0
  87. package/logger/index.js.map +1 -0
  88. package/logger/types.d.ts +24 -0
  89. package/logger/types.js +3 -0
  90. package/logger/types.js.map +1 -0
  91. package/metrics/constants.d.ts +4 -0
  92. package/metrics/constants.js +8 -0
  93. package/metrics/constants.js.map +1 -0
  94. package/metrics/node.d.ts +18 -0
  95. package/metrics/node.js +74 -0
  96. package/metrics/node.js.map +1 -0
  97. package/package.json +44 -63
  98. package/preset/index.d.ts +7 -0
  99. package/preset/index.js +25 -0
  100. package/preset/index.js.map +1 -0
  101. package/preset/node/index.d.ts +15 -0
  102. package/preset/node/index.js +90 -0
  103. package/preset/node/index.js.map +1 -0
  104. package/preset/node/response.d.ts +17 -0
  105. package/preset/node/response.js +78 -0
  106. package/preset/node/response.js.map +1 -0
  107. package/preset/types.d.ts +7 -0
  108. package/preset/types.js +3 -0
  109. package/preset/types.js.map +1 -0
  110. package/saga-runner/index.d.ts +8 -0
  111. package/saga-runner/index.js +79 -0
  112. package/saga-runner/index.js.map +1 -0
  113. package/saga-runner/types.d.ts +10 -0
  114. package/saga-runner/types.js +3 -0
  115. package/saga-runner/types.js.map +1 -0
  116. package/tokens.d.ts +41 -0
  117. package/tokens.js +44 -0
  118. package/tokens.js.map +1 -0
  119. package/tracer/node.d.ts +10 -0
  120. package/tracer/node.js +38 -0
  121. package/tracer/node.js.map +1 -0
  122. package/tracer/types.d.ts +2 -0
  123. package/tracer/types.js +3 -0
  124. package/tracer/types.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 +47 -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/webpack/module-federation/index.d.ts +21 -0
  147. package/utils/webpack/module-federation/index.js +74 -0
  148. package/utils/webpack/module-federation/index.js.map +1 -0
  149. package/utils/webpack/module-federation/types.d.ts +26 -0
  150. package/utils/webpack/module-federation/types.js +3 -0
  151. package/utils/webpack/module-federation/types.js.map +1 -0
  152. package/utils/webpack/module-federation/utils.d.ts +15 -0
  153. package/utils/webpack/module-federation/utils.js +36 -0
  154. package/utils/webpack/module-federation/utils.js.map +1 -0
  155. package/browser/analytics/data-layer.js.map +0 -1
  156. package/browser/analytics/oko.js.map +0 -1
  157. package/cache/helpers.d.ts +0 -4
  158. package/cache/helpers.js +0 -39
  159. package/cache/helpers.js.map +0 -1
  160. package/cache/local-storage.d.ts +0 -34
  161. package/cache/local-storage.js +0 -90
  162. package/cache/local-storage.js.map +0 -1
  163. package/cache/redis.d.ts +0 -10
  164. package/cache/redis.js +0 -54
  165. package/cache/redis.js.map +0 -1
  166. package/cache/wrap-in-trace.d.ts +0 -8
  167. package/cache/wrap-in-trace.js +0 -68
  168. package/cache/wrap-in-trace.js.map +0 -1
  169. package/config/create.d.ts +0 -8
  170. package/config/create.js +0 -32
  171. package/config/create.js.map +0 -1
  172. package/config/helpers.d.ts +0 -11
  173. package/config/helpers.js +0 -71
  174. package/config/helpers.js.map +0 -1
  175. package/config/validate.d.ts +0 -18
  176. package/config/validate.js +0 -107
  177. package/config/validate.js.map +0 -1
  178. package/container/create-inject.d.ts +0 -7
  179. package/container/create-inject.js +0 -36
  180. package/container/create-inject.js.map +0 -1
  181. package/container/get-dependencies.d.ts +0 -13
  182. package/container/get-dependencies.js +0 -54
  183. package/container/get-dependencies.js.map +0 -1
  184. package/container/is-container.d.ts +0 -7
  185. package/container/is-container.js +0 -17
  186. package/container/is-container.js.map +0 -1
  187. package/container/service-not-found-error.d.ts +0 -10
  188. package/container/service-not-found-error.js +0 -18
  189. package/container/service-not-found-error.js.map +0 -1
  190. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  191. package/create-proxy/create-proxy-middleware/index.js +0 -47
  192. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  193. package/create-proxy/index.d.ts +0 -12
  194. package/create-proxy/index.js +0 -25
  195. package/create-proxy/index.js.map +0 -1
  196. package/create-response-sender/index.d.ts +0 -8
  197. package/create-response-sender/index.js +0 -42
  198. package/create-response-sender/index.js.map +0 -1
  199. package/get-dynamic-data/index.d.ts +0 -8
  200. package/get-dynamic-data/index.js +0 -23
  201. package/get-dynamic-data/index.js.map +0 -1
  202. package/graceful-shutdown/index.d.ts +0 -26
  203. package/graceful-shutdown/index.js +0 -87
  204. package/graceful-shutdown/index.js.map +0 -1
  205. package/helpers/add-error-handling/index.d.ts +0 -1
  206. package/helpers/add-error-handling/index.js +0 -42
  207. package/helpers/add-error-handling/index.js.map +0 -1
  208. package/helpers/api/create-enhancer.d.ts +0 -12
  209. package/helpers/api/create-enhancer.js +0 -52
  210. package/helpers/api/create-enhancer.js.map +0 -1
  211. package/helpers/api/create-instance.d.ts +0 -11
  212. package/helpers/api/create-instance.js +0 -39
  213. package/helpers/api/create-instance.js.map +0 -1
  214. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  215. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  216. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  217. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  218. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  219. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  220. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  221. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  222. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  223. package/helpers/api/middlewares/helpers.d.ts +0 -11
  224. package/helpers/api/middlewares/helpers.js +0 -27
  225. package/helpers/api/middlewares/helpers.js.map +0 -1
  226. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  227. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  228. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  229. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  230. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  231. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  232. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  233. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  234. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  235. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  236. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  237. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  238. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  239. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  240. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  241. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  242. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  243. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  244. package/helpers/api/server-adapter/constants.d.ts +0 -5
  245. package/helpers/api/server-adapter/constants.js +0 -16
  246. package/helpers/api/server-adapter/constants.js.map +0 -1
  247. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  248. package/helpers/api/server-adapter/helpers.js +0 -208
  249. package/helpers/api/server-adapter/helpers.js.map +0 -1
  250. package/helpers/api/server-adapter/index.d.ts +0 -10
  251. package/helpers/api/server-adapter/index.js +0 -118
  252. package/helpers/api/server-adapter/index.js.map +0 -1
  253. package/helpers/development/use-dot-env.d.ts +0 -6
  254. package/helpers/development/use-dot-env.js +0 -11
  255. package/helpers/development/use-dot-env.js.map +0 -1
  256. package/helpers/get-params/index.d.ts +0 -4
  257. package/helpers/get-params/index.js +0 -51
  258. package/helpers/get-params/index.js.map +0 -1
  259. package/helpers/http/request-getters.d.ts +0 -5
  260. package/helpers/http/request-getters.js +0 -49
  261. package/helpers/http/request-getters.js.map +0 -1
  262. package/helpers/http/statuses-validator.d.ts +0 -3
  263. package/helpers/http/statuses-validator.js +0 -25
  264. package/helpers/http/statuses-validator.js.map +0 -1
  265. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  266. package/helpers/logger/create-pino-instance/index.js +0 -39
  267. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  268. package/helpers/logger/format-time/index.d.ts +0 -6
  269. package/helpers/logger/format-time/index.js +0 -9
  270. package/helpers/logger/format-time/index.js.map +0 -1
  271. package/helpers/metrics/index.d.ts +0 -23
  272. package/helpers/metrics/index.js +0 -42
  273. package/helpers/metrics/index.js.map +0 -1
  274. package/helpers/prometheus/index.d.ts +0 -4
  275. package/helpers/prometheus/index.js +0 -13
  276. package/helpers/prometheus/index.js.map +0 -1
  277. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  278. package/helpers/prometheus/measure-middleware.js +0 -69
  279. package/helpers/prometheus/measure-middleware.js.map +0 -1
  280. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  281. package/helpers/prometheus/metric-adapter.js +0 -98
  282. package/helpers/prometheus/metric-adapter.js.map +0 -1
  283. package/helpers/react/error-handlers/index.d.ts +0 -40
  284. package/helpers/react/error-handlers/index.js +0 -52
  285. package/helpers/react/error-handlers/index.js.map +0 -1
  286. package/helpers/redux/constants.d.ts +0 -5
  287. package/helpers/redux/constants.js +0 -14
  288. package/helpers/redux/constants.js.map +0 -1
  289. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  290. package/helpers/redux/create-compose-middleware.js +0 -23
  291. package/helpers/redux/create-compose-middleware.js.map +0 -1
  292. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  293. package/helpers/redux/get-dev-compose-creator.js +0 -13
  294. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  295. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  296. package/helpers/redux/prepare-on-ready.js +0 -16
  297. package/helpers/redux/prepare-on-ready.js.map +0 -1
  298. package/helpers/redux/remote-data.d.ts +0 -40
  299. package/helpers/redux/remote-data.js +0 -91
  300. package/helpers/redux/remote-data.js.map +0 -1
  301. package/helpers/redux/selector/statuses.d.ts +0 -23
  302. package/helpers/redux/selector/statuses.js +0 -34
  303. package/helpers/redux/selector/statuses.js.map +0 -1
  304. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  305. package/helpers/redux/wait-on-store-readiness.js +0 -29
  306. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  307. package/helpers/render/get-react-markup-data.d.ts +0 -14
  308. package/helpers/render/get-react-markup-data.js +0 -20
  309. package/helpers/render/get-react-markup-data.js.map +0 -1
  310. package/helpers/render/index.d.ts +0 -21
  311. package/helpers/render/index.js +0 -72
  312. package/helpers/render/index.js.map +0 -1
  313. package/helpers/render/render-app.d.ts +0 -12
  314. package/helpers/render/render-app.js +0 -12
  315. package/helpers/render/render-app.js.map +0 -1
  316. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  317. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  318. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  319. package/helpers/saga/cache-result.d.ts +0 -46
  320. package/helpers/saga/cache-result.js +0 -71
  321. package/helpers/saga/cache-result.js.map +0 -1
  322. package/helpers/saga/create-store.d.ts +0 -20
  323. package/helpers/saga/create-store.js +0 -106
  324. package/helpers/saga/create-store.js.map +0 -1
  325. package/helpers/saga/do-safe-request.d.ts +0 -38
  326. package/helpers/saga/do-safe-request.js +0 -45
  327. package/helpers/saga/do-safe-request.js.map +0 -1
  328. package/helpers/saga/safe-request.d.ts +0 -7
  329. package/helpers/saga/safe-request.js +0 -15
  330. package/helpers/saga/safe-request.js.map +0 -1
  331. package/helpers/saga/take-chain.d.ts +0 -20
  332. package/helpers/saga/take-chain.js +0 -56
  333. package/helpers/saga/take-chain.js.map +0 -1
  334. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  335. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  336. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  337. package/helpers/tracer/index.d.ts +0 -24
  338. package/helpers/tracer/index.js +0 -144
  339. package/helpers/tracer/index.js.map +0 -1
  340. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  341. package/helpers/utils/check-feature-by-segment.js +0 -31
  342. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  343. package/helpers/utils/format-object-keys.d.ts +0 -6
  344. package/helpers/utils/format-object-keys.js +0 -27
  345. package/helpers/utils/format-object-keys.js.map +0 -1
  346. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  347. package/helpers/utils/get-ms-from-hrt.js +0 -22
  348. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  349. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  350. package/helpers/utils/is-match-pattern-list.js +0 -16
  351. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  352. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  353. package/helpers/utils/is-not-empty-array.js +0 -12
  354. package/helpers/utils/is-not-empty-array.js.map +0 -1
  355. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  356. package/helpers/utils/is-not-empty-string.js +0 -15
  357. package/helpers/utils/is-not-empty-string.js.map +0 -1
  358. package/helpers/utils/is-numeric.d.ts +0 -7
  359. package/helpers/utils/is-numeric.js +0 -16
  360. package/helpers/utils/is-numeric.js.map +0 -1
  361. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  362. package/helpers/utils/wrap-in-measure-event.js +0 -50
  363. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  364. package/logger/create-logger-middleware/index.d.ts +0 -14
  365. package/logger/create-logger-middleware/index.js +0 -41
  366. package/logger/create-logger-middleware/index.js.map +0 -1
  367. package/logger/create-sentry-instance/index.d.ts +0 -29
  368. package/logger/create-sentry-instance/index.js +0 -63
  369. package/logger/create-sentry-instance/index.js.map +0 -1
  370. package/logger/create-sentry-middleware/index.d.ts +0 -14
  371. package/logger/create-sentry-middleware/index.js +0 -19
  372. package/logger/create-sentry-middleware/index.js.map +0 -1
  373. package/logger/handler-creators/index.d.ts +0 -5
  374. package/logger/handler-creators/index.js +0 -41
  375. package/logger/handler-creators/index.js.map +0 -1
  376. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  377. package/logger/initialize-sentry-creator/index.js +0 -35
  378. package/logger/initialize-sentry-creator/index.js.map +0 -1
  379. package/logger/sentry-logger/index.d.ts +0 -9
  380. package/logger/sentry-logger/index.js +0 -36
  381. package/logger/sentry-logger/index.js.map +0 -1
  382. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  383. package/module-federation/__example__/webpack-config.example.js +0 -58
  384. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  385. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
  386. package/module-federation/enhanced-module-federation-plugin.js +0 -97
  387. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  388. package/module-federation/utils/index.d.ts +0 -16
  389. package/module-federation/utils/index.js +0 -33
  390. package/module-federation/utils/index.js.map +0 -1
  391. package/observe-middleware/index.d.ts +0 -9
  392. package/observe-middleware/index.js +0 -67
  393. package/observe-middleware/index.js.map +0 -1
  394. package/set-header-middleware/create.d.ts +0 -10
  395. package/set-header-middleware/create.js +0 -16
  396. package/set-header-middleware/create.js.map +0 -1
  397. package/src/browser/analytics/data-layer.ts +0 -12
  398. package/src/browser/analytics/oko.ts +0 -42
  399. package/src/cache/helpers.js +0 -32
  400. package/src/cache/local-storage.ts +0 -92
  401. package/src/cache/redis.js +0 -79
  402. package/src/cache/wrap-in-trace.js +0 -57
  403. package/src/config/create.js +0 -33
  404. package/src/config/helpers.js +0 -71
  405. package/src/config/validate.js +0 -114
  406. package/src/container/create-inject.js +0 -32
  407. package/src/container/get-dependencies.js +0 -46
  408. package/src/container/index.js +0 -188
  409. package/src/container/is-container.js +0 -14
  410. package/src/container/service-not-found-error.js +0 -14
  411. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  412. package/src/create-proxy/index.js +0 -27
  413. package/src/create-response-sender/index.js +0 -48
  414. package/src/get-dynamic-data/index.js +0 -26
  415. package/src/graceful-shutdown/index.js +0 -97
  416. package/src/helpers/add-error-handling/index.js +0 -24
  417. package/src/helpers/api/create-enhancer.js +0 -52
  418. package/src/helpers/api/create-instance.js +0 -42
  419. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  420. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  421. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  422. package/src/helpers/api/middlewares/helpers.js +0 -26
  423. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  424. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  425. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  426. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  427. package/src/helpers/api/middlewares/trace-request-middleware.ts +0 -86
  428. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  429. package/src/helpers/api/server-adapter/constants.js +0 -12
  430. package/src/helpers/api/server-adapter/helpers.js +0 -244
  431. package/src/helpers/api/server-adapter/index.js +0 -155
  432. package/src/helpers/development/use-dot-env.js +0 -9
  433. package/src/helpers/get-params/index.js +0 -59
  434. package/src/helpers/http/request-getters.js +0 -42
  435. package/src/helpers/http/statuses-validator.js +0 -20
  436. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  437. package/src/helpers/logger/format-time/index.js +0 -6
  438. package/src/helpers/metrics/index.js +0 -40
  439. package/src/helpers/prometheus/index.js +0 -9
  440. package/src/helpers/prometheus/measure-middleware.js +0 -73
  441. package/src/helpers/prometheus/metric-adapter.js +0 -99
  442. package/src/helpers/react/error-handlers/index.tsx +0 -68
  443. package/src/helpers/redux/constants.js +0 -10
  444. package/src/helpers/redux/create-compose-middleware.js +0 -24
  445. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  446. package/src/helpers/redux/prepare-on-ready.js +0 -16
  447. package/src/helpers/redux/remote-data.js +0 -124
  448. package/src/helpers/redux/selector/statuses.js +0 -30
  449. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  450. package/src/helpers/render/get-react-markup-data.js +0 -18
  451. package/src/helpers/render/index.js +0 -69
  452. package/src/helpers/render/render-app.js +0 -15
  453. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  454. package/src/helpers/saga/cache-result.js +0 -77
  455. package/src/helpers/saga/create-store.js +0 -102
  456. package/src/helpers/saga/do-safe-request.js +0 -47
  457. package/src/helpers/saga/safe-request.js +0 -11
  458. package/src/helpers/saga/take-chain.js +0 -53
  459. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  460. package/src/helpers/tracer/index.js +0 -171
  461. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  462. package/src/helpers/utils/format-object-keys.js +0 -23
  463. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  464. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  465. package/src/helpers/utils/is-not-empty-array.js +0 -8
  466. package/src/helpers/utils/is-not-empty-string.js +0 -11
  467. package/src/helpers/utils/is-numeric.ts +0 -12
  468. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  469. package/src/logger/create-logger-middleware/index.js +0 -46
  470. package/src/logger/create-sentry-instance/index.js +0 -74
  471. package/src/logger/create-sentry-middleware/index.js +0 -16
  472. package/src/logger/handler-creators/index.js +0 -38
  473. package/src/logger/initialize-sentry-creator/index.js +0 -43
  474. package/src/logger/sentry-logger/index.js +0 -33
  475. package/src/module-federation/__example__/webpack-config.example.js +0 -64
  476. package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
  477. package/src/module-federation/utils/index.js +0 -39
  478. package/src/observe-middleware/index.js +0 -70
  479. package/src/set-header-middleware/create.js +0 -17
@@ -1,23 +0,0 @@
1
- import isPlainObject from 'lodash/isPlainObject';
2
- import camelCase from 'lodash/camelCase';
3
-
4
- /**
5
- * Переводит ключи объекта в camelCase.
6
- * @param {Object} object Объект ключи которого нужно отформатировать.
7
- * @return {Object} Отформатированный объект.
8
- */
9
- export default function formatObjectKeys (object) {
10
- if (!isPlainObject(object)) {
11
- throw new TypeError('Параметр "object" должен быть чистым объектом');
12
- }
13
-
14
- return Object.entries(object).reduce((formattedObject, current) => {
15
- const [key, value] = current;
16
- const formattedKey = camelCase(key);
17
-
18
- if (formattedKey) {
19
- formattedObject[formattedKey] = value;
20
- }
21
- return formattedObject;
22
- }, {});
23
- }
@@ -1,16 +0,0 @@
1
- import isNumber from 'lodash/isNumber';
2
-
3
- /**
4
- * Возвращает количество миллисекунд по переданному результату вызова process.hrtime.
5
- * @param {Array<number>} hrtime Результат вызова process.hrtime.
6
- * @return {number} Количество миллисекунд.
7
- */
8
- export const getMsFromHRT = hrtime => {
9
- let result = NaN;
10
- if (Array.isArray(hrtime) && hrtime.every(isNumber)) {
11
- result = (hrtime[0] * 1000) + (hrtime[1] / 1e6);
12
- }
13
- return result;
14
- };
15
-
16
- export default getMsFromHRT;
@@ -1,13 +0,0 @@
1
- import isArray from 'lodash/isArray';
2
- import isString from 'lodash/isString';
3
-
4
- /**
5
- * Проверяет, соответствует ли переданная строка одному из паттернов в переданном масиве.
6
- * @param {string} str Строка для проверки.
7
- * @param {string[]} patternList Массив строк.
8
- * @return {boolean} Соответствует или нет.
9
- */
10
- const isMatchPatternList = (str, patternList) =>
11
- isString(str) && isArray(patternList) && patternList.some(pattern => RegExp(pattern).test(str));
12
-
13
- export default isMatchPatternList;
@@ -1,8 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение НЕ пустым массивом.
3
- * @param {*} data Проверяемое значение.
4
- * @return {boolean} Переданное значение является НЕ пустым массивом?
5
- */
6
- export const isNotEmptyArray = data => Array.isArray(data) && data.length > 0;
7
-
8
- export default isNotEmptyArray;
@@ -1,11 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение НЕ пустой строкой (или строкой содержащей только пробельные символы).
3
- * @param {*} value Проверяемое значение.
4
- * @param {*} trim Обрезка пробельных символов.
5
- * Если передано false - к строке не будет применена функция trim() перед проверкой на длину.
6
- * @return {boolean} Переданное значение является НЕ пустой строкой?
7
- */
8
- export const isNotEmptyString = (value, trim = true) => typeof value === 'string'
9
- && (trim ? value.trim().length > 0 : value.length > 0);
10
-
11
- export default isNotEmptyString;
@@ -1,12 +0,0 @@
1
- /**
2
- * Проверяет, является ли переданное значение числовым (может иметь строковый или числовой тип).
3
- * @param value Проверяемое значение.
4
- * @return Переданное значение является числовым?
5
- */
6
- export const isNumeric = (value: any): value is string | number => {
7
- const validTypes = ['string', 'number', 'bigint'];
8
- const hasValidType = validTypes.some(type => typeof value === type);
9
- return hasValidType && !isNaN(parseFloat(value)) && isFinite(Number(value));
10
- };
11
-
12
- export default isNumeric;
@@ -1,35 +0,0 @@
1
- import EventEmitter from 'events';
2
- import isFunction from 'lodash/isFunction';
3
- import isString from 'lodash/isString';
4
-
5
- /**
6
- * Оборачивает выполнение какой-либо функции в отправку событий начала и конца выполнения.
7
- * @param {Object} param Параметры.
8
- * @param {Function} param.fn Функция, которую необходимо обернуть.
9
- * @param {string} param.startEvent Название события начала измерения.
10
- * @param {string} param.endEvent Название события конца измерения.
11
- * @param {EventEmitter} param.emitter Объект на котором будут отправляться события.
12
- * @return {Function} Функция обёрнутая в отправку событий.
13
- */
14
- export const wrapInMeasureEvent = ({ fn, startEvent, endEvent, emitter }) => {
15
- if (!isFunction(fn)) {
16
- throw new TypeError('First argument property "fn" must be a function');
17
- }
18
- if (!isString(startEvent)) {
19
- throw new TypeError('First argument property "startEvent" must be a string');
20
- }
21
- if (!isString(endEvent)) {
22
- throw new TypeError('First argument property "endEvent" must be a string');
23
- }
24
- if (!(emitter instanceof EventEmitter)) {
25
- throw new TypeError('First argument property "emitter" must be an instance of EventEmitter');
26
- }
27
- return async (...args) => {
28
- emitter.emit(startEvent);
29
- const result = await fn(...args);
30
- emitter.emit(endEvent);
31
- return result;
32
- };
33
- };
34
-
35
- export default wrapInMeasureEvent;
@@ -1,46 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
- import isArray from 'lodash/isArray';
3
- import { createObserveMiddleware } from '../../observe-middleware';
4
- import { getOriginalUrl } from '../../helpers/http/request-getters';
5
- import isMatchPatternList from '../../helpers/utils/is-match-pattern-list';
6
-
7
- /**
8
- * Конструктор для создания middleware для express-приложения.
9
- * @param {Object} dependencies Зависимости.
10
- * @param {Function} dependencies.pinoLogger Экземпляр логгера.
11
- * @param {Function} dependencies.getDynamicData
12
- * Функция, формирующая данные, которые нужно получить после завершения запроса.
13
- * @param {string[]} dependencies.exclusions Массив шаблонов url для исключения из логирования.
14
- * @return {Function} Middleware для express-приложения.
15
- */
16
- export default function createLoggerMiddleware (dependencies = {}) {
17
- const {
18
- pinoLogger,
19
- getDynamicData,
20
- exclusions = [],
21
- } = dependencies;
22
-
23
- if (!pinoLogger) {
24
- throw Error('First argument property "pinoLogger" is empty.');
25
- }
26
-
27
- if (!isFunction(getDynamicData)) {
28
- throw TypeError('"getDynamicData" must be Function.');
29
- }
30
-
31
- if (!isArray(exclusions)) {
32
- throw TypeError('"exclusions" must be array.');
33
- }
34
-
35
- return createObserveMiddleware({
36
- onFinish: (timestamp, request, response) => {
37
- const url = getOriginalUrl({ request });
38
- if (!isMatchPatternList(url, exclusions)) {
39
- pinoLogger.info({
40
- ...getDynamicData(request, response),
41
- latency: timestamp,
42
- });
43
- }
44
- },
45
- });
46
- }
@@ -1,74 +0,0 @@
1
- import { createService } from '../../container';
2
- import isFunction from 'lodash/isFunction';
3
- import negate from 'lodash/negate';
4
-
5
- const notFunc = negate(isFunction);
6
-
7
- // Ключи перехватчиков, которые должен имплементировать экземпляр.
8
- const CAPTURE_METHODS_KEYS = [
9
- 'captureException',
10
- 'captureMessage',
11
- 'addBreadcrumb',
12
- 'withScope',
13
- 'configureScope',
14
- ];
15
-
16
- /**
17
- * @typedef {Object} SentryInstance Экземпляр Sentry.
18
- * @property {Function} init Были ли запрос совершен успешно.
19
- * @property {Function} captureException Функция отправки ошибки.
20
- * @property {Function} captureMessage Функция отправки сообщения.
21
- * @property {Function} addBreadcrumb Функция прикрепления последовательности действий.
22
- */
23
-
24
- /**
25
- * Создает новый экземпляр Sentry.
26
- * @param {Object} sentry Объект Sentry, имплементирующий методы для создания экземпляра.
27
- * @param {Function} [sentry.BrowserClient] Конструктор экземпляра в sdk браузера.
28
- * @param {Function} [sentry.NodeClient] Конструктор экземпляра в sdk Node.
29
- * @param {Function} sentry.Hub Конструктор концентратора (связывает экземпляр с областью видимости).
30
- * @return {SentryInstance} Экземпляр Sentry.
31
- */
32
- export const createSentryInstance = ({ BrowserClient, NodeClient, Hub }) => {
33
- const CurrentClient = BrowserClient || NodeClient;
34
-
35
- if (notFunc(CurrentClient)) {
36
- throw new TypeError('Параметр "BrowserClient"/"NodeClient" должен быть функцией');
37
- }
38
-
39
- if (notFunc(Hub)) {
40
- throw new TypeError('Параметр "Hub" должен быть функцией');
41
- }
42
-
43
- const hub = new Hub();
44
-
45
- /**
46
- * Функция инициализации нового экземпляра Sentry.
47
- * @param {Object} options Опции инициализации.
48
- */
49
- const init = options => {
50
- const client = new CurrentClient(options);
51
- hub.bindClient(client);
52
- };
53
-
54
- const captureMethods = Object.fromEntries(
55
- CAPTURE_METHODS_KEYS.map(key => [key, (...args) => hub[key](...args)])
56
- );
57
-
58
- return {
59
- init,
60
- ...captureMethods,
61
- };
62
- };
63
-
64
- /**
65
- * Функция преобразования зависимостей сервиса в аргументы функции.
66
- * @param {Object} dependencies Зависимости.
67
- * @return {Array} Массив аргументов.
68
- */
69
- export const deptToArg = ({ sentry }) => [sentry];
70
-
71
- export default createService(
72
- createSentryInstance,
73
- deptToArg
74
- );
@@ -1,16 +0,0 @@
1
- import { Handlers } from '@sentry/node';
2
-
3
- /**
4
- * @typedef {Object} SentryMiddleware Объект middlewares Sentry.
5
- * @property {Function} request Middleware, добавляющий данные запроса в scope Sentry.
6
- * @property {Function} failure Middleware, обрабатывающий ошибки.
7
- */
8
-
9
- /**
10
- * Конструктор для создания middleware для Sentry.
11
- * @return {SentryMiddleware} Объект middleware для Sentry.
12
- */
13
- export const createSentryMiddleware = () => ({
14
- request: Handlers.requestHandler(),
15
- failure: Handlers.errorHandler(),
16
- });
@@ -1,38 +0,0 @@
1
- /**
2
- * Возвращает обработчик ошибки, передающий ошибку Sentry.
3
- * @param {Function} captureExtendedException Метод захвата ошибки Sentry.
4
- * @return {Function} Обработчик ошибки.
5
- */
6
- export const createSentryHandlerForSagas = ({ sentry: { captureExtendedException } }) =>
7
-
8
- /**
9
- * Обработчик ошибки, передающий ошибку методу Sentry.
10
- * @param {Error} error Объект ошибки.
11
- * @param {string} sagaStack Стек вызовов саг.
12
- */
13
- (error, { sagaStack }) => captureExtendedException(error, sagaStack, { dataName: 'Sagas stack' });
14
-
15
- /**
16
- * Возвращает обработчик ошибки, передающий ошибку Sentry.
17
- * @param {Function} captureException Метод захвата ошибки Sentry.
18
- * @return {Function} Обработчик ошибки.
19
- */
20
- export const createSentryHandlerForStore = ({ sentry: { captureException } }) =>
21
- () => captureException(new Error('Ожидание готовности store было прервано по таймауту'));
22
-
23
- /**
24
- * Возвращает функцию для базовой конфигурации области действия экземпляра Sentry.
25
- * @param {Object} options Опции сервиса.
26
- * @param {Object} options.config Конфигурация приложения.
27
- * @return {Function} Функция, конфигурирующая область действия.
28
- */
29
- export const createDefaultScopeConfigurator = ({ config }) => scope => {
30
- /**
31
- * Добавляем к области действия контекст с текущей конфигурацией приложения.
32
- * Если передается большой объект (например, если не отфильтрованы ненужные переменные окружения
33
- * при создании конфига), то лучше использовать метод `setExtra`, иначе Sentry обрежет часть данных в GUI,
34
- * но они все еще будут доступны в "сырых" данных.
35
- * @see https://docs.sentry.io/enriching-error-data/additional-data/?platform=javascript#debugging-additional-data
36
- */
37
- scope.setContext('App config', config);
38
- };
@@ -1,43 +0,0 @@
1
- import isFunction from 'lodash/isFunction';
2
-
3
- /**
4
- * Выполняет конфигурацию переданного сервиса Sentry.
5
- * @param {Object} options Опции.
6
- * @param {Object} options.sentryLoggerService Сервис Sentry.
7
- * @param {Function} options.getSentryDsn Функция, возвращающая DSN Sentry.
8
- * @param {Function} [options.getSentryOptions] Функция, возвращающая объект опций Sentry.
9
- * @param {Function} [options.configureMainScope] Функция конфигурации основной области действия
10
- * экземпляра/глобального экземпляра Sentry.
11
- * @return {Function} Функция, возвращающая сконфигурированный сервис Sentry.
12
- */
13
- const initializeSentryCreator = (
14
- {
15
- sentryLoggerService,
16
- getSentryDsn,
17
- getSentryOptions,
18
- configureMainScope,
19
- }
20
- ) => () => {
21
- if (!isFunction(getSentryDsn)) {
22
- throw new TypeError('"getSentryDsn" must be a function');
23
- }
24
- if (getSentryOptions && !isFunction(getSentryOptions)) {
25
- throw new TypeError('"getSentryOptions" must be a function');
26
- }
27
- if (configureMainScope && !isFunction(configureMainScope)) {
28
- throw new TypeError('"configureMainScope" must be a function');
29
- }
30
-
31
- const sentryDSN = getSentryDsn() || '';
32
- const sentryOptions = (getSentryOptions && getSentryOptions()) || {};
33
- sentryLoggerService.init({
34
- dsn: sentryDSN,
35
- ...sentryOptions,
36
- });
37
-
38
- if (isFunction(sentryLoggerService.configureScope) && isFunction(configureMainScope)) {
39
- sentryLoggerService.configureScope(configureMainScope);
40
- }
41
- };
42
-
43
- export default initializeSentryCreator;
@@ -1,33 +0,0 @@
1
- /**
2
- * Сервис для логирования ошибок в Sentry.
3
- * @param {Object} [options] Опции.
4
- * @param {Object} [options.sentryLoggerService] Сервис Sentry.
5
- * @return {Object} Сервис.
6
- */
7
- export default function sentryLogger ({ sentryLoggerService } = {}) {
8
- return {
9
- captureException: (...args) => sentryLoggerService.captureException(...args),
10
- captureMessage: (...args) => sentryLoggerService.captureMessage(...args),
11
- captureBreadcrumb: (...args) => sentryLoggerService.addBreadcrumb(...args),
12
-
13
- /**
14
- * Метод перехвата ошибки с дополнительными данными об ошибке.
15
- * @param {Error} error Ошибка.
16
- * @param {*} extendedData Дополнительные данные.
17
- * @param {Object} [options] Опции.
18
- * @param {string} [options.dataName] = 'details' Наименование дополнительных данных.
19
- * @param {boolean} [options.dataAsContext] = false Прикрепить ли дополнительные данные как контекст ошибки.
20
- * @param {string} [options.level] Уровень логирования.
21
- */
22
- captureExtendedException: (error, extendedData, options) => {
23
- const { dataName = 'details', dataAsContext = false, level } = options || {};
24
- sentryLoggerService.withScope(scope => {
25
- dataAsContext
26
- ? scope.setContext(dataName, extendedData)
27
- : scope.setExtra(dataName, extendedData);
28
- level && scope.setLevel(level);
29
- sentryLoggerService.captureException(error);
30
- });
31
- },
32
- };
33
- }
@@ -1,64 +0,0 @@
1
- /**
2
- * Пример конфигурации webpack c использованием EnhancedModuleFederationPlugin.
3
- */
4
- const ExtendedMFPlugin = require('../enhanced-module-federation-plugin');
5
-
6
- /**
7
- * Пример конфигурации удаленного приложения.
8
- */
9
- const RemoteServiceConfig = {
10
- entry: {},
11
- mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
12
- plugins: [
13
- new ExtendedMFPlugin(
14
- {
15
- name: 'remote-service-name',
16
- filename:
17
- `remote-service-name/${process.env.CI_COMMIT_REF_NAME}/remoteEntry.${process.env.CI_COMMIT_SHORT_SHA}.js`,
18
- exposes: {
19
- './Modal': './src/desktop/index.tsx',
20
- './Screen': './src/mobile/index.tsx',
21
- },
22
- }
23
- ),
24
- ],
25
- };
26
-
27
- /**
28
- * Пример конфигурации приложения-хоста.
29
- */
30
- const HostServiceConfig = {
31
- entry: './src/index.js',
32
- mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
33
- plugins: [
34
- new ExtendedMFPlugin(
35
- {
36
- name: 'host-service-name',
37
- remotes: {
38
- firstRemoteService: 'first-remote-service-name', // Путь к remote entry определяется в рантайме
39
- secondRemoteService: {
40
- name: 'second-remote-service-name', // Путь к remote entry определяется в рантайме
41
- },
42
- thirdRemoteService: {
43
- name: 'third-remote-service-name',
44
- remoteEntryPath: '//path/to/remoteEntry.js', // Путь к remote entry задан явно
45
- },
46
- },
47
- }
48
- ),
49
- ],
50
- resolve: {
51
- /**
52
- * В дев версии или SSR удаленные модули недоступны, указываем компонент-заглушку.
53
- */
54
- fallback: {
55
- 'remoteService/Modal': './src/__mocks__/stub-component.js',
56
- 'remoteService/Screen': './src/__mocks__/stub-component.js',
57
- },
58
- },
59
- };
60
-
61
- module.exports = [
62
- RemoteServiceConfig,
63
- HostServiceConfig,
64
- ];
@@ -1,119 +0,0 @@
1
- const { ModuleFederationPlugin } = require('webpack').container;
2
- const WebpackError = require('webpack').WebpackError;
3
- const { createExternalConfig } = require('./utils');
4
-
5
- const LIBRARY_ERROR_TEXT = [
6
- 'Property "library" set internally as "global" and not overridden.',
7
- 'For override global variable name use "containersGlobalKey" property.',
8
- 'For override "library" type use ModuleFederationPlugin.',
9
- ].join(' ');
10
-
11
- const REMOTE_ERROR_TEXT = [
12
- 'The value of the remote element must be a string,',
13
- 'or an object with field `name` for dynamic resolution of `remoteEntry`.',
14
- 'Set `remoteEntryPath` field to object for a static path to `remoteEntry`.',
15
- ].join(' ');
16
-
17
- /** @typedef {string} RemoteName Имя удаленного сервиса (обычно совпадает с именем в git). */
18
-
19
- /**
20
- * @typedef {Object} RemoteProperty Опции подключения удаленного сервиса.
21
- * @property {RemoteName} name Имя удаленного сервиса.
22
- * @property {string} remoteEntryPath Статический путь к remoteEntry удаленного сервиса.
23
- * @property {string} [version] Версия удаленного сервиса в формате semver.
24
- */
25
-
26
- /** @typedef {import('webpack').ModuleFederationPluginOptions} MFPluginOriginalOptions Опции. */
27
-
28
- /**
29
- * @typedef EnhancedModuleFederationPluginOptions Опции.
30
- * @param {string} name Имя сервиса.
31
- * @param {string} filename Имя удаленной точки входа.
32
- * @param {Object<string, RemoteName | RemoteProperty>} [remotes] Удаленные сервисы.
33
- * @param {MFPluginOriginalOptions.exposes} [exposes] Предоставляемые сервисы.
34
- * @param {MFPluginOriginalOptions.shared} [shared] Общие зависимости.
35
- * @param {string} [remoteEntriesGlobalKey = '__RemoteEntriesList__'] Ключ свойства в глобальном объекте,
36
- * в котором хранится карта точек входа в удаленные сервисы.
37
- * @param {string} [containersGlobalKey = '__FederationContainers__'] Ключ свойства в глобальном объекте,
38
- * в который добавляются контейнеры удаленных сервисов.
39
- * @param {boolean} [useInDevelopment = false] Требуется ли подключение ModuleFederationPlugin в среде разработки.
40
- */
41
-
42
- /**
43
- * Создает плагин ModuleFederation с опциями, необходимыми для оркестрации удаленных модулей на клиенте.
44
- * Плагин ModuleFederation будет добавлен в production режиме.
45
- */
46
- class EnhancedModuleFederationPlugin {
47
- /**
48
- * @param {EnhancedModuleFederationPluginOptions} options Опции.
49
- */
50
- constructor (options) {
51
- const {
52
- name,
53
- library,
54
- remotes,
55
- remoteEntriesGlobalKey = '__RemoteEntriesList__',
56
- containersGlobalKey = '__FederationContainers__',
57
- } = options;
58
-
59
- if (library) {
60
- throw new WebpackError(LIBRARY_ERROR_TEXT);
61
- }
62
-
63
- if (remotes) {
64
- Object.values(remotes).forEach(value => {
65
- if (typeof value !== 'string' && !value?.name) {
66
- throw new WebpackError(REMOTE_ERROR_TEXT);
67
- }
68
- });
69
- }
70
-
71
- this._options = {
72
- ...options,
73
- remoteEntriesGlobalKey,
74
- containersGlobalKey,
75
- library: {
76
- type: 'global',
77
- name: [containersGlobalKey, name],
78
- },
79
- };
80
- }
81
-
82
- /**
83
- * @param {import('webpack').Compiler} compiler Компилятор.
84
- */
85
- apply (compiler) {
86
- const {
87
- remotes,
88
- remoteEntriesGlobalKey,
89
- containersGlobalKey,
90
- useInDevelopment = false,
91
- ...originalOptions
92
- } = this._options;
93
-
94
- const configuredRemotes = {};
95
-
96
- remotes && Object.entries(remotes).forEach(([key, value]) => {
97
- const serviceName = value?.name || value;
98
- const remoteEntryPath = value?.remoteEntryPath;
99
-
100
- configuredRemotes[key] = { external: createExternalConfig({
101
- serviceName,
102
- remoteEntryPath,
103
- remoteEntriesGlobalKey,
104
- containersGlobalKey,
105
- }) };
106
- });
107
-
108
- compiler.hooks.environment.tap('EnhancedModuleFederationPlugin', () => {
109
- if (useInDevelopment || compiler.options.mode === 'production') {
110
- new ModuleFederationPlugin({
111
- ...remotes && { remotes: configuredRemotes },
112
- ...originalOptions,
113
- }).apply(compiler);
114
- }
115
- });
116
- }
117
- }
118
-
119
- module.exports = EnhancedModuleFederationPlugin;
@@ -1,39 +0,0 @@
1
- /**
2
- * Возвращает скрипт инициализации удаленного модуля.
3
- * @param {Object} params Параметры.
4
- * @param {string} params.serviceName Имя сервиса, содержащего удаленные модули.
5
- * @param {string} params.remoteEntriesGlobalKey Глобальная переменная,
6
- * в которой хранятся пути к удаленным точкам входа.
7
- * @param {string} params.containersGlobalKey Глобальная переменная, в которую добавляются удаленные контейнеры.
8
- * @param {string} params.remoteEntryPath Путь к remoteEntry, если его не надо получать в рантайме.
9
- * @return {string} Скрипт инициализации.
10
- */
11
- const createExternalConfig = ({
12
- serviceName,
13
- remoteEntryPath,
14
- remoteEntriesGlobalKey,
15
- containersGlobalKey,
16
- }) =>
17
- `promise new Promise((resolve, reject) => {
18
- if (window['${remoteEntriesGlobalKey}']) {
19
- const scriptElement = document.createElement('script');
20
- scriptElement.onload = () => {
21
- scriptElement.remove();
22
- resolve(window['${containersGlobalKey}']['${serviceName}']);
23
- };
24
- scriptElement.onerror = () => {
25
- scriptElement.remove();
26
- reject(new Error('Failed loading remoteEntry for "${serviceName}".'));
27
- };
28
- scriptElement.src = ${remoteEntryPath
29
- ? `'${remoteEntryPath}'`
30
- : `window['${remoteEntriesGlobalKey}']['${serviceName}']`
31
- };
32
- scriptElement.async = true;
33
- document.head.append(scriptElement);
34
- } else {
35
- reject(new ReferenceError('Object "${remoteEntriesGlobalKey}" unavailable.'));
36
- }
37
- })`;
38
-
39
- module.exports = { createExternalConfig };