@cedarjs/vite 0.0.4 → 1.0.0-canary.12245

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 (41) hide show
  1. package/dist/bundled/react-server-dom-webpack.server.js +1849 -28815
  2. package/dist/cjs/devFeServer.js +265 -15
  3. package/dist/cjs/lib/registerFwGlobalsAndShims.js +9 -0
  4. package/dist/cjs/plugins/vite-plugin-rsc-ssr-router-import.js +2 -2
  5. package/dist/cjs/plugins/vite-plugin-rsc-transform-server.js +4 -0
  6. package/dist/cjs/rsc/rscRenderer.js +23 -9
  7. package/dist/cjs/rsc/rscRequestHandler.js +6 -6
  8. package/dist/cjs/rsc/rscWebSocketServer.js +56 -0
  9. package/dist/cjs/rsc/utils.js +56 -0
  10. package/dist/cjs/runFeServer.js +3 -22
  11. package/dist/cjs/streaming/createReactStreamingHandler.js +13 -10
  12. package/dist/cjs/streaming/streamHelpers.js +49 -30
  13. package/dist/cjs/streaming/triggerRouteHooks.js +3 -3
  14. package/dist/devFeServer.js +265 -16
  15. package/dist/lib/registerFwGlobalsAndShims.js +9 -0
  16. package/dist/plugins/vite-plugin-rsc-ssr-router-import.d.ts.map +1 -1
  17. package/dist/plugins/vite-plugin-rsc-ssr-router-import.js +2 -2
  18. package/dist/plugins/vite-plugin-rsc-transform-server.d.ts.map +1 -1
  19. package/dist/plugins/vite-plugin-rsc-transform-server.js +4 -0
  20. package/dist/rsc/rscRenderer.d.ts.map +1 -1
  21. package/dist/rsc/rscRenderer.js +19 -5
  22. package/dist/rsc/rscRequestHandler.d.ts +2 -2
  23. package/dist/rsc/rscRequestHandler.d.ts.map +1 -1
  24. package/dist/rsc/rscRequestHandler.js +4 -4
  25. package/dist/rsc/rscWebSocketServer.d.ts +2 -0
  26. package/dist/rsc/rscWebSocketServer.d.ts.map +1 -0
  27. package/dist/rsc/rscWebSocketServer.js +22 -0
  28. package/dist/rsc/utils.d.ts +10 -0
  29. package/dist/rsc/utils.d.ts.map +1 -0
  30. package/dist/rsc/utils.js +21 -0
  31. package/dist/runFeServer.js +2 -21
  32. package/dist/streaming/createReactStreamingHandler.d.ts +1 -1
  33. package/dist/streaming/createReactStreamingHandler.d.ts.map +1 -1
  34. package/dist/streaming/createReactStreamingHandler.js +13 -10
  35. package/dist/streaming/streamHelpers.d.ts +2 -2
  36. package/dist/streaming/streamHelpers.d.ts.map +1 -1
  37. package/dist/streaming/streamHelpers.js +49 -29
  38. package/dist/streaming/triggerRouteHooks.d.ts +2 -2
  39. package/dist/streaming/triggerRouteHooks.d.ts.map +1 -1
  40. package/dist/streaming/triggerRouteHooks.js +3 -3
  41. package/package.json +13 -16
