@react-email/preview-server 4.2.3 → 4.2.5

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 (33) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +4 -4
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_not-found/page.js +1 -1
  6. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/page.js +1 -1
  9. package/.next/server/app/page.js.nft.json +1 -1
  10. package/.next/server/app/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/preview/[...slug]/page.js +15 -15
  12. package/.next/server/app/preview/[...slug]/page.js.nft.json +1 -1
  13. package/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +1 -1
  14. package/.next/server/chunks/12.js +1 -1
  15. package/.next/server/chunks/894.js +1 -0
  16. package/.next/server/pages/500.html +1 -1
  17. package/.next/server/server-reference-manifest.js +1 -1
  18. package/.next/server/server-reference-manifest.json +1 -1
  19. package/.next/static/chunks/{713-038a282f97bb997a.js → 713-505889a7a160009b.js} +1 -1
  20. package/.next/static/chunks/app/layout-c150aaa970ce097a.js +1 -0
  21. package/.next/static/chunks/app/preview/[...slug]/{page-79206063c626c2d2.js → page-7ecc2002daee7da3.js} +1 -1
  22. package/.next/trace +28 -28
  23. package/CHANGELOG.md +8 -0
  24. package/emails/.gitkeep +0 -0
  25. package/jsx-runtime/jsx-dev-runtime.js +1 -1
  26. package/package.json +2 -2
  27. package/scripts/dev.mts +9 -0
  28. package/scripts/seed.mts +10 -2
  29. package/src/utils/create-jsx-runtime.ts +10 -0
  30. package/.next/server/chunks/255.js +0 -1
  31. package/.next/static/chunks/app/layout-8eec0b732af76dc4.js +0 -1
  32. /package/.next/static/{3gXyVkpVHFQYjFGCPJM-h → Nnvq__KH7K-JssDF-_qWF}/_buildManifest.js +0 -0
  33. /package/.next/static/{3gXyVkpVHFQYjFGCPJM-h → Nnvq__KH7K-JssDF-_qWF}/_ssgManifest.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @react-email/preview-server
2
2
 
3
+ ## 4.2.5
4
+
5
+ ## 4.2.4
6
+
7
+ ### Patch Changes
8
+
9
+ - 57b8bb8: fix custom JSX runtime trying to be run as ESM on ESM projects
10
+
3
11
  ## 4.2.3
4
12
 
5
13
  ## 4.2.2
File without changes
@@ -1,7 +1,7 @@
1
1
  // This hack is necessary because React forces the use of the non-dev JSX runtime
2
2
  // when NODE_ENV is set to 'production', which would break the data-source references
3
3
  // we need for stack traces in the preview server.
4
- const ReactJSXDevRuntime = require('react/jsx-dev-runtime');
4
+ import ReactJSXDevRuntime from 'react/jsx-dev-runtime';
5
5
 
