@sima-land/isomorph 11.0.0-alpha.4 → 11.0.0-alpha.41

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 (667) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +25 -0
  3. package/dist/cjs/cache/index.js +6 -0
  4. package/dist/cjs/cache/index.js.map +1 -0
  5. package/dist/cjs/cache/types.js +6 -0
  6. package/dist/cjs/cache/types.js.map +1 -0
  7. package/dist/cjs/config/base.js +22 -0
  8. package/dist/cjs/config/base.js.map +1 -0
  9. package/dist/cjs/config/index.js +20 -0
  10. package/dist/cjs/config/index.js.map +1 -0
  11. package/dist/cjs/config/source.js +25 -0
  12. package/dist/cjs/config/source.js.map +1 -0
  13. package/dist/cjs/config/types.js +6 -0
  14. package/dist/cjs/config/types.js.map +1 -0
  15. package/dist/cjs/di/application.js +106 -0
  16. package/dist/cjs/di/application.js.map +1 -0
  17. package/dist/cjs/di/container.js +55 -0
  18. package/dist/cjs/di/container.js.map +1 -0
  19. package/dist/cjs/di/errors.js +65 -0
  20. package/dist/cjs/di/errors.js.map +1 -0
  21. package/dist/cjs/di/index.js +59 -0
  22. package/dist/cjs/di/index.js.map +1 -0
  23. package/dist/cjs/di/preset.js +32 -0
  24. package/dist/cjs/di/preset.js.map +1 -0
  25. package/dist/cjs/di/token.js +44 -0
  26. package/dist/cjs/di/token.js.map +1 -0
  27. package/dist/cjs/di/types.js +6 -0
  28. package/dist/cjs/di/types.js.map +1 -0
  29. package/dist/cjs/http/errors.js +47 -0
  30. package/dist/cjs/http/errors.js.map +1 -0
  31. package/dist/cjs/http/index.js +63 -0
  32. package/dist/cjs/http/index.js.map +1 -0
  33. package/dist/cjs/http/types.js +6 -0
  34. package/dist/cjs/http/types.js.map +1 -0
  35. package/dist/cjs/log/errors.js +35 -0
  36. package/dist/cjs/log/errors.js.map +1 -0
  37. package/dist/cjs/log/handler/pino.js +31 -0
  38. package/dist/cjs/log/handler/pino.js.map +1 -0
  39. package/dist/cjs/log/handler/sentry.js +57 -0
  40. package/dist/cjs/log/handler/sentry.js.map +1 -0
  41. package/dist/cjs/log/index.js +26 -0
  42. package/dist/cjs/log/index.js.map +1 -0
  43. package/dist/cjs/log/logger.js +35 -0
  44. package/dist/cjs/log/logger.js.map +1 -0
  45. package/dist/cjs/log/types.js +6 -0
  46. package/dist/cjs/log/types.js.map +1 -0
  47. package/dist/cjs/package.json +36 -0
  48. package/dist/cjs/preset/isomorphic/constants.js +14 -0
  49. package/dist/cjs/preset/isomorphic/constants.js.map +1 -0
  50. package/dist/cjs/preset/isomorphic/index.js +6 -0
  51. package/dist/cjs/preset/isomorphic/index.js.map +1 -0
  52. package/dist/cjs/preset/isomorphic/providers/index.js +42 -0
  53. package/dist/cjs/preset/isomorphic/providers/index.js.map +1 -0
  54. package/dist/cjs/preset/isomorphic/types.js +6 -0
  55. package/dist/cjs/preset/isomorphic/types.js.map +1 -0
  56. package/dist/cjs/preset/isomorphic/utils/index.js +322 -0
  57. package/dist/cjs/preset/isomorphic/utils/index.js.map +1 -0
  58. package/dist/cjs/preset/node/handler/index.js +52 -0
  59. package/dist/cjs/preset/node/handler/index.js.map +1 -0
  60. package/dist/cjs/preset/node/handler/providers/index.js +212 -0
  61. package/dist/cjs/preset/node/handler/providers/index.js.map +1 -0
  62. package/dist/cjs/preset/node/handler/utils/index.js +132 -0
  63. package/dist/cjs/preset/node/handler/utils/index.js.map +1 -0
  64. package/dist/cjs/preset/node/index.js +26 -0
  65. package/dist/cjs/preset/node/index.js.map +1 -0
  66. package/dist/cjs/preset/node/node/index.js +61 -0
  67. package/dist/cjs/preset/node/node/index.js.map +1 -0
  68. package/dist/cjs/preset/node/node/providers/index.js +403 -0
  69. package/dist/cjs/preset/node/node/providers/index.js.map +1 -0
  70. package/dist/cjs/preset/node/node/utils/http-client/index.js +122 -0
  71. package/dist/cjs/preset/node/node/utils/http-client/index.js.map +1 -0
  72. package/dist/cjs/preset/node/node/utils/http-server/index.js +18 -0
  73. package/dist/cjs/preset/node/node/utils/http-server/index.js.map +1 -0
  74. package/dist/cjs/preset/node/node/utils/index.js +20 -0
  75. package/dist/cjs/preset/node/node/utils/index.js.map +1 -0
  76. package/dist/cjs/preset/node/types.js +6 -0
  77. package/dist/cjs/preset/node/types.js.map +1 -0
  78. package/dist/cjs/preset/web/index.js +34 -0
  79. package/dist/cjs/preset/web/index.js.map +1 -0
  80. package/dist/cjs/preset/web/providers/index.js +94 -0
  81. package/dist/cjs/preset/web/providers/index.js.map +1 -0
  82. package/dist/cjs/tokens.js +86 -0
  83. package/dist/cjs/tokens.js.map +1 -0
  84. package/dist/cjs/utils/axios/index.js +40 -0
  85. package/dist/cjs/utils/axios/index.js.map +1 -0
  86. package/dist/cjs/utils/axios/middleware/cookie.js +28 -0
  87. package/dist/cjs/utils/axios/middleware/cookie.js.map +1 -0
  88. package/dist/cjs/utils/axios/middleware/log.js +37 -0
  89. package/dist/cjs/utils/axios/middleware/log.js.map +1 -0
  90. package/dist/cjs/utils/axios/sauce/index.js +57 -0
  91. package/dist/cjs/utils/axios/sauce/index.js.map +1 -0
  92. package/dist/cjs/utils/axios/utils/index.js +30 -0
  93. package/dist/cjs/utils/axios/utils/index.js.map +1 -0
  94. package/dist/cjs/utils/express/handler/health-check.js +19 -0
  95. package/dist/cjs/utils/express/handler/health-check.js.map +1 -0
  96. package/dist/cjs/utils/express/index.js +20 -0
  97. package/dist/cjs/utils/express/index.js.map +1 -0
  98. package/dist/cjs/utils/express/utils/index.js +22 -0
  99. package/dist/cjs/utils/express/utils/index.js.map +1 -0
  100. package/dist/cjs/utils/function.js +44 -0
  101. package/dist/cjs/utils/function.js.map +1 -0
  102. package/dist/cjs/utils/index.js +20 -0
  103. package/dist/cjs/utils/index.js.map +1 -0
  104. package/{utils/number.js → dist/cjs/utils/math.js} +7 -5
  105. package/dist/cjs/utils/math.js.map +1 -0
  106. package/dist/cjs/utils/react/error-handlers/index.js +80 -0
  107. package/dist/cjs/utils/react/error-handlers/index.js.map +1 -0
  108. package/dist/cjs/utils/react/index.js +19 -0
  109. package/dist/cjs/utils/react/index.js.map +1 -0
  110. package/dist/cjs/utils/redux/index.js +19 -0
  111. package/dist/cjs/utils/redux/index.js.map +1 -0
  112. package/dist/cjs/utils/redux/remote-data.js +118 -0
  113. package/dist/cjs/utils/redux/remote-data.js.map +1 -0
  114. package/dist/cjs/utils/redux-saga/index.js +20 -0
  115. package/dist/cjs/utils/redux-saga/index.js.map +1 -0
  116. package/dist/cjs/utils/redux-saga/middleware.js +149 -0
  117. package/dist/cjs/utils/redux-saga/middleware.js.map +1 -0
  118. package/dist/cjs/utils/redux-saga/take-chain.js +66 -0
  119. package/dist/cjs/utils/redux-saga/take-chain.js.map +1 -0
  120. package/dist/cjs/utils/redux-saga/types.js +6 -0
  121. package/dist/cjs/utils/redux-saga/types.js.map +1 -0
  122. package/dist/cjs/utils/ssr/index.js +73 -0
  123. package/dist/cjs/utils/ssr/index.js.map +1 -0
  124. package/dist/cjs/utils/web/analytics/data-layer.js +20 -0
  125. package/dist/cjs/utils/web/analytics/data-layer.js.map +1 -0
  126. package/dist/cjs/utils/web/analytics/index.js +20 -0
  127. package/dist/cjs/utils/web/analytics/index.js.map +1 -0
  128. package/dist/cjs/utils/web/analytics/oko.js +20 -0
  129. package/dist/cjs/utils/web/analytics/oko.js.map +1 -0
  130. package/dist/cjs/utils/web/storage/index.js +75 -0
  131. package/dist/cjs/utils/web/storage/index.js.map +1 -0
  132. package/dist/cjs/utils/webpack/env/index.js +96 -0
  133. package/dist/cjs/utils/webpack/env/index.js.map +1 -0
  134. package/dist/cjs/utils/webpack/env/types.js +6 -0
  135. package/dist/cjs/utils/webpack/env/types.js.map +1 -0
  136. package/dist/cjs/utils/webpack/env/utils.js +55 -0
  137. package/dist/cjs/utils/webpack/env/utils.js.map +1 -0
  138. package/dist/cjs/utils/webpack/index.js +20 -0
  139. package/dist/cjs/utils/webpack/index.js.map +1 -0
  140. package/dist/cjs/utils/webpack/module-federation/index.js +110 -0
  141. package/dist/cjs/utils/webpack/module-federation/index.js.map +1 -0
  142. package/dist/cjs/utils/webpack/module-federation/types.js +6 -0
  143. package/dist/cjs/utils/webpack/module-federation/types.js.map +1 -0
  144. package/dist/cjs/utils/webpack/module-federation/utils.js +87 -0
  145. package/dist/cjs/utils/webpack/module-federation/utils.js.map +1 -0
  146. package/dist/esm/cache/index.js +2 -0
  147. package/dist/esm/cache/index.js.map +1 -0
  148. package/dist/esm/cache/types.js +2 -0
  149. package/dist/esm/cache/types.js.map +1 -0
  150. package/dist/esm/config/base.js +16 -0
  151. package/dist/esm/config/base.js.map +1 -0
  152. package/dist/esm/config/index.js +3 -0
  153. package/dist/esm/config/index.js.map +1 -0
  154. package/dist/esm/config/source.js +19 -0
  155. package/dist/esm/config/source.js.map +1 -0
  156. package/dist/esm/config/types.js +2 -0
  157. package/dist/esm/config/types.js.map +1 -0
  158. package/dist/esm/di/application.js +100 -0
  159. package/dist/esm/di/application.js.map +1 -0
  160. package/dist/esm/di/container.js +49 -0
  161. package/dist/esm/di/container.js.map +1 -0
  162. package/dist/esm/di/errors.js +56 -0
  163. package/dist/esm/di/errors.js.map +1 -0
  164. package/dist/esm/di/index.js +6 -0
  165. package/dist/esm/di/index.js.map +1 -0
  166. package/dist/esm/di/preset.js +26 -0
  167. package/dist/esm/di/preset.js.map +1 -0
  168. package/dist/esm/di/token.js +38 -0
  169. package/dist/esm/di/token.js.map +1 -0
  170. package/dist/esm/di/types.js +2 -0
  171. package/dist/esm/di/types.js.map +1 -0
  172. package/dist/esm/http/errors.js +39 -0
  173. package/dist/esm/http/errors.js.map +1 -0
  174. package/dist/esm/http/index.js +4 -0
  175. package/dist/esm/http/index.js.map +1 -0
  176. package/dist/esm/http/types.js +2 -0
  177. package/dist/esm/http/types.js.map +1 -0
  178. package/dist/esm/log/errors.js +27 -0
  179. package/dist/esm/log/errors.js.map +1 -0
  180. package/dist/esm/log/handler/pino.js +25 -0
  181. package/dist/esm/log/handler/pino.js.map +1 -0
  182. package/dist/esm/log/handler/sentry.js +52 -0
  183. package/dist/esm/log/handler/sentry.js.map +1 -0
  184. package/dist/esm/log/index.js +3 -0
  185. package/dist/esm/log/index.js.map +1 -0
  186. package/dist/esm/log/logger.js +29 -0
  187. package/dist/esm/log/logger.js.map +1 -0
  188. package/dist/esm/log/types.js +2 -0
  189. package/dist/esm/log/types.js.map +1 -0
  190. package/dist/esm/package.json +36 -0
  191. package/dist/esm/preset/isomorphic/constants.js +8 -0
  192. package/dist/esm/preset/isomorphic/constants.js.map +1 -0
  193. package/dist/esm/preset/isomorphic/index.js +2 -0
  194. package/dist/esm/preset/isomorphic/index.js.map +1 -0
  195. package/dist/esm/preset/isomorphic/providers/index.js +35 -0
  196. package/dist/esm/preset/isomorphic/providers/index.js.map +1 -0
  197. package/dist/esm/preset/isomorphic/types.js +2 -0
  198. package/dist/esm/preset/isomorphic/types.js.map +1 -0
  199. package/dist/esm/preset/isomorphic/utils/index.js +309 -0
  200. package/dist/esm/preset/isomorphic/utils/index.js.map +1 -0
  201. package/dist/esm/preset/node/handler/index.js +42 -0
  202. package/dist/esm/preset/node/handler/index.js.map +1 -0
  203. package/dist/esm/preset/node/handler/providers/index.js +194 -0
  204. package/dist/esm/preset/node/handler/providers/index.js.map +1 -0
  205. package/dist/esm/preset/node/handler/utils/index.js +113 -0
  206. package/dist/esm/preset/node/handler/utils/index.js.map +1 -0
  207. package/dist/esm/preset/node/index.js +3 -0
  208. package/dist/esm/preset/node/index.js.map +1 -0
  209. package/dist/esm/preset/node/node/index.js +56 -0
  210. package/dist/esm/preset/node/node/index.js.map +1 -0
  211. package/dist/esm/preset/node/node/providers/index.js +378 -0
  212. package/dist/esm/preset/node/node/providers/index.js.map +1 -0
  213. package/dist/esm/preset/node/node/utils/http-client/index.js +114 -0
  214. package/dist/esm/preset/node/node/utils/http-client/index.js.map +1 -0
  215. package/dist/esm/preset/node/node/utils/http-server/index.js +12 -0
  216. package/dist/esm/preset/node/node/utils/http-server/index.js.map +1 -0
  217. package/dist/esm/preset/node/node/utils/index.js +3 -0
  218. package/dist/esm/preset/node/node/utils/index.js.map +1 -0
  219. package/dist/esm/preset/node/types.js +2 -0
  220. package/dist/esm/preset/node/types.js.map +1 -0
  221. package/dist/esm/preset/web/index.js +29 -0
  222. package/dist/esm/preset/web/index.js.map +1 -0
  223. package/dist/esm/preset/web/providers/index.js +85 -0
  224. package/dist/esm/preset/web/providers/index.js.map +1 -0
  225. package/dist/esm/tokens.js +81 -0
  226. package/dist/esm/tokens.js.map +1 -0
  227. package/dist/esm/utils/axios/index.js +5 -0
  228. package/dist/esm/utils/axios/index.js.map +1 -0
  229. package/dist/esm/utils/axios/middleware/cookie.js +22 -0
  230. package/dist/esm/utils/axios/middleware/cookie.js.map +1 -0
  231. package/dist/esm/utils/axios/middleware/log.js +31 -0
  232. package/dist/esm/utils/axios/middleware/log.js.map +1 -0
  233. package/dist/esm/utils/axios/sauce/index.js +50 -0
  234. package/dist/esm/utils/axios/sauce/index.js.map +1 -0
  235. package/dist/esm/utils/axios/utils/index.js +24 -0
  236. package/dist/esm/utils/axios/utils/index.js.map +1 -0
  237. package/dist/esm/utils/express/handler/health-check.js +13 -0
  238. package/dist/esm/utils/express/handler/health-check.js.map +1 -0
  239. package/dist/esm/utils/express/index.js +3 -0
  240. package/dist/esm/utils/express/index.js.map +1 -0
  241. package/dist/esm/utils/express/utils/index.js +16 -0
  242. package/dist/esm/utils/express/utils/index.js.map +1 -0
  243. package/dist/esm/utils/function.js +38 -0
  244. package/dist/esm/utils/function.js.map +1 -0
  245. package/dist/esm/utils/index.js +3 -0
  246. package/dist/esm/utils/index.js.map +1 -0
  247. package/dist/esm/utils/math.js +9 -0
  248. package/dist/esm/utils/math.js.map +1 -0
  249. package/dist/esm/utils/react/error-handlers/index.js +69 -0
  250. package/dist/esm/utils/react/error-handlers/index.js.map +1 -0
  251. package/dist/esm/utils/react/index.js +3 -0
  252. package/dist/esm/utils/react/index.js.map +1 -0
  253. package/dist/esm/utils/redux/index.js +3 -0
  254. package/dist/esm/utils/redux/index.js.map +1 -0
  255. package/dist/esm/utils/redux/remote-data.js +108 -0
  256. package/dist/esm/utils/redux/remote-data.js.map +1 -0
  257. package/dist/esm/utils/redux-saga/index.js +3 -0
  258. package/dist/esm/utils/redux-saga/index.js.map +1 -0
  259. package/dist/esm/utils/redux-saga/middleware.js +143 -0
  260. package/dist/esm/utils/redux-saga/middleware.js.map +1 -0
  261. package/dist/esm/utils/redux-saga/take-chain.js +59 -0
  262. package/dist/esm/utils/redux-saga/take-chain.js.map +1 -0
  263. package/dist/esm/utils/redux-saga/types.js +2 -0
  264. package/dist/esm/utils/redux-saga/types.js.map +1 -0
  265. package/dist/esm/utils/ssr/index.js +66 -0
  266. package/dist/esm/utils/ssr/index.js.map +1 -0
  267. package/dist/esm/utils/web/analytics/data-layer.js +14 -0
  268. package/dist/esm/utils/web/analytics/data-layer.js.map +1 -0
  269. package/dist/esm/utils/web/analytics/index.js +3 -0
  270. package/dist/esm/utils/web/analytics/index.js.map +1 -0
  271. package/dist/esm/utils/web/analytics/oko.js +14 -0
  272. package/dist/esm/utils/web/analytics/oko.js.map +1 -0
  273. package/dist/esm/utils/web/storage/index.js +69 -0
  274. package/dist/esm/utils/web/storage/index.js.map +1 -0
  275. package/dist/esm/utils/webpack/env/index.js +89 -0
  276. package/dist/esm/utils/webpack/env/index.js.map +1 -0
  277. package/dist/esm/utils/webpack/env/types.js +2 -0
  278. package/dist/esm/utils/webpack/env/types.js.map +1 -0
  279. package/dist/esm/utils/webpack/env/utils.js +48 -0
  280. package/dist/esm/utils/webpack/env/utils.js.map +1 -0
  281. package/dist/esm/utils/webpack/index.js +4 -0
  282. package/dist/esm/utils/webpack/index.js.map +1 -0
  283. package/dist/esm/utils/webpack/module-federation/index.js +96 -0
  284. package/dist/esm/utils/webpack/module-federation/index.js.map +1 -0
  285. package/dist/esm/utils/webpack/module-federation/types.js +2 -0
  286. package/dist/esm/utils/webpack/module-federation/types.js.map +1 -0
  287. package/dist/esm/utils/webpack/module-federation/utils.js +80 -0
  288. package/dist/esm/utils/webpack/module-federation/utils.js.map +1 -0
  289. package/dist/types/cache/index.d.ts +2 -0
  290. package/dist/types/cache/index.d.ts.map +1 -0
  291. package/dist/types/cache/types.d.ts +31 -0
  292. package/dist/types/cache/types.d.ts.map +1 -0
  293. package/{config → dist/types/config}/base.d.ts +3 -2
  294. package/dist/types/config/base.d.ts.map +1 -0
  295. package/dist/types/config/index.d.ts +4 -0
  296. package/dist/types/config/index.d.ts.map +1 -0
  297. package/dist/types/config/source.d.ts +8 -0
  298. package/dist/types/config/source.d.ts.map +1 -0
  299. package/dist/types/config/types.d.ts +21 -0
  300. package/dist/types/config/types.d.ts.map +1 -0
  301. package/{di → dist/types/di}/application.d.ts +6 -1
  302. package/dist/types/di/application.d.ts.map +1 -0
  303. package/{di → dist/types/di}/container.d.ts +1 -0
  304. package/dist/types/di/container.d.ts.map +1 -0
  305. package/dist/types/di/errors.d.ts +36 -0
  306. package/dist/types/di/errors.d.ts.map +1 -0
  307. package/dist/types/di/index.d.ts +7 -0
  308. package/dist/types/di/index.d.ts.map +1 -0
  309. package/dist/types/di/preset.d.ts +10 -0
  310. package/dist/types/di/preset.d.ts.map +1 -0
  311. package/{di → dist/types/di}/token.d.ts +1 -0
  312. package/dist/types/di/token.d.ts.map +1 -0
  313. package/dist/types/di/types.d.ts +87 -0
  314. package/dist/types/di/types.d.ts.map +1 -0
  315. package/dist/types/http/errors.d.ts +29 -0
  316. package/dist/types/http/errors.d.ts.map +1 -0
  317. package/dist/types/http/index.d.ts +5 -0
  318. package/dist/types/http/index.d.ts.map +1 -0
  319. package/dist/types/http/types.d.ts +3 -0
  320. package/dist/types/http/types.d.ts.map +1 -0
  321. package/dist/types/log/errors.d.ts +24 -0
  322. package/dist/types/log/errors.d.ts.map +1 -0
  323. package/dist/types/log/handler/pino.d.ts +9 -0
  324. package/dist/types/log/handler/pino.d.ts.map +1 -0
  325. package/dist/types/log/handler/sentry.d.ts +9 -0
  326. package/dist/types/log/handler/sentry.d.ts.map +1 -0
  327. package/dist/types/log/index.d.ts +4 -0
  328. package/dist/types/log/index.d.ts.map +1 -0
  329. package/{logger/index.d.ts → dist/types/log/logger.d.ts} +1 -0
  330. package/dist/types/log/logger.d.ts.map +1 -0
  331. package/dist/types/log/types.d.ts +65 -0
  332. package/dist/types/log/types.d.ts.map +1 -0
  333. package/dist/types/preset/isomorphic/constants.d.ts +8 -0
  334. package/dist/types/preset/isomorphic/constants.d.ts.map +1 -0
  335. package/dist/types/preset/isomorphic/index.d.ts +2 -0
  336. package/dist/types/preset/isomorphic/index.d.ts.map +1 -0
  337. package/dist/types/preset/isomorphic/providers/index.d.ts +23 -0
  338. package/dist/types/preset/isomorphic/providers/index.d.ts.map +1 -0
  339. package/dist/types/preset/isomorphic/types.d.ts +35 -0
  340. package/dist/types/preset/isomorphic/types.d.ts.map +1 -0
  341. package/dist/types/preset/isomorphic/utils/index.d.ts +119 -0
  342. package/dist/types/preset/isomorphic/utils/index.d.ts.map +1 -0
  343. package/dist/types/preset/node/handler/index.d.ts +11 -0
  344. package/dist/types/preset/node/handler/index.d.ts.map +1 -0
  345. package/dist/types/preset/node/handler/providers/index.d.ts +36 -0
  346. package/dist/types/preset/node/handler/providers/index.d.ts.map +1 -0
  347. package/dist/types/preset/node/handler/utils/index.d.ts +47 -0
  348. package/dist/types/preset/node/handler/utils/index.d.ts.map +1 -0
  349. package/dist/types/preset/node/index.d.ts +4 -0
  350. package/dist/types/preset/node/index.d.ts.map +1 -0
  351. package/dist/types/preset/node/node/index.d.ts +9 -0
  352. package/dist/types/preset/node/node/index.d.ts.map +1 -0
  353. package/dist/types/preset/node/node/providers/index.d.ts +113 -0
  354. package/dist/types/preset/node/node/providers/index.d.ts.map +1 -0
  355. package/{http-client/middleware/tracing.d.ts → dist/types/preset/node/node/utils/http-client/index.d.ts} +13 -3
  356. package/dist/types/preset/node/node/utils/http-client/index.d.ts.map +1 -0
  357. package/dist/types/preset/node/node/utils/http-server/index.d.ts +8 -0
  358. package/dist/types/preset/node/node/utils/http-server/index.d.ts.map +1 -0
  359. package/dist/types/preset/node/node/utils/index.d.ts +3 -0
  360. package/dist/types/preset/node/node/utils/index.d.ts.map +1 -0
  361. package/dist/types/preset/node/types.d.ts +10 -0
  362. package/dist/types/preset/node/types.d.ts.map +1 -0
  363. package/dist/types/preset/web/index.d.ts +9 -0
  364. package/dist/types/preset/web/index.d.ts.map +1 -0
  365. package/dist/types/preset/web/providers/index.d.ts +36 -0
  366. package/dist/types/preset/web/providers/index.d.ts.map +1 -0
  367. package/dist/types/tokens.d.ts +83 -0
  368. package/dist/types/tokens.d.ts.map +1 -0
  369. package/dist/types/utils/axios/index.d.ts +5 -0
  370. package/dist/types/utils/axios/index.d.ts.map +1 -0
  371. package/dist/types/utils/axios/middleware/cookie.d.ts +9 -0
  372. package/dist/types/utils/axios/middleware/cookie.d.ts.map +1 -0
  373. package/dist/types/utils/axios/middleware/log.d.ts +28 -0
  374. package/dist/types/utils/axios/middleware/log.d.ts.map +1 -0
  375. package/dist/types/utils/axios/sauce/index.d.ts +43 -0
  376. package/dist/types/utils/axios/sauce/index.d.ts.map +1 -0
  377. package/dist/types/utils/axios/utils/index.d.ts +10 -0
  378. package/dist/types/utils/axios/utils/index.d.ts.map +1 -0
  379. package/dist/types/utils/express/handler/health-check.d.ts +7 -0
  380. package/dist/types/utils/express/handler/health-check.d.ts.map +1 -0
  381. package/dist/types/utils/express/index.d.ts +3 -0
  382. package/dist/types/utils/express/index.d.ts.map +1 -0
  383. package/dist/types/utils/express/utils/index.d.ts +8 -0
  384. package/dist/types/utils/express/utils/index.d.ts.map +1 -0
  385. package/dist/types/utils/function.d.ts +29 -0
  386. package/dist/types/utils/function.d.ts.map +1 -0
  387. package/dist/types/utils/index.d.ts +3 -0
  388. package/dist/types/utils/index.d.ts.map +1 -0
  389. package/{utils/number.d.ts → dist/types/utils/math.d.ts} +1 -0
  390. package/dist/types/utils/math.d.ts.map +1 -0
  391. package/dist/types/utils/react/error-handlers/index.d.ts +42 -0
  392. package/dist/types/utils/react/error-handlers/index.d.ts.map +1 -0
  393. package/dist/types/utils/react/index.d.ts +3 -0
  394. package/dist/types/utils/react/index.d.ts.map +1 -0
  395. package/dist/types/utils/redux/index.d.ts +4 -0
  396. package/dist/types/utils/redux/index.d.ts.map +1 -0
  397. package/dist/types/utils/redux/remote-data.d.ts +86 -0
  398. package/dist/types/utils/redux/remote-data.d.ts.map +1 -0
  399. package/dist/types/utils/redux-saga/index.d.ts +4 -0
  400. package/dist/types/utils/redux-saga/index.d.ts.map +1 -0
  401. package/dist/types/utils/redux-saga/middleware.d.ts +9 -0
  402. package/dist/types/utils/redux-saga/middleware.d.ts.map +1 -0
  403. package/{utils → dist/types/utils}/redux-saga/take-chain.d.ts +3 -0
  404. package/dist/types/utils/redux-saga/take-chain.d.ts.map +1 -0
  405. package/dist/types/utils/redux-saga/types.d.ts +37 -0
  406. package/dist/types/utils/redux-saga/types.d.ts.map +1 -0
  407. package/dist/types/utils/ssr/index.d.ts +42 -0
  408. package/dist/types/utils/ssr/index.d.ts.map +1 -0
  409. package/dist/types/utils/web/analytics/data-layer.d.ts +6 -0
  410. package/dist/types/utils/web/analytics/data-layer.d.ts.map +1 -0
  411. package/dist/types/utils/web/analytics/index.d.ts +3 -0
  412. package/dist/types/utils/web/analytics/index.d.ts.map +1 -0
  413. package/dist/types/utils/web/analytics/oko.d.ts +7 -0
  414. package/dist/types/utils/web/analytics/oko.d.ts.map +1 -0
  415. package/dist/types/utils/web/storage/index.d.ts +14 -0
  416. package/dist/types/utils/web/storage/index.d.ts.map +1 -0
  417. package/dist/types/utils/webpack/env/index.d.ts +19 -0
  418. package/dist/types/utils/webpack/env/index.d.ts.map +1 -0
  419. package/dist/types/utils/webpack/env/types.d.ts +12 -0
  420. package/dist/types/utils/webpack/env/types.d.ts.map +1 -0
  421. package/dist/types/utils/webpack/env/utils.d.ts +16 -0
  422. package/dist/types/utils/webpack/env/utils.d.ts.map +1 -0
  423. package/dist/types/utils/webpack/index.d.ts +7 -0
  424. package/dist/types/utils/webpack/index.d.ts.map +1 -0
  425. package/{utils → dist/types/utils}/webpack/module-federation/index.d.ts +10 -3
  426. package/dist/types/utils/webpack/module-federation/index.d.ts.map +1 -0
  427. package/{utils → dist/types/utils}/webpack/module-federation/types.d.ts +12 -3
  428. package/dist/types/utils/webpack/module-federation/types.d.ts.map +1 -0
  429. package/{utils → dist/types/utils}/webpack/module-federation/utils.d.ts +7 -0
  430. package/dist/types/utils/webpack/module-federation/utils.d.ts.map +1 -0
  431. package/package.json +295 -48
  432. package/src/cache/index.ts +1 -0
  433. package/src/cache/types.ts +34 -0
  434. package/src/config/base.ts +18 -0
  435. package/src/config/index.ts +3 -0
  436. package/src/config/source.ts +23 -0
  437. package/src/config/types.ts +25 -0
  438. package/src/di/__test__/application.test.ts +258 -0
  439. package/src/di/__test__/container.test.ts +103 -0
  440. package/src/di/__test__/errors.test.ts +56 -0
  441. package/src/di/__test__/preset.test.ts +23 -0
  442. package/src/di/__test__/token.test.ts +25 -0
  443. package/src/di/application.ts +126 -0
  444. package/src/di/container.ts +60 -0
  445. package/src/di/errors.ts +59 -0
  446. package/{di/index.d.ts → src/di/index.ts} +2 -2
  447. package/src/di/preset.ts +32 -0
  448. package/src/di/token.ts +41 -0
  449. package/src/di/types.ts +105 -0
  450. package/src/http/__test__/errors.test.ts +35 -0
  451. package/src/http/errors.ts +42 -0
  452. package/src/http/index.ts +14 -0
  453. package/src/http/types.ts +8 -0
  454. package/src/log/__test__/errors.test.ts +13 -0
  455. package/src/log/__test__/logger.test.ts +24 -0
  456. package/src/log/errors.ts +33 -0
  457. package/src/log/handler/pino.ts +27 -0
  458. package/src/log/handler/sentry.ts +57 -0
  459. package/src/log/index.ts +12 -0
  460. package/src/log/logger.ts +30 -0
  461. package/src/log/types.ts +76 -0
  462. package/src/preset/isomorphic/constants.ts +7 -0
  463. package/src/preset/isomorphic/index.ts +7 -0
  464. package/src/preset/isomorphic/providers/index.ts +40 -0
  465. package/src/preset/isomorphic/types.ts +37 -0
  466. package/src/preset/isomorphic/utils/__test__/index.test.ts +541 -0
  467. package/src/preset/isomorphic/utils/index.ts +349 -0
  468. package/src/preset/node/handler/index.ts +46 -0
  469. package/src/preset/node/handler/providers/index.tsx +214 -0
  470. package/src/preset/node/handler/utils/index.tsx +110 -0
  471. package/src/preset/node/index.ts +3 -0
  472. package/src/preset/node/node/index.ts +73 -0
  473. package/src/preset/node/node/providers/index.ts +434 -0
  474. package/src/preset/node/node/utils/http-client/__test__/index.test.ts +232 -0
  475. package/src/preset/node/node/utils/http-client/index.ts +129 -0
  476. package/src/preset/node/node/utils/http-server/index.ts +17 -0
  477. package/src/preset/node/node/utils/index.ts +2 -0
  478. package/src/preset/node/types.ts +10 -0
  479. package/src/preset/web/index.ts +40 -0
  480. package/src/preset/web/providers/index.ts +108 -0
  481. package/src/tokens.ts +108 -0
  482. package/src/utils/axios/index.ts +12 -0
  483. package/src/utils/axios/middleware/__test__/cookie.test.ts +94 -0
  484. package/src/utils/axios/middleware/__test__/log.test.ts +121 -0
  485. package/src/utils/axios/middleware/cookie.ts +26 -0
  486. package/src/utils/axios/middleware/log.ts +52 -0
  487. package/src/utils/axios/sauce/index.ts +76 -0
  488. package/src/utils/axios/utils/__test__/index.test.ts +89 -0
  489. package/src/utils/axios/utils/index.ts +26 -0
  490. package/src/utils/express/handler/health-check.ts +13 -0
  491. package/src/utils/express/index.ts +2 -0
  492. package/src/utils/express/utils/index.ts +18 -0
  493. package/src/utils/function.ts +57 -0
  494. package/src/utils/index.ts +2 -0
  495. package/src/utils/math.ts +8 -0
  496. package/src/utils/react/error-handlers/__test__/__snapshots__/index.test.tsx.snap +27 -0
  497. package/src/utils/react/error-handlers/__test__/index.test.tsx +63 -0
  498. package/src/utils/react/error-handlers/index.tsx +68 -0
  499. package/src/utils/react/index.ts +3 -0
  500. package/src/utils/redux/__test__/remote-data.test.ts +172 -0
  501. package/src/utils/redux/index.ts +4 -0
  502. package/src/utils/redux/remote-data.ts +138 -0
  503. package/src/utils/redux-saga/__test__/take-chain.test.ts +141 -0
  504. package/src/utils/redux-saga/index.ts +3 -0
  505. package/src/utils/redux-saga/middleware.ts +168 -0
  506. package/src/utils/redux-saga/take-chain.ts +67 -0
  507. package/src/utils/redux-saga/types.ts +43 -0
  508. package/src/utils/ssr/index.tsx +78 -0
  509. package/src/utils/web/analytics/__test__/data-layer.test.ts +50 -0
  510. package/src/utils/web/analytics/__test__/oko.test.ts +50 -0
  511. package/src/utils/web/analytics/data-layer.ts +12 -0
  512. package/src/utils/web/analytics/index.ts +2 -0
  513. package/src/utils/web/analytics/oko.ts +14 -0
  514. package/src/utils/web/storage/index.ts +84 -0
  515. package/src/utils/webpack/env/index.ts +91 -0
  516. package/src/utils/webpack/env/types.ts +14 -0
  517. package/src/utils/webpack/env/utils.ts +53 -0
  518. package/src/utils/webpack/index.ts +7 -0
  519. package/src/utils/webpack/module-federation/__test__/__snapshots__/utils.test.ts.snap +124 -0
  520. package/src/utils/webpack/module-federation/__test__/index.test.ts +311 -0
  521. package/src/utils/webpack/module-federation/__test__/utils.test.ts +28 -0
  522. package/src/utils/webpack/module-federation/index.ts +102 -0
  523. package/src/utils/webpack/module-federation/types.ts +54 -0
  524. package/src/utils/webpack/module-federation/utils.ts +104 -0
  525. package/cache/types.d.ts +0 -7
  526. package/cache/types.js +0 -3
  527. package/cache/types.js.map +0 -1
  528. package/config/base.js +0 -20
  529. package/config/base.js.map +0 -1
  530. package/config/browser.d.ts +0 -6
  531. package/config/browser.js +0 -13
  532. package/config/browser.js.map +0 -1
  533. package/config/node.d.ts +0 -6
  534. package/config/node.js +0 -19
  535. package/config/node.js.map +0 -1
  536. package/config/types.d.ts +0 -7
  537. package/config/types.js +0 -3
  538. package/config/types.js.map +0 -1
  539. package/config/utils.d.ts +0 -5
  540. package/config/utils.js +0 -12
  541. package/config/utils.js.map +0 -1
  542. package/di/application.js +0 -71
  543. package/di/application.js.map +0 -1
  544. package/di/container.js +0 -49
  545. package/di/container.js.map +0 -1
  546. package/di/errors.d.ts +0 -21
  547. package/di/errors.js +0 -33
  548. package/di/errors.js.map +0 -1
  549. package/di/index.js +0 -16
  550. package/di/index.js.map +0 -1
  551. package/di/preset.d.ts +0 -9
  552. package/di/preset.js +0 -25
  553. package/di/preset.js.map +0 -1
  554. package/di/token.js +0 -17
  555. package/di/token.js.map +0 -1
  556. package/di/types.d.ts +0 -32
  557. package/di/types.js +0 -3
  558. package/di/types.js.map +0 -1
  559. package/error-tracker/browser.d.ts +0 -8
  560. package/error-tracker/browser.js +0 -40
  561. package/error-tracker/browser.js.map +0 -1
  562. package/error-tracker/node.d.ts +0 -8
  563. package/error-tracker/node.js +0 -40
  564. package/error-tracker/node.js.map +0 -1
  565. package/error-tracker/types.d.ts +0 -18
  566. package/error-tracker/types.js +0 -3
  567. package/error-tracker/types.js.map +0 -1
  568. package/error-tracker/utils.d.ts +0 -12
  569. package/error-tracker/utils.js +0 -19
  570. package/error-tracker/utils.js.map +0 -1
  571. package/http-client/middleware/cookie.d.ts +0 -19
  572. package/http-client/middleware/cookie.js +0 -62
  573. package/http-client/middleware/cookie.js.map +0 -1
  574. package/http-client/middleware/tracing.js +0 -67
  575. package/http-client/middleware/tracing.js.map +0 -1
  576. package/http-client/sauce/index.d.ts +0 -27
  577. package/http-client/sauce/index.js +0 -33
  578. package/http-client/sauce/index.js.map +0 -1
  579. package/http-client/types.d.ts +0 -6
  580. package/http-client/types.js +0 -3
  581. package/http-client/types.js.map +0 -1
  582. package/http-client/utils.d.ts +0 -9
  583. package/http-client/utils.js +0 -20
  584. package/http-client/utils.js.map +0 -1
  585. package/http-server/constants.d.ts +0 -4
  586. package/http-server/constants.js +0 -8
  587. package/http-server/constants.js.map +0 -1
  588. package/http-server/handler/health-check.d.ts +0 -6
  589. package/http-server/handler/health-check.js +0 -15
  590. package/http-server/handler/health-check.js.map +0 -1
  591. package/http-server/middleware/logging.d.ts +0 -10
  592. package/http-server/middleware/logging.js +0 -31
  593. package/http-server/middleware/logging.js.map +0 -1
  594. package/http-server/middleware/metrics.d.ts +0 -23
  595. package/http-server/middleware/metrics.js +0 -60
  596. package/http-server/middleware/metrics.js.map +0 -1
  597. package/http-server/middleware/tracing.d.ts +0 -14
  598. package/http-server/middleware/tracing.js +0 -51
  599. package/http-server/middleware/tracing.js.map +0 -1
  600. package/http-server/template/index.d.ts +0 -1
  601. package/http-server/template/index.js +0 -36
  602. package/http-server/template/index.js.map +0 -1
  603. package/http-server/types.d.ts +0 -33
  604. package/http-server/types.js +0 -3
  605. package/http-server/types.js.map +0 -1
  606. package/http-server/utils.d.ts +0 -30
  607. package/http-server/utils.js +0 -100
  608. package/http-server/utils.js.map +0 -1
  609. package/logger/handler/console.d.ts +0 -8
  610. package/logger/handler/console.js +0 -36
  611. package/logger/handler/console.js.map +0 -1
  612. package/logger/handler/sentry.d.ts +0 -8
  613. package/logger/handler/sentry.js +0 -36
  614. package/logger/handler/sentry.js.map +0 -1
  615. package/logger/index.js +0 -31
  616. package/logger/index.js.map +0 -1
  617. package/logger/types.d.ts +0 -24
  618. package/logger/types.js +0 -3
  619. package/logger/types.js.map +0 -1
  620. package/metrics/constants.d.ts +0 -4
  621. package/metrics/constants.js +0 -8
  622. package/metrics/constants.js.map +0 -1
  623. package/metrics/node.d.ts +0 -18
  624. package/metrics/node.js +0 -74
  625. package/metrics/node.js.map +0 -1
  626. package/preset/node/index.d.ts +0 -19
  627. package/preset/node/index.js +0 -121
  628. package/preset/node/index.js.map +0 -1
  629. package/preset/node/response.d.ts +0 -15
  630. package/preset/node/response.js +0 -77
  631. package/preset/node/response.js.map +0 -1
  632. package/saga-runner/index.d.ts +0 -8
  633. package/saga-runner/index.js +0 -79
  634. package/saga-runner/index.js.map +0 -1
  635. package/saga-runner/types.d.ts +0 -10
  636. package/saga-runner/types.js +0 -3
  637. package/saga-runner/types.js.map +0 -1
  638. package/tokens.d.ts +0 -48
  639. package/tokens.js +0 -49
  640. package/tokens.js.map +0 -1
  641. package/tracing/utils.d.ts +0 -9
  642. package/tracing/utils.js +0 -22
  643. package/tracing/utils.js.map +0 -1
  644. package/utils/browser/analytics/data-layer.d.ts +0 -5
  645. package/utils/browser/analytics/data-layer.js +0 -15
  646. package/utils/browser/analytics/data-layer.js.map +0 -1
  647. package/utils/browser/analytics/oko.d.ts +0 -12
  648. package/utils/browser/analytics/oko.js +0 -39
  649. package/utils/browser/analytics/oko.js.map +0 -1
  650. package/utils/browser/storage/index.d.ts +0 -4
  651. package/utils/browser/storage/index.js +0 -63
  652. package/utils/browser/storage/index.js.map +0 -1
  653. package/utils/number.js.map +0 -1
  654. package/utils/react/error-handlers/index.d.ts +0 -38
  655. package/utils/react/error-handlers/index.js +0 -47
  656. package/utils/react/error-handlers/index.js.map +0 -1
  657. package/utils/redux/remote-data.d.ts +0 -23
  658. package/utils/redux/remote-data.js +0 -28
  659. package/utils/redux/remote-data.js.map +0 -1
  660. package/utils/redux-saga/take-chain.js +0 -56
  661. package/utils/redux-saga/take-chain.js.map +0 -1
  662. package/utils/webpack/module-federation/index.js +0 -74
  663. package/utils/webpack/module-federation/index.js.map +0 -1
  664. package/utils/webpack/module-federation/types.js +0 -3
  665. package/utils/webpack/module-federation/types.js.map +0 -1
  666. package/utils/webpack/module-federation/utils.js +0 -36
  667. package/utils/webpack/module-federation/utils.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ import { createPreset } from "./../../../di/index.js";
