@cedarjs/vite 0.0.4

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 (213) hide show
  1. package/LICENSE +21 -0
  2. package/bins/rw-vite-build.mjs +61 -0
  3. package/bins/rw-vite-dev.mjs +57 -0
  4. package/bins/vite.mjs +12 -0
  5. package/dist/build/build.d.ts +21 -0
  6. package/dist/build/build.d.ts.map +1 -0
  7. package/dist/build/build.js +78 -0
  8. package/dist/buildFeServer.d.ts +6 -0
  9. package/dist/buildFeServer.d.ts.map +1 -0
  10. package/dist/buildFeServer.js +39 -0
  11. package/dist/buildRouteHooks.d.ts +3 -0
  12. package/dist/buildRouteHooks.d.ts.map +1 -0
  13. package/dist/buildRouteHooks.js +45 -0
  14. package/dist/buildRouteManifest.d.ts +6 -0
  15. package/dist/buildRouteManifest.d.ts.map +1 -0
  16. package/dist/buildRouteManifest.js +58 -0
  17. package/dist/buildRscClientAndServer.d.ts +4 -0
  18. package/dist/buildRscClientAndServer.d.ts.map +1 -0
  19. package/dist/buildRscClientAndServer.js +30 -0
  20. package/dist/bundled/react-server-dom-webpack.server.d.ts +2 -0
  21. package/dist/bundled/react-server-dom-webpack.server.d.ts.map +1 -0
  22. package/dist/bundled/react-server-dom-webpack.server.js +33529 -0
  23. package/dist/cjs/ClientRouter.d.ts +1 -0
  24. package/dist/cjs/build/build.d.ts +1 -0
  25. package/dist/cjs/build/build.js +116 -0
  26. package/dist/cjs/buildFeServer.d.ts +1 -0
  27. package/dist/cjs/buildFeServer.js +63 -0
  28. package/dist/cjs/buildRouteHooks.js +66 -0
  29. package/dist/cjs/buildRouteManifest.js +92 -0
  30. package/dist/cjs/buildRscClientAndServer.js +54 -0
  31. package/dist/cjs/client.d.ts +1 -0
  32. package/dist/cjs/clientSsr.d.ts +1 -0
  33. package/dist/cjs/devFeServer.js +153 -0
  34. package/dist/cjs/index.d.ts +1 -0
  35. package/dist/cjs/index.js +184 -0
  36. package/dist/cjs/lib/StatusError.js +36 -0
  37. package/dist/cjs/lib/entries.js +53 -0
  38. package/dist/cjs/lib/envVarDefinitions.js +87 -0
  39. package/dist/cjs/lib/getMergedConfig.js +187 -0
  40. package/dist/cjs/lib/onWarn.js +36 -0
  41. package/dist/cjs/lib/registerFwGlobalsAndShims.js +117 -0
  42. package/dist/cjs/middleware/index.js +22 -0
  43. package/dist/cjs/middleware/invokeMiddleware.js +52 -0
  44. package/dist/cjs/middleware/register.js +106 -0
  45. package/dist/cjs/middleware/types.js +16 -0
  46. package/dist/cjs/package.json +1 -0
  47. package/dist/cjs/plugins/vite-plugin-jsx-loader.js +42 -0
  48. package/dist/cjs/plugins/vite-plugin-remove-from-bundle.js +56 -0
  49. package/dist/cjs/plugins/vite-plugin-rsc-analyze.js +104 -0
  50. package/dist/cjs/plugins/vite-plugin-rsc-reload.js +75 -0
  51. package/dist/cjs/plugins/vite-plugin-rsc-routes-auto-loader.js +159 -0
  52. package/dist/cjs/plugins/vite-plugin-rsc-routes-imports.js +125 -0
  53. package/dist/cjs/plugins/vite-plugin-rsc-ssr-router-import.js +75 -0
  54. package/dist/cjs/plugins/vite-plugin-rsc-transform-client.js +229 -0
  55. package/dist/cjs/plugins/vite-plugin-rsc-transform-server.js +398 -0
  56. package/dist/cjs/plugins/vite-plugin-swap-apollo-provider.js +41 -0
  57. package/dist/cjs/rsc/rscBuildAnalyze.js +116 -0
  58. package/dist/cjs/rsc/rscBuildClient.js +91 -0
  59. package/dist/cjs/rsc/rscBuildCopyCssAssets.js +56 -0
  60. package/dist/cjs/rsc/rscBuildEntriesFile.js +115 -0
  61. package/dist/cjs/rsc/rscBuildForServer.js +157 -0
  62. package/dist/cjs/rsc/rscBuildForSsr.js +172 -0
  63. package/dist/cjs/rsc/rscBuildRwEnvVars.js +56 -0
  64. package/dist/cjs/rsc/rscRenderer.js +165 -0
  65. package/dist/cjs/rsc/rscRequestHandler.js +162 -0
  66. package/dist/cjs/rsc/rscStudioHandlers.js +154 -0
  67. package/dist/cjs/runFeServer.js +166 -0
  68. package/dist/cjs/streaming/buildForStreamingServer.js +65 -0
  69. package/dist/cjs/streaming/collectCss.js +52 -0
  70. package/dist/cjs/streaming/createReactStreamingHandler.js +173 -0
  71. package/dist/cjs/streaming/streamHelpers.js +228 -0
  72. package/dist/cjs/streaming/transforms/bufferedTransform.js +61 -0
  73. package/dist/cjs/streaming/transforms/cancelTimeoutTransform.js +34 -0
  74. package/dist/cjs/streaming/transforms/encode-decode.js +36 -0
  75. package/dist/cjs/streaming/transforms/serverInjectionTransform.js +84 -0
  76. package/dist/cjs/streaming/triggerRouteHooks.js +96 -0
  77. package/dist/cjs/types.js +16 -0
  78. package/dist/cjs/utils.js +91 -0
  79. package/dist/devFeServer.d.ts +2 -0
  80. package/dist/devFeServer.d.ts.map +1 -0
  81. package/dist/devFeServer.js +134 -0
  82. package/dist/index.d.ts +6 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +154 -0
  85. package/dist/lib/StatusError.d.ts +8 -0
  86. package/dist/lib/StatusError.d.ts.map +1 -0
  87. package/dist/lib/StatusError.js +11 -0
  88. package/dist/lib/entries.d.ts +3 -0
  89. package/dist/lib/entries.d.ts.map +1 -0
  90. package/dist/lib/entries.js +32 -0
  91. package/dist/lib/envVarDefinitions.d.ts +14 -0
  92. package/dist/lib/envVarDefinitions.d.ts.map +1 -0
  93. package/dist/lib/envVarDefinitions.js +53 -0
  94. package/dist/lib/getMergedConfig.d.ts +11 -0
  95. package/dist/lib/getMergedConfig.d.ts.map +1 -0
  96. package/dist/lib/getMergedConfig.js +153 -0
  97. package/dist/lib/onWarn.d.ts +3 -0
  98. package/dist/lib/onWarn.d.ts.map +1 -0
  99. package/dist/lib/onWarn.js +12 -0
  100. package/dist/lib/registerFwGlobalsAndShims.d.ts +12 -0
  101. package/dist/lib/registerFwGlobalsAndShims.d.ts.map +1 -0
  102. package/dist/lib/registerFwGlobalsAndShims.js +83 -0
  103. package/dist/middleware/index.d.ts +2 -0
  104. package/dist/middleware/index.d.ts.map +1 -0
  105. package/dist/middleware/index.js +1 -0
  106. package/dist/middleware/invokeMiddleware.d.ts +14 -0
  107. package/dist/middleware/invokeMiddleware.d.ts.map +1 -0
  108. package/dist/middleware/invokeMiddleware.js +32 -0
  109. package/dist/middleware/register.d.ts +23 -0
  110. package/dist/middleware/register.d.ts.map +1 -0
  111. package/dist/middleware/register.js +69 -0
  112. package/dist/middleware/types.d.ts +3 -0
  113. package/dist/middleware/types.d.ts.map +1 -0
  114. package/dist/middleware/types.js +0 -0
  115. package/dist/package.json +1 -0
  116. package/dist/plugins/vite-plugin-jsx-loader.d.ts +8 -0
  117. package/dist/plugins/vite-plugin-jsx-loader.d.ts.map +1 -0
  118. package/dist/plugins/vite-plugin-jsx-loader.js +18 -0
  119. package/dist/plugins/vite-plugin-remove-from-bundle.d.ts +17 -0
  120. package/dist/plugins/vite-plugin-remove-from-bundle.d.ts.map +1 -0
  121. package/dist/plugins/vite-plugin-remove-from-bundle.js +31 -0
  122. package/dist/plugins/vite-plugin-rsc-analyze.d.ts +3 -0
  123. package/dist/plugins/vite-plugin-rsc-analyze.d.ts.map +1 -0
  124. package/dist/plugins/vite-plugin-rsc-analyze.js +70 -0
  125. package/dist/plugins/vite-plugin-rsc-reload.d.ts +3 -0
  126. package/dist/plugins/vite-plugin-rsc-reload.d.ts.map +1 -0
  127. package/dist/plugins/vite-plugin-rsc-reload.js +41 -0
  128. package/dist/plugins/vite-plugin-rsc-routes-auto-loader.d.ts +3 -0
  129. package/dist/plugins/vite-plugin-rsc-routes-auto-loader.d.ts.map +1 -0
  130. package/dist/plugins/vite-plugin-rsc-routes-auto-loader.js +130 -0
  131. package/dist/plugins/vite-plugin-rsc-routes-imports.d.ts +3 -0
  132. package/dist/plugins/vite-plugin-rsc-routes-imports.d.ts.map +1 -0
  133. package/dist/plugins/vite-plugin-rsc-routes-imports.js +96 -0
  134. package/dist/plugins/vite-plugin-rsc-ssr-router-import.d.ts +7 -0
  135. package/dist/plugins/vite-plugin-rsc-ssr-router-import.d.ts.map +1 -0
  136. package/dist/plugins/vite-plugin-rsc-ssr-router-import.js +41 -0
  137. package/dist/plugins/vite-plugin-rsc-transform-client.d.ts +3 -0
  138. package/dist/plugins/vite-plugin-rsc-transform-client.d.ts.map +1 -0
  139. package/dist/plugins/vite-plugin-rsc-transform-client.js +195 -0
  140. package/dist/plugins/vite-plugin-rsc-transform-server.d.ts +3 -0
  141. package/dist/plugins/vite-plugin-rsc-transform-server.d.ts.map +1 -0
  142. package/dist/plugins/vite-plugin-rsc-transform-server.js +364 -0
  143. package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts +12 -0
  144. package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts.map +1 -0
  145. package/dist/plugins/vite-plugin-swap-apollo-provider.js +17 -0
  146. package/dist/rsc/rscBuildAnalyze.d.ts +16 -0
  147. package/dist/rsc/rscBuildAnalyze.d.ts.map +1 -0
  148. package/dist/rsc/rscBuildAnalyze.js +92 -0
  149. package/dist/rsc/rscBuildClient.d.ts +7 -0
  150. package/dist/rsc/rscBuildClient.d.ts.map +1 -0
  151. package/dist/rsc/rscBuildClient.js +67 -0
  152. package/dist/rsc/rscBuildCopyCssAssets.d.ts +7 -0
  153. package/dist/rsc/rscBuildCopyCssAssets.d.ts.map +1 -0
  154. package/dist/rsc/rscBuildCopyCssAssets.js +22 -0
  155. package/dist/rsc/rscBuildEntriesFile.d.ts +10 -0
  156. package/dist/rsc/rscBuildEntriesFile.d.ts.map +1 -0
  157. package/dist/rsc/rscBuildEntriesFile.js +81 -0
  158. package/dist/rsc/rscBuildForServer.d.ts +7 -0
  159. package/dist/rsc/rscBuildForServer.d.ts.map +1 -0
  160. package/dist/rsc/rscBuildForServer.js +133 -0
  161. package/dist/rsc/rscBuildForSsr.d.ts +9 -0
  162. package/dist/rsc/rscBuildForSsr.d.ts.map +1 -0
  163. package/dist/rsc/rscBuildForSsr.js +138 -0
  164. package/dist/rsc/rscBuildRwEnvVars.d.ts +10 -0
  165. package/dist/rsc/rscBuildRwEnvVars.d.ts.map +1 -0
  166. package/dist/rsc/rscBuildRwEnvVars.js +22 -0
  167. package/dist/rsc/rscRenderer.d.ts +9 -0
  168. package/dist/rsc/rscRenderer.d.ts.map +1 -0
  169. package/dist/rsc/rscRenderer.js +130 -0
  170. package/dist/rsc/rscRequestHandler.d.ts +10 -0
  171. package/dist/rsc/rscRequestHandler.d.ts.map +1 -0
  172. package/dist/rsc/rscRequestHandler.js +131 -0
  173. package/dist/rsc/rscStudioHandlers.d.ts +10 -0
  174. package/dist/rsc/rscStudioHandlers.d.ts.map +1 -0
  175. package/dist/rsc/rscStudioHandlers.js +120 -0
  176. package/dist/runFeServer.d.ts +2 -0
  177. package/dist/runFeServer.d.ts.map +1 -0
  178. package/dist/runFeServer.js +132 -0
  179. package/dist/streaming/buildForStreamingServer.d.ts +4 -0
  180. package/dist/streaming/buildForStreamingServer.d.ts.map +1 -0
  181. package/dist/streaming/buildForStreamingServer.js +41 -0
  182. package/dist/streaming/collectCss.d.ts +7 -0
  183. package/dist/streaming/collectCss.d.ts.map +1 -0
  184. package/dist/streaming/collectCss.js +27 -0
  185. package/dist/streaming/createReactStreamingHandler.d.ts +12 -0
  186. package/dist/streaming/createReactStreamingHandler.d.ts.map +1 -0
  187. package/dist/streaming/createReactStreamingHandler.js +139 -0
  188. package/dist/streaming/streamHelpers.d.ts +23 -0
  189. package/dist/streaming/streamHelpers.d.ts.map +1 -0
  190. package/dist/streaming/streamHelpers.js +192 -0
  191. package/dist/streaming/transforms/bufferedTransform.d.ts +2 -0
  192. package/dist/streaming/transforms/bufferedTransform.d.ts.map +1 -0
  193. package/dist/streaming/transforms/bufferedTransform.js +37 -0
  194. package/dist/streaming/transforms/cancelTimeoutTransform.d.ts +2 -0
  195. package/dist/streaming/transforms/cancelTimeoutTransform.d.ts.map +1 -0
  196. package/dist/streaming/transforms/cancelTimeoutTransform.js +10 -0
  197. package/dist/streaming/transforms/encode-decode.d.ts +3 -0
  198. package/dist/streaming/transforms/encode-decode.d.ts.map +1 -0
  199. package/dist/streaming/transforms/encode-decode.js +11 -0
  200. package/dist/streaming/transforms/serverInjectionTransform.d.ts +16 -0
  201. package/dist/streaming/transforms/serverInjectionTransform.d.ts.map +1 -0
  202. package/dist/streaming/transforms/serverInjectionTransform.js +60 -0
  203. package/dist/streaming/triggerRouteHooks.d.ts +26 -0
  204. package/dist/streaming/triggerRouteHooks.d.ts.map +1 -0
  205. package/dist/streaming/triggerRouteHooks.js +71 -0
  206. package/dist/types.d.ts +31 -0
  207. package/dist/types.d.ts.map +1 -0
  208. package/dist/types.js +0 -0
  209. package/dist/utils.d.ts +14 -0
  210. package/dist/utils.d.ts.map +1 -0
  211. package/dist/utils.js +62 -0
  212. package/inject/reactRefresh.js +7 -0
  213. package/package.json +116 -0
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var rscBuildCopyCssAssets_exports = {};
30
+ __export(rscBuildCopyCssAssets_exports, {
31
+ rscBuildCopyCssAssets: () => rscBuildCopyCssAssets
32
+ });
33
+ module.exports = __toCommonJS(rscBuildCopyCssAssets_exports);
34
+ var import_promises = __toESM(require("fs/promises"), 1);
35
+ var import_path = __toESM(require("path"), 1);
36
+ var import_project_config = require("@cedarjs/project-config");
37
+ function rscBuildCopyCssAssets(serverBuildOutput) {
38
+ console.log("\n");
39
+ console.log("5. rscBuildCopyCssAssets");
40
+ console.log("========================\n");
41
+ const rwPaths = (0, import_project_config.getPaths)();
42
+ return Promise.all(
43
+ serverBuildOutput.filter((item) => {
44
+ return item.type === "asset" && item.fileName.endsWith(".css");
45
+ }).map((cssAsset) => {
46
+ return import_promises.default.copyFile(
47
+ import_path.default.join(rwPaths.web.distRsc, cssAsset.fileName),
48
+ import_path.default.join(rwPaths.web.distBrowser, cssAsset.fileName)
49
+ );
50
+ })
51
+ );
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ rscBuildCopyCssAssets
56
+ });
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var rscBuildEntriesFile_exports = {};
30
+ __export(rscBuildEntriesFile_exports, {
31
+ rscBuildEntriesMappings: () => rscBuildEntriesMappings
32
+ });
33
+ module.exports = __toCommonJS(rscBuildEntriesFile_exports);
34
+ var import_promises = __toESM(require("fs/promises"), 1);
35
+ var import_vite = require("vite");
36
+ var import_project_config = require("@cedarjs/project-config");
37
+ async function rscBuildEntriesMappings(clientBuildOutput, ssrBuildOutput, serverBuildOutput, clientEntryFiles) {
38
+ console.log("\n");
39
+ console.log("6. rscBuildEntriesMapping");
40
+ console.log("=========================\n");
41
+ const rwPaths = (0, import_project_config.getPaths)();
42
+ const clientEntries = {};
43
+ for (const item of clientBuildOutput) {
44
+ const { name, fileName } = item;
45
+ const entryFile = name && // TODO (RSC) Can't we just compare the names? `item.name === name`
46
+ serverBuildOutput.find(
47
+ (item2) => "moduleIds" in item2 && item2.moduleIds.includes(clientEntryFiles[name])
48
+ )?.fileName;
49
+ if (entryFile) {
50
+ if (process.platform === "win32") {
51
+ const entryFileSlash = entryFile.replaceAll("\\", "/");
52
+ clientEntries[entryFileSlash] = fileName;
53
+ } else {
54
+ clientEntries[entryFile] = fileName;
55
+ }
56
+ }
57
+ }
58
+ console.log("clientEntries", clientEntries);
59
+ const ssrEntries = {};
60
+ for (const item of ssrBuildOutput) {
61
+ const { name, fileName } = item;
62
+ const entryFile = name && // TODO (RSC) Can't we just compare the names? `item.name === name`
63
+ serverBuildOutput.find(
64
+ (item2) => "moduleIds" in item2 && item2.moduleIds.includes(clientEntryFiles[name])
65
+ )?.fileName;
66
+ if (entryFile) {
67
+ if (process.platform === "win32") {
68
+ const entryFileSlash = entryFile.replaceAll("\\", "/");
69
+ ssrEntries[entryFileSlash] = fileName;
70
+ } else {
71
+ ssrEntries[entryFile] = fileName;
72
+ }
73
+ }
74
+ }
75
+ console.log("ssrEntries", ssrEntries);
76
+ await import_promises.default.appendFile(
77
+ rwPaths.web.distRscEntries,
78
+ `// client component mapping (dist/rsc -> dist/browser)
79
+ export const clientEntries = ${JSON.stringify(clientEntries, void 0, 2)};
80
+
81
+ `
82
+ );
83
+ await import_promises.default.appendFile(
84
+ rwPaths.web.distRscEntries,
85
+ `// client component mapping (dist/rsc -> dist/ssr)
86
+ export const ssrEntries = ${JSON.stringify(ssrEntries, void 0, 2)};
87
+
88
+ `
89
+ );
90
+ const serverEntries = {};
91
+ const entries = {
92
+ __rwjs__ServerEntry: (0, import_project_config.getPaths)().web.entryServer || "",
93
+ __rwjs__Routes: (0, import_project_config.getPaths)().web.routes
94
+ };
95
+ for (const [name, sourceFile] of Object.entries(entries)) {
96
+ const buildOutputItem = serverBuildOutput.find((item) => {
97
+ return item.facadeModuleId === (0, import_vite.normalizePath)(sourceFile);
98
+ });
99
+ if (buildOutputItem) {
100
+ serverEntries[name] = buildOutputItem.fileName;
101
+ }
102
+ }
103
+ console.log("serverEntries", serverEntries);
104
+ await import_promises.default.appendFile(
105
+ rwPaths.web.distRscEntries,
106
+ `// server component mapping (src -> dist/rsc)
107
+ export const serverEntries = ${JSON.stringify(serverEntries, void 0, 2)};
108
+
109
+ `
110
+ );
111
+ }
112
+ // Annotate the CommonJS export names for ESM import in node:
113
+ 0 && (module.exports = {
114
+ rscBuildEntriesMappings
115
+ });
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var rscBuildForServer_exports = {};
20
+ __export(rscBuildForServer_exports, {
21
+ rscBuildForServer: () => rscBuildForServer
22
+ });
23
+ module.exports = __toCommonJS(rscBuildForServer_exports);
24
+ var import_vite = require("vite");
25
+ var import_project_config = require("@cedarjs/project-config");
26
+ var import_entries = require("../lib/entries.js");
27
+ var import_onWarn = require("../lib/onWarn.js");
28
+ var import_vite_plugin_rsc_routes_imports = require("../plugins/vite-plugin-rsc-routes-imports.js");
29
+ var import_vite_plugin_rsc_transform_client = require("../plugins/vite-plugin-rsc-transform-client.js");
30
+ var import_vite_plugin_rsc_transform_server = require("../plugins/vite-plugin-rsc-transform-server.js");
31
+ async function rscBuildForServer(clientEntryFiles, serverEntryFiles, customModules) {
32
+ console.log("\n");
33
+ console.log("4. rscBuildForServer");
34
+ console.log("====================\n");
35
+ const rwPaths = (0, import_project_config.getPaths)();
36
+ const entryFiles = (0, import_entries.getEntries)();
37
+ const entryFilesKeys = Object.keys(entryFiles);
38
+ if (!rwPaths.web.entryServer) {
39
+ throw new Error("Server Entry file not found");
40
+ }
41
+ const outDir = rwPaths.web.distRsc;
42
+ const rscServerBuildOutput = await (0, import_vite.build)({
43
+ envFile: false,
44
+ define: {
45
+ "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV)
46
+ },
47
+ ssr: {
48
+ // Inline every file apart from node built-ins. We want vite/rollup to
49
+ // inline dependencies in the server build. This gets round runtime
50
+ // importing of "server-only" and other packages with poisoned imports.
51
+ //
52
+ // Files included in `noExternal` are files we want Vite to analyze
53
+ // As of vite 5.2 `true` here means "all except node built-ins"
54
+ noExternal: true,
55
+ // TODO (RSC): Other frameworks build for RSC without `noExternal: true`.
56
+ // What are we missing here? When/why is that a better choice? I know
57
+ // we would have to explicitly add a bunch of packages to noExternal, if
58
+ // we wanted to go that route.
59
+ // noExternal: ['@tobbe.dev/rsc-test'],
60
+ // Can't inline prisma client (db calls fail at runtime) or react-dom
61
+ // (css pre-init failure)
62
+ // Server store has to be externalized, because it's a singleton (shared between FW and App)
63
+ external: [
64
+ "@prisma/client",
65
+ "@prisma/fetch-engine",
66
+ "@prisma/internals",
67
+ "@cedarjs/auth-dbauth-api",
68
+ "@cedarjs/cookie-jar",
69
+ "@cedarjs/server-store",
70
+ "@simplewebauthn/server",
71
+ "graphql-scalars",
72
+ "minimatch",
73
+ "playwright",
74
+ "react-dom"
75
+ ],
76
+ resolve: {
77
+ // These conditions are used in the plugin pipeline, and only affect non-externalized
78
+ // dependencies during the SSR build. Which because of `noExternal: true` means all
79
+ // dependencies apart from node built-ins.
80
+ // TODO (RSC): What's the difference between `conditions` and
81
+ // `externalConditions`? When is one used over the other?
82
+ conditions: ["react-server"],
83
+ externalConditions: ["react-server"]
84
+ }
85
+ },
86
+ plugins: [
87
+ // The rscTransformUseClientPlugin maps paths like
88
+ // /Users/tobbe/.../rw-app/node_modules/@tobbe.dev/rsc-test/dist/rsc-test.es.js
89
+ // to
90
+ // /Users/tobbe/.../rw-app/web/dist/ssr/assets/rsc0.js
91
+ // That's why it needs the `clientEntryFiles` data
92
+ // (It does other things as well, but that's why it needs clientEntryFiles)
93
+ (0, import_vite_plugin_rsc_transform_client.rscTransformUseClientPlugin)(clientEntryFiles),
94
+ (0, import_vite_plugin_rsc_transform_server.rscTransformUseServerPlugin)(outDir, serverEntryFiles),
95
+ (0, import_vite_plugin_rsc_routes_imports.rscRoutesImports)()
96
+ ],
97
+ build: {
98
+ // TODO (RSC): Remove `minify: false` when we don't need to debug as often
99
+ minify: false,
100
+ ssr: true,
101
+ ssrEmitAssets: true,
102
+ outDir,
103
+ emptyOutDir: true,
104
+ // Needed because `outDir` is not inside `root`
105
+ manifest: "server-build-manifest.json",
106
+ rollupOptions: {
107
+ onwarn: import_onWarn.onWarn,
108
+ input: {
109
+ ...entryFiles,
110
+ ...clientEntryFiles,
111
+ ...serverEntryFiles,
112
+ ...customModules,
113
+ "entry.server": rwPaths.web.entryServer
114
+ },
115
+ output: {
116
+ banner: (chunk) => {
117
+ let code = "";
118
+ const clientValues = Object.values(clientEntryFiles);
119
+ if (chunk.moduleIds.some((id) => clientValues.includes(id))) {
120
+ code += '"use client";';
121
+ }
122
+ const serverValues = Object.values(serverEntryFiles);
123
+ if (chunk.moduleIds.some((id) => serverValues.includes(id))) {
124
+ code += '"use server";';
125
+ }
126
+ return code;
127
+ },
128
+ entryFileNames: (chunkInfo) => {
129
+ if (entryFilesKeys.includes(chunkInfo.name)) {
130
+ return "assets/[name]-[hash].mjs";
131
+ }
132
+ if (chunkInfo.name === "entry.server" || customModules[chunkInfo.name]) {
133
+ return "[name].mjs";
134
+ }
135
+ return "assets/[name].mjs";
136
+ },
137
+ chunkFileNames: `assets/[name]-[hash].mjs`,
138
+ // This is not ideal. See
139
+ // https://rollupjs.org/faqs/#why-do-additional-imports-turn-up-in-my-entry-chunks-when-code-splitting
140
+ // But we need it to prevent `import 'client-only'` from being
141
+ // hoisted into App.tsx
142
+ // TODO (RSC): Fix when https://github.com/rollup/rollup/issues/5235
143
+ // is resolved
144
+ hoistTransitiveImports: false
145
+ }
146
+ }
147
+ }
148
+ });
149
+ if (!("output" in rscServerBuildOutput)) {
150
+ throw new Error("Unexpected rsc server build output");
151
+ }
152
+ return rscServerBuildOutput.output;
153
+ }
154
+ // Annotate the CommonJS export names for ESM import in node:
155
+ 0 && (module.exports = {
156
+ rscBuildForServer
157
+ });
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var rscBuildForSsr_exports = {};
30
+ __export(rscBuildForSsr_exports, {
31
+ rscBuildForSsr: () => rscBuildForSsr
32
+ });
33
+ module.exports = __toCommonJS(rscBuildForSsr_exports);
34
+ var import_node_fs = __toESM(require("node:fs"), 1);
35
+ var import_vite = require("vite");
36
+ var import_vite_plugin_cjs_interop = require("vite-plugin-cjs-interop");
37
+ var import_project_config = require("@cedarjs/project-config");
38
+ var import_onWarn = require("../lib/onWarn.js");
39
+ var import_vite_plugin_rsc_routes_auto_loader = require("../plugins/vite-plugin-rsc-routes-auto-loader.js");
40
+ var import_vite_plugin_rsc_ssr_router_import = require("../plugins/vite-plugin-rsc-ssr-router-import.js");
41
+ async function rscBuildForSsr({
42
+ clientEntryFiles,
43
+ verbose = false
44
+ }) {
45
+ console.log("\n");
46
+ console.log("3. rscBuildForSsr");
47
+ console.log("=================\n");
48
+ const rwPaths = (0, import_project_config.getPaths)();
49
+ if (!rwPaths.web.entryClient) {
50
+ throw new Error("No client entry file found inside " + rwPaths.web.src);
51
+ }
52
+ if (!rwPaths.web.entryServer) {
53
+ throw new Error("No server entry file found inside " + rwPaths.web.src);
54
+ }
55
+ const ssrBuildOutput = await (0, import_vite.build)({
56
+ envFile: false,
57
+ define: {
58
+ "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV)
59
+ },
60
+ ssr: {
61
+ // Inline every file apart from node built-ins. We want vite/rollup to
62
+ // inline dependencies in the server build. This gets round runtime
63
+ // importing of "server-only" and other packages with poisoned imports.
64
+ //
65
+ // Files included in `noExternal` are files we want Vite to analyze
66
+ // As of vite 5.2 `true` here means "all except node built-ins"
67
+ noExternal: true,
68
+ external: [
69
+ "@prisma/client",
70
+ "@prisma/fetch-engine",
71
+ "@prisma/internals",
72
+ "@cedarjs/auth-dbauth-api",
73
+ "@cedarjs/cookie-jar",
74
+ "@cedarjs/server-store",
75
+ "@simplewebauthn/server",
76
+ "graphql-scalars",
77
+ "minimatch",
78
+ "playwright"
79
+ ]
80
+ },
81
+ plugins: [
82
+ (0, import_vite_plugin_cjs_interop.cjsInterop)({
83
+ dependencies: [
84
+ // Skip ESM modules: rwjs/auth, rwjs/web, rwjs/auth-*-middleware, rwjs/router
85
+ "@cedarjs/forms",
86
+ "@cedarjs/prerender/*",
87
+ "@cedarjs/auth-*-api",
88
+ "@cedarjs/auth-*-web"
89
+ ]
90
+ }),
91
+ (0, import_vite_plugin_rsc_routes_auto_loader.rscRoutesAutoLoader)(),
92
+ (0, import_vite_plugin_rsc_ssr_router_import.rscSsrRouterImport)()
93
+ ],
94
+ build: {
95
+ // TODO (RSC): Remove `minify: false` when we don't need to debug as often
96
+ minify: false,
97
+ outDir: rwPaths.web.distSsr,
98
+ ssr: true,
99
+ emptyOutDir: true,
100
+ // Needed because `outDir` is not inside `root`
101
+ rollupOptions: {
102
+ onwarn: import_onWarn.onWarn,
103
+ input: {
104
+ // @MARK: temporary hack to find the entry client so we can get the
105
+ // index.css bundle but we don't actually want this on an rsc page!
106
+ // TODO (RSC): Look into if we can remove this (and perhaps instead
107
+ // use entry.server)
108
+ __rwjs__client_entry: rwPaths.web.entryClient,
109
+ "entry.server": rwPaths.web.entryServer,
110
+ // we need this, so that the output contains rsc-specific bundles
111
+ // for the client-only components. They get loaded once the page is
112
+ // rendered
113
+ ...clientEntryFiles,
114
+ // These import redirections are so that we don't bundle multiple versions of react
115
+ __rwjs__react: "react",
116
+ __rwjs__location: "@cedarjs/router/location",
117
+ __rwjs__server_auth_provider: "@cedarjs/auth/ServerAuthProvider",
118
+ __rwjs__server_inject: "@cedarjs/web/serverInject",
119
+ "__rwjs__rsdw-client": "react-server-dom-webpack/client.edge",
120
+ // TODO (RSC): add __rwjs__ prefix to the entry below
121
+ "rd-server": "react-dom/server.edge",
122
+ // We need the document for React's fallback
123
+ Document: rwPaths.web.document
124
+ },
125
+ preserveEntrySignatures: "exports-only",
126
+ output: {
127
+ // This is not ideal. See
128
+ // https://rollupjs.org/faqs/#why-do-additional-imports-turn-up-in-my-entry-chunks-when-code-splitting
129
+ // But we need it to prevent `import 'client-only'` from being
130
+ // hoisted into App.tsx
131
+ // TODO (RSC): Fix when https://github.com/rollup/rollup/issues/5235
132
+ // is resolved
133
+ hoistTransitiveImports: false,
134
+ entryFileNames: (chunkInfo) => {
135
+ if (chunkInfo.name === "rd-server" || chunkInfo.name === "__rwjs__react" || chunkInfo.name === "__rwjs__location" || chunkInfo.name === "__rwjs__server_auth_provider" || chunkInfo.name === "__rwjs__server_inject" || chunkInfo.name === "__rwjs__rsdw-client" || chunkInfo.name === "entry.server" || chunkInfo.name === "Document") {
136
+ return "[name].mjs";
137
+ }
138
+ return "assets/[name]-[hash].mjs";
139
+ },
140
+ chunkFileNames: `assets/[name]-[hash].mjs`
141
+ }
142
+ },
143
+ manifest: "client-build-manifest-ssr.json"
144
+ },
145
+ esbuild: {
146
+ logLevel: verbose ? "debug" : "silent",
147
+ logOverride: {
148
+ "unsupported-dynamic-import": "silent"
149
+ }
150
+ },
151
+ logLevel: verbose ? "info" : "silent"
152
+ });
153
+ if (!("output" in ssrBuildOutput)) {
154
+ throw new Error("Unexpected vite ssr build output");
155
+ }
156
+ const entryServerMjs = import_node_fs.default.readFileSync(
157
+ rwPaths.web.distSsrEntryServer,
158
+ "utf-8"
159
+ );
160
+ import_node_fs.default.writeFileSync(
161
+ rwPaths.web.distSsrEntryServer,
162
+ entryServerMjs.replace(
163
+ /import (require\S+) from "graphql-scalars";/,
164
+ 'import * as $1 from "graphql-scalars";'
165
+ )
166
+ );
167
+ return ssrBuildOutput.output;
168
+ }
169
+ // Annotate the CommonJS export names for ESM import in node:
170
+ 0 && (module.exports = {
171
+ rscBuildForSsr
172
+ });
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var rscBuildRwEnvVars_exports = {};
30
+ __export(rscBuildRwEnvVars_exports, {
31
+ rscBuildRwEnvVars: () => rscBuildRwEnvVars
32
+ });
33
+ module.exports = __toCommonJS(rscBuildRwEnvVars_exports);
34
+ var import_promises = __toESM(require("fs/promises"), 1);
35
+ var import_project_config = require("@cedarjs/project-config");
36
+ async function rscBuildRwEnvVars() {
37
+ console.log("\n");
38
+ console.log("7. rscBuildRwEnvVars");
39
+ console.log("====================\n");
40
+ const rwPaths = (0, import_project_config.getPaths)();
41
+ await import_promises.default.appendFile(
42
+ rwPaths.web.distRscEntries,
43
+ `
44
+
45
+ globalThis.RWJS_API_GRAPHQL_URL = RWJS_ENV.RWJS_API_GRAPHQL_URL
46
+ globalThis.RWJS_API_URL = RWJS_ENV.RWJS_API_URL
47
+ globalThis.__REDWOOD__APP_TITLE = RWJS_ENV.__REDWOOD__APP_TITLE
48
+ globalThis.RWJS_EXP_STREAMING_SSR = RWJS_ENV.RWJS_EXP_STREAMING_SSR
49
+ globalThis.RWJS_EXP_RSC = RWJS_ENV.RWJS_EXP_RSC
50
+ `
51
+ );
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ rscBuildRwEnvVars
56
+ });