@cedarjs/vite 5.0.4-next.167 → 5.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 (143) hide show
  1. package/dist/api/vite-plugin-cedar-vitest-api-preset.d.ts.map +1 -1
  2. package/dist/api/vite-plugin-cedar-vitest-api-preset.js +0 -4
  3. package/dist/apiDevMiddleware.d.ts.map +1 -1
  4. package/dist/apiDevMiddleware.js +9 -105
  5. package/dist/buildApp.d.ts.map +1 -1
  6. package/dist/buildApp.js +18 -79
  7. package/dist/buildRouteHooks.d.ts.map +1 -1
  8. package/dist/buildRouteHooks.js +4 -36
  9. package/dist/bundled/react-server-dom-webpack.server.js +99 -192
  10. package/dist/cedar-unified-dev.d.ts +0 -18
  11. package/dist/cedar-unified-dev.d.ts.map +1 -1
  12. package/dist/cedar-unified-dev.js +5 -39
  13. package/dist/cjs/ClientRouter.d.ts +1 -0
  14. package/dist/cjs/api/vite-plugin-cedar-vitest-api-preset.js +37 -0
  15. package/dist/cjs/apiDevMiddleware.js +371 -0
  16. package/dist/cjs/build/build.d.ts +1 -0
  17. package/dist/cjs/build/build.js +58 -0
  18. package/dist/cjs/buildApp.js +306 -0
  19. package/dist/cjs/buildFeServer.d.ts +1 -0
  20. package/dist/cjs/buildFeServer.js +63 -0
  21. package/dist/cjs/buildRouteHooks.js +80 -0
  22. package/dist/cjs/buildRouteManifest.js +92 -0
  23. package/dist/cjs/buildRscClientAndServer.js +54 -0
  24. package/dist/cjs/cedar-unified-dev.js +310 -0
  25. package/dist/cjs/client.d.ts +1 -0
  26. package/dist/cjs/clientSsr.d.ts +1 -0
  27. package/dist/cjs/devFeServer.js +157 -0
  28. package/dist/cjs/index.d.ts +1 -0
  29. package/dist/cjs/index.js +141 -0
  30. package/dist/cjs/lib/StatusError.js +37 -0
  31. package/dist/cjs/lib/entries.js +52 -0
  32. package/dist/cjs/lib/getMergedConfig.js +185 -0
  33. package/dist/cjs/lib/onWarn.js +36 -0
  34. package/dist/cjs/lib/registerFwGlobalsAndShims.js +102 -0
  35. package/dist/cjs/lib/workspacePackageAliases.js +107 -0
  36. package/dist/cjs/middleware/index.js +22 -0
  37. package/dist/cjs/middleware/invokeMiddleware.js +52 -0
  38. package/dist/cjs/middleware/register.js +105 -0
  39. package/dist/cjs/middleware/types.js +16 -0
  40. package/dist/cjs/package.json +1 -0
  41. package/dist/cjs/plugins/vite-plugin-cedar-auto-import.js +107 -0
  42. package/dist/cjs/plugins/vite-plugin-cedar-cell.js +183 -0
  43. package/dist/cjs/plugins/vite-plugin-cedar-cjs-compat.js +341 -0
  44. package/dist/cjs/plugins/vite-plugin-cedar-context-wrapping.js +95 -0
  45. package/dist/cjs/plugins/vite-plugin-cedar-entry-injection.js +107 -0
  46. package/dist/cjs/plugins/vite-plugin-cedar-html-env.js +67 -0
  47. package/dist/cjs/plugins/vite-plugin-cedar-import-dir.js +118 -0
  48. package/dist/cjs/plugins/vite-plugin-cedar-node-polyfills.js +43 -0
  49. package/dist/cjs/plugins/vite-plugin-cedar-remove-dev-fatal-error-page.js +61 -0
  50. package/dist/cjs/plugins/vite-plugin-cedar-remove-from-bundle.js +76 -0
  51. package/dist/cjs/plugins/vite-plugin-cedar-routes-auto-loader.js +126 -0
  52. package/dist/cjs/plugins/vite-plugin-cedar-universal-deploy.js +346 -0
  53. package/dist/cjs/plugins/vite-plugin-cedar-wait-for-api-server.js +134 -0
  54. package/dist/cjs/plugins/vite-plugin-cedarjs-job-path-injector.js +134 -0
  55. package/dist/cjs/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js +106 -0
  56. package/dist/cjs/plugins/vite-plugin-jsx-loader.js +42 -0
  57. package/dist/cjs/plugins/vite-plugin-merged-config.js +39 -0
  58. package/dist/cjs/plugins/vite-plugin-rsc-analyze.js +104 -0
  59. package/dist/cjs/plugins/vite-plugin-rsc-reload.js +75 -0
  60. package/dist/cjs/plugins/vite-plugin-rsc-routes-auto-loader.js +159 -0
  61. package/dist/cjs/plugins/vite-plugin-rsc-routes-imports.js +125 -0
  62. package/dist/cjs/plugins/vite-plugin-rsc-ssr-router-import.js +75 -0
  63. package/dist/cjs/plugins/vite-plugin-rsc-transform-client.js +228 -0
  64. package/dist/cjs/plugins/vite-plugin-rsc-transform-server.js +398 -0
  65. package/dist/cjs/plugins/vite-plugin-swap-apollo-provider.js +46 -0
  66. package/dist/cjs/rsc/rscBuildAnalyze.js +126 -0
  67. package/dist/cjs/rsc/rscBuildClient.js +91 -0
  68. package/dist/cjs/rsc/rscBuildCopyCssAssets.js +56 -0
  69. package/dist/cjs/rsc/rscBuildEntriesFile.js +115 -0
  70. package/dist/cjs/rsc/rscBuildForServer.js +168 -0
  71. package/dist/cjs/rsc/rscBuildForSsr.js +173 -0
  72. package/dist/cjs/rsc/rscBuildRwEnvVars.js +56 -0
  73. package/dist/cjs/rsc/rscRenderer.js +165 -0
  74. package/dist/cjs/rsc/rscRequestHandler.js +162 -0
  75. package/dist/cjs/rsc/rscStudioHandlers.js +156 -0
  76. package/dist/cjs/runFeServer.js +165 -0
  77. package/dist/cjs/streaming/buildForStreamingServer.js +65 -0
  78. package/dist/cjs/streaming/collectCss.js +52 -0
  79. package/dist/cjs/streaming/createReactStreamingHandler.js +173 -0
  80. package/dist/cjs/streaming/streamHelpers.js +230 -0
  81. package/dist/cjs/streaming/transforms/bufferedTransform.js +61 -0
  82. package/dist/cjs/streaming/transforms/cancelTimeoutTransform.js +34 -0
  83. package/dist/cjs/streaming/transforms/encode-decode.js +36 -0
  84. package/dist/cjs/streaming/transforms/serverInjectionTransform.js +84 -0
  85. package/dist/cjs/streaming/triggerRouteHooks.js +96 -0
  86. package/dist/cjs/types.js +16 -0
  87. package/dist/cjs/utils.js +92 -0
  88. package/dist/devFeServer.js +8 -3
  89. package/dist/index.d.ts +4 -10
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +19 -45
  92. package/dist/lib/getMergedConfig.d.ts.map +1 -1
  93. package/dist/lib/getMergedConfig.js +0 -4
  94. package/dist/package.json +1 -0
  95. package/dist/plugins/vite-plugin-cedar-auto-import.d.ts +1 -1
  96. package/dist/plugins/vite-plugin-cedar-auto-import.d.ts.map +1 -1
  97. package/dist/plugins/vite-plugin-cedar-auto-import.js +1 -8
  98. package/dist/plugins/vite-plugin-cedar-cell.d.ts.map +1 -1
  99. package/dist/plugins/vite-plugin-cedar-cell.js +1 -2
  100. package/dist/plugins/{vite-plugin-handler-als-wrapping.d.ts → vite-plugin-cedar-context-wrapping.d.ts} +12 -12
  101. package/dist/plugins/vite-plugin-cedar-context-wrapping.d.ts.map +1 -0
  102. package/dist/plugins/{vite-plugin-handler-als-wrapping.js → vite-plugin-cedar-context-wrapping.js} +16 -16
  103. package/dist/plugins/vite-plugin-cedar-import-dir.d.ts.map +1 -1
  104. package/dist/plugins/vite-plugin-cedar-import-dir.js +15 -33
  105. package/dist/plugins/vite-plugin-cedar-node-polyfills.d.ts +3 -0
  106. package/dist/plugins/vite-plugin-cedar-node-polyfills.d.ts.map +1 -0
  107. package/dist/plugins/vite-plugin-cedar-node-polyfills.js +19 -0
  108. package/dist/plugins/vite-plugin-cedar-universal-deploy.js +1 -1
  109. package/dist/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.d.ts.map +1 -1
  110. package/dist/plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js +0 -14
  111. package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts +0 -3
  112. package/dist/plugins/vite-plugin-swap-apollo-provider.d.ts.map +1 -1
  113. package/dist/plugins/vite-plugin-swap-apollo-provider.js +2 -2
  114. package/dist/rsc/rscBuildForSsr.d.ts.map +1 -1
  115. package/dist/rsc/rscBuildForSsr.js +5 -3
  116. package/dist/streaming/buildForStreamingServer.d.ts.map +1 -1
  117. package/dist/streaming/buildForStreamingServer.js +5 -3
  118. package/package.json +52 -42
  119. package/dist/lib/generateDiffSourceMap.d.ts +0 -18
  120. package/dist/lib/generateDiffSourceMap.d.ts.map +0 -1
  121. package/dist/lib/generateDiffSourceMap.js +0 -151
  122. package/dist/plugins/vite-plugin-cedar-data-uri-shim.d.ts +0 -3
  123. package/dist/plugins/vite-plugin-cedar-data-uri-shim.d.ts.map +0 -1
  124. package/dist/plugins/vite-plugin-cedar-data-uri-shim.js +0 -43
  125. package/dist/plugins/vite-plugin-cedar-directory-named-import.d.ts +0 -12
  126. package/dist/plugins/vite-plugin-cedar-directory-named-import.d.ts.map +0 -1
  127. package/dist/plugins/vite-plugin-cedar-directory-named-import.js +0 -35
  128. package/dist/plugins/vite-plugin-cedar-gqlorm-inject.d.ts +0 -29
  129. package/dist/plugins/vite-plugin-cedar-gqlorm-inject.d.ts.map +0 -1
  130. package/dist/plugins/vite-plugin-cedar-gqlorm-inject.js +0 -76
  131. package/dist/plugins/vite-plugin-cedar-graphql-options-extract.d.ts +0 -42
  132. package/dist/plugins/vite-plugin-cedar-graphql-options-extract.d.ts.map +0 -1
  133. package/dist/plugins/vite-plugin-cedar-graphql-options-extract.js +0 -93
  134. package/dist/plugins/vite-plugin-cedar-log-formatter-dev.d.ts +0 -28
  135. package/dist/plugins/vite-plugin-cedar-log-formatter-dev.d.ts.map +0 -1
  136. package/dist/plugins/vite-plugin-cedar-log-formatter-dev.js +0 -67
  137. package/dist/plugins/vite-plugin-cedar-mock-cell-data.d.ts +0 -28
  138. package/dist/plugins/vite-plugin-cedar-mock-cell-data.d.ts.map +0 -1
  139. package/dist/plugins/vite-plugin-cedar-mock-cell-data.js +0 -247
  140. package/dist/plugins/vite-plugin-cedar-otel-wrapping.d.ts +0 -39
  141. package/dist/plugins/vite-plugin-cedar-otel-wrapping.d.ts.map +0 -1
  142. package/dist/plugins/vite-plugin-cedar-otel-wrapping.js +0 -200
  143. package/dist/plugins/vite-plugin-handler-als-wrapping.d.ts.map +0 -1
