vite-plugin-react-server 0.3.9 → 0.3.11

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 (197) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +1 -1
  4. package/dist/index.d.ts +3 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/package.json +2 -4
  9. package/dist/plugin/assertServerCondition.d.ts +5 -1
  10. package/dist/plugin/assertServerCondition.d.ts.map +1 -1
  11. package/dist/plugin/assertServerCondition.js +1 -3
  12. package/dist/plugin/checkFilesExist.js +10 -7
  13. package/dist/plugin/checkFilesExist.js.map +1 -1
  14. package/dist/plugin/components.js +1 -1
  15. package/dist/plugin/components.js.map +1 -1
  16. package/dist/plugin/config/createModuleIdGenerator.d.ts +11 -0
  17. package/dist/plugin/config/createModuleIdGenerator.d.ts.map +1 -0
  18. package/dist/plugin/config/createModuleIdGenerator.js +44 -0
  19. package/dist/plugin/config/createModuleIdGenerator.js.map +1 -0
  20. package/dist/plugin/config/defaults.d.ts +31 -19
  21. package/dist/plugin/config/defaults.d.ts.map +1 -1
  22. package/dist/plugin/config/defaults.js +22 -27
  23. package/dist/plugin/config/defaults.js.map +1 -1
  24. package/dist/plugin/config/resolveOptions.d.ts +1 -1
  25. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  26. package/dist/plugin/config/resolveOptions.js +202 -16
  27. package/dist/plugin/config/resolveOptions.js.map +1 -1
  28. package/dist/plugin/config/resolvePages.d.ts +2 -0
  29. package/dist/plugin/config/resolvePages.d.ts.map +1 -1
  30. package/dist/plugin/config/resolvePages.js.map +1 -1
  31. package/dist/plugin/config/resolveUserConfig.d.ts +2 -2
  32. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  33. package/dist/plugin/config/resolveUserConfig.js +161 -50
  34. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  35. package/dist/plugin/helpers/getBundleManifest.d.ts +20 -0
  36. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -0
  37. package/dist/plugin/helpers/getBundleManifest.js +43 -0
  38. package/dist/plugin/helpers/getBundleManifest.js.map +1 -0
  39. package/dist/plugin/helpers/getModuleManifest.d.ts +5 -0
  40. package/dist/plugin/helpers/getModuleManifest.d.ts.map +1 -1
  41. package/dist/plugin/helpers/getModuleManifest.js +20 -21
  42. package/dist/plugin/helpers/inputNormalizer.d.ts +15 -1
  43. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  44. package/dist/plugin/helpers/inputNormalizer.js +122 -16
  45. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  46. package/dist/plugin/helpers/inputNormalizerWorker.d.ts +2 -1
  47. package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +1 -1
  48. package/dist/plugin/helpers/inputNormalizerWorker.js +10 -7
  49. package/dist/plugin/helpers/tryManifest.d.ts +2 -0
  50. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  51. package/dist/plugin/helpers/tryManifest.js +1 -1
  52. package/dist/plugin/helpers/tryManifest.js.map +1 -1
  53. package/dist/plugin/loader/createBuildLoader.d.ts +6 -2
  54. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  55. package/dist/plugin/loader/createBuildLoader.js +35 -10
  56. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  57. package/dist/plugin/loader/createPageLoader.d.ts.map +1 -1
  58. package/dist/plugin/loader/createPageLoader.js +0 -7
  59. package/dist/plugin/plugin.d.ts +0 -1
  60. package/dist/plugin/plugin.d.ts.map +1 -1
  61. package/dist/plugin/plugin.js +2 -1
  62. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  63. package/dist/plugin/preserver/plugin.js +3 -2
  64. package/dist/plugin/preserver/plugin.js.map +1 -1
  65. package/dist/plugin/react-client/index.d.ts +2 -1
  66. package/dist/plugin/react-client/index.d.ts.map +1 -1
  67. package/dist/plugin/react-client/index.js +19 -1
  68. package/dist/plugin/react-client/index.js.map +1 -0
  69. package/dist/plugin/react-client/plugin.d.ts +2 -2
  70. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  71. package/dist/plugin/react-client/plugin.js +106 -10
  72. package/dist/plugin/react-client/plugin.js.map +1 -1
  73. package/dist/plugin/react-server/createHandler.d.ts +2 -2
  74. package/dist/plugin/react-server/createHandler.d.ts.map +1 -1
  75. package/dist/plugin/react-server/createHandler.js +5 -5
  76. package/dist/plugin/react-server/createHandler.js.map +1 -1
  77. package/dist/plugin/react-server/createRscStream.d.ts.map +1 -1
  78. package/dist/plugin/react-server/createRscStream.js +15 -1
  79. package/dist/plugin/react-server/createRscStream.js.map +1 -1
  80. package/dist/plugin/react-server/createSsrHandler.d.ts +2 -2
  81. package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -1
  82. package/dist/plugin/react-server/createSsrHandler.js +5 -12
  83. package/dist/plugin/react-server/index.js +18 -9
  84. package/dist/plugin/react-server/index.js.map +1 -0
  85. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  86. package/dist/plugin/react-server/plugin.js +133 -127
  87. package/dist/plugin/react-server/plugin.js.map +1 -1
  88. package/dist/plugin/transformer/plugin.d.ts +2 -1
  89. package/dist/plugin/transformer/plugin.d.ts.map +1 -1
  90. package/dist/plugin/transformer/plugin.js +52 -72
  91. package/dist/plugin/transformer/plugin.js.map +1 -1
  92. package/dist/plugin/transformer/transformer-client-components.d.ts +12 -3
  93. package/dist/plugin/transformer/transformer-client-components.d.ts.map +1 -1
  94. package/dist/plugin/transformer/transformer-client-components.js +71 -10
  95. package/dist/plugin/transformer/transformer-client-components.js.map +1 -1
  96. package/dist/plugin/transformer/transformer-server-actions.d.ts +3 -3
  97. package/dist/plugin/transformer/transformer-server-actions.d.ts.map +1 -1
  98. package/dist/plugin/transformer/transformer-server-actions.js +80 -66
  99. package/dist/plugin/transformer/types.d.ts +4 -0
  100. package/dist/plugin/transformer/types.d.ts.map +1 -1
  101. package/dist/plugin/types.d.ts +51 -20
  102. package/dist/plugin/types.d.ts.map +1 -1
  103. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  104. package/dist/plugin/worker/html/messageHandler.js +37 -23
  105. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  106. package/dist/plugin/worker/html/plugin.d.ts.map +1 -1
  107. package/dist/plugin/worker/html/plugin.js +10 -5
  108. package/dist/plugin/worker/html/renderPages.d.ts +7 -6
  109. package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
  110. package/dist/plugin/worker/html/renderPages.js +112 -57
  111. package/dist/plugin/worker/html/renderPages.js.map +1 -1
  112. package/dist/plugin/worker/loader.d.ts +1 -11
  113. package/dist/plugin/worker/loader.d.ts.map +1 -1
  114. package/dist/plugin/worker/loader.js +2 -2
  115. package/dist/plugin/worker/loader.js.map +1 -1
  116. package/dist/plugin/worker/plugin.d.ts +10 -1
  117. package/dist/plugin/worker/plugin.d.ts.map +1 -1
  118. package/dist/plugin/worker/plugin.js +10 -1
  119. package/dist/plugin/worker/types.d.ts +17 -4
  120. package/dist/plugin/worker/types.d.ts.map +1 -1
  121. package/dist/server.d.ts +1 -3
  122. package/dist/server.d.ts.map +1 -1
  123. package/dist/server.js +1 -3
  124. package/dist/server.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +2 -4
  127. package/plugin/assertServerCondition.ts +2 -3
  128. package/plugin/checkFilesExist.ts +10 -10
  129. package/plugin/components.tsx +1 -1
  130. package/plugin/config/createModuleIdGenerator.ts +52 -0
  131. package/plugin/config/defaults.ts +24 -15
  132. package/plugin/config/resolveOptions.ts +253 -25
  133. package/plugin/config/resolvePages.ts +1 -1
  134. package/plugin/config/resolveUserConfig.ts +197 -62
  135. package/plugin/helpers/getBundleManifest.ts +75 -0
  136. package/plugin/helpers/getModuleManifest.ts +5 -0
  137. package/plugin/helpers/inputNormalizer.ts +175 -26
  138. package/plugin/helpers/inputNormalizerWorker.ts +13 -8
  139. package/plugin/helpers/tryManifest.ts +2 -0
  140. package/plugin/loader/createBuildLoader.ts +54 -10
  141. package/plugin/loader/createPageLoader.ts +1 -7
  142. package/plugin/plugin.ts +2 -1
  143. package/plugin/preserver/plugin.ts +2 -1
  144. package/plugin/react-client/index.ts +12 -1
  145. package/plugin/react-client/plugin.ts +127 -12
  146. package/plugin/react-server/createHandler.ts +7 -13
  147. package/plugin/react-server/createRscStream.ts +14 -2
  148. package/plugin/react-server/createSsrHandler.ts +7 -26
  149. package/plugin/react-server/plugin.ts +176 -144
  150. package/plugin/transformer/plugin.ts +69 -94
  151. package/plugin/transformer/transformer-client-components.ts +98 -24
  152. package/plugin/transformer/transformer-server-actions.ts +22 -7
  153. package/plugin/transformer/types.ts +4 -0
  154. package/plugin/types.ts +118 -64
  155. package/plugin/worker/html/messageHandler.ts +46 -31
  156. package/plugin/worker/html/plugin.ts +15 -11
  157. package/plugin/worker/html/renderPages.ts +175 -88
  158. package/plugin/worker/loader.ts +4 -13
  159. package/plugin/worker/plugin.ts +10 -1
  160. package/plugin/worker/types.ts +24 -3
  161. package/dist/node_modules/magic-string/dist/magic-string.es.js +0 -1283
  162. package/dist/node_modules/magic-string/dist/magic-string.es.js.map +0 -1
  163. package/dist/plugin/build/createClientBuildConfig.d.ts +0 -3
  164. package/dist/plugin/build/createClientBuildConfig.d.ts.map +0 -1
  165. package/dist/plugin/build/createClientBuildConfig.js +0 -14
  166. package/dist/plugin/build/createServerBuildConfig.d.ts +0 -12
  167. package/dist/plugin/build/createServerBuildConfig.d.ts.map +0 -1
  168. package/dist/plugin/build/createServerBuildConfig.js +0 -40
  169. package/dist/plugin/build/createSharedBuildConfig.d.ts +0 -5
  170. package/dist/plugin/build/createSharedBuildConfig.d.ts.map +0 -1
  171. package/dist/plugin/build/createSharedBuildConfig.js +0 -28
  172. package/dist/plugin/build/mergeInputs.d.ts +0 -9
  173. package/dist/plugin/build/mergeInputs.d.ts.map +0 -1
  174. package/dist/plugin/build/mergeInputs.js +0 -56
  175. package/dist/plugin/config/moduleIdDefault.d.ts +0 -8
  176. package/dist/plugin/config/moduleIdDefault.d.ts.map +0 -1
  177. package/dist/plugin/config/moduleIdDefault.js +0 -23
  178. package/dist/plugin/config/moduleIdDefault.js.map +0 -1
  179. package/dist/plugin/helpers/getModuleManifest.js.map +0 -1
  180. package/dist/plugin/react-server/createDevMiddleware.d.ts +0 -8
  181. package/dist/plugin/react-server/createDevMiddleware.d.ts.map +0 -1
  182. package/dist/plugin/react-server/createDevMiddleware.js +0 -68
  183. package/dist/plugin/react-server/createDevServer.d.ts +0 -4
  184. package/dist/plugin/react-server/createDevServer.d.ts.map +0 -1
  185. package/dist/plugin/react-server/createDevServer.js +0 -4
  186. package/dist/plugin/react-server/createReactNodeStreamer.d.ts +0 -10
  187. package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +0 -1
  188. package/dist/plugin/react-server/createReactNodeStreamer.js +0 -7
  189. package/dist/plugin/transformer/transformer-server-actions.js.map +0 -1
  190. package/plugin/build/createClientBuildConfig.ts +0 -21
  191. package/plugin/build/createServerBuildConfig.ts +0 -66
  192. package/plugin/build/createSharedBuildConfig.ts +0 -35
  193. package/plugin/build/mergeInputs.ts +0 -58
  194. package/plugin/config/moduleIdDefault.ts +0 -23
  195. package/plugin/react-server/createDevMiddleware.ts +0 -91
  196. package/plugin/react-server/createDevServer.ts +0 -9
  197. package/plugin/react-server/createReactNodeStreamer.ts +0 -26
