@modern-js/server-core 2.69.5 → 3.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 (358) hide show
  1. package/dist/cjs/adapters/node/helper/index.js +52 -39
  2. package/dist/cjs/adapters/node/helper/loadCache.js +52 -47
  3. package/dist/cjs/adapters/node/helper/loadConfig.js +69 -85
  4. package/dist/cjs/adapters/node/helper/loadEnv.js +60 -50
  5. package/dist/cjs/adapters/node/helper/loadPlugin.js +40 -32
  6. package/dist/cjs/adapters/node/helper/utils.js +33 -28
  7. package/dist/cjs/adapters/node/hono.js +87 -99
  8. package/dist/cjs/adapters/node/index.js +84 -60
  9. package/dist/cjs/adapters/node/node.js +164 -190
  10. package/dist/cjs/adapters/node/plugins/index.js +69 -23
  11. package/dist/cjs/adapters/node/plugins/nodeServer.js +39 -34
  12. package/dist/cjs/adapters/node/plugins/resource.js +186 -181
  13. package/dist/cjs/adapters/node/plugins/static.js +152 -164
  14. package/dist/cjs/constants.js +70 -57
  15. package/dist/cjs/context.js +37 -28
  16. package/dist/cjs/helper.js +40 -33
  17. package/dist/cjs/hono.js +46 -0
  18. package/dist/cjs/index.js +236 -57
  19. package/dist/cjs/plugins/compat/hooks.js +71 -83
  20. package/dist/cjs/plugins/compat/index.js +59 -60
  21. package/dist/cjs/plugins/default.js +52 -47
  22. package/dist/cjs/plugins/favicon.js +43 -39
  23. package/dist/cjs/plugins/index.js +73 -54
  24. package/dist/cjs/plugins/log.js +82 -87
  25. package/dist/cjs/plugins/middlewares.js +43 -37
  26. package/dist/cjs/plugins/monitors.js +178 -187
  27. package/dist/cjs/plugins/processedBy.js +45 -39
  28. package/dist/cjs/plugins/render/csrRscRender.js +70 -71
  29. package/dist/cjs/plugins/render/dataHandler.js +49 -45
  30. package/dist/cjs/plugins/render/index.js +152 -126
  31. package/dist/cjs/plugins/render/inject.js +84 -86
  32. package/dist/cjs/plugins/render/render.js +244 -271
  33. package/dist/cjs/plugins/render/renderRscHandler.js +68 -69
  34. package/dist/cjs/plugins/render/serverActionHandler.js +45 -44
  35. package/dist/cjs/plugins/render/ssrCache.js +173 -191
  36. package/dist/cjs/plugins/render/ssrRender.js +89 -94
  37. package/dist/cjs/plugins/render/utils.js +44 -36
  38. package/dist/cjs/plugins/route.js +60 -57
  39. package/dist/cjs/serverBase.js +164 -162
  40. package/dist/cjs/types/config/bff.js +17 -15
  41. package/dist/cjs/types/config/dev.js +17 -15
  42. package/dist/cjs/types/config/html.js +17 -15
  43. package/dist/cjs/types/config/index.js +90 -29
  44. package/dist/cjs/types/config/output.js +17 -15
  45. package/dist/cjs/types/config/security.js +17 -15
  46. package/dist/cjs/types/config/server.js +17 -15
  47. package/dist/cjs/types/config/share.js +17 -15
  48. package/dist/cjs/types/config/source.js +17 -15
  49. package/dist/cjs/types/config/tools.js +17 -15
  50. package/dist/cjs/types/index.js +76 -25
  51. package/dist/cjs/types/plugins/base.js +17 -15
  52. package/dist/cjs/types/plugins/index.js +55 -21
  53. package/dist/cjs/types/plugins/plugin.js +18 -0
  54. package/dist/cjs/types/render.js +17 -15
  55. package/dist/cjs/types/requestHandler.js +17 -15
  56. package/dist/cjs/types/server.js +17 -15
  57. package/dist/cjs/utils/entry.js +37 -32
  58. package/dist/cjs/utils/env.js +46 -40
  59. package/dist/cjs/utils/error.js +56 -50
  60. package/dist/cjs/utils/index.js +111 -33
  61. package/dist/cjs/utils/middlewareCollector.js +58 -49
  62. package/dist/cjs/utils/publicDir.js +92 -0
  63. package/dist/cjs/utils/request.js +73 -65
  64. package/dist/cjs/utils/serverConfig.js +39 -31
  65. package/dist/cjs/utils/storage.js +58 -68
  66. package/dist/cjs/utils/transformStream.js +57 -53
  67. package/dist/cjs/utils/warmup.js +34 -27
  68. package/dist/esm/adapters/node/helper/index.mjs +6 -0
  69. package/dist/esm/adapters/node/helper/loadCache.mjs +14 -0
  70. package/dist/esm/adapters/node/helper/loadConfig.mjs +31 -0
  71. package/dist/esm/adapters/node/helper/loadEnv.mjs +22 -0
  72. package/dist/esm/adapters/node/helper/loadPlugin.mjs +13 -0
  73. package/dist/esm/adapters/node/helper/utils.mjs +2 -0
  74. package/dist/esm/adapters/node/hono.mjs +53 -0
  75. package/dist/esm/adapters/node/index.mjs +5 -0
  76. package/dist/esm/adapters/node/node.mjs +129 -0
  77. package/dist/esm/adapters/node/plugins/nodeServer.mjs +9 -0
  78. package/dist/esm/adapters/node/plugins/resource.mjs +138 -0
  79. package/dist/esm/adapters/node/plugins/static.mjs +118 -0
  80. package/dist/esm/constants.mjs +28 -0
  81. package/dist/{esm-node/context.js → esm/context.mjs} +1 -4
  82. package/dist/esm/helper.mjs +11 -0
  83. package/dist/esm/hono.mjs +3 -0
  84. package/dist/esm/index.mjs +13 -0
  85. package/dist/esm/plugins/compat/hooks.mjs +40 -0
  86. package/dist/esm/plugins/compat/index.mjs +27 -0
  87. package/dist/esm/plugins/default.mjs +25 -0
  88. package/dist/esm/plugins/favicon.mjs +14 -0
  89. package/dist/{esm-node/plugins/index.js → esm/plugins/index.mjs} +2 -15
  90. package/dist/esm/plugins/log.mjs +58 -0
  91. package/dist/esm/plugins/middlewares.mjs +15 -0
  92. package/dist/esm/plugins/monitors.mjs +149 -0
  93. package/dist/esm/plugins/processedBy.mjs +16 -0
  94. package/dist/esm/plugins/render/csrRscRender.mjs +43 -0
  95. package/dist/esm/plugins/render/dataHandler.mjs +19 -0
  96. package/dist/esm/plugins/render/index.mjs +84 -0
  97. package/dist/esm/plugins/render/inject.mjs +55 -0
  98. package/dist/esm/plugins/render/render.mjs +226 -0
  99. package/dist/esm/plugins/render/renderRscHandler.mjs +41 -0
  100. package/dist/esm/plugins/render/serverActionHandler.mjs +18 -0
  101. package/dist/esm/plugins/render/ssrCache.mjs +158 -0
  102. package/dist/esm/plugins/render/ssrRender.mjs +62 -0
  103. package/dist/esm/plugins/render/utils.mjs +15 -0
  104. package/dist/esm/plugins/route.mjs +34 -0
  105. package/dist/esm/serverBase.mjs +136 -0
  106. package/dist/esm/types/plugins/index.mjs +1 -0
  107. package/dist/esm/utils/entry.mjs +3 -0
  108. package/dist/esm/utils/env.mjs +14 -0
  109. package/dist/esm/utils/error.mjs +53 -0
  110. package/dist/{esm-node/utils/index.js → esm/utils/index.mjs} +1 -0
  111. package/dist/esm/utils/middlewareCollector.mjs +26 -0
  112. package/dist/esm/utils/publicDir.mjs +33 -0
  113. package/dist/esm/utils/request.mjs +40 -0
  114. package/dist/esm/utils/serverConfig.mjs +9 -0
  115. package/dist/esm/utils/storage.mjs +30 -0
  116. package/dist/esm/utils/transformStream.mjs +28 -0
  117. package/dist/esm/utils/warmup.mjs +6 -0
  118. package/dist/esm-node/adapters/node/helper/index.mjs +6 -0
  119. package/dist/esm-node/adapters/node/helper/loadCache.mjs +14 -0
  120. package/dist/esm-node/adapters/node/helper/loadConfig.mjs +31 -0
  121. package/dist/esm-node/adapters/node/helper/loadEnv.mjs +22 -0
  122. package/dist/esm-node/adapters/node/helper/loadPlugin.mjs +13 -0
  123. package/dist/esm-node/adapters/node/helper/utils.mjs +2 -0
  124. package/dist/esm-node/adapters/node/hono.mjs +53 -0
  125. package/dist/esm-node/adapters/node/index.mjs +5 -0
  126. package/dist/esm-node/adapters/node/node.mjs +129 -0
  127. package/dist/esm-node/adapters/node/plugins/index.mjs +3 -0
  128. package/dist/esm-node/adapters/node/plugins/nodeServer.mjs +9 -0
  129. package/dist/esm-node/adapters/node/plugins/resource.mjs +138 -0
  130. package/dist/esm-node/adapters/node/plugins/static.mjs +118 -0
  131. package/dist/esm-node/constants.mjs +28 -0
  132. package/dist/esm-node/context.mjs +3 -0
  133. package/dist/esm-node/helper.mjs +11 -0
  134. package/dist/esm-node/hono.mjs +3 -0
  135. package/dist/esm-node/index.mjs +13 -0
  136. package/dist/esm-node/plugins/compat/hooks.mjs +40 -0
  137. package/dist/esm-node/plugins/compat/index.mjs +27 -0
  138. package/dist/esm-node/plugins/default.mjs +25 -0
  139. package/dist/esm-node/plugins/favicon.mjs +14 -0
  140. package/dist/esm-node/plugins/index.mjs +9 -0
  141. package/dist/esm-node/plugins/log.mjs +58 -0
  142. package/dist/esm-node/plugins/middlewares.mjs +15 -0
  143. package/dist/esm-node/plugins/monitors.mjs +149 -0
  144. package/dist/esm-node/plugins/processedBy.mjs +16 -0
  145. package/dist/esm-node/plugins/render/csrRscRender.mjs +43 -0
  146. package/dist/esm-node/plugins/render/dataHandler.mjs +19 -0
  147. package/dist/esm-node/plugins/render/index.mjs +84 -0
  148. package/dist/esm-node/plugins/render/inject.mjs +55 -0
  149. package/dist/esm-node/plugins/render/render.mjs +226 -0
  150. package/dist/esm-node/plugins/render/renderRscHandler.mjs +41 -0
  151. package/dist/esm-node/plugins/render/serverActionHandler.mjs +18 -0
  152. package/dist/esm-node/plugins/render/ssrCache.mjs +158 -0
  153. package/dist/esm-node/plugins/render/ssrRender.mjs +62 -0
  154. package/dist/esm-node/plugins/render/utils.mjs +15 -0
  155. package/dist/esm-node/plugins/route.mjs +34 -0
  156. package/dist/esm-node/serverBase.mjs +136 -0
  157. package/dist/esm-node/types/config/index.mjs +6 -0
  158. package/dist/esm-node/types/index.mjs +4 -0
  159. package/dist/esm-node/types/plugins/index.mjs +1 -0
  160. package/dist/esm-node/utils/entry.mjs +3 -0
  161. package/dist/esm-node/utils/env.mjs +14 -0
  162. package/dist/esm-node/utils/error.mjs +53 -0
  163. package/dist/esm-node/utils/index.mjs +9 -0
  164. package/dist/esm-node/utils/middlewareCollector.mjs +26 -0
  165. package/dist/esm-node/utils/publicDir.mjs +33 -0
  166. package/dist/esm-node/utils/request.mjs +40 -0
  167. package/dist/esm-node/utils/serverConfig.mjs +9 -0
  168. package/dist/esm-node/utils/storage.mjs +30 -0
  169. package/dist/esm-node/utils/transformStream.mjs +28 -0
  170. package/dist/esm-node/utils/warmup.mjs +6 -0
  171. package/dist/types/adapters/node/helper/loadConfig.d.ts +1 -1
  172. package/dist/types/adapters/node/plugins/nodeServer.d.ts +2 -2
  173. package/dist/types/adapters/node/plugins/resource.d.ts +3 -3
  174. package/dist/types/adapters/node/plugins/static.d.ts +3 -2
  175. package/dist/types/hono.d.ts +3 -0
  176. package/dist/types/index.d.ts +1 -1
  177. package/dist/types/plugins/compat/hooks.d.ts +1 -1
  178. package/dist/types/plugins/default.d.ts +2 -2
  179. package/dist/types/plugins/favicon.d.ts +2 -2
  180. package/dist/types/plugins/log.d.ts +2 -2
  181. package/dist/types/plugins/middlewares.d.ts +2 -2
  182. package/dist/types/plugins/monitors.d.ts +4 -4
  183. package/dist/types/plugins/processedBy.d.ts +2 -2
  184. package/dist/types/plugins/render/dataHandler.d.ts +1 -1
  185. package/dist/types/plugins/render/index.d.ts +2 -2
  186. package/dist/types/plugins/render/inject.d.ts +2 -2
  187. package/dist/types/plugins/render/ssrRender.d.ts +3 -5
  188. package/dist/types/plugins/route.d.ts +2 -2
  189. package/dist/types/serverBase.d.ts +14 -20
  190. package/dist/types/types/config/bff.d.ts +0 -2
  191. package/dist/types/types/config/html.d.ts +0 -1
  192. package/dist/types/types/config/index.d.ts +0 -6
  193. package/dist/types/types/config/output.d.ts +2 -8
  194. package/dist/types/types/config/server.d.ts +1 -1
  195. package/dist/types/types/plugins/base.d.ts +5 -26
  196. package/dist/types/types/plugins/index.d.ts +1 -2
  197. package/dist/types/types/plugins/{new.d.ts → plugin.d.ts} +6 -4
  198. package/dist/types/types/render.d.ts +2 -5
  199. package/dist/types/types/requestHandler.d.ts +3 -7
  200. package/dist/types/types/server.d.ts +2 -1
  201. package/dist/types/utils/index.d.ts +1 -0
  202. package/dist/types/utils/publicDir.d.ts +40 -0
  203. package/dist/types/utils/transformStream.d.ts +1 -1
  204. package/package.json +25 -29
  205. package/rslib.config.mts +4 -0
  206. package/rstest.config.ts +7 -0
  207. package/dist/cjs/plugins/customServer/base.js +0 -186
  208. package/dist/cjs/plugins/customServer/context.js +0 -70
  209. package/dist/cjs/plugins/customServer/index.js +0 -210
  210. package/dist/cjs/plugins/customServer/routerApi.js +0 -44
  211. package/dist/cjs/plugins/customServer/template.js +0 -58
  212. package/dist/cjs/types/plugins/new.js +0 -16
  213. package/dist/cjs/types/plugins/old.js +0 -16
  214. package/dist/esm/adapters/node/helper/index.js +0 -13
  215. package/dist/esm/adapters/node/helper/loadCache.js +0 -44
  216. package/dist/esm/adapters/node/helper/loadConfig.js +0 -157
  217. package/dist/esm/adapters/node/helper/loadEnv.js +0 -73
  218. package/dist/esm/adapters/node/helper/loadPlugin.js +0 -59
  219. package/dist/esm/adapters/node/helper/utils.js +0 -7
  220. package/dist/esm/adapters/node/hono.js +0 -148
  221. package/dist/esm/adapters/node/index.js +0 -23
  222. package/dist/esm/adapters/node/node.js +0 -357
  223. package/dist/esm/adapters/node/plugins/index.js +0 -3
  224. package/dist/esm/adapters/node/plugins/nodeServer.js +0 -18
  225. package/dist/esm/adapters/node/plugins/resource.js +0 -543
  226. package/dist/esm/adapters/node/plugins/static.js +0 -245
  227. package/dist/esm/constants.js +0 -35
  228. package/dist/esm/context.js +0 -6
  229. package/dist/esm/helper.js +0 -14
  230. package/dist/esm/index.js +0 -22
  231. package/dist/esm/plugins/compat/hooks.js +0 -70
  232. package/dist/esm/plugins/compat/index.js +0 -45
  233. package/dist/esm/plugins/customServer/base.js +0 -218
  234. package/dist/esm/plugins/customServer/context.js +0 -66
  235. package/dist/esm/plugins/customServer/index.js +0 -369
  236. package/dist/esm/plugins/customServer/routerApi.js +0 -26
  237. package/dist/esm/plugins/customServer/template.js +0 -47
  238. package/dist/esm/plugins/default.js +0 -31
  239. package/dist/esm/plugins/favicon.js +0 -34
  240. package/dist/esm/plugins/index.js +0 -22
  241. package/dist/esm/plugins/log.js +0 -106
  242. package/dist/esm/plugins/middlewares.js +0 -22
  243. package/dist/esm/plugins/monitors.js +0 -287
  244. package/dist/esm/plugins/processedBy.js +0 -42
  245. package/dist/esm/plugins/render/csrRscRender.js +0 -88
  246. package/dist/esm/plugins/render/dataHandler.js +0 -48
  247. package/dist/esm/plugins/render/index.js +0 -215
  248. package/dist/esm/plugins/render/inject.js +0 -126
  249. package/dist/esm/plugins/render/render.js +0 -572
  250. package/dist/esm/plugins/render/renderRscHandler.js +0 -81
  251. package/dist/esm/plugins/render/serverActionHandler.js +0 -49
  252. package/dist/esm/plugins/render/ssrCache.js +0 -305
  253. package/dist/esm/plugins/render/ssrRender.js +0 -124
  254. package/dist/esm/plugins/render/utils.js +0 -17
  255. package/dist/esm/plugins/route.js +0 -92
  256. package/dist/esm/serverBase.js +0 -248
  257. package/dist/esm/types/config/index.js +0 -6
  258. package/dist/esm/types/index.js +0 -4
  259. package/dist/esm/types/plugins/index.js +0 -2
  260. package/dist/esm/types/requestHandler.js +0 -0
  261. package/dist/esm/types/server.js +0 -0
  262. package/dist/esm/utils/entry.js +0 -10
  263. package/dist/esm/utils/env.js +0 -20
  264. package/dist/esm/utils/error.js +0 -33
  265. package/dist/esm/utils/index.js +0 -8
  266. package/dist/esm/utils/middlewareCollector.js +0 -31
  267. package/dist/esm/utils/request.js +0 -51
  268. package/dist/esm/utils/serverConfig.js +0 -13
  269. package/dist/esm/utils/storage.js +0 -38
  270. package/dist/esm/utils/transformStream.js +0 -104
  271. package/dist/esm/utils/warmup.js +0 -9
  272. package/dist/esm-node/adapters/node/helper/index.js +0 -13
  273. package/dist/esm-node/adapters/node/helper/loadCache.js +0 -19
  274. package/dist/esm-node/adapters/node/helper/loadConfig.js +0 -59
  275. package/dist/esm-node/adapters/node/helper/loadEnv.js +0 -22
  276. package/dist/esm-node/adapters/node/helper/loadPlugin.js +0 -15
  277. package/dist/esm-node/adapters/node/helper/utils.js +0 -7
  278. package/dist/esm-node/adapters/node/hono.js +0 -79
  279. package/dist/esm-node/adapters/node/index.js +0 -23
  280. package/dist/esm-node/adapters/node/node.js +0 -169
  281. package/dist/esm-node/adapters/node/plugins/nodeServer.js +0 -14
  282. package/dist/esm-node/adapters/node/plugins/resource.js +0 -159
  283. package/dist/esm-node/adapters/node/plugins/static.js +0 -144
  284. package/dist/esm-node/constants.js +0 -35
  285. package/dist/esm-node/helper.js +0 -14
  286. package/dist/esm-node/index.js +0 -22
  287. package/dist/esm-node/plugins/compat/hooks.js +0 -66
  288. package/dist/esm-node/plugins/compat/index.js +0 -40
  289. package/dist/esm-node/plugins/customServer/base.js +0 -162
  290. package/dist/esm-node/plugins/customServer/context.js +0 -43
  291. package/dist/esm-node/plugins/customServer/index.js +0 -185
  292. package/dist/esm-node/plugins/customServer/routerApi.js +0 -20
  293. package/dist/esm-node/plugins/customServer/template.js +0 -34
  294. package/dist/esm-node/plugins/default.js +0 -30
  295. package/dist/esm-node/plugins/favicon.js +0 -20
  296. package/dist/esm-node/plugins/log.js +0 -73
  297. package/dist/esm-node/plugins/middlewares.js +0 -19
  298. package/dist/esm-node/plugins/monitors.js +0 -174
  299. package/dist/esm-node/plugins/processedBy.js +0 -20
  300. package/dist/esm-node/plugins/render/csrRscRender.js +0 -54
  301. package/dist/esm-node/plugins/render/dataHandler.js +0 -25
  302. package/dist/esm-node/plugins/render/index.js +0 -106
  303. package/dist/esm-node/plugins/render/inject.js +0 -69
  304. package/dist/esm-node/plugins/render/render.js +0 -253
  305. package/dist/esm-node/plugins/render/renderRscHandler.js +0 -52
  306. package/dist/esm-node/plugins/render/serverActionHandler.js +0 -27
  307. package/dist/esm-node/plugins/render/ssrCache.js +0 -190
  308. package/dist/esm-node/plugins/render/ssrRender.js +0 -77
  309. package/dist/esm-node/plugins/render/utils.js +0 -17
  310. package/dist/esm-node/plugins/route.js +0 -41
  311. package/dist/esm-node/serverBase.js +0 -146
  312. package/dist/esm-node/types/plugins/index.js +0 -2
  313. package/dist/esm-node/utils/entry.js +0 -10
  314. package/dist/esm-node/utils/env.js +0 -20
  315. package/dist/esm-node/utils/error.js +0 -61
  316. package/dist/esm-node/utils/middlewareCollector.js +0 -29
  317. package/dist/esm-node/utils/request.js +0 -50
  318. package/dist/esm-node/utils/serverConfig.js +0 -11
  319. package/dist/esm-node/utils/storage.js +0 -40
  320. package/dist/esm-node/utils/transformStream.js +0 -36
  321. package/dist/esm-node/utils/warmup.js +0 -9
  322. package/dist/types/plugins/customServer/base.d.ts +0 -7
  323. package/dist/types/plugins/customServer/context.d.ts +0 -8
  324. package/dist/types/plugins/customServer/index.d.ts +0 -11
  325. package/dist/types/plugins/customServer/routerApi.d.ts +0 -9
  326. package/dist/types/plugins/customServer/template.d.ts +0 -11
  327. package/dist/types/types/plugins/old.d.ts +0 -56
  328. /package/dist/{esm-node/adapters/node/plugins/index.js → esm/adapters/node/plugins/index.mjs} +0 -0
  329. /package/dist/{esm-node/types/server.js → esm/types/config/bff.mjs} +0 -0
  330. /package/dist/esm/types/config/{bff.js → dev.mjs} +0 -0
  331. /package/dist/esm/types/config/{dev.js → html.mjs} +0 -0
  332. /package/dist/{esm-node/types/config/index.js → esm/types/config/index.mjs} +0 -0
  333. /package/dist/esm/types/config/{html.js → output.mjs} +0 -0
  334. /package/dist/esm/types/config/{output.js → security.mjs} +0 -0
  335. /package/dist/esm/types/config/{security.js → server.mjs} +0 -0
  336. /package/dist/esm/types/config/{server.js → share.mjs} +0 -0
  337. /package/dist/esm/types/config/{share.js → source.mjs} +0 -0
  338. /package/dist/esm/types/config/{source.js → tools.mjs} +0 -0
  339. /package/dist/{esm-node/types/index.js → esm/types/index.mjs} +0 -0
  340. /package/dist/esm/types/{config/tools.js → plugins/base.mjs} +0 -0
  341. /package/dist/esm/types/plugins/{base.js → plugin.mjs} +0 -0
  342. /package/dist/esm/types/{plugins/new.js → render.mjs} +0 -0
  343. /package/dist/esm/types/{plugins/old.js → requestHandler.mjs} +0 -0
  344. /package/dist/esm/types/{render.js → server.mjs} +0 -0
  345. /package/dist/esm-node/types/config/{bff.js → bff.mjs} +0 -0
  346. /package/dist/esm-node/types/config/{dev.js → dev.mjs} +0 -0
  347. /package/dist/esm-node/types/config/{html.js → html.mjs} +0 -0
  348. /package/dist/esm-node/types/config/{output.js → output.mjs} +0 -0
  349. /package/dist/esm-node/types/config/{security.js → security.mjs} +0 -0
  350. /package/dist/esm-node/types/config/{server.js → server.mjs} +0 -0
  351. /package/dist/esm-node/types/config/{share.js → share.mjs} +0 -0
  352. /package/dist/esm-node/types/config/{source.js → source.mjs} +0 -0
  353. /package/dist/esm-node/types/config/{tools.js → tools.mjs} +0 -0
  354. /package/dist/esm-node/types/plugins/{base.js → base.mjs} +0 -0
  355. /package/dist/esm-node/types/plugins/{new.js → plugin.mjs} +0 -0
  356. /package/dist/esm-node/types/{plugins/old.js → render.mjs} +0 -0
  357. /package/dist/esm-node/types/{render.js → requestHandler.mjs} +0 -0
  358. /package/dist/esm-node/types/{requestHandler.js → server.mjs} +0 -0
