@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 @@
1
+ export type * from "../ClientRouter.d.ts"
@@ -0,0 +1 @@
1
+ export type * from "../../build/build.d.ts"
@@ -0,0 +1,116 @@
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 build_exports = {};
30
+ __export(build_exports, {
31
+ buildWeb: () => buildWeb,
32
+ cleanWebBuild: () => cleanWebBuild,
33
+ prebuildWebFile: () => prebuildWebFile,
34
+ prebuildWebFiles: () => prebuildWebFiles,
35
+ transform: () => transform
36
+ });
37
+ module.exports = __toCommonJS(build_exports);
38
+ var import_node_fs = __toESM(require("node:fs"), 1);
39
+ var import_node_path = __toESM(require("node:path"), 1);
40
+ var babel = __toESM(require("@babel/core"), 1);
41
+ var import_fs_extra = __toESM(require("fs-extra"), 1);
42
+ var import_vite = require("vite");
43
+ var import_babel_config = require("@cedarjs/babel-config");
44
+ var import_project_config = require("@cedarjs/project-config");
45
+ const cleanWebBuild = () => {
46
+ const rwjsPaths = (0, import_project_config.getPaths)();
47
+ import_fs_extra.default.removeSync(rwjsPaths.web.dist);
48
+ import_fs_extra.default.removeSync(import_node_path.default.join(rwjsPaths.generated.prebuild, "web"));
49
+ };
50
+ async function prebuildWebFile(srcPath, flags = {}) {
51
+ const code = import_node_fs.default.readFileSync(srcPath, "utf-8");
52
+ const config = (0, import_babel_config.getWebSideDefaultBabelConfig)(flags);
53
+ const result = babel.transform(code, {
54
+ ...config,
55
+ cwd: (0, import_project_config.getPaths)().web.base,
56
+ filename: srcPath
57
+ });
58
+ return result;
59
+ }
60
+ async function transform(srcPath) {
61
+ const code = import_node_fs.default.readFileSync(srcPath, "utf-8");
62
+ const loader = import_node_path.default.extname(srcPath).match(/^\.m?ts/) ? "tsx" : "jsx";
63
+ const transformed = await (0, import_vite.transformWithEsbuild)(code, srcPath, {
64
+ loader
65
+ });
66
+ return transformed.code;
67
+ }
68
+ const prebuildWebFiles = async (srcFiles, flags) => {
69
+ const rwjsPaths = (0, import_project_config.getPaths)();
70
+ const processFile = async (srcPath) => {
71
+ const relativePathFromSrc = import_node_path.default.relative(rwjsPaths.base, srcPath);
72
+ const dstPath = import_node_path.default.join(rwjsPaths.generated.prebuild, relativePathFromSrc).replace(/\.(ts)$/, ".js");
73
+ try {
74
+ const result = await prebuildWebFile(srcPath, flags);
75
+ if (!result?.code) {
76
+ throw new Error("No code returned from prebuildWebFile");
77
+ }
78
+ import_node_fs.default.mkdirSync(import_node_path.default.dirname(dstPath), { recursive: true });
79
+ import_node_fs.default.writeFileSync(dstPath, result.code);
80
+ } catch {
81
+ console.warn("Error:", srcPath, "could not prebuilt.");
82
+ return void 0;
83
+ }
84
+ return dstPath;
85
+ };
86
+ const promises = [];
87
+ for (const srcPath of srcFiles) {
88
+ promises.push(processFile(srcPath));
89
+ }
90
+ return await Promise.all(promises);
91
+ };
92
+ const buildWeb = async ({ verbose }) => {
93
+ const { build } = await import("vite");
94
+ const viteConfig = (0, import_project_config.getPaths)().web.viteConfig;
95
+ if (process.cwd() !== (0, import_project_config.getPaths)().web.base) {
96
+ throw new Error(
97
+ "Looks like you are running the command from the wrong dir, this can lead to unintended consequences on CSS processing"
98
+ );
99
+ }
100
+ if (!viteConfig) {
101
+ throw new Error("Could not locate your web/vite.config.{js,ts} file");
102
+ }
103
+ return build({
104
+ configFile: viteConfig,
105
+ envFile: false,
106
+ logLevel: verbose ? "info" : "warn"
107
+ });
108
+ };
109
+ // Annotate the CommonJS export names for ESM import in node:
110
+ 0 && (module.exports = {
111
+ buildWeb,
112
+ cleanWebBuild,
113
+ prebuildWebFile,
114
+ prebuildWebFiles,
115
+ transform
116
+ });
@@ -0,0 +1 @@
1
+ export type * from "../buildFeServer.d.ts"
@@ -0,0 +1,63 @@
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 buildFeServer_exports = {};
20
+ __export(buildFeServer_exports, {
21
+ buildFeServer: () => buildFeServer
22
+ });
23
+ module.exports = __toCommonJS(buildFeServer_exports);
24
+ var import_project_config = require("@cedarjs/project-config");
25
+ var import_build = require("./build/build.js");
26
+ var import_buildRouteHooks = require("./buildRouteHooks.js");
27
+ var import_buildRouteManifest = require("./buildRouteManifest.js");
28
+ var import_buildRscClientAndServer = require("./buildRscClientAndServer.js");
29
+ var import_buildForStreamingServer = require("./streaming/buildForStreamingServer.js");
30
+ var import_utils = require("./utils.js");
31
+ const buildFeServer = async ({ verbose, webDir } = {}) => {
32
+ (0, import_utils.ensureProcessDirWeb)(webDir);
33
+ const rwPaths = (0, import_project_config.getPaths)();
34
+ const rwConfig = (0, import_project_config.getConfig)();
35
+ const viteConfigPath = rwPaths.web.viteConfig;
36
+ const rscEnabled = rwConfig.experimental?.rsc?.enabled;
37
+ const streamingSsrEnabled = rwConfig.experimental?.streamingSsr?.enabled;
38
+ if (!viteConfigPath) {
39
+ throw new Error(
40
+ "Vite config not found. You need to setup your project with Vite using `yarn rw setup vite`"
41
+ );
42
+ }
43
+ if (!rwPaths.web.entryServer || !rwPaths.web.entryClient) {
44
+ throw new Error(
45
+ "Vite entry points not found. Please check that your project has an entry.client.{jsx,tsx} and entry.server.{jsx,tsx} file in the web/src directory."
46
+ );
47
+ }
48
+ if (rscEnabled) {
49
+ await (0, import_buildRscClientAndServer.buildRscClientAndServer)({ verbose });
50
+ } else {
51
+ await (0, import_buildForStreamingServer.buildForStreamingServer)({ verbose });
52
+ }
53
+ if (streamingSsrEnabled && !rscEnabled) {
54
+ console.log("Building client for streaming SSR...\n");
55
+ await (0, import_build.buildWeb)({ verbose });
56
+ }
57
+ await (0, import_buildRouteHooks.buildRouteHooks)(verbose, rwPaths);
58
+ await (0, import_buildRouteManifest.buildRouteManifest)();
59
+ };
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ buildFeServer
63
+ });
@@ -0,0 +1,66 @@
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 buildRouteHooks_exports = {};
20
+ __export(buildRouteHooks_exports, {
21
+ buildRouteHooks: () => buildRouteHooks
22
+ });
23
+ module.exports = __toCommonJS(buildRouteHooks_exports);
24
+ var import_esbuild = require("esbuild");
25
+ var import_babel_config = require("@cedarjs/babel-config");
26
+ var import_files = require("@cedarjs/internal/dist/files.js");
27
+ var import_project_config = require("@cedarjs/project-config");
28
+ async function buildRouteHooks(verbose, rwPaths) {
29
+ const allRouteHooks = (0, import_files.findRouteHooksSrc)();
30
+ const runRwBabelTransformsPlugin = {
31
+ name: "rw-esbuild-babel-transform",
32
+ setup(build) {
33
+ build.onLoad({ filter: /\.(js|ts|tsx|jsx)$/ }, async (args) => {
34
+ const transformedCode = await (0, import_babel_config.transformWithBabel)(args.path, [
35
+ ...(0, import_babel_config.getRouteHookBabelPlugins)()
36
+ ]);
37
+ if (transformedCode?.code) {
38
+ return {
39
+ contents: transformedCode.code,
40
+ loader: "js"
41
+ };
42
+ }
43
+ throw new Error(`Could not transform file: ${args.path}`);
44
+ });
45
+ }
46
+ };
47
+ await (0, import_esbuild.build)({
48
+ absWorkingDir: (0, import_project_config.getPaths)().web.base,
49
+ entryPoints: allRouteHooks,
50
+ platform: "node",
51
+ target: "node16",
52
+ // @MARK Disable splitting and esm, because Redwood web modules don't support esm yet
53
+ // outExtension: { '.js': '.mjs' },
54
+ // format: 'esm',
55
+ // splitting: true,
56
+ bundle: true,
57
+ plugins: [runRwBabelTransformsPlugin],
58
+ packages: "external",
59
+ logLevel: verbose ? "info" : "error",
60
+ outdir: rwPaths.web.distRouteHooks
61
+ });
62
+ }
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ buildRouteHooks
66
+ });
@@ -0,0 +1,92 @@
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 buildRouteManifest_exports = {};
30
+ __export(buildRouteManifest_exports, {
31
+ buildRouteManifest: () => buildRouteManifest
32
+ });
33
+ module.exports = __toCommonJS(buildRouteManifest_exports);
34
+ var import_promises = __toESM(require("node:fs/promises"), 1);
35
+ var import_node_path = __toESM(require("node:path"), 1);
36
+ var import_node_url = __toESM(require("node:url"), 1);
37
+ var import_routes = require("@cedarjs/internal/dist/routes.js");
38
+ var import_project_config = require("@cedarjs/project-config");
39
+ async function buildRouteManifest() {
40
+ const rwPaths = (0, import_project_config.getPaths)();
41
+ const buildManifestUrl = import_node_url.default.pathToFileURL(
42
+ import_node_path.default.join((0, import_project_config.getPaths)().web.distBrowser, "client-build-manifest.json")
43
+ ).href;
44
+ const clientBuildManifest = (await import(buildManifestUrl, { with: { type: "json" } })).default;
45
+ const routesList = (0, import_routes.getProjectRoutes)();
46
+ const routeManifest = routesList.reduce((acc, route) => {
47
+ acc[route.pathDefinition] = {
48
+ name: route.name,
49
+ bundle: route.relativeFilePath ? (
50
+ // @TODO(RSC_DC): this no longer resolves to anything i.e. its always null
51
+ // Because the clientBuildManifest has no pages, because all pages are Server-components?
52
+ // This may be a non-issue, because RSC pages don't need a client bundle per page (or atleast not the same bundle)
53
+ clientBuildManifest[route.relativeFilePath]?.file ?? null
54
+ ) : null,
55
+ matchRegexString: route.matchRegexString,
56
+ // NOTE this is the path definition, not the actual path
57
+ // E.g. /blog/post/{id:Int}
58
+ pathDefinition: route.pathDefinition,
59
+ hasParams: route.hasParams,
60
+ routeHooks: FIXME_constructRouteHookPath(route.routeHooks),
61
+ redirect: route.redirect ? {
62
+ to: route.redirect?.to,
63
+ permanent: false
64
+ } : null,
65
+ relativeFilePath: route.relativeFilePath,
66
+ isPrivate: route.isPrivate,
67
+ unauthenticated: route.unauthenticated,
68
+ roles: route.roles,
69
+ pageIdentifier: route.pageIdentifier
70
+ };
71
+ return acc;
72
+ }, {});
73
+ console.log("routeManifest", JSON.stringify(routeManifest, null, 2));
74
+ const webRouteManifest = rwPaths.web.routeManifest;
75
+ await import_promises.default.mkdir(rwPaths.web.distSsr, { recursive: true });
76
+ return import_promises.default.writeFile(webRouteManifest, JSON.stringify(routeManifest, null, 2));
77
+ }
78
+ const FIXME_constructRouteHookPath = (routeHookSrcPath) => {
79
+ const rwPaths = (0, import_project_config.getPaths)();
80
+ if (!routeHookSrcPath) {
81
+ return null;
82
+ }
83
+ if ((0, import_project_config.getAppRouteHook)()) {
84
+ return import_node_path.default.relative(rwPaths.web.src, routeHookSrcPath).replace(".ts", ".js");
85
+ } else {
86
+ return import_node_path.default.relative(import_node_path.default.join(rwPaths.web.src, "pages"), routeHookSrcPath).replace(".ts", ".js");
87
+ }
88
+ };
89
+ // Annotate the CommonJS export names for ESM import in node:
90
+ 0 && (module.exports = {
91
+ buildRouteManifest
92
+ });
@@ -0,0 +1,54 @@
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 buildRscClientAndServer_exports = {};
20
+ __export(buildRscClientAndServer_exports, {
21
+ buildRscClientAndServer: () => buildRscClientAndServer
22
+ });
23
+ module.exports = __toCommonJS(buildRscClientAndServer_exports);
24
+ var import_rscBuildAnalyze = require("./rsc/rscBuildAnalyze.js");
25
+ var import_rscBuildClient = require("./rsc/rscBuildClient.js");
26
+ var import_rscBuildCopyCssAssets = require("./rsc/rscBuildCopyCssAssets.js");
27
+ var import_rscBuildEntriesFile = require("./rsc/rscBuildEntriesFile.js");
28
+ var import_rscBuildForServer = require("./rsc/rscBuildForServer.js");
29
+ var import_rscBuildForSsr = require("./rsc/rscBuildForSsr.js");
30
+ var import_rscBuildRwEnvVars = require("./rsc/rscBuildRwEnvVars.js");
31
+ const buildRscClientAndServer = async ({
32
+ verbose = false
33
+ }) => {
34
+ const { clientEntryFiles, serverEntryFiles } = await (0, import_rscBuildAnalyze.rscBuildAnalyze)();
35
+ const clientBuildOutput = await (0, import_rscBuildClient.rscBuildClient)(clientEntryFiles);
36
+ const ssrBuildOutput = await (0, import_rscBuildForSsr.rscBuildForSsr)({ clientEntryFiles, verbose });
37
+ const serverBuildOutput = await (0, import_rscBuildForServer.rscBuildForServer)(
38
+ clientEntryFiles,
39
+ serverEntryFiles,
40
+ {}
41
+ );
42
+ await (0, import_rscBuildCopyCssAssets.rscBuildCopyCssAssets)(serverBuildOutput);
43
+ await (0, import_rscBuildEntriesFile.rscBuildEntriesMappings)(
44
+ clientBuildOutput,
45
+ ssrBuildOutput,
46
+ serverBuildOutput,
47
+ clientEntryFiles
48
+ );
49
+ await (0, import_rscBuildRwEnvVars.rscBuildRwEnvVars)();
50
+ };
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ buildRscClientAndServer
54
+ });
@@ -0,0 +1 @@
1
+ export type * from "../client.d.ts"
@@ -0,0 +1 @@
1
+ export type * from "../clientSsr.d.ts"
@@ -0,0 +1,153 @@
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 __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var import_server = require("@whatwg-node/server");
25
+ var import_express = __toESM(require("express"), 1);
26
+ var import_vite = require("vite");
27
+ var import_vite_plugin_cjs_interop = require("vite-plugin-cjs-interop");
28
+ var import_routes = require("@cedarjs/internal/dist/routes.js");
29
+ var import_project_config = require("@cedarjs/project-config");
30
+ var import_server_store = require("@cedarjs/server-store");
31
+ var import_registerFwGlobalsAndShims = require("./lib/registerFwGlobalsAndShims.js");
32
+ var import_invokeMiddleware = require("./middleware/invokeMiddleware.js");
33
+ var import_register = require("./middleware/register.js");
34
+ var import_vite_plugin_rsc_routes_auto_loader = require("./plugins/vite-plugin-rsc-routes-auto-loader.js");
35
+ var import_collectCss = require("./streaming/collectCss.js");
36
+ var import_createReactStreamingHandler = require("./streaming/createReactStreamingHandler.js");
37
+ var import_utils = require("./utils.js");
38
+ globalThis.__REDWOOD__PRERENDER_PAGES = {};
39
+ async function createServer() {
40
+ (0, import_utils.ensureProcessDirWeb)();
41
+ (0, import_registerFwGlobalsAndShims.registerFwGlobalsAndShims)();
42
+ const app = (0, import_express.default)();
43
+ const rwPaths = (0, import_project_config.getPaths)();
44
+ const rscEnabled = (0, import_project_config.getConfig)().experimental.rsc?.enabled ?? false;
45
+ const serverStorage = (0, import_server_store.createServerStorage)();
46
+ app.use("*", (req, _res, next) => {
47
+ const fullUrl = (0, import_utils.getFullUrl)(req, rscEnabled);
48
+ const perReqStore = (0, import_server_store.createPerRequestMap)({
49
+ // Convert express headers to fetch header
50
+ headers: (0, import_utils.convertExpressHeaders)(req.headersDistinct),
51
+ fullUrl
52
+ });
53
+ serverStorage.run(perReqStore, next);
54
+ });
55
+ if (!rwPaths.web.entryServer || !rwPaths.web.entryClient) {
56
+ throw new Error(
57
+ "Vite entry points not found. Please check that your project has an entry.client.{jsx,tsx} and entry.server.{jsx,tsx} file in the web/src directory."
58
+ );
59
+ }
60
+ if (!rwPaths.web.viteConfig) {
61
+ throw new Error(
62
+ "Vite config not found. You need to setup your project with Vite using `yarn rw setup vite`"
63
+ );
64
+ }
65
+ const vite = await (0, import_vite.createServer)({
66
+ configFile: rwPaths.web.viteConfig,
67
+ plugins: [
68
+ (0, import_vite_plugin_cjs_interop.cjsInterop)({
69
+ dependencies: [
70
+ // Skip ESM modules: rwjs/auth, rwjs/web, rwjs/auth-*-middleware, rwjs/router
71
+ "@cedarjs/forms",
72
+ "@cedarjs/prerender/*",
73
+ "@cedarjs/auth-*-api",
74
+ "@cedarjs/auth-*-web"
75
+ ]
76
+ }),
77
+ rscEnabled && (0, import_vite_plugin_rsc_routes_auto_loader.rscRoutesAutoLoader)()
78
+ ],
79
+ server: { middlewareMode: true },
80
+ logLevel: "info",
81
+ clearScreen: false,
82
+ appType: "custom"
83
+ });
84
+ const handleWithMiddleware = (route) => {
85
+ return (0, import_server.createServerAdapter)(async (req) => {
86
+ const middlewareRouter = await (0, import_register.createMiddlewareRouter)(vite);
87
+ const middleware = middlewareRouter.find(
88
+ req.method,
89
+ req.url
90
+ )?.handler;
91
+ if (!middleware) {
92
+ return new Response("No middleware found", { status: 404 });
93
+ }
94
+ const [mwRes] = await (0, import_invokeMiddleware.invoke)(req, middleware, {
95
+ route,
96
+ viteDevServer: vite
97
+ });
98
+ return mwRes.toResponse();
99
+ });
100
+ };
101
+ app.use(vite.middlewares);
102
+ if (rscEnabled) {
103
+ const { createRscRequestHandler } = await import("./rsc/rscRequestHandler.js");
104
+ app.use(
105
+ "/rw-rsc",
106
+ createRscRequestHandler({
107
+ getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite),
108
+ viteDevServer: vite
109
+ })
110
+ );
111
+ }
112
+ const routes = (0, import_routes.getProjectRoutes)();
113
+ const routeHandler = await (0, import_createReactStreamingHandler.createReactStreamingHandler)(
114
+ {
115
+ routes,
116
+ clientEntryPath: rwPaths.web.entryClient,
117
+ getStylesheetLinks: (route) => {
118
+ return getCssLinks({ rwPaths, route, vite });
119
+ },
120
+ // Recreate middleware router on each request in dev
121
+ getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite)
122
+ },
123
+ vite
124
+ );
125
+ app.get("*", (0, import_server.createServerAdapter)(routeHandler));
126
+ app.post("*", handleWithMiddleware());
127
+ const port = (0, import_project_config.getConfig)().web.port;
128
+ console.log(`Started server on http://localhost:${port}`);
129
+ return app.listen(port);
130
+ }
131
+ let devApp = createServer();
132
+ process.stdin.on("data", async (data) => {
133
+ const str = data.toString().trim().toLowerCase();
134
+ if (str === "rs" || str === "restart") {
135
+ console.log("Restarting dev web server.....");
136
+ (await devApp).close(() => {
137
+ devApp = createServer();
138
+ });
139
+ }
140
+ });
141
+ function getCssLinks({
142
+ rwPaths,
143
+ route,
144
+ vite
145
+ }) {
146
+ const appAndRouteModules = (0, import_collectCss.componentsModules)(
147
+ [rwPaths.web.app, route?.filePath].filter(Boolean),
148
+ vite
149
+ );
150
+ const collectedCss = (0, import_collectCss.collectCssPaths)(appAndRouteModules);
151
+ const cssLinks = Array.from(collectedCss);
152
+ return cssLinks;
153
+ }
@@ -0,0 +1 @@
1
+ export type * from "../index.d.ts"