@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,184 @@
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
+ default: () => redwoodPluginVite
32
+ });
33
+ module.exports = __toCommonJS(index_exports);
34
+ var import_fs = __toESM(require("fs"), 1);
35
+ var import_path = __toESM(require("path"), 1);
36
+ var import_plugin_react = __toESM(require("@vitejs/plugin-react"), 1);
37
+ var import_vite = require("vite");
38
+ var import_vite_plugin_node_polyfills = require("vite-plugin-node-polyfills");
39
+ var import_babel_config = require("@cedarjs/babel-config");
40
+ var import_project_config = require("@cedarjs/project-config");
41
+ var import_getMergedConfig = require("./lib/getMergedConfig.js");
42
+ var import_vite_plugin_jsx_loader = require("./plugins/vite-plugin-jsx-loader.js");
43
+ var import_vite_plugin_remove_from_bundle = require("./plugins/vite-plugin-remove-from-bundle.js");
44
+ var import_vite_plugin_swap_apollo_provider = require("./plugins/vite-plugin-swap-apollo-provider.js");
45
+ function redwoodPluginVite() {
46
+ const rwPaths = (0, import_project_config.getPaths)();
47
+ const rwConfig = (0, import_project_config.getConfig)();
48
+ const clientEntryPath = rwPaths.web.entryClient;
49
+ if (!clientEntryPath) {
50
+ throw new Error(
51
+ "Vite client entry point not found. Please check that your project has an entry.client.{jsx,tsx} file in the web/src directory."
52
+ );
53
+ }
54
+ const relativeEntryPath = import_path.default.relative(rwPaths.web.src, clientEntryPath);
55
+ const apiPackageJsonPath = import_path.default.join(rwPaths.api.base, "package.json");
56
+ const realtimeEnabled = import_fs.default.existsSync(apiPackageJsonPath) && import_fs.default.readFileSync(apiPackageJsonPath, "utf-8").includes("@cedarjs/realtime");
57
+ const streamingEnabled = rwConfig.experimental.streamingSsr.enabled;
58
+ const rscEnabled = rwConfig.experimental?.rsc?.enabled;
59
+ const webSideDefaultBabelConfig = (0, import_babel_config.getWebSideDefaultBabelConfig)();
60
+ const babelConfig = {
61
+ ...webSideDefaultBabelConfig,
62
+ // For RSC we don't want to include the routes auto-loader plugin as we
63
+ // handle that differently in each specific RSC build stage
64
+ overrides: rscEnabled ? webSideDefaultBabelConfig.overrides.filter((override) => {
65
+ return !override.plugins?.some((plugin) => {
66
+ return Array.isArray(plugin) && plugin[2] === "babel-plugin-redwood-routes-auto-loader";
67
+ });
68
+ }) : webSideDefaultBabelConfig.overrides
69
+ };
70
+ return [
71
+ // Only include the Buffer polyfill for non-rsc dev, for DevFatalErrorPage
72
+ // Including the polyfill plugin in any form in RSC breaks
73
+ !rscEnabled && {
74
+ ...(0, import_vite_plugin_node_polyfills.nodePolyfills)({
75
+ include: ["buffer"],
76
+ globals: {
77
+ Buffer: true
78
+ }
79
+ }),
80
+ apply: "serve"
81
+ },
82
+ {
83
+ name: "redwood-plugin-vite-html-env",
84
+ // Vite can support replacing environment variables in index.html but
85
+ // there are currently two issues with that:
86
+ // 1. It requires the environment variables to be exposed on
87
+ // `import.meta.env`, but we expose them on `process.env` in Redwood.
88
+ // 2. There's an open issue on Vite where it adds extra quotes around
89
+ // the replaced values, which breaks trying to use environment
90
+ // variables in src attributes for example.
91
+ // Until those issues are resolved, we'll do the replacement ourselves
92
+ // instead using transformIndexHtml. Doing it this was was also the
93
+ // recommended way until Vite added built-in support for it.
94
+ //
95
+ // Extra quotes issue: https://github.com/vitejs/vite/issues/13424
96
+ // transformIndexHtml being the recommended way:
97
+ // https://github.com/vitejs/vite/issues/3105#issuecomment-1059975023
98
+ transformIndexHtml: {
99
+ // Setting order: 'pre' so that it runs before the built-in
100
+ // html env replacement.
101
+ order: "pre",
102
+ handler: (html) => {
103
+ let newHtml = html;
104
+ rwConfig.web.includeEnvironmentVariables.map((envName) => {
105
+ newHtml = newHtml.replaceAll(
106
+ `%${envName}%`,
107
+ process.env[envName] || ""
108
+ );
109
+ });
110
+ Object.entries(process.env).forEach(([envName, value]) => {
111
+ if (envName.startsWith("REDWOOD_ENV_")) {
112
+ newHtml = newHtml.replaceAll(`%${envName}%`, value || "");
113
+ }
114
+ });
115
+ return newHtml;
116
+ }
117
+ }
118
+ },
119
+ {
120
+ name: "redwood-plugin-vite",
121
+ // ---------- Bundle injection ----------
122
+ // Used by Vite during dev, to inject the entrypoint.
123
+ transformIndexHtml: {
124
+ order: "pre",
125
+ handler: (html) => {
126
+ if (import_fs.default.existsSync(clientEntryPath)) {
127
+ return html.replace(
128
+ "</head>",
129
+ // @NOTE the slash in front, for windows compatibility and for pages in subdirectories
130
+ `<script type="module" src="/${relativeEntryPath}"></script>
131
+ </head>`
132
+ );
133
+ } else {
134
+ return html;
135
+ }
136
+ }
137
+ },
138
+ // Used by rollup during build to inject the entrypoint
139
+ // but note index.html does not come through as an id during dev
140
+ transform: (code, id) => {
141
+ if (import_fs.default.existsSync(clientEntryPath) && (0, import_vite.normalizePath)(id) === (0, import_vite.normalizePath)(rwPaths.web.html)) {
142
+ return {
143
+ code: code.replace(
144
+ "</head>",
145
+ `<script type="module" src="/${relativeEntryPath}"></script>
146
+ </head>`
147
+ ),
148
+ map: null
149
+ };
150
+ } else {
151
+ return {
152
+ code,
153
+ map: null
154
+ // Returning null here preserves the original sourcemap
155
+ };
156
+ }
157
+ },
158
+ // ---------- End Bundle injection ----------
159
+ // @MARK: Using the config hook here let's us modify the config
160
+ // but returning plugins will **not** work
161
+ config: (0, import_getMergedConfig.getMergedConfig)(rwConfig, rwPaths)
162
+ },
163
+ // We can remove when streaming is stable
164
+ streamingEnabled && (0, import_vite_plugin_swap_apollo_provider.swapApolloProvider)(),
165
+ (0, import_vite_plugin_jsx_loader.handleJsAsJsx)(),
166
+ // Remove the splash-page from the bundle.
167
+ (0, import_vite_plugin_remove_from_bundle.removeFromBundle)(
168
+ [
169
+ {
170
+ id: /@cedarjs\/router\/dist\/splash-page/
171
+ }
172
+ ],
173
+ ["SplashPage"]
174
+ ),
175
+ !realtimeEnabled && (0, import_vite_plugin_remove_from_bundle.removeFromBundle)([
176
+ {
177
+ id: /@cedarjs\/web\/dist\/apollo\/sseLink/
178
+ }
179
+ ]),
180
+ (0, import_plugin_react.default)({
181
+ babel: babelConfig
182
+ })
183
+ ];
184
+ }
@@ -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 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
+ }
31
+ const hasStatusCode = (x) => typeof x?.statusCode === "number";
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ StatusError,
35
+ hasStatusCode
36
+ });
@@ -0,0 +1,53 @@
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 entries_exports = {};
20
+ __export(entries_exports, {
21
+ getEntries: () => getEntries,
22
+ getEntriesFromDist: () => getEntriesFromDist
23
+ });
24
+ module.exports = __toCommonJS(entries_exports);
25
+ var import_project_config = require("@cedarjs/project-config");
26
+ var import_dist = require("@cedarjs/structure/dist/index.js");
27
+ var import_utils = require("../utils.js");
28
+ function getEntries() {
29
+ const entries = {};
30
+ const rwProject = (0, import_dist.getProject)((0, import_project_config.getPaths)().base);
31
+ const routes = rwProject.getRouter().routes;
32
+ const pages = routes.map((route) => route.page);
33
+ for (const page of pages) {
34
+ entries[page.constName] = (0, import_project_config.ensurePosixPath)((0, import_project_config.importStatementPath)(page.path));
35
+ }
36
+ const serverEntry = (0, import_project_config.getPaths)().web.entryServer;
37
+ if (!serverEntry) {
38
+ throw new Error("Server Entry file not found");
39
+ }
40
+ entries["__rwjs__ServerEntry"] = serverEntry;
41
+ entries["__rwjs__Routes"] = (0, import_project_config.getPaths)().web.routes;
42
+ return entries;
43
+ }
44
+ async function getEntriesFromDist() {
45
+ const entriesDist = (0, import_project_config.getPaths)().web.distRscEntries;
46
+ const { serverEntries } = await import((0, import_utils.makeFilePath)(entriesDist));
47
+ return serverEntries;
48
+ }
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ getEntries,
52
+ getEntriesFromDist
53
+ });
@@ -0,0 +1,87 @@
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 envVarDefinitions_exports = {};
30
+ __export(envVarDefinitions_exports, {
31
+ getEnvVarDefinitions: () => getEnvVarDefinitions
32
+ });
33
+ module.exports = __toCommonJS(envVarDefinitions_exports);
34
+ var import_node_path = __toESM(require("node:path"), 1);
35
+ var import_project_config = require("@cedarjs/project-config");
36
+ function getEnvVarDefinitions() {
37
+ const rwConfig = (0, import_project_config.getConfig)();
38
+ const rwPaths = (0, import_project_config.getPaths)();
39
+ return {
40
+ RWJS_ENV: {
41
+ RWJS_API_GRAPHQL_URL: rwConfig.web.apiGraphQLUrl ?? rwConfig.web.apiUrl + "/graphql",
42
+ RWJS_API_URL: rwConfig.web.apiUrl,
43
+ __REDWOOD__APP_TITLE: rwConfig.web.title || import_node_path.default.basename(rwPaths.base),
44
+ RWJS_EXP_STREAMING_SSR: rwConfig.experimental.streamingSsr?.enabled,
45
+ RWJS_EXP_RSC: rwConfig.experimental?.rsc?.enabled
46
+ },
47
+ RWJS_DEBUG_ENV: {
48
+ RWJS_SRC_ROOT: rwPaths.web.src,
49
+ REDWOOD_ENV_EDITOR: JSON.stringify(process.env.REDWOOD_ENV_EDITOR)
50
+ },
51
+ // Vite can automatically expose environment variables, but we
52
+ // disable that in `buildFeServer.ts` by setting `envFile: false`
53
+ // because we want to use our own logic for loading .env,
54
+ // .env.defaults, etc
55
+ // The two object spreads below will expose all environment
56
+ // variables listed in redwood.toml and all environment variables
57
+ // prefixed with REDWOOD_ENV_
58
+ ...Object.fromEntries(
59
+ rwConfig.web.includeEnvironmentVariables.flatMap((envName) => [
60
+ // TODO: Figure out if/why we need to disable eslint here, when we
61
+ // didn't have to before, when this code was in index.ts
62
+ // Re-enable if possible
63
+ // eslint-disable-next-line
64
+ [`import.meta.env.${envName}`, JSON.stringify(process.env[envName])],
65
+ // TODO: Figure out if/why we need to disable eslint here, when we
66
+ // didn't have to before, when this code was in index.ts
67
+ // Re-enable if possible
68
+ // eslint-disable-next-line
69
+ [`process.env.${envName}`, JSON.stringify(process.env[envName])]
70
+ ])
71
+ ),
72
+ ...Object.entries(process.env).reduce(
73
+ (acc, [key, value]) => {
74
+ if (key.startsWith("REDWOOD_ENV_")) {
75
+ acc[`import.meta.env.${key}`] = JSON.stringify(value);
76
+ acc[`process.env.${key}`] = JSON.stringify(value);
77
+ }
78
+ return acc;
79
+ },
80
+ {}
81
+ )
82
+ };
83
+ }
84
+ // Annotate the CommonJS export names for ESM import in node:
85
+ 0 && (module.exports = {
86
+ getEnvVarDefinitions
87
+ });
@@ -0,0 +1,187 @@
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 getMergedConfig_exports = {};
30
+ __export(getMergedConfig_exports, {
31
+ getMergedConfig: () => getMergedConfig
32
+ });
33
+ module.exports = __toCommonJS(getMergedConfig_exports);
34
+ var import_node_path = __toESM(require("node:path"), 1);
35
+ var import_vite = require("vite");
36
+ var import_project_config = require("@cedarjs/project-config");
37
+ var import_envVarDefinitions = require("./envVarDefinitions.js");
38
+ function getMergedConfig(rwConfig, rwPaths) {
39
+ return (userConfig, env) => {
40
+ let apiHost = process.env.REDWOOD_API_HOST;
41
+ apiHost ??= rwConfig.api.host;
42
+ apiHost ??= process.env.NODE_ENV === "production" ? "0.0.0.0" : "[::]";
43
+ const streamingSsrEnabled = rwConfig.experimental.streamingSsr?.enabled;
44
+ const rscEnabled = rwConfig.experimental.rsc?.enabled;
45
+ let apiPort;
46
+ if (process.env.REDWOOD_API_PORT) {
47
+ apiPort = parseInt(process.env.REDWOOD_API_PORT);
48
+ } else {
49
+ apiPort = rwConfig.api.port;
50
+ }
51
+ const defaultRwViteConfig = {
52
+ root: rwPaths.web.src,
53
+ // @MARK: when we have these aliases, the warnings from the FE server go
54
+ // away BUT, if you have imports like this:
55
+ // ```
56
+ // import RandomNumberServerCell from
57
+ // 'src/components/RandomNumberServerCell/RandomNumberServerCell'
58
+ // ```
59
+ // they start failing (can't have the double
60
+ // `/RandomNumberServerCell/RandomNumberServerCell` at the end)
61
+ //
62
+ // resolve: {
63
+ // alias: [
64
+ // {
65
+ // find: 'src',
66
+ // replacement: rwPaths.web.src,
67
+ // },
68
+ // ],
69
+ // },
70
+ envPrefix: "REDWOOD_ENV_",
71
+ publicDir: import_node_path.default.join(rwPaths.web.base, "public"),
72
+ define: (0, import_envVarDefinitions.getEnvVarDefinitions)(),
73
+ css: {
74
+ // @NOTE config path is relative to where vite.config.js is if you use
75
+ // a relative path
76
+ postcss: rwPaths.web.config
77
+ },
78
+ server: {
79
+ open: rwConfig.browser.open,
80
+ port: rwConfig.web.port,
81
+ host: true,
82
+ // Listen to all hosts
83
+ proxy: {
84
+ [rwConfig.web.apiUrl]: {
85
+ target: `http://${apiHost}:${apiPort}`,
86
+ changeOrigin: false,
87
+ // Remove the `.redwood/functions` part, but leave the `/graphql`
88
+ rewrite: (path2) => path2.replace(rwConfig.web.apiUrl, ""),
89
+ configure: (proxy) => {
90
+ let waitingForApiServer = true;
91
+ setTimeout(() => {
92
+ waitingForApiServer = false;
93
+ }, 2500);
94
+ proxy.on("error", (err, _req, res) => {
95
+ if (waitingForApiServer && err.message.includes("ECONNREFUSED")) {
96
+ err.stack = "\u231B API Server launching, please refresh your page...";
97
+ }
98
+ const msg = {
99
+ errors: [
100
+ {
101
+ message: "The RedwoodJS API server is not available or is currently reloading. Please refresh."
102
+ }
103
+ ]
104
+ };
105
+ res.writeHead(203, {
106
+ "Content-Type": "application/json",
107
+ "Cache-Control": "no-cache"
108
+ });
109
+ res.write(JSON.stringify(msg));
110
+ res.end();
111
+ });
112
+ }
113
+ }
114
+ }
115
+ },
116
+ build: {
117
+ // TODO (RSC): Remove `minify: false` when we don't need to debug as often
118
+ minify: false,
119
+ // NOTE this gets overridden when build gets called anyway!
120
+ outDir: streamingSsrEnabled || rscEnabled ? rwPaths.web.distBrowser : rwPaths.web.dist,
121
+ emptyOutDir: true,
122
+ manifest: !env.isSsrBuild ? "client-build-manifest.json" : void 0,
123
+ // Note that sourcemap can be boolean or 'inline'
124
+ sourcemap: !env.isSsrBuild && rwConfig.web.sourceMap,
125
+ rollupOptions: {
126
+ input: getRollupInput(!!env.isSsrBuild)
127
+ }
128
+ },
129
+ // @MARK: do not set buildSsrCjsExternalHeuristics here
130
+ // because rsc builds want false, client and server build wants true
131
+ optimizeDeps: {
132
+ esbuildOptions: {
133
+ // @MARK this is because JS projects in Redwood don't have .jsx
134
+ // extensions
135
+ loader: {
136
+ ".js": "jsx"
137
+ },
138
+ // Node.js global to browser globalThis
139
+ // @MARK unsure why we need this, but required for DevFatalErrorPage
140
+ // at least
141
+ define: {
142
+ global: "globalThis"
143
+ }
144
+ }
145
+ }
146
+ };
147
+ return (0, import_vite.mergeConfig)(defaultRwViteConfig, userConfig);
148
+ };
149
+ }
150
+ function getRollupInput(ssr) {
151
+ const rwConfig = (0, import_project_config.getConfig)();
152
+ const rwPaths = (0, import_project_config.getPaths)();
153
+ if (!rwPaths.web.entryClient) {
154
+ throw new Error("entryClient not defined");
155
+ }
156
+ const streamingEnabled = rwConfig.experimental?.streamingSsr?.enabled;
157
+ const rscEnabled = rwConfig.experimental?.rsc?.enabled;
158
+ if (streamingEnabled) {
159
+ if (ssr) {
160
+ if (!rwPaths.web.entryServer) {
161
+ throw new Error("entryServer not defined");
162
+ }
163
+ if (rscEnabled) {
164
+ return {
165
+ Document: rwPaths.web.document,
166
+ "entry.server": rwPaths.web.entryServer
167
+ };
168
+ }
169
+ return {
170
+ // NOTE: We're building the server entry *without* the react-server
171
+ // condition when we include it here. This works when only SSR is
172
+ // enabled, but not when RSC + SSR are both enabled
173
+ // For RSC we have this configured in rscBuildForServer.ts to get a
174
+ // build with the proper resolution conditions set.
175
+ "entry.server": rwPaths.web.entryServer,
176
+ // We need the document for React's fallback
177
+ Document: rwPaths.web.document
178
+ };
179
+ }
180
+ return rwPaths.web.entryClient;
181
+ }
182
+ return rwPaths.web.html;
183
+ }
184
+ // Annotate the CommonJS export names for ESM import in node:
185
+ 0 && (module.exports = {
186
+ getMergedConfig
187
+ });
@@ -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 onWarn_exports = {};
20
+ __export(onWarn_exports, {
21
+ onWarn: () => onWarn
22
+ });
23
+ module.exports = __toCommonJS(onWarn_exports);
24
+ function onWarn(warning, defaultHandler) {
25
+ const fileName = warning.loc?.file;
26
+ if (warning.code === "MODULE_LEVEL_DIRECTIVE" && /"use (client|server)"/.test(warning.message)) {
27
+ return;
28
+ } else if (warning.code === "SOURCEMAP_ERROR" && (fileName?.endsWith(".tsx") || fileName?.endsWith(".ts")) && warning.loc?.column === 0 && warning.loc?.line === 1) {
29
+ return;
30
+ }
31
+ defaultHandler(warning);
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ onWarn
36
+ });