vite-plugin-react-server 0.3.18 → 0.3.19

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 (208) hide show
  1. package/README.md +119 -118
  2. package/bin/patch.mjs +8 -2
  3. package/dist/package.json +3 -3
  4. package/dist/plugin/checkFilesExist.d.ts.map +1 -1
  5. package/dist/plugin/checkFilesExist.js +6 -2
  6. package/dist/plugin/checkFilesExist.js.map +1 -1
  7. package/dist/plugin/collect-manifest-client-files.d.ts +23 -0
  8. package/dist/plugin/collect-manifest-client-files.d.ts.map +1 -0
  9. package/dist/plugin/collect-manifest-client-files.js +117 -0
  10. package/dist/plugin/collect-manifest-client-files.js.map +1 -0
  11. package/dist/plugin/components.d.ts +9 -9
  12. package/dist/plugin/components.d.ts.map +1 -1
  13. package/dist/plugin/components.js +50 -9
  14. package/dist/plugin/components.js.map +1 -0
  15. package/dist/plugin/config/defaults.d.ts +7 -6
  16. package/dist/plugin/config/defaults.d.ts.map +1 -1
  17. package/dist/plugin/config/defaults.js +8 -5
  18. package/dist/plugin/config/defaults.js.map +1 -1
  19. package/dist/plugin/config/getPaths.d.ts +0 -1
  20. package/dist/plugin/config/getPaths.d.ts.map +1 -1
  21. package/dist/plugin/config/getPaths.js +2 -7
  22. package/dist/plugin/config/getPaths.js.map +1 -1
  23. package/dist/plugin/config/mimeTypes.d.ts +2 -0
  24. package/dist/plugin/config/mimeTypes.d.ts.map +1 -0
  25. package/dist/plugin/config/mimeTypes.js +24 -0
  26. package/dist/plugin/config/mimeTypes.js.map +1 -0
  27. package/dist/plugin/config/resolveOptions.d.ts +1 -1
  28. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  29. package/dist/plugin/config/resolveOptions.js +41 -28
  30. package/dist/plugin/config/resolveOptions.js.map +1 -1
  31. package/dist/plugin/config/resolvePages.d.ts +1 -0
  32. package/dist/plugin/config/resolvePages.d.ts.map +1 -1
  33. package/dist/plugin/config/resolvePages.js +9 -5
  34. package/dist/plugin/config/resolvePages.js.map +1 -1
  35. package/dist/plugin/config/resolveUserConfig.d.ts +2 -1
  36. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  37. package/dist/plugin/config/resolveUserConfig.js +10 -5
  38. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  39. package/dist/plugin/copy-dir.js +23 -18
  40. package/dist/plugin/copy-dir.js.map +1 -0
  41. package/dist/plugin/helpers/createHandler.d.ts +22 -0
  42. package/dist/plugin/helpers/createHandler.d.ts.map +1 -0
  43. package/dist/plugin/{react-server → helpers}/createHandler.js +36 -48
  44. package/dist/plugin/helpers/createHandler.js.map +1 -0
  45. package/dist/plugin/{react-server → helpers}/createRscStream.d.ts +2 -1
  46. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -0
  47. package/dist/plugin/helpers/createRscStream.js +71 -0
  48. package/dist/plugin/helpers/createRscStream.js.map +1 -0
  49. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
  50. package/dist/plugin/helpers/getBundleManifest.js +12 -4
  51. package/dist/plugin/helpers/getBundleManifest.js.map +1 -1
  52. package/dist/plugin/loader/createBuildLoader.d.ts +1 -1
  53. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  54. package/dist/plugin/loader/createBuildLoader.js +8 -5
  55. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  56. package/dist/plugin/loader/css-loader.d.ts.map +1 -1
  57. package/dist/plugin/loader/css-loader.js.map +1 -1
  58. package/dist/plugin/loader/react-loader.js +2 -2
  59. package/dist/plugin/loader/react-loader.js.map +1 -1
  60. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  61. package/dist/plugin/preserver/plugin.js +49 -14
  62. package/dist/plugin/preserver/plugin.js.map +1 -1
  63. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  64. package/dist/plugin/react-client/plugin.js +18 -76
  65. package/dist/plugin/react-client/plugin.js.map +1 -1
  66. package/dist/plugin/react-server/index.d.ts.map +1 -1
  67. package/dist/plugin/react-server/index.js +2 -0
  68. package/dist/plugin/react-server/index.js.map +1 -1
  69. package/dist/plugin/react-server/plugin.d.ts +2 -1
  70. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  71. package/dist/plugin/react-server/plugin.js +53 -217
  72. package/dist/plugin/react-server/plugin.js.map +1 -1
  73. package/dist/plugin/react-static/index.d.ts +2 -0
  74. package/dist/plugin/react-static/index.d.ts.map +1 -0
  75. package/dist/plugin/react-static/index.js +1 -0
  76. package/dist/plugin/react-static/plugin.d.ts +7 -0
  77. package/dist/plugin/react-static/plugin.d.ts.map +1 -0
  78. package/dist/plugin/react-static/plugin.js +199 -0
  79. package/dist/plugin/react-static/plugin.js.map +1 -0
  80. package/dist/plugin/resolvePage.d.ts.map +1 -1
  81. package/dist/plugin/resolvePage.js +9 -0
  82. package/dist/plugin/resolvePage.js.map +1 -1
  83. package/dist/plugin/root.d.ts +2 -0
  84. package/dist/plugin/root.d.ts.map +1 -0
  85. package/dist/plugin/root.js +12 -0
  86. package/dist/plugin/root.js.map +1 -0
  87. package/dist/plugin/transformer/plugin.d.ts.map +1 -1
  88. package/dist/plugin/transformer/plugin.js +32 -23
  89. package/dist/plugin/transformer/plugin.js.map +1 -1
  90. package/dist/plugin/transformer/types.d.ts +1 -18
  91. package/dist/plugin/transformer/types.d.ts.map +1 -1
  92. package/dist/plugin/types.d.ts +24 -6
  93. package/dist/plugin/types.d.ts.map +1 -1
  94. package/dist/plugin/worker/createWorker.js +0 -1
  95. package/dist/plugin/worker/createWorker.js.map +1 -1
  96. package/dist/plugin/worker/html/html-worker.development.d.ts +30 -0
  97. package/dist/plugin/worker/html/html-worker.development.d.ts.map +1 -1
  98. package/dist/plugin/worker/html/html-worker.development.js +30 -2
  99. package/dist/plugin/worker/html/html-worker.development.js.map +1 -1
  100. package/dist/plugin/worker/html/html-worker.production.js +3 -5
  101. package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
  102. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  103. package/dist/plugin/worker/html/messageHandler.js +8 -2
  104. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  105. package/dist/plugin/worker/html/plugin.d.ts.map +1 -1
  106. package/dist/plugin/worker/html/plugin.js +2 -3
  107. package/dist/plugin/worker/html/renderPages.d.ts +8 -4
  108. package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
  109. package/dist/plugin/worker/html/renderPages.js +118 -83
  110. package/dist/plugin/worker/html/renderPages.js.map +1 -1
  111. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  112. package/dist/plugin/worker/rsc/messageHandler.js +89 -84
  113. package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
  114. package/dist/plugin/worker/rsc/plugin.d.ts.map +1 -1
  115. package/dist/plugin/worker/rsc/plugin.js +1 -2
  116. package/dist/plugin/worker/rsc/rsc-worker.development.js +13 -18
  117. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
  118. package/dist/plugin/worker/rsc/rsc-worker.production.js +4 -1
  119. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -1
  120. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  121. package/dist/plugin/worker/rsc/state.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +3 -3
  124. package/plugin/checkFilesExist.ts +7 -3
  125. package/plugin/collect-manifest-client-files.ts +152 -0
  126. package/plugin/components.tsx +55 -10
  127. package/plugin/config/defaults.tsx +69 -0
  128. package/plugin/config/getPaths.ts +1 -7
  129. package/plugin/config/mimeTypes.ts +17 -0
  130. package/plugin/config/resolveOptions.ts +48 -40
  131. package/plugin/config/resolvePages.ts +8 -4
  132. package/plugin/config/resolveUserConfig.ts +12 -9
  133. package/plugin/{react-server → helpers}/createHandler.ts +46 -63
  134. package/plugin/helpers/createRscStream.ts +81 -0
  135. package/plugin/helpers/getBundleManifest.ts +14 -5
  136. package/plugin/loader/createBuildLoader.ts +9 -6
  137. package/plugin/loader/css-loader.ts +0 -2
  138. package/plugin/loader/react-loader.ts +2 -2
  139. package/plugin/preserver/plugin.ts +64 -17
  140. package/plugin/react-client/plugin.ts +20 -91
  141. package/plugin/react-server/index.ts +2 -0
  142. package/plugin/react-server/plugin.ts +66 -293
  143. package/plugin/react-static/index.ts +1 -0
  144. package/plugin/react-static/plugin.ts +247 -0
  145. package/plugin/resolvePage.ts +9 -0
  146. package/plugin/root.ts +4 -0
  147. package/plugin/transformer/plugin.ts +40 -31
  148. package/plugin/transformer/types.ts +0 -19
  149. package/plugin/types.ts +25 -6
  150. package/plugin/worker/createWorker.ts +1 -1
  151. package/plugin/worker/html/README.md +63 -0
  152. package/plugin/worker/html/html-worker.development.tsx +89 -2
  153. package/plugin/worker/html/html-worker.production.tsx +8 -10
  154. package/plugin/worker/html/messageHandler.ts +8 -2
  155. package/plugin/worker/html/plugin.ts +2 -3
  156. package/plugin/worker/html/renderPages.ts +150 -114
  157. package/plugin/worker/rsc/README.md +58 -0
  158. package/plugin/worker/rsc/messageHandler.tsx +95 -111
  159. package/plugin/worker/rsc/plugin.ts +1 -2
  160. package/plugin/worker/rsc/rsc-worker.development.ts +12 -22
  161. package/plugin/worker/rsc/rsc-worker.production.ts +5 -1
  162. package/plugin/worker/rsc/state.ts +0 -3
  163. package/scripts/react+0.0.0-experimental-eda36a1c-20250228.patch +114 -12
  164. package/scripts/react-dom+0.0.0-experimental-eda36a1c-20250228.patch +10571 -121
  165. package/tsconfig.json +2 -2
  166. package/dist/plugin/collect-css-manifest.d.ts +0 -4
  167. package/dist/plugin/collect-css-manifest.d.ts.map +0 -1
  168. package/dist/plugin/collect-css-manifest.js +0 -65
  169. package/dist/plugin/collect-css-manifest.js.map +0 -1
  170. package/dist/plugin/config/createModuleIdGenerator.d.ts +0 -11
  171. package/dist/plugin/config/createModuleIdGenerator.d.ts.map +0 -1
  172. package/dist/plugin/config/createModuleIdGenerator.js +0 -44
  173. package/dist/plugin/config/createModuleIdGenerator.js.map +0 -1
  174. package/dist/plugin/loader/createCssLoader.d.ts +0 -30
  175. package/dist/plugin/loader/createCssLoader.d.ts.map +0 -1
  176. package/dist/plugin/loader/createCssLoader.js +0 -35
  177. package/dist/plugin/loader/createPageLoader.d.ts +0 -24
  178. package/dist/plugin/loader/createPageLoader.d.ts.map +0 -1
  179. package/dist/plugin/loader/createPageLoader.js +0 -50
  180. package/dist/plugin/loader/rsc/messageHandler.d.ts +0 -2
  181. package/dist/plugin/loader/rsc/messageHandler.d.ts.map +0 -1
  182. package/dist/plugin/loader/rsc/messageHandler.js +0 -1
  183. package/dist/plugin/loader/rsc/rsc-worker.development.d.ts +0 -2
  184. package/dist/plugin/loader/rsc/rsc-worker.development.d.ts.map +0 -1
  185. package/dist/plugin/loader/rsc/rsc-worker.development.js +0 -1
  186. package/dist/plugin/react-server/createHandler.d.ts +0 -17
  187. package/dist/plugin/react-server/createHandler.d.ts.map +0 -1
  188. package/dist/plugin/react-server/createHandler.js.map +0 -1
  189. package/dist/plugin/react-server/createRscStream.d.ts.map +0 -1
  190. package/dist/plugin/react-server/createRscStream.js +0 -70
  191. package/dist/plugin/react-server/createRscStream.js.map +0 -1
  192. package/dist/plugin/react-server/createSsrHandler.d.ts +0 -4
  193. package/dist/plugin/react-server/createSsrHandler.d.ts.map +0 -1
  194. package/dist/plugin/react-server/createSsrHandler.js +0 -95
  195. package/dist/plugin/utils/logger.d.ts +0 -9
  196. package/dist/plugin/utils/logger.d.ts.map +0 -1
  197. package/dist/plugin/utils/logger.js +0 -68
  198. package/dist/plugin/utils/logger.js.map +0 -1
  199. package/plugin/collect-css-manifest.ts +0 -82
  200. package/plugin/config/createModuleIdGenerator.ts +0 -52
  201. package/plugin/config/defaults.ts +0 -51
  202. package/plugin/loader/createCssLoader.ts +0 -73
  203. package/plugin/loader/createPageLoader.ts +0 -103
  204. package/plugin/loader/rsc/messageHandler.tsx +0 -1
  205. package/plugin/loader/rsc/rsc-worker.development.ts +0 -1
  206. package/plugin/react-server/createRscStream.ts +0 -86
  207. package/plugin/react-server/createSsrHandler.ts +0 -125
  208. package/plugin/utils/logger.ts +0 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,MAAM,IAAI,UAAU,EAC1B,MAAM,MAAM,CAAC;AAOd,OAAO,KAAK,EAGV,qBAAqB,EAGtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAcvD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAC1E,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CAgND"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { join, dirname } from 'node:path';
