@cedarjs/prerender 7.0.0-canary.3259 → 7.0.0-rc.127

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 (72) hide show
  1. package/dist/babelPlugins/babel-plugin-redwood-cell.d.ts +5 -0
  2. package/dist/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
  3. package/dist/babelPlugins/babel-plugin-redwood-cell.js +98 -0
  4. package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts +5 -0
  5. package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts.map +1 -0
  6. package/dist/babelPlugins/babel-plugin-redwood-prerender-media-imports.js +77 -0
  7. package/dist/babelPlugins/utils.d.ts +2 -0
  8. package/dist/babelPlugins/utils.d.ts.map +1 -0
  9. package/dist/babelPlugins/utils.js +15 -0
  10. package/dist/browserUtils/index.d.ts +1 -1
  11. package/dist/browserUtils/index.d.ts.map +1 -1
  12. package/dist/build-and-import/buildAndImport.d.ts +1 -1
  13. package/dist/build-and-import/buildAndImport.d.ts.map +1 -1
  14. package/dist/build-and-import/buildAndImport.js +9 -2
  15. package/dist/build-and-import/rollupPlugins/rollup-plugin-cedarjs-routes-auto-loader.d.ts.map +1 -1
  16. package/dist/cjs/apolloState.d.ts +13 -0
  17. package/dist/cjs/apolloState.d.ts.map +1 -0
  18. package/dist/cjs/apolloState.js +30 -0
  19. package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.d.ts +5 -0
  20. package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.d.ts.map +1 -0
  21. package/dist/cjs/babelPlugins/babel-plugin-redwood-cell.js +122 -0
  22. package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts +5 -0
  23. package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.d.ts.map +1 -0
  24. package/dist/cjs/babelPlugins/babel-plugin-redwood-prerender-media-imports.js +101 -0
  25. package/dist/cjs/babelPlugins/utils.d.ts +2 -0
  26. package/dist/cjs/babelPlugins/utils.d.ts.map +1 -0
  27. package/dist/cjs/babelPlugins/utils.js +49 -0
  28. package/dist/cjs/browserUtils/index.d.ts +8 -0
  29. package/dist/cjs/browserUtils/index.d.ts.map +1 -0
  30. package/dist/cjs/browserUtils/index.js +47 -0
  31. package/dist/cjs/build-and-import/buildAndImport.js +193 -0
  32. package/dist/cjs/build-and-import/load-tsconfig.d.js +1 -0
  33. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedar-remove-dev-fatal-error-page.js +53 -0
  34. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-cell.js +184 -0
  35. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-directory-named-imports.js +83 -0
  36. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-external.js +125 -0
  37. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-ignore-html-and-css-imports.js +48 -0
  38. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-inject-file-globals.js +66 -0
  39. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-prerender-media-imports.js +118 -0
  40. package/dist/cjs/build-and-import/rollupPlugins/rollup-plugin-cedarjs-routes-auto-loader.js +146 -0
  41. package/dist/cjs/build-and-import/rollupPlugins/utils.js +78 -0
  42. package/dist/cjs/build-and-import/utils.js +68 -0
  43. package/dist/cjs/detection/detection.d.ts +11 -0
  44. package/dist/cjs/detection/detection.d.ts.map +1 -0
  45. package/dist/cjs/detection/detection.js +46 -0
  46. package/dist/cjs/errors.d.ts +19 -0
  47. package/dist/cjs/errors.d.ts.map +1 -0
  48. package/dist/cjs/errors.js +52 -0
  49. package/dist/cjs/graphql/graphql.d.ts +19 -0
  50. package/dist/cjs/graphql/graphql.d.ts.map +1 -0
  51. package/dist/cjs/graphql/graphql.js +152 -0
  52. package/dist/cjs/graphql/node-runner.js +97 -0
  53. package/dist/cjs/graphql/vite-plugin-cedar-auto-import.js +107 -0
  54. package/dist/{index.d.ts.map → cjs/index.d.ts.map} +1 -1
  55. package/dist/cjs/index.js +22 -0
  56. package/dist/cjs/internal.d.ts +28 -0
  57. package/dist/cjs/internal.d.ts.map +1 -0
  58. package/dist/cjs/internal.js +135 -0
  59. package/dist/cjs/package.json +1 -0
  60. package/dist/cjs/runPrerender.d.ts.map +1 -0
  61. package/dist/cjs/runPrerender.js +311 -0
  62. package/dist/cjs/runPrerenderEsm.js +308 -0
  63. package/dist/graphql/graphql.d.ts +2 -17
  64. package/dist/graphql/graphql.d.ts.map +1 -1
  65. package/dist/runPrerenderEsm.d.ts +9 -0
  66. package/dist/runPrerenderEsm.d.ts.map +1 -0
  67. package/dist/{runPrerender.js → runPrerenderEsm.js} +56 -65
  68. package/package.json +51 -20
  69. package/dist/index.js +0 -1
  70. package/dist/runPrerender.d.ts.map +0 -1
  71. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  72. /package/dist/{runPrerender.d.ts → cjs/runPrerender.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import React from "react";
4
- import { ApolloClient, ApolloLink, InMemoryCache } from "@apollo/client";
4
+ import * as apolloClient from "@apollo/client";
5
5
  import { load as loadHtml } from "cheerio";
6
6
  import ReactDOMServer from "react-dom/server";
7
7
  import {
@@ -21,21 +21,9 @@ import {
21
21
  import { executeQuery, getGqlHandler } from "./graphql/graphql.js";
22
22
  import { NodeRunner } from "./graphql/node-runner.js";
23
23
  import { getRootHtmlPath, registerShims, writeToDist } from "./internal.js";
24
- const prerenderApolloClient = new ApolloClient({
25
- cache: new InMemoryCache(),
26
- link: ApolloLink.empty()
27
- });
28
- async function recursivelyRender(args) {
29
- const {
30
- App,
31
- Routes,
32
- CellCacheContextProvider,
33
- LocationProvider,
34
- renderPath,
35
- fileImporter,
36
- gqlHandler,
37
- queryCache
38
- } = args;
24
+ const { ApolloClient, InMemoryCache } = apolloClient.default;
25
+ const prerenderApolloClient = new ApolloClient({ cache: new InMemoryCache() });
26
+ async function recursivelyRender(App, Routes, CellCacheContextProvider, LocationProvider, renderPath, fileImporter, gqlHandler, queryCache) {
39
27
  const { getOperationName } = await import("@cedarjs/web");
40
28
  let shouldShowGraphqlHandlerNotFoundWarn = false;
41
29
  await Promise.all(
@@ -52,13 +40,13 @@ async function recursivelyRender(args) {
52
40
  );
53
41
  let result;
54
42
  try {
55
- result = JSON.parse(resultString ?? "");
43
+ result = JSON.parse(resultString);
56
44
  } catch (e) {
57
45
  if (e instanceof SyntaxError) {
58
46
  throw new JSONParseError({
59
47
  query: value.query,
60
48
  variables: value.variables,
61
- result: resultString ?? ""
49
+ result: resultString
62
50
  });
63
51
  }
64
52
  }
@@ -102,7 +90,16 @@ async function recursivelyRender(args) {
102
90
  /* @__PURE__ */ React.createElement(LocationProvider, { location: new URL(prerenderUrl) }, /* @__PURE__ */ React.createElement(CellCacheContextProvider, { queryCache }, /* @__PURE__ */ React.createElement(App, null, /* @__PURE__ */ React.createElement(Routes, null))))
103
91
  );
104
92
  if (Object.values(queryCache).some((value) => !value.hasProcessed)) {
105
- return recursivelyRender(args);
93
+ return recursivelyRender(
94
+ App,
95
+ Routes,
96
+ CellCacheContextProvider,
97
+ LocationProvider,
98
+ renderPath,
99
+ fileImporter,
100
+ gqlHandler,
101
+ queryCache
102
+ );
106
103
  } else {
107
104
  if (shouldShowGraphqlHandlerNotFoundWarn) {
108
105
  console.warn(
@@ -184,54 +181,48 @@ const runPrerender = async ({
184
181
  }) => {
185
182
  registerShims(renderPath);
186
183
  const nodeRunner = new NodeRunner();
187
- let componentAsHtml;
188
- try {
189
- const gqlHandler = await getGqlHandler(
190
- nodeRunner.importFile.bind(nodeRunner)
191
- );
192
- const prerenderDistPath = path.join(getPaths().web.dist, "__prerender");
193
- fs.mkdirSync(prerenderDistPath, { recursive: true });
194
- if (!renderCache.App) {
195
- const entryPath = await createCombinedEntry({
196
- appPath: getPaths().web.app,
197
- routesPath: getPaths().web.routes,
198
- outDir: prerenderDistPath
199
- });
200
- const required = await buildAndImport({
201
- filepath: entryPath,
202
- preserveTemporaryFile: true
203
- });
204
- renderCache.App = required.App;
205
- renderCache.Routes = required.Routes;
206
- renderCache.CellCacheContextProvider = required.CellCacheContextProvider;
207
- renderCache.LocationProvider = required.LocationProvider;
208
- }
209
- const { LocationProvider, App, Routes, CellCacheContextProvider } = renderCache;
210
- if (!App) {
211
- throw new Error("App not found");
212
- }
213
- if (!Routes) {
214
- throw new Error("Routes not found");
215
- }
216
- if (!CellCacheContextProvider) {
217
- throw new Error("CellCacheContextProvider not found");
218
- }
219
- if (!LocationProvider) {
220
- throw new Error("LocationProvider not found");
221
- }
222
- componentAsHtml = await recursivelyRender({
223
- App,
224
- Routes,
225
- CellCacheContextProvider,
226
- LocationProvider,
227
- renderPath,
228
- fileImporter: nodeRunner.importFile.bind(nodeRunner),
229
- gqlHandler,
230
- queryCache
184
+ const gqlHandler = await getGqlHandler(nodeRunner.importFile.bind(nodeRunner));
185
+ const prerenderDistPath = path.join(getPaths().web.dist, "__prerender");
186
+ fs.mkdirSync(prerenderDistPath, { recursive: true });
187
+ if (!renderCache.App) {
188
+ const entryPath = await createCombinedEntry({
189
+ appPath: getPaths().web.app,
190
+ routesPath: getPaths().web.routes,
191
+ outDir: prerenderDistPath
192
+ });
193
+ const required = await buildAndImport({
194
+ filepath: entryPath,
195
+ preserveTemporaryFile: true
231
196
  });
232
- } finally {
233
- await nodeRunner.close();
197
+ renderCache.App = required.App;
198
+ renderCache.Routes = required.Routes;
199
+ renderCache.CellCacheContextProvider = required.CellCacheContextProvider;
200
+ renderCache.LocationProvider = required.LocationProvider;
201
+ }
202
+ const { LocationProvider, App, Routes, CellCacheContextProvider } = renderCache;
203
+ if (!App) {
204
+ throw new Error("App not found");
205
+ }
206
+ if (!Routes) {
207
+ throw new Error("Routes not found");
234
208
  }
209
+ if (!CellCacheContextProvider) {
210
+ throw new Error("CellCacheContextProvider not found");
211
+ }
212
+ if (!LocationProvider) {
213
+ throw new Error("LocationProvider not found");
214
+ }
215
+ const componentAsHtml = await recursivelyRender(
216
+ App,
217
+ Routes,
218
+ CellCacheContextProvider,
219
+ LocationProvider,
220
+ renderPath,
221
+ nodeRunner.importFile.bind(nodeRunner),
222
+ gqlHandler,
223
+ queryCache
224
+ );
225
+ nodeRunner.close();
235
226
  const { helmet } = globalThis.__REDWOOD__HELMET_CONTEXT;
236
227
  Object.keys(queryCache).forEach((queryKey) => {
237
228
  const { query, variables, data } = queryCache[queryKey];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/prerender",
3
- "version": "7.0.0-canary.3259",
3
+ "version": "7.0.0-rc.127",
4
4
  "description": "CedarJS prerender",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,18 +11,46 @@
11
11
  "type": "module",
12
12
  "exports": {
13
13
  ".": {
14
- "types": "./dist/index.d.ts",
15
- "default": "./dist/index.js"
14
+ "import": {
15
+ "types": "./dist/runPrerenderEsm.d.ts",
16
+ "default": "./dist/runPrerenderEsm.js"
17
+ },
18
+ "require": {
19
+ "types": "./dist/cjs/runPrerender.d.ts",
20
+ "default": "./dist/cjs/runPrerender.js"
21
+ }
22
+ },
23
+ "./cjs": {
24
+ "types": "./dist/cjs/runPrerender.d.ts",
25
+ "default": "./dist/cjs/runPrerender.js"
16
26
  },
17
27
  "./browserUtils": {
18
- "types": "./dist/browserUtils/index.d.ts",
19
- "default": "./dist/browserUtils/index.js"
28
+ "import": {
29
+ "types": "./dist/browserUtils/index.d.ts",
30
+ "default": "./dist/browserUtils/index.js"
31
+ },
32
+ "require": {
33
+ "types": "./dist/cjs/browserUtils/index.d.ts",
34
+ "default": "./dist/cjs/browserUtils/index.js"
35
+ }
20
36
  },
21
37
  "./detection": {
22
- "types": "./dist/detection/detection.d.ts",
23
- "default": "./dist/detection/detection.js"
38
+ "import": {
39
+ "types": "./dist/detection/detection.d.ts",
40
+ "default": "./dist/detection/detection.js"
41
+ },
42
+ "require": {
43
+ "types": "./dist/cjs/detection/detection.d.ts",
44
+ "default": "./dist/cjs/detection/detection.js"
45
+ }
46
+ },
47
+ "./cjs/detection": {
48
+ "types": "./dist/cjs/detection/detection.d.ts",
49
+ "default": "./dist/cjs/detection/detection.js"
24
50
  }
25
51
  },
52
+ "main": "dist/cjs/index.js",
53
+ "types": "./dist/cjs/index.d.ts",
26
54
  "files": [
27
55
  "dist"
28
56
  ],
@@ -30,6 +58,7 @@
30
58
  "build": "node ./build.mts && yarn build:types",
31
59
  "build:pack": "yarn pack -o cedarjs-prerender.tgz",
32
60
  "build:types": "tsc --build --verbose ./tsconfig.build.json",
61
+ "build:types-cjs": "tsc --build --verbose ./tsconfig.cjs.json",
33
62
  "build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx,template\" --ignore dist --exec \"yarn build\"",
34
63
  "check:attw": "yarn cedar-fwtools-attw",
35
64
  "check:package": "concurrently npm:check:attw yarn:publint",
@@ -41,16 +70,17 @@
41
70
  "@babel/generator": "7.29.8",
42
71
  "@babel/parser": "7.29.9",
43
72
  "@babel/traverse": "7.29.8",
44
- "@babel/types": "7.29.8",
45
- "@cedarjs/project-config": "7.0.0-canary.3259",
46
- "@cedarjs/structure": "7.0.0-canary.3259",
47
- "@cedarjs/vite": "7.0.0-canary.3259",
73
+ "@cedarjs/babel-config": "7.0.0-rc.127",
74
+ "@cedarjs/project-config": "7.0.0-rc.127",
75
+ "@cedarjs/structure": "7.0.0-rc.127",
76
+ "@cedarjs/vite": "7.0.0-rc.127",
48
77
  "@rollup/plugin-alias": "5.1.1",
49
78
  "@rollup/plugin-commonjs": "28.0.9",
50
79
  "@rollup/plugin-node-resolve": "16.0.3",
51
80
  "@rollup/plugin-replace": "6.0.3",
52
81
  "@swc/core": "1.16.2",
53
- "@whatwg-node/fetch": "0.12.0",
82
+ "@whatwg-node/fetch": "0.10.13",
83
+ "babel-plugin-ignore-html-and-css-imports": "0.1.0",
54
84
  "cheerio": "1.2.0",
55
85
  "graphql": "16.14.2",
56
86
  "mime-types": "2.1.35",
@@ -61,21 +91,22 @@
61
91
  "vite": "7.3.6"
62
92
  },
63
93
  "devDependencies": {
64
- "@cedarjs/framework-tools": "7.0.0-canary.3259",
65
- "@cedarjs/router": "7.0.0-canary.3259",
66
- "@cedarjs/web": "7.0.0-canary.3259",
94
+ "@cedarjs/framework-tools": "7.0.0-rc.127",
95
+ "@cedarjs/router": "7.0.0-rc.127",
96
+ "@cedarjs/web": "7.0.0-rc.127",
67
97
  "@types/mime-types": "2.1.4",
68
- "@types/react": "^19.2.0",
98
+ "@types/react": "^18.2.55",
99
+ "babel-plugin-tester": "11.0.4",
69
100
  "concurrently": "9.2.4",
70
101
  "publint": "0.3.24",
71
102
  "typescript": "5.9.3",
72
103
  "vitest": "4.1.11"
73
104
  },
74
105
  "peerDependencies": {
75
- "@cedarjs/router": "7.0.0-canary.3259",
76
- "@cedarjs/web": "7.0.0-canary.3259",
77
- "react": "19.3.0",
78
- "react-dom": "19.3.0"
106
+ "@cedarjs/router": "7.0.0-rc.127",
107
+ "@cedarjs/web": "7.0.0-rc.127",
108
+ "react": "18.3.1",
109
+ "react-dom": "18.3.1"
79
110
  },
80
111
  "engines": {
81
112
  "node": ">=24"
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- export * from "./runPrerender.js";
@@ -1 +0,0 @@
1
- {"version":3,"file":"runPrerender.d.ts","sourceRoot":"","sources":["../src/runPrerender.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA8Q7C,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,YAAY,GAAU,6BAGhC,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAqIzC,CAAA;AAGD,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,SAAS,MAAM,SAchB,CAAA"}
File without changes