@@ -0,0 +1,310 @@
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 cedar_unified_dev_exports = {};
30
+ __export(cedar_unified_dev_exports, {
31
+ openDebugger: () => openDebugger,
32
+ parseCliArgs: () => parseCliArgs,
33
+ startUnifiedDevServer: () => startUnifiedDevServer
34
+ });
35
+ module.exports = __toCommonJS(cedar_unified_dev_exports);
36
+ var import_server = require("@whatwg-node/server");
37
+ var import_vite = require("vite");
38
+ var import_yargs_parser = __toESM(require("yargs-parser"), 1);
39
+ var import_project_config = require("@cedarjs/project-config");
40
+ var import_apiDevMiddleware = require("./apiDevMiddleware.js");
41
+ function isViteInternalRequest(url) {
42
+ const pathname = url.split("?")[0];
43
+ return pathname.startsWith("/@") || pathname.startsWith("/__vite") || pathname.startsWith("/__hmr");
44
+ }
45
+ function isApiRequest(url, apiUrl, apiGqlUrl) {
46
+ return url === apiUrl || url.startsWith(apiUrl + "/") || url.startsWith(apiUrl + "?") || url === apiGqlUrl || url.startsWith(apiGqlUrl + "/") || url.startsWith(apiGqlUrl + "?");
47
+ }
48
+ function parseCliArgs(argv = process.argv) {
49
+ const {
50
+ force: forceOptimize,
51
+ debug,
52
+ port: portArg,
53
+ apiPort: _apiPortArg,
54
+ "debug-port": debugPort,
55
+ "debug-brk": debugBrk,
56
+ _: _positional,
57
+ ...serverArgs
58
+ } = (0, import_yargs_parser.default)(argv.slice(2), {
59
+ boolean: [
60
+ "https",
61
+ "open",
62
+ "strictPort",
63
+ "force",
64
+ "cors",
65
+ "debug",
66
+ "debug-brk"
67
+ ],
68
+ number: ["port", "apiPort", "debug-port"]
69
+ });
70
+ return { forceOptimize, debug, portArg, debugPort, debugBrk, serverArgs };
71
+ }
72
+ async function clearPendingPause() {
73
+ const inspector = await import("node:inspector");
74
+ const s = new inspector.Session();
75
+ try {
76
+ s.connect();
77
+ await new Promise((resolve, reject) => {
78
+ s.post("Debugger.enable", (err) => err ? reject(err) : resolve());
79
+ });
80
+ await new Promise((resolve) => {
81
+ let done = false;
82
+ s.once("Debugger.paused", () => {
83
+ s.post("Debugger.resume", () => {
84
+ done = true;
85
+ resolve();
86
+ });
87
+ });
88
+ s.post("Runtime.evaluate", { expression: "1" }, () => {
89
+ if (!done) {
90
+ resolve();
91
+ }
92
+ });
93
+ });
94
+ } catch {
95
+ } finally {
96
+ s.disconnect();
97
+ }
98
+ }
99
+ async function openDebugger(port, waitForDebugger = false) {
100
+ const inspector = await import("node:inspector");
101
+ inspector.open(port, "127.0.0.1");
102
+ if (waitForDebugger) {
103
+ inspector.waitForDebugger();
104
+ const session = new inspector.Session();
105
+ session.connect();
106
+ await session.post("Debugger.enable");
107
+ let resumedResolve;
108
+ const resumedPromise = new Promise((resolve) => {
109
+ resumedResolve = resolve;
110
+ });
111
+ const onSessionDead = () => {
112
+ if (paused) {
113
+ tryResume();
114
+ } else {
115
+ clearPendingPause().then(
116
+ () => resumedResolve?.(),
117
+ () => resumedResolve?.()
118
+ );
119
+ }
120
+ };
121
+ session.once("error", onSessionDead);
122
+ session.once("Inspector.detached", onSessionDead);
123
+ let paused = false;
124
+ session.once("Debugger.paused", () => {
125
+ paused = true;
126
+ tryResume();
127
+ });
128
+ session.once("Debugger.resumed", () => {
129
+ resumedResolve?.();
130
+ });
131
+ const FIVE_MINUTES_MS = 5 * 60 * 1e3;
132
+ const timeout = setTimeout(() => {
133
+ if (paused) {
134
+ tryResume();
135
+ } else {
136
+ resumedResolve?.();
137
+ }
138
+ }, FIVE_MINUTES_MS);
139
+ let hasTriedResume = false;
140
+ const tryResume = () => {
141
+ if (hasTriedResume) {
142
+ return;
143
+ }
144
+ if (!paused) {
145
+ return;
146
+ }
147
+ hasTriedResume = true;
148
+ (async () => {
149
+ for (let attempt = 0; attempt < 3; attempt++) {
150
+ const s = attempt === 0 ? session : new inspector.Session();
151
+ if (attempt > 0) {
152
+ try {
153
+ s.connect();
154
+ await new Promise((resolve, reject) => {
155
+ s.post(
156
+ "Debugger.enable",
157
+ (err) => err ? reject(err) : resolve()
158
+ );
159
+ });
160
+ } catch {
161
+ continue;
162
+ }
163
+ }
164
+ const ok = await new Promise((resolve) => {
165
+ s.post("Debugger.resume", (err) => resolve(!err));
166
+ });
167
+ if (attempt > 0) {
168
+ s.disconnect();
169
+ }
170
+ if (ok) {
171
+ resumedResolve?.();
172
+ return;
173
+ }
174
+ }
175
+ console.warn(
176
+ "[cedar-unified-dev] Failed to clear debugger pause after external debugger disconnect. API functions may pause on next execution."
177
+ );
178
+ resumedResolve?.();
179
+ })();
180
+ };
181
+ void new Promise((resolve, reject) => {
182
+ session.post("Debugger.pause", (err) => {
183
+ if (err) {
184
+ reject(err);
185
+ } else {
186
+ resolve();
187
+ }
188
+ });
189
+ }).catch(() => {
190
+ resumedResolve?.();
191
+ });
192
+ void new Promise((resolve, reject) => {
193
+ session.post("Runtime.evaluate", { expression: "1" }, (err) => {
194
+ if (err) {
195
+ reject(err);
196
+ } else {
197
+ resolve();
198
+ }
199
+ });
200
+ }).catch(() => {
201
+ clearPendingPause().then(
202
+ () => resumedResolve?.(),
203
+ () => resumedResolve?.()
204
+ );
205
+ });
206
+ await resumedPromise;
207
+ clearTimeout(timeout);
208
+ }
209
+ }
210
+ async function startUnifiedDevServer() {
211
+ process.env.__CEDAR_UNIFIED_DEV = "true";
212
+ const rwPaths = (0, import_project_config.getPaths)();
213
+ const cedarConfig = (0, import_project_config.getConfig)();
214
+ const configFile = rwPaths.web.viteConfig;
215
+ if (!configFile) {
216
+ throw new Error("Could not locate your web/vite.config.{js,ts} file");
217
+ }
218
+ const { forceOptimize, debug, portArg, debugPort, debugBrk, serverArgs } = parseCliArgs();
219
+ if (debugPort !== void 0) {
220
+ await openDebugger(debugPort, debugBrk);
221
+ }
222
+ const webPort = portArg ?? cedarConfig.web.port ?? 8910;
223
+ const { close: closeApi, handler: apiHandler } = await (0, import_apiDevMiddleware.startApiDevMiddleware)();
224
+ const apiAdapter = (0, import_server.createServerAdapter)(apiHandler);
225
+ const devServer = await (0, import_vite.createServer)({
226
+ configFile,
227
+ // env file is handled by Cedar's plugins
228
+ envFile: false,
229
+ optimizeDeps: {
230
+ // This is the only value that isn't a server option
231
+ force: forceOptimize
232
+ },
233
+ server: {
234
+ port: webPort,
235
+ ...serverArgs
236
+ },
237
+ logLevel: debug ? "info" : void 0,
238
+ plugins: [
239
+ {
240
+ name: "cedar-api-middleware",
241
+ apply: "serve",
242
+ configureServer(server) {
243
+ const apiUrl = cedarConfig.web.apiUrl.replace(/\/$/, "");
244
+ const apiGqlUrl = cedarConfig.web.apiGraphQLUrl ?? apiUrl + "/graphql";
245
+ server.middlewares.use(
246
+ async (req, res, next) => {
247
+ const url = req.url ?? "/";
248
+ if (isViteInternalRequest(url)) {
249
+ return next();
250
+ }
251
+ if (!isApiRequest(url, apiUrl, apiGqlUrl)) {
252
+ return next();
253
+ }
254
+ try {
255
+ await apiAdapter(req, res);
256
+ } catch (err) {
257
+ console.error(
258
+ "[cedar-api-middleware] Error handling API request:",
259
+ err
260
+ );
261
+ if (!res.headersSent) {
262
+ res.writeHead(500, { "Content-Type": "application/json" });
263
+ }
264
+ res.end(
265
+ JSON.stringify(
266
+ {
267
+ errors: [
268
+ {
269
+ message: err instanceof Error ? err.message : "Internal Server Error"
270
+ }
271
+ ]
272
+ },
273
+ null,
274
+ 2
275
+ )
276
+ );
277
+ }
278
+ }
279
+ );
280
+ }
281
+ }
282
+ ]
283
+ });
284
+ await devServer.listen();
285
+ process.stdin.on("data", async (data) => {
286
+ const str = data.toString().trim().toLowerCase();
287
+ if (str === "rs" || str === "restart") {
288
+ await devServer.restart(true);
289
+ }
290
+ });
291
+ devServer.printUrls();
292
+ if (debug) {
293
+ console.log("~~~ Vite Server Config ~~~");
294
+ console.log(JSON.stringify(devServer.config, null, 2));
295
+ console.log("~~~~~~~~~~~~~~~~~~~~~~~~~~");
296
+ }
297
+ const shutdown = async () => {
298
+ await devServer.close();
299
+ await closeApi();
300
+ process.exit(0);
301
+ };
302
+ process.on("SIGINT", shutdown);
303
+ process.on("SIGTERM", shutdown);
304
+ }
305
+ // Annotate the CommonJS export names for ESM import in node:
306
+ 0 && (module.exports = {
307
+ openDebugger,
308
+ parseCliArgs,
309
+ startUnifiedDevServer
310
+ });
@@ -0,0 +1 @@
1
+ export type * from "../client.d.ts"
@@ -0,0 +1 @@
1
+ export type * from "../clientSsr.d.ts"
@@ -0,0 +1,157 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
18
+ // If the importer is in node compatibility mode or this is not an ESM
19
+ // file that has been converted to a CommonJS file using a Babel-
20
+ // compatible transform (i.e. "__esModule" has not been set), then set
21
+ // "default" to the CommonJS "module.exports" for node compatibility.
22
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
23
+ mod
24
+ ));
25
+ var import_server = require("@whatwg-node/server");
26
+ var import_express = __toESM(require("express"), 1);
27
+ var import_vite = require("vite");
28
+ var import_vite_plugin_cjs_interop = require("vite-plugin-cjs-interop");
29
+ var import_routes = require("@cedarjs/internal/dist/routes.js");
30
+ var import_project_config = require("@cedarjs/project-config");
31
+ var import_server_store = require("@cedarjs/server-store");
32
+ var import_registerFwGlobalsAndShims = require("./lib/registerFwGlobalsAndShims.js");
33
+ var import_invokeMiddleware = require("./middleware/invokeMiddleware.js");
34
+ var import_register = require("./middleware/register.js");
35
+ var import_vite_plugin_rsc_routes_auto_loader = require("./plugins/vite-plugin-rsc-routes-auto-loader.js");
36
+ var import_collectCss = require("./streaming/collectCss.js");
37
+ var import_createReactStreamingHandler = require("./streaming/createReactStreamingHandler.js");
38
+ var import_utils = require("./utils.js");
39
+ globalThis.__REDWOOD__PRERENDER_PAGES = {};
40
+ async function createServer() {
41
+ (0, import_utils.ensureProcessDirWeb)();
42
+ (0, import_registerFwGlobalsAndShims.registerFwGlobalsAndShims)();
43
+ const app = (0, import_express.default)();
44
+ const rwPaths = (0, import_project_config.getPaths)();
45
+ const rscEnabled = (0, import_project_config.getConfig)().experimental.rsc?.enabled ?? false;
46
+ const serverStorage = (0, import_server_store.createServerStorage)();
47
+ app.use("*", (req, _res, next) => {
48
+ const fullUrl = (0, import_utils.getFullUrl)(req, rscEnabled);
49
+ const perReqStore = (0, import_server_store.createPerRequestMap)({
50
+ // Convert express headers to fetch header
51
+ headers: (0, import_utils.convertExpressHeaders)(req.headersDistinct),
52
+ fullUrl
53
+ });
54
+ serverStorage.run(perReqStore, next);
55
+ });
56
+ if (!rwPaths.web.entryServer || !rwPaths.web.entryClient) {
57
+ throw new Error(
58
+ "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."
59
+ );
60
+ }
61
+ if (!rwPaths.web.viteConfig) {
62
+ throw new Error(
63
+ "Vite config not found. Please set up Vite before running the dev server."
64
+ );
65
+ }
66
+ const vite = await (0, import_vite.createServer)({
67
+ configFile: rwPaths.web.viteConfig,
68
+ plugins: [
69
+ (0, import_vite_plugin_cjs_interop.cjsInterop)({
70
+ dependencies: [
71
+ // Skip ESM modules: rwjs/auth, rwjs/web, rwjs/auth-*-middleware, rwjs/router
72
+ "@cedarjs/forms",
73
+ "@cedarjs/prerender/*",
74
+ "@cedarjs/auth-*-api",
75
+ // Add more to the pattern below as they're converted to dual ESM/CJS
76
+ // modules
77
+ // '@cedarjs/auth-!(dbauth|auth0|clerk)-web',
78
+ "@cedarjs/auth-!(dbauth)-web"
79
+ ]
80
+ }),
81
+ rscEnabled && (0, import_vite_plugin_rsc_routes_auto_loader.rscRoutesAutoLoader)()
82
+ ],
83
+ server: { middlewareMode: true },
84
+ logLevel: "info",
85
+ clearScreen: false,
86
+ appType: "custom"
87
+ });
88
+ const handleWithMiddleware = (route) => {
89
+ return (0, import_server.createServerAdapter)(async (req) => {
90
+ const middlewareRouter = await (0, import_register.createMiddlewareRouter)(vite);
91
+ const middleware = middlewareRouter.find(
92
+ req.method,
93
+ req.url
94
+ )?.handler;
95
+ if (!middleware) {
96
+ return new Response("No middleware found", { status: 404 });
97
+ }
98
+ const [mwRes] = await (0, import_invokeMiddleware.invoke)(req, middleware, {
99
+ route,
100
+ viteDevServer: vite
101
+ });
102
+ return mwRes.toResponse();
103
+ });
104
+ };
105
+ app.use(vite.middlewares);
106
+ if (rscEnabled) {
107
+ const { createRscRequestHandler } = await import("./rsc/rscRequestHandler.js");
108
+ app.use(
109
+ "/rw-rsc",
110
+ createRscRequestHandler({
111
+ getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite),
112
+ viteDevServer: vite
113
+ })
114
+ );
115
+ }
116
+ const routes = (0, import_routes.getProjectRoutes)();
117
+ const routeHandler = await (0, import_createReactStreamingHandler.createReactStreamingHandler)(
118
+ {
119
+ routes,
120
+ clientEntryPath: rwPaths.web.entryClient,
121
+ getStylesheetLinks: (route) => {
122
+ return getCssLinks({ rwPaths, route, vite });
123
+ },
124
+ // Recreate middleware router on each request in dev
125
+ getMiddlewareRouter: async () => (0, import_register.createMiddlewareRouter)(vite)
126
+ },
127
+ vite
128
+ );
129
+ app.get("*", (0, import_server.createServerAdapter)(routeHandler));
130
+ app.post("*", handleWithMiddleware());
131
+ const port = (0, import_project_config.getConfig)().web.port;
132
+ console.log(`Started server on http://localhost:${port}`);
133
+ return app.listen(port);
134
+ }
135
+ let devApp = createServer();
136
+ process.stdin.on("data", async (data) => {
137
+ const str = data.toString().trim().toLowerCase();
138
+ if (str === "rs" || str === "restart") {
139
+ console.log("Restarting dev web server.....");
140
+ (await devApp).close(() => {
141
+ devApp = createServer();
142
+ });
143
+ }
144
+ });
145
+ function getCssLinks({
146
+ rwPaths,
147
+ route,
148
+ vite
149
+ }) {
150
+ const appAndRouteModules = (0, import_collectCss.componentsModules)(
151
+ [rwPaths.web.app, route?.filePath].filter(Boolean),
152
+ vite
153
+ );
154
+ const collectedCss = (0, import_collectCss.collectCssPaths)(appAndRouteModules);
155
+ const cssLinks = Array.from(collectedCss);
156
+ return cssLinks;
157
+ }
@@ -0,0 +1 @@
1
+ export type * from "../index.d.ts"
@@ -0,0 +1,141 @@
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 index_exports = {};
30
+ __export(index_exports, {
31
+ applyContextWrapping: () => import_vite_plugin_cedar_context_wrapping2.applyContextWrapping,
32
+ cedar: () => cedar,
33
+ cedarAutoImportsPlugin: () => import_vite_plugin_cedar_auto_import.cedarAutoImportsPlugin,
34
+ cedarCellTransform: () => import_vite_plugin_cedar_cell2.cedarCellTransform,
35
+ cedarCjsCompatPlugin: () => import_vite_plugin_cedar_cjs_compat.cedarCjsCompatPlugin,
36
+ cedarContextWrappingPlugin: () => import_vite_plugin_cedar_context_wrapping.cedarContextWrappingPlugin,
37
+ cedarEntryInjectionPlugin: () => import_vite_plugin_cedar_entry_injection2.cedarEntryInjectionPlugin,
38
+ cedarHtmlEnvPlugin: () => import_vite_plugin_cedar_html_env2.cedarHtmlEnvPlugin,
39
+ cedarImportDirPlugin: () => import_vite_plugin_cedar_import_dir.cedarImportDirPlugin,
40
+ cedarMergedConfig: () => import_vite_plugin_merged_config2.cedarMergedConfig,
41
+ cedarNodePolyfills: () => import_vite_plugin_cedar_node_polyfills2.cedarNodePolyfills,
42
+ cedarRemoveDevFatalErrorPage: () => import_vite_plugin_cedar_remove_dev_fatal_error_page2.cedarRemoveDevFatalErrorPage,
43
+ cedarRemoveFromBundle: () => import_vite_plugin_cedar_remove_from_bundle2.cedarRemoveFromBundle,
44
+ cedarRoutesAutoLoaderPlugin: () => import_vite_plugin_cedar_routes_auto_loader2.cedarRoutesAutoLoaderPlugin,
45
+ cedarSwapApolloProvider: () => import_vite_plugin_swap_apollo_provider2.cedarSwapApolloProvider,
46
+ cedarTransformJsAsJsx: () => import_vite_plugin_jsx_loader2.cedarTransformJsAsJsx,
47
+ cedarUniversalDeployPlugin: () => import_vite_plugin_cedar_universal_deploy.cedarUniversalDeployPlugin,
48
+ cedarWaitForApiServer: () => import_vite_plugin_cedar_wait_for_api_server2.cedarWaitForApiServer,
49
+ cedarjsJobPathInjectorPlugin: () => import_vite_plugin_cedarjs_job_path_injector.cedarjsJobPathInjectorPlugin,
50
+ cedarjsResolveCedarStyleImportsPlugin: () => import_vite_plugin_cedarjs_resolve_cedar_style_imports2.cedarjsResolveCedarStyleImportsPlugin,
51
+ default: () => index_default
52
+ });
53
+ module.exports = __toCommonJS(index_exports);
54
+ var import_plugin_react = __toESM(require("@vitejs/plugin-react"), 1);
55
+ var import_babel_config = require("@cedarjs/babel-config");
56
+ var import_project_config = require("@cedarjs/project-config");
57
+ var import_vitest = require("@cedarjs/testing/web/vitest");
58
+ var import_vite_plugin_cedar_cell = require("./plugins/vite-plugin-cedar-cell.js");
59
+ var import_vite_plugin_cedar_entry_injection = require("./plugins/vite-plugin-cedar-entry-injection.js");
60
+ var import_vite_plugin_cedar_html_env = require("./plugins/vite-plugin-cedar-html-env.js");
61
+ var import_vite_plugin_cedar_node_polyfills = require("./plugins/vite-plugin-cedar-node-polyfills.js");
62
+ var import_vite_plugin_cedar_remove_dev_fatal_error_page = require("./plugins/vite-plugin-cedar-remove-dev-fatal-error-page.js");
63
+ var import_vite_plugin_cedar_remove_from_bundle = require("./plugins/vite-plugin-cedar-remove-from-bundle.js");
64
+ var import_vite_plugin_cedar_routes_auto_loader = require("./plugins/vite-plugin-cedar-routes-auto-loader.js");
65
+ var import_vite_plugin_cedar_wait_for_api_server = require("./plugins/vite-plugin-cedar-wait-for-api-server.js");
66
+ var import_vite_plugin_cedarjs_resolve_cedar_style_imports = require("./plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js");
67
+ var import_vite_plugin_jsx_loader = require("./plugins/vite-plugin-jsx-loader.js");
68
+ var import_vite_plugin_merged_config = require("./plugins/vite-plugin-merged-config.js");
69
+ var import_vite_plugin_swap_apollo_provider = require("./plugins/vite-plugin-swap-apollo-provider.js");
70
+ var import_vite_plugin_cedar_auto_import = require("./plugins/vite-plugin-cedar-auto-import.js");
71
+ var import_vite_plugin_cedar_cjs_compat = require("./plugins/vite-plugin-cedar-cjs-compat.js");
72
+ var import_vite_plugin_cedar_cell2 = require("./plugins/vite-plugin-cedar-cell.js");
73
+ var import_vite_plugin_cedar_context_wrapping = require("./plugins/vite-plugin-cedar-context-wrapping.js");
74
+ var import_vite_plugin_cedar_context_wrapping2 = require("./plugins/vite-plugin-cedar-context-wrapping.js");
75
+ var import_vite_plugin_cedar_entry_injection2 = require("./plugins/vite-plugin-cedar-entry-injection.js");
76
+ var import_vite_plugin_cedar_html_env2 = require("./plugins/vite-plugin-cedar-html-env.js");
77
+ var import_vite_plugin_cedar_import_dir = require("./plugins/vite-plugin-cedar-import-dir.js");
78
+ var import_vite_plugin_cedar_node_polyfills2 = require("./plugins/vite-plugin-cedar-node-polyfills.js");
79
+ var import_vite_plugin_cedar_remove_dev_fatal_error_page2 = require("./plugins/vite-plugin-cedar-remove-dev-fatal-error-page.js");
80
+ var import_vite_plugin_cedar_routes_auto_loader2 = require("./plugins/vite-plugin-cedar-routes-auto-loader.js");
81
+ var import_vite_plugin_cedar_remove_from_bundle2 = require("./plugins/vite-plugin-cedar-remove-from-bundle.js");
82
+ var import_vite_plugin_cedarjs_resolve_cedar_style_imports2 = require("./plugins/vite-plugin-cedarjs-resolve-cedar-style-imports.js");
83
+ var import_vite_plugin_cedarjs_job_path_injector = require("./plugins/vite-plugin-cedarjs-job-path-injector.js");
84
+ var import_vite_plugin_jsx_loader2 = require("./plugins/vite-plugin-jsx-loader.js");
85
+ var import_vite_plugin_merged_config2 = require("./plugins/vite-plugin-merged-config.js");
86
+ var import_vite_plugin_swap_apollo_provider2 = require("./plugins/vite-plugin-swap-apollo-provider.js");
87
+ var import_vite_plugin_cedar_universal_deploy = require("./plugins/vite-plugin-cedar-universal-deploy.js");
88
+ var import_vite_plugin_cedar_wait_for_api_server2 = require("./plugins/vite-plugin-cedar-wait-for-api-server.js");
89
+ function cedar({ mode } = {}) {
90
+ const cedarConfig = (0, import_project_config.getConfig)();
91
+ const rscEnabled = cedarConfig.experimental?.rsc?.enabled;
92
+ const webSideDefaultBabelConfig = (0, import_babel_config.getWebSideDefaultBabelConfig)({
93
+ forVite: true
94
+ });
95
+ const babelConfig = {
96
+ ...webSideDefaultBabelConfig
97
+ };
98
+ return [
99
+ mode === "test" && (0, import_vitest.cedarJsRouterImportTransformPlugin)(),
100
+ mode === "test" && (0, import_vitest.createAuthImportTransformPlugin)(),
101
+ mode === "test" && (0, import_vitest.autoImportsPlugin)(),
102
+ (0, import_vite_plugin_cedar_wait_for_api_server.cedarWaitForApiServer)(),
103
+ (0, import_vite_plugin_cedar_node_polyfills.cedarNodePolyfills)(),
104
+ (0, import_vite_plugin_cedar_html_env.cedarHtmlEnvPlugin)(),
105
+ (0, import_vite_plugin_cedar_entry_injection.cedarEntryInjectionPlugin)(),
106
+ (0, import_vite_plugin_merged_config.cedarMergedConfig)(),
107
+ (0, import_vite_plugin_cedarjs_resolve_cedar_style_imports.cedarjsResolveCedarStyleImportsPlugin)(),
108
+ (0, import_vite_plugin_swap_apollo_provider.cedarSwapApolloProvider)(),
109
+ (0, import_vite_plugin_cedar_cell.cedarCellTransform)(),
110
+ (0, import_vite_plugin_jsx_loader.cedarTransformJsAsJsx)(),
111
+ (0, import_vite_plugin_cedar_remove_from_bundle.cedarRemoveFromBundle)(),
112
+ (0, import_vite_plugin_cedar_remove_dev_fatal_error_page.cedarRemoveDevFatalErrorPage)(),
113
+ // RSC handles route auto-loading differently in each build stage
114
+ !rscEnabled && (0, import_vite_plugin_cedar_routes_auto_loader.cedarRoutesAutoLoaderPlugin)(),
115
+ (0, import_plugin_react.default)({ babel: babelConfig })
116
+ ];
117
+ }
118
+ var index_default = cedar;
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ applyContextWrapping,
122
+ cedar,
123
+ cedarAutoImportsPlugin,
124
+ cedarCellTransform,
125
+ cedarCjsCompatPlugin,
126
+ cedarContextWrappingPlugin,
127
+ cedarEntryInjectionPlugin,
128
+ cedarHtmlEnvPlugin,
129
+ cedarImportDirPlugin,
130
+ cedarMergedConfig,
131
+ cedarNodePolyfills,
132
+ cedarRemoveDevFatalErrorPage,
133
+ cedarRemoveFromBundle,
134
+ cedarRoutesAutoLoaderPlugin,
135
+ cedarSwapApolloProvider,
136
+ cedarTransformJsAsJsx,
137
+ cedarUniversalDeployPlugin,
138
+ cedarWaitForApiServer,
139
+ cedarjsJobPathInjectorPlugin,
140
+ cedarjsResolveCedarStyleImportsPlugin
141
+ });
@@ -0,0 +1,37 @@
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 StatusError_exports = {};
20
+ __export(StatusError_exports, {
21
+ StatusError: () => StatusError,
22
+ hasStatusCode: () => hasStatusCode
23
+ });
24
+ module.exports = __toCommonJS(StatusError_exports);
25
+ class StatusError extends Error {
26
+ constructor(message, statusCode) {
27
+ super(message);
28
+ this.statusCode = statusCode;
29
+ }
30
+ statusCode;
31
+ }
32
+ const hasStatusCode = (x) => typeof x?.statusCode === "number";
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ StatusError,
36
+ hasStatusCode
37
+ });