7
+ import 'node:worker_threads';
8
+ import 'vite';
9
+ import { checkFilesExist } from '../checkFilesExist.js';
10
+ import { resolveOptions } from '../config/resolveOptions.js';
11
+ import { resolvePages } from '../config/resolvePages.js';
12
+ import { resolveUserConfig } from '../config/resolveUserConfig.js';
13
+ import { tryManifest } from '../helpers/tryManifest.js';
14
+ import { createBuildLoader } from '../loader/createBuildLoader.js';
15
+ import { createWorker } from '../worker/createWorker.js';
16
+ import { renderPages } from '../worker/html/renderPages.js';
17
+ import { mkdir } from 'node:fs/promises';
18
+ import { collectManifestClientFiles } from '../collect-manifest-client-files.js';
19
+ import { mkdirSync, copyFileSync } from 'node:fs';
20
+ import { copyDir } from '../copy-dir.js';
21
+
22
+ let loader = null;
23
+ let worker;
24
+ let htmlTransform = null;
25
+ let clientAssets = /* @__PURE__ */ new Set();
26
+ function reactStaticPlugin(options) {
27
+ const timing = {
28
+ start: Date.now()
29
+ };
30
+ let files;
31
+ let root = process.cwd();
32
+ let userConfig;
33
+ let userOptions;
34
+ let resolvedPages;
35
+ let serverManifest = {};
36
+ let clientManifest = {};
37
+ const resolvedOptions = resolveOptions(options, false);
38
+ if (resolvedOptions.type === "error") {
39
+ throw resolvedOptions.error;
40
+ }
41
+ userOptions = resolvedOptions.userOptions;
42
+ if (userOptions.projectRoot != root && typeof userOptions.projectRoot === "string" && userOptions.projectRoot !== process.cwd() && userOptions.projectRoot !== "") {
43
+ root = userOptions.projectRoot;
44
+ console.log(
45
+ "[vite:plugin-react-server] Root dir changed in plugin",
46
+ userOptions.projectRoot,
47
+ root
48
+ );
49
+ }
50
+ return {
51
+ name: "vite:plugin-react-server/static",
52
+ enforce: "post",
53
+ api: {
54
+ meta: { timing }
55
+ },
56
+ async config(config, configEnv) {
57
+ if (typeof config.root === "string" && config.root !== root && config.root !== process.cwd() && config.root !== "") {
58
+ root = config.root;
59
+ }
60
+ const resolvedPagesResult = await resolvePages(userOptions.build.pages);
61
+ if (resolvedPagesResult.type === "error") {
62
+ throw resolvedPagesResult.error;
63
+ }
64
+ resolvedPages = resolvedPagesResult.pages;
65
+ files = await checkFilesExist(resolvedPages, userOptions, root);
66
+ const resolvedConfig2 = resolveUserConfig({
67
+ isStatic: true,
68
+ config,
69
+ configEnv,
70
+ userOptions,
71
+ files
72
+ });
73
+ if (resolvedConfig2.type === "error") {
74
+ throw resolvedConfig2.error;
75
+ }
76
+ userConfig = resolvedConfig2.userConfig;
77
+ timing.configResolved = Date.now();
78
+ return {};
79
+ },
80
+ async buildStart() {
81
+ timing.buildStart = Date.now();
82
+ },
83
+ async closeBundle() {
84
+ timing.renderStart = Date.now();
85
+ const serverManifestResult = tryManifest({
86
+ root,
87
+ outDir: join(userOptions.build.outDir, userOptions.build.server),
88
+ ssrManifest: false
89
+ });
90
+ if (serverManifestResult.type === "error") {
91
+ throw serverManifestResult.error;
92
+ }
93
+ serverManifest = serverManifestResult.manifest;
94
+ const clientManifestResult = tryManifest({
95
+ root,
96
+ outDir: join(userOptions.build.outDir, userOptions.build.client),
97
+ ssrManifest: false
98
+ });
99
+ if (clientManifestResult.type === "error") {
100
+ throw clientManifestResult.error;
101
+ }
102
+ clientManifest = clientManifestResult.manifest;
103
+ const staticDir = join(root, userOptions.build.outDir, userOptions.build.static);
104
+ await mkdir(staticDir, { recursive: true });
105
+ worker = await createWorker({
106
+ projectRoot: root,
107
+ workerPath: userOptions.htmlWorkerPath,
108
+ condition: "react-server",
109
+ reverseCondition: true,
110
+ mode: "production"
111
+ });
112
+ if (typeof loader !== "function") {
113
+ loader = createBuildLoader({
114
+ root,
115
+ userConfig,
116
+ userOptions,
117
+ pluginContext: this,
118
+ serverManifest,
119
+ clientManifest
120
+ });
121
+ }
122
+ const routeCssMap = /* @__PURE__ */ new Map();
123
+ const globalCss = /* @__PURE__ */ new Set();
124
+ await mkdir(staticDir, { recursive: true });
125
+ await copyDir(join(root, userOptions.build.outDir, userOptions.build.client), join(root, userOptions.build.outDir, userOptions.build.static));
126
+ const { cssFiles: indexCss } = collectManifestClientFiles({
127
+ manifest: clientManifest,
128
+ root,
129
+ pagePath: "index.html",
130
+ moduleBase: userOptions.moduleBase,
131
+ preserveModulesRoot: userOptions.build.preserveModulesRoot,
132
+ testClient: () => true
133
+ });
134
+ indexCss.forEach((css) => globalCss.add(css));
135
+ for (const route of resolvedPages) {
136
+ const routeFiles = files.urlMap.get(route);
137
+ if (routeFiles) {
138
+ const pageCss = collectManifestClientFiles({
139
+ manifest: serverManifest,
140
+ root,
141
+ pagePath: routeFiles.page,
142
+ moduleBase: userOptions.moduleBase,
143
+ preserveModulesRoot: userOptions.build.preserveModulesRoot,
144
+ onClientModule(path) {
145
+ const targetPath = join(root, userOptions.build.outDir, userOptions.build.server, path);
146
+ const destinationPath = join(root, userOptions.build.outDir, userOptions.build.static, path);
147
+ mkdirSync(dirname(destinationPath), { recursive: true });
148
+ copyFileSync(targetPath, destinationPath);
149
+ },
150
+ testClient: userOptions.autoDiscover.cssPattern,
151
+ testJson: userOptions.autoDiscover.jsonPattern
152
+ });
153
+ routeCssMap.set(route, /* @__PURE__ */ new Set([...globalCss, ...pageCss.cssFiles.keys()]));
154
+ }
155
+ }
156
+ const bootstrapModules = clientManifest["index.html"]?.file ? [clientManifest["index.html"].file.startsWith("/") ? clientManifest["index.html"].file.slice(1) : clientManifest["index.html"].file] : [];
157
+ const { failedRoutes, completedRoutes } = await renderPages(
158
+ resolvedPages,
159
+ files,
160
+ {
161
+ outDir: userOptions.build.outDir,
162
+ htmlOutputPath: join(userOptions.build.outDir, userOptions.build.static, "index.html"),
163
+ pipableStreamOptions: {
164
+ bootstrapModules
165
+ },
166
+ moduleBasePath: join(root, userOptions.build.outDir, userOptions.build.client),
167
+ moduleBaseURL: userOptions.moduleBaseURL,
168
+ userConfig,
169
+ pluginOptions: userOptions,
170
+ worker,
171
+ clientManifest,
172
+ serverManifest,
173
+ loader,
174
+ transformIndexHtml: htmlTransform,
175
+ onClientJSFile: (url) => {
176
+ if (!clientAssets.has(url)) {
177
+ const clientPath = join(root, userOptions.build.outDir, userOptions.build.client, url);
178
+ const targetPath = join(root, userOptions.build.outDir, userOptions.build.static, url);
179
+ mkdirSync(dirname(targetPath), { recursive: true });
180
+ copyFileSync(clientPath, targetPath);
181
+ clientAssets.add(url);
182
+ }
183
+ }
184
+ }
185
+ );
186
+ if (failedRoutes.size > 0) {
187
+ console.error(
188
+ "[vite-plugin-react-server] Failed to render routes:",
189
+ failedRoutes
190
+ );
191
+ }
192
+ console.log(`Rendered ${completedRoutes.size} unique routes to ${join(userOptions.build.outDir, userOptions.build.static)}`);
193
+ await worker.terminate();
194
+ }
195
+ };
196
+ }
197
+
198
+ export { reactStaticPlugin };
199
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/react-static/plugin.ts"],"sourcesContent":["import { join, dirname } from \"node:path\";\nimport { Worker } from \"node:worker_threads\";\nimport {\n type ResolvedConfig,\n type UserConfig,\n type Manifest,\n type IndexHtmlTransformHook,\n type Plugin as VitePlugin,\n} from \"vite\";\nimport { checkFilesExist } from \"../checkFilesExist.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolvePages } from \"../config/resolvePages.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { createBuildLoader } from \"../loader/createBuildLoader.js\";\nimport type {\n BuildTiming,\n CheckFilesExistReturn,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { renderPages } from \"../worker/html/renderPages.js\";\nimport { mkdir } from \"node:fs/promises\";\nimport { collectManifestClientFiles } from \"../collect-manifest-client-files.js\";\nimport { mkdirSync, copyFileSync } from \"node:fs\";\nimport { copyDir } from \"../copy-dir.js\";\n\nlet resolvedConfig: ResolvedConfig | null = null;\nlet loader: ((id: string) => Promise<Record<string, any>>) | null = null;\nlet worker: Worker;\nlet htmlTransform: IndexHtmlTransformHook | null = null;\nlet clientAssets = new Set<string>();\n\nexport function reactStaticPlugin(options: StreamPluginOptions): VitePlugin<{\n meta: ReactStreamPluginMeta;\n}> {\n const timing: BuildTiming = {\n start: Date.now(),\n };\n\n let files: CheckFilesExistReturn;\n let root: string = process.cwd();\n let userConfig: ResolvedUserConfig;\n let userOptions: ResolvedUserOptions;\n let resolvedPages: string[];\n let serverManifest: Manifest = {};\n let clientManifest: Manifest = {};\n\n const resolvedOptions = resolveOptions(options, false);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n if (\n userOptions.projectRoot != root &&\n typeof userOptions.projectRoot === \"string\" &&\n userOptions.projectRoot !== process.cwd() &&\n userOptions.projectRoot !== \"\"\n ) {\n root = userOptions.projectRoot;\n console.log(\n \"[vite:plugin-react-server] Root dir changed in plugin\",\n userOptions.projectRoot,\n root\n );\n }\n\n return {\n name: \"vite:plugin-react-server/static\",\n enforce: \"post\",\n api: {\n meta: { timing },\n },\n async config(config, configEnv): Promise<UserConfig> {\n if (\n typeof config.root === \"string\" &&\n config.root !== root &&\n config.root !== process.cwd() &&\n config.root !== \"\"\n ) {\n root = config.root;\n }\n const resolvedPagesResult = await resolvePages(userOptions.build.pages);\n if (resolvedPagesResult.type === \"error\") {\n throw resolvedPagesResult.error;\n }\n resolvedPages = resolvedPagesResult.pages;\n files = await checkFilesExist(resolvedPages, userOptions, root);\n\n const resolvedConfig = resolveUserConfig({\n isStatic: true,\n config,\n configEnv,\n userOptions,\n files,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n timing.configResolved = Date.now();\n return {};\n },\n async buildStart() {\n timing.buildStart = Date.now();\n },\n async closeBundle() {\n timing.renderStart = Date.now();\n\n // Create the loader\n const serverManifestResult = tryManifest({\n root: root,\n outDir: join(userOptions.build.outDir, userOptions.build.server),\n ssrManifest: false,\n });\n if (serverManifestResult.type === \"error\") {\n throw serverManifestResult.error;\n }\n serverManifest = serverManifestResult.manifest;\n\n // Get the client manifest\n const clientManifestResult = tryManifest({\n root: root,\n outDir: join(userOptions.build.outDir, userOptions.build.client),\n ssrManifest: false,\n });\n\n if (clientManifestResult.type === \"error\") {\n throw clientManifestResult.error;\n }\n clientManifest = clientManifestResult.manifest;\n\n // Ensure static directory exists\n const staticDir = join(root, userOptions.build.outDir, userOptions.build.static);\n await mkdir(staticDir, { recursive: true });\n\n worker = await createWorker({\n projectRoot: root,\n workerPath: userOptions.htmlWorkerPath,\n condition: \"react-server\",\n reverseCondition: true,\n mode: (resolvedConfig?.mode ?? \"production\") as \"production\" | \"development\",\n });\n\n if (typeof loader !== \"function\") {\n loader = createBuildLoader({\n root: root,\n userConfig,\n userOptions,\n pluginContext: this,\n serverManifest,\n clientManifest,\n });\n }\n\n // Collect CSS files per route\n const routeCssMap = new Map<string, Set<string>>();\n const globalCss = new Set<string>();\n // copy whole client directory to static directory\n await mkdir(staticDir, { recursive: true });\n await copyDir(join(root, userOptions.build.outDir, userOptions.build.client), join(root, userOptions.build.outDir, userOptions.build.static));\n // Add global CSS from index.html - use client manifest\n const {cssFiles: indexCss} = collectManifestClientFiles({\n manifest: clientManifest,\n root: root,\n pagePath: 'index.html',\n moduleBase: userOptions.moduleBase,\n preserveModulesRoot: userOptions.build.preserveModulesRoot,\n testClient: ()=>true,\n });\n indexCss.forEach((css) => globalCss.add(css));\n\n // Add CSS for each route's page component - use server manifest\n for (const route of resolvedPages) {\n const routeFiles = files.urlMap.get(route);\n if (routeFiles) {\n const pageCss = collectManifestClientFiles({\n manifest: serverManifest,\n root: root,\n pagePath: routeFiles.page,\n moduleBase: userOptions.moduleBase,\n preserveModulesRoot: userOptions.build.preserveModulesRoot,\n onClientModule(path) {\n // copy the css file to the static directory\n const targetPath = join(root, userOptions.build.outDir, userOptions.build.server, path);\n const destinationPath = join(root, userOptions.build.outDir, userOptions.build.static, path);\n mkdirSync(dirname(destinationPath), { recursive: true });\n copyFileSync(targetPath, destinationPath);\n },\n testClient: userOptions.autoDiscover.cssPattern,\n testJson: userOptions.autoDiscover.jsonPattern,\n });\n routeCssMap.set(route, new Set([...globalCss, ...pageCss.cssFiles.keys()]));\n }\n }\n const bootstrapModules = clientManifest[\"index.html\"]?.file\n ? [clientManifest[\"index.html\"].file.startsWith(\"/\")\n ? clientManifest[\"index.html\"].file.slice(1)\n : clientManifest[\"index.html\"].file]\n : [];\n \n const { failedRoutes, completedRoutes} = await renderPages(\n resolvedPages,\n files,\n {\n outDir: userOptions.build.outDir,\n htmlOutputPath: join( userOptions.build.outDir, userOptions.build.static, \"index.html\"),\n pipableStreamOptions: {\n bootstrapModules: bootstrapModules,\n },\n moduleBasePath: join(root, userOptions.build.outDir, userOptions.build.client),\n moduleBaseURL: userOptions.moduleBaseURL,\n userConfig,\n pluginOptions: userOptions,\n worker,\n clientManifest,\n serverManifest,\n loader,\n transformIndexHtml: htmlTransform!,\n onClientJSFile: (url) => {\n if (!clientAssets.has(url)) {\n const clientPath = join(root, userOptions.build.outDir, userOptions.build.client, url);\n const targetPath = join(root, userOptions.build.outDir, userOptions.build.static, url);\n mkdirSync(dirname(targetPath), { recursive: true });\n copyFileSync(clientPath, targetPath);\n clientAssets.add(url);\n }\n }\n }\n );\n\n if (failedRoutes.size > 0) {\n console.error(\n \"[vite-plugin-react-server] Failed to render routes:\",\n failedRoutes\n );\n }\n console.log(`Rendered ${completedRoutes.size} unique routes to ${join(userOptions.build.outDir, userOptions.build.static)}`);\n await worker.terminate();\n },\n };\n}\n"],"names":["resolvedConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+BA,IAAI,MAAgE,GAAA,IAAA;AACpE,IAAI,MAAA;AACJ,IAAI,aAA+C,GAAA,IAAA;AACnD,IAAI,YAAA,uBAAmB,GAAY,EAAA;AAE5B,SAAS,kBAAkB,OAE/B,EAAA;AACD,EAAA,MAAM,MAAsB,GAAA;AAAA,IAC1B,KAAA,EAAO,KAAK,GAAI;AAAA,GAClB;AAEA,EAAI,IAAA,KAAA;AACJ,EAAI,IAAA,IAAA,GAAe,QAAQ,GAAI,EAAA;AAC/B,EAAI,IAAA,UAAA;AACJ,EAAI,IAAA,WAAA;AACJ,EAAI,IAAA,aAAA;AACJ,EAAA,IAAI,iBAA2B,EAAC;AAChC,EAAA,IAAI,iBAA2B,EAAC;AAEhC,EAAM,MAAA,eAAA,GAAkB,cAAe,CAAA,OAAA,EAAS,KAAK,CAAA;AACrD,EAAI,IAAA,eAAA,CAAgB,SAAS,OAAS,EAAA;AACpC,IAAA,MAAM,eAAgB,CAAA,KAAA;AAAA;AAExB,EAAA,WAAA,GAAc,eAAgB,CAAA,WAAA;AAC9B,EAAA,IACE,WAAY,CAAA,WAAA,IAAe,IAC3B,IAAA,OAAO,YAAY,WAAgB,KAAA,QAAA,IACnC,WAAY,CAAA,WAAA,KAAgB,OAAQ,CAAA,GAAA,EACpC,IAAA,WAAA,CAAY,gBAAgB,EAC5B,EAAA;AACA,IAAA,IAAA,GAAO,WAAY,CAAA,WAAA;AACnB,IAAQ,OAAA,CAAA,GAAA;AAAA,MACN,uDAAA;AAAA,MACA,WAAY,CAAA,WAAA;AAAA,MACZ;AAAA,KACF;AAAA;AAGF,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,iCAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,IACT,GAAK,EAAA;AAAA,MACH,IAAA,EAAM,EAAE,MAAO;AAAA,KACjB;AAAA,IACA,MAAM,MAAO,CAAA,MAAA,EAAQ,SAAgC,EAAA;AACnD,MAAA,IACE,OAAO,MAAA,CAAO,IAAS,KAAA,QAAA,IACvB,OAAO,IAAS,KAAA,IAAA,IAChB,MAAO,CAAA,IAAA,KAAS,OAAQ,CAAA,GAAA,EACxB,IAAA,MAAA,CAAO,SAAS,EAChB,EAAA;AACA,QAAA,IAAA,GAAO,MAAO,CAAA,IAAA;AAAA;AAEhB,MAAA,MAAM,mBAAsB,GAAA,MAAM,YAAa,CAAA,WAAA,CAAY,MAAM,KAAK,CAAA;AACtE,MAAI,IAAA,mBAAA,CAAoB,SAAS,OAAS,EAAA;AACxC,QAAA,MAAM,mBAAoB,CAAA,KAAA;AAAA;AAE5B,MAAA,aAAA,GAAgB,mBAAoB,CAAA,KAAA;AACpC,MAAA,KAAA,GAAQ,MAAM,eAAA,CAAgB,aAAe,EAAA,WAAA,EAAa,IAAI,CAAA;AAE9D,MAAA,MAAMA,kBAAiB,iBAAkB,CAAA;AAAA,QACvC,QAAU,EAAA,IAAA;AAAA,QACV,MAAA;AAAA,QACA,SAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAIA,IAAAA,eAAAA,CAAe,SAAS,OAAS,EAAA;AACnC,QAAA,MAAMA,eAAe,CAAA,KAAA;AAAA;AAGvB,MAAA,UAAA,GAAaA,eAAe,CAAA,UAAA;AAC5B,MAAO,MAAA,CAAA,cAAA,GAAiB,KAAK,GAAI,EAAA;AACjC,MAAA,OAAO,EAAC;AAAA,KACV;AAAA,IACA,MAAM,UAAa,GAAA;AACjB,MAAO,MAAA,CAAA,UAAA,GAAa,KAAK,GAAI,EAAA;AAAA,KAC/B;AAAA,IACA,MAAM,WAAc,GAAA;AAClB,MAAO,MAAA,CAAA,WAAA,GAAc,KAAK,GAAI,EAAA;AAG9B,MAAA,MAAM,uBAAuB,WAAY,CAAA;AAAA,QACvC,IAAA;AAAA,QACA,QAAQ,IAAK,CAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,MAAM,MAAM,CAAA;AAAA,QAC/D,WAAa,EAAA;AAAA,OACd,CAAA;AACD,MAAI,IAAA,oBAAA,CAAqB,SAAS,OAAS,EAAA;AACzC,QAAA,MAAM,oBAAqB,CAAA,KAAA;AAAA;AAE7B,MAAA,cAAA,GAAiB,oBAAqB,CAAA,QAAA;AAGtC,MAAA,MAAM,uBAAuB,WAAY,CAAA;AAAA,QACvC,IAAA;AAAA,QACA,QAAQ,IAAK,CAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,MAAM,MAAM,CAAA;AAAA,QAC/D,WAAa,EAAA;AAAA,OACd,CAAA;AAED,MAAI,IAAA,oBAAA,CAAqB,SAAS,OAAS,EAAA;AACzC,QAAA,MAAM,oBAAqB,CAAA,KAAA;AAAA;AAE7B,MAAA,cAAA,GAAiB,oBAAqB,CAAA,QAAA;AAGtC,MAAM,MAAA,SAAA,GAAY,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,MAAM,MAAM,CAAA;AAC/E,MAAA,MAAM,KAAM,CAAA,SAAA,EAAW,EAAE,SAAA,EAAW,MAAM,CAAA;AAE1C,MAAA,MAAA,GAAS,MAAM,YAAa,CAAA;AAAA,QAC1B,WAAa,EAAA,IAAA;AAAA,QACb,YAAY,WAAY,CAAA,cAAA;AAAA,QACxB,SAAW,EAAA,cAAA;AAAA,QACX,gBAAkB,EAAA,IAAA;AAAA,QAClB,IAAA,EAA+B;AAAA,OAChC,CAAA;AAED,MAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,QAAA,MAAA,GAAS,iBAAkB,CAAA;AAAA,UACzB,IAAA;AAAA,UACA,UAAA;AAAA,UACA,WAAA;AAAA,UACA,aAAe,EAAA,IAAA;AAAA,UACf,cAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA;AAIH,MAAM,MAAA,WAAA,uBAAkB,GAAyB,EAAA;AACjD,MAAM,MAAA,SAAA,uBAAgB,GAAY,EAAA;AAElC,MAAA,MAAM,KAAM,CAAA,SAAA,EAAW,EAAE,SAAA,EAAW,MAAM,CAAA;AAC1C,MAAA,MAAM,QAAQ,IAAK,CAAA,IAAA,EAAM,YAAY,KAAM,CAAA,MAAA,EAAQ,YAAY,KAAM,CAAA,MAAM,CAAG,EAAA,IAAA,CAAK,MAAM,WAAY,CAAA,KAAA,CAAM,QAAQ,WAAY,CAAA,KAAA,CAAM,MAAM,CAAC,CAAA;AAE5I,MAAA,MAAM,EAAC,QAAA,EAAU,QAAQ,EAAA,GAAI,0BAA2B,CAAA;AAAA,QACtD,QAAU,EAAA,cAAA;AAAA,QACV,IAAA;AAAA,QACA,QAAU,EAAA,YAAA;AAAA,QACV,YAAY,WAAY,CAAA,UAAA;AAAA,QACxB,mBAAA,EAAqB,YAAY,KAAM,CAAA,mBAAA;AAAA,QACvC,YAAY,MAAI;AAAA,OACjB,CAAA;AACD,MAAA,QAAA,CAAS,QAAQ,CAAC,GAAA,KAAQ,SAAU,CAAA,GAAA,CAAI,GAAG,CAAC,CAAA;AAG5C,MAAA,KAAA,MAAW,SAAS,aAAe,EAAA;AACjC,QAAA,MAAM,UAAa,GAAA,KAAA,CAAM,MAAO,CAAA,GAAA,CAAI,KAAK,CAAA;AACzC,QAAA,IAAI,UAAY,EAAA;AACd,UAAA,MAAM,UAAU,0BAA2B,CAAA;AAAA,YACzC,QAAU,EAAA,cAAA;AAAA,YACV,IAAA;AAAA,YACA,UAAU,UAAW,CAAA,IAAA;AAAA,YACrB,YAAY,WAAY,CAAA,UAAA;AAAA,YACxB,mBAAA,EAAqB,YAAY,KAAM,CAAA,mBAAA;AAAA,YACvC,eAAe,IAAM,EAAA;AAEnB,cAAM,MAAA,UAAA,GAAa,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,KAAM,CAAA,MAAA,EAAQ,IAAI,CAAA;AACtF,cAAM,MAAA,eAAA,GAAkB,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,KAAM,CAAA,MAAA,EAAQ,IAAI,CAAA;AAC3F,cAAA,SAAA,CAAU,QAAQ,eAAe,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACvD,cAAA,YAAA,CAAa,YAAY,eAAe,CAAA;AAAA,aAC1C;AAAA,YACA,UAAA,EAAY,YAAY,YAAa,CAAA,UAAA;AAAA,YACrC,QAAA,EAAU,YAAY,YAAa,CAAA;AAAA,WACpC,CAAA;AACD,UAAA,WAAA,CAAY,GAAI,CAAA,KAAA,kBAAW,IAAA,GAAA,CAAI,CAAC,GAAG,SAAW,EAAA,GAAG,OAAQ,CAAA,QAAA,CAAS,IAAK,EAAC,CAAC,CAAC,CAAA;AAAA;AAC5E;AAEF,MAAM,MAAA,gBAAA,GAAmB,cAAe,CAAA,YAAY,CAAG,EAAA,IAAA,GACrD,CAAC,cAAe,CAAA,YAAY,CAAE,CAAA,IAAA,CAAK,UAAW,CAAA,GAAG,IAC7C,cAAe,CAAA,YAAY,CAAE,CAAA,IAAA,CAAK,KAAM,CAAA,CAAC,CACzC,GAAA,cAAA,CAAe,YAAY,CAAA,CAAE,IAAI,CAAA,GACrC,EAAC;AAEH,MAAA,MAAM,EAAE,YAAA,EAAc,eAAe,EAAA,GAAI,MAAM,WAAA;AAAA,QAC7C,aAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,UACE,MAAA,EAAQ,YAAY,KAAM,CAAA,MAAA;AAAA,UAC1B,cAAA,EAAgB,KAAM,WAAY,CAAA,KAAA,CAAM,QAAQ,WAAY,CAAA,KAAA,CAAM,QAAQ,YAAY,CAAA;AAAA,UACtF,oBAAsB,EAAA;AAAA,YACpB;AAAA,WACF;AAAA,UACA,cAAA,EAAgB,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,MAAM,MAAM,CAAA;AAAA,UAC7E,eAAe,WAAY,CAAA,aAAA;AAAA,UAC3B,UAAA;AAAA,UACA,aAAe,EAAA,WAAA;AAAA,UACf,MAAA;AAAA,UACA,cAAA;AAAA,UACA,cAAA;AAAA,UACA,MAAA;AAAA,UACA,kBAAoB,EAAA,aAAA;AAAA,UACpB,cAAA,EAAgB,CAAC,GAAQ,KAAA;AACvB,YAAA,IAAI,CAAC,YAAA,CAAa,GAAI,CAAA,GAAG,CAAG,EAAA;AAC1B,cAAM,MAAA,UAAA,GAAa,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,KAAM,CAAA,MAAA,EAAQ,GAAG,CAAA;AACrF,cAAM,MAAA,UAAA,GAAa,KAAK,IAAM,EAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,WAAA,CAAY,KAAM,CAAA,MAAA,EAAQ,GAAG,CAAA;AACrF,cAAA,SAAA,CAAU,QAAQ,UAAU,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAClD,cAAA,YAAA,CAAa,YAAY,UAAU,CAAA;AACnC,cAAA,YAAA,CAAa,IAAI,GAAG,CAAA;AAAA;AACtB;AACF;AACF,OACF;AAEA,MAAI,IAAA,YAAA,CAAa,OAAO,CAAG,EAAA;AACzB,QAAQ,OAAA,CAAA,KAAA;AAAA,UACN,qDAAA;AAAA,UACA;AAAA,SACF;AAAA;AAEF,MAAA,OAAA,CAAQ,GAAI,CAAA,CAAA,SAAA,EAAY,eAAgB,CAAA,IAAI,CAAqB,kBAAA,EAAA,IAAA,CAAK,WAAY,CAAA,KAAA,CAAM,MAAQ,EAAA,WAAA,CAAY,KAAM,CAAA,MAAM,CAAC,CAAE,CAAA,CAAA;AAC3H,MAAA,MAAM,OAAO,SAAU,EAAA;AAAA;AACzB,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../plugin/resolvePage.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,IAAI,EACJ,GAAG,EACH,UAAU,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+CjD"}
1
+ {"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../plugin/resolvePage.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,IAAI,EACJ,GAAG,EACH,UAAU,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsDjD"}
@@ -3,12 +3,21 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
+ import { stashedPages } from './config/resolvePages.js';
7
+
6
8
  async function resolvePage({
7
9
  pageModule,
8
10
  path,
9
11
  url,
10
12
  exportName
11
13
  }) {
14
+ if (stashedPages.length > 0 && stashedPages.includes(path)) {
15
+ return {
16
+ type: "success",
17
+ key: path,
18
+ Page: pageModule
19
+ };
20
+ }
12
21
  if (!pageModule) {
13
22
  return {
14
23
  type: "error",
@@ -1 +1 @@
1
- {"version":3,"file":"resolvePage.js","sources":["../../plugin/resolvePage.ts"],"sourcesContent":["type ResolvePageOptions = {\n pageModule: Record<string, any>;\n path: string;\n url: string;\n exportName: string;\n};\n\ntype ResolvePageResult =\n | { type: \"success\"; key: string; Page: any }\n | { type: \"error\"; error: Error }\n | { type: \"skip\" };\n\nexport async function resolvePage({\n pageModule,\n path,\n url,\n exportName,\n}: ResolvePageOptions): Promise<ResolvePageResult> {\n if (!pageModule) {\n return {\n type: \"error\",\n error: new Error(`pageModule is ${typeof pageModule}`),\n };\n }\n const keys =\n typeof pageModule === \"object\" && pageModule != null\n ? Object.keys(pageModule)\n : [];\n const found = keys.find((v) => v === exportName || v === url || v === path);\n if (found) {\n if (typeof pageModule[found] === \"function\") {\n return {\n type: \"success\",\n key: found,\n Page: pageModule[found],\n };\n } else {\n if (\n typeof pageModule === \"object\" &&\n pageModule != null &&\n Object.keys(pageModule).includes(\"type\")\n )\n return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n [exportName]: () => found,\n error: pageModule[found][\"error\"],\n };\n }\n }\n if (keys.includes(\"type\")) return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n error: new Error(\n `Could not find Page export \"${exportName}\" in \"${path}\". ${\n typeof pageModule === \"object\" && pageModule != null\n ? keys.length\n ? \"Available exports: \" + keys.join(\", \")\n : \"The object was defined but has no properties. \\\"\" + JSON.stringify(pageModule) + \"\\\"\"\n : \"typeof pageModule =\" + typeof pageModule\n }`,\n { cause: pageModule }\n ),\n };\n}\n"],"names":[],"mappings":";;;;;AAYA,eAAsB,WAAY,CAAA;AAAA,EAChC,UAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAmD,EAAA;AACjD,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,IAAI,KAAA,CAAM,CAAiB,cAAA,EAAA,OAAO,UAAU,CAAE,CAAA;AAAA,KACvD;AAAA;AAEF,EAAM,MAAA,IAAA,GACJ,OAAO,UAAA,KAAe,QAAY,IAAA,UAAA,IAAc,OAC5C,MAAO,CAAA,IAAA,CAAK,UAAU,CAAA,GACtB,EAAC;AACP,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,MAAM,UAAc,IAAA,CAAA,KAAM,GAAO,IAAA,CAAA,KAAM,IAAI,CAAA;AAC1E,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,IAAI,OAAO,UAAA,CAAW,KAAK,CAAA,KAAM,UAAY,EAAA;AAC3C,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,GAAK,EAAA,KAAA;AAAA,QACL,IAAA,EAAM,WAAW,KAAK;AAAA,OACxB;AAAA,KACK,MAAA;AACL,MACE,IAAA,OAAO,UAAe,KAAA,QAAA,IACtB,UAAc,IAAA,IAAA,IACd,OAAO,IAAK,CAAA,UAAU,CAAE,CAAA,QAAA,CAAS,MAAM,CAAA;AAEvC,QAAO,OAAA,UAAA;AACT,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,CAAC,UAAU,GAAG,MAAM,KAAA;AAAA,QACpB,KAAO,EAAA,UAAA,CAAW,KAAK,CAAA,CAAE,OAAO;AAAA,OAClC;AAAA;AACF;AAEF,EAAA,IAAI,IAAK,CAAA,QAAA,CAAS,MAAM,CAAA,EAAU,OAAA,UAAA;AAClC,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAO,IAAI,KAAA;AAAA,MACT,CAAA,4BAAA,EAA+B,UAAU,CAAA,MAAA,EAAS,IAAI,CAAA,GAAA,EACpD,OAAO,UAAe,KAAA,QAAA,IAAY,UAAc,IAAA,IAAA,GAC5C,IAAK,CAAA,MAAA,GACH,wBAAwB,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,GACtC,iDAAqD,GAAA,IAAA,CAAK,SAAU,CAAA,UAAU,CAAI,GAAA,GAAA,GACpF,qBAAwB,GAAA,OAAO,UACrC,CAAA,CAAA;AAAA,MACA,EAAE,OAAO,UAAW;AAAA;AACtB,GACF;AACF;;;;"}
1
+ {"version":3,"file":"resolvePage.js","sources":["../../plugin/resolvePage.ts"],"sourcesContent":["import { stashedPages } from \"./config/resolvePages.js\";\n\ntype ResolvePageOptions = {\n pageModule: Record<string, any>;\n path: string;\n url: string;\n exportName: string;\n};\n\ntype ResolvePageResult =\n | { type: \"success\"; key: string; Page: any }\n | { type: \"error\"; error: Error }\n | { type: \"skip\" };\n\nexport async function resolvePage({\n pageModule,\n path,\n url,\n exportName,\n}: ResolvePageOptions): Promise<ResolvePageResult> {\n if(stashedPages.length > 0 && stashedPages.includes(path)){\n return {\n type: \"success\",\n key: path,\n Page: pageModule,\n }\n }\n if (!pageModule) {\n return {\n type: \"error\",\n error: new Error(`pageModule is ${typeof pageModule}`),\n };\n }\n const keys =\n typeof pageModule === \"object\" && pageModule != null\n ? Object.keys(pageModule)\n : [];\n const found = keys.find((v) => v === exportName || v === url || v === path);\n if (found) {\n if (typeof pageModule[found] === \"function\") {\n return {\n type: \"success\",\n key: found,\n Page: pageModule[found],\n };\n } else {\n if (\n typeof pageModule === \"object\" &&\n pageModule != null &&\n Object.keys(pageModule).includes(\"type\")\n )\n return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n [exportName]: () => found,\n error: pageModule[found][\"error\"],\n };\n }\n }\n if (keys.includes(\"type\")) return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n error: new Error(\n `Could not find Page export \"${exportName}\" in \"${path}\". ${\n typeof pageModule === \"object\" && pageModule != null\n ? keys.length\n ? \"Available exports: \" + keys.join(\", \")\n : \"The object was defined but has no properties. \\\"\" + JSON.stringify(pageModule) + \"\\\"\"\n : \"typeof pageModule =\" + typeof pageModule\n }`,\n { cause: pageModule }\n ),\n };\n}\n"],"names":[],"mappings":";;;;;;;AAcA,eAAsB,WAAY,CAAA;AAAA,EAChC,UAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAmD,EAAA;AACjD,EAAA,IAAG,aAAa,MAAS,GAAA,CAAA,IAAK,YAAa,CAAA,QAAA,CAAS,IAAI,CAAE,EAAA;AACxD,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,GAAK,EAAA,IAAA;AAAA,MACL,IAAM,EAAA;AAAA,KACR;AAAA;AAEF,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,IAAI,KAAA,CAAM,CAAiB,cAAA,EAAA,OAAO,UAAU,CAAE,CAAA;AAAA,KACvD;AAAA;AAEF,EAAM,MAAA,IAAA,GACJ,OAAO,UAAA,KAAe,QAAY,IAAA,UAAA,IAAc,OAC5C,MAAO,CAAA,IAAA,CAAK,UAAU,CAAA,GACtB,EAAC;AACP,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,MAAM,UAAc,IAAA,CAAA,KAAM,GAAO,IAAA,CAAA,KAAM,IAAI,CAAA;AAC1E,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,IAAI,OAAO,UAAA,CAAW,KAAK,CAAA,KAAM,UAAY,EAAA;AAC3C,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,GAAK,EAAA,KAAA;AAAA,QACL,IAAA,EAAM,WAAW,KAAK;AAAA,OACxB;AAAA,KACK,MAAA;AACL,MACE,IAAA,OAAO,UAAe,KAAA,QAAA,IACtB,UAAc,IAAA,IAAA,IACd,OAAO,IAAK,CAAA,UAAU,CAAE,CAAA,QAAA,CAAS,MAAM,CAAA;AAEvC,QAAO,OAAA,UAAA;AACT,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,CAAC,UAAU,GAAG,MAAM,KAAA;AAAA,QACpB,KAAO,EAAA,UAAA,CAAW,KAAK,CAAA,CAAE,OAAO;AAAA,OAClC;AAAA;AACF;AAEF,EAAA,IAAI,IAAK,CAAA,QAAA,CAAS,MAAM,CAAA,EAAU,OAAA,UAAA;AAClC,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAO,IAAI,KAAA;AAAA,MACT,CAAA,4BAAA,EAA+B,UAAU,CAAA,MAAA,EAAS,IAAI,CAAA,GAAA,EACpD,OAAO,UAAe,KAAA,QAAA,IAAY,UAAc,IAAA,IAAA,GAC5C,IAAK,CAAA,MAAA,GACH,wBAAwB,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,GACtC,iDAAqD,GAAA,IAAA,CAAK,SAAU,CAAA,UAAU,CAAI,GAAA,GAAA,GACpF,qBAAwB,GAAA,OAAO,UACrC,CAAA,CAAA;AAAA,MACA,EAAE,OAAO,UAAW;AAAA;AACtB,GACF;AACF;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare const pluginRoot: string;
2
+ //# sourceMappingURL=root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../plugin/root.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,QAA0C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { dirname } from 'node:path';
7
+ import { fileURLToPath } from 'node:url';
8
+
9
+ const pluginRoot = dirname(fileURLToPath(import.meta.url));
10
+
11
+ export { pluginRoot };
12
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sources":["../../plugin/root.ts"],"sourcesContent":["import { dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nexport const pluginRoot = dirname(fileURLToPath(import.meta.url));\n\n"],"names":[],"mappings":";;;;;;;;AAEO,MAAM,UAAa,GAAA,OAAA,CAAQ,aAAc,CAAA,MAAA,CAAA,IAAA,CAAY,GAAG,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAyEzE"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwC,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAMlD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAkFzE"}
@@ -12,35 +12,45 @@ import { tryManifest } from '../helpers/tryManifest.js';
12
12
  import { join } from 'node:path';
13
13
 
14
14
  function reactTransformPlugin(options) {
15
- const resolvedOptions = resolveOptions(options);
16
- let isDev = false;
17
- if (resolvedOptions.type === "error") throw resolvedOptions.error;
18
- const normalizer = createInputNormalizer({
19
- root: resolvedOptions.userOptions.projectRoot,
20
- preserveModulesRoot: undefined,
21
- removeExtension: false
22
- });
23
- const clientManifestResult = tryManifest({
24
- root: resolvedOptions.userOptions.projectRoot,
25
- outDir: join(
26
- resolvedOptions.userOptions.build.outDir,
27
- resolvedOptions.userOptions.build.client
28
- ),
29
- ssrManifest: false
30
- });
15
+ let normalizer;
16
+ let clientManifest;
17
+ let isDev;
18
+ let userOptions;
31
19
  return {
32
20
  name: "vite:react-transform",
33
21
  enforce: "pre",
34
22
  // Run before Vite's transforms
35
23
  config(config, configEnv) {
24
+ const resolvedOptionsResult = resolveOptions(
25
+ options,
26
+ config.build?.outDir?.startsWith(
27
+ join(options.build?.outDir ?? DEFAULT_CONFIG.BUILD.outDir, options.build?.client ?? DEFAULT_CONFIG.BUILD.client)
28
+ ) ?? false
29
+ );
36
30
  isDev = configEnv.mode === "development" && configEnv.command === "serve";
31
+ if (resolvedOptionsResult.type === "error") throw resolvedOptionsResult.error;
32
+ userOptions = resolvedOptionsResult.userOptions;
33
+ normalizer = createInputNormalizer({
34
+ root: resolvedOptionsResult.userOptions.projectRoot,
35
+ preserveModulesRoot: undefined,
36
+ removeExtension: false
37
+ });
37
38
  },
38
39
  async transform(code, id, options2) {
39
40
  const ssr = options2?.ssr ?? false;
40
41
  if (!ssr) return null;
41
42
  if (!id.match(DEFAULT_CONFIG.FILE_REGEX)) return null;
42
- if (!code.match('"use client"'))
43
- return null;
43
+ if (!code.match('"use client"')) return null;
44
+ const clientManifestResult = tryManifest({
45
+ root: userOptions.projectRoot,
46
+ outDir: join(
47
+ userOptions.build.outDir,
48
+ userOptions.build.client
49
+ ),
50
+ ssrManifest: false
51
+ });
52
+ if (clientManifestResult.type === "error") throw clientManifestResult.error;
53
+ clientManifest = clientManifestResult.manifest;
44
54
  const [key, value] = normalizer(id);
45
55
  const transformed = await transformModuleIfNeeded(
46
56
  code,
@@ -67,12 +77,11 @@ function reactTransformPlugin(options) {
67
77
  );
68
78
  return null;
69
79
  }
70
- if (clientManifestResult.type === "error") {
71
- throw clientManifestResult.error;
72
- }
73
- const clientPath = clientManifestResult.manifest[key]?.file;
80
+ const clientPath = clientManifest[key]?.file;
74
81
  if (!clientPath) {
75
- console.warn(`[vite-plugin-react-server] Could not find client path for ${value}. Ignoring.`);
82
+ console.warn(
83
+ `[vite-plugin-react-server] Could not find client path for ${value}. Ignoring.`
84
+ );
76
85
  return null;
77
86
  }
78
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../plugin/transformer/plugin.ts"],"sourcesContent":["import { resolveOptions } from \"../config/resolveOptions.js\";\nimport type { StreamPluginOptions } from \"../types.js\";\nimport { type Plugin } from \"vite\";\nimport { transformModuleIfNeeded } from \"../loader/react-loader.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { join } from \"node:path\";\n/**\n * Plugin for transforming React Client Components.\n *\n * Core responsibilities:\n * 1. Detects \"use client\" directives\n * 2. Transforms client components for RSC boundaries\n * 3. Adds client reference metadata for RSC\n *\n * When a component is marked with \"use client\", it:\n * - Gets transformed into a client reference\n * - Maintains module ID for RSC boundaries\n * - Preserves class/function behavior\n *\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [\n * viteReactClientTransformPlugin({\n * projectRoot: process.cwd(),\n * })\n * ]\n * });\n * ```\n */\n\nexport function reactTransformPlugin(options: StreamPluginOptions): Plugin {\n const resolvedOptions = resolveOptions(options);\n let isDev = false;\n if (resolvedOptions.type === \"error\") throw resolvedOptions.error;\n const normalizer = createInputNormalizer({\n root: resolvedOptions.userOptions.projectRoot,\n preserveModulesRoot: undefined,\n removeExtension: false,\n });\n\n // Get the client manifest\n const clientManifestResult = tryManifest({\n root: resolvedOptions.userOptions.projectRoot,\n outDir: join(\n resolvedOptions.userOptions.build.outDir,\n resolvedOptions.userOptions.build.client\n ),\n ssrManifest: false,\n });\n\n return {\n name: \"vite:react-transform\",\n enforce: \"pre\", // Run before Vite's transforms\n config(config, configEnv) {\n isDev = configEnv.mode === \"development\" && configEnv.command === \"serve\";\n },\n async transform(code, id, options) {\n const ssr = options?.ssr ?? false;\n if (!ssr) return null;\n if (!id.match(DEFAULT_CONFIG.FILE_REGEX)) return null;\n if (!code.match('\"use client\"'))\n return null;\n const [key, value] = normalizer(id);\n const transformed = await transformModuleIfNeeded(\n code,\n id,\n // Pass null for nextLoad since we don't need module loading in the plugin\n null\n );\n if (!transformed) return null;\n if (isDev) {\n return {\n code: transformed,\n map: null,\n };\n }\n const moduleIdIndex = transformed.indexOf(value);\n if (moduleIdIndex === -1) {\n console.warn(\n `[vite-plugin-react-server] Could not find module id in transformed code. Ignoring.`,\n {\n code,\n id,\n transformed,\n }\n );\n return null\n }\n if (clientManifestResult.type === \"error\") {\n throw clientManifestResult.error;\n }\n const clientPath = clientManifestResult.manifest[key]?.file;\n\n if (!clientPath) {\n console.warn(`[vite-plugin-react-server] Could not find client path for ${value}. Ignoring.`)\n return null\n }\n return {\n code: transformed.replace(key, clientPath),\n map: null,\n };\n },\n };\n}\n"],"names":["options"],"mappings":";;;;;;;;;;;;;AAiCO,SAAS,qBAAqB,OAAsC,EAAA;AACzE,EAAM,MAAA,eAAA,GAAkB,eAAe,OAAO,CAAA;AAC9C,EAAA,IAAI,KAAQ,GAAA,KAAA;AACZ,EAAA,IAAI,eAAgB,CAAA,IAAA,KAAS,OAAS,EAAA,MAAM,eAAgB,CAAA,KAAA;AAC5D,EAAA,MAAM,aAAa,qBAAsB,CAAA;AAAA,IACvC,IAAA,EAAM,gBAAgB,WAAY,CAAA,WAAA;AAAA,IAClC,mBAAqB,EAAA,SAAA;AAAA,IACrB,eAAiB,EAAA;AAAA,GAClB,CAAA;AAGD,EAAA,MAAM,uBAAuB,WAAY,CAAA;AAAA,IACvC,IAAA,EAAM,gBAAgB,WAAY,CAAA,WAAA;AAAA,IAClC,MAAQ,EAAA,IAAA;AAAA,MACN,eAAA,CAAgB,YAAY,KAAM,CAAA,MAAA;AAAA,MAClC,eAAA,CAAgB,YAAY,KAAM,CAAA;AAAA,KACpC;AAAA,IACA,WAAa,EAAA;AAAA,GACd,CAAA;AAED,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,sBAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA;AAAA,IACT,MAAA,CAAO,QAAQ,SAAW,EAAA;AACxB,MAAA,KAAA,GAAQ,SAAU,CAAA,IAAA,KAAS,aAAiB,IAAA,SAAA,CAAU,OAAY,KAAA,OAAA;AAAA,KACpE;AAAA,IACA,MAAM,SAAA,CAAU,IAAM,EAAA,EAAA,EAAIA,QAAS,EAAA;AACjC,MAAM,MAAA,GAAA,GAAMA,UAAS,GAAO,IAAA,KAAA;AAC5B,MAAI,IAAA,CAAC,KAAY,OAAA,IAAA;AACjB,MAAA,IAAI,CAAC,EAAG,CAAA,KAAA,CAAM,cAAe,CAAA,UAAU,GAAU,OAAA,IAAA;AACjD,MAAI,IAAA,CAAC,IAAK,CAAA,KAAA,CAAM,cAAc,CAAA;AAC5B,QAAO,OAAA,IAAA;AACT,MAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GAAI,WAAW,EAAE,CAAA;AAClC,MAAA,MAAM,cAAc,MAAM,uBAAA;AAAA,QACxB,IAAA;AAAA,QACA,EAAA;AAAA;AAAA,QAEA;AAAA,OACF;AACA,MAAI,IAAA,CAAC,aAAoB,OAAA,IAAA;AACzB,MAAA,IAAI,KAAO,EAAA;AACT,QAAO,OAAA;AAAA,UACL,IAAM,EAAA,WAAA;AAAA,UACN,GAAK,EAAA;AAAA,SACP;AAAA;AAEF,MAAM,MAAA,aAAA,GAAgB,WAAY,CAAA,OAAA,CAAQ,KAAK,CAAA;AAC/C,MAAA,IAAI,kBAAkB,EAAI,EAAA;AACxB,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAAA,kFAAA,CAAA;AAAA,UACA;AAAA,YACE,IAAA;AAAA,YACA,EAAA;AAAA,YACA;AAAA;AACF,SACF;AACA,QAAO,OAAA,IAAA;AAAA;AAET,MAAI,IAAA,oBAAA,CAAqB,SAAS,OAAS,EAAA;AACzC,QAAA,MAAM,oBAAqB,CAAA,KAAA;AAAA;AAE7B,MAAA,MAAM,UAAa,GAAA,oBAAA,CAAqB,QAAS,CAAA,GAAG,CAAG,EAAA,IAAA;AAEvD,MAAA,IAAI,CAAC,UAAY,EAAA;AACf,QAAQ,OAAA,CAAA,IAAA,CAAK,CAA6D,0DAAA,EAAA,KAAK,CAAa,WAAA,CAAA,CAAA;AAC5F,QAAO,OAAA,IAAA;AAAA;AAET,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,WAAA,CAAY,OAAQ,CAAA,GAAA,EAAK,UAAU,CAAA;AAAA,QACzC,GAAK,EAAA;AAAA,OACP;AAAA;AACF,GACF;AACF;;;;"}
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/transformer/plugin.ts"],"sourcesContent":["import { resolveOptions } from \"../config/resolveOptions.js\";\nimport type { InputNormalizer, ResolvedUserOptions, StreamPluginOptions } from \"../types.js\";\nimport { type Manifest, type Plugin } from \"vite\";\nimport { transformModuleIfNeeded } from \"../loader/react-loader.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { join } from \"node:path\";\n/**\n * Plugin for transforming React Client Components.\n *\n * Core responsibilities:\n * 1. Detects \"use client\" directives\n * 2. Transforms client components for RSC boundaries\n * 3. Adds client reference metadata for RSC\n *\n * When a component is marked with \"use client\", it:\n * - Gets transformed into a client reference\n * - Maintains module ID for RSC boundaries\n * - Preserves class/function behavior\n *\n * @example\n * ```ts\n * export default defineConfig({\n * plugins: [\n * viteReactClientTransformPlugin({\n * projectRoot: process.cwd(),\n * })\n * ]\n * });\n * ```\n */\n\nexport function reactTransformPlugin(options: StreamPluginOptions): Plugin {\n let normalizer: InputNormalizer;\n let clientManifest: Manifest;\n let isDev:boolean;\n let userOptions: ResolvedUserOptions\n return {\n name: \"vite:react-transform\",\n enforce: \"pre\", // Run before Vite's transforms\n config(config, configEnv) {\n const resolvedOptionsResult = resolveOptions(\n options,\n config.build?.outDir?.startsWith(\n join(options.build?.outDir ?? DEFAULT_CONFIG.BUILD.outDir, options.build?.client ?? DEFAULT_CONFIG.BUILD.client)\n ) ?? false\n );\n isDev = configEnv.mode === \"development\" && configEnv.command === \"serve\"\n if (resolvedOptionsResult.type === \"error\") throw resolvedOptionsResult.error;\n userOptions = resolvedOptionsResult.userOptions;\n normalizer = createInputNormalizer({\n root: resolvedOptionsResult.userOptions.projectRoot,\n preserveModulesRoot: undefined,\n removeExtension: false,\n });\n\n },\n async transform(code, id, options) {\n const ssr = options?.ssr ?? false;\n if (!ssr) return null;\n if (!id.match(DEFAULT_CONFIG.FILE_REGEX)) return null;\n if (!code.match('\"use client\"')) return null;\n \n // Get the client manifest\n const clientManifestResult = tryManifest({\n root: userOptions.projectRoot,\n outDir: join(\n userOptions.build.outDir,\n userOptions.build.client\n ),\n ssrManifest: false,\n });\n if (clientManifestResult.type === \"error\") throw clientManifestResult.error;\n clientManifest = clientManifestResult.manifest;\n const [key, value] = normalizer(id);\n const transformed = await transformModuleIfNeeded(\n code,\n id,\n // Pass null for nextLoad since we don't need module loading in the plugin\n null\n );\n if (!transformed) return null;\n if (isDev) {\n return {\n code: transformed,\n map: null,\n };\n }\n const moduleIdIndex = transformed.indexOf(value);\n if (moduleIdIndex === -1) {\n console.warn(\n `[vite-plugin-react-server] Could not find module id in transformed code. Ignoring.`,\n {\n code,\n id,\n transformed,\n }\n );\n return null;\n }\n const clientPath = clientManifest[key]?.file;\n\n if (!clientPath) {\n console.warn(\n `[vite-plugin-react-server] Could not find client path for ${value}. Ignoring.`\n );\n return null;\n }\n return {\n code: transformed.replace(key, clientPath),\n map: null,\n };\n },\n };\n}\n"],"names":["options"],"mappings":"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"}
@@ -1,19 +1,2 @@
1
- export interface ViteReactClientTransformOptions {
2
- projectRoot?: string;
3
- moduleId?: (path: string, ssr: boolean) => string;
4
- validateModuleId?: (moduleId: string) => boolean;
5
- include?: string | RegExp | (string | RegExp)[];
6
- exclude?: string | RegExp | (string | RegExp)[];
7
- }
8
- export interface TransformerOptions {
9
- moduleId: (path: string, ssr: boolean) => string;
10
- /**
11
- * Optional validation function for module IDs
12
- */
13
- validateModuleId?: (moduleId: string) => boolean;
14
- /**
15
- * The directory to use for the module IDs
16
- */
17
- moduleBase: string;
18
- }
1
+ export {};
19
2
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACjD;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/types.ts"],"names":[],"mappings":""}
@@ -6,9 +6,7 @@ export type NormalizerInput = unknown;
6
6
  export type InputNormalizer = (input: NormalizerInput) => [string, string];
7
7
  export type InputNormalizerWorker = (input: NormalizerInput) => Promise<[string, string]>;
8
8
  export type ResolvedUserConfig = Required<Pick<UserConfig, "root" | "mode" | "build" | "resolve">> & Omit<UserConfig, "root" | "mode" | "build" | "resolve"> & {
9
- resolve: {
10
- alias: AliasOptions;
11
- } & ResolveOptions;
9
+ resolve: ResolveOptions;
12
10
  } & {
13
11
  build: NonNullable<Required<Pick<BuildOptions, "target" | "outDir" | "assetsDir" | "ssr" | "ssrEmitAssets" | "ssrManifest" | "manifest" | "rollupOptions">>> & Omit<BuildOptions, "target" | "outDir" | "assetsDir" | "ssr" | "ssrEmitAssets" | "ssrManifest" | "manifest">;
14
12
  };
@@ -23,7 +21,7 @@ export interface StreamPluginOptionsClient {
23
21
  clientComponents?: AliasOptions;
24
22
  cssFiles?: AliasOptions;
25
23
  }
26
- export type ResolvedUserOptions = Required<Pick<StreamPluginOptions, "moduleBase" | "moduleBasePath" | "moduleBaseURL" | "projectRoot" | "build" | "Page" | "props" | "Html" | "pageExportName" | "propsExportName" | "collectCss" | "collectAssets" | "htmlWorkerPath" | "rscWorkerPath" | "loaderPath" | "clientEntry" | "serverEntry" | "moduleBaseExceptions" | "pipableStreamOptions" | "moduleId">> & {
24
+ export type ResolvedUserOptions = Required<Pick<StreamPluginOptions, "moduleBase" | "moduleBasePath" | "moduleBaseURL" | "projectRoot" | "build" | "Page" | "props" | "Html" | "pageExportName" | "propsExportName" | "collectCss" | "collectAssets" | "htmlWorkerPath" | "rscWorkerPath" | "loaderPath" | "clientEntry" | "serverEntry" | "moduleBaseExceptions" | "pipableStreamOptions">> & {
27
25
  build: NonNullable<Required<StreamPluginOptions["build"]>>;
28
26
  autoDiscover: {
29
27
  modulePattern: (path: string) => boolean;
@@ -82,14 +80,16 @@ export interface StreamPluginOptions {
82
80
  build?: BuildConfig;
83
81
  moduleBaseExceptions?: string[];
84
82
  pipableStreamOptions?: PipeableStreamOptions;
85
- moduleId?: (id: string, ssr: boolean) => string;
86
83
  }
87
84
  export interface CreateHandlerOptions<T = any> {
88
85
  loader: (id: string) => Promise<T>;
89
86
  clientManifest?: import("vite").Manifest;
90
87
  serverManifest?: import("vite").Manifest;
88
+ moduleBasePath: string;
89
+ moduleBaseURL: string;
91
90
  moduleGraph?: import("vite").ModuleGraph;
92
91
  cssFiles?: string[];
92
+ cssModules?: Set<string>;
93
93
  onCssFile?: (path: string, parentUrl: string) => void;
94
94
  logger?: import("vite").Logger;
95
95
  pipableStreamOptions?: PipeableStreamOptions;
@@ -143,7 +143,7 @@ export interface BuildOutput {
143
143
  ext?: string;
144
144
  }
145
145
  export interface BuildConfig {
146
- pages: string[] | (() => Promise<string[]> | string[]);
146
+ pages: string[] | (() => Promise<string[]> | string[]) | Promise<string[]>;
147
147
  assetsDir?: string;
148
148
  client?: string;
149
149
  server?: string;
@@ -258,4 +258,22 @@ export type HtmlProps = {
258
258
  url: string;
259
259
  cssFiles: string[];
260
260
  };
261
+ export interface PageAsset {
262
+ type: 'css' | 'js';
263
+ path: string;
264
+ parentUrl: string;
265
+ }
266
+ export interface PageData {
267
+ route: string;
268
+ clientComponents?: string[];
269
+ html?: {
270
+ raw: string;
271
+ transformed?: string;
272
+ assets: PageAsset[];
273
+ };
274
+ rsc?: {
275
+ content: string;
276
+ modules: Array<[string, string]>;
277
+ };
278
+ }
261
279
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../plugin/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,cAAc,EACf,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;AAEtC,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CACvC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CACxD,GACC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG;IACxD,OAAO,EAAE;QAAC,KAAK,EAAC,YAAY,CAAA;KAAC,GAAG,cAAc,CAAC;CAChD,GAAG;IACF,KAAK,EAAE,WAAW,CAChB,QAAQ,CACN,IAAI,CACF,YAAY,EACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,KAAK,GACL,eAAe,GACf,aAAa,GACb,UAAU,GACV,eAAe,CAClB,CACF,CACF,GACC,IAAI,CACF,YAAY,EACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,KAAK,GACL,eAAe,GACf,aAAa,GACb,UAAU,CACb,CAAC;CACL,CAAC;AAGJ,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CACxC,IAAI,CACF,mBAAmB,EACjB,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,aAAa,GACb,sBAAsB,GACtB,sBAAsB,GACtB,UAAU,CACb,CACF,GAAG;IACF,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,EAAE;QACZ,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACzC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACvC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACxC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACvC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3C,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IACvE,CAAC,KAAK,EAAE;IACN,SAAS,EAAE,CAAC,CAAC;IACb,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;IAC5C,eAAe,EAAE,CAAC,SAAS,cAAc,GACrC,qBAAqB,GACrB,qBAAqB,CAAC;CAC3B,KAAK,CAAC,SAAS,cAAc,GAC1B,OAAO,CAAC,YAAY,CAAC,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EACT;QAEE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE9D,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE5D,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAEjE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAEhE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE3D,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE5D,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAE5D,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;QAEjE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;KAC/D,GACD,SAAS,CAAC;IAEd,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAEvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACd,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,CAAC;QAClC,SAAS,EAAE,GAAG,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC3B,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,MAAM,EAAE,WAAW,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;CAC9C;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,GAAG,EACb,WAAW,CAAC,EAAE,GAAG,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAElC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;CACH,GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC5C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC5C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,0DAA0D;IAC1D,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QACpC,+BAA+B;QAC/B,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1B,gCAAgC;QAChC,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAGzB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AACpE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../plugin/types.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@
6
6
  import { Worker } from 'node:worker_threads';
7
7
  import { getNodePath, getMode } from '../config/getPaths.js';
8
8
  import { getCondition } from '../config/getCondition.js';
9
- import 'node:path';
10
9
 
11
10
  async function createWorker(options) {
12
11
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"createWorker.js","sources":["../../../plugin/worker/createWorker.ts"],"sourcesContent":["import { Worker, type ResourceLimits } from \"node:worker_threads\";\nimport { getMode, getNodePath } from \"../config/getPaths.js\";\nimport { getCondition } from \"../config/getCondition.js\";\nimport { join } from \"node:path\";\ntype CreateWorkerOptions = {\n projectRoot?: string;\n condition?: \"react-server\" | \"react-client\";\n nodePath?: string;\n nodeOptions?: string;\n mode?: \"production\" | \"development\";\n reverseCondition?: boolean;\n maxListeners?: number;\n workerPath: string;\n resourceLimits?: ResourceLimits;\n typescript?: boolean;\n};\n\nexport async function createWorker(options: CreateWorkerOptions) {\n const {\n projectRoot = process.cwd(),\n nodePath = getNodePath(projectRoot),\n condition = getCondition(),\n reverseCondition = true,\n maxListeners = 100,\n mode = getMode(),\n workerPath,\n resourceLimits = {\n maxOldGenerationSizeMb: 512,\n maxYoungGenerationSizeMb: 128,\n },\n } = options;\n\n // Ensure consistent NODE_ENV between main thread and worker\n const isTestEnv = process.env[\"VITEST\"] || process.env[\"NODE_ENV\"] === \"test\";\n const nodeEnv = isTestEnv ? \"development\" : mode;\n\n const env = {\n ...process.env,\n NODE_ENV: nodeEnv,\n NODE_PATH: nodePath,\n NODE_OPTIONS: `${\n reverseCondition\n ? condition === \"react-server\"\n ? process.env[\"NODE_OPTIONS\"]?.includes(\"react-server\")\n ? process.env[\"NODE_OPTIONS\"]?.replace(\"react-server\", \"react-client\")\n : `${process.env[\"NODE_OPTIONS\"] ?? ''} --conditions=react-client`\n : process.env[\"NODE_OPTIONS\"]?.includes(\"react-client\")\n ? process.env[\"NODE_OPTIONS\"]?.replace(\"react-client\", \"react-server\")\n : `${process.env[\"NODE_OPTIONS\"] ?? ''} --conditions=react-server`\n : process.env[\"NODE_OPTIONS\"]\n }`,\n };\n\n // Create worker with proper environment\n const worker = new Worker(\n workerPath.startsWith(\"/\") ? workerPath : './' + workerPath,\n {\n env,\n resourceLimits,\n }\n );\n\n worker.setMaxListeners(maxListeners);\n\n // Wait for worker to be ready\n return await new Promise<Worker>((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error('Worker ready timeout'));\n }, 5000);\n\n worker.once(\"message\", (msg) => {\n if (msg.type === \"READY\" && msg.env === nodeEnv) {\n clearTimeout(timeout);\n resolve(worker);\n }\n });\n\n worker.once(\"error\", (error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;AAiBA,eAAsB,aAAa,OAA8B,EAAA;AAC/D,EAAM,MAAA;AAAA,IACJ,WAAA,GAAc,QAAQ,GAAI,EAAA;AAAA,IAC1B,QAAA,GAAW,YAAY,WAAW,CAAA;AAAA,IAClC,YAAY,YAAa,EAAA;AAAA,IACzB,gBAAmB,GAAA,IAAA;AAAA,IACnB,YAAe,GAAA,GAAA;AAAA,IACf,OAAO,OAAQ,EAAA;AAAA,IACf,UAAA;AAAA,IACA,cAAiB,GAAA;AAAA,MACf,sBAAwB,EAAA,GAAA;AAAA,MACxB,wBAA0B,EAAA;AAAA;AAC5B,GACE,GAAA,OAAA;AAGJ,EAAM,MAAA,SAAA,GAAY,QAAQ,GAAI,CAAA,QAAQ,KAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAM,KAAA,MAAA;AACvE,EAAM,MAAA,OAAA,GAAU,YAAY,aAAgB,GAAA,IAAA;AAE5C,EAAA,MAAM,GAAM,GAAA;AAAA,IACV,GAAG,OAAQ,CAAA,GAAA;AAAA,IACX,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,QAAA;AAAA,IACX,YAAA,EAAc,CACZ,EAAA,gBAAA,GACI,SAAc,KAAA,cAAA,GACZ,QAAQ,GAAI,CAAA,cAAc,CAAG,EAAA,QAAA,CAAS,cAAc,CAAA,GAClD,QAAQ,GAAI,CAAA,cAAc,CAAG,EAAA,OAAA,CAAQ,cAAgB,EAAA,cAAc,IACnE,CAAG,EAAA,OAAA,CAAQ,GAAI,CAAA,cAAc,CAAK,IAAA,EAAE,+BACtC,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,EAAG,QAAS,CAAA,cAAc,IAClD,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,EAAG,OAAQ,CAAA,cAAA,EAAgB,cAAc,CACnE,GAAA,CAAA,EAAG,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,IAAK,EAAE,CACxC,0BAAA,CAAA,GAAA,OAAA,CAAQ,GAAI,CAAA,cAAc,CAChC,CAAA;AAAA,GACF;AAGA,EAAA,MAAM,SAAS,IAAI,MAAA;AAAA,IACjB,UAAW,CAAA,UAAA,CAAW,GAAG,CAAA,GAAI,aAAa,IAAO,GAAA,UAAA;AAAA,IACjD;AAAA,MACE,GAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAA,CAAO,gBAAgB,YAAY,CAAA;AAGnC,EAAA,OAAO,MAAM,IAAI,OAAgB,CAAA,CAAC,SAAS,MAAW,KAAA;AACpD,IAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAO,MAAA,CAAA,IAAI,KAAM,CAAA,sBAAsB,CAAC,CAAA;AAAA,OACvC,GAAI,CAAA;AAEP,IAAO,MAAA,CAAA,IAAA,CAAK,SAAW,EAAA,CAAC,GAAQ,KAAA;AAC9B,MAAA,IAAI,GAAI,CAAA,IAAA,KAAS,OAAW,IAAA,GAAA,CAAI,QAAQ,OAAS,EAAA;AAC/C,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA;AAChB,KACD,CAAA;AAED,IAAO,MAAA,CAAA,IAAA,CAAK,OAAS,EAAA,CAAC,KAAU,KAAA;AAC9B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,MAAA,CAAO,KAAK,CAAA;AAAA,KACb,CAAA;AAAA,GACF,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"createWorker.js","sources":["../../../plugin/worker/createWorker.ts"],"sourcesContent":["import { Worker, type ResourceLimits } from \"node:worker_threads\";\nimport { getMode, getNodePath } from \"../config/getPaths.js\";\nimport { getCondition } from \"../config/getCondition.js\";\n\ntype CreateWorkerOptions = {\n projectRoot?: string;\n condition?: \"react-server\" | \"react-client\";\n nodePath?: string;\n nodeOptions?: string;\n mode?: \"production\" | \"development\";\n reverseCondition?: boolean;\n maxListeners?: number;\n workerPath: string;\n resourceLimits?: ResourceLimits;\n typescript?: boolean;\n};\n\nexport async function createWorker(options: CreateWorkerOptions) {\n const {\n projectRoot = process.cwd(),\n nodePath = getNodePath(projectRoot),\n condition = getCondition(),\n reverseCondition = true,\n maxListeners = 100,\n mode = getMode(),\n workerPath,\n resourceLimits = {\n maxOldGenerationSizeMb: 512,\n maxYoungGenerationSizeMb: 128,\n },\n } = options;\n\n // Ensure consistent NODE_ENV between main thread and worker\n const isTestEnv = process.env[\"VITEST\"] || process.env[\"NODE_ENV\"] === \"test\";\n const nodeEnv = isTestEnv ? \"development\" : mode;\n\n const env = {\n ...process.env,\n NODE_ENV: nodeEnv,\n NODE_PATH: nodePath,\n NODE_OPTIONS: `${\n reverseCondition\n ? condition === \"react-server\"\n ? process.env[\"NODE_OPTIONS\"]?.includes(\"react-server\")\n ? process.env[\"NODE_OPTIONS\"]?.replace(\"react-server\", \"react-client\")\n : `${process.env[\"NODE_OPTIONS\"] ?? ''} --conditions=react-client`\n : process.env[\"NODE_OPTIONS\"]?.includes(\"react-client\")\n ? process.env[\"NODE_OPTIONS\"]?.replace(\"react-client\", \"react-server\")\n : `${process.env[\"NODE_OPTIONS\"] ?? ''} --conditions=react-server`\n : process.env[\"NODE_OPTIONS\"]\n }`,\n };\n\n // Create worker with proper environment\n const worker = new Worker(\n workerPath.startsWith(\"/\") ? workerPath : './' + workerPath,\n {\n env,\n resourceLimits,\n }\n );\n\n worker.setMaxListeners(maxListeners);\n\n // Wait for worker to be ready\n return await new Promise<Worker>((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error('Worker ready timeout'));\n }, 5000);\n\n worker.once(\"message\", (msg) => {\n if (msg.type === \"READY\" && msg.env === nodeEnv) {\n clearTimeout(timeout);\n resolve(worker);\n }\n });\n\n worker.once(\"error\", (error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n"],"names":[],"mappings":";;;;;;;;;AAiBA,eAAsB,aAAa,OAA8B,EAAA;AAC/D,EAAM,MAAA;AAAA,IACJ,WAAA,GAAc,QAAQ,GAAI,EAAA;AAAA,IAC1B,QAAA,GAAW,YAAY,WAAW,CAAA;AAAA,IAClC,YAAY,YAAa,EAAA;AAAA,IACzB,gBAAmB,GAAA,IAAA;AAAA,IACnB,YAAe,GAAA,GAAA;AAAA,IACf,OAAO,OAAQ,EAAA;AAAA,IACf,UAAA;AAAA,IACA,cAAiB,GAAA;AAAA,MACf,sBAAwB,EAAA,GAAA;AAAA,MACxB,wBAA0B,EAAA;AAAA;AAC5B,GACE,GAAA,OAAA;AAGJ,EAAM,MAAA,SAAA,GAAY,QAAQ,GAAI,CAAA,QAAQ,KAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAM,KAAA,MAAA;AACvE,EAAM,MAAA,OAAA,GAAU,YAAY,aAAgB,GAAA,IAAA;AAE5C,EAAA,MAAM,GAAM,GAAA;AAAA,IACV,GAAG,OAAQ,CAAA,GAAA;AAAA,IACX,QAAU,EAAA,OAAA;AAAA,IACV,SAAW,EAAA,QAAA;AAAA,IACX,YAAA,EAAc,CACZ,EAAA,gBAAA,GACI,SAAc,KAAA,cAAA,GACZ,QAAQ,GAAI,CAAA,cAAc,CAAG,EAAA,QAAA,CAAS,cAAc,CAAA,GAClD,QAAQ,GAAI,CAAA,cAAc,CAAG,EAAA,OAAA,CAAQ,cAAgB,EAAA,cAAc,IACnE,CAAG,EAAA,OAAA,CAAQ,GAAI,CAAA,cAAc,CAAK,IAAA,EAAE,+BACtC,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,EAAG,QAAS,CAAA,cAAc,IAClD,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,EAAG,OAAQ,CAAA,cAAA,EAAgB,cAAc,CACnE,GAAA,CAAA,EAAG,OAAQ,CAAA,GAAA,CAAI,cAAc,CAAA,IAAK,EAAE,CACxC,0BAAA,CAAA,GAAA,OAAA,CAAQ,GAAI,CAAA,cAAc,CAChC,CAAA;AAAA,GACF;AAGA,EAAA,MAAM,SAAS,IAAI,MAAA;AAAA,IACjB,UAAW,CAAA,UAAA,CAAW,GAAG,CAAA,GAAI,aAAa,IAAO,GAAA,UAAA;AAAA,IACjD;AAAA,MACE,GAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAA,CAAO,gBAAgB,YAAY,CAAA;AAGnC,EAAA,OAAO,MAAM,IAAI,OAAgB,CAAA,CAAC,SAAS,MAAW,KAAA;AACpD,IAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAC/B,MAAO,MAAA,CAAA,IAAI,KAAM,CAAA,sBAAsB,CAAC,CAAA;AAAA,OACvC,GAAI,CAAA;AAEP,IAAO,MAAA,CAAA,IAAA,CAAK,SAAW,EAAA,CAAC,GAAQ,KAAA;AAC9B,MAAA,IAAI,GAAI,CAAA,IAAA,KAAS,OAAW,IAAA,GAAA,CAAI,QAAQ,OAAS,EAAA;AAC/C,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA;AAChB,KACD,CAAA;AAED,IAAO,MAAA,CAAA,IAAA,CAAK,OAAS,EAAA,CAAC,KAAU,KAAA;AAC9B,MAAA,YAAA,CAAa,OAAO,CAAA;AACpB,MAAA,MAAA,CAAO,KAAK,CAAA;AAAA,KACb,CAAA;AAAA,GACF,CAAA;AACH;;;;"}