@bleedingdev/modern-js-server-core 3.2.0-ultramodern.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 (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/cjs/adapters/node/helper/index.js +55 -0
  4. package/dist/cjs/adapters/node/helper/loadCache.js +58 -0
  5. package/dist/cjs/adapters/node/helper/loadConfig.js +78 -0
  6. package/dist/cjs/adapters/node/helper/loadEnv.js +66 -0
  7. package/dist/cjs/adapters/node/helper/loadPlugin.js +47 -0
  8. package/dist/cjs/adapters/node/helper/utils.js +39 -0
  9. package/dist/cjs/adapters/node/hono.js +95 -0
  10. package/dist/cjs/adapters/node/index.js +87 -0
  11. package/dist/cjs/adapters/node/node.js +180 -0
  12. package/dist/cjs/adapters/node/plugins/index.js +72 -0
  13. package/dist/cjs/adapters/node/plugins/nodeServer.js +43 -0
  14. package/dist/cjs/adapters/node/plugins/resource.js +206 -0
  15. package/dist/cjs/adapters/node/plugins/static.js +379 -0
  16. package/dist/cjs/constants.js +77 -0
  17. package/dist/cjs/context.js +41 -0
  18. package/dist/cjs/helper.js +45 -0
  19. package/dist/cjs/hono.js +46 -0
  20. package/dist/cjs/index.js +247 -0
  21. package/dist/cjs/plugins/compat/hooks.js +80 -0
  22. package/dist/cjs/plugins/compat/index.js +64 -0
  23. package/dist/cjs/plugins/contractGateAutopilot.js +158 -0
  24. package/dist/cjs/plugins/contractGateSnapshotStore.js +239 -0
  25. package/dist/cjs/plugins/default.js +61 -0
  26. package/dist/cjs/plugins/favicon.js +48 -0
  27. package/dist/cjs/plugins/index.js +157 -0
  28. package/dist/cjs/plugins/log.js +92 -0
  29. package/dist/cjs/plugins/mfCache.js +78 -0
  30. package/dist/cjs/plugins/middlewares.js +49 -0
  31. package/dist/cjs/plugins/monitors.js +192 -0
  32. package/dist/cjs/plugins/processedBy.js +50 -0
  33. package/dist/cjs/plugins/render/csrRscRender.js +74 -0
  34. package/dist/cjs/plugins/render/dataHandler.js +53 -0
  35. package/dist/cjs/plugins/render/index.js +158 -0
  36. package/dist/cjs/plugins/render/inject.js +92 -0
  37. package/dist/cjs/plugins/render/render.js +273 -0
  38. package/dist/cjs/plugins/render/renderRscHandler.js +72 -0
  39. package/dist/cjs/plugins/render/serverActionHandler.js +47 -0
  40. package/dist/cjs/plugins/render/ssrCache.js +198 -0
  41. package/dist/cjs/plugins/render/ssrRender.js +96 -0
  42. package/dist/cjs/plugins/render/utils.js +49 -0
  43. package/dist/cjs/plugins/route.js +68 -0
  44. package/dist/cjs/plugins/telemetry.js +1283 -0
  45. package/dist/cjs/serverBase.js +176 -0
  46. package/dist/cjs/types/config/bff.js +18 -0
  47. package/dist/cjs/types/config/dev.js +18 -0
  48. package/dist/cjs/types/config/html.js +18 -0
  49. package/dist/cjs/types/config/index.js +93 -0
  50. package/dist/cjs/types/config/output.js +18 -0
  51. package/dist/cjs/types/config/security.js +18 -0
  52. package/dist/cjs/types/config/server.js +18 -0
  53. package/dist/cjs/types/config/share.js +18 -0
  54. package/dist/cjs/types/config/source.js +18 -0
  55. package/dist/cjs/types/config/tools.js +18 -0
  56. package/dist/cjs/types/index.js +79 -0
  57. package/dist/cjs/types/plugins/base.js +18 -0
  58. package/dist/cjs/types/plugins/index.js +58 -0
  59. package/dist/cjs/types/plugins/plugin.js +18 -0
  60. package/dist/cjs/types/render.js +18 -0
  61. package/dist/cjs/types/requestHandler.js +18 -0
  62. package/dist/cjs/types/server.js +18 -0
  63. package/dist/cjs/utils/entry.js +40 -0
  64. package/dist/cjs/utils/env.js +51 -0
  65. package/dist/cjs/utils/error.js +93 -0
  66. package/dist/cjs/utils/index.js +114 -0
  67. package/dist/cjs/utils/middlewareCollector.js +63 -0
  68. package/dist/cjs/utils/publicDir.js +92 -0
  69. package/dist/cjs/utils/request.js +86 -0
  70. package/dist/cjs/utils/serverConfig.js +43 -0
  71. package/dist/cjs/utils/storage.js +69 -0
  72. package/dist/cjs/utils/transformStream.js +65 -0
  73. package/dist/cjs/utils/warmup.js +40 -0
  74. package/dist/esm/adapters/node/helper/index.mjs +5 -0
  75. package/dist/esm/adapters/node/helper/loadCache.mjs +14 -0
  76. package/dist/esm/adapters/node/helper/loadConfig.mjs +31 -0
  77. package/dist/esm/adapters/node/helper/loadEnv.mjs +22 -0
  78. package/dist/esm/adapters/node/helper/loadPlugin.mjs +13 -0
  79. package/dist/esm/adapters/node/helper/utils.mjs +5 -0
  80. package/dist/esm/adapters/node/hono.mjs +55 -0
  81. package/dist/esm/adapters/node/index.mjs +4 -0
  82. package/dist/esm/adapters/node/node.mjs +130 -0
  83. package/dist/esm/adapters/node/plugins/index.mjs +3 -0
  84. package/dist/esm/adapters/node/plugins/nodeServer.mjs +9 -0
  85. package/dist/esm/adapters/node/plugins/resource.mjs +138 -0
  86. package/dist/esm/adapters/node/plugins/static.mjs +329 -0
  87. package/dist/esm/constants.mjs +28 -0
  88. package/dist/esm/context.mjs +4 -0
  89. package/dist/esm/helper.mjs +11 -0
  90. package/dist/esm/hono.mjs +2 -0
  91. package/dist/esm/index.mjs +12 -0
  92. package/dist/esm/plugins/compat/hooks.mjs +40 -0
  93. package/dist/esm/plugins/compat/index.mjs +27 -0
  94. package/dist/esm/plugins/contractGateAutopilot.mjs +124 -0
  95. package/dist/esm/plugins/contractGateSnapshotStore.mjs +180 -0
  96. package/dist/esm/plugins/default.mjs +27 -0
  97. package/dist/esm/plugins/favicon.mjs +14 -0
  98. package/dist/esm/plugins/index.mjs +11 -0
  99. package/dist/esm/plugins/log.mjs +58 -0
  100. package/dist/esm/plugins/mfCache.mjs +35 -0
  101. package/dist/esm/plugins/middlewares.mjs +15 -0
  102. package/dist/esm/plugins/monitors.mjs +149 -0
  103. package/dist/esm/plugins/processedBy.mjs +16 -0
  104. package/dist/esm/plugins/render/csrRscRender.mjs +40 -0
  105. package/dist/esm/plugins/render/dataHandler.mjs +19 -0
  106. package/dist/esm/plugins/render/index.mjs +84 -0
  107. package/dist/esm/plugins/render/inject.mjs +55 -0
  108. package/dist/esm/plugins/render/render.mjs +230 -0
  109. package/dist/esm/plugins/render/renderRscHandler.mjs +38 -0
  110. package/dist/esm/plugins/render/serverActionHandler.mjs +13 -0
  111. package/dist/esm/plugins/render/ssrCache.mjs +158 -0
  112. package/dist/esm/plugins/render/ssrRender.mjs +62 -0
  113. package/dist/esm/plugins/render/utils.mjs +15 -0
  114. package/dist/esm/plugins/route.mjs +34 -0
  115. package/dist/esm/plugins/telemetry.mjs +1195 -0
  116. package/dist/esm/rslib-runtime.mjs +18 -0
  117. package/dist/esm/serverBase.mjs +139 -0
  118. package/dist/esm/types/config/bff.mjs +0 -0
  119. package/dist/esm/types/config/dev.mjs +0 -0
  120. package/dist/esm/types/config/html.mjs +0 -0
  121. package/dist/esm/types/config/index.mjs +6 -0
  122. package/dist/esm/types/config/output.mjs +0 -0
  123. package/dist/esm/types/config/security.mjs +0 -0
  124. package/dist/esm/types/config/server.mjs +0 -0
  125. package/dist/esm/types/config/share.mjs +0 -0
  126. package/dist/esm/types/config/source.mjs +0 -0
  127. package/dist/esm/types/config/tools.mjs +0 -0
  128. package/dist/esm/types/index.mjs +4 -0
  129. package/dist/esm/types/plugins/base.mjs +0 -0
  130. package/dist/esm/types/plugins/index.mjs +1 -0
  131. package/dist/esm/types/plugins/plugin.mjs +0 -0
  132. package/dist/esm/types/render.mjs +0 -0
  133. package/dist/esm/types/requestHandler.mjs +0 -0
  134. package/dist/esm/types/server.mjs +0 -0
  135. package/dist/esm/utils/entry.mjs +3 -0
  136. package/dist/esm/utils/env.mjs +14 -0
  137. package/dist/esm/utils/error.mjs +53 -0
  138. package/dist/esm/utils/index.mjs +9 -0
  139. package/dist/esm/utils/middlewareCollector.mjs +26 -0
  140. package/dist/esm/utils/publicDir.mjs +33 -0
  141. package/dist/esm/utils/request.mjs +40 -0
  142. package/dist/esm/utils/serverConfig.mjs +9 -0
  143. package/dist/esm/utils/storage.mjs +35 -0
  144. package/dist/esm/utils/transformStream.mjs +28 -0
  145. package/dist/esm/utils/warmup.mjs +6 -0
  146. package/dist/esm-node/adapters/node/helper/index.mjs +6 -0
  147. package/dist/esm-node/adapters/node/helper/loadCache.mjs +15 -0
  148. package/dist/esm-node/adapters/node/helper/loadConfig.mjs +32 -0
  149. package/dist/esm-node/adapters/node/helper/loadEnv.mjs +23 -0
  150. package/dist/esm-node/adapters/node/helper/loadPlugin.mjs +14 -0
  151. package/dist/esm-node/adapters/node/helper/utils.mjs +6 -0
  152. package/dist/esm-node/adapters/node/hono.mjs +56 -0
  153. package/dist/esm-node/adapters/node/index.mjs +5 -0
  154. package/dist/esm-node/adapters/node/node.mjs +131 -0
  155. package/dist/esm-node/adapters/node/plugins/index.mjs +4 -0
  156. package/dist/esm-node/adapters/node/plugins/nodeServer.mjs +10 -0
  157. package/dist/esm-node/adapters/node/plugins/resource.mjs +139 -0
  158. package/dist/esm-node/adapters/node/plugins/static.mjs +330 -0
  159. package/dist/esm-node/constants.mjs +29 -0
  160. package/dist/esm-node/context.mjs +5 -0
  161. package/dist/esm-node/helper.mjs +12 -0
  162. package/dist/esm-node/hono.mjs +3 -0
  163. package/dist/esm-node/index.mjs +13 -0
  164. package/dist/esm-node/plugins/compat/hooks.mjs +41 -0
  165. package/dist/esm-node/plugins/compat/index.mjs +28 -0
  166. package/dist/esm-node/plugins/contractGateAutopilot.mjs +125 -0
  167. package/dist/esm-node/plugins/contractGateSnapshotStore.mjs +182 -0
  168. package/dist/esm-node/plugins/default.mjs +28 -0
  169. package/dist/esm-node/plugins/favicon.mjs +15 -0
  170. package/dist/esm-node/plugins/index.mjs +12 -0
  171. package/dist/esm-node/plugins/log.mjs +59 -0
  172. package/dist/esm-node/plugins/mfCache.mjs +36 -0
  173. package/dist/esm-node/plugins/middlewares.mjs +16 -0
  174. package/dist/esm-node/plugins/monitors.mjs +150 -0
  175. package/dist/esm-node/plugins/processedBy.mjs +17 -0
  176. package/dist/esm-node/plugins/render/csrRscRender.mjs +41 -0
  177. package/dist/esm-node/plugins/render/dataHandler.mjs +20 -0
  178. package/dist/esm-node/plugins/render/index.mjs +85 -0
  179. package/dist/esm-node/plugins/render/inject.mjs +56 -0
  180. package/dist/esm-node/plugins/render/render.mjs +231 -0
  181. package/dist/esm-node/plugins/render/renderRscHandler.mjs +39 -0
  182. package/dist/esm-node/plugins/render/serverActionHandler.mjs +14 -0
  183. package/dist/esm-node/plugins/render/ssrCache.mjs +159 -0
  184. package/dist/esm-node/plugins/render/ssrRender.mjs +63 -0
  185. package/dist/esm-node/plugins/render/utils.mjs +16 -0
  186. package/dist/esm-node/plugins/route.mjs +35 -0
  187. package/dist/esm-node/plugins/telemetry.mjs +1196 -0
  188. package/dist/esm-node/rslib-runtime.mjs +19 -0
  189. package/dist/esm-node/serverBase.mjs +140 -0
  190. package/dist/esm-node/types/config/bff.mjs +1 -0
  191. package/dist/esm-node/types/config/dev.mjs +1 -0
  192. package/dist/esm-node/types/config/html.mjs +1 -0
  193. package/dist/esm-node/types/config/index.mjs +7 -0
  194. package/dist/esm-node/types/config/output.mjs +1 -0
  195. package/dist/esm-node/types/config/security.mjs +1 -0
  196. package/dist/esm-node/types/config/server.mjs +1 -0
  197. package/dist/esm-node/types/config/share.mjs +1 -0
  198. package/dist/esm-node/types/config/source.mjs +1 -0
  199. package/dist/esm-node/types/config/tools.mjs +1 -0
  200. package/dist/esm-node/types/index.mjs +5 -0
  201. package/dist/esm-node/types/plugins/base.mjs +1 -0
  202. package/dist/esm-node/types/plugins/index.mjs +2 -0
  203. package/dist/esm-node/types/plugins/plugin.mjs +1 -0
  204. package/dist/esm-node/types/render.mjs +1 -0
  205. package/dist/esm-node/types/requestHandler.mjs +1 -0
  206. package/dist/esm-node/types/server.mjs +1 -0
  207. package/dist/esm-node/utils/entry.mjs +4 -0
  208. package/dist/esm-node/utils/env.mjs +15 -0
  209. package/dist/esm-node/utils/error.mjs +54 -0
  210. package/dist/esm-node/utils/index.mjs +10 -0
  211. package/dist/esm-node/utils/middlewareCollector.mjs +27 -0
  212. package/dist/esm-node/utils/publicDir.mjs +34 -0
  213. package/dist/esm-node/utils/request.mjs +41 -0
  214. package/dist/esm-node/utils/serverConfig.mjs +10 -0
  215. package/dist/esm-node/utils/storage.mjs +36 -0
  216. package/dist/esm-node/utils/transformStream.mjs +29 -0
  217. package/dist/esm-node/utils/warmup.mjs +7 -0
  218. package/dist/types/adapters/node/helper/index.d.ts +6 -0
  219. package/dist/types/adapters/node/helper/loadCache.d.ts +2 -0
  220. package/dist/types/adapters/node/helper/loadConfig.d.ts +3 -0
  221. package/dist/types/adapters/node/helper/loadEnv.d.ts +3 -0
  222. package/dist/types/adapters/node/helper/loadPlugin.d.ts +3 -0
  223. package/dist/types/adapters/node/helper/utils.d.ts +21 -0
  224. package/dist/types/adapters/node/hono.d.ts +19 -0
  225. package/dist/types/adapters/node/index.d.ts +5 -0
  226. package/dist/types/adapters/node/node.d.ts +17 -0
  227. package/dist/types/adapters/node/plugins/index.d.ts +3 -0
  228. package/dist/types/adapters/node/plugins/nodeServer.d.ts +6 -0
  229. package/dist/types/adapters/node/plugins/resource.d.ts +11 -0
  230. package/dist/types/adapters/node/plugins/static.d.ts +25 -0
  231. package/dist/types/constants.d.ts +26 -0
  232. package/dist/types/context.d.ts +3 -0
  233. package/dist/types/helper.d.ts +10 -0
  234. package/dist/types/hono.d.ts +3 -0
  235. package/dist/types/index.d.ts +14 -0
  236. package/dist/types/plugins/compat/hooks.d.ts +8 -0
  237. package/dist/types/plugins/compat/index.d.ts +3 -0
  238. package/dist/types/plugins/contractGateAutopilot.d.ts +35 -0
  239. package/dist/types/plugins/contractGateSnapshotStore.d.ts +57 -0
  240. package/dist/types/plugins/default.d.ts +7 -0
  241. package/dist/types/plugins/favicon.d.ts +2 -0
  242. package/dist/types/plugins/index.d.ts +11 -0
  243. package/dist/types/plugins/log.d.ts +2 -0
  244. package/dist/types/plugins/mfCache.d.ts +12 -0
  245. package/dist/types/plugins/middlewares.d.ts +2 -0
  246. package/dist/types/plugins/monitors.d.ts +6 -0
  247. package/dist/types/plugins/processedBy.d.ts +2 -0
  248. package/dist/types/plugins/render/csrRscRender.d.ts +2 -0
  249. package/dist/types/plugins/render/dataHandler.d.ts +5 -0
  250. package/dist/types/plugins/render/index.d.ts +3 -0
  251. package/dist/types/plugins/render/inject.d.ts +7 -0
  252. package/dist/types/plugins/render/render.d.ts +16 -0
  253. package/dist/types/plugins/render/renderRscHandler.d.ts +2 -0
  254. package/dist/types/plugins/render/serverActionHandler.d.ts +2 -0
  255. package/dist/types/plugins/render/ssrCache.d.ts +18 -0
  256. package/dist/types/plugins/render/ssrRender.d.ts +26 -0
  257. package/dist/types/plugins/render/utils.d.ts +3 -0
  258. package/dist/types/plugins/route.d.ts +2 -0
  259. package/dist/types/plugins/telemetry.d.ts +309 -0
  260. package/dist/types/serverBase.d.ts +38 -0
  261. package/dist/types/types/config/bff.d.ts +142 -0
  262. package/dist/types/types/config/dev.d.ts +4 -0
  263. package/dist/types/types/config/html.d.ts +15 -0
  264. package/dist/types/types/config/index.d.ts +35 -0
  265. package/dist/types/types/config/output.d.ts +20 -0
  266. package/dist/types/types/config/security.d.ts +4 -0
  267. package/dist/types/types/config/server.d.ts +402 -0
  268. package/dist/types/types/config/share.d.ts +3 -0
  269. package/dist/types/types/config/source.d.ts +7 -0
  270. package/dist/types/types/config/tools.d.ts +2 -0
  271. package/dist/types/types/index.d.ts +4 -0
  272. package/dist/types/types/plugins/base.d.ts +57 -0
  273. package/dist/types/types/plugins/index.d.ts +2 -0
  274. package/dist/types/types/plugins/plugin.d.ts +31 -0
  275. package/dist/types/types/render.d.ts +24 -0
  276. package/dist/types/types/requestHandler.d.ts +48 -0
  277. package/dist/types/types/server.d.ts +67 -0
  278. package/dist/types/utils/entry.d.ts +3 -0
  279. package/dist/types/utils/env.d.ts +2 -0
  280. package/dist/types/utils/error.d.ts +8 -0
  281. package/dist/types/utils/index.d.ts +9 -0
  282. package/dist/types/utils/middlewareCollector.d.ts +12 -0
  283. package/dist/types/utils/publicDir.d.ts +40 -0
  284. package/dist/types/utils/request.d.ts +17 -0
  285. package/dist/types/utils/serverConfig.d.ts +8 -0
  286. package/dist/types/utils/storage.d.ts +5 -0
  287. package/dist/types/utils/transformStream.d.ts +5 -0
  288. package/dist/types/utils/warmup.d.ts +1 -0
  289. package/package.json +103 -0
  290. package/rslib.config.mts +4 -0
  291. package/rstest.config.mts +7 -0
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ createNodeServer: ()=>createNodeServer,
37
+ createWebRequest: ()=>createWebRequest,
38
+ sendResponse: ()=>sendResponse
39
+ });
40
+ const external_node_http_namespaceObject = require("node:http");
41
+ const external_node_stream_namespaceObject = require("node:stream");
42
+ const external_cloneable_readable_namespaceObject = require("cloneable-readable");
43
+ var external_cloneable_readable_default = /*#__PURE__*/ __webpack_require__.n(external_cloneable_readable_namespaceObject);
44
+ const index_js_namespaceObject = require("./helper/index.js");
45
+ const createWebRequest = (req, res, body)=>{
46
+ const headerRecord = [];
47
+ for (const [key, value] of Object.entries(req.headers))if (!key.startsWith(':')) {
48
+ if (Array.isArray(value)) {
49
+ for (const item of value)if (void 0 !== item) headerRecord.push([
50
+ key,
51
+ item
52
+ ]);
53
+ } else if (void 0 !== value) {
54
+ if ('string' == typeof value) headerRecord.push([
55
+ key,
56
+ value
57
+ ]);
58
+ }
59
+ }
60
+ const { method } = req;
61
+ const controller = new AbortController();
62
+ const init = {
63
+ method,
64
+ headers: headerRecord,
65
+ signal: controller.signal
66
+ };
67
+ res.on('close', ()=>controller.abort('res closed'));
68
+ const url = `http://${req.headers.host}${req.url}`;
69
+ const needsRequestBody = body || !('GET' === method || 'HEAD' === method);
70
+ const cloneableReq = needsRequestBody ? external_cloneable_readable_default()(req) : null;
71
+ if (needsRequestBody) {
72
+ if (body) init.body = body;
73
+ else {
74
+ const stream = cloneableReq.clone();
75
+ init.body = external_node_stream_namespaceObject.Readable.toWeb(stream);
76
+ }
77
+ init.duplex = 'half';
78
+ }
79
+ const originalRequest = new Request(url, init);
80
+ if (needsRequestBody) {
81
+ const interceptedMethods = [
82
+ 'json',
83
+ 'text',
84
+ 'blob',
85
+ 'arrayBuffer',
86
+ 'formData'
87
+ ];
88
+ return new Proxy(originalRequest, {
89
+ get (target, prop) {
90
+ if (interceptedMethods.includes(prop)) return (...args)=>{
91
+ cloneableReq.resume();
92
+ return target[prop].call(target, ...args);
93
+ };
94
+ const value = target[prop];
95
+ if ('body' === prop) {
96
+ cloneableReq.resume();
97
+ return value;
98
+ }
99
+ if ('function' == typeof value) return (...args)=>value.apply(target, args);
100
+ return value;
101
+ }
102
+ });
103
+ }
104
+ return originalRequest;
105
+ };
106
+ const sendResponse = async (response, res)=>{
107
+ res.statusMessage = response.statusText;
108
+ res.statusCode = response.status;
109
+ const cookies = [];
110
+ for (const [key, value] of response.headers.entries())if ('set-cookie' === key) cookies.push(value);
111
+ else res.setHeader(key, value);
112
+ if (cookies.length > 0) res.setHeader('set-cookie', cookies);
113
+ if (response.headers.get('Content-Type')?.match(/text\/event-stream/i) && res instanceof external_node_http_namespaceObject.ServerResponse) res.flushHeaders();
114
+ if (response.body) {
115
+ const writable = external_node_stream_namespaceObject.Writable.toWeb(res);
116
+ await response.body.pipeTo(writable);
117
+ } else res.end();
118
+ };
119
+ const handleResponseError = (e, res)=>{
120
+ const err = e instanceof Error ? e : new Error('unknown error', {
121
+ cause: e
122
+ });
123
+ if ('ABORT_ERR' === err.code || 'ERR_STREAM_PREMATURE_CLOSE' === err.code) console.info('The user aborted a request.');
124
+ else {
125
+ console.error(e);
126
+ if (!res.headersSent) {
127
+ res.statusCode = 500;
128
+ res.setHeader('Content-Type', 'text/plain');
129
+ }
130
+ res.end(`Error: ${err.message}`);
131
+ res.destroy(err);
132
+ }
133
+ };
134
+ const getRequestListener = (handler)=>async (req, res)=>{
135
+ try {
136
+ const request = createWebRequest(req, res);
137
+ const response = await handler(request, {
138
+ node: {
139
+ req,
140
+ res
141
+ }
142
+ });
143
+ if (!response.res && !(0, index_js_namespaceObject.isResFinalized)(res)) await sendResponse(response, res);
144
+ } catch (error) {
145
+ return handleResponseError(error, res);
146
+ }
147
+ };
148
+ const createNodeServer = async (requestHandler, httpsOptions, http2)=>{
149
+ const requestListener = getRequestListener(requestHandler);
150
+ let nodeServer;
151
+ if (httpsOptions) if (http2) {
152
+ const { createSecureServer } = await import("node:http2");
153
+ nodeServer = createSecureServer({
154
+ allowHTTP1: true,
155
+ maxSessionMemory: 1024,
156
+ ...httpsOptions
157
+ }, (req, res)=>requestListener(req, res));
158
+ } else {
159
+ const { createServer } = await import("node:https");
160
+ nodeServer = createServer(httpsOptions, requestListener);
161
+ }
162
+ else {
163
+ const { createServer } = await import("node:http");
164
+ nodeServer = createServer(requestListener);
165
+ }
166
+ nodeServer.getRequestListener = ()=>requestListener;
167
+ nodeServer.getRequestHandler = ()=>requestHandler;
168
+ return nodeServer;
169
+ };
170
+ exports.createNodeServer = __webpack_exports__.createNodeServer;
171
+ exports.createWebRequest = __webpack_exports__.createWebRequest;
172
+ exports.sendResponse = __webpack_exports__.sendResponse;
173
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
174
+ "createNodeServer",
175
+ "createWebRequest",
176
+ "sendResponse"
177
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
178
+ Object.defineProperty(exports, '__esModule', {
179
+ value: true
180
+ });
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./nodeServer" (module) {
4
+ module.exports = require("./nodeServer.js");
5
+ },
6
+ "./resource" (module) {
7
+ module.exports = require("./resource.js");
8
+ },
9
+ "./static" (module) {
10
+ module.exports = require("./static.js");
11
+ }
12
+ };
13
+ var __webpack_module_cache__ = {};
14
+ function __webpack_require__(moduleId) {
15
+ var cachedModule = __webpack_module_cache__[moduleId];
16
+ if (void 0 !== cachedModule) return cachedModule.exports;
17
+ var module = __webpack_module_cache__[moduleId] = {
18
+ exports: {}
19
+ };
20
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
21
+ return module.exports;
22
+ }
23
+ (()=>{
24
+ __webpack_require__.n = (module)=>{
25
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
26
+ __webpack_require__.d(getter, {
27
+ a: getter
28
+ });
29
+ return getter;
30
+ };
31
+ })();
32
+ (()=>{
33
+ __webpack_require__.d = (exports1, definition)=>{
34
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
35
+ enumerable: true,
36
+ get: definition[key]
37
+ });
38
+ };
39
+ })();
40
+ (()=>{
41
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
42
+ })();
43
+ (()=>{
44
+ __webpack_require__.r = (exports1)=>{
45
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
46
+ value: 'Module'
47
+ });
48
+ Object.defineProperty(exports1, '__esModule', {
49
+ value: true
50
+ });
51
+ };
52
+ })();
53
+ var __webpack_exports__ = {};
54
+ (()=>{
55
+ __webpack_require__.r(__webpack_exports__);
56
+ var _nodeServer__rspack_import_0 = __webpack_require__("./nodeServer");
57
+ var __rspack_reexport = {};
58
+ for(const __rspack_import_key in _nodeServer__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_nodeServer__rspack_import_0[__rspack_import_key];
59
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
60
+ var _resource__rspack_import_1 = __webpack_require__("./resource");
61
+ var __rspack_reexport = {};
62
+ for(const __rspack_import_key in _resource__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_resource__rspack_import_1[__rspack_import_key];
63
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
64
+ var _static__rspack_import_2 = __webpack_require__("./static");
65
+ var __rspack_reexport = {};
66
+ for(const __rspack_import_key in _static__rspack_import_2)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_static__rspack_import_2[__rspack_import_key];
67
+ __webpack_require__.d(__webpack_exports__, __rspack_reexport);
68
+ })();
69
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
70
+ Object.defineProperty(exports, '__esModule', {
71
+ value: true
72
+ });
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ injectNodeSeverPlugin: ()=>injectNodeSeverPlugin
28
+ });
29
+ const injectNodeSeverPlugin = ({ nodeServer })=>({
30
+ name: '@modern-js/plugin-inject-node-server',
31
+ setup (api) {
32
+ api.updateServerContext({
33
+ nodeServer
34
+ });
35
+ }
36
+ });
37
+ exports.injectNodeSeverPlugin = __webpack_exports__.injectNodeSeverPlugin;
38
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
39
+ "injectNodeSeverPlugin"
40
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
41
+ Object.defineProperty(exports, '__esModule', {
42
+ value: true
43
+ });
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ getClientManifest: ()=>getClientManifest,
37
+ getHtmlTemplates: ()=>getHtmlTemplates,
38
+ getRscSSRManifest: ()=>getRscSSRManifest,
39
+ getRscServerManifest: ()=>getRscServerManifest,
40
+ getServerManifest: ()=>getServerManifest,
41
+ injectResourcePlugin: ()=>injectResourcePlugin,
42
+ injectRscManifestPlugin: ()=>injectRscManifestPlugin,
43
+ injectServerManifest: ()=>injectServerManifest,
44
+ injectTemplates: ()=>injectTemplates
45
+ });
46
+ const fileReader_namespaceObject = require("@modern-js/runtime-utils/fileReader");
47
+ const utils_namespaceObject = require("@modern-js/utils");
48
+ const external_path_namespaceObject = require("path");
49
+ var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
50
+ const index_js_namespaceObject = require("../../../utils/index.js");
51
+ async function getHtmlTemplates(pwd, routes) {
52
+ const htmlRoutes = routes.filter((route)=>route.entryName);
53
+ const htmls = await Promise.all(htmlRoutes.map(async (route)=>{
54
+ let html;
55
+ try {
56
+ const htmlPath = external_path_default().join(pwd, route.entryPath);
57
+ html = (await fileReader_namespaceObject.fileReader.readFile(htmlPath, 'utf-8'))?.toString();
58
+ } catch (e) {}
59
+ return [
60
+ (0, index_js_namespaceObject.uniqueKeyByRoute)(route),
61
+ html
62
+ ];
63
+ }) || []);
64
+ const templates = Object.fromEntries(htmls);
65
+ return templates;
66
+ }
67
+ function injectTemplates(pwd, routes, htmlTemplatePromise) {
68
+ return async (c, next)=>{
69
+ if (routes && !c.get('templates')) {
70
+ const templates = await (htmlTemplatePromise || getHtmlTemplates(pwd, routes));
71
+ c.set('templates', templates);
72
+ }
73
+ await next();
74
+ };
75
+ }
76
+ const loadBundle = async (filepath, monitors)=>{
77
+ if (!await utils_namespaceObject.fs.pathExists(filepath)) return;
78
+ try {
79
+ const module = await (0, utils_namespaceObject.compatibleRequire)(filepath, false);
80
+ return module;
81
+ } catch (e) {
82
+ if (monitors) monitors.error(`Load ${filepath} bundle failed, error = %s`, e instanceof Error ? e.stack || e.message : e);
83
+ else console.error(`Load ${filepath} bundle failed, error = ${e instanceof Error ? e.stack || e.message : e}`);
84
+ return;
85
+ }
86
+ };
87
+ async function getServerManifest(pwd, routes, monitors) {
88
+ const loaderBundles = {};
89
+ const renderBundles = {};
90
+ await Promise.all(routes.filter((route)=>Boolean(route.bundle)).map(async (route)=>{
91
+ const entryName = route.entryName || utils_namespaceObject.MAIN_ENTRY_NAME;
92
+ const renderBundlePath = external_path_default().join(pwd, route.bundle || '');
93
+ const loaderBundlePath = external_path_default().join(pwd, utils_namespaceObject.SERVER_BUNDLE_DIRECTORY, `${entryName}-server-loaders.js`);
94
+ const renderBundle = await loadBundle(renderBundlePath, monitors);
95
+ const loaderBundle = await loadBundle(loaderBundlePath, monitors);
96
+ renderBundle && (renderBundles[entryName] = renderBundle);
97
+ loaderBundle && (loaderBundles[entryName] = loaderBundle?.loadModules ? await loaderBundle?.loadModules() : loaderBundle);
98
+ }));
99
+ const loadableUri = external_path_default().join(pwd, utils_namespaceObject.LOADABLE_STATS_FILE);
100
+ const loadableStats = await (0, utils_namespaceObject.compatibleRequire)(loadableUri).catch((_)=>({}));
101
+ const routesManifestUri = external_path_default().join(pwd, utils_namespaceObject.ROUTE_MANIFEST_FILE);
102
+ const routeManifest = await (0, utils_namespaceObject.compatibleRequire)(routesManifestUri).catch((_)=>({}));
103
+ const nestedRoutesJsonPath = external_path_default().join(pwd, utils_namespaceObject.NESTED_ROUTE_SPEC_FILE);
104
+ const nestedRoutesJson = await (0, utils_namespaceObject.compatibleRequire)(nestedRoutesJsonPath).catch((_)=>({}));
105
+ return {
106
+ loaderBundles,
107
+ renderBundles,
108
+ loadableStats,
109
+ routeManifest,
110
+ nestedRoutesJson
111
+ };
112
+ }
113
+ function injectServerManifest(pwd, routes, manifestPromise) {
114
+ return async (c, next)=>{
115
+ if (routes && !c.get('serverManifest')) {
116
+ const monitors = c.get('monitors');
117
+ const serverManifest = await (manifestPromise || getServerManifest(pwd, routes, monitors));
118
+ c.set('serverManifest', serverManifest);
119
+ }
120
+ await next();
121
+ };
122
+ }
123
+ async function getRscServerManifest(pwd) {
124
+ const rscServerManifest = await (0, utils_namespaceObject.compatibleRequire)(external_path_default().join(pwd, 'bundles', 'react-server-manifest.json')).catch((_)=>void 0);
125
+ return rscServerManifest;
126
+ }
127
+ async function getClientManifest(pwd) {
128
+ const rscClientManifest = await (0, utils_namespaceObject.compatibleRequire)(external_path_default().join(pwd, 'react-client-manifest.json')).catch((_)=>void 0);
129
+ return rscClientManifest;
130
+ }
131
+ async function getRscSSRManifest(pwd) {
132
+ const rscSSRManifest = await (0, utils_namespaceObject.compatibleRequire)(external_path_default().join(pwd, 'react-ssr-manifest.json')).catch((_)=>void 0);
133
+ return rscSSRManifest;
134
+ }
135
+ const injectRscManifestPlugin = (enableRsc)=>({
136
+ name: '@modern-js/plugin-inject-rsc-manifest',
137
+ setup (api) {
138
+ api.onPrepare(()=>{
139
+ const { middlewares, distDirectory: pwd } = api.getServerContext();
140
+ if (!enableRsc) return;
141
+ middlewares.push({
142
+ name: 'inject-rsc-manifest',
143
+ handler: async (c, next)=>{
144
+ if (!c.get('rscServerManifest')) {
145
+ const rscServerManifest = await getRscServerManifest(pwd);
146
+ c.set('rscServerManifest', rscServerManifest);
147
+ }
148
+ if (!c.get('rscClientManifest')) {
149
+ const rscClientManifest = await getClientManifest(pwd);
150
+ c.set('rscClientManifest', rscClientManifest);
151
+ }
152
+ if (!c.get('rscSSRManifest')) {
153
+ const rscSSRManifest = await getRscSSRManifest(pwd);
154
+ c.set('rscSSRManifest', rscSSRManifest);
155
+ }
156
+ await next();
157
+ }
158
+ });
159
+ });
160
+ }
161
+ });
162
+ const injectResourcePlugin = ()=>({
163
+ name: '@modern-js/plugin-inject-resource',
164
+ setup (api) {
165
+ api.onPrepare(()=>{
166
+ const { middlewares, routes, distDirectory: pwd } = api.getServerContext();
167
+ let htmlTemplatePromise;
168
+ let manifestPromise;
169
+ if ((0, utils_namespaceObject.isProd)()) {
170
+ manifestPromise = getServerManifest(pwd, routes || [], void 0);
171
+ htmlTemplatePromise = getHtmlTemplates(pwd, routes || []);
172
+ }
173
+ middlewares.push({
174
+ name: 'inject-server-manifest',
175
+ handler: injectServerManifest(pwd, routes, manifestPromise)
176
+ });
177
+ middlewares.push({
178
+ name: 'inject-html',
179
+ handler: injectTemplates(pwd, routes, htmlTemplatePromise)
180
+ });
181
+ });
182
+ }
183
+ });
184
+ exports.getClientManifest = __webpack_exports__.getClientManifest;
185
+ exports.getHtmlTemplates = __webpack_exports__.getHtmlTemplates;
186
+ exports.getRscSSRManifest = __webpack_exports__.getRscSSRManifest;
187
+ exports.getRscServerManifest = __webpack_exports__.getRscServerManifest;
188
+ exports.getServerManifest = __webpack_exports__.getServerManifest;
189
+ exports.injectResourcePlugin = __webpack_exports__.injectResourcePlugin;
190
+ exports.injectRscManifestPlugin = __webpack_exports__.injectRscManifestPlugin;
191
+ exports.injectServerManifest = __webpack_exports__.injectServerManifest;
192
+ exports.injectTemplates = __webpack_exports__.injectTemplates;
193
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
194
+ "getClientManifest",
195
+ "getHtmlTemplates",
196
+ "getRscSSRManifest",
197
+ "getRscServerManifest",
198
+ "getServerManifest",
199
+ "injectResourcePlugin",
200
+ "injectRscManifestPlugin",
201
+ "injectServerManifest",
202
+ "injectTemplates"
203
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
204
+ Object.defineProperty(exports, '__esModule', {
205
+ value: true
206
+ });