@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,65 @@
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 buildForStreamingServer_exports = {};
20
+ __export(buildForStreamingServer_exports, {
21
+ buildForStreamingServer: () => buildForStreamingServer
22
+ });
23
+ module.exports = __toCommonJS(buildForStreamingServer_exports);
24
+ var import_vite = require("vite");
25
+ var import_vite_plugin_cjs_interop = require("vite-plugin-cjs-interop");
26
+ var import_project_config = require("@cedarjs/project-config");
27
+ async function buildForStreamingServer({
28
+ verbose = false
29
+ }) {
30
+ console.log("Starting streaming server build...\n");
31
+ const rwPaths = (0, import_project_config.getPaths)();
32
+ if (!rwPaths.web.viteConfig) {
33
+ throw new Error("Vite config not found");
34
+ }
35
+ await (0, import_vite.build)({
36
+ configFile: rwPaths.web.viteConfig,
37
+ plugins: [
38
+ (0, import_vite_plugin_cjs_interop.cjsInterop)({
39
+ dependencies: [
40
+ // Skip ESM modules: rwjs/auth, rwjs/web, rwjs/auth-*-middleware, rwjs/router
41
+ "@cedarjs/forms",
42
+ "@cedarjs/prerender/*",
43
+ "@cedarjs/auth-*-api",
44
+ "@cedarjs/auth-*-web"
45
+ ]
46
+ })
47
+ ],
48
+ build: {
49
+ // TODO (RSC): Remove `minify: false` when we don't need to debug as often
50
+ minify: false,
51
+ outDir: rwPaths.web.distSsr,
52
+ ssr: true,
53
+ emptyOutDir: true
54
+ },
55
+ envFile: false,
56
+ define: {
57
+ "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV)
58
+ },
59
+ logLevel: verbose ? "info" : "warn"
60
+ });
61
+ }
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ buildForStreamingServer
65
+ });
@@ -0,0 +1,52 @@
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 collectCss_exports = {};
20
+ __export(collectCss_exports, {
21
+ collectCssPaths: () => collectCssPaths,
22
+ componentsModules: () => componentsModules
23
+ });
24
+ module.exports = __toCommonJS(collectCss_exports);
25
+ var import_vite = require("vite");
26
+ const componentsModules = (components, vite) => {
27
+ const matchedModules = /* @__PURE__ */ new Set();
28
+ components.forEach((component) => {
29
+ const modules = vite.moduleGraph.getModulesByFile((0, import_vite.normalizePath)(component));
30
+ modules?.forEach((mod) => {
31
+ matchedModules.add(mod);
32
+ });
33
+ });
34
+ return matchedModules;
35
+ };
36
+ const collectCssPaths = (mods, cssLinks = /* @__PURE__ */ new Set(), checkedComponents = /* @__PURE__ */ new Set()) => {
37
+ for (const mod of mods) {
38
+ if (mod.file?.endsWith(".scss") || mod.file?.endsWith(".css") || mod.file?.endsWith(".less")) {
39
+ cssLinks.add(mod.url);
40
+ }
41
+ if (mod.importedModules.size > 0 && !checkedComponents.has(mod.id)) {
42
+ checkedComponents.add(mod.id);
43
+ collectCssPaths(mod.importedModules, cssLinks, checkedComponents);
44
+ }
45
+ }
46
+ return cssLinks;
47
+ };
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ collectCssPaths,
51
+ componentsModules
52
+ });
@@ -0,0 +1,173 @@
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 createReactStreamingHandler_exports = {};
30
+ __export(createReactStreamingHandler_exports, {
31
+ createReactStreamingHandler: () => createReactStreamingHandler
32
+ });
33
+ module.exports = __toCommonJS(createReactStreamingHandler_exports);
34
+ var import_path = __toESM(require("path"), 1);
35
+ var import_fetch = require("@whatwg-node/fetch");
36
+ var import_isbot = require("isbot");
37
+ var import_AuthProviderState = require("@cedarjs/auth/dist/AuthProvider/AuthProviderState.js");
38
+ var import_project_config = require("@cedarjs/project-config");
39
+ var import_util = require("@cedarjs/router/util");
40
+ var import_middleware = require("@cedarjs/web/middleware");
41
+ var import_invokeMiddleware = require("../middleware/invokeMiddleware.js");
42
+ var import_utils = require("../utils.js");
43
+ var import_streamHelpers = require("./streamHelpers.js");
44
+ var import_triggerRouteHooks = require("./triggerRouteHooks.js");
45
+ const isbot = (0, import_isbot.createIsbotFromList)(
46
+ import_isbot.list.filter((record) => !record.includes("chrome-lighthouse"))
47
+ );
48
+ const createReactStreamingHandler = async ({
49
+ routes,
50
+ clientEntryPath,
51
+ getStylesheetLinks,
52
+ getMiddlewareRouter
53
+ }, viteDevServer) => {
54
+ const rwPaths = (0, import_project_config.getPaths)();
55
+ const rwConfig = (0, import_project_config.getConfig)();
56
+ const isProd = !viteDevServer;
57
+ const middlewareRouter = await getMiddlewareRouter();
58
+ let entryServerImport;
59
+ let fallbackDocumentImport;
60
+ const rscEnabled = rwConfig.experimental?.rsc?.enabled;
61
+ if (isProd) {
62
+ if (rscEnabled) {
63
+ entryServerImport = await import((0, import_utils.makeFilePath)(rwPaths.web.distSsrEntryServer));
64
+ } else {
65
+ entryServerImport = await import((0, import_utils.makeFilePath)(rwPaths.web.distSsrEntryServer));
66
+ }
67
+ fallbackDocumentImport = await import((0, import_utils.makeFilePath)(rwPaths.web.distSsrDocument));
68
+ }
69
+ return async (req) => {
70
+ let mwResponse = import_middleware.MiddlewareResponse.next();
71
+ let decodedAuthState = {
72
+ ...import_AuthProviderState.middlewareDefaultAuthProviderState,
73
+ cookieHeader: req.headers.get("cookie"),
74
+ roles: []
75
+ };
76
+ let currentRoute;
77
+ let parsedParams = {};
78
+ const currentUrl = new URL(req.url);
79
+ for (const route of routes) {
80
+ const { match, ...rest } = (0, import_util.matchPath)(
81
+ route.pathDefinition,
82
+ currentUrl.pathname
83
+ );
84
+ if (match) {
85
+ currentRoute = route;
86
+ parsedParams = rest;
87
+ break;
88
+ }
89
+ }
90
+ const cssLinks = getStylesheetLinks(currentRoute);
91
+ if (middlewareRouter) {
92
+ const matchedMw = middlewareRouter.find(req.method, req.url);
93
+ [mwResponse, decodedAuthState] = await (0, import_invokeMiddleware.invoke)(
94
+ req,
95
+ matchedMw?.handler,
96
+ {
97
+ route: currentRoute,
98
+ cssPaths: cssLinks,
99
+ params: matchedMw?.params,
100
+ viteDevServer
101
+ }
102
+ );
103
+ if (mwResponse.isRedirect() || mwResponse.body) {
104
+ return mwResponse.toResponse();
105
+ }
106
+ }
107
+ if (!currentRoute) {
108
+ throw new Error("404 handling not implemented");
109
+ }
110
+ if (currentRoute.redirect) {
111
+ return new import_fetch.Response(null, {
112
+ status: 302,
113
+ headers: {
114
+ Location: currentRoute.redirect.to
115
+ }
116
+ });
117
+ }
118
+ if (!isProd) {
119
+ entryServerImport = await (0, import_utils.ssrLoadEntryServer)(viteDevServer);
120
+ fallbackDocumentImport = await viteDevServer.ssrLoadModule(
121
+ rwPaths.web.document
122
+ );
123
+ }
124
+ const ServerEntry = entryServerImport.ServerEntry || entryServerImport.default;
125
+ const FallbackDocument = fallbackDocumentImport.Document || fallbackDocumentImport.default;
126
+ let metaTags = [];
127
+ let routeHookPath = currentRoute.routeHooks;
128
+ if (isProd) {
129
+ routeHookPath = currentRoute.routeHooks ? import_path.default.join(rwPaths.web.distRouteHooks, currentRoute.routeHooks) : null;
130
+ }
131
+ const routeHookOutput = await (0, import_triggerRouteHooks.loadAndRunRouteHooks)({
132
+ paths: [(0, import_project_config.getAppRouteHook)(isProd), routeHookPath],
133
+ reqMeta: {
134
+ req,
135
+ parsedParams
136
+ },
137
+ viteDevServer
138
+ });
139
+ metaTags = routeHookOutput.meta;
140
+ const jsBundles = [viteDevServer ? clientEntryPath : "/" + clientEntryPath];
141
+ if (currentRoute.bundle) {
142
+ jsBundles.push("/" + currentRoute.bundle);
143
+ }
144
+ const isSeoCrawler = isbot(req.headers.get("user-agent") || "");
145
+ const reactResponse = await (0, import_streamHelpers.reactRenderToStreamResponse)(
146
+ mwResponse,
147
+ {
148
+ ServerEntry,
149
+ FallbackDocument,
150
+ currentUrl,
151
+ metaTags,
152
+ cssLinks,
153
+ isProd,
154
+ jsBundles,
155
+ authState: decodedAuthState
156
+ },
157
+ {
158
+ waitForAllReady: isSeoCrawler,
159
+ onError: (err) => {
160
+ if (!isProd && viteDevServer) {
161
+ viteDevServer.ssrFixStacktrace(err);
162
+ }
163
+ console.error(err);
164
+ }
165
+ }
166
+ );
167
+ return reactResponse;
168
+ };
169
+ };
170
+ // Annotate the CommonJS export names for ESM import in node:
171
+ 0 && (module.exports = {
172
+ createReactStreamingHandler
173
+ });
@@ -0,0 +1,228 @@
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 streamHelpers_exports = {};
30
+ __export(streamHelpers_exports, {
31
+ importModule: () => importModule,
32
+ reactRenderToStreamResponse: () => reactRenderToStreamResponse
33
+ });
34
+ module.exports = __toCommonJS(streamHelpers_exports);
35
+ var import_node_path = __toESM(require("node:path"), 1);
36
+ var import_project_config = require("@cedarjs/project-config");
37
+ var import_utils = require("../utils.js");
38
+ var import_bufferedTransform = require("./transforms/bufferedTransform.js");
39
+ var import_cancelTimeoutTransform = require("./transforms/cancelTimeoutTransform.js");
40
+ var import_serverInjectionTransform = require("./transforms/serverInjectionTransform.js");
41
+ const import_meta = {};
42
+ const rscWebpackShims = `globalThis.__rw_module_cache__ ||= new Map();
43
+
44
+ globalThis.__webpack_chunk_load__ ||= (id) => {
45
+ console.log('rscWebpackShims chunk load id', id)
46
+ return import(id).then((mod) => {
47
+ console.log('rscWebpackShims chunk load mod', mod)
48
+
49
+ // checking mod.default to better support CJS. If it's an object, it's
50
+ // likely a CJS module. Otherwise it's probably an ES module with a
51
+ // default export
52
+ if (mod.default && typeof mod.default === 'object') {
53
+ return globalThis.__rw_module_cache__.set(id, mod.default)
54
+ }
55
+
56
+ return globalThis.__rw_module_cache__.set(id, mod)
57
+ })
58
+ };
59
+
60
+ globalThis.__webpack_require__ ||= (id) => {
61
+ console.log('rscWebpackShims require id', id)
62
+ return globalThis.__rw_module_cache__.get(id)
63
+ };
64
+ `;
65
+ async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions) {
66
+ const { waitForAllReady = false } = streamOptions;
67
+ const {
68
+ ServerEntry,
69
+ FallbackDocument,
70
+ currentUrl,
71
+ metaTags,
72
+ cssLinks,
73
+ isProd,
74
+ jsBundles = [],
75
+ authState
76
+ } = renderOptions;
77
+ if (!isProd) {
78
+ jsBundles.push(
79
+ new URL("../../inject/reactRefresh.js", import_meta.url).pathname
80
+ );
81
+ }
82
+ const assetMap = JSON.stringify({
83
+ css: cssLinks,
84
+ meta: metaTags
85
+ });
86
+ const rscEnabled = (0, import_project_config.getConfig)().experimental?.rsc?.enabled;
87
+ const { createElement } = rscEnabled ? await importModule("__rwjs__react") : await import("react");
88
+ const {
89
+ createInjector,
90
+ ServerHtmlProvider,
91
+ ServerInjectedHtml
92
+ } = rscEnabled ? await importModule("__rwjs__server_inject") : await import("@cedarjs/web/serverInject");
93
+ const { renderToString } = rscEnabled ? await importModule("rd-server") : await import("react-dom/server");
94
+ const { injectionState, injectToPage } = createInjector();
95
+ const bufferTransform = (0, import_bufferedTransform.createBufferedTransformStream)();
96
+ const serverInjectionTransform = (0, import_serverInjectionTransform.createServerInjectionTransform)({
97
+ injectionState,
98
+ createElement,
99
+ ServerInjectedHtml,
100
+ renderToString,
101
+ onlyOnFlush: waitForAllReady
102
+ });
103
+ const controller = new AbortController();
104
+ const timeoutHandle = setTimeout(() => {
105
+ controller.abort();
106
+ }, 1e4);
107
+ const timeoutTransform = (0, import_cancelTimeoutTransform.createTimeoutTransform)(timeoutHandle);
108
+ const { ServerAuthProvider } = rscEnabled ? await importModule("__rwjs__server_auth_provider") : await import("@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js");
109
+ const { LocationProvider } = rscEnabled ? await importModule("__rwjs__location") : await import("@cedarjs/router/location");
110
+ const renderRoot = (url) => {
111
+ return createElement(
112
+ ServerAuthProvider,
113
+ {
114
+ value: authState
115
+ },
116
+ createElement(
117
+ LocationProvider,
118
+ {
119
+ location: url
120
+ },
121
+ createElement(
122
+ ServerHtmlProvider,
123
+ {
124
+ value: injectToPage
125
+ },
126
+ createElement(ServerEntry, {
127
+ css: cssLinks,
128
+ meta: metaTags
129
+ })
130
+ )
131
+ )
132
+ );
133
+ };
134
+ const bootstrapOptions = {
135
+ bootstrapScriptContent: (
136
+ // Only insert assetMap if client side JS will be loaded
137
+ jsBundles.length > 0 ? `window.__REDWOOD__ASSET_MAP = ${assetMap}; ${rscWebpackShims}` : void 0
138
+ ),
139
+ bootstrapModules: jsBundles
140
+ };
141
+ const { renderToReadableStream } = rscEnabled ? await importModule("rd-server") : await import("react-dom/server.edge");
142
+ try {
143
+ let didErrorOutsideShell = false;
144
+ const renderToStreamOptions = {
145
+ ...bootstrapOptions,
146
+ signal: controller.signal,
147
+ onError: (err) => {
148
+ didErrorOutsideShell = true;
149
+ console.error("\u{1F53B} Caught error outside shell");
150
+ streamOptions.onError?.(err);
151
+ }
152
+ };
153
+ const root = renderRoot(currentUrl);
154
+ const reactStream = await renderToReadableStream(root, renderToStreamOptions);
155
+ if (waitForAllReady) {
156
+ await reactStream.allReady;
157
+ }
158
+ const transformsToApply = [
159
+ !waitForAllReady && bufferTransform,
160
+ serverInjectionTransform,
161
+ !waitForAllReady && timeoutTransform
162
+ ];
163
+ const outputStream = applyStreamTransforms(
164
+ reactStream,
165
+ transformsToApply
166
+ );
167
+ mwRes.status = didErrorOutsideShell ? 500 : 200;
168
+ mwRes.body = outputStream;
169
+ mwRes.headers.set("content-type", "text/html");
170
+ return mwRes.toResponse();
171
+ } catch (e) {
172
+ console.error("\u{1F53B} Failed to render shell");
173
+ streamOptions.onError?.(e);
174
+ const fallbackShell = await renderToReadableStream(
175
+ FallbackDocument({
176
+ children: null,
177
+ css: cssLinks,
178
+ meta: metaTags
179
+ }),
180
+ bootstrapOptions
181
+ );
182
+ mwRes.status = 500;
183
+ mwRes.body = fallbackShell;
184
+ mwRes.headers.set("content-type", "text/html");
185
+ return mwRes.toResponse();
186
+ } finally {
187
+ clearTimeout(timeoutHandle);
188
+ }
189
+ }
190
+ function applyStreamTransforms(reactStream, transformsToApply) {
191
+ let outputStream = reactStream;
192
+ for (const transform of transformsToApply) {
193
+ if (!transform) {
194
+ continue;
195
+ }
196
+ outputStream = outputStream.pipeThrough(transform);
197
+ }
198
+ return outputStream;
199
+ }
200
+ async function importModule(mod) {
201
+ const distSsr = (0, import_project_config.getPaths)().web.distSsr;
202
+ const rdServerPath = (0, import_utils.makeFilePath)(import_node_path.default.join(distSsr, "rd-server.mjs"));
203
+ const reactPath = (0, import_utils.makeFilePath)(import_node_path.default.join(distSsr, "__rwjs__react.mjs"));
204
+ const locationPath = (0, import_utils.makeFilePath)(import_node_path.default.join(distSsr, "__rwjs__location.mjs"));
205
+ const ServerAuthProviderPath = (0, import_utils.makeFilePath)(
206
+ import_node_path.default.join(distSsr, "__rwjs__server_auth_provider.mjs")
207
+ );
208
+ const ServerInjectPath = (0, import_utils.makeFilePath)(
209
+ import_node_path.default.join(distSsr, "__rwjs__server_inject.mjs")
210
+ );
211
+ if (mod === "rd-server") {
212
+ return (await import(rdServerPath)).default;
213
+ } else if (mod === "__rwjs__react") {
214
+ return (await import(reactPath)).default;
215
+ } else if (mod === "__rwjs__location") {
216
+ return await import(locationPath);
217
+ } else if (mod === "__rwjs__server_auth_provider") {
218
+ return await import(ServerAuthProviderPath);
219
+ } else if (mod === "__rwjs__server_inject") {
220
+ return await import(ServerInjectPath);
221
+ }
222
+ throw new Error("Unknown module " + mod);
223
+ }
224
+ // Annotate the CommonJS export names for ESM import in node:
225
+ 0 && (module.exports = {
226
+ importModule,
227
+ reactRenderToStreamResponse
228
+ });
@@ -0,0 +1,61 @@
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 bufferedTransform_exports = {};
20
+ __export(bufferedTransform_exports, {
21
+ createBufferedTransformStream: () => createBufferedTransformStream
22
+ });
23
+ module.exports = __toCommonJS(bufferedTransform_exports);
24
+ const queueTask = setImmediate;
25
+ function createBufferedTransformStream() {
26
+ let bufferedBytes = new Uint8Array();
27
+ let pendingFlush = null;
28
+ const flushBuffer = (controller) => {
29
+ if (!pendingFlush) {
30
+ pendingFlush = new Promise((resolve) => {
31
+ queueTask(() => {
32
+ controller.enqueue(bufferedBytes);
33
+ bufferedBytes = new Uint8Array();
34
+ pendingFlush = null;
35
+ resolve();
36
+ });
37
+ });
38
+ }
39
+ };
40
+ return new TransformStream({
41
+ transform(chunk, controller) {
42
+ const newBufferedBytes = new Uint8Array(
43
+ bufferedBytes.length + chunk.length
44
+ );
45
+ newBufferedBytes.set(bufferedBytes);
46
+ newBufferedBytes.set(chunk, bufferedBytes.length);
47
+ bufferedBytes = newBufferedBytes;
48
+ flushBuffer(controller);
49
+ },
50
+ flush() {
51
+ if (pendingFlush) {
52
+ return pendingFlush;
53
+ }
54
+ return;
55
+ }
56
+ });
57
+ }
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ createBufferedTransformStream
61
+ });
@@ -0,0 +1,34 @@
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 cancelTimeoutTransform_exports = {};
20
+ __export(cancelTimeoutTransform_exports, {
21
+ createTimeoutTransform: () => createTimeoutTransform
22
+ });
23
+ module.exports = __toCommonJS(cancelTimeoutTransform_exports);
24
+ function createTimeoutTransform(timeoutHandle) {
25
+ return new TransformStream({
26
+ flush() {
27
+ clearTimeout(timeoutHandle);
28
+ }
29
+ });
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ createTimeoutTransform
34
+ });
@@ -0,0 +1,36 @@
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 encode_decode_exports = {};
20
+ __export(encode_decode_exports, {
21
+ decodeText: () => decodeText,
22
+ encodeText: () => encodeText
23
+ });
24
+ module.exports = __toCommonJS(encode_decode_exports);
25
+ const textDecoder = new TextDecoder();
26
+ function encodeText(input) {
27
+ return new TextEncoder().encode(input);
28
+ }
29
+ function decodeText(input) {
30
+ return textDecoder.decode(input, { stream: true });
31
+ }
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ decodeText,
35
+ encodeText
36
+ });