2
+ import { KnownToken } from "../../../tokens.js";
3
+ import { provideSagaMiddleware, provideHttpClientLogHandler } from "./../../isomorphic/providers/index.js";
4
+ import { provideHttpClientFactory, provideHandlerMain, provideSpecificParams, providePageHelmet, providePageRender } from "./providers/index.js";
5
+ import { SpecificExtras } from "./utils/index.js";
6
+
7
+ /**
8
+ * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.
9
+ * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
10
+ * @todo Возможно стоит переименовать в PresetPageHandler.
11
+ * @return Preset.
12
+ */
13
+ export function PresetHandler(customize) {
14
+ // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
15
+ const preset = createPreset();
16
+
17
+ // saga
18
+ preset.set(KnownToken.sagaMiddleware, provideSagaMiddleware);
19
+
20
+ // http client
21
+ preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);
22
+ preset.set(KnownToken.Http.Client.Middleware.Log.handler, provideHttpClientLogHandler);
23
+
24
+ // http handler
25
+ preset.set(KnownToken.Http.Handler.main, provideHandlerMain);
26
+ preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);
27
+ preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());
28
+ preset.set(KnownToken.Http.Handler.Page.assets, () => ({
29
+ js: '',
30
+ css: ''
31
+ }));
32
+ preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);
33
+ preset.set(KnownToken.Http.Handler.Page.render, providePageRender);
34
+ if (customize) {
35
+ customize({
36
+ override: preset.set.bind(preset)
37
+ });
38
+ }
39
+ return preset;
40
+ }
41
+ export { HandlerProvider } from "./utils/index.js";
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createPreset","KnownToken","provideSagaMiddleware","provideHttpClientLogHandler","provideHttpClientFactory","provideHandlerMain","provideSpecificParams","providePageHelmet","providePageRender","SpecificExtras","PresetHandler","customize","preset","set","sagaMiddleware","Http","Client","factory","Middleware","Log","handler","Handler","main","Request","specificParams","Response","specificExtras","Page","assets","js","css","helmet","render","override","bind","HandlerProvider"],"sources":["../../../../../src/preset/node/handler/index.ts"],"sourcesContent":["import { Preset, createPreset } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { provideSagaMiddleware, provideHttpClientLogHandler } from '../../isomorphic/providers';\nimport { PresetTuner } from '../../isomorphic/types';\nimport {\n provideHttpClientFactory,\n provideHandlerMain,\n provideSpecificParams,\n providePageHelmet,\n providePageRender,\n} from './providers';\nimport { SpecificExtras } from './utils';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для работы в рамках ответа на http-запрос.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @todo Возможно стоит переименовать в PresetPageHandler.\n * @return Preset.\n */\nexport function PresetHandler(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // saga\n preset.set(KnownToken.sagaMiddleware, provideSagaMiddleware);\n\n // http client\n preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);\n preset.set(KnownToken.Http.Client.Middleware.Log.handler, provideHttpClientLogHandler);\n\n // http handler\n preset.set(KnownToken.Http.Handler.main, provideHandlerMain);\n preset.set(KnownToken.Http.Handler.Request.specificParams, provideSpecificParams);\n preset.set(KnownToken.Http.Handler.Response.specificExtras, () => new SpecificExtras());\n preset.set(KnownToken.Http.Handler.Page.assets, () => ({ js: '', css: '' }));\n preset.set(KnownToken.Http.Handler.Page.helmet, providePageHelmet);\n preset.set(KnownToken.Http.Handler.Page.render, providePageRender);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport { HandlerProvider } from './utils';\n"],"mappings":"AAAA,SAAiBA,YAAY,QAAQ,wBAAa;AAClD,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,qBAAqB,EAAEC,2BAA2B,QAAQ,uCAA4B;AAE/F,SACEC,wBAAwB,EACxBC,kBAAkB,EAClBC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,QACZ,sBAAa;AACpB,SAASC,cAAc,QAAQ,kBAAS;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,SAAuB,EAAU;EAC7D;EACA,MAAMC,MAAM,GAAGZ,YAAY,CAAC,CAAC;;EAE7B;EACAY,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACa,cAAc,EAAEZ,qBAAqB,CAAC;;EAE5D;EACAU,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACC,MAAM,CAACC,OAAO,EAAEb,wBAAwB,CAAC;EACpEQ,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACC,MAAM,CAACE,UAAU,CAACC,GAAG,CAACC,OAAO,EAAEjB,2BAA2B,CAAC;;EAEtF;EACAS,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACC,IAAI,EAAEjB,kBAAkB,CAAC;EAC5DO,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACE,OAAO,CAACC,cAAc,EAAElB,qBAAqB,CAAC;EACjFM,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACI,QAAQ,CAACC,cAAc,EAAE,MAAM,IAAIjB,cAAc,CAAC,CAAC,CAAC;EACvFG,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACC,MAAM,EAAE,OAAO;IAAEC,EAAE,EAAE,EAAE;IAAEC,GAAG,EAAE;EAAG,CAAC,CAAC,CAAC;EAC5ElB,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACI,MAAM,EAAExB,iBAAiB,CAAC;EAClEK,MAAM,CAACC,GAAG,CAACZ,UAAU,CAACc,IAAI,CAACM,OAAO,CAACM,IAAI,CAACK,MAAM,EAAExB,iBAAiB,CAAC;EAElE,IAAIG,SAAS,EAAE;IACbA,SAAS,CAAC;MAAEsB,QAAQ,EAAErB,MAAM,CAACC,GAAG,CAACqB,IAAI,CAACtB,MAAM;IAAE,CAAC,CAAC;EAClD;EAEA,OAAOA,MAAM;AACf;AAEA,SAASuB,eAAe,QAAQ,kBAAS"}
@@ -0,0 +1,194 @@
1
+ import * as React from 'react';
2
+ import { ResponseError, createCookieStore } from "./../../../../http/index.js";
3
+ import { KnownToken } from "../../../../tokens.js";
4
+ import { getRequestHeaders, tracingMiddleware } from "./../../node/utils/http-client/index.js";
5
+ import { create } from 'middleware-axios';
6
+ import { HttpStatus } from "./../../../isomorphic/utils/index.js";
7
+ import { cookieMiddleware, logMiddleware } from "./../../../../utils/axios/index.js";
8
+ import { RESPONSE_EVENT_TYPE } from "../../../isomorphic/constants.js";
9
+ import { Fragment } from 'react';
10
+ import { HelmetContext, RegularHelmet, getResponseFormat } from "./../utils/index.js";
11
+ import { renderToString } from 'react-dom/server';
12
+
13
+ /**
14
+ * Провайдер фабрики http-клиентов.
15
+ * @param resolve Функция для получения зависимости по токену.
16
+ * @return Фабрика.
17
+ */
18
+ export function provideHttpClientFactory(resolve) {
19
+ // @todo а что если привести все зависимости к виду:
20
+ // const getAppConfig = resolve.lazy(KnownToken.Config.base);
21
+
22
+ const appConfig = resolve(KnownToken.Config.base);
23
+ const tracer = resolve(KnownToken.Tracing.tracer);
24
+ const context = resolve(KnownToken.Http.Handler.context);
25
+ const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);
26
+
27
+ // @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)
28
+ // можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)
29
+ // const controller = new AbortController();
30
+ // context.res.on('finish', () => {
31
+ // controller.abort();
32
+ // });
33
+
34
+ // ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie
35
+ const cookieStore = createCookieStore(context.req.header('cookie'));
36
+ cookieStore.subscribe(() => {
37
+ if (!context.res.writableEnded) {
38
+ context.res.setHeader('cookie', cookieStore.getCookies());
39
+ }
40
+ });
41
+ const defaultHeaders = getRequestHeaders(appConfig, context.req);
42
+ return (config = {}) => {
43
+ const client = create({
44
+ ...config,
45
+ headers: {
46
+ ...defaultHeaders,
47
+ // @todo убрать as any
48
+ ...config.headers
49
+ }
50
+ });
51
+ client.use(HttpStatus.axiosMiddleware());
52
+ client.use(tracingMiddleware(tracer, context.res.locals.tracing.rootContext));
53
+ client.use(logMiddleware(logHandler));
54
+ client.use(cookieMiddleware(cookieStore));
55
+ return client;
56
+ };
57
+ }
58
+
59
+ /**
60
+ * Провайдер главной функции обработчика входящего http-запроса.
61
+ * @param resolve Функция для получения зависимости по токену.
62
+ * @return Главная функция.
63
+ */
64
+ export function provideHandlerMain(resolve) {
65
+ const config = resolve(KnownToken.Config.base);
66
+ const logger = resolve(KnownToken.logger);
67
+ const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);
68
+ const render = resolve(KnownToken.Http.Handler.Page.render);
69
+ const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);
70
+ const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);
71
+ const {
72
+ req,
73
+ res
74
+ } = resolve(KnownToken.Http.Handler.context);
75
+ const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;
76
+
77
+ /**
78
+ * Рендер JSX-элемента в строку.
79
+ * @param element Элемент.
80
+ * @return Строка.
81
+ */
82
+ const elementToString = element => {
83
+ res.emit(RESPONSE_EVENT_TYPE.renderStart);
84
+ const result = renderToString(element);
85
+ res.emit(RESPONSE_EVENT_TYPE.renderFinish);
86
+ return result;
87
+ };
88
+ return async () => {
89
+ try {
90
+ const assets = await getAssets();
91
+ const meta = extras.getMeta();
92
+ const jsx = /*#__PURE__*/React.createElement(HelmetContext.Provider, {
93
+ value: {
94
+ title: config.appName,
95
+ assets
96
+ }
97
+ }, /*#__PURE__*/React.createElement(Helmet, null, await render()));
98
+ switch (getResponseFormat(req)) {
99
+ case 'html':
100
+ {
101
+ res.setHeader('simaland-bundle-js', assets.js);
102
+ res.setHeader('simaland-bundle-css', assets.css);
103
+ if (assets.criticalJs) {
104
+ res.setHeader('simaland-critical-js', assets.criticalJs);
105
+ }
106
+ if (assets.criticalCss) {
107
+ res.setHeader('simaland-critical-css', assets.criticalCss);
108
+ }
109
+ if (meta) {
110
+ res.setHeader('simaland-meta', JSON.stringify(meta));
111
+ }
112
+
113
+ // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css
114
+ // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу
115
+ if (config.env === 'development') {
116
+ res.send(`<!DOCTYPE html>${elementToString(jsx)}`);
117
+ } else {
118
+ res.send(elementToString(jsx));
119
+ }
120
+ break;
121
+ }
122
+ case 'json':
123
+ {
124
+ res.json({
125
+ markup: elementToString(jsx),
126
+ bundle_js: assets.js,
127
+ bundle_css: assets.css,
128
+ critical_js: assets.criticalJs,
129
+ critical_css: assets.criticalCss,
130
+ meta
131
+ });
132
+ break;
133
+ }
134
+ }
135
+ } catch (error) {
136
+ let message;
137
+ let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500
138
+
139
+ if (error instanceof Error) {
140
+ message = error.message;
141
+ if (error instanceof ResponseError) {
142
+ statusCode = error.statusCode;
143
+ }
144
+ } else {
145
+ message = String(error);
146
+ }
147
+ res.status(statusCode).send(message);
148
+ logger.error(error);
149
+ }
150
+ };
151
+ }
152
+
153
+ /**
154
+ * Провайдер render-функции.
155
+ * @return Render-Функция.
156
+ */
157
+ export function providePageRender() {
158
+ return () => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Hello, world!"), /*#__PURE__*/React.createElement("p", null, "This is a stub page. Define the render component in your handler"));
159
+ }
160
+
161
+ /**
162
+ * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.
163
+ * @param resolve Функция для получения зависимости по токену.
164
+ * @return Helmet-компонент.
165
+ */
166
+ export function providePageHelmet(resolve) {
167
+ const config = resolve(KnownToken.Config.base);
168
+ const {
169
+ req
170
+ } = resolve(KnownToken.Http.Handler.context);
171
+ return config.env === 'development' && getResponseFormat(req) === 'html' ? RegularHelmet : Fragment;
172
+ }
173
+
174
+ /**
175
+ * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.
176
+ * @param resolve Функция для получения зависимости по токену.
177
+ * @return Параметры.
178
+ */
179
+ export function provideSpecificParams(resolve) {
180
+ const context = resolve(KnownToken.Http.Handler.context);
181
+ try {
182
+ const headerValue = context.req.header('simaland-params');
183
+
184
+ /**
185
+ * Node.js переводит в ASCII.
186
+ * @see {https://github.com/nodejs/node/issues/17390}
187
+ */
188
+ const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';
189
+ return processedValue ? JSON.parse(processedValue) : {};
190
+ } catch {
191
+ return {};
192
+ }
193
+ }
194
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ResponseError","createCookieStore","KnownToken","getRequestHeaders","tracingMiddleware","create","HttpStatus","cookieMiddleware","logMiddleware","RESPONSE_EVENT_TYPE","Fragment","HelmetContext","RegularHelmet","getResponseFormat","renderToString","provideHttpClientFactory","resolve","appConfig","Config","base","tracer","Tracing","context","Http","Handler","logHandler","Client","Middleware","Log","handler","cookieStore","req","header","subscribe","res","writableEnded","setHeader","getCookies","defaultHeaders","config","client","headers","use","axiosMiddleware","locals","tracing","rootContext","provideHandlerMain","logger","assetsInit","Page","assets","render","extras","Response","specificExtras","Helmet","helmet","getAssets","elementToString","element","emit","renderStart","result","renderFinish","meta","getMeta","jsx","React","createElement","Provider","value","title","appName","js","css","criticalJs","criticalCss","JSON","stringify","env","send","json","markup","bundle_js","bundle_css","critical_js","critical_css","error","message","statusCode","Error","String","status","providePageRender","providePageHelmet","provideSpecificParams","headerValue","processedValue","Buffer","from","toString","parse"],"sources":["../../../../../../src/preset/node/handler/providers/index.tsx"],"sourcesContent":["import { ResponseError, createCookieStore } from '../../../../http';\nimport { Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\nimport { getRequestHeaders, tracingMiddleware } from '../../node/utils/http-client';\nimport { CreateAxiosDefaults } from 'axios';\nimport { create } from 'middleware-axios';\nimport { HttpStatus } from '../../../isomorphic/utils';\nimport { cookieMiddleware, logMiddleware } from '../../../../utils/axios';\nimport { RESPONSE_EVENT_TYPE } from '../../../isomorphic/constants';\nimport { ConventionalJson } from '../../../isomorphic/types';\nimport { Fragment } from 'react';\nimport { HelmetContext, RegularHelmet, getResponseFormat } from '../utils';\nimport { renderToString } from 'react-dom/server';\n\n/**\n * Провайдер фабрики http-клиентов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Фабрика.\n */\nexport function provideHttpClientFactory(resolve: Resolve) {\n // @todo а что если привести все зависимости к виду:\n // const getAppConfig = resolve.lazy(KnownToken.Config.base);\n\n const appConfig = resolve(KnownToken.Config.base);\n const tracer = resolve(KnownToken.Tracing.tracer);\n const context = resolve(KnownToken.Http.Handler.context);\n const logHandler = resolve(KnownToken.Http.Client.Middleware.Log.handler);\n\n // @todo добавить при необходимости (но тогда в логе будет значительно больше ошибок)\n // можно не отсылать ошибки из клиента если ответ от сервера уже ушел (writableEnded)\n // const controller = new AbortController();\n // context.res.on('finish', () => {\n // controller.abort();\n // });\n\n // ВАЖНО: для всех клиентов в рамках обработчика должно быть одно хранилище cookie\n const cookieStore = createCookieStore(context.req.header('cookie'));\n\n cookieStore.subscribe(() => {\n if (!context.res.writableEnded) {\n context.res.setHeader('cookie', cookieStore.getCookies());\n }\n });\n\n const defaultHeaders = getRequestHeaders(appConfig, context.req);\n\n return (config: CreateAxiosDefaults = {}) => {\n const client = create({\n ...config,\n headers: {\n ...defaultHeaders,\n\n // @todo убрать as any\n ...(config.headers as any),\n },\n });\n\n client.use(HttpStatus.axiosMiddleware());\n client.use(tracingMiddleware(tracer, context.res.locals.tracing.rootContext));\n client.use(logMiddleware(logHandler));\n client.use(cookieMiddleware(cookieStore));\n\n return client;\n };\n}\n\n/**\n * Провайдер главной функции обработчика входящего http-запроса.\n * @param resolve Функция для получения зависимости по токену.\n * @return Главная функция.\n */\nexport function provideHandlerMain(resolve: Resolve): VoidFunction {\n const config = resolve(KnownToken.Config.base);\n const logger = resolve(KnownToken.logger);\n const assetsInit = resolve(KnownToken.Http.Handler.Page.assets);\n const render = resolve(KnownToken.Http.Handler.Page.render);\n const extras = resolve(KnownToken.Http.Handler.Response.specificExtras);\n const Helmet = resolve(KnownToken.Http.Handler.Page.helmet);\n const { req, res } = resolve(KnownToken.Http.Handler.context);\n\n const getAssets = typeof assetsInit === 'function' ? assetsInit : () => assetsInit;\n\n /**\n * Рендер JSX-элемента в строку.\n * @param element Элемент.\n * @return Строка.\n */\n const elementToString = (element: JSX.Element) => {\n res.emit(RESPONSE_EVENT_TYPE.renderStart);\n const result = renderToString(element);\n res.emit(RESPONSE_EVENT_TYPE.renderFinish);\n\n return result;\n };\n\n return async () => {\n try {\n const assets = await getAssets();\n const meta = extras.getMeta();\n\n const jsx = (\n <HelmetContext.Provider value={{ title: config.appName, assets }}>\n <Helmet>{await render()}</Helmet>\n </HelmetContext.Provider>\n );\n\n switch (getResponseFormat(req)) {\n case 'html': {\n res.setHeader('simaland-bundle-js', assets.js);\n res.setHeader('simaland-bundle-css', assets.css);\n\n if (assets.criticalJs) {\n res.setHeader('simaland-critical-js', assets.criticalJs);\n }\n\n if (assets.criticalCss) {\n res.setHeader('simaland-critical-css', assets.criticalCss);\n }\n\n if (meta) {\n res.setHeader('simaland-meta', JSON.stringify(meta));\n }\n\n // ВАЖНО: DOCTYPE обязательно нужен так как влияет на то как браузер будет парсить html/css\n // ВАЖНО: DOCTYPE нужен только когда отдаем полноценную страницу\n if (config.env === 'development') {\n res.send(`<!DOCTYPE html>${elementToString(jsx)}`);\n } else {\n res.send(elementToString(jsx));\n }\n break;\n }\n\n case 'json': {\n res.json({\n markup: elementToString(jsx),\n bundle_js: assets.js,\n bundle_css: assets.css,\n critical_js: assets.criticalJs,\n critical_css: assets.criticalCss,\n meta,\n } satisfies ConventionalJson);\n break;\n }\n }\n } catch (error) {\n let message;\n let statusCode = 500; // по умолчанию, если на этапе подготовки страницы что-то не так, отдаем 500\n\n if (error instanceof Error) {\n message = error.message;\n\n if (error instanceof ResponseError) {\n statusCode = error.statusCode;\n }\n } else {\n message = String(error);\n }\n\n res.status(statusCode).send(message);\n logger.error(error);\n }\n };\n}\n\n/**\n * Провайдер render-функции.\n * @return Render-Функция.\n */\nexport function providePageRender() {\n return () => (\n <>\n <h1>Hello, world!</h1>\n <p>This is a stub page. Define the render component in your handler</p>\n </>\n );\n}\n\n/**\n * Провайдер helmet-компонента. Этот компонент является контейнером для результата render-функции.\n * @param resolve Функция для получения зависимости по токену.\n * @return Helmet-компонент.\n */\nexport function providePageHelmet(resolve: Resolve) {\n const config = resolve(KnownToken.Config.base);\n const { req } = resolve(KnownToken.Http.Handler.context);\n\n return config.env === 'development' && getResponseFormat(req) === 'html'\n ? RegularHelmet\n : Fragment;\n}\n\n/**\n * Провайдер специфичных параметров, которые frontend-микросервис будет получать в запросе.\n * @param resolve Функция для получения зависимости по токену.\n * @return Параметры.\n */\nexport function provideSpecificParams(resolve: Resolve): Record<string, unknown> {\n const context = resolve(KnownToken.Http.Handler.context);\n\n try {\n const headerValue = context.req.header('simaland-params');\n\n /**\n * Node.js переводит в ASCII.\n * @see {https://github.com/nodejs/node/issues/17390}\n */\n const processedValue = headerValue ? Buffer.from(headerValue, 'binary').toString('utf8') : '';\n\n return processedValue ? JSON.parse(processedValue) : {};\n } catch {\n return {};\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import * as React from 'react';
2
+ import { createContext, useContext } from 'react';
3
+ import { CURRENT_APP } from "./../../../../di/index.js";
4
+ import { KnownToken } from "../../../../tokens.js";
5
+ export const HelmetContext = /*#__PURE__*/createContext({});
6
+ const resetCSS = `
7
+ * {
8
+ box-sizing: border-box;
9
+ }
10
+ body {
11
+ font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,Arial,sans-serif;
12
+ margin: 0;
13
+ }
14
+ `;
15
+
16
+ /**
17
+ * Простой Helmet-компонент.
18
+ * Выведет html, head и body.
19
+ * @param props Свойства.
20
+ * @return Элемент.
21
+ */
22
+ export function RegularHelmet({
23
+ children
24
+ }) {
25
+ const {
26
+ title,
27
+ assets
28
+ } = useContext(HelmetContext);
29
+ return /*#__PURE__*/React.createElement("html", null, /*#__PURE__*/React.createElement("head", null, /*#__PURE__*/React.createElement("meta", {
30
+ charSet: "UTF-8"
31
+ }), /*#__PURE__*/React.createElement("meta", {
32
+ httpEquiv: "X-UA-Compatible",
33
+ content: "IE=edge"
34
+ }), /*#__PURE__*/React.createElement("meta", {
35
+ name: "viewport",
36
+ content: "width=device-width, initial-scale=1"
37
+ }), /*#__PURE__*/React.createElement("title", null, title ?? 'Document'), /*#__PURE__*/React.createElement("link", {
38
+ href: "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap",
39
+ rel: "stylesheet"
40
+ }), /*#__PURE__*/React.createElement("style", {
41
+ dangerouslySetInnerHTML: {
42
+ __html: resetCSS
43
+ }
44
+ }), assets?.criticalCss && /*#__PURE__*/React.createElement("link", {
45
+ rel: "stylesheet",
46
+ href: assets.criticalCss
47
+ }), assets?.css && /*#__PURE__*/React.createElement("link", {
48
+ rel: "stylesheet",
49
+ href: assets.css
50
+ }), assets?.criticalJs && /*#__PURE__*/React.createElement("script", {
51
+ src: assets.criticalJs
52
+ })), /*#__PURE__*/React.createElement("body", null, children, assets?.js && /*#__PURE__*/React.createElement("script", {
53
+ src: assets.js
54
+ })));
55
+ }
56
+
57
+ /**
58
+ * Специфичные для наших микросервисов дополнительные данные ответа.
59
+ */
60
+ export class SpecificExtras {
61
+ /**
62
+ * Установит мета-данные.
63
+ * @param meta Данные.
64
+ * @return Контекст.
65
+ */
66
+ setMeta(meta) {
67
+ this._meta = meta;
68
+ return this;
69
+ }
70
+
71
+ /**
72
+ * Вернет установленные мета-данные.
73
+ * @return Данные.
74
+ */
75
+ getMeta() {
76
+ return this._meta;
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Определит формат ответа.
82
+ * @param req Запрос.
83
+ * @return Формат.
84
+ */
85
+ export function getResponseFormat(req) {
86
+ let result = 'html';
87
+ if ((req.header('accept') || '').toLowerCase().includes('application/json')) {
88
+ result = 'json';
89
+ }
90
+ return result;
91
+ }
92
+
93
+ /**
94
+ * Возвращает express-handler, создающий дочернее di-приложение при запросе.
95
+ * @param getApp Должна вернуть di-приложения запроса.
96
+ * @return Обработчик.
97
+ */
98
+ export function HandlerProvider(getApp) {
99
+ return function provider(resolve) {
100
+ const parent = resolve(CURRENT_APP);
101
+ return function handler(req, res, next) {
102
+ const app = getApp();
103
+ app.attach(parent);
104
+ app.bind(KnownToken.Http.Handler.context).toValue({
105
+ req,
106
+ res,
107
+ next
108
+ });
109
+ app.get(KnownToken.Http.Handler.main)();
110
+ };
111
+ };
112
+ }
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createContext","useContext","CURRENT_APP","KnownToken","HelmetContext","resetCSS","RegularHelmet","children","title","assets","React","createElement","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","provider","resolve","parent","handler","res","next","app","attach","bind","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return function provider(resolve: Resolve): Handler {\n const parent = resolve(CURRENT_APP);\n\n return function handler(req, res, next) {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { PresetNode } from "./node/index.js";
2
+ export { PresetHandler, HandlerProvider } from "./handler/index.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["PresetNode","PresetHandler","HandlerProvider"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["export type { HandlerContext } from './types';\nexport { PresetNode } from './node';\nexport { PresetHandler, HandlerProvider } from './handler';\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,iBAAQ;AACnC,SAASC,aAAa,EAAEC,eAAe,QAAQ,oBAAW"}
@@ -0,0 +1,56 @@
1
+ import { KnownToken } from "../../../tokens.js";
2
+ import { provideBaseConfig } from "./../../isomorphic/providers/index.js";
3
+ import { createPreset } from "./../../../di/index.js";
4
+ import { healthCheck } from "../../../utils/express/handler/health-check.js";
5
+ import { provideConfigSource, provideHttpClientFactory, provideHttpServerErrorMiddleware, provideHttpServerFactory, provideHttpServerLogMiddleware, provideHttpServerMetricsMiddleware, provideHttpServerRequestMiddleware, provideHttpServerTracingMiddleware, provideKnownHttpApiHosts, provideLogger, provideMetricsHttpApp, provideSpanExporter, provideSsrBridgeServerSide, provideTracer, provideTracerProvider, provideTracerProviderResource } from "./providers/index.js";
6
+
7
+ /**
8
+ * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.
9
+ * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.
10
+ * @return Preset.
11
+ */
12
+ export function PresetNode(customize) {
13
+ // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости
14
+ const preset = createPreset();
15
+
16
+ // config
17
+ preset.set(KnownToken.Config.source, provideConfigSource);
18
+ preset.set(KnownToken.Config.base, provideBaseConfig);
19
+
20
+ // log
21
+ preset.set(KnownToken.logger, provideLogger);
22
+
23
+ // tracing
24
+ preset.set(KnownToken.Tracing.tracer, provideTracer);
25
+ preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);
26
+ preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);
27
+ preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);
28
+
29
+ // metrics
30
+ preset.set(KnownToken.Metrics.httpApp, provideMetricsHttpApp);
31
+
32
+ // http client
33
+ preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);
34
+
35
+ // http server
36
+ preset.set(KnownToken.Http.Server.factory, provideHttpServerFactory);
37
+ preset.set(KnownToken.Http.Server.Handlers.healthCheck, healthCheck);
38
+ preset.set(KnownToken.Http.Server.Middleware.request, provideHttpServerRequestMiddleware);
39
+ preset.set(KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);
40
+ preset.set(KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);
41
+ preset.set(KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);
42
+ preset.set(KnownToken.Http.Server.Middleware.error, provideHttpServerErrorMiddleware);
43
+
44
+ // http api
45
+ preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);
46
+
47
+ // ssr bridge
48
+ preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);
49
+ if (customize) {
50
+ customize({
51
+ override: preset.set.bind(preset)
52
+ });
53
+ }
54
+ return preset;
55
+ }
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["KnownToken","provideBaseConfig","createPreset","healthCheck","provideConfigSource","provideHttpClientFactory","provideHttpServerErrorMiddleware","provideHttpServerFactory","provideHttpServerLogMiddleware","provideHttpServerMetricsMiddleware","provideHttpServerRequestMiddleware","provideHttpServerTracingMiddleware","provideKnownHttpApiHosts","provideLogger","provideMetricsHttpApp","provideSpanExporter","provideSsrBridgeServerSide","provideTracer","provideTracerProvider","provideTracerProviderResource","PresetNode","customize","preset","set","Config","source","base","logger","Tracing","tracer","spanExporter","tracerProvider","tracerProviderResource","Metrics","httpApp","Http","Client","factory","Server","Handlers","Middleware","request","log","metrics","tracing","error","Api","knownHosts","SsrBridge","serverSide","override","bind"],"sources":["../../../../../src/preset/node/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../../tokens';\nimport { provideBaseConfig } from '../../isomorphic/providers';\nimport { Preset, createPreset } from '../../../di';\nimport { PresetTuner } from '../../isomorphic/types';\nimport { healthCheck } from '../../../utils/express/handler/health-check';\nimport {\n provideConfigSource,\n provideHttpClientFactory,\n provideHttpServerErrorMiddleware,\n provideHttpServerFactory,\n provideHttpServerLogMiddleware,\n provideHttpServerMetricsMiddleware,\n provideHttpServerRequestMiddleware,\n provideHttpServerTracingMiddleware,\n provideKnownHttpApiHosts,\n provideLogger,\n provideMetricsHttpApp,\n provideSpanExporter,\n provideSsrBridgeServerSide,\n provideTracer,\n provideTracerProvider,\n provideTracerProviderResource,\n} from './providers';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);\n preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);\n\n // metrics\n preset.set(KnownToken.Metrics.httpApp, provideMetricsHttpApp);\n\n // http client\n preset.set(KnownToken.Http.Client.factory, provideHttpClientFactory);\n\n // http server\n preset.set(KnownToken.Http.Server.factory, provideHttpServerFactory);\n preset.set(KnownToken.Http.Server.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Http.Server.Middleware.request, provideHttpServerRequestMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.log, provideHttpServerLogMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.metrics, provideHttpServerMetricsMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.tracing, provideHttpServerTracingMiddleware);\n preset.set(KnownToken.Http.Server.Middleware.error, provideHttpServerErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n"],"mappings":"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"}