@@ -4,76 +4,114 @@
4
4
  * MIT License
5
5
  */
6
6
  import { mkdirSync } from 'node:fs';
7
- import { writeFile, mkdir } from 'node:fs/promises';
7
+ import { mkdir, writeFile } from 'node:fs/promises';
8
8
  import { resolve, join, dirname } from 'node:path';
9
9
  import { Transform } from 'node:stream';
10
10
  import { createHandler } from '../../react-server/createHandler.js';
11
11
 
12
- async function renderPages(routes, options) {
13
- console.log("[renderPages] Starting render for routes:", routes);
14
- const destinationRoot = resolve(options.userConfig.root, options.userConfig.build.outDir);
12
+ async function renderPages(pluginContext, routes, options) {
13
+ const root = pluginContext.environment.config.root ?? options.userConfig.root ?? options.pluginOptions.projectRoot ?? process.cwd();
14
+ const outDir = pluginContext.environment.config.build.outDir ?? options.userConfig.build.outDir ?? options.pluginOptions.build.outDir;
15
+ pluginContext.environment.config.build.assetsDir ?? options.userConfig.build.assetsDir ?? options.pluginOptions.build.assetsDir;
16
+ const isServer = outDir.endsWith(options.pluginOptions.build.server);
17
+ const isClient = outDir.endsWith(options.pluginOptions.build.client);
18
+ if (!isServer && !isClient) {
19
+ throw new Error("Invalid outDir directory");
20
+ }
21
+ const destinationRoot = isServer ? resolve(
22
+ root,
23
+ options.pluginOptions.build.outDir,
24
+ options.pluginOptions.build.client
25
+ ) : join(root, outDir);
15
26
  const failedRoutes = /* @__PURE__ */ new Map();
16
- const moduleRootPath = join(destinationRoot, options.moduleBasePath);
17
- const moduleBaseURL = options.moduleBaseURL;
18
- const htmlRoot = join(
19
- options.userConfig.root,
20
- options.userConfig.build.outDir
21
- );
22
- const streamStarted = /* @__PURE__ */ new Set();
27
+ const moduleRootPath = join(
28
+ root,
29
+ options.pluginOptions.build.outDir,
30
+ options.pluginOptions.build.client
31
+ ) + "/";
32
+ const moduleBaseURL = `file://${root}`;
33
+ const htmlRoot = destinationRoot;
34
+ const rscRoot = destinationRoot;
23
35
  const completedRoutes = /* @__PURE__ */ new Set();
24
- const htmlContent = /* @__PURE__ */ new Map();
36
+ const transforms = /* @__PURE__ */ new Map();
25
37
  const writePromises = /* @__PURE__ */ new Map();
26
- const allRoutesComplete = new Promise((resolve, reject) => {
27
- options.worker.on("message", function messageHandler(msg) {
28
- switch (msg.type) {
29
- case "SHELL_READY": {
30
- streamStarted.add(msg.id);
31
- break;
32
- }
33
- case "HTML_READY": {
34
- htmlContent.set(msg.id, msg.html);
35
- break;
36
- }
37
- case "ALL_READY": {
38
- completedRoutes.add(msg.id);
39
- if (completedRoutes.size === routes.length) {
40
- options.worker.removeListener("message", messageHandler);
41
- for (const [route, html] of htmlContent) {
42
- const outputPath = route === "/" ? join(htmlRoot, "index.html") : join(htmlRoot, route, "index.html");
43
- mkdirSync(dirname(outputPath), { recursive: true });
44
- const writePromise = writeFile(outputPath, html).catch((error) => {
45
- failedRoutes.set(route, error);
46
- });
47
- writePromises.set(route, writePromise);
48
- }
49
- Promise.all(writePromises.values()).then(() => resolve()).catch(reject);
38
+ const pipableStreamOptions = options.pipableStreamOptions ?? {};
39
+ pipableStreamOptions.importMap = pipableStreamOptions?.importMap ?? {};
40
+ pipableStreamOptions.importMap.imports = pipableStreamOptions.importMap.imports ?? {};
41
+ if (!("react" in pipableStreamOptions.importMap.imports)) {
42
+ pipableStreamOptions.importMap.imports["react"] = "https://esm.sh/react@experimental?pin=v124&dev";
43
+ }
44
+ if (!("react-dom" in pipableStreamOptions.importMap.imports)) {
45
+ pipableStreamOptions.importMap.imports["react-dom"] = "https://esm.sh/react-dom@experimental?pin=v124&dev";
46
+ }
47
+ if (!("react-dom/" in pipableStreamOptions.importMap.imports)) {
48
+ pipableStreamOptions.importMap.imports["react-dom/"] = "https://esm.sh/react-dom@experimental&pin=v124&dev/";
49
+ }
50
+ if (!("react-server-dom-esm/client.browser" in pipableStreamOptions.importMap.imports)) {
51
+ pipableStreamOptions.importMap.imports["react-server-dom-esm/client.browser"] = `/node_modules/react-server-dom-esm/esm/react-server-dom-esm-client.browser.${options.userConfig.mode}.js`;
52
+ }
53
+ for (const [key, serverEntry] of Object.entries(options.serverManifest)) {
54
+ if (!key.includes(".client.")) continue;
55
+ const clientEntry = Object.entries(options.clientManifest).find(
56
+ ([_2, entry2]) => entry2.src === serverEntry.src
57
+ );
58
+ if (!clientEntry) continue;
59
+ const [_, entry] = clientEntry;
60
+ const serverPath = serverEntry.src;
61
+ const clientPath = entry.file;
62
+ pipableStreamOptions.importMap.imports[serverPath] = "/" + clientPath;
63
+ }
64
+ for (const [key, value] of Object.entries(options.clientManifest)) {
65
+ if (value.isEntry) {
66
+ if (Array.isArray(pipableStreamOptions.bootstrapModules)) {
67
+ pipableStreamOptions.bootstrapModules.push("/" + value.file);
68
+ } else {
69
+ pipableStreamOptions.bootstrapModules = ["/" + value.file];
70
+ }
71
+ }
72
+ }
73
+ await mkdir(htmlRoot, { recursive: true });
74
+ await mkdir(rscRoot, { recursive: true });
75
+ try {
76
+ const allRoutesComplete = new Promise((resolve2) => {
77
+ options.worker.on("message", (msg) => {
78
+ switch (msg.type) {
79
+ case "ALL_READY": {
80
+ const { id, html, outputPath } = msg;
81
+ mkdirSync(dirname(outputPath), { recursive: true });
82
+ const writePromise = writeFile(outputPath, html).then(() => {
83
+ completedRoutes.add(id);
84
+ writePromises.delete(id);
85
+ if (completedRoutes.size === routes.length) {
86
+ resolve2();
87
+ }
88
+ }).catch((error) => {
89
+ failedRoutes.set(id, error);
90
+ });
91
+ writePromises.set(id, writePromise);
92
+ break;
50
93
  }
51
- break;
52
- }
53
- case "ERROR": {
54
- console.error("[renderPages] Worker error:", msg.error);
55
- if (msg.id) {
94
+ case "ERROR": {
56
95
  failedRoutes.set(msg.id, new Error(msg.error));
96
+ break;
57
97
  }
58
- break;
59
98
  }
60
- }
99
+ });
61
100
  });
62
- });
63
- try {
64
- await mkdir(htmlRoot, { recursive: true });
65
101
  const renderPromises = routes.map(async (route) => {
66
102
  try {
67
103
  const result = await createHandler(route, options.pluginOptions, {
68
104
  loader: options.loader,
69
- manifest: options.manifest
105
+ clientManifest: options.clientManifest,
106
+ serverManifest: options.serverManifest,
107
+ pipableStreamOptions: options.pipableStreamOptions
70
108
  });
71
109
  if (result.type !== "success") {
72
- console.log("[renderPages] Handler failed:", result);
110
+ failedRoutes.set(route, new Error(`Handler failed for ${route}`));
73
111
  return;
74
112
  }
75
- const htmlOutputPath = route === "/" ? resolve(htmlRoot, "index.html") : resolve(htmlRoot, route, "index.html");
76
- const transform = new Transform({
113
+ const htmlOutputPath = route === "/" ? join(htmlRoot, "index.html") : join(htmlRoot, route, "index.html");
114
+ transforms.set(route, new Transform({
77
115
  transform(chunk, _encoding, callback) {
78
116
  options.worker.postMessage({
79
117
  type: "RSC_CHUNK",
@@ -83,8 +121,16 @@ async function renderPages(routes, options) {
83
121
  moduleBaseURL,
84
122
  htmlOutputPath,
85
123
  outDir: options.userConfig.build.outDir,
86
- pipableStreamOptions: options.pipableStreamOptions ?? {}
124
+ pipableStreamOptions,
125
+ clientManifest: options.clientManifest,
126
+ serverManifest: options.serverManifest
87
127
  });
128
+ const rscOutputPath = route === "/" ? join(rscRoot, "index.rsc") : join(rscRoot, route, "index.rsc");
129
+ mkdirSync(dirname(rscOutputPath), { recursive: true });
130
+ const writePromise = writeFile(rscOutputPath, chunk).catch((error) => {
131
+ failedRoutes.set(route, error);
132
+ });
133
+ writePromises.set(`${route}:rsc`, writePromise);
88
134
  callback(null, chunk);
89
135
  },
90
136
  flush(callback) {
@@ -94,18 +140,27 @@ async function renderPages(routes, options) {
94
140
  });
95
141
  callback();
96
142
  }
143
+ }));
144
+ result.stream.pipe(transforms.get(route));
145
+ await new Promise((resolve2) => {
146
+ transforms.get(route)?.on("finish", resolve2);
97
147
  });
98
- result.stream.pipe(transform);
99
148
  } catch (error) {
100
149
  failedRoutes.set(route, error);
101
150
  }
102
151
  });
103
- await Promise.all([
104
- Promise.all(renderPromises),
105
- allRoutesComplete
106
- ]);
152
+ await Promise.all(renderPromises);
153
+ await Promise.all(writePromises.values());
154
+ await allRoutesComplete;
107
155
  } finally {
108
- await options.worker.terminate();
156
+ for (const transform of transforms.values()) {
157
+ transform.destroy();
158
+ }
159
+ transforms.clear();
160
+ writePromises.clear();
161
+ options.worker.postMessage({
162
+ type: "SHUTDOWN"
163
+ });
109
164
  }
110
165
  return {
111
166
  failedRoutes,
@@ -1 +1 @@
1
- {"version":3,"file":"renderPages.js","sources":["../../../../plugin/worker/html/renderPages.ts"],"sourcesContent":["import { mkdirSync } from \"node:fs\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname, join, resolve as resolvePath } from \"node:path\";\nimport { Transform } from \"node:stream\";\nimport type { Worker } from \"node:worker_threads\";\nimport { createHandler } from \"../../react-server/createHandler.js\";\nimport type { ResolvedUserConfig, StreamPluginOptions } from \"../../types.js\";\n\ninterface PipeableStreamOptions {\n bootstrapModules?: string[];\n bootstrapScripts?: string[];\n bootstrapScriptContent?: string;\n signal?: AbortSignal;\n identifierPrefix?: string;\n namespaceURI?: string;\n nonce?: string;\n progressiveChunkSize?: number;\n onShellReady?: () => void;\n onAllReady?: () => void;\n onError?: (error: unknown) => void;\n importMap?: {\n imports?: Record<string, string>;\n };\n}\n\ntype RenderPagesOptions = {\n pluginOptions: Required<\n Pick<\n StreamPluginOptions,\n \"moduleBase\" | \"moduleBasePath\" | \"moduleBaseURL\" | \"projectRoot\"\n >\n > &\n Pick<\n StreamPluginOptions,\n \"Page\" | \"props\" | \"build\" | \"Html\" | \"pageExportName\" | \"propsExportName\"\n >;\n userConfig: ResolvedUserConfig;\n manifest: Record<string, { file: string }>;\n worker: Worker;\n pipableStreamOptions?: PipeableStreamOptions;\n loader: (id: string) => Promise<Record<string, any>>;\n onCssFile?: (path: string) => void;\n clientCss?: string[];\n moduleBasePath: string;\n moduleBaseURL: string;\n};\n\nexport async function renderPages(\n routes: string[],\n options: RenderPagesOptions\n) {\n console.log(\"[renderPages] Starting render for routes:\", routes);\n\n const destinationRoot = resolvePath(options.userConfig.root, options.userConfig.build.outDir);\n const failedRoutes = new Map<string, Error>();\n const moduleRootPath = join(destinationRoot, options.moduleBasePath);\n const moduleBaseURL = options.moduleBaseURL;\n const htmlRoot = join(\n options.userConfig.root,\n options.userConfig.build.outDir\n );\n const streamStarted = new Set<string>();\n const completedRoutes = new Set<string>();\n const htmlContent = new Map<string, string>();\n const writePromises = new Map<string, Promise<void>>();\n\n // Create a promise that resolves when all routes are complete\n const allRoutesComplete = new Promise<void>((resolve, reject) => {\n\n\n options.worker.on(\"message\", function messageHandler(msg: any) {\n switch (msg.type) {\n case \"SHELL_READY\": {\n streamStarted.add(msg.id);\n break;\n }\n case \"HTML_READY\": {\n htmlContent.set(msg.id, msg.html);\n break;\n }\n case \"ALL_READY\": {\n completedRoutes.add(msg.id);\n \n if (completedRoutes.size === routes.length) {\n options.worker.removeListener(\"message\", messageHandler);\n \n // Write all HTML files\n for (const [route, html] of htmlContent) {\n const outputPath = route === '/' \n ? join(htmlRoot, 'index.html')\n : join(htmlRoot, route, 'index.html');\n mkdirSync(dirname(outputPath), { recursive: true });\n const writePromise = writeFile(outputPath, html)\n .catch(error => {\n failedRoutes.set(route, error as Error);\n });\n writePromises.set(route, writePromise);\n }\n\n // Wait for all files to be written\n Promise.all(writePromises.values())\n .then(() => resolve())\n .catch(reject);\n }\n break;\n }\n case \"ERROR\": {\n console.error(\"[renderPages] Worker error:\", msg.error);\n if (msg.id) {\n failedRoutes.set(msg.id, new Error(msg.error));\n }\n break;\n }\n }\n });\n });\n\n try {\n await mkdir(htmlRoot, { recursive: true });\n\n const renderPromises = routes.map(async (route) => {\n \n try {\n const result = await createHandler(route, options.pluginOptions, {\n loader: options.loader,\n manifest: options.manifest,\n });\n\n if (result.type !== \"success\") {\n console.log(\"[renderPages] Handler failed:\", result);\n return;\n }\n\n const htmlOutputPath = route === '/' \n ? resolvePath(htmlRoot, 'index.html')\n : resolvePath(htmlRoot, route, 'index.html');\n\n const transform = new Transform({\n transform(chunk, _encoding, callback) {\n options.worker.postMessage({\n type: \"RSC_CHUNK\",\n id: route,\n chunk: chunk,\n moduleRootPath: moduleRootPath,\n moduleBaseURL: moduleBaseURL,\n htmlOutputPath,\n outDir: options.userConfig.build.outDir,\n pipableStreamOptions: options.pipableStreamOptions ?? {},\n });\n callback(null, chunk);\n },\n flush(callback) {\n options.worker.postMessage({\n type: \"RSC_END\",\n id: route,\n });\n callback();\n }\n });\n \n result.stream.pipe(transform);\n\n } catch (error) {\n failedRoutes.set(route, error as Error);\n }\n });\n\n // Wait for both the render promises and all routes to complete\n await Promise.all([\n Promise.all(renderPromises),\n allRoutesComplete\n ]);\n\n } finally {\n await options.worker.terminate();\n }\n\n return {\n failedRoutes,\n completedRoutes\n };\n}\n"],"names":["resolvePath"],"mappings":"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"}
1
+ {"version":3,"file":"renderPages.js","sources":["../../../../plugin/worker/html/renderPages.ts"],"sourcesContent":["import { appendFile, mkdirSync } from \"node:fs\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { dirname, join, resolve, resolve as resolvePath } from \"node:path\";\nimport { Transform } from \"node:stream\";\nimport type { Worker } from \"node:worker_threads\";\nimport { createHandler } from \"../../react-server/createHandler.js\";\nimport type { ResolvedUserConfig, ResolvedUserOptions } from \"../../types.js\";\nimport type {\n HtmlWorkerMessage,\n HtmlWorkerResponse,\n WorkerRscChunkMessage,\n} from \"../types.js\";\nimport type { Manifest } from \"vite\";\nimport type {\n EmittedFile,\n EmittedPrebuiltChunk,\n PluginContext,\n ResolvedId,\n} from \"rollup\";\nimport { createInputNormalizer } from \"../../helpers/inputNormalizer.js\";\n\ninterface PipeableStreamOptions {\n bootstrapModules?: string[];\n bootstrapScripts?: string[];\n bootstrapScriptContent?: string;\n signal?: AbortSignal;\n identifierPrefix?: string;\n namespaceURI?: string;\n nonce?: string;\n progressiveChunkSize?: number;\n onShellReady?: () => void;\n onAllReady?: () => void;\n onError?: (error: unknown) => void;\n importMap?: {\n imports?: Record<string, string>;\n };\n}\n\ntype RenderPagesOptions = {\n pluginOptions: ResolvedUserOptions;\n userConfig: ResolvedUserConfig;\n clientManifest: Manifest;\n serverManifest: Manifest;\n worker: Worker;\n pipableStreamOptions?: PipeableStreamOptions;\n loader: (id: string) => Promise<Record<string, any>>;\n onCssFile?: (path: string) => void;\n clientCss?: string[];\n moduleBasePath: string;\n moduleBaseURL: string;\n};\n\nexport async function renderPages(\n pluginContext: PluginContext,\n routes: string[],\n options: RenderPagesOptions\n) {\n const root =\n pluginContext.environment.config.root ??\n options.userConfig.root ??\n options.pluginOptions.projectRoot ??\n process.cwd();\n const outDir =\n pluginContext.environment.config.build.outDir ??\n options.userConfig.build.outDir ??\n options.pluginOptions.build.outDir;\n const assetsDir =\n pluginContext.environment.config.build.assetsDir ??\n options.userConfig.build.assetsDir ??\n options.pluginOptions.build.assetsDir;\n\n const isServer = outDir.endsWith(options.pluginOptions.build.server);\n const isClient = outDir.endsWith(options.pluginOptions.build.client);\n if (!isServer && !isClient) {\n throw new Error(\"Invalid outDir directory\");\n }\n\n const destinationRoot = isServer\n ? resolvePath(\n root,\n options.pluginOptions.build.outDir,\n options.pluginOptions.build.client\n )\n : join(root, outDir);\n const failedRoutes = new Map<string, Error>();\n const moduleRootPath =\n join(\n root,\n options.pluginOptions.build.outDir,\n options.pluginOptions.build.client\n ) + \"/\";\n const moduleBaseURL = `file://${root}`;\n const htmlRoot = destinationRoot;\n const rscRoot = destinationRoot;\n const streamStarted = new Set<string>();\n const completedRoutes = new Set<string>();\n const htmlContent = new Map<string, string>();\n const transforms = new Map<string, Transform>();\n const writePromises = new Map<string, Promise<void>>();\n const pipableStreamOptions = options.pipableStreamOptions ?? {};\n pipableStreamOptions.importMap = pipableStreamOptions?.importMap ?? {};\n pipableStreamOptions.importMap.imports =\n pipableStreamOptions.importMap.imports ?? {};\n if (!(\"react\" in pipableStreamOptions.importMap.imports)) {\n pipableStreamOptions.importMap.imports[\"react\"] = 'https://esm.sh/react@experimental?pin=v124&dev'\n }\n if (!(\"react-dom\" in pipableStreamOptions.importMap.imports)) {\n pipableStreamOptions.importMap.imports[\"react-dom\"] = 'https://esm.sh/react-dom@experimental?pin=v124&dev'\n }\n if (!(\"react-dom/\" in pipableStreamOptions.importMap.imports)) {\n pipableStreamOptions.importMap.imports[\"react-dom/\"] = 'https://esm.sh/react-dom@experimental&pin=v124&dev/'\n }\n if (!(\"react-server-dom-esm/client.browser\" in pipableStreamOptions.importMap.imports)) {\n pipableStreamOptions.importMap.imports[\"react-server-dom-esm/client.browser\"] = `/node_modules/react-server-dom-esm/esm/react-server-dom-esm-client.browser.${options.userConfig.mode}.js`\n }\n // Find matching client components by their source paths\n for (const [key, serverEntry] of Object.entries(options.serverManifest)) {\n // Skip non-client components\n if (!key.includes(\".client.\")) continue;\n\n // Find matching client entry by source path\n const clientEntry = Object.entries(options.clientManifest).find(\n ([_, entry]) => entry.src === serverEntry.src\n );\n\n if (!clientEntry) continue;\n\n const [_, entry] = clientEntry;\n const serverPath = serverEntry.src as string;\n const clientPath = entry.file\n\n pipableStreamOptions.importMap.imports[serverPath] = '/' + clientPath;\n\n }\n for(const [key, value] of Object.entries(options.clientManifest)) {\n if(value.isEntry) {\n if(Array.isArray(pipableStreamOptions.bootstrapModules)) {\n pipableStreamOptions.bootstrapModules.push('/'+value.file);\n } else {\n pipableStreamOptions.bootstrapModules = ['/'+value.file];\n }\n }\n }\n\n // Remove the initial empty file writes - we'll create directories as needed\n await mkdir(htmlRoot, { recursive: true });\n await mkdir(rscRoot, { recursive: true });\n\n try {\n const allRoutesComplete = new Promise<void>((resolve) => {\n options.worker.on(\"message\", (msg: HtmlWorkerResponse) => {\n switch (msg.type) {\n case \"ALL_READY\": {\n const { id, html, outputPath } = msg;\n mkdirSync(dirname(outputPath), { recursive: true });\n \n const writePromise = writeFile(outputPath, html)\n .then(() => {\n completedRoutes.add(id);\n writePromises.delete(id);\n \n // Only resolve when all routes are complete\n if (completedRoutes.size === routes.length) {\n resolve();\n }\n })\n .catch((error) => {\n failedRoutes.set(id, error as Error);\n });\n\n writePromises.set(id, writePromise);\n break;\n }\n case \"ERROR\": {\n failedRoutes.set(msg.id, new Error(msg.error));\n break;\n }\n }\n });\n });\n\n const renderPromises = routes.map(async (route) => {\n try {\n const result = await createHandler(route, options.pluginOptions, {\n loader: options.loader,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n pipableStreamOptions: options.pipableStreamOptions,\n });\n\n if (result.type !== \"success\") {\n failedRoutes.set(route, new Error(`Handler failed for ${route}`));\n return;\n }\n\n const htmlOutputPath = route === \"/\"\n ? join(htmlRoot, \"index.html\")\n : join(htmlRoot, route, \"index.html\");\n\n transforms.set(route, new Transform({\n transform(chunk, _encoding, callback) {\n options.worker.postMessage({\n type: \"RSC_CHUNK\",\n id: route,\n chunk: chunk,\n moduleRootPath: moduleRootPath,\n moduleBaseURL: moduleBaseURL,\n htmlOutputPath: htmlOutputPath,\n outDir: options.userConfig.build.outDir,\n pipableStreamOptions: pipableStreamOptions,\n clientManifest: options.clientManifest,\n serverManifest: options.serverManifest,\n } satisfies WorkerRscChunkMessage);\n\n const rscOutputPath = route === \"/\"\n ? join(rscRoot, \"index.rsc\")\n : join(rscRoot, route, \"index.rsc\");\n\n mkdirSync(dirname(rscOutputPath), { recursive: true });\n \n // Track RSC file write\n const writePromise = writeFile(rscOutputPath, chunk)\n .catch((error) => {\n failedRoutes.set(route, error as Error);\n });\n\n writePromises.set(`${route}:rsc`, writePromise);\n callback(null, chunk);\n },\n flush(callback) {\n options.worker.postMessage({\n type: \"RSC_END\",\n id: route,\n });\n callback();\n },\n }));\n\n result.stream.pipe(transforms.get(route) as Transform);\n await new Promise<void>((resolve) => {\n transforms.get(route)?.on(\"finish\", resolve);\n });\n } catch (error) {\n failedRoutes.set(route, error as Error);\n }\n });\n\n // Wait for everything to complete\n await Promise.all(renderPromises);\n await Promise.all(writePromises.values());\n await allRoutesComplete;\n\n } finally {\n for (const transform of transforms.values()) {\n transform.destroy();\n }\n transforms.clear();\n writePromises.clear();\n\n options.worker.postMessage({\n type: \"SHUTDOWN\",\n });\n }\n\n return {\n failedRoutes,\n completedRoutes,\n };\n}\n"],"names":["resolvePath","_","entry","resolve"],"mappings":"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"}
@@ -1,15 +1,5 @@
1
1
  /**
2
- * Extension point for custom module loading in the worker thread.
3
- * This file can be overridden via the plugin options:
4
- *
5
- * ```ts
6
- * reactStreamPlugin({
7
- * loaderPath: './my-custom-loader.ts'
8
- * })
9
- * ```
10
- *
11
- * The default loader provides basic module loading functionality.
12
- * Override this if you need custom module resolution or transformation.
2
+ * Not used currently
13
3
  */
14
4
  export declare function load(id: string): Promise<any>;
15
5
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../plugin/worker/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,gBAE9B"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../plugin/worker/loader.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,wBAAsB,IAAI,CAAC,EAAE,EAAE,MAAM,gBAEpC"}
@@ -3,8 +3,8 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- function load(id) {
7
- return import(id);
6
+ async function load(id) {
7
+ return await import(id);
8
8
  }
9
9
 
10
10
  export { load };
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sources":["../../../plugin/worker/loader.ts"],"sourcesContent":["/**\n * Extension point for custom module loading in the worker thread.\n * This file can be overridden via the plugin options:\n *\n * ```ts\n * reactStreamPlugin({\n * loaderPath: './my-custom-loader.ts'\n * })\n * ```\n *\n * The default loader provides basic module loading functionality.\n * Override this if you need custom module resolution or transformation.\n */\nexport function load(id: string) {\n return import(id);\n}\n"],"names":[],"mappings":";;;;;AAaO,SAAS,KAAK,EAAY,EAAA;AAC/B,EAAA,OAAO,OAAO,EAAA,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"loader.js","sources":["../../../plugin/worker/loader.ts"],"sourcesContent":["\n/**\n * Not used currently\n */\nexport async function load(id: string) {\n return await import(id);\n}\n"],"names":[],"mappings":";;;;;AAIA,eAAsB,KAAK,EAAY,EAAA;AACrC,EAAA,OAAO,MAAM,OAAO,EAAA,CAAA;AACtB;;;;"}
@@ -1,7 +1,16 @@
1
1
  import type { StreamPluginOptions } from "../types.js";
2
2
  import type { Plugin } from "vite";
3
3
  /**
4
- * This plugin can be used to create your own worker paths. By default, prebuild workers are used.
4
+ * This plugin can be used to create your own worker paths. This build should be separated from the main build.
5
+ *
6
+ *
7
+ * ```ts
8
+ * @example
9
+ *export reactWorkerPluginConfig = {
10
+ * htmlWorkerPath: './workers/html.tsx',
11
+ * rscWorkerPath: './workers/rsc.tsx',
12
+ * }
13
+ * ```
5
14
  *
6
15
  * @param options
7
16
  * @returns
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/worker/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAKxE"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/worker/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIlC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAKxE"}
@@ -1,7 +1,16 @@
1
1
  import { reactHtmlWorkerPlugin } from "./html/plugin.js";
2
2
  import { reactRscWorkerPlugin } from "./rsc/plugin.js";
3
3
  /**
4
- * This plugin can be used to create your own worker paths. By default, prebuild workers are used.
4
+ * This plugin can be used to create your own worker paths. This build should be separated from the main build.
5
+ *
6
+ *
7
+ * ```ts
8
+ * @example
9
+ *export reactWorkerPluginConfig = {
10
+ * htmlWorkerPath: './workers/html.tsx',
11
+ * rscWorkerPath: './workers/rsc.tsx',
12
+ * }
13
+ * ```
5
14
  *
6
15
  * @param options
7
16
  * @returns
@@ -1,4 +1,5 @@
1
- interface PipeableStreamOptions {
1
+ import type { Manifest } from "vite";
2
+ export interface PipeableStreamOptions {
2
3
  bootstrapModules?: string[];
3
4
  bootstrapScripts?: string[];
4
5
  bootstrapScriptContent?: string;
@@ -44,11 +45,23 @@ export interface WorkerRscChunkMessage {
44
45
  outDir: string;
45
46
  htmlOutputPath: string;
46
47
  pipableStreamOptions: PipeableStreamOptions;
48
+ clientManifest: Manifest;
49
+ serverManifest: Manifest;
47
50
  }
48
51
  export interface ShutdownMessage {
49
52
  type: "SHUTDOWN";
50
53
  id: string;
51
54
  }
55
+ export interface ShellReadyMessage {
56
+ type: "SHELL_READY";
57
+ id: string;
58
+ }
59
+ export interface AllReadyMessage {
60
+ type: "ALL_READY";
61
+ id: string;
62
+ outputPath: string;
63
+ html: string;
64
+ }
52
65
  export interface RscRenderMessage {
53
66
  type: "RSC_RENDER";
54
67
  id: string;
@@ -64,7 +77,7 @@ export interface RscCompleteMessage {
64
77
  id: string;
65
78
  outputPath: string;
66
79
  }
67
- export interface RscErrorMessage {
80
+ export interface WorkerErrorMessage {
68
81
  type: "ERROR";
69
82
  id: string;
70
83
  error: string;
@@ -93,7 +106,7 @@ export interface ServerReferenceMessage {
93
106
  ref: unknown;
94
107
  }
95
108
  export type HtmlWorkerMessage = WorkerRscChunkMessage | RscEndMessage | ShutdownMessage;
109
+ export type HtmlWorkerResponse = ShellReadyMessage | AllReadyMessage | WorkerErrorMessage;
96
110
  export type RscWorkerMessage = RscRenderMessage | RscEndMessage | ShutdownMessage | ClientReferenceMessage | ServerReferenceMessage;
97
- export type RscWorkerResponse = RscCompleteMessage | RscErrorMessage | RscWroteFileMessage | ClientReferenceMessage | ServerReferenceMessage;
98
- export {};
111
+ export type RscWorkerResponse = RscCompleteMessage | WorkerErrorMessage | RscWroteFileMessage | ClientReferenceMessage | ServerReferenceMessage;
99
112
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/worker/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/worker/types.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- export { reactServerPlugin } from './plugin/react-server/plugin.js';
2
- export { reactTransformPlugin } from './plugin/transformer/plugin.js';
3
- export { reactPreservePlugin } from './plugin/preserver/plugin.js';
1
+ export { vitePluginReactServer } from './plugin/react-server/index.js';
4
2
  export type * from './plugin/types.js';
5
3
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,mBAAmB,mBAAmB,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,mBAAmB,mBAAmB,CAAC"}
package/dist/server.js CHANGED
@@ -3,7 +3,5 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- export { reactServerPlugin } from './plugin/react-server/plugin.js';
7
- export { reactTransformPlugin } from './plugin/transformer/plugin.js';
8
- export { reactPreservePlugin } from './plugin/preserver/plugin.js';
6
+ export { vitePluginReactServer } from './plugin/react-server/index.js';
9
7
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"server.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}