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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cache/types.d.ts +7 -0
  3. package/dist/cache/types.js +3 -0
  4. package/dist/cache/types.js.map +1 -0
  5. package/dist/config/browser.d.ts +6 -0
  6. package/dist/config/browser.js +13 -0
  7. package/dist/config/browser.js.map +1 -0
  8. package/dist/config/index.d.ts +7 -0
  9. package/dist/config/index.js +20 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/node.d.ts +6 -0
  12. package/dist/config/node.js +19 -0
  13. package/dist/config/node.js.map +1 -0
  14. package/dist/config/types.d.ts +7 -0
  15. package/dist/config/types.js +3 -0
  16. package/dist/config/types.js.map +1 -0
  17. package/dist/config/utils.d.ts +5 -0
  18. package/dist/config/utils.js +12 -0
  19. package/dist/config/utils.js.map +1 -0
  20. package/dist/container/application.d.ts +25 -0
  21. package/dist/container/application.js +63 -0
  22. package/dist/container/application.js.map +1 -0
  23. package/dist/container/index.d.ts +18 -0
  24. package/dist/container/index.js +74 -0
  25. package/dist/container/index.js.map +1 -0
  26. package/dist/container/types.d.ts +14 -0
  27. package/dist/container/types.js +3 -0
  28. package/dist/container/types.js.map +1 -0
  29. package/dist/error-tracker/browser.d.ts +8 -0
  30. package/dist/error-tracker/browser.js +40 -0
  31. package/dist/error-tracker/browser.js.map +1 -0
  32. package/dist/error-tracker/node.d.ts +8 -0
  33. package/dist/error-tracker/node.js +40 -0
  34. package/dist/error-tracker/node.js.map +1 -0
  35. package/dist/error-tracker/types.d.ts +18 -0
  36. package/dist/error-tracker/types.js +3 -0
  37. package/dist/error-tracker/types.js.map +1 -0
  38. package/dist/error-tracker/utils.d.ts +12 -0
  39. package/dist/error-tracker/utils.js +19 -0
  40. package/dist/error-tracker/utils.js.map +1 -0
  41. package/dist/http-client/middleware/cookie.d.ts +19 -0
  42. package/dist/http-client/middleware/cookie.js +62 -0
  43. package/dist/http-client/middleware/cookie.js.map +1 -0
  44. package/dist/http-client/middleware/tracing.d.ts +32 -0
  45. package/dist/http-client/middleware/tracing.js +67 -0
  46. package/dist/http-client/middleware/tracing.js.map +1 -0
  47. package/dist/http-client/types.d.ts +6 -0
  48. package/dist/http-client/types.js +3 -0
  49. package/dist/http-client/types.js.map +1 -0
  50. package/dist/http-client/utils.d.ts +36 -0
  51. package/dist/http-client/utils.js +49 -0
  52. package/dist/http-client/utils.js.map +1 -0
  53. package/dist/http-server/constants.d.ts +4 -0
  54. package/dist/http-server/constants.js +8 -0
  55. package/dist/http-server/constants.js.map +1 -0
  56. package/dist/http-server/handler/health-check.d.ts +6 -0
  57. package/dist/http-server/handler/health-check.js +15 -0
  58. package/dist/http-server/handler/health-check.js.map +1 -0
  59. package/dist/http-server/middleware/logging.d.ts +10 -0
  60. package/dist/http-server/middleware/logging.js +31 -0
  61. package/dist/http-server/middleware/logging.js.map +1 -0
  62. package/dist/http-server/middleware/metrics.d.ts +23 -0
  63. package/dist/http-server/middleware/metrics.js +60 -0
  64. package/dist/http-server/middleware/metrics.js.map +1 -0
  65. package/dist/http-server/middleware/tracing.d.ts +8 -0
  66. package/dist/http-server/middleware/tracing.js +32 -0
  67. package/dist/http-server/middleware/tracing.js.map +1 -0
  68. package/dist/http-server/types.d.ts +25 -0
  69. package/dist/http-server/types.js +3 -0
  70. package/dist/http-server/types.js.map +1 -0
  71. package/dist/http-server/utils.d.ts +26 -0
  72. package/dist/http-server/utils.js +88 -0
  73. package/dist/http-server/utils.js.map +1 -0
  74. package/dist/logger/handler/console.d.ts +8 -0
  75. package/dist/logger/handler/console.js +36 -0
  76. package/dist/logger/handler/console.js.map +1 -0
  77. package/dist/logger/handler/sentry.d.ts +8 -0
  78. package/dist/logger/handler/sentry.js +36 -0
  79. package/dist/logger/handler/sentry.js.map +1 -0
  80. package/dist/logger/index.d.ts +6 -0
  81. package/dist/logger/index.js +31 -0
  82. package/dist/logger/index.js.map +1 -0
  83. package/dist/logger/types.d.ts +24 -0
  84. package/dist/logger/types.js +3 -0
  85. package/dist/logger/types.js.map +1 -0
  86. package/dist/metrics/constants.d.ts +4 -0
  87. package/dist/metrics/constants.js +8 -0
  88. package/dist/metrics/constants.js.map +1 -0
  89. package/dist/metrics/node.d.ts +18 -0
  90. package/dist/metrics/node.js +74 -0
  91. package/dist/metrics/node.js.map +1 -0
  92. package/dist/preset/index.d.ts +7 -0
  93. package/dist/preset/index.js +23 -0
  94. package/dist/preset/index.js.map +1 -0
  95. package/dist/preset/node/index.d.ts +15 -0
  96. package/dist/preset/node/index.js +90 -0
  97. package/dist/preset/node/index.js.map +1 -0
  98. package/dist/preset/node/response.d.ts +12 -0
  99. package/dist/preset/node/response.js +52 -0
  100. package/dist/preset/node/response.js.map +1 -0
  101. package/dist/preset/types.d.ts +7 -0
  102. package/dist/preset/types.js +3 -0
  103. package/dist/preset/types.js.map +1 -0
  104. package/dist/saga-runner/index.d.ts +8 -0
  105. package/dist/saga-runner/index.js +77 -0
  106. package/dist/saga-runner/index.js.map +1 -0
  107. package/dist/saga-runner/types.d.ts +10 -0
  108. package/dist/saga-runner/types.js +3 -0
  109. package/dist/saga-runner/types.js.map +1 -0
  110. package/dist/tokens.d.ts +40 -0
  111. package/dist/tokens.js +43 -0
  112. package/dist/tokens.js.map +1 -0
  113. package/dist/tracer/node.d.ts +10 -0
  114. package/dist/tracer/node.js +38 -0
  115. package/dist/tracer/node.js.map +1 -0
  116. package/dist/tracer/types.d.ts +2 -0
  117. package/dist/tracer/types.js +3 -0
  118. package/dist/tracer/types.js.map +1 -0
  119. package/{browser → dist/utils/browser}/analytics/data-layer.d.ts +0 -0
  120. package/{browser → dist/utils/browser}/analytics/data-layer.js +1 -2
  121. package/dist/utils/browser/analytics/data-layer.js.map +1 -0
  122. package/{browser → dist/utils/browser}/analytics/oko.d.ts +0 -0
  123. package/{browser → dist/utils/browser}/analytics/oko.js +6 -7
  124. package/dist/utils/browser/analytics/oko.js.map +1 -0
  125. package/dist/utils/browser/storage/index.d.ts +4 -0
  126. package/dist/utils/browser/storage/index.js +63 -0
  127. package/dist/utils/browser/storage/index.js.map +1 -0
  128. package/dist/utils/number.d.ts +6 -0
  129. package/dist/utils/number.js +13 -0
  130. package/dist/utils/number.js.map +1 -0
  131. package/dist/utils/react/error-handlers/index.d.ts +38 -0
  132. package/dist/utils/react/error-handlers/index.js +47 -0
  133. package/dist/utils/react/error-handlers/index.js.map +1 -0
  134. package/dist/utils/redux/remote-data.d.ts +23 -0
  135. package/dist/utils/redux/remote-data.js +28 -0
  136. package/dist/utils/redux/remote-data.js.map +1 -0
  137. package/dist/utils/redux-saga/take-chain.d.ts +24 -0
  138. package/dist/utils/redux-saga/take-chain.js +56 -0
  139. package/dist/utils/redux-saga/take-chain.js.map +1 -0
  140. package/dist/utils/webpack/module-federation/index.d.ts +21 -0
  141. package/dist/utils/webpack/module-federation/index.js +74 -0
  142. package/dist/utils/webpack/module-federation/index.js.map +1 -0
  143. package/dist/utils/webpack/module-federation/types.d.ts +26 -0
  144. package/dist/utils/webpack/module-federation/types.js +3 -0
  145. package/dist/utils/webpack/module-federation/types.js.map +1 -0
  146. package/dist/utils/webpack/module-federation/utils.d.ts +15 -0
  147. package/dist/utils/webpack/module-federation/utils.js +36 -0
  148. package/dist/utils/webpack/module-federation/utils.js.map +1 -0
  149. package/package.json +49 -63
  150. package/readme.md +23 -0
  151. package/src/cache/types.ts +7 -0
  152. package/src/config/browser.ts +10 -0
  153. package/src/config/index.ts +18 -0
  154. package/src/config/node.ts +18 -0
  155. package/src/config/types.ts +9 -0
  156. package/src/config/utils.ts +7 -0
  157. package/src/container/application.ts +91 -0
  158. package/src/container/index.ts +79 -0
  159. package/src/container/types.ts +17 -0
  160. package/src/error-tracker/browser.ts +14 -0
  161. package/src/error-tracker/node.ts +14 -0
  162. package/src/error-tracker/types.ts +22 -0
  163. package/src/error-tracker/utils.ts +18 -0
  164. package/src/http-client/middleware/cookie.ts +73 -0
  165. package/src/{helpers/api/middlewares/trace-request-middleware.ts → http-client/middleware/tracing.ts} +28 -35
  166. package/src/http-client/types.ts +8 -0
  167. package/src/http-client/utils.ts +76 -0
  168. package/src/http-server/constants.ts +4 -0
  169. package/src/http-server/handler/health-check.ts +13 -0
  170. package/src/http-server/middleware/logging.ts +34 -0
  171. package/src/http-server/middleware/metrics.ts +87 -0
  172. package/src/http-server/middleware/tracing.ts +35 -0
  173. package/src/http-server/types.ts +29 -0
  174. package/src/http-server/utils.ts +105 -0
  175. package/src/logger/handler/console.ts +35 -0
  176. package/src/logger/handler/sentry.ts +38 -0
  177. package/src/logger/index.ts +31 -0
  178. package/src/logger/types.ts +28 -0
  179. package/src/metrics/constants.ts +4 -0
  180. package/src/metrics/node.ts +54 -0
  181. package/src/preset/index.ts +24 -0
  182. package/src/preset/node/index.ts +101 -0
  183. package/src/preset/node/response.ts +57 -0
  184. package/src/preset/types.ts +9 -0
  185. package/src/saga-runner/index.ts +59 -0
  186. package/src/saga-runner/types.ts +13 -0
  187. package/src/tokens.ts +54 -0
  188. package/src/tracer/node.ts +40 -0
  189. package/src/tracer/types.ts +3 -0
  190. package/src/utils/browser/analytics/__test__/data-layer.test.ts +50 -0
  191. package/src/utils/browser/analytics/__test__/oko.test.tsx +143 -0
  192. package/src/{browser → utils/browser}/analytics/data-layer.ts +0 -0
  193. package/src/{browser → utils/browser}/analytics/oko.ts +6 -4
  194. package/src/utils/browser/storage/index.ts +75 -0
  195. package/src/utils/number.ts +8 -0
  196. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  197. package/src/utils/react/error-handlers/__test__/index.test.tsx +64 -0
  198. package/src/utils/react/error-handlers/index.tsx +62 -0
  199. package/src/utils/redux/__test__/remote-data.test.ts +50 -0
  200. package/src/utils/redux/remote-data.ts +34 -0
  201. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  202. package/src/utils/redux-saga/take-chain.ts +65 -0
  203. package/src/utils/webpack/module-federation/__test__/index.test.ts +246 -0
  204. package/src/utils/webpack/module-federation/index.ts +92 -0
  205. package/src/utils/webpack/module-federation/types.ts +44 -0
  206. package/src/utils/webpack/module-federation/utils.ts +43 -0
  207. package/browser/analytics/data-layer.js.map +0 -1
  208. package/browser/analytics/oko.js.map +0 -1
  209. package/cache/helpers.d.ts +0 -4
  210. package/cache/helpers.js +0 -39
  211. package/cache/helpers.js.map +0 -1
  212. package/cache/local-storage.d.ts +0 -34
  213. package/cache/local-storage.js +0 -90
  214. package/cache/local-storage.js.map +0 -1
  215. package/cache/redis.d.ts +0 -10
  216. package/cache/redis.js +0 -54
  217. package/cache/redis.js.map +0 -1
  218. package/cache/wrap-in-trace.d.ts +0 -8
  219. package/cache/wrap-in-trace.js +0 -68
  220. package/cache/wrap-in-trace.js.map +0 -1
  221. package/config/create.d.ts +0 -8
  222. package/config/create.js +0 -32
  223. package/config/create.js.map +0 -1
  224. package/config/helpers.d.ts +0 -11
  225. package/config/helpers.js +0 -71
  226. package/config/helpers.js.map +0 -1
  227. package/config/validate.d.ts +0 -18
  228. package/config/validate.js +0 -107
  229. package/config/validate.js.map +0 -1
  230. package/container/create-inject.d.ts +0 -7
  231. package/container/create-inject.js +0 -36
  232. package/container/create-inject.js.map +0 -1
  233. package/container/get-dependencies.d.ts +0 -13
  234. package/container/get-dependencies.js +0 -54
  235. package/container/get-dependencies.js.map +0 -1
  236. package/container/index.d.ts +0 -15
  237. package/container/index.js +0 -175
  238. package/container/index.js.map +0 -1
  239. package/container/is-container.d.ts +0 -7
  240. package/container/is-container.js +0 -17
  241. package/container/is-container.js.map +0 -1
  242. package/container/service-not-found-error.d.ts +0 -10
  243. package/container/service-not-found-error.js +0 -18
  244. package/container/service-not-found-error.js.map +0 -1
  245. package/create-proxy/create-proxy-middleware/index.d.ts +0 -16
  246. package/create-proxy/create-proxy-middleware/index.js +0 -47
  247. package/create-proxy/create-proxy-middleware/index.js.map +0 -1
  248. package/create-proxy/index.d.ts +0 -12
  249. package/create-proxy/index.js +0 -25
  250. package/create-proxy/index.js.map +0 -1
  251. package/create-response-sender/index.d.ts +0 -8
  252. package/create-response-sender/index.js +0 -42
  253. package/create-response-sender/index.js.map +0 -1
  254. package/get-dynamic-data/index.d.ts +0 -8
  255. package/get-dynamic-data/index.js +0 -23
  256. package/get-dynamic-data/index.js.map +0 -1
  257. package/graceful-shutdown/index.d.ts +0 -26
  258. package/graceful-shutdown/index.js +0 -87
  259. package/graceful-shutdown/index.js.map +0 -1
  260. package/helpers/add-error-handling/index.d.ts +0 -1
  261. package/helpers/add-error-handling/index.js +0 -42
  262. package/helpers/add-error-handling/index.js.map +0 -1
  263. package/helpers/api/create-enhancer.d.ts +0 -12
  264. package/helpers/api/create-enhancer.js +0 -52
  265. package/helpers/api/create-enhancer.js.map +0 -1
  266. package/helpers/api/create-instance.d.ts +0 -11
  267. package/helpers/api/create-instance.js +0 -39
  268. package/helpers/api/create-instance.js.map +0 -1
  269. package/helpers/api/middlewares/collect-cookie-middleware.d.ts +0 -10
  270. package/helpers/api/middlewares/collect-cookie-middleware.js +0 -39
  271. package/helpers/api/middlewares/collect-cookie-middleware.js.map +0 -1
  272. package/helpers/api/middlewares/count-api-response-time.d.ts +0 -12
  273. package/helpers/api/middlewares/count-api-response-time.js +0 -39
  274. package/helpers/api/middlewares/count-api-response-time.js.map +0 -1
  275. package/helpers/api/middlewares/error-handlers-middlewares.d.ts +0 -5
  276. package/helpers/api/middlewares/error-handlers-middlewares.js +0 -114
  277. package/helpers/api/middlewares/error-handlers-middlewares.js.map +0 -1
  278. package/helpers/api/middlewares/helpers.d.ts +0 -11
  279. package/helpers/api/middlewares/helpers.js +0 -27
  280. package/helpers/api/middlewares/helpers.js.map +0 -1
  281. package/helpers/api/middlewares/pass-headers-middleware.d.ts +0 -3
  282. package/helpers/api/middlewares/pass-headers-middleware.js +0 -27
  283. package/helpers/api/middlewares/pass-headers-middleware.js.map +0 -1
  284. package/helpers/api/middlewares/prepare-request-headers.d.ts +0 -5
  285. package/helpers/api/middlewares/prepare-request-headers.js +0 -20
  286. package/helpers/api/middlewares/prepare-request-headers.js.map +0 -1
  287. package/helpers/api/middlewares/set-http-agents-middleware.d.ts +0 -15
  288. package/helpers/api/middlewares/set-http-agents-middleware.js +0 -34
  289. package/helpers/api/middlewares/set-http-agents-middleware.js.map +0 -1
  290. package/helpers/api/middlewares/stages-trace-middleware.d.ts +0 -17
  291. package/helpers/api/middlewares/stages-trace-middleware.js +0 -57
  292. package/helpers/api/middlewares/stages-trace-middleware.js.map +0 -1
  293. package/helpers/api/middlewares/trace-request-middleware.d.ts +0 -24
  294. package/helpers/api/middlewares/trace-request-middleware.js +0 -69
  295. package/helpers/api/middlewares/trace-request-middleware.js.map +0 -1
  296. package/helpers/api/server-adapter/__fixtures__/fake-keys.d.ts +0 -10
  297. package/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -61
  298. package/helpers/api/server-adapter/__fixtures__/fake-keys.js.map +0 -1
  299. package/helpers/api/server-adapter/constants.d.ts +0 -5
  300. package/helpers/api/server-adapter/constants.js +0 -16
  301. package/helpers/api/server-adapter/constants.js.map +0 -1
  302. package/helpers/api/server-adapter/helpers.d.ts +0 -26
  303. package/helpers/api/server-adapter/helpers.js +0 -208
  304. package/helpers/api/server-adapter/helpers.js.map +0 -1
  305. package/helpers/api/server-adapter/index.d.ts +0 -10
  306. package/helpers/api/server-adapter/index.js +0 -118
  307. package/helpers/api/server-adapter/index.js.map +0 -1
  308. package/helpers/development/use-dot-env.d.ts +0 -6
  309. package/helpers/development/use-dot-env.js +0 -11
  310. package/helpers/development/use-dot-env.js.map +0 -1
  311. package/helpers/get-params/index.d.ts +0 -4
  312. package/helpers/get-params/index.js +0 -51
  313. package/helpers/get-params/index.js.map +0 -1
  314. package/helpers/http/request-getters.d.ts +0 -5
  315. package/helpers/http/request-getters.js +0 -49
  316. package/helpers/http/request-getters.js.map +0 -1
  317. package/helpers/http/statuses-validator.d.ts +0 -3
  318. package/helpers/http/statuses-validator.js +0 -25
  319. package/helpers/http/statuses-validator.js.map +0 -1
  320. package/helpers/logger/create-pino-instance/index.d.ts +0 -6
  321. package/helpers/logger/create-pino-instance/index.js +0 -39
  322. package/helpers/logger/create-pino-instance/index.js.map +0 -1
  323. package/helpers/logger/format-time/index.d.ts +0 -6
  324. package/helpers/logger/format-time/index.js +0 -9
  325. package/helpers/logger/format-time/index.js.map +0 -1
  326. package/helpers/metrics/index.d.ts +0 -23
  327. package/helpers/metrics/index.js +0 -42
  328. package/helpers/metrics/index.js.map +0 -1
  329. package/helpers/prometheus/index.d.ts +0 -4
  330. package/helpers/prometheus/index.js +0 -13
  331. package/helpers/prometheus/index.js.map +0 -1
  332. package/helpers/prometheus/measure-middleware.d.ts +0 -5
  333. package/helpers/prometheus/measure-middleware.js +0 -69
  334. package/helpers/prometheus/measure-middleware.js.map +0 -1
  335. package/helpers/prometheus/metric-adapter.d.ts +0 -36
  336. package/helpers/prometheus/metric-adapter.js +0 -98
  337. package/helpers/prometheus/metric-adapter.js.map +0 -1
  338. package/helpers/react/error-handlers/index.d.ts +0 -40
  339. package/helpers/react/error-handlers/index.js +0 -52
  340. package/helpers/react/error-handlers/index.js.map +0 -1
  341. package/helpers/redux/constants.d.ts +0 -5
  342. package/helpers/redux/constants.js +0 -14
  343. package/helpers/redux/constants.js.map +0 -1
  344. package/helpers/redux/create-compose-middleware.d.ts +0 -15
  345. package/helpers/redux/create-compose-middleware.js +0 -23
  346. package/helpers/redux/create-compose-middleware.js.map +0 -1
  347. package/helpers/redux/get-dev-compose-creator.d.ts +0 -6
  348. package/helpers/redux/get-dev-compose-creator.js +0 -13
  349. package/helpers/redux/get-dev-compose-creator.js.map +0 -1
  350. package/helpers/redux/prepare-on-ready.d.ts +0 -9
  351. package/helpers/redux/prepare-on-ready.js +0 -16
  352. package/helpers/redux/prepare-on-ready.js.map +0 -1
  353. package/helpers/redux/remote-data.d.ts +0 -40
  354. package/helpers/redux/remote-data.js +0 -91
  355. package/helpers/redux/remote-data.js.map +0 -1
  356. package/helpers/redux/selector/statuses.d.ts +0 -23
  357. package/helpers/redux/selector/statuses.js +0 -34
  358. package/helpers/redux/selector/statuses.js.map +0 -1
  359. package/helpers/redux/wait-on-store-readiness.d.ts +0 -11
  360. package/helpers/redux/wait-on-store-readiness.js +0 -29
  361. package/helpers/redux/wait-on-store-readiness.js.map +0 -1
  362. package/helpers/render/get-react-markup-data.d.ts +0 -14
  363. package/helpers/render/get-react-markup-data.js +0 -20
  364. package/helpers/render/get-react-markup-data.js.map +0 -1
  365. package/helpers/render/index.d.ts +0 -21
  366. package/helpers/render/index.js +0 -72
  367. package/helpers/render/index.js.map +0 -1
  368. package/helpers/render/render-app.d.ts +0 -12
  369. package/helpers/render/render-app.js +0 -12
  370. package/helpers/render/render-app.js.map +0 -1
  371. package/helpers/saga/__fixtures__/do-safe-request.d.ts +0 -43
  372. package/helpers/saga/__fixtures__/do-safe-request.js +0 -50
  373. package/helpers/saga/__fixtures__/do-safe-request.js.map +0 -1
  374. package/helpers/saga/cache-result.d.ts +0 -46
  375. package/helpers/saga/cache-result.js +0 -71
  376. package/helpers/saga/cache-result.js.map +0 -1
  377. package/helpers/saga/create-store.d.ts +0 -20
  378. package/helpers/saga/create-store.js +0 -106
  379. package/helpers/saga/create-store.js.map +0 -1
  380. package/helpers/saga/do-safe-request.d.ts +0 -38
  381. package/helpers/saga/do-safe-request.js +0 -45
  382. package/helpers/saga/do-safe-request.js.map +0 -1
  383. package/helpers/saga/safe-request.d.ts +0 -7
  384. package/helpers/saga/safe-request.js +0 -15
  385. package/helpers/saga/safe-request.js.map +0 -1
  386. package/helpers/saga/take-chain.d.ts +0 -20
  387. package/helpers/saga/take-chain.js +0 -56
  388. package/helpers/saga/take-chain.js.map +0 -1
  389. package/helpers/tracer/create-child-tracing-middleware.d.ts +0 -7
  390. package/helpers/tracer/create-child-tracing-middleware.js +0 -40
  391. package/helpers/tracer/create-child-tracing-middleware.js.map +0 -1
  392. package/helpers/tracer/index.d.ts +0 -24
  393. package/helpers/tracer/index.js +0 -144
  394. package/helpers/tracer/index.js.map +0 -1
  395. package/helpers/utils/check-feature-by-segment.d.ts +0 -2
  396. package/helpers/utils/check-feature-by-segment.js +0 -31
  397. package/helpers/utils/check-feature-by-segment.js.map +0 -1
  398. package/helpers/utils/format-object-keys.d.ts +0 -6
  399. package/helpers/utils/format-object-keys.js +0 -27
  400. package/helpers/utils/format-object-keys.js.map +0 -1
  401. package/helpers/utils/get-ms-from-hrt.d.ts +0 -2
  402. package/helpers/utils/get-ms-from-hrt.js +0 -22
  403. package/helpers/utils/get-ms-from-hrt.js.map +0 -1
  404. package/helpers/utils/is-match-pattern-list.d.ts +0 -8
  405. package/helpers/utils/is-match-pattern-list.js +0 -16
  406. package/helpers/utils/is-match-pattern-list.js.map +0 -1
  407. package/helpers/utils/is-not-empty-array.d.ts +0 -2
  408. package/helpers/utils/is-not-empty-array.js +0 -12
  409. package/helpers/utils/is-not-empty-array.js.map +0 -1
  410. package/helpers/utils/is-not-empty-string.d.ts +0 -2
  411. package/helpers/utils/is-not-empty-string.js +0 -15
  412. package/helpers/utils/is-not-empty-string.js.map +0 -1
  413. package/helpers/utils/is-numeric.d.ts +0 -7
  414. package/helpers/utils/is-numeric.js +0 -16
  415. package/helpers/utils/is-numeric.js.map +0 -1
  416. package/helpers/utils/wrap-in-measure-event.d.ts +0 -9
  417. package/helpers/utils/wrap-in-measure-event.js +0 -50
  418. package/helpers/utils/wrap-in-measure-event.js.map +0 -1
  419. package/logger/create-logger-middleware/index.d.ts +0 -14
  420. package/logger/create-logger-middleware/index.js +0 -41
  421. package/logger/create-logger-middleware/index.js.map +0 -1
  422. package/logger/create-sentry-instance/index.d.ts +0 -29
  423. package/logger/create-sentry-instance/index.js +0 -63
  424. package/logger/create-sentry-instance/index.js.map +0 -1
  425. package/logger/create-sentry-middleware/index.d.ts +0 -14
  426. package/logger/create-sentry-middleware/index.js +0 -19
  427. package/logger/create-sentry-middleware/index.js.map +0 -1
  428. package/logger/handler-creators/index.d.ts +0 -5
  429. package/logger/handler-creators/index.js +0 -41
  430. package/logger/handler-creators/index.js.map +0 -1
  431. package/logger/initialize-sentry-creator/index.d.ts +0 -17
  432. package/logger/initialize-sentry-creator/index.js +0 -35
  433. package/logger/initialize-sentry-creator/index.js.map +0 -1
  434. package/logger/sentry-logger/index.d.ts +0 -9
  435. package/logger/sentry-logger/index.js +0 -36
  436. package/logger/sentry-logger/index.js.map +0 -1
  437. package/module-federation/__example__/webpack-config.example.d.ts +0 -366
  438. package/module-federation/__example__/webpack-config.example.js +0 -58
  439. package/module-federation/__example__/webpack-config.example.js.map +0 -1
  440. package/module-federation/enhanced-module-federation-plugin.d.ts +0 -69
  441. package/module-federation/enhanced-module-federation-plugin.js +0 -97
  442. package/module-federation/enhanced-module-federation-plugin.js.map +0 -1
  443. package/module-federation/utils/index.d.ts +0 -16
  444. package/module-federation/utils/index.js +0 -33
  445. package/module-federation/utils/index.js.map +0 -1
  446. package/observe-middleware/index.d.ts +0 -9
  447. package/observe-middleware/index.js +0 -67
  448. package/observe-middleware/index.js.map +0 -1
  449. package/set-header-middleware/create.d.ts +0 -10
  450. package/set-header-middleware/create.js +0 -16
  451. package/set-header-middleware/create.js.map +0 -1
  452. package/src/cache/helpers.js +0 -32
  453. package/src/cache/local-storage.ts +0 -92
  454. package/src/cache/redis.js +0 -79
  455. package/src/cache/wrap-in-trace.js +0 -57
  456. package/src/config/create.js +0 -33
  457. package/src/config/helpers.js +0 -71
  458. package/src/config/validate.js +0 -114
  459. package/src/container/create-inject.js +0 -32
  460. package/src/container/get-dependencies.js +0 -46
  461. package/src/container/index.js +0 -188
  462. package/src/container/is-container.js +0 -14
  463. package/src/container/service-not-found-error.js +0 -14
  464. package/src/create-proxy/create-proxy-middleware/index.js +0 -47
  465. package/src/create-proxy/index.js +0 -27
  466. package/src/create-response-sender/index.js +0 -48
  467. package/src/get-dynamic-data/index.js +0 -26
  468. package/src/graceful-shutdown/index.js +0 -97
  469. package/src/helpers/add-error-handling/index.js +0 -24
  470. package/src/helpers/api/create-enhancer.js +0 -52
  471. package/src/helpers/api/create-instance.js +0 -42
  472. package/src/helpers/api/middlewares/collect-cookie-middleware.js +0 -27
  473. package/src/helpers/api/middlewares/count-api-response-time.js +0 -31
  474. package/src/helpers/api/middlewares/error-handlers-middlewares.js +0 -124
  475. package/src/helpers/api/middlewares/helpers.js +0 -26
  476. package/src/helpers/api/middlewares/pass-headers-middleware.js +0 -19
  477. package/src/helpers/api/middlewares/prepare-request-headers.js +0 -18
  478. package/src/helpers/api/middlewares/set-http-agents-middleware.js +0 -22
  479. package/src/helpers/api/middlewares/stages-trace-middleware.js +0 -46
  480. package/src/helpers/api/server-adapter/__fixtures__/fake-keys.js +0 -58
  481. package/src/helpers/api/server-adapter/constants.js +0 -12
  482. package/src/helpers/api/server-adapter/helpers.js +0 -244
  483. package/src/helpers/api/server-adapter/index.js +0 -155
  484. package/src/helpers/development/use-dot-env.js +0 -9
  485. package/src/helpers/get-params/index.js +0 -59
  486. package/src/helpers/http/request-getters.js +0 -42
  487. package/src/helpers/http/statuses-validator.js +0 -20
  488. package/src/helpers/logger/create-pino-instance/index.js +0 -41
  489. package/src/helpers/logger/format-time/index.js +0 -6
  490. package/src/helpers/metrics/index.js +0 -40
  491. package/src/helpers/prometheus/index.js +0 -9
  492. package/src/helpers/prometheus/measure-middleware.js +0 -73
  493. package/src/helpers/prometheus/metric-adapter.js +0 -99
  494. package/src/helpers/react/error-handlers/index.tsx +0 -68
  495. package/src/helpers/redux/constants.js +0 -10
  496. package/src/helpers/redux/create-compose-middleware.js +0 -24
  497. package/src/helpers/redux/get-dev-compose-creator.js +0 -9
  498. package/src/helpers/redux/prepare-on-ready.js +0 -16
  499. package/src/helpers/redux/remote-data.js +0 -124
  500. package/src/helpers/redux/selector/statuses.js +0 -30
  501. package/src/helpers/redux/wait-on-store-readiness.js +0 -40
  502. package/src/helpers/render/get-react-markup-data.js +0 -18
  503. package/src/helpers/render/index.js +0 -69
  504. package/src/helpers/render/render-app.js +0 -15
  505. package/src/helpers/saga/__fixtures__/do-safe-request.js +0 -49
  506. package/src/helpers/saga/cache-result.js +0 -77
  507. package/src/helpers/saga/create-store.js +0 -102
  508. package/src/helpers/saga/do-safe-request.js +0 -47
  509. package/src/helpers/saga/safe-request.js +0 -11
  510. package/src/helpers/saga/take-chain.js +0 -53
  511. package/src/helpers/tracer/create-child-tracing-middleware.js +0 -42
  512. package/src/helpers/tracer/index.js +0 -171
  513. package/src/helpers/utils/check-feature-by-segment.js +0 -32
  514. package/src/helpers/utils/format-object-keys.js +0 -23
  515. package/src/helpers/utils/get-ms-from-hrt.js +0 -16
  516. package/src/helpers/utils/is-match-pattern-list.js +0 -13
  517. package/src/helpers/utils/is-not-empty-array.js +0 -8
  518. package/src/helpers/utils/is-not-empty-string.js +0 -11
  519. package/src/helpers/utils/is-numeric.ts +0 -12
  520. package/src/helpers/utils/wrap-in-measure-event.js +0 -35
  521. package/src/logger/create-logger-middleware/index.js +0 -46
  522. package/src/logger/create-sentry-instance/index.js +0 -74
  523. package/src/logger/create-sentry-middleware/index.js +0 -16
  524. package/src/logger/handler-creators/index.js +0 -38
  525. package/src/logger/initialize-sentry-creator/index.js +0 -43
  526. package/src/logger/sentry-logger/index.js +0 -33
  527. package/src/module-federation/__example__/webpack-config.example.js +0 -64
  528. package/src/module-federation/enhanced-module-federation-plugin.js +0 -119
  529. package/src/module-federation/utils/index.js +0 -39
  530. package/src/observe-middleware/index.js +0 -70
  531. package/src/set-header-middleware/create.js +0 -17