6
6
  export function jsxDEV(type, props, key, isStaticChildren, source, self) {
7
7
  const newProps = { ...props };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-email/preview-server",
3
- "version": "4.2.3",
3
+ "version": "4.2.5",
4
4
  "description": "A live preview of your emails right in your browser.",
5
5
  "main": "./index.mjs",
6
6
  "dependencies": {
@@ -61,7 +61,7 @@
61
61
  "postcss": "8.5.3",
62
62
  "tailwindcss": "3.4.0",
63
63
  "typescript": "5.8.3",
64
- "@react-email/components": "0.3.1"
64
+ "@react-email/components": "0.3.2"
65
65
  },
66
66
  "license": "MIT",
67
67
  "repository": {
package/scripts/dev.mts CHANGED
@@ -1,7 +1,16 @@
1
1
  import child_process from 'node:child_process';
2
2
  import { promises as fs } from 'node:fs';
3
+ import os from 'node:os';
3
4
  import path from 'node:path';
4
5
  import url from 'node:url';
6
+ import logSymbols from 'log-symbols';
7
+
8
+ console.info(
9
+ ' ',
10
+ logSymbols.warning,
11
+ 'This is only running the development server for the UI, this does not run the CLI part of the preview server.',
12
+ os.EOL,
13
+ );
5
14
 
6
15
  const filename = url.fileURLToPath(import.meta.url);
7
16
  const dirname = path.dirname(filename);
package/scripts/seed.mts CHANGED
@@ -11,8 +11,16 @@ const emailsDirectoryPath = path.join(previewServerRoot, 'emails');
11
11
  const seedPath = path.join(dirname, './utils/default-seed/');
12
12
 
13
13
  if (existsSync(emailsDirectoryPath)) {
14
- console.info('Deleting previous emails directory');
15
- await fs.rm(emailsDirectoryPath, { recursive: true, force: true });
14
+ console.info(
15
+ 'Deleting all files inside the emails directory (except for .gitkeep)',
16
+ );
17
+ const files = await fs.readdir(emailsDirectoryPath);
18
+ for await (const file of files) {
19
+ if (file === '.gitkeep') {
20
+ continue;
21
+ }
22
+ await fs.rm(file, { recursive: true, force: true });
23
+ }
16
24
  }
17
25
 
18
26
  console.info('Copying over the defalt seed to the emails directory');
@@ -18,6 +18,16 @@ export const createJsxRuntime = async (
18
18
  'node_modules',
19
19
  '.react-email-jsx-runtime',
20
20
  );
21
+ if (!fs.existsSync(jsxRuntimePath)) {
22
+ await fs.promises.mkdir(jsxRuntimePath, {
23
+ recursive: true,
24
+ });
25
+ await fs.promises.writeFile(
26
+ path.join(jsxRuntimePath, 'package.json'),
27
+ '{"type": "commonjs"}',
28
+ 'utf8',
29
+ );
30
+ }
21
31
  await esbuild.build({
22
32
  bundle: true,
23
33
  outfile: path.join(jsxRuntimePath, 'jsx-dev-runtime.js'),
@@ -1 +0,0 @@
1
- exports.id=255,exports.ids=[255],exports.modules={1629:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"7fb37c42a667a5aa2e843e684c114eeb0493eef3f2":()=>l});var d=c(24901);c(47185);var e=c(73024),f=c.n(e),g=c(76760),h=c.n(g);let i=async a=>{let b;try{b=await f().promises.open(a,"r")}catch(a){return console.warn(a),!1}if((await b.stat()).isDirectory())return await b.close(),!1;let{ext:c}=h().parse(a);if(![".js",".tsx",".jsx"].includes(c))return await b.close(),!1;let d=await b.readFile("utf8");await b.close();let e=/\bexport\s+default\b/gm.test(d),g=/\bmodule\.exports\s*=/gm.test(d),i=/\bexport\s+\{[^}]*\bdefault\b[^}]*\}/gm.test(d);return e||g||i},j=async(a,b=!1,c=!1,d=a)=>{if(!f().existsSync(a))return;let e=await f().promises.readdir(a,{withFileTypes:!0}),g=await Promise.all(e.map(b=>i(h().join(a,b.name)))),k=e.filter((a,b)=>g[b]).map(a=>b?a.name:a.name.replace(h().extname(a.name),"")),l=await Promise.all(e.filter(a=>a.isDirectory()&&!a.name.startsWith("_")&&"static"!==a.name).map(c=>j(h().join(a,c.name),b,!0,d))),m={absolutePath:a,relativePath:h().relative(d,a),directoryName:a.split(h().sep).pop(),emailFilenames:k,subDirectories:l};return c?(a=>{let b=a;for(;0===b.emailFilenames.length&&1===b.subDirectories.length;){let a=b.subDirectories[0];b={...a,directoryName:h().join(b.directoryName,a.directoryName)}}return b})(m):m};var k=c(86153);let l=async(a,b=!1,c=!1,d=a)=>j(a,b,c,d);(0,k.D)([l]),(0,d.A)(l,"7fb37c42a667a5aa2e843e684c114eeb0493eef3f2",null)},19233:()=>{},26376:(a,b,c)=>{Promise.resolve().then(c.bind(c,63559))},26778:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(51956);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},37261:(a,b,c)=>{"use strict";c.d(b,{EmailsProvider:()=>e});var d=c(65863);(0,d.registerClientReference)(function(){throw Error("Attempted to call useEmails() from the server but useEmails is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/actions-runner/_work/react-email/react-email/packages/preview-server/src/contexts/emails.tsx","useEmails");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call EmailsProvider() from the server but EmailsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/actions-runner/_work/react-email/react-email/packages/preview-server/src/contexts/emails.tsx","EmailsProvider")},39528:(a,b,c)=>{Promise.resolve().then(c.bind(c,37261))},42192:(a,b,c)=>{"use strict";c.d(b,{Hf:()=>g,Z8:()=>f,m4:()=>h,n_:()=>e,w5:()=>d}),process.env.EMAILS_DIR_RELATIVE_PATH;let d=process.env.USER_PROJECT_LOCATION,e=process.env.PREVIEW_SERVER_LOCATION,f=process.env.EMAILS_DIR_ABSOLUTE_PATH,g="true"===process.env.NEXT_PUBLIC_IS_BUILDING,h="true"===process.env.NEXT_PUBLIC_IS_PREVIEW_DEVELOPMENT},44713:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,99141,23)),Promise.resolve().then(c.t.bind(c,26812,23)),Promise.resolve().then(c.t.bind(c,3378,23)),Promise.resolve().then(c.t.bind(c,21381,23)),Promise.resolve().then(c.t.bind(c,54209,23)),Promise.resolve().then(c.t.bind(c,39801,23)),Promise.resolve().then(c.t.bind(c,72241,23)),Promise.resolve().then(c.t.bind(c,17443,23)),Promise.resolve().then(c.bind(c,8897))},46263:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,dynamic:()=>m,metadata:()=>l});var d=c(89815);c(19233);var e=c(37261),f=c(95455),g=c(42192),h=c(97964),i=c.n(h),j=c(94455),k=c.n(j);let l={title:"React Email"},m="force-dynamic",n=async({children:a})=>{let b=await (0,f.getEmailsDirectoryMetadata)(g.Z8);if(void 0===b)throw Error(`Could not find the emails directory specified under ${g.Z8}!`);return(0,d.jsx)("html",{className:`${i().variable} ${k().variable} font-sans`,lang:"en",children:(0,d.jsx)("body",{className:"relative h-screen bg-black text-slate-11 leading-loose selection:bg-cyan-5 selection:text-cyan-12",children:(0,d.jsx)("div",{className:"bg-gradient-to-t from-slate-3 flex flex-col",children:(0,d.jsx)(e.EmailsProvider,{initialEmailsDirectoryMetadata:b,children:a})})})})}},58366:(a,b,c)=>{"use strict";c.d(b,{Hf:()=>d,m4:()=>e}),process.env.EMAILS_DIR_RELATIVE_PATH,process.env.USER_PROJECT_LOCATION,process.env.PREVIEW_SERVER_LOCATION,process.env.EMAILS_DIR_ABSOLUTE_PATH;let d="true"===process.env.NEXT_PUBLIC_IS_BUILDING,e="true"===process.env.NEXT_PUBLIC_IS_PREVIEW_DEVELOPMENT},59833:(a,b,c)=>{"use strict";c.d(b,{a:()=>f});var d=c(68928),e=c(40745);let f=a=>{let b=(0,d.useRef)(null);(0,d.useEffect)(()=>{b.current||(b.current=(0,e.io)());let c=b.current;return c.on("reload",b=>{console.debug("Reloading..."),a(b)}),()=>{c.off()}},[a])}},63559:(a,b,c)=>{"use strict";c.d(b,{EmailsProvider:()=>l,J:()=>k});var d=c(92805),e=c(68928),f=c(23705);let g=(0,f.createServerReference)("7fb37c42a667a5aa2e843e684c114eeb0493eef3f2",f.callServer,void 0,f.findSourceMapURL,"getEmailsDirectoryMetadataAction");var h=c(58366),i=c(59833);let j=(0,e.createContext)(void 0),k=()=>{let a=(0,e.useContext)(j);if(void 0===a)throw Error("Cannot call `useEmail()` outside of an EmailsContext provider!");return a},l=a=>{let[b,c]=(0,e.useState)(a.initialEmailsDirectoryMetadata);return h.Hf||h.m4||(0,i.a)(async()=>{let b=await g(a.initialEmailsDirectoryMetadata.absolutePath);if(b)c(b);else throw Error("Hot reloading: unable to find the emails directory to update the sidebar")}),(0,d.jsx)(j.Provider,{value:{emailsDirectoryMetadata:b},children:a.children})}},72112:()=>{},79561:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,94955,23)),Promise.resolve().then(c.t.bind(c,93642,23)),Promise.resolve().then(c.t.bind(c,35500,23)),Promise.resolve().then(c.t.bind(c,29651,23)),Promise.resolve().then(c.t.bind(c,41699,23)),Promise.resolve().then(c.t.bind(c,44843,23)),Promise.resolve().then(c.t.bind(c,18779,23)),Promise.resolve().then(c.t.bind(c,71741,23)),Promise.resolve().then(c.t.bind(c,35059,23))},92665:()=>{},95455:(a,b,c)=>{"use strict";c.r(b),c.d(b,{getEmailsDirectoryMetadata:()=>i});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f);let h=async a=>{let b;try{b=await e().promises.open(a,"r")}catch(a){return console.warn(a),!1}if((await b.stat()).isDirectory())return await b.close(),!1;let{ext:c}=g().parse(a);if(![".js",".tsx",".jsx"].includes(c))return await b.close(),!1;let d=await b.readFile("utf8");await b.close();let f=/\bexport\s+default\b/gm.test(d),h=/\bmodule\.exports\s*=/gm.test(d),i=/\bexport\s+\{[^}]*\bdefault\b[^}]*\}/gm.test(d);return f||h||i},i=async(a,b=!1,c=!1,d=a)=>{if(!e().existsSync(a))return;let f=await e().promises.readdir(a,{withFileTypes:!0}),j=await Promise.all(f.map(b=>h(g().join(a,b.name)))),k=f.filter((a,b)=>j[b]).map(a=>b?a.name:a.name.replace(g().extname(a.name),"")),l=await Promise.all(f.filter(a=>a.isDirectory()&&!a.name.startsWith("_")&&"static"!==a.name).map(c=>i(g().join(a,c.name),b,!0,d))),m={absolutePath:a,relativePath:g().relative(d,a),directoryName:a.split(g().sep).pop(),emailFilenames:k,subDirectories:l};return c?(a=>{let b=a;for(;0===b.emailFilenames.length&&1===b.subDirectories.length;){let a=b.subDirectories[0];b={...a,directoryName:g().join(b.directoryName,a.directoryName)}}return b})(m):m}}};
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1713:(e,t,a)=>{"use strict";a.d(t,{a:()=>i});var r=a(4117),l=a(3249);let i=e=>{let t=(0,r.useRef)(null);(0,r.useEffect)(()=>{t.current||(t.current=(0,l.io)());let a=t.current;return a.on("reload",t=>{console.debug("Reloading..."),e(t)}),()=>{a.off()}},[e])}},2705:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_e8ce0c",variable:"__variable_e8ce0c"}},3344:(e,t,a)=>{"use strict";a.d(t,{Hf:()=>l,m4:()=>i});var r=a(6021);r.env.EMAILS_DIR_RELATIVE_PATH,r.env.USER_PROJECT_LOCATION,r.env.PREVIEW_SERVER_LOCATION,r.env.EMAILS_DIR_ABSOLUTE_PATH;let l="true"===r.env.NEXT_PUBLIC_IS_BUILDING,i="true"===r.env.NEXT_PUBLIC_IS_PREVIEW_DEVELOPMENT},7329:()=>{},7696:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,7329,23)),Promise.resolve().then(a.t.bind(a,2705,23)),Promise.resolve().then(a.t.bind(a,9877,23)),Promise.resolve().then(a.bind(a,8172))},8172:(e,t,a)=>{"use strict";a.d(t,{EmailsProvider:()=>E,J:()=>_});var r=a(6094),l=a(4117),i=a(8909);let o=(0,i.createServerReference)("7fb37c42a667a5aa2e843e684c114eeb0493eef3f2",i.callServer,void 0,i.findSourceMapURL,"getEmailsDirectoryMetadataAction");var n=a(3344),s=a(1713);let c=(0,l.createContext)(void 0),_=()=>{let e=(0,l.useContext)(c);if(void 0===e)throw Error("Cannot call `useEmail()` outside of an EmailsContext provider!");return e},E=e=>{let[t,a]=(0,l.useState)(e.initialEmailsDirectoryMetadata);return n.Hf||n.m4||(0,s.a)(async()=>{let t=await o(e.initialEmailsDirectoryMetadata.absolutePath);if(t)a(t);else throw Error("Hot reloading: unable to find the emails directory to update the sidebar")}),(0,r.jsx)(c.Provider,{value:{emailsDirectoryMetadata:t},children:e.children})}},9877:e=>{e.exports={style:{fontFamily:"'sfMono', 'sfMono Fallback'"},className:"__className_a0e4c0",variable:"__variable_a0e4c0"}}},e=>{e.O(0,[117,637,59,692,358],()=>e(e.s=7696)),_N_E=e.O()}]);