@@ -11,8 +11,8 @@ function rscSsrRouterImport() {
11
11
  const routesFileId = normalizePath(getPaths().web.routes);
12
12
  return {
13
13
  name: "rsc-ssr-router-import",
14
- transform: async function(code, id) {
15
- if (id !== routesFileId) {
14
+ transform: async function(code, id, options) {
15
+ if (!options?.ssr || id !== routesFileId) {
16
16
  return null;
17
17
  }
18
18
  const ext = path.extname(id);
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-rsc-transform-server.d.ts","sourceRoot":"","sources":["../../src/plugins/vite-plugin-rsc-transform-server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CA8GR"}
1
+ {"version":3,"file":"vite-plugin-rsc-transform-server.d.ts","sourceRoot":"","sources":["../../src/plugins/vite-plugin-rsc-transform-server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAuHR"}
@@ -8,6 +8,10 @@ function rscTransformUseServerPlugin(outDir, serverEntryFiles) {
8
8
  if (!code.includes("use server")) {
9
9
  return code;
10
10
  }
11
+ if (id.includes("node_modules/.vite") || id.includes("/react-server-dom-webpack/") || id.includes("/react-server-dom-webpack.server")) {
12
+ console.log("vite-plugin-rsc-transform-server.ts: Skipping", id);
13
+ return code;
14
+ }
11
15
  let mod;
12
16
  const isTypescript = id.endsWith(".ts") || id.endsWith(".tsx");
13
17
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"rscRenderer.d.ts","sourceRoot":"","sources":["../../src/rsc/rscRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAWrD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;CAC7B,CAAA;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAE7E;AAyBD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BtD"}
1
+ {"version":3,"file":"rscRenderer.d.ts","sourceRoot":"","sources":["../../src/rsc/rscRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AASrD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;CAC7B,CAAA;AAID,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,cAAc,CAAC,CAEzB;AAyCD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BtD"}
@@ -1,18 +1,26 @@
1
1
  import path from "node:path";
2
- import { createElement } from "react";
3
- import { renderToReadableStream } from "react-server-dom-webpack/server.edge";
4
2
  import { getPaths } from "@cedarjs/project-config";
5
3
  import { getEntriesFromDist } from "../lib/entries.js";
6
4
  import { StatusError } from "../lib/StatusError.js";
5
+ import { importRscReact, importRsdwServer } from "./utils.js";
7
6
  let absoluteClientEntries = {};
8
- function renderRscToStream(input) {
7
+ async function renderRscToStream(input) {
9
8
  return input.rscId ? renderRsc(input) : executeRsa(input);
10
9
  }
11
10
  async function loadServerFile(filePath) {
12
11
  console.log("rscRenderer.ts loadServerFile filePath", filePath);
12
+ if (globalThis.__rwjs__vite_rsc_runtime) {
13
+ const serverMod = await globalThis.__rwjs__vite_rsc_runtime.executeUrl(filePath);
14
+ return serverMod.default ? serverMod.default : serverMod;
15
+ }
13
16
  return import(`file://${filePath}`);
14
17
  }
15
18
  const getRoutesComponent = async () => {
19
+ if (globalThis.__rwjs__vite_rsc_runtime) {
20
+ const routesPath2 = getPaths().web.routes;
21
+ const routesMod = await globalThis.__rwjs__vite_rsc_runtime.executeUrl(routesPath2);
22
+ return routesMod.default;
23
+ }
16
24
  const serverEntries = await getEntriesFromDist();
17
25
  console.log("rscRenderer.ts serverEntries", serverEntries);
18
26
  const routesPath = path.join(
@@ -53,10 +61,12 @@ function getBundlerConfig() {
53
61
  {},
54
62
  {
55
63
  get(_target, encodedId) {
56
- console.log("Proxy get encodedId", encodedId);
64
+ console.log("rscRenderer.ts Proxy get encodedId", encodedId);
57
65
  const [filePath, name] = encodedId.split("#");
66
+ console.log("filePath", filePath);
67
+ console.log("name", name);
58
68
  const filePathSlash = filePath.replaceAll("\\", "/");
59
- const id = absoluteClientEntries[filePathSlash];
69
+ const id = globalThis.__rwjs__vite_rsc_runtime ? filePath : absoluteClientEntries[filePathSlash];
60
70
  console.log("absoluteClientEntries", absoluteClientEntries);
61
71
  console.log("filePath", filePathSlash);
62
72
  if (!id) {
@@ -79,6 +89,8 @@ async function renderRsc(input) {
79
89
  throw new Error("Unexpected input. Missing rscId or props.");
80
90
  }
81
91
  console.log("renderRsc input", input);
92
+ const { createElement } = await importRscReact();
93
+ const { renderToReadableStream } = await importRsdwServer();
82
94
  const serverRoutes = await getRoutesComponent();
83
95
  const model = {
84
96
  __rwjs__Routes: createElement(serverRoutes)
@@ -115,6 +127,8 @@ async function executeRsa(input) {
115
127
  console.log("rscRenderer.ts args", ...input.args);
116
128
  const data = await method(...input.args);
117
129
  console.log("rscRenderer.ts rsa return data", data);
130
+ const { createElement } = await importRscReact();
131
+ const { renderToReadableStream } = await importRsdwServer();
118
132
  const serverRoutes = await getRoutesComponent();
119
133
  console.log("rscRenderer.ts executeRsa serverRoutes", serverRoutes);
120
134
  const model = {
@@ -3,8 +3,8 @@ import type Router from 'find-my-way';
3
3
  import type { ViteDevServer } from 'vite';
4
4
  interface CreateRscRequestHandlerOptions {
5
5
  getMiddlewareRouter: () => Promise<Router.Instance<any>>;
6
- viteDevServer?: ViteDevServer;
6
+ viteSsrDevServer?: ViteDevServer;
7
7
  }
8
- export declare function createRscRequestHandler(options: CreateRscRequestHandlerOptions): (req: ExpressRequest, res: ExpressResponse, next: () => void) => Promise<void>;
8
+ export declare function createRscRequestHandler(options: CreateRscRequestHandlerOptions): Promise<(req: ExpressRequest, res: ExpressResponse, next: () => void) => Promise<void>>;
9
9
  export {};
10
10
  //# sourceMappingURL=rscRequestHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rscRequestHandler.d.ts","sourceRoot":"","sources":["../../src/rsc/rscRequestHandler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,IAAI,cAAc,EACzB,QAAQ,IAAI,eAAe,EAC5B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAgBzC,UAAU,8BAA8B;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,SAMhC,cAAc,OACd,eAAe,QACd,MAAM,IAAI,mBAqHnB"}
1
+ {"version":3,"file":"rscRequestHandler.d.ts","sourceRoot":"","sources":["../../src/rsc/rscRequestHandler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,IAAI,cAAc,EACzB,QAAQ,IAAI,eAAe,EAC5B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAazC,UAAU,8BAA8B;IACtC,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,gBAAgB,CAAC,EAAE,aAAa,CAAA;CACjC;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,iBAShC,cAAc,OACd,eAAe,QACd,MAAM,IAAI,oBAqHnB"}
@@ -8,10 +8,10 @@ import {
8
8
  } from "../bundled/react-server-dom-webpack.server.js";
9
9
  import { hasStatusCode } from "../lib/StatusError.js";
10
10
  import { invoke } from "../middleware/invokeMiddleware.js";
11
- import { renderRscToStream } from "./rscRenderer.js";
12
- import { sendRscFlightToStudio } from "./rscStudioHandlers.js";
13
11
  const BASE_PATH = "/rw-rsc/";
14
- function createRscRequestHandler(options) {
12
+ async function createRscRequestHandler(options) {
13
+ const { renderRscToStream } = await import("./rscRenderer.js");
14
+ const { sendRscFlightToStudio } = await import("./rscStudioHandlers.js");
15
15
  return async (req, res, next) => {
16
16
  console.log("BASE_PATH", BASE_PATH);
17
17
  console.log("req.originalUrl", req.originalUrl, "req.url", req.url);
@@ -26,7 +26,7 @@ function createRscRequestHandler(options) {
26
26
  matchedMw?.handler,
27
27
  {
28
28
  params: matchedMw?.params,
29
- viteDevServer: options.viteDevServer
29
+ viteSsrDevServer: options.viteSsrDevServer
30
30
  }
31
31
  );
32
32
  const webRes = mwResponse.toResponse();
@@ -0,0 +1,2 @@
1
+ export declare function createWebSocketServer(): void;
2
+ //# sourceMappingURL=rscWebSocketServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rscWebSocketServer.d.ts","sourceRoot":"","sources":["../../src/rsc/rscWebSocketServer.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,SAwBpC"}
@@ -0,0 +1,22 @@
1
+ import WebSocket, { WebSocketServer } from "ws";
2
+ function createWebSocketServer() {
3
+ const wsServer = new WebSocketServer({ port: 18998 });
4
+ wsServer.on("connection", (ws) => {
5
+ console.log("A new client connected.");
6
+ ws.on("message", (data) => {
7
+ const message = data.toString();
8
+ console.log("Received message:", message);
9
+ wsServer.clients.forEach((client) => {
10
+ if (client.readyState === WebSocket.OPEN) {
11
+ client.send(message);
12
+ }
13
+ });
14
+ });
15
+ ws.on("close", () => {
16
+ console.log("A client disconnected.");
17
+ });
18
+ });
19
+ }
20
+ export {
21
+ createWebSocketServer
22
+ };
@@ -0,0 +1,10 @@
1
+ import type { default as RSDWServerModule } from 'react-server-dom-webpack/server.edge';
2
+ type RSDWServerType = typeof RSDWServerModule;
3
+ /**
4
+ * This function ensures we load the version of React that's been imported with
5
+ * the react-server condition.
6
+ */
7
+ export declare function importRscReact(): Promise<any>;
8
+ export declare function importRsdwServer(): Promise<RSDWServerType>;
9
+ export {};
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/rsc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvF,KAAK,cAAc,GAAG,OAAO,gBAAgB,CAAA;AAE7C;;;GAGG;AACH,wBAAsB,cAAc,iBAQnC;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAUhE"}
@@ -0,0 +1,21 @@
1
+ async function importRscReact() {
2
+ if (globalThis.__rwjs__vite_rsc_runtime) {
3
+ const reactMod = await globalThis.__rwjs__vite_rsc_runtime.executeUrl("react");
4
+ return reactMod.default;
5
+ }
6
+ return import("react");
7
+ }
8
+ async function importRsdwServer() {
9
+ if (globalThis.__rwjs__vite_rsc_runtime) {
10
+ const rsdwServerMod = await globalThis.__rwjs__vite_rsc_runtime.executeUrl(
11
+ "react-server-dom-webpack/server.edge"
12
+ );
13
+ return rsdwServerMod.default;
14
+ } else {
15
+ return import("react-server-dom-webpack/server.edge");
16
+ }
17
+ }
18
+ export {
19
+ importRscReact,
20
+ importRsdwServer
21
+ };
@@ -4,13 +4,13 @@ import { createServerAdapter } from "@whatwg-node/server";
4
4
  import { config as loadDotEnv } from "dotenv-defaults";
5
5
  import express from "express";
6
6
  import { createProxyMiddleware } from "http-proxy-middleware";
7
- import WebSocket, { WebSocketServer } from "ws";
8
7
  import { getConfig, getPaths } from "@cedarjs/project-config";
9
8
  import { getRscStylesheetLinkGenerator } from "@cedarjs/router/rscCss";
10
9
  import { createPerRequestMap, createServerStorage } from "@cedarjs/server-store";
11
10
  import { registerFwGlobalsAndShims } from "./lib/registerFwGlobalsAndShims.js";
12
11
  import { invoke } from "./middleware/invokeMiddleware.js";
13
12
  import { createMiddlewareRouter } from "./middleware/register.js";
13
+ import { createWebSocketServer } from "./rsc/rscWebSocketServer.js";
14
14
  import { createReactStreamingHandler } from "./streaming/createReactStreamingHandler.js";
15
15
  import { convertExpressHeaders, getFullUrl } from "./utils.js";
16
16
  loadDotEnv({
@@ -87,7 +87,7 @@ async function runFeServer() {
87
87
  const { createRscRequestHandler } = await import("./rsc/rscRequestHandler.js");
88
88
  app.use(
89
89
  "/rw-rsc",
90
- createRscRequestHandler({
90
+ await createRscRequestHandler({
91
91
  getMiddlewareRouter: async () => middlewareRouter
92
92
  })
93
93
  );
@@ -107,25 +107,6 @@ async function runFeServer() {
107
107
  `Started production FE server on http://localhost:${rwConfig.web.port}`
108
108
  );
109
109
  }
110
- function createWebSocketServer() {
111
- const wsServer = new WebSocketServer({ port: 18998 });
112
- wsServer.on("connection", (ws) => {
113
- console.log("A new client connected.");
114
- ws.on("message", (data) => {
115
- const message = data.toString();
116
- console.log("runFeServer.ts: Received message:");
117
- console.log(message.slice(0, 120) + "...");
118
- wsServer.clients.forEach((client) => {
119
- if (client.readyState === WebSocket.OPEN) {
120
- client.send(message);
121
- }
122
- });
123
- });
124
- ws.on("close", () => {
125
- console.log("A client disconnected.");
126
- });
127
- });
128
- }
129
110
  runFeServer();
130
111
  export {
131
112
  runFeServer
@@ -7,6 +7,6 @@ interface CreateReactStreamingHandlerOptions {
7
7
  getStylesheetLinks: (route?: RWRouteManifestItem | RouteSpec) => string[];
8
8
  getMiddlewareRouter: () => Promise<Router.Instance<any>>;
9
9
  }
10
- export declare const createReactStreamingHandler: ({ routes, clientEntryPath, getStylesheetLinks, getMiddlewareRouter, }: CreateReactStreamingHandlerOptions, viteDevServer?: ViteDevServer) => Promise<(req: Request) => Promise<Response>>;
10
+ export declare const createReactStreamingHandler: ({ routes, clientEntryPath, getStylesheetLinks, getMiddlewareRouter, }: CreateReactStreamingHandlerOptions, viteSsrDevServer?: ViteDevServer) => Promise<(req: Request) => Promise<Response>>;
11
11
  export {};
12
12
  //# sourceMappingURL=createReactStreamingHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createReactStreamingHandler.d.ts","sourceRoot":"","sources":["../../src/streaming/createReactStreamingHandler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAGrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAIzC,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAcvE,UAAU,kCAAkC;IAC1C,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,SAAS,KAAK,MAAM,EAAE,CAAA;IACzE,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;CACzD;AAOD,eAAO,MAAM,2BAA2B,0EAMnC,kCAAkC,kBACrB,aAAa,mBA6BV,OAAO,uBA8I3B,CAAA"}
1
+ {"version":3,"file":"createReactStreamingHandler.d.ts","sourceRoot":"","sources":["../../src/streaming/createReactStreamingHandler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAGrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAIzC,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAcvE,UAAU,kCAAkC;IAC1C,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,SAAS,KAAK,MAAM,EAAE,CAAA;IACzE,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;CACzD;AAOD,eAAO,MAAM,2BAA2B,0EAMnC,kCAAkC,qBAClB,aAAa,mBA6Bb,OAAO,uBAiJ3B,CAAA"}
@@ -17,10 +17,10 @@ const createReactStreamingHandler = async ({
17
17
  clientEntryPath,
18
18
  getStylesheetLinks,
19
19
  getMiddlewareRouter
20
- }, viteDevServer) => {
20
+ }, viteSsrDevServer) => {
21
21
  const rwPaths = getPaths();
22
22
  const rwConfig = getConfig();
23
- const isProd = !viteDevServer;
23
+ const isProd = !viteSsrDevServer;
24
24
  const middlewareRouter = await getMiddlewareRouter();
25
25
  let entryServerImport;
26
26
  let fallbackDocumentImport;
@@ -64,7 +64,7 @@ const createReactStreamingHandler = async ({
64
64
  route: currentRoute,
65
65
  cssPaths: cssLinks,
66
66
  params: matchedMw?.params,
67
- viteDevServer
67
+ viteSsrDevServer
68
68
  }
69
69
  );
70
70
  if (mwResponse.isRedirect() || mwResponse.body) {
@@ -83,8 +83,8 @@ const createReactStreamingHandler = async ({
83
83
  });
84
84
  }
85
85
  if (!isProd) {
86
- entryServerImport = await ssrLoadEntryServer(viteDevServer);
87
- fallbackDocumentImport = await viteDevServer.ssrLoadModule(
86
+ entryServerImport = await ssrLoadEntryServer(viteSsrDevServer);
87
+ fallbackDocumentImport = await viteSsrDevServer.ssrLoadModule(
88
88
  rwPaths.web.document
89
89
  );
90
90
  }
@@ -101,10 +101,12 @@ const createReactStreamingHandler = async ({
101
101
  req,
102
102
  parsedParams
103
103
  },
104
- viteDevServer
104
+ viteSsrDevServer
105
105
  });
106
106
  metaTags = routeHookOutput.meta;
107
- const jsBundles = [viteDevServer ? clientEntryPath : "/" + clientEntryPath];
107
+ const jsBundles = [
108
+ viteSsrDevServer ? clientEntryPath : "/" + clientEntryPath
109
+ ];
108
110
  if (currentRoute.bundle) {
109
111
  jsBundles.push("/" + currentRoute.bundle);
110
112
  }
@@ -124,12 +126,13 @@ const createReactStreamingHandler = async ({
124
126
  {
125
127
  waitForAllReady: isSeoCrawler,
126
128
  onError: (err) => {
127
- if (!isProd && viteDevServer) {
128
- viteDevServer.ssrFixStacktrace(err);
129
+ if (!isProd && viteSsrDevServer) {
130
+ viteSsrDevServer.ssrFixStacktrace(err);
129
131
  }
130
132
  console.error(err);
131
133
  }
132
- }
134
+ },
135
+ viteSsrDevServer
133
136
  );
134
137
  return reactResponse;
135
138
  };
@@ -1,4 +1,5 @@
1
1
  import type React from 'react';
2
+ import type { ViteDevServer } from 'vite';
2
3
  import type { ServerAuthState } from '@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js';
3
4
  import type { TagDescriptor } from '@cedarjs/web';
4
5
  import type { MiddlewareResponse } from '@cedarjs/web/middleware';
@@ -17,7 +18,6 @@ interface StreamOptions {
17
18
  waitForAllReady?: boolean;
18
19
  onError?: (err: Error) => void;
19
20
  }
20
- export declare function reactRenderToStreamResponse(mwRes: MiddlewareResponse, renderOptions: RenderToStreamArgs, streamOptions: StreamOptions): Promise<Response>;
21
- export declare function importModule(mod: 'rd-server' | '__rwjs__react' | '__rwjs__location' | '__rwjs__server_auth_provider' | '__rwjs__server_inject'): Promise<any>;
21
+ export declare function reactRenderToStreamResponse(mwRes: MiddlewareResponse, renderOptions: RenderToStreamArgs, streamOptions: StreamOptions, viteDevServer?: ViteDevServer): Promise<Response>;
22
22
  export {};
23
23
  //# sourceMappingURL=streamHelpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamHelpers.d.ts","sourceRoot":"","sources":["../../src/streaming/streamHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAI5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAYlD,UAAU,kBAAkB;IAC1B,WAAW,EAAE,eAAe,CAAA;IAC5B,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACzC,UAAU,EAAE,GAAG,CAAA;IACf,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,eAAe,CAAA;CAC3B;AAED,UAAU,aAAa;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC/B;AA2BD,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,kBAAkB,EACzB,aAAa,EAAE,kBAAkB,EACjC,aAAa,EAAE,aAAa,qBAgM7B;AA2BD,wBAAsB,YAAY,CAChC,GAAG,EACC,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,8BAA8B,GAC9B,uBAAuB,gBA2B5B"}
1
+ {"version":3,"file":"streamHelpers.d.ts","sourceRoot":"","sources":["../../src/streaming/streamHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAI5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAYlD,UAAU,kBAAkB;IAC1B,WAAW,EAAE,eAAe,CAAA;IAC5B,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACzC,UAAU,EAAE,GAAG,CAAA;IACf,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,eAAe,CAAA;CAC3B;AAED,UAAU,aAAa;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC/B;AA2BD,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,kBAAkB,EACzB,aAAa,EAAE,kBAAkB,EACjC,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,EAAE,aAAa,qBAgM9B"}
@@ -27,7 +27,7 @@ globalThis.__webpack_require__ ||= (id) => {
27
27
  return globalThis.__rw_module_cache__.get(id)
28
28
  };
29
29
  `;
30
- async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions) {
30
+ async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions, viteDevServer) {
31
31
  const { waitForAllReady = false } = streamOptions;
32
32
  const {
33
33
  ServerEntry,
@@ -49,13 +49,13 @@ async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions)
49
49
  meta: metaTags
50
50
  });
51
51
  const rscEnabled = getConfig().experimental?.rsc?.enabled;
52
- const { createElement } = rscEnabled ? await importModule("__rwjs__react") : await import("react");
52
+ const { createElement } = rscEnabled ? await importModule("__rwjs__react", !!viteDevServer) : await import("react");
53
53
  const {
54
54
  createInjector,
55
55
  ServerHtmlProvider,
56
56
  ServerInjectedHtml
57
- } = rscEnabled ? await importModule("__rwjs__server_inject") : await import("@cedarjs/web/serverInject");
58
- const { renderToString } = rscEnabled ? await importModule("rd-server") : await import("react-dom/server");
57
+ } = rscEnabled ? await importModule("__rwjs__server_inject", !!viteDevServer) : await import("@cedarjs/web/serverInject");
58
+ const { renderToString } = rscEnabled ? await importModule("rd-server", !!viteDevServer) : await import("react-dom/server");
59
59
  const { injectionState, injectToPage } = createInjector();
60
60
  const bufferTransform = createBufferedTransformStream();
61
61
  const serverInjectionTransform = createServerInjectionTransform({
@@ -70,8 +70,8 @@ async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions)
70
70
  controller.abort();
71
71
  }, 1e4);
72
72
  const timeoutTransform = createTimeoutTransform(timeoutHandle);
73
- const { ServerAuthProvider } = rscEnabled ? await importModule("__rwjs__server_auth_provider") : await import("@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js");
74
- const { LocationProvider } = rscEnabled ? await importModule("__rwjs__location") : await import("@cedarjs/router/location");
73
+ const { ServerAuthProvider } = rscEnabled ? await importModule("__rwjs__server_auth_provider", !!viteDevServer) : await import("@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js");
74
+ const { LocationProvider } = rscEnabled ? await importModule("__rwjs__location", !!viteDevServer) : await import("@cedarjs/router/location");
75
75
  const renderRoot = (url) => {
76
76
  return createElement(
77
77
  ServerAuthProvider,
@@ -103,7 +103,7 @@ async function reactRenderToStreamResponse(mwRes, renderOptions, streamOptions)
103
103
  ),
104
104
  bootstrapModules: jsBundles
105
105
  };
106
- const { renderToReadableStream } = rscEnabled ? await importModule("rd-server") : await import("react-dom/server.edge");
106
+ const { renderToReadableStream } = rscEnabled ? await importModule("rd-server", !!viteDevServer) : await import("react-dom/server.edge");
107
107
  try {
108
108
  let didErrorOutsideShell = false;
109
109
  const renderToStreamOptions = {
@@ -162,31 +162,51 @@ function applyStreamTransforms(reactStream, transformsToApply) {
162
162
  }
163
163
  return outputStream;
164
164
  }
165
- async function importModule(mod) {
166
- const distSsr = getPaths().web.distSsr;
167
- const rdServerPath = makeFilePath(path.join(distSsr, "rd-server.mjs"));
168
- const reactPath = makeFilePath(path.join(distSsr, "__rwjs__react.mjs"));
169
- const locationPath = makeFilePath(path.join(distSsr, "__rwjs__location.mjs"));
170
- const ServerAuthProviderPath = makeFilePath(
171
- path.join(distSsr, "__rwjs__server_auth_provider.mjs")
172
- );
173
- const ServerInjectPath = makeFilePath(
174
- path.join(distSsr, "__rwjs__server_inject.mjs")
175
- );
176
- if (mod === "rd-server") {
177
- return (await import(rdServerPath)).default;
178
- } else if (mod === "__rwjs__react") {
179
- return (await import(reactPath)).default;
180
- } else if (mod === "__rwjs__location") {
181
- return await import(locationPath);
182
- } else if (mod === "__rwjs__server_auth_provider") {
183
- return await import(ServerAuthProviderPath);
184
- } else if (mod === "__rwjs__server_inject") {
185
- return await import(ServerInjectPath);
165
+ async function importModule(mod, isDev) {
166
+ if (isDev) {
167
+ if (mod === "rd-server") {
168
+ const loadedMod = await import("react-dom/server.edge");
169
+ return loadedMod.default;
170
+ } else if (mod === "__rwjs__react") {
171
+ const loadedMod = await import("react");
172
+ return loadedMod.default;
173
+ } else if (mod === "__rwjs__location") {
174
+ const loadedMod = await import("@cedarjs/router/location");
175
+ return loadedMod;
176
+ } else if (mod === "__rwjs__server_auth_provider") {
177
+ const loadedMod = await import("@cedarjs/auth/dist/AuthProvider/ServerAuthProvider.js");
178
+ return loadedMod;
179
+ } else if (mod === "__rwjs__server_inject") {
180
+ const loadedMod = await import("@cedarjs/web/serverInject");
181
+ return loadedMod;
182
+ }
183
+ } else {
184
+ const distSsr = getPaths().web.distSsr;
185
+ const rdServerPath = makeFilePath(path.join(distSsr, "rd-server.mjs"));
186
+ const reactPath = makeFilePath(path.join(distSsr, "__rwjs__react.mjs"));
187
+ const locationPath = makeFilePath(
188
+ path.join(distSsr, "__rwjs__location.mjs")
189
+ );
190
+ const serverAuthProviderPath = makeFilePath(
191
+ path.join(distSsr, "__rwjs__server_auth_provider.mjs")
192
+ );
193
+ const serverInjectPath = makeFilePath(
194
+ path.join(distSsr, "__rwjs__server_inject.mjs")
195
+ );
196
+ if (mod === "rd-server") {
197
+ return (await import(rdServerPath)).default;
198
+ } else if (mod === "__rwjs__react") {
199
+ return (await import(reactPath)).default;
200
+ } else if (mod === "__rwjs__location") {
201
+ return await import(locationPath);
202
+ } else if (mod === "__rwjs__server_auth_provider") {
203
+ return await import(serverAuthProviderPath);
204
+ } else if (mod === "__rwjs__server_inject") {
205
+ return await import(serverInjectPath);
206
+ }
186
207
  }
187
208
  throw new Error("Unknown module " + mod);
188
209
  }
189
210
  export {
190
- importModule,
191
211
  reactRenderToStreamResponse
192
212
  };
@@ -18,9 +18,9 @@ interface LoadAndRunRouteHooks {
18
18
  req: Request;
19
19
  parsedParams?: Record<string, any>;
20
20
  };
21
- viteDevServer?: ViteDevServer;
21
+ viteSsrDevServer?: ViteDevServer;
22
22
  previousOutput?: RouteHookOutput;
23
23
  }
24
- export declare const loadAndRunRouteHooks: ({ paths, reqMeta, viteDevServer, previousOutput, }: LoadAndRunRouteHooks) => Promise<RouteHookOutput>;
24
+ export declare const loadAndRunRouteHooks: ({ paths, reqMeta, viteSsrDevServer, previousOutput, }: LoadAndRunRouteHooks) => Promise<RouteHookOutput>;
25
25
  export {};
26
26
  //# sourceMappingURL=triggerRouteHooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggerRouteHooks.d.ts","sourceRoot":"","sources":["../../src/streaming/triggerRouteHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAGzC,OAAO,KAAK,EACV,QAAQ,EAER,eAAe,EACf,aAAa,EACd,MAAM,cAAc,CAAA;AAErB,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,UAAU,sBAAsB;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC;AAED,eAAO,MAAM,iBAAiB,uDAK3B,sBAAsB;;EA4BxB,CAAA;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAA;IACpC,OAAO,EAAE;QACP,GAAG,EAAE,OAAO,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACnC,CAAA;IACD,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC;AAMD,eAAO,MAAM,oBAAoB,uDAK9B,oBAAoB,KAAG,OAAO,CAAC,eAAe,CAyChD,CAAA"}
1
+ {"version":3,"file":"triggerRouteHooks.d.ts","sourceRoot":"","sources":["../../src/streaming/triggerRouteHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAGzC,OAAO,KAAK,EACV,QAAQ,EAER,eAAe,EACf,aAAa,EACd,MAAM,cAAc,CAAA;AAErB,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,UAAU,sBAAsB;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC;AAED,eAAO,MAAM,iBAAiB,uDAK3B,sBAAsB;;EA4BxB,CAAA;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAA;IACpC,OAAO,EAAE;QACP,GAAG,EAAE,OAAO,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACnC,CAAA;IACD,gBAAgB,CAAC,EAAE,aAAa,CAAA;IAChC,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC;AAMD,eAAO,MAAM,oBAAoB,0DAK9B,oBAAoB,KAAG,OAAO,CAAC,eAAe,CA2ChD,CAAA"}
@@ -31,11 +31,11 @@ const defaultRouteHookOutput = {
31
31
  const loadAndRunRouteHooks = async ({
32
32
  paths = [],
33
33
  reqMeta,
34
- viteDevServer,
34
+ viteSsrDevServer,
35
35
  previousOutput = defaultRouteHookOutput
36
36
  }) => {
37
37
  const loadModule = async (path) => {
38
- return viteDevServer ? viteDevServer.ssrLoadModule(path) : import(path);
38
+ return viteSsrDevServer ? viteSsrDevServer.ssrLoadModule(path) : import(path);
39
39
  };
40
40
  let currentRouteHooks;
41
41
  let rhOutput = defaultRouteHookOutput;
@@ -55,7 +55,7 @@ const loadAndRunRouteHooks = async ({
55
55
  paths,
56
56
  reqMeta,
57
57
  previousOutput: rhOutput,
58
- viteDevServer
58
+ viteSsrDevServer
59
59
  });
60
60
  } else {
61
61
  return rhOutput;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/vite",
3
- "version": "0.0.4",
3
+ "version": "1.0.0-canary.12245+706940287",
4
4
  "description": "Vite configuration package for CedarJS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,7 +48,7 @@
48
48
  ],
49
49
  "scripts": {
50
50
  "build": "tsx build.ts && yarn build:types",
51
- "build:pack": "yarn pack -o cedar-vite.tgz",
51
+ "build:pack": "yarn pack -o cedarjs-vite.tgz",
52
52
  "build:types": "tsc --build --verbose ./tsconfig.build.json",
53
53
  "check:attw": "tsx ./attw.ts",
54
54
  "check:package": "concurrently npm:check:attw yarn:publint",
@@ -59,13 +59,13 @@
59
59
  "@babel/generator": "7.26.10",
60
60
  "@babel/parser": "7.26.10",
61
61
  "@babel/traverse": "7.26.10",
62
- "@cedarjs/auth": "0.0.4",
63
- "@cedarjs/babel-config": "0.0.4",
64
- "@cedarjs/cookie-jar": "0.0.4",
65
- "@cedarjs/internal": "0.0.4",
66
- "@cedarjs/project-config": "0.0.4",
67
- "@cedarjs/server-store": "0.0.4",
68
- "@cedarjs/web": "0.0.4",
62
+ "@cedarjs/auth": "1.0.0-canary.12245",
63
+ "@cedarjs/babel-config": "1.0.0-canary.12245",
64
+ "@cedarjs/cookie-jar": "1.0.0-canary.12245",
65
+ "@cedarjs/internal": "1.0.0-canary.12245",
66
+ "@cedarjs/project-config": "1.0.0-canary.12245",
67
+ "@cedarjs/server-store": "1.0.0-canary.12245",
68
+ "@cedarjs/web": "1.0.0-canary.12245",
69
69
  "@swc/core": "1.7.28",
70
70
  "@vitejs/plugin-react": "4.3.4",
71
71
  "@whatwg-node/fetch": "0.9.21",
@@ -73,7 +73,7 @@
73
73
  "acorn-loose": "8.4.0",
74
74
  "buffer": "6.0.3",
75
75
  "busboy": "^1.6.0",
76
- "cookie": "0.7.2",
76
+ "cookie": "1.0.2",
77
77
  "core-js": "3.42.0",
78
78
  "dotenv-defaults": "5.0.2",
79
79
  "execa": "5.1.1",
@@ -82,8 +82,8 @@
82
82
  "fs-extra": "11.2.0",
83
83
  "http-proxy-middleware": "3.0.5",
84
84
  "isbot": "5.1.21",
85
- "react": "18.3.1",
86
- "react-server-dom-webpack": "19.0.0-rc-8269d55d-20240802",
85
+ "react": "19.0.0-rc-f2df5694-20240916",
86
+ "react-server-dom-webpack": "19.0.0-rc-f2df5694-20240916",
87
87
  "rimraf": "6.0.1",
88
88
  "vite": "5.4.16",
89
89
  "vite-plugin-cjs-interop": "2.1.4",
@@ -109,8 +109,5 @@
109
109
  "typescript": "5.6.2",
110
110
  "vitest": "2.1.9"
111
111
  },
112
- "publishConfig": {
113
- "access": "public"
114
- },
115
- "gitHead": "5b4f77f985bd86ee31ee7338312627accf0cb85b"
112
+ "gitHead": "7069402874ee21cec078b429514ebb1b273e4031"
116
113
  }