@@ -0,0 +1,3 @@
1
+ import { deleteCookie, getCookie, setCookie } from "hono/cookie";
2
+ import { languageDetector } from "hono/language";
3
+ export { deleteCookie, getCookie, languageDetector, setCookie };
@@ -0,0 +1,13 @@
1
+ import { ErrorDigest, createErrorHtml, onError } from "./utils/index.mjs";
2
+ import { getPublicDirConfig, getPublicDirPatterns, getPublicDirRoutePrefixes, normalizePublicDir, normalizePublicDirPath, resolvePublicDirPaths } from "./utils/publicDir.mjs";
3
+ import { AGGRED_DIR } from "./constants.mjs";
4
+ import { createServerBase } from "./serverBase.mjs";
5
+ import { useHonoContext } from "./context.mjs";
6
+ import { Hono } from "hono";
7
+ import { getLoaderCtx } from "./helper.mjs";
8
+ export * from "./plugins/index.mjs";
9
+ export * from "./types/plugins/index.mjs";
10
+ export * from "./types/render.mjs";
11
+ export * from "./types/config/index.mjs";
12
+ export * from "./types/requestHandler.mjs";
13
+ export { AGGRED_DIR, ErrorDigest, Hono, createErrorHtml, createServerBase, getLoaderCtx, getPublicDirConfig, getPublicDirPatterns, getPublicDirRoutePrefixes, normalizePublicDir, normalizePublicDirPath, onError, resolvePublicDirPaths, useHonoContext };
@@ -0,0 +1,40 @@
1
+ function getHookRunners(context) {
2
+ const { hooks } = context;
3
+ return {
4
+ config: (params)=>hooks.modifyConfig.call(params),
5
+ prepare: ()=>hooks.onPrepare.call(),
6
+ reset: (params)=>hooks.onReset.call(params),
7
+ fallback: (input)=>hooks.fallback.call(input),
8
+ prepareWebServer: (input)=>hooks.prepareWebServer.call(input),
9
+ prepareApiServer: (input)=>hooks.prepareApiServer.call(input),
10
+ afterMatch: (ctx)=>hooks.afterMatch.call(ctx),
11
+ afterRender: (ctx)=>hooks.afterRender.call(ctx),
12
+ afterStreamingRender: (ctx)=>hooks.afterStreamingRender.call(ctx)
13
+ };
14
+ }
15
+ function transformHookRunner(hookRunnerName) {
16
+ switch(hookRunnerName){
17
+ case 'config':
18
+ return 'modifyConfig';
19
+ case 'prepare':
20
+ return 'onPrepare';
21
+ case 'reset':
22
+ return 'onReset';
23
+ default:
24
+ return hookRunnerName;
25
+ }
26
+ }
27
+ function handleSetupResult(setupResult, api) {
28
+ if (!setupResult) return;
29
+ Object.keys(setupResult).forEach((key)=>{
30
+ const fn = setupResult[key];
31
+ if ('function' == typeof fn) {
32
+ const newAPI = transformHookRunner(key);
33
+ if (api[newAPI]) api[newAPI]((...params)=>{
34
+ const res = fn(...params);
35
+ return res;
36
+ });
37
+ }
38
+ });
39
+ }
40
+ export { getHookRunners, handleSetupResult, transformHookRunner };
@@ -0,0 +1,27 @@
1
+ import { createAsyncHook, createAsyncPipelineHook } from "@modern-js/plugin";
2
+ import { getHookRunners, handleSetupResult } from "./hooks.mjs";
3
+ const compatPlugin = ()=>({
4
+ name: '@modern-js/server-compat',
5
+ registryHooks: {
6
+ fallback: createAsyncHook(),
7
+ prepareWebServer: createAsyncPipelineHook(),
8
+ prepareApiServer: createAsyncPipelineHook(),
9
+ afterMatch: createAsyncPipelineHook(),
10
+ afterRender: createAsyncPipelineHook(),
11
+ afterStreamingRender: createAsyncPipelineHook()
12
+ },
13
+ _registryApi: (getServerContext, updateServerContext)=>{
14
+ const getInternalContext = ()=>getServerContext()._internalContext;
15
+ return {
16
+ useConfigContext: ()=>getInternalContext().config,
17
+ useAppContext: ()=>{
18
+ const { _internalContext, ...serverContext } = getServerContext();
19
+ return serverContext;
20
+ },
21
+ setAppContext: (context)=>updateServerContext(context),
22
+ useHookRunners: ()=>getHookRunners(getInternalContext())
23
+ };
24
+ },
25
+ setup: ()=>{}
26
+ });
27
+ export { compatPlugin, handleSetupResult };
@@ -0,0 +1,25 @@
1
+ import { compatPlugin } from "./compat/index.mjs";
2
+ import { logPlugin } from "./log.mjs";
3
+ import { initMonitorsPlugin, injectServerTiming, injectloggerPlugin } from "./monitors.mjs";
4
+ import { processedByPlugin } from "./processedBy.mjs";
5
+ import { injectRenderHandlerPlugin } from "./render/index.mjs";
6
+ import { injectRoutePlugin } from "./route.mjs";
7
+ function createSilenceLogger() {
8
+ return new Proxy({}, {
9
+ get: ()=>()=>{}
10
+ });
11
+ }
12
+ function createDefaultPlugins(options = {}) {
13
+ const plugins = [
14
+ compatPlugin(),
15
+ logPlugin(),
16
+ initMonitorsPlugin(),
17
+ injectRenderHandlerPlugin(options),
18
+ injectloggerPlugin(options.logger ? options.logger : createSilenceLogger()),
19
+ injectServerTiming(),
20
+ processedByPlugin(),
21
+ injectRoutePlugin()
22
+ ];
23
+ return plugins;
24
+ }
25
+ export { createDefaultPlugins };
@@ -0,0 +1,14 @@
1
+ const faviconPlugin = ()=>({
2
+ name: '@modern-js/plugin-favicon',
3
+ setup (api) {
4
+ api.onPrepare(()=>{
5
+ const { middlewares } = api.getServerContext();
6
+ middlewares.push({
7
+ name: 'favicon-fallback',
8
+ path: '/favicon.ico',
9
+ handler: async (c, _next)=>c.body(null, 204)
10
+ });
11
+ });
12
+ }
13
+ });
14
+ export { faviconPlugin };
@@ -0,0 +1,9 @@
1
+ import { getRenderHandler, injectRenderHandlerPlugin, renderPlugin } from "./render/index.mjs";
2
+ import { faviconPlugin } from "./favicon.mjs";
3
+ import { injectServerTiming, injectloggerPlugin } from "./monitors.mjs";
4
+ import { processedByPlugin } from "./processedBy.mjs";
5
+ import { logPlugin } from "./log.mjs";
6
+ import { createDefaultPlugins } from "./default.mjs";
7
+ import { compatPlugin, handleSetupResult } from "./compat/index.mjs";
8
+ import { injectConfigMiddlewarePlugin } from "./middlewares.mjs";
9
+ export { compatPlugin, createDefaultPlugins, faviconPlugin, getRenderHandler, handleSetupResult, injectConfigMiddlewarePlugin, injectRenderHandlerPlugin, injectServerTiming, injectloggerPlugin, logPlugin, processedByPlugin, renderPlugin };
@@ -0,0 +1,58 @@
1
+ import { getPathname } from "../utils/index.mjs";
2
+ const humanize = (times)=>{
3
+ const [delimiter, separator] = [
4
+ ',',
5
+ '.'
6
+ ];
7
+ const orderTimes = times.map((v)=>v.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, `$1${delimiter}`));
8
+ return orderTimes.join(separator);
9
+ };
10
+ const time = (start)=>{
11
+ const delta = Date.now() - start;
12
+ return humanize([
13
+ delta < 1000 ? `${delta}ms` : `${Math.round(delta / 1000)}s`
14
+ ]);
15
+ };
16
+ const colorStatus = (status)=>{
17
+ const out = {
18
+ 7: `\x1b[35m${status}\x1b[0m`,
19
+ 5: `\x1b[31m${status}\x1b[0m`,
20
+ 4: `\x1b[33m${status}\x1b[0m`,
21
+ 3: `\x1b[36m${status}\x1b[0m`,
22
+ 2: `\x1b[32m${status}\x1b[0m`,
23
+ 1: `\x1b[32m${status}\x1b[0m`,
24
+ 0: `\x1b[33m${status}\x1b[0m`
25
+ };
26
+ const calculateStatus = Math.floor(status / 100);
27
+ return out[calculateStatus];
28
+ };
29
+ function log(fn, prefix, method, path, status = 0, elapsed) {
30
+ const out = "<--" === prefix ? ` ${prefix} ${method} ${path}` : ` ${prefix} ${method} ${path} ${colorStatus(status)} ${elapsed}`;
31
+ fn(out);
32
+ }
33
+ function logHandler() {
34
+ return async function(c, next) {
35
+ const { method } = c.req;
36
+ const monitors = c.get('monitors');
37
+ if (!monitors) return void await next();
38
+ const path = getPathname(c.req.raw);
39
+ const logFn = monitors.debug;
40
+ log(logFn, "<--", method, path);
41
+ const start = Date.now();
42
+ await next();
43
+ log(logFn, "-->", method, path, c?.env?.node?.res?.statusCode ?? c.res.status, time(start));
44
+ };
45
+ }
46
+ const logPlugin = ()=>({
47
+ name: '@modern-js/plugin-log',
48
+ setup (api) {
49
+ api.onPrepare(()=>{
50
+ const { middlewares } = api.getServerContext();
51
+ middlewares.push({
52
+ name: 'print_log',
53
+ handler: logHandler()
54
+ });
55
+ });
56
+ }
57
+ });
58
+ export { logPlugin };
@@ -0,0 +1,15 @@
1
+ const injectConfigMiddlewarePlugin = (configMiddlewares = [], configRenderMiddlewares = [])=>({
2
+ name: '@modern-js/plugin-inject-config-middleware',
3
+ setup (api) {
4
+ api.onPrepare(()=>{
5
+ const { middlewares, renderMiddlewares } = api.getServerContext();
6
+ configMiddlewares.forEach((m)=>{
7
+ middlewares.push(m);
8
+ });
9
+ configRenderMiddlewares.forEach((m)=>{
10
+ renderMiddlewares.push(m);
11
+ });
12
+ });
13
+ }
14
+ });
15
+ export { injectConfigMiddlewarePlugin };
@@ -0,0 +1,149 @@
1
+ import { time } from "@modern-js/runtime-utils/time";
2
+ import { SERVER_TIMING, ServerTimings } from "../constants.mjs";
3
+ function createMonitors() {
4
+ const coreMonitors = [];
5
+ const log = (level, message, args)=>{
6
+ const event = {
7
+ type: 'log',
8
+ payload: {
9
+ level,
10
+ message,
11
+ args
12
+ }
13
+ };
14
+ coreMonitors.forEach((monitor)=>monitor(event));
15
+ };
16
+ const mointors = {
17
+ push (monitor) {
18
+ coreMonitors.push(monitor);
19
+ },
20
+ error (message, ...args) {
21
+ log('error', message, args);
22
+ },
23
+ warn (message, ...args) {
24
+ log('warn', message, args);
25
+ },
26
+ debug (message, ...args) {
27
+ log('debug', message, args);
28
+ },
29
+ info (message, ...args) {
30
+ log('info', message, args);
31
+ },
32
+ trace (message, ...args) {
33
+ log('trace', message, args);
34
+ },
35
+ timing (name, dur, desc, tags, ...args) {
36
+ const event = {
37
+ type: 'timing',
38
+ payload: {
39
+ name,
40
+ dur,
41
+ desc,
42
+ tags,
43
+ args
44
+ }
45
+ };
46
+ coreMonitors.forEach((monitor)=>monitor(event));
47
+ },
48
+ counter (name, tags, ...args) {
49
+ const event = {
50
+ type: 'counter',
51
+ payload: {
52
+ name,
53
+ args,
54
+ tags
55
+ }
56
+ };
57
+ coreMonitors.forEach((monitor)=>monitor(event));
58
+ }
59
+ };
60
+ return mointors;
61
+ }
62
+ const initMonitorsPlugin = ()=>({
63
+ name: '@modern-js/init-mointor',
64
+ setup (api) {
65
+ api.onPrepare(()=>{
66
+ const { middlewares } = api.getServerContext();
67
+ middlewares.push({
68
+ name: 'init-monitor',
69
+ handler: async (c, next)=>{
70
+ if (!c.get('monitors')) {
71
+ const monitors = createMonitors();
72
+ c.set('monitors', monitors);
73
+ }
74
+ return next();
75
+ },
76
+ order: 'pre'
77
+ });
78
+ });
79
+ }
80
+ });
81
+ const injectloggerPlugin = (inputLogger)=>({
82
+ name: '@modern-js/inject-logger',
83
+ setup (api) {
84
+ const logger = inputLogger;
85
+ api.onPrepare(()=>{
86
+ const { middlewares } = api.getServerContext();
87
+ middlewares.push({
88
+ name: 'inject-logger',
89
+ handler: async (c, next)=>{
90
+ const pathname = c.req.path;
91
+ const loggerMonitor = (event)=>{
92
+ if ('log' === event.type) {
93
+ const { level, message, args } = event.payload;
94
+ if ('trace' === level) logger.info(message, ...args || []);
95
+ else logger[level](message, ...args || []);
96
+ }
97
+ if ('timing' === event.type) {
98
+ const { name, dur, desc } = event.payload;
99
+ if (desc) logger.debug(`%s Debug - ${name}, cost: %s, req.url = %s `, desc, dur, pathname);
100
+ else logger.debug(`Debug - ${name}, cost: %s, req.url = %s`, dur, pathname);
101
+ }
102
+ };
103
+ const monitors = c.get('monitors');
104
+ monitors?.push(loggerMonitor);
105
+ return next();
106
+ }
107
+ });
108
+ });
109
+ }
110
+ });
111
+ const injectServerTiming = ()=>({
112
+ name: '@modern-js/inject-server-timing',
113
+ setup (api) {
114
+ api.onPrepare(()=>{
115
+ const { middlewares, metaName } = api.getServerContext();
116
+ middlewares.push({
117
+ name: 'inject-server-timing',
118
+ handler: async (c, next)=>{
119
+ const serverTimings = [];
120
+ const timingMonitor = (event)=>{
121
+ if ('timing' === event.type) serverTimings.push(event.payload);
122
+ };
123
+ const monitors = c.get('monitors');
124
+ monitors?.push(timingMonitor);
125
+ await next();
126
+ serverTimings.forEach((serverTiming)=>{
127
+ const { name, desc, dur } = serverTiming;
128
+ const _name = `bd-${metaName}-${name}`;
129
+ const value = `${_name};${desc ? `decs="${desc}";` : ''} dur=${dur}`;
130
+ c.header(SERVER_TIMING, value, {
131
+ append: true
132
+ });
133
+ });
134
+ }
135
+ });
136
+ });
137
+ }
138
+ });
139
+ function requestLatencyMiddleware() {
140
+ return async (c, next)=>{
141
+ const monitors = c.get('monitors');
142
+ if (!monitors) return void await next();
143
+ const getCost = time();
144
+ await next();
145
+ const cost = getCost();
146
+ monitors.timing(ServerTimings.SERVER_HANDLE_REQUEST, cost);
147
+ };
148
+ }
149
+ export { initMonitorsPlugin, injectServerTiming, injectloggerPlugin, requestLatencyMiddleware };
@@ -0,0 +1,16 @@
1
+ const processedByPlugin = ()=>({
2
+ name: '@modern-js/plugin-processed',
3
+ setup (api) {
4
+ api.onPrepare(()=>{
5
+ const { middlewares } = api.getServerContext();
6
+ middlewares.push({
7
+ name: 'processed-by',
8
+ handler: async (c, next)=>{
9
+ await next();
10
+ c.header('X-Processed-By', 'Modern.js');
11
+ }
12
+ });
13
+ });
14
+ }
15
+ });
16
+ export { processedByPlugin };
@@ -0,0 +1,43 @@
1
+ import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
2
+ import { createRequestHandlerConfig } from "./utils.mjs";
3
+ const csrRscRender = async (req, options)=>{
4
+ const { routeInfo, serverManifest, rscSSRManifest, rscClientManifest, rscServerManifest, locals, params, loaderContext, reporter, monitors, onError, onTiming, staticGenerate, html } = options;
5
+ const serverBundle = serverManifest?.renderBundles?.[routeInfo.entryName || MAIN_ENTRY_NAME];
6
+ const loadableStats = serverManifest.loadableStats || {};
7
+ const routeManifest = serverManifest.routeManifest || {};
8
+ const config = createRequestHandlerConfig(options.config);
9
+ const requestHandlerOptions = {
10
+ resource: {
11
+ route: routeInfo,
12
+ loadableStats,
13
+ routeManifest,
14
+ entryName: routeInfo.entryName || MAIN_ENTRY_NAME
15
+ },
16
+ config,
17
+ params,
18
+ loaderContext,
19
+ html,
20
+ rscSSRManifest,
21
+ rscClientManifest,
22
+ rscServerManifest,
23
+ locals,
24
+ staticGenerate,
25
+ monitors,
26
+ onError,
27
+ onTiming,
28
+ reporter: reporter
29
+ };
30
+ if (!serverBundle) return new Response('Cannot find server bundle for RSC', {
31
+ status: 500
32
+ });
33
+ const renderRscStreamHandler = await serverBundle.renderRscStreamHandler;
34
+ if (!renderRscStreamHandler) return new Response('Cannot find render handler for RSC', {
35
+ status: 500
36
+ });
37
+ if (!rscClientManifest) return new Response('Cannot find rsc client manifest', {
38
+ status: 500
39
+ });
40
+ const response = await renderRscStreamHandler(req, requestHandlerOptions);
41
+ return response;
42
+ };
43
+ export { csrRscRender };
@@ -0,0 +1,19 @@
1
+ import { MAIN_ENTRY_NAME } from "@modern-js/utils/universal/constants";
2
+ const dataHandler = async (request, { routeInfo, serverRoutes, monitors, onError, onTiming, serverManifest, loaderContext })=>{
3
+ const serverLoaderModule = serverManifest?.loaderBundles?.[routeInfo.entryName || MAIN_ENTRY_NAME];
4
+ if (!serverLoaderModule) return;
5
+ const { routes, handleRequest } = serverLoaderModule;
6
+ const response = await handleRequest({
7
+ request,
8
+ serverRoutes,
9
+ context: {
10
+ monitors,
11
+ loaderContext
12
+ },
13
+ onTiming,
14
+ onError,
15
+ routes
16
+ });
17
+ return response;
18
+ };
19
+ export { dataHandler };
@@ -0,0 +1,84 @@
1
+ import { getLoaderCtx } from "../../helper.mjs";
2
+ import { sortRoutes } from "../../utils/index.mjs";
3
+ import { requestLatencyMiddleware } from "../monitors.mjs";
4
+ export * from "./inject.mjs";
5
+ const DYNAMIC_ROUTE_REG = /\/:./;
6
+ function escapeRegexSpecialChars(path) {
7
+ return path.replace(/[()[\]{}*+?.^$|\\]/g, '\\$&');
8
+ }
9
+ const renderPlugin = ()=>({
10
+ name: '@modern-js/plugin-render',
11
+ setup (api) {
12
+ api.onPrepare(async ()=>{
13
+ const { middlewares, routes, render, renderMiddlewares } = api.getServerContext();
14
+ if (!routes) return;
15
+ const pageRoutes = getPageRoutes(routes);
16
+ middlewares.push({
17
+ name: 'page-latency',
18
+ handler: requestLatencyMiddleware()
19
+ });
20
+ for (const route of pageRoutes){
21
+ const { urlPath: originUrlPath } = route;
22
+ const isDynamic = DYNAMIC_ROUTE_REG.test(originUrlPath);
23
+ const escapedPath = isDynamic ? originUrlPath : escapeRegexSpecialChars(originUrlPath);
24
+ const urlPath = escapedPath.endsWith('/') ? `${escapedPath}*` : `${escapedPath}/*`;
25
+ renderMiddlewares?.forEach((m)=>{
26
+ middlewares.push({
27
+ name: m.name,
28
+ path: urlPath,
29
+ handler: m.handler
30
+ });
31
+ });
32
+ render && middlewares.push({
33
+ name: "render",
34
+ path: urlPath,
35
+ handler: createRenderHandler(render)
36
+ });
37
+ }
38
+ });
39
+ }
40
+ });
41
+ function getPageRoutes(routes) {
42
+ return routes.filter((route)=>!route.isApi).sort(sortRoutes);
43
+ }
44
+ function createRenderHandler(render) {
45
+ return async (c, _)=>{
46
+ const reporter = c.get('reporter');
47
+ const monitors = c.get('monitors');
48
+ const templates = c.get('templates') || {};
49
+ const serverManifest = c.get('serverManifest') || {};
50
+ const rscServerManifest = c.get('rscServerManifest');
51
+ const rscClientManifest = c.get('rscClientManifest');
52
+ const rscSSRManifest = c.get('rscSSRManifest');
53
+ const locals = c.get('locals');
54
+ c.get('metrics');
55
+ const matchPathname = c.get('matchPathname');
56
+ const matchEntryName = c.get('matchEntryName');
57
+ const loaderContext = getLoaderCtx(c);
58
+ const contextForceCSR = c.get('forceCSR');
59
+ const request = c.req.raw;
60
+ const nodeReq = c.env.node?.req;
61
+ const res = await render(request, {
62
+ nodeReq,
63
+ monitors,
64
+ templates,
65
+ serverManifest,
66
+ rscServerManifest,
67
+ rscClientManifest,
68
+ rscSSRManifest,
69
+ loaderContext,
70
+ locals,
71
+ matchPathname,
72
+ matchEntryName,
73
+ contextForceCSR,
74
+ reporter
75
+ });
76
+ const { body, status, headers } = res;
77
+ const headersData = {};
78
+ headers.forEach((v, k)=>{
79
+ headersData[k] = v;
80
+ });
81
+ return c.body(body, status, headersData);
82
+ };
83
+ }
84
+ export { renderPlugin };
@@ -0,0 +1,55 @@
1
+ import { createRender } from "./render.mjs";
2
+ const injectRenderHandlerPlugin = ({ staticGenerate, cacheConfig })=>({
3
+ name: '@modern-js/plugin-inject-render',
4
+ setup (api) {
5
+ api.onPrepare(async ()=>{
6
+ const { distDirectory: pwd, routes, metaName } = api.getServerContext();
7
+ const config = api.getServerConfig();
8
+ const hooks = api.getHooks();
9
+ if (!routes) return;
10
+ const onFallback = async (reason, error)=>{
11
+ await hooks.fallback.call({
12
+ reason,
13
+ error
14
+ });
15
+ };
16
+ const getRenderHandlerOptions = {
17
+ pwd: pwd,
18
+ routes,
19
+ config,
20
+ metaName,
21
+ cacheConfig: cacheConfig,
22
+ staticGenerate,
23
+ onFallback
24
+ };
25
+ const render = await getRenderHandler(getRenderHandlerOptions);
26
+ api.updateServerContext({
27
+ render,
28
+ getRenderOptions: getRenderHandlerOptions
29
+ });
30
+ });
31
+ }
32
+ });
33
+ async function getRenderHandler({ pwd, routes, config, cacheConfig, metaName, staticGenerate, onFallback }) {
34
+ const ssrConfig = config.server?.ssr;
35
+ const ssrByEntries = config.server?.ssrByEntries;
36
+ const forceCSR = 'object' == typeof ssrConfig ? ssrConfig.forceCSR : false;
37
+ const forceCSRMap = new Map();
38
+ if (ssrByEntries) Object.entries(ssrByEntries).forEach(([entryName, ssrConfig])=>{
39
+ forceCSRMap.set(entryName, 'object' == typeof ssrConfig ? ssrConfig.forceCSR ?? false : false);
40
+ });
41
+ const render = createRender({
42
+ routes,
43
+ pwd,
44
+ config,
45
+ staticGenerate,
46
+ cacheConfig,
47
+ forceCSR,
48
+ forceCSRMap,
49
+ nonce: config.security?.nonce,
50
+ metaName: metaName || 'modern-js',
51
+ onFallback
52
+ });
53
+ return render;
54
+ }
55
+ export { getRenderHandler, injectRenderHandlerPlugin };