@@ -0,0 +1,65 @@
1
+ import { Action } from '@reduxjs/toolkit';
2
+ import { delay, fork, put, race, take } from 'redux-saga/effects';
3
+
4
+ /**
5
+ * Накапливает экшены и генерирует эффект по таймауту.
6
+ * @param timeout Время задержки в мс.
7
+ * @param types Массив с типами ожидаемых экшенов.
8
+ * @param task Генератор.
9
+ * @param deps Аргументы для генератора.
10
+ * @return Эффект.
11
+ */
12
+ export function takeChain<
13
+ Deps extends any[],
14
+ Task extends (...someArgs: [...Deps, Action[]]) => any,
15
+ >(timeout: number, types: string[], task: Task, ...deps: Deps) {
16
+ return fork(generateTakeChain as any, timeout, types, task, deps);
17
+ }
18
+
19
+ /**
20
+ * Генерирует эффект по таймауту.
21
+ * @param timeout Время задержки в мс.
22
+ * @param types Массив с типами ожидаемых экшенов.
23
+ * @param task Генератор.
24
+ * @param deps Аргументы для генератора.
25
+ */
26
+ export function* generateTakeChain<
27
+ Deps extends any[],
28
+ Task extends (...someArgs: [...Deps, Action[]]) => any,
29
+ >(timeout: number, types: string[], task: Task, deps: Deps): Generator<any, void, any> {
30
+ while (true) {
31
+ const breakAction: Action = { type: `BREAK_${Date.now()}` };
32
+ const firstAction: Action = yield take(types);
33
+ const collectedActions = [firstAction];
34
+
35
+ yield fork(putDelayed, timeout, breakAction);
36
+
37
+ while (true) {
38
+ const { action, canceled } = yield race({
39
+ action: take(types),
40
+ canceled: take(breakAction.type),
41
+ });
42
+
43
+ action && collectedActions.push(action);
44
+
45
+ if (
46
+ canceled ||
47
+ types.every(type => collectedActions.some(someAction => someAction.type === type))
48
+ ) {
49
+ // @todo убрать "as any"
50
+ yield fork(task as any, ...deps, collectedActions);
51
+ break;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Вызывает экшен с заданной задержкой.
59
+ * @param timeout Время задержки в мс.
60
+ * @param action Тип экшена.
61
+ */
62
+ export function* putDelayed(timeout: number, action: Action) {
63
+ yield delay(timeout);
64
+ yield put(action);
65
+ }
@@ -0,0 +1,246 @@
1
+ import { container, Compiler } from 'webpack';
2
+ import { LIBRARY_ERROR_TEXT, ModuleFederationPlugin, REMOTE_ERROR_TEXT } from '..';
3
+
4
+ jest.mock('../utils', () => ({
5
+ createExternalConfig: jest.fn(arg => arg),
6
+ }));
7
+
8
+ jest.mock('webpack', () => {
9
+ class ModuleFederationPluginMock {
10
+ static __spy__ = { constructor: jest.fn(), apply: jest.fn() };
11
+
12
+ constructor(...args: any[]) {
13
+ ModuleFederationPluginMock.__spy__.constructor(...args);
14
+ }
15
+
16
+ apply(...args: any[]) {
17
+ ModuleFederationPluginMock.__spy__.apply(...args);
18
+ }
19
+ }
20
+
21
+ return {
22
+ container: {
23
+ ModuleFederationPlugin: ModuleFederationPluginMock,
24
+ },
25
+ WebpackError: class extends Error {},
26
+ };
27
+ });
28
+
29
+ function getSpy(value: any): { constructor: jest.Mock; apply: jest.Mock } {
30
+ return value.__spy__;
31
+ }
32
+
33
+ beforeEach(() => {
34
+ getSpy(container.ModuleFederationPlugin).constructor.mockClear();
35
+ getSpy(container.ModuleFederationPlugin).apply.mockClear();
36
+ });
37
+
38
+ describe('ModuleFederationPlugin', () => {
39
+ function createCompilerMock(): Compiler {
40
+ return {
41
+ hooks: {
42
+ environment: {
43
+ tap: jest.fn((name, cb) => cb()),
44
+ },
45
+ },
46
+ } as any;
47
+ }
48
+
49
+ describe('ModuleFederationPlugin instance', () => {
50
+ it('should apply original plugin', () => {
51
+ const compiler = createCompilerMock();
52
+ const instance = new ModuleFederationPlugin({ name: 'test-module' });
53
+
54
+ expect(getSpy(container.ModuleFederationPlugin).apply).toBeCalledTimes(0);
55
+
56
+ instance.apply(compiler);
57
+
58
+ expect(getSpy(container.ModuleFederationPlugin).apply).toBeCalledTimes(1);
59
+ expect(getSpy(container.ModuleFederationPlugin).apply).toBeCalledWith(compiler);
60
+ });
61
+
62
+ it('should not creat and throw error, if library property pass to plugin', () => {
63
+ expect(() => {
64
+ new ModuleFederationPlugin({ library: 'test' } as any);
65
+ }).toThrowError(LIBRARY_ERROR_TEXT);
66
+ });
67
+
68
+ it('should not creat and throw error, if remotes property incorrect', () => {
69
+ expect(() => {
70
+ new ModuleFederationPlugin({ remotes: { remoteOne: {} } } as any);
71
+ }).toThrowError(REMOTE_ERROR_TEXT);
72
+ });
73
+ });
74
+
75
+ describe('ModuleFederationPlugin instance should create with correct arguments', () => {
76
+ it('for remotes', () => {
77
+ const compiler = createCompilerMock();
78
+ const instance = new ModuleFederationPlugin({
79
+ name: 'service-name',
80
+ remotes: {
81
+ firstRemote: 'first-remote-service',
82
+ secondRemote: 'second-remote-service',
83
+ },
84
+ });
85
+
86
+ instance.apply(compiler);
87
+
88
+ expect(getSpy(container.ModuleFederationPlugin).constructor).toBeCalledWith({
89
+ name: 'service-name',
90
+ library: {
91
+ type: 'global',
92
+ name: ['__FederationContainers__', 'service-name'],
93
+ },
94
+ remotes: {
95
+ firstRemote: {
96
+ external: {
97
+ serviceName: 'first-remote-service',
98
+ remoteEntriesGlobalKey: '__RemoteEntriesList__',
99
+ containersGlobalKey: '__FederationContainers__',
100
+ },
101
+ },
102
+ secondRemote: {
103
+ external: {
104
+ serviceName: 'second-remote-service',
105
+ remoteEntriesGlobalKey: '__RemoteEntriesList__',
106
+ containersGlobalKey: '__FederationContainers__',
107
+ },
108
+ },
109
+ },
110
+ });
111
+ });
112
+
113
+ it('for remotes with custom global variables name', () => {
114
+ const compiler = createCompilerMock();
115
+ const instance = new ModuleFederationPlugin({
116
+ name: 'service-name',
117
+ remotes: {
118
+ firstRemote: 'first-remote-service',
119
+ secondRemote: 'second-remote-service',
120
+ },
121
+ remoteEntriesGlobalKey: 'remotes-entry-key',
122
+ containersGlobalKey: 'containers-key',
123
+ });
124
+
125
+ instance.apply(compiler);
126
+ expect(getSpy(container.ModuleFederationPlugin).constructor).toBeCalledWith({
127
+ name: 'service-name',
128
+ library: {
129
+ type: 'global',
130
+ name: ['containers-key', 'service-name'],
131
+ },
132
+ remotes: {
133
+ firstRemote: {
134
+ external: {
135
+ serviceName: 'first-remote-service',
136
+ remoteEntriesGlobalKey: 'remotes-entry-key',
137
+ containersGlobalKey: 'containers-key',
138
+ },
139
+ },
140
+ secondRemote: {
141
+ external: {
142
+ serviceName: 'second-remote-service',
143
+ remoteEntriesGlobalKey: 'remotes-entry-key',
144
+ containersGlobalKey: 'containers-key',
145
+ },
146
+ },
147
+ },
148
+ });
149
+ });
150
+
151
+ it('for various remote type', () => {
152
+ const compiler = createCompilerMock();
153
+
154
+ const instance = new ModuleFederationPlugin({
155
+ name: 'service-name',
156
+ remotes: {
157
+ firstRemote: 'first-remote-service',
158
+ secondRemote: {
159
+ name: 'second-remote-service',
160
+ },
161
+ thirdRemote: {
162
+ name: 'third-remote-service',
163
+ remoteEntryPath: '//example.com/path/to/RemoteEntry.js',
164
+ },
165
+ },
166
+ });
167
+
168
+ instance.apply(compiler);
169
+ expect(getSpy(container.ModuleFederationPlugin).constructor).toBeCalledWith({
170
+ name: 'service-name',
171
+ library: {
172
+ type: 'global',
173
+ name: ['__FederationContainers__', 'service-name'],
174
+ },
175
+ remotes: {
176
+ firstRemote: {
177
+ external: {
178
+ serviceName: 'first-remote-service',
179
+ remoteEntriesGlobalKey: '__RemoteEntriesList__',
180
+ containersGlobalKey: '__FederationContainers__',
181
+ },
182
+ },
183
+ secondRemote: {
184
+ external: {
185
+ serviceName: 'second-remote-service',
186
+ remoteEntriesGlobalKey: '__RemoteEntriesList__',
187
+ containersGlobalKey: '__FederationContainers__',
188
+ },
189
+ },
190
+ thirdRemote: {
191
+ external: {
192
+ serviceName: 'third-remote-service',
193
+ remoteEntriesGlobalKey: '__RemoteEntriesList__',
194
+ containersGlobalKey: '__FederationContainers__',
195
+ remoteEntryPath: '//example.com/path/to/RemoteEntry.js',
196
+ },
197
+ },
198
+ },
199
+ });
200
+ });
201
+
202
+ it('for exposes', () => {
203
+ const compiler = createCompilerMock();
204
+
205
+ const instance = new ModuleFederationPlugin({
206
+ name: 'service-name',
207
+ filename: 'path/to/RemoteEntry.js',
208
+ exposes: {
209
+ './One': './path/to/one.js',
210
+ './Two': './path/to/two.js',
211
+ },
212
+ });
213
+
214
+ instance.apply(compiler);
215
+ expect(getSpy(container.ModuleFederationPlugin).constructor).toBeCalledWith({
216
+ name: 'service-name',
217
+ filename: 'path/to/RemoteEntry.js',
218
+ library: {
219
+ type: 'global',
220
+ name: ['__FederationContainers__', 'service-name'],
221
+ },
222
+ exposes: {
223
+ './One': './path/to/one.js',
224
+ './Two': './path/to/two.js',
225
+ },
226
+ });
227
+ });
228
+
229
+ it('for several call "apply" method', () => {
230
+ const compiler = createCompilerMock();
231
+
232
+ const instance = new ModuleFederationPlugin({
233
+ name: 'service-name',
234
+ });
235
+
236
+ instance.apply(compiler);
237
+ instance.apply(compiler);
238
+
239
+ const calls = getSpy(container.ModuleFederationPlugin).constructor.mock.calls;
240
+
241
+ for (const key of Object.keys(calls[0][0])) {
242
+ expect(calls[1][0][key] === calls[0][0][key]).toBe(true);
243
+ }
244
+ });
245
+ });
246
+ });
@@ -0,0 +1,92 @@
1
+ import type { ModuleFederationPluginOptions, ReadyOptions } from './types';
2
+ import { container, Compiler, WebpackError } from 'webpack';
3
+ import { createExternalConfig } from './utils';
4
+
5
+ export 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
+ export 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
+ /**
18
+ * Создает плагин ModuleFederation с опциями, необходимыми для оркестрации удаленных модулей в браузере.
19
+ */
20
+ export class ModuleFederationPlugin {
21
+ /**
22
+ * Проверенные, готовые опции.
23
+ */
24
+ readonly readyOptions: ReadyOptions;
25
+
26
+ /**
27
+ * @param options Опции.
28
+ */
29
+ constructor(options: ModuleFederationPluginOptions) {
30
+ const {
31
+ name,
32
+ remotes,
33
+ remoteEntriesGlobalKey = '__RemoteEntriesList__',
34
+ containersGlobalKey = '__FederationContainers__',
35
+ } = options;
36
+
37
+ if ('library' in options) {
38
+ throw new WebpackError(LIBRARY_ERROR_TEXT);
39
+ }
40
+
41
+ if (remotes) {
42
+ for (const value of Object.values(remotes)) {
43
+ if (typeof value !== 'string' && !value.name) {
44
+ throw new WebpackError(REMOTE_ERROR_TEXT);
45
+ }
46
+ }
47
+ }
48
+
49
+ this.readyOptions = {
50
+ ...options,
51
+ remoteEntriesGlobalKey,
52
+ containersGlobalKey,
53
+ library: {
54
+ type: 'global',
55
+ name: [containersGlobalKey, name],
56
+ },
57
+ };
58
+ }
59
+
60
+ /**
61
+ * @param compiler Компилятор.
62
+ */
63
+ apply(compiler: Compiler) {
64
+ const { remotes, remoteEntriesGlobalKey, containersGlobalKey, ...restOptions } =
65
+ this.readyOptions;
66
+
67
+ const configuredRemotes: Record<string, any> = {};
68
+
69
+ if (remotes) {
70
+ for (const [key, value] of Object.entries(remotes)) {
71
+ const serviceName = typeof value === 'string' ? value : value.name;
72
+ const remoteEntryPath = typeof value === 'string' ? undefined : value.remoteEntryPath;
73
+
74
+ configuredRemotes[key] = {
75
+ external: createExternalConfig({
76
+ serviceName,
77
+ remoteEntryPath,
78
+ remoteEntriesGlobalKey,
79
+ containersGlobalKey,
80
+ }),
81
+ };
82
+ }
83
+ }
84
+
85
+ compiler.hooks.environment.tap('[isomorph]ModuleFederationPlugin', () => {
86
+ new container.ModuleFederationPlugin({
87
+ ...(remotes && { remotes: configuredRemotes }),
88
+ ...restOptions,
89
+ }).apply(compiler);
90
+ });
91
+ }
92
+ }
@@ -0,0 +1,44 @@
1
+ import type { container } from 'webpack';
2
+
3
+ export interface RemoteProperty {
4
+ name: string;
5
+ remoteEntryPath?: string;
6
+ version?: string;
7
+ }
8
+
9
+ export type OriginalModuleFederationPluginOptions = ConstructorParameters<
10
+ typeof container.ModuleFederationPlugin
11
+ >[0];
12
+
13
+ export interface ModuleFederationPluginOptions {
14
+ /** Имя сервиса. */
15
+ name: string;
16
+
17
+ /** Имя удаленной точки входа. */
18
+ filename?: string;
19
+
20
+ /** Удаленные сервисы. */
21
+ remotes?: Record<string, string | RemoteProperty>;
22
+
23
+ /** Предоставляемые сервисы. */
24
+ exposes?: OriginalModuleFederationPluginOptions['exposes'];
25
+
26
+ /** Общие зависимости. */
27
+ shared?: OriginalModuleFederationPluginOptions['shared'];
28
+
29
+ /** Ключ свойства в глобальном объекте,в котором хранится карта точек входа в удаленные сервисы. */
30
+ remoteEntriesGlobalKey?: string;
31
+
32
+ /** Ключ свойства в глобальном объекте, в который добавляются контейнеры удаленных сервисов. */
33
+ containersGlobalKey?: string;
34
+ }
35
+
36
+ export type ReadyOptions = Omit<
37
+ ModuleFederationPluginOptions,
38
+ 'remoteEntriesGlobalKey' | 'containersGlobalKey'
39
+ > &
40
+ Required<
41
+ Pick<ModuleFederationPluginOptions, 'remoteEntriesGlobalKey' | 'containersGlobalKey'>
42
+ > & {
43
+ library: Required<OriginalModuleFederationPluginOptions>['library'];
44
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Возвращает скрипт инициализации удаленного модуля.
3
+ * @param params Параметры.
4
+ * @param params.serviceName Имя сервиса, содержащего удаленные модули.
5
+ * @param params.containersGlobalKey Глобальная переменная, в которую добавляются удаленные контейнеры.
6
+ * @param params.remoteEntriesGlobalKey Глобальная переменная, в которой хранятся пути к удаленным точкам входа.
7
+ * @param params.remoteEntryPath Путь к remoteEntry, если его не надо получать в runtime.
8
+ * @return Скрипт инициализации.
9
+ */
10
+ export function createExternalConfig({
11
+ serviceName,
12
+ containersGlobalKey,
13
+ remoteEntriesGlobalKey,
14
+ remoteEntryPath,
15
+ }: {
16
+ serviceName: string;
17
+ remoteEntriesGlobalKey: string;
18
+ containersGlobalKey: string;
19
+ remoteEntryPath?: string;
20
+ }) {
21
+ return `promise new Promise((resolve, reject) => {
22
+ if (window['${remoteEntriesGlobalKey}']) {
23
+ const scriptElement = document.createElement('script');
24
+ scriptElement.onload = () => {
25
+ scriptElement.remove();
26
+ resolve(window['${containersGlobalKey}']['${serviceName}']);
27
+ };
28
+ scriptElement.onerror = () => {
29
+ scriptElement.remove();
30
+ reject(new Error('Failed loading remoteEntry for "${serviceName}".'));
31
+ };
32
+ scriptElement.src = ${
33
+ remoteEntryPath
34
+ ? `'${remoteEntryPath}'`
35
+ : `window['${remoteEntriesGlobalKey}']['${serviceName}']`
36
+ };
37
+ scriptElement.async = true;
38
+ document.head.append(scriptElement);
39
+ } else {
40
+ reject(new ReferenceError('Object "${remoteEntriesGlobalKey}" unavailable.'));
41
+ }
42
+ })`;
43
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-layer.js","sourceRoot":"","sources":["../../../src/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,mBAAU,CAAC,MAAA,GAAG,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,mBAAM,SAAS,EAAG,CAAC;AAC1E,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"oko.js","sourceRoot":"","sources":["../../../src/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,mBAAU,CAAC,MAAA,GAAG,CAAC,GAAG,0CAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,mBAAM,SAAS,EAAG,CAAC;AAC9D,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AAEF;;;;GAIG;AACI,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;IAC3C,MAAM,OAAO,GAAG,cAAM,EAAY,CAAC;IACnC,MAAM,KAAK,GAAG,cAAM,EAAc,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACpB,OAAO,CAAC,OAAO,qBAAQ,IAAI,CAAE,CAAC;KAC/B;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAClB,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,eAAO,CAAC,OAAO,CAAC,OAAmB,CAAC,CAAC;KAC5D;IAED,IAAI,CAAC,gBAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,KAAK,CAAC;YACV,gDAAgD;YAChD,wFAAwF;SACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACf;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AApBW,QAAA,UAAU,cAoBrB"}
@@ -1,4 +0,0 @@
1
- export function getOnConnectCallback(cache: Object): Function;
2
- export function getOnReconnectingCallback(cache: Object): Function;
3
- export function reconnectOnError({ code }: string): boolean;
4
- export function keyInLocalStorageExists(key: string): boolean;
package/cache/helpers.js DELETED
@@ -1,39 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.keyInLocalStorageExists = exports.reconnectOnError = exports.getOnReconnectingCallback = exports.getOnConnectCallback = void 0;
7
- const local_storage_1 = __importDefault(require("./local-storage"));
8
- /**
9
- * Создаёт обработчик события подключения к redis для установки статуса готовности кэша к работе.
10
- * @param {Object} cache Объект кэша.
11
- * @return {Function} Функция устанавливающая статус кэша.
12
- */
13
- const getOnConnectCallback = cache => () => cache.status = true;
14
- exports.getOnConnectCallback = getOnConnectCallback;
15
- /**
16
- * Создаёт обработчик события переподключения к redis для установки статуса готовности кэша к работе.
17
- * @param {Object} cache Объект кэша.
18
- * @return {Function} Функция устанавливающая статус кэша.
19
- */
20
- const getOnReconnectingCallback = cache => () => cache.status = false;
21
- exports.getOnReconnectingCallback = getOnReconnectingCallback;
22
- /**
23
- * Переподключение после ошибки.
24
- * @param {string} code Код ошибки.
25
- * @return {boolean} Сходится ли код ошибки с ECONNREFUSED.
26
- */
27
- const reconnectOnError = ({ code }) => {
28
- const targetError = 'ECONNREFUSED';
29
- return code === targetError;
30
- };
31
- exports.reconnectOnError = reconnectOnError;
32
- /**
33
- * Определяет есть ли в localStorage нужная информация.
34
- * @param {string} key Ключ.
35
- * @return {boolean} Признак наличия ключа.
36
- */
37
- const keyInLocalStorageExists = key => local_storage_1.default.status && key in localStorage;
38
- exports.keyInLocalStorageExists = keyInLocalStorageExists;
39
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cache/helpers.js"],"names":[],"mappings":";;;;;;AAAA,oEAAgD;AAEhD;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AAA1D,QAAA,oBAAoB,wBAAsC;AAEvE;;;;GAIG;AACI,MAAM,yBAAyB,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AAAhE,QAAA,yBAAyB,6BAAuC;AAE7E;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3C,MAAM,WAAW,GAAG,cAAc,CAAC;IACnC,OAAO,IAAI,KAAK,WAAW,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B;AAEF;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,GAAG,CAAC,EAAE,CAAC,uBAAiB,CAAC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC;AAAjF,QAAA,uBAAuB,2BAA0D"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Определяет доступен ли кэш.
3
- * @return Флаг доступности кэш.
4
- */
5
- export declare const isAvailable: () => boolean;
6
- /**
7
- * Возвращает объект.
8
- * @param key Ключ.
9
- * @return Запрашиваемое значение.
10
- */
11
- export declare const getItem: (key: string) => unknown;
12
- /**
13
- * Добавляет значение.
14
- * @param key Ключ.
15
- * @param value Значение.
16
- * @param duration Время жизни значения в секундах.
17
- */
18
- export declare const setItem: (key: string, value: any, duration?: number) => void;
19
- /**
20
- * Определяет, превышена ли квота.
21
- * @param error Информация об ошибке.
22
- * @return Признак превышения квоты.
23
- */
24
- export declare const isQuotaExceeded: (error: any) => boolean;
25
- /**
26
- * Набор методов для работы с кэшем.
27
- */
28
- declare const LocalStorageCache: {
29
- readonly get: (key: string) => unknown;
30
- readonly set: (key: string, value: any, duration?: number) => void;
31
- readonly status: boolean;
32
- readonly quotaExceeded: (error: any) => boolean;
33
- };
34
- export default LocalStorageCache;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isQuotaExceeded = exports.setItem = exports.getItem = exports.isAvailable = void 0;
4
- /**
5
- * Определяет доступен ли кэш.
6
- * @return Флаг доступности кэш.
7
- */
8
- const isAvailable = () => {
9
- try {
10
- const testKey = `local_storage_test_key::${Date.now()}`;
11
- window.localStorage.setItem(testKey, testKey);
12
- window.localStorage.removeItem(testKey);
13
- return true;
14
- }
15
- catch (_a) {
16
- return false;
17
- }
18
- };
19
- exports.isAvailable = isAvailable;
20
- /**
21
- * Возвращает объект.
22
- * @param key Ключ.
23
- * @return Запрашиваемое значение.
24
- */
25
- const getItem = (key) => {
26
- const { value, expire } = JSON.parse(localStorage.getItem(key) || '{}');
27
- const now = Date.now();
28
- const isExpired = expire
29
- ? now > expire
30
- : true;
31
- isExpired && localStorage.removeItem(key);
32
- return isExpired ? null : value;
33
- };
34
- exports.getItem = getItem;
35
- /**
36
- * Добавляет значение.
37
- * @param key Ключ.
38
- * @param value Значение.
39
- * @param duration Время жизни значения в секундах.
40
- */
41
- const setItem = (key, value, duration = 3600) => {
42
- const now = Date.now();
43
- const durationMs = duration * 1000;
44
- const expire = now + durationMs;
45
- localStorage.setItem(key, JSON.stringify({
46
- value,
47
- expire,
48
- }));
49
- };
50
- exports.setItem = setItem;
51
- /**
52
- * Определяет, превышена ли квота.
53
- * @param error Информация об ошибке.
54
- * @return Признак превышения квоты.
55
- */
56
- const isQuotaExceeded = (error) => {
57
- let quotaExceeded = false;
58
- if (error) {
59
- if (error.code) {
60
- switch (error.code) {
61
- case 22:
62
- quotaExceeded = true;
63
- break;
64
- case 1014:
65
- // Firefox
66
- if (error.name === 'NS_ERROR_DOM_QUOTA_REACHED') {
67
- quotaExceeded = true;
68
- }
69
- break;
70
- }
71
- }
72
- else if (error.number === -2147024882) {
73
- // IE 8
74
- quotaExceeded = true;
75
- }
76
- }
77
- return quotaExceeded;
78
- };
79
- exports.isQuotaExceeded = isQuotaExceeded;
80
- /**
81
- * Набор методов для работы с кэшем.
82
- */
83
- const LocalStorageCache = {
84
- get: exports.getItem,
85
- set: exports.setItem,
86
- status: exports.isAvailable(),
87
- quotaExceeded: exports.isQuotaExceeded,
88
- };
89
- exports.default = LocalStorageCache;
90
- //# sourceMappingURL=local-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../src/cache/local-storage.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,WAAW,GAAG,GAAY,EAAE;IACvC,IAAI;QACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAExD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC;KACb;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAA;AAXY,QAAA,WAAW,eAWvB;AAED;;;;GAIG;AACI,MAAM,OAAO,GAAG,CAAC,GAAW,EAAW,EAAE;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,MAAM;QACtB,CAAC,CAAC,GAAG,GAAG,MAAM;QACd,CAAC,CAAC,IAAI,CAAC;IAET,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC;AAVW,QAAA,OAAO,WAUlB;AAEF;;;;;GAKG;AACI,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;IAEhC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QACvC,KAAK;QACL,MAAM;KACP,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,KAAU,EAAW,EAAE;IACrD,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,KAAK,EAAE;QACT,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAClB,KAAK,EAAE;oBACL,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM;gBACR,KAAK,IAAI;oBACP,UAAU;oBACV,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE;wBAC/C,aAAa,GAAG,IAAI,CAAC;qBACtB;oBACD,MAAM;aACT;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE;YACvC,OAAO;YACP,aAAa,GAAG,IAAI,CAAC;SACtB;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAvBW,QAAA,eAAe,mBAuB1B;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,GAAG,EAAE,eAAO;IACZ,GAAG,EAAE,eAAO;IACZ,MAAM,EAAE,mBAAW,EAAE;IACrB,aAAa,EAAE,uBAAe;CACtB,CAAC;AAEX,kBAAe,iBAAiB,CAAC"}