react-email 3.0.6 → 3.0.7-canary.0
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.
- package/CHANGELOG.md +7 -0
- package/dist/cli/index.js +761 -765
- package/dist/cli/index.mjs +473 -481
- package/dist/preview/.next/BUILD_ID +1 -1
- package/dist/preview/.next/app-build-manifest.json +6 -6
- package/dist/preview/.next/build-manifest.json +2 -2
- package/dist/preview/.next/cache/.rscinfo +1 -1
- package/dist/preview/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/preview/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/preview/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/preview/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/preview/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/preview/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/preview/.next/next-server.js.nft.json +1 -1
- package/dist/preview/.next/prerender-manifest.json +1 -1
- package/dist/preview/.next/server/app/_not-found/page.js +1 -1
- package/dist/preview/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/preview/.next/server/app/page.js +1 -1
- package/dist/preview/.next/server/app/page.js.nft.json +1 -1
- package/dist/preview/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/preview/.next/server/app/preview/[...slug]/page.js +6 -6
- package/dist/preview/.next/server/app/preview/[...slug]/page.js.nft.json +1 -1
- package/dist/preview/.next/server/app/preview/[...slug]/page_client-reference-manifest.js +1 -1
- package/dist/preview/.next/server/chunks/{391.js → 650.js} +1 -1
- package/dist/preview/.next/server/pages/500.html +1 -1
- package/dist/preview/.next/server/server-reference-manifest.js +1 -1
- package/dist/preview/.next/server/server-reference-manifest.json +1 -1
- package/dist/preview/.next/static/chunks/154-ca55c1fde27d0922.js +1 -0
- package/dist/preview/.next/static/chunks/app/{layout-a2901ed1c2c53661.js → layout-7b9224888c7ffd05.js} +1 -1
- package/dist/preview/.next/static/chunks/app/{page-54a86772095e22e0.js → page-36853df2e13e583f.js} +1 -1
- package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-48ce00470ce06446.js +1 -0
- package/dist/preview/.next/static/css/{eb0a93282704d7ab.css → a34876a6c565fff8.css} +1 -1
- package/dist/preview/.next/trace +21 -21
- package/package.json +4 -8
- package/postcss.config.js +1 -1
- package/src/actions/get-email-path-from-slug.ts +7 -4
- package/src/actions/render-email-by-path.tsx +3 -3
- package/src/app/layout.tsx +1 -1
- package/src/app/page.tsx +1 -1
- package/src/app/preview/[...slug]/page.tsx +2 -2
- package/src/app/preview/[...slug]/preview.tsx +2 -2
- package/src/components/button.tsx +1 -1
- package/src/components/code-container.tsx +1 -1
- package/src/components/heading.tsx +1 -1
- package/src/components/sidebar/sidebar-directory-children.tsx +5 -8
- package/src/components/sidebar/sidebar-directory.tsx +2 -2
- package/src/components/sidebar/sidebar.tsx +2 -2
- package/src/components/text.tsx +1 -1
- package/src/components/tooltip-content.tsx +1 -1
- package/src/components/tooltip.tsx +1 -1
- package/src/components/topbar.tsx +1 -1
- package/src/hooks/use-email-rendering-result.ts +2 -2
- package/src/utils/cn.ts +1 -1
- package/src/utils/esbuild/renderring-utilities-exporter.ts +1 -1
- package/src/utils/get-email-component.ts +6 -6
- package/src/utils/get-emails-directory-metadata.spec.ts +0 -1
- package/src/utils/improve-error-with-sourcemap.ts +1 -1
- package/src/utils/static-node-modules-for-vm.ts +6 -6
- package/tsconfig.json +1 -6
- package/.eslintrc.js +0 -52
- package/.prettierignore +0 -3
- package/.prettierrc.js +0 -8
- package/dist/preview/.next/cache/eslint/.cache_1c3sgg +0 -1
- package/dist/preview/.next/static/chunks/154-4202f86af36ccff4.js +0 -1
- package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-2bfad134b65ddd79.js +0 -1
- /package/dist/preview/.next/static/{Trk1e7GzgKOLunAXBDCy- → 3Ni4t_kYMdpL72HxSPHgK}/_buildManifest.js +0 -0
- /package/dist/preview/.next/static/{Trk1e7GzgKOLunAXBDCy- → 3Ni4t_kYMdpL72HxSPHgK}/_ssgManifest.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-email",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.7-canary.0",
|
|
4
4
|
"description": "A live preview of your emails right in your browser.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"email": "./dist/cli/index.js"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"chokidar": "4.0.3",
|
|
26
26
|
"commander": "11.1.0",
|
|
27
27
|
"debounce": "2.0.0",
|
|
28
|
-
"esbuild": "0.
|
|
28
|
+
"esbuild": "0.23.0",
|
|
29
29
|
"glob": "10.3.4",
|
|
30
30
|
"log-symbols": "4.1.0",
|
|
31
31
|
"mime-types": "2.1.35",
|
|
@@ -53,9 +53,6 @@
|
|
|
53
53
|
"@vercel/style-guide": "5.1.0",
|
|
54
54
|
"autoprefixer": "10.4.20",
|
|
55
55
|
"clsx": "2.1.0",
|
|
56
|
-
"eslint": "8.50.0",
|
|
57
|
-
"eslint-config-prettier": "9.0.0",
|
|
58
|
-
"eslint-config-turbo": "2.1.0",
|
|
59
56
|
"framer-motion": "12.0.0-alpha.2",
|
|
60
57
|
"postcss": "8.4.40",
|
|
61
58
|
"prism-react-renderer": "2.1.0",
|
|
@@ -72,14 +69,13 @@
|
|
|
72
69
|
"tsx": "4.9.0",
|
|
73
70
|
"typescript": "5.1.6",
|
|
74
71
|
"vitest": "1.1.3",
|
|
75
|
-
"@react-email/render": "1.0.
|
|
72
|
+
"@react-email/render": "1.0.5-canary.0"
|
|
76
73
|
},
|
|
77
74
|
"scripts": {
|
|
78
75
|
"build": "tsup-node && node build-preview-server.mjs",
|
|
79
76
|
"dev": "tsup-node --watch",
|
|
80
77
|
"test": "vitest run",
|
|
81
78
|
"test:watch": "vitest",
|
|
82
|
-
"clean": "rm -rf dist"
|
|
83
|
-
"lint": "eslint . && tsc"
|
|
79
|
+
"clean": "rm -rf dist"
|
|
84
80
|
}
|
|
85
81
|
}
|
package/postcss.config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use server';
|
|
2
|
-
import path from 'node:path';
|
|
3
2
|
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
4
|
import { cache } from 'react';
|
|
5
5
|
import { emailsDirectoryAbsolutePath } from '../utils/emails-directory-absolute-path';
|
|
6
6
|
|
|
@@ -13,11 +13,14 @@ export const getEmailPathFromSlug = cache(async (slug: string) => {
|
|
|
13
13
|
|
|
14
14
|
if (fs.existsSync(`${pathWithoutExtension}.tsx`)) {
|
|
15
15
|
return `${pathWithoutExtension}.tsx`;
|
|
16
|
-
}
|
|
16
|
+
}
|
|
17
|
+
if (fs.existsSync(`${pathWithoutExtension}.jsx`)) {
|
|
17
18
|
return `${pathWithoutExtension}.jsx`;
|
|
18
|
-
}
|
|
19
|
+
}
|
|
20
|
+
if (fs.existsSync(`${pathWithoutExtension}.ts`)) {
|
|
19
21
|
return `${pathWithoutExtension}.ts`;
|
|
20
|
-
}
|
|
22
|
+
}
|
|
23
|
+
if (fs.existsSync(`${pathWithoutExtension}.js`)) {
|
|
21
24
|
return `${pathWithoutExtension}.js`;
|
|
22
25
|
}
|
|
23
26
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use server';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import ora from 'ora';
|
|
5
|
-
import logSymbols from 'log-symbols';
|
|
6
4
|
import chalk from 'chalk';
|
|
5
|
+
import logSymbols from 'log-symbols';
|
|
6
|
+
import ora from 'ora';
|
|
7
7
|
import { getEmailComponent } from '../utils/get-email-component';
|
|
8
|
-
import type { ErrorObject } from '../utils/types/error-object';
|
|
9
8
|
import { improveErrorWithSourceMap } from '../utils/improve-error-with-sourcemap';
|
|
10
9
|
import { registerSpinnerAutostopping } from '../utils/register-spinner-autostopping';
|
|
10
|
+
import type { ErrorObject } from '../utils/types/error-object';
|
|
11
11
|
|
|
12
12
|
export interface RenderedEmailMetadata {
|
|
13
13
|
markup: string;
|
package/src/app/layout.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Metadata } from 'next';
|
|
2
2
|
import './globals.css';
|
|
3
|
-
import { emailsDirectoryAbsolutePath } from '../utils/emails-directory-absolute-path';
|
|
4
3
|
import { EmailsProvider } from '../contexts/emails';
|
|
4
|
+
import { emailsDirectoryAbsolutePath } from '../utils/emails-directory-absolute-path';
|
|
5
5
|
import { getEmailsDirectoryMetadata } from '../utils/get-emails-directory-metadata';
|
|
6
6
|
import { inter } from './inter';
|
|
7
7
|
|
package/src/app/page.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import Link from 'next/link';
|
|
3
2
|
import Image from 'next/image';
|
|
3
|
+
import Link from 'next/link';
|
|
4
4
|
import { Button, Heading, Text } from '../components';
|
|
5
5
|
import { Shell } from '../components/shell';
|
|
6
6
|
import { emailsDirectoryAbsolutePath } from '../utils/emails-directory-absolute-path';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import { Suspense } from 'react';
|
|
3
2
|
import { redirect } from 'next/navigation';
|
|
3
|
+
import { Suspense } from 'react';
|
|
4
4
|
import { getEmailPathFromSlug } from '../../../actions/get-email-path-from-slug';
|
|
5
5
|
import { renderEmailByPath } from '../../../actions/render-email-by-path';
|
|
6
6
|
import { emailsDirectoryAbsolutePath } from '../../../utils/emails-directory-absolute-path';
|
|
7
|
-
import Home from '../../page';
|
|
8
7
|
import { getEmailsDirectoryMetadata } from '../../../utils/get-emails-directory-metadata';
|
|
8
|
+
import Home from '../../page';
|
|
9
9
|
import Preview from './preview';
|
|
10
10
|
|
|
11
11
|
export const dynamicParams = true;
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import { usePathname, useRouter, useSearchParams } from 'next/navigation';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { Toaster } from 'sonner';
|
|
6
|
-
import { useHotreload } from '../../../hooks/use-hot-reload';
|
|
7
6
|
import type { EmailRenderingResult } from '../../../actions/render-email-by-path';
|
|
8
7
|
import { CodeContainer } from '../../../components/code-container';
|
|
9
8
|
import { Shell } from '../../../components/shell';
|
|
10
9
|
import { Tooltip } from '../../../components/tooltip';
|
|
11
|
-
import { useRenderingMetadata } from '../../../hooks/use-rendering-metadata';
|
|
12
10
|
import { useEmailRenderingResult } from '../../../hooks/use-email-rendering-result';
|
|
11
|
+
import { useHotreload } from '../../../hooks/use-hot-reload';
|
|
12
|
+
import { useRenderingMetadata } from '../../../hooks/use-rendering-metadata';
|
|
13
13
|
import { RenderingError } from './rendering-error';
|
|
14
14
|
|
|
15
15
|
interface PreviewProps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as SlotPrimitive from '@radix-ui/react-slot';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { unreachable } from '../utils/unreachable';
|
|
4
3
|
import { cn } from '../utils/cn';
|
|
4
|
+
import { unreachable } from '../utils/unreachable';
|
|
5
5
|
|
|
6
6
|
type ButtonElement = React.ElementRef<'button'>;
|
|
7
7
|
type RootProps = React.ComponentPropsWithoutRef<'button'>;
|
|
@@ -2,8 +2,8 @@ import { LayoutGroup, motion } from 'framer-motion';
|
|
|
2
2
|
import type { Language } from 'prism-react-renderer';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { copyTextToClipboard } from '../utils';
|
|
5
|
-
import languageMap from '../utils/language-map';
|
|
6
5
|
import { tabTransition } from '../utils/constants';
|
|
6
|
+
import languageMap from '../utils/language-map';
|
|
7
7
|
import { Code } from './code';
|
|
8
8
|
import { IconButton } from './icons/icon-button';
|
|
9
9
|
import { IconCheck } from './icons/icon-check';
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { AnimatePresence, LayoutGroup, motion } from 'framer-motion';
|
|
2
1
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
2
|
+
import { AnimatePresence, LayoutGroup, motion } from 'framer-motion';
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { useSearchParams } from 'next/navigation';
|
|
5
|
-
import type { EmailsDirectory } from '../../utils/get-emails-directory-metadata';
|
|
6
|
-
import { emailsDirectoryAbsolutePath } from '../../utils/emails-directory-absolute-path';
|
|
7
5
|
import { cn } from '../../utils';
|
|
6
|
+
import type { EmailsDirectory } from '../../utils/get-emails-directory-metadata';
|
|
8
7
|
import { IconFile } from '../icons/icon-file';
|
|
9
8
|
import { SidebarDirectory } from './sidebar-directory';
|
|
10
9
|
|
|
@@ -15,15 +14,13 @@ export const SidebarDirectoryChildren = (props: {
|
|
|
15
14
|
isRoot?: boolean;
|
|
16
15
|
}) => {
|
|
17
16
|
const searchParams = useSearchParams();
|
|
18
|
-
const isBaseEmailsDirectory =
|
|
19
|
-
props.emailsDirectoryMetadata.absolutePath === emailsDirectoryAbsolutePath;
|
|
20
17
|
|
|
21
18
|
return (
|
|
22
19
|
<AnimatePresence initial={false}>
|
|
23
20
|
{props.open ? (
|
|
24
21
|
<Collapsible.Content
|
|
25
22
|
asChild
|
|
26
|
-
className="relative
|
|
23
|
+
className="relative overflow-y-hidden pl-1"
|
|
27
24
|
forceMount
|
|
28
25
|
>
|
|
29
26
|
<motion.div
|
|
@@ -35,7 +32,7 @@ export const SidebarDirectoryChildren = (props: {
|
|
|
35
32
|
<div className="line absolute left-2.5 w-px h-full bg-slate-6" />
|
|
36
33
|
)}
|
|
37
34
|
|
|
38
|
-
<div className="
|
|
35
|
+
<div className="flex flex-col truncate">
|
|
39
36
|
<LayoutGroup id="sidebar">
|
|
40
37
|
{props.emailsDirectoryMetadata.subDirectories.map(
|
|
41
38
|
(subDirectory) => (
|
|
@@ -50,7 +47,7 @@ export const SidebarDirectoryChildren = (props: {
|
|
|
50
47
|
|
|
51
48
|
{props.emailsDirectoryMetadata.emailFilenames.map(
|
|
52
49
|
(emailFilename, index) => {
|
|
53
|
-
const emailSlug =
|
|
50
|
+
const emailSlug = props.isRoot
|
|
54
51
|
? emailFilename
|
|
55
52
|
: `${props.emailsDirectoryMetadata.relativePath}/${emailFilename}`;
|
|
56
53
|
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { cn } from '../../utils';
|
|
5
|
-
import {
|
|
5
|
+
import type { EmailsDirectory } from '../../utils/get-emails-directory-metadata';
|
|
6
6
|
import { Heading } from '../heading';
|
|
7
|
+
import { IconArrowDown } from '../icons/icon-arrow-down';
|
|
7
8
|
import { IconFolder } from '../icons/icon-folder';
|
|
8
9
|
import { IconFolderOpen } from '../icons/icon-folder-open';
|
|
9
|
-
import { IconArrowDown } from '../icons/icon-arrow-down';
|
|
10
10
|
import { SidebarDirectoryChildren } from './sidebar-directory-children';
|
|
11
11
|
|
|
12
12
|
interface SidebarDirectoryProps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import * as React from 'react';
|
|
4
3
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
4
|
+
import * as React from 'react';
|
|
5
5
|
import { useEmails } from '../../contexts/emails';
|
|
6
6
|
import { cn } from '../../utils';
|
|
7
7
|
import { Logo } from '../logo';
|
|
@@ -29,7 +29,7 @@ export const Sidebar = ({
|
|
|
29
29
|
<Logo />
|
|
30
30
|
</div>
|
|
31
31
|
<nav className="p-4 flex-grow lg:pt-0 pl-0 w-screen h-[calc(100vh_-_70px)] lg:w-full lg:min-w-[275px] lg:max-w-[275px] flex flex-col overflow-y-auto">
|
|
32
|
-
<Collapsible.Root>
|
|
32
|
+
<Collapsible.Root open>
|
|
33
33
|
<React.Suspense>
|
|
34
34
|
<SidebarDirectoryChildren
|
|
35
35
|
currentEmailOpenSlug={currentEmailOpenSlug}
|
package/src/components/text.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as SlotPrimitive from '@radix-ui/react-slot';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { type As,
|
|
3
|
+
import { type As, cn, unreachable } from '../utils';
|
|
4
4
|
|
|
5
5
|
export type TextSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
|
|
6
6
|
export type TextColor = 'gray' | 'white';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { cn } from '../utils';
|
|
4
3
|
import { inter } from '../app/inter';
|
|
4
|
+
import { cn } from '../utils';
|
|
5
5
|
|
|
6
6
|
type ContentElement = React.ElementRef<typeof TooltipPrimitive.Content>;
|
|
7
7
|
type ContentProps = React.ComponentPropsWithoutRef<
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
2
|
-
import * as React from 'react';
|
|
2
|
+
import type * as React from 'react';
|
|
3
3
|
import { TooltipContent } from './tooltip-content';
|
|
4
4
|
|
|
5
5
|
type RootProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as ToggleGroup from '@radix-ui/react-toggle-group';
|
|
3
3
|
import { motion } from 'framer-motion';
|
|
4
|
-
import * as React from 'react';
|
|
4
|
+
import type * as React from 'react';
|
|
5
5
|
import { cn } from '../utils';
|
|
6
6
|
import { tabTransition } from '../utils/constants';
|
|
7
7
|
import { Heading } from './heading';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
|
+
import { getEmailPathFromSlug } from '../actions/get-email-path-from-slug';
|
|
2
3
|
import {
|
|
3
|
-
renderEmailByPath,
|
|
4
4
|
type EmailRenderingResult,
|
|
5
|
+
renderEmailByPath,
|
|
5
6
|
} from '../actions/render-email-by-path';
|
|
6
|
-
import { getEmailPathFromSlug } from '../actions/get-email-path-from-slug';
|
|
7
7
|
import { useHotreload } from './use-hot-reload';
|
|
8
8
|
|
|
9
9
|
export const useEmailRenderingResult = (
|
package/src/utils/cn.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import vm from 'node:vm';
|
|
4
|
-
import type React from 'react';
|
|
5
|
-
import { type RawSourceMap } from 'source-map-js';
|
|
6
|
-
import { type OutputFile, build, type BuildFailure } from 'esbuild';
|
|
7
4
|
import type { render } from '@react-email/render';
|
|
8
|
-
import type
|
|
9
|
-
import type
|
|
5
|
+
import { type BuildFailure, type OutputFile, build } from 'esbuild';
|
|
6
|
+
import type React from 'react';
|
|
7
|
+
import type { RawSourceMap } from 'source-map-js';
|
|
8
|
+
import { renderingUtilitiesExporter } from './esbuild/renderring-utilities-exporter';
|
|
10
9
|
import { improveErrorWithSourceMap } from './improve-error-with-sourcemap';
|
|
11
10
|
import { staticNodeModulesForVM } from './static-node-modules-for-vm';
|
|
12
|
-
import {
|
|
11
|
+
import type { EmailTemplate as EmailComponent } from './types/email-template';
|
|
12
|
+
import type { ErrorObject } from './types/error-object';
|
|
13
13
|
|
|
14
14
|
export const getEmailComponent = async (
|
|
15
15
|
emailPath: string,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { type RawSourceMap, SourceMapConsumer } from 'source-map-js';
|
|
2
3
|
import * as stackTraceParser from 'stacktrace-parser';
|
|
3
|
-
import { SourceMapConsumer, type RawSourceMap } from 'source-map-js';
|
|
4
4
|
import type { ErrorObject } from './types/error-object';
|
|
5
5
|
|
|
6
6
|
export const improveErrorWithSourceMap = (
|
|
@@ -48,15 +48,15 @@ import zlib from 'node:zlib';
|
|
|
48
48
|
*/
|
|
49
49
|
export const staticNodeModulesForVM = {
|
|
50
50
|
assert,
|
|
51
|
-
|
|
51
|
+
async_hooks: asyncHooks,
|
|
52
52
|
buffer,
|
|
53
|
-
|
|
53
|
+
child_process: childProcess,
|
|
54
54
|
cluster,
|
|
55
55
|
console,
|
|
56
56
|
constants,
|
|
57
57
|
crypto,
|
|
58
58
|
dgram,
|
|
59
|
-
|
|
59
|
+
diagnostics_channel: diagnosticsChannel,
|
|
60
60
|
dns,
|
|
61
61
|
domain,
|
|
62
62
|
events,
|
|
@@ -70,14 +70,14 @@ export const staticNodeModulesForVM = {
|
|
|
70
70
|
net,
|
|
71
71
|
os,
|
|
72
72
|
path,
|
|
73
|
-
|
|
73
|
+
perf_hooks: perfHooks,
|
|
74
74
|
process,
|
|
75
75
|
punycode,
|
|
76
76
|
querystring,
|
|
77
77
|
readline,
|
|
78
78
|
repl,
|
|
79
79
|
stream,
|
|
80
|
-
|
|
80
|
+
string_decoder: stringDecoder,
|
|
81
81
|
timers,
|
|
82
82
|
'timers/promises': timersPromises,
|
|
83
83
|
tls,
|
|
@@ -87,6 +87,6 @@ export const staticNodeModulesForVM = {
|
|
|
87
87
|
'util/types': utilTypes,
|
|
88
88
|
v8,
|
|
89
89
|
vm,
|
|
90
|
-
|
|
90
|
+
worker_threads: workerThreads,
|
|
91
91
|
zlib,
|
|
92
92
|
};
|
package/tsconfig.json
CHANGED
|
@@ -30,10 +30,5 @@
|
|
|
30
30
|
"outDir": "dist"
|
|
31
31
|
},
|
|
32
32
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
33
|
-
"exclude": [
|
|
34
|
-
"tsconfig.export.json",
|
|
35
|
-
".next",
|
|
36
|
-
"dist",
|
|
37
|
-
"node_modules"
|
|
38
|
-
]
|
|
33
|
+
"exclude": ["tsconfig.export.json", ".next", "dist", "node_modules"]
|
|
39
34
|
}
|
package/.eslintrc.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
const { resolve } = require('node:path');
|
|
2
|
-
|
|
3
|
-
const project = resolve(process.cwd(), './tsconfig.json');
|
|
4
|
-
|
|
5
|
-
/** @type {import('eslint').ESLint.ConfigData} */
|
|
6
|
-
module.exports = {
|
|
7
|
-
extends: [
|
|
8
|
-
"@vercel/style-guide/eslint/node",
|
|
9
|
-
"@vercel/style-guide/eslint/browser",
|
|
10
|
-
"@vercel/style-guide/eslint/typescript",
|
|
11
|
-
"@vercel/style-guide/eslint/react",
|
|
12
|
-
"@vercel/style-guide/eslint/next",
|
|
13
|
-
"eslint-config-turbo",
|
|
14
|
-
]
|
|
15
|
-
.map(require.resolve)
|
|
16
|
-
.concat(["eslint-config-prettier"]),
|
|
17
|
-
parserOptions: {
|
|
18
|
-
project,
|
|
19
|
-
},
|
|
20
|
-
globals: {
|
|
21
|
-
React: true,
|
|
22
|
-
JSX: true,
|
|
23
|
-
},
|
|
24
|
-
settings: {
|
|
25
|
-
"import/resolver": {
|
|
26
|
-
typescript: {
|
|
27
|
-
project,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
ignorePatterns: ['cli/', 'cli/index.mjs', "node_modules/", "dist/"],
|
|
32
|
-
rules: {
|
|
33
|
-
"@next/next/no-img-element": "off",
|
|
34
|
-
"@typescript-eslint/explicit-function-return-type": "off",
|
|
35
|
-
"import/no-default-export": "off",
|
|
36
|
-
"jsx-a11y/no-autofocus": "off",
|
|
37
|
-
"no-alert": "off",
|
|
38
|
-
"react/no-array-index-key": "off",
|
|
39
|
-
"react/function-component-definition": [
|
|
40
|
-
2,
|
|
41
|
-
{
|
|
42
|
-
namedComponents: "arrow-function",
|
|
43
|
-
unnamedComponents: "arrow-function",
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
'import/no-cycle': 'off',
|
|
47
|
-
'import/no-extraneous-dependencies': 'off',
|
|
48
|
-
'turbo/no-undeclared-env-vars': 'off',
|
|
49
|
-
'eslint-comments/require-description': 'off',
|
|
50
|
-
'no-console': 'off',
|
|
51
|
-
},
|
|
52
|
-
};
|
package/.prettierignore
DELETED
package/.prettierrc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/get-email-path-from-slug.ts":"1","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/get-emails-directory-metadata-action.ts":"2","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/render-email-by-path.tsx":"3","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/inter.ts":"4","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/layout.tsx":"5","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/page.tsx":"6","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/page.tsx":"7","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/preview.tsx":"8","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/rendering-error.tsx":"9","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/button.tsx":"10","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/code-container.tsx":"11","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/code.tsx":"12","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/heading.tsx":"13","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-arrow-down.tsx":"14","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-base.tsx":"15","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-button.tsx":"16","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-check.tsx":"17","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-clipboard.tsx":"18","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-download.tsx":"19","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-file.tsx":"20","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-folder-open.tsx":"21","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-folder.tsx":"22","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-hide-sidebar.tsx":"23","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-monitor.tsx":"24","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-phone.tsx":"25","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-source.tsx":"26","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/index.ts":"27","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/logo.tsx":"28","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/send.tsx":"29","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/shell.tsx":"30","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/index.ts":"31","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar-directory-children.tsx":"32","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar-directory.tsx":"33","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar.tsx":"34","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/text.tsx":"35","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/tooltip-content.tsx":"36","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/tooltip.tsx":"37","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/topbar.tsx":"38","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/contexts/emails.tsx":"39","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-email-rendering-result.ts":"40","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-hot-reload.ts":"41","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-rendering-metadata.ts":"42","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/cn.ts":"43","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/constants.ts":"44","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/copy-text-to-clipboard.ts":"45","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/emails-directory-absolute-path.ts":"46","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/esbuild/escape-string-for-regex.ts":"47","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/esbuild/renderring-utilities-exporter.ts":"48","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-email-component.spec.ts":"49","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-email-component.ts":"50","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-emails-directory-metadata.spec.ts":"51","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-emails-directory-metadata.ts":"52","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/improve-error-with-sourcemap.ts":"53","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/index.ts":"54","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/language-map.ts":"55","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/register-spinner-autostopping.ts":"56","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/static-node-modules-for-vm.ts":"57","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/testing/request-response-email.tsx":"58","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/as.ts":"59","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/email-template.ts":"60","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/error-object.ts":"61","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/hot-reload-change.ts":"62","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/hot-reload-event.ts":"63","/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/unreachable.ts":"64"},{"size":1195,"mtime":1736427079675,"results":"65","hashOfConfig":"66"},{"size":579,"mtime":1736443358596,"results":"67","hashOfConfig":"66"},{"size":3522,"mtime":1736427079675,"results":"68","hashOfConfig":"66"},{"size":145,"mtime":1725458511028,"results":"69","hashOfConfig":"66"},{"size":1074,"mtime":1736443358599,"results":"70","hashOfConfig":"66"},{"size":1588,"mtime":1725458511028,"results":"71","hashOfConfig":"66"},{"size":2498,"mtime":1736443358599,"results":"72","hashOfConfig":"66"},{"size":4495,"mtime":1736427079675,"results":"73","hashOfConfig":"66"},{"size":1698,"mtime":1725458511028,"results":"74","hashOfConfig":"66"},{"size":2220,"mtime":1725458511028,"results":"75","hashOfConfig":"66"},{"size":4619,"mtime":1725458511028,"results":"76","hashOfConfig":"66"},{"size":3184,"mtime":1729525799201,"results":"77","hashOfConfig":"66"},{"size":2418,"mtime":1725458511028,"results":"78","hashOfConfig":"66"},{"size":486,"mtime":1725458511028,"results":"79","hashOfConfig":"66"},{"size":564,"mtime":1725458511028,"results":"80","hashOfConfig":"66"},{"size":631,"mtime":1725458511028,"results":"81","hashOfConfig":"66"},{"size":538,"mtime":1725458511028,"results":"82","hashOfConfig":"66"},{"size":1336,"mtime":1725458511028,"results":"83","hashOfConfig":"66"},{"size":607,"mtime":1725458511028,"results":"84","hashOfConfig":"66"},{"size":909,"mtime":1725458511028,"results":"85","hashOfConfig":"66"},{"size":1437,"mtime":1725458511028,"results":"86","hashOfConfig":"66"},{"size":950,"mtime":1725458511028,"results":"87","hashOfConfig":"66"},{"size":1240,"mtime":1725458511028,"results":"88","hashOfConfig":"66"},{"size":775,"mtime":1725458511028,"results":"89","hashOfConfig":"66"},{"size":857,"mtime":1725458511028,"results":"90","hashOfConfig":"66"},{"size":569,"mtime":1725458511028,"results":"91","hashOfConfig":"66"},{"size":178,"mtime":1725458511028,"results":"92","hashOfConfig":"66"},{"size":11813,"mtime":1725458511028,"results":"93","hashOfConfig":"66"},{"size":4736,"mtime":1732204555127,"results":"94","hashOfConfig":"66"},{"size":3837,"mtime":1729525799201,"results":"95","hashOfConfig":"66"},{"size":27,"mtime":1725458511028,"results":"96","hashOfConfig":"66"},{"size":5306,"mtime":1736443358599,"results":"97","hashOfConfig":"66"},{"size":2910,"mtime":1736443358599,"results":"98","hashOfConfig":"66"},{"size":1309,"mtime":1725458511028,"results":"99","hashOfConfig":"66"},{"size":2336,"mtime":1725458511028,"results":"100","hashOfConfig":"66"},{"size":943,"mtime":1725458511028,"results":"101","hashOfConfig":"66"},{"size":642,"mtime":1725458511028,"results":"102","hashOfConfig":"66"},{"size":6168,"mtime":1725458511028,"results":"103","hashOfConfig":"66"},{"size":1716,"mtime":1736443358599,"results":"104","hashOfConfig":"66"},{"size":1351,"mtime":1736427079675,"results":"105","hashOfConfig":"66"},{"size":854,"mtime":1725458511028,"results":"106","hashOfConfig":"66"},{"size":1169,"mtime":1736427079675,"results":"107","hashOfConfig":"66"},{"size":173,"mtime":1725458511028,"results":"108","hashOfConfig":"66"},{"size":97,"mtime":1729525799201,"results":"109","hashOfConfig":"66"},{"size":176,"mtime":1725458511028,"results":"110","hashOfConfig":"66"},{"size":406,"mtime":1725458511028,"results":"111","hashOfConfig":"66"},{"size":136,"mtime":1725458511032,"results":"112","hashOfConfig":"66"},{"size":2297,"mtime":1732203775431,"results":"113","hashOfConfig":"66"},{"size":1193,"mtime":1732204556694,"results":"114","hashOfConfig":"66"},{"size":4632,"mtime":1732204556694,"results":"115","hashOfConfig":"66"},{"size":2590,"mtime":1736443358599,"results":"116","hashOfConfig":"66"},{"size":3399,"mtime":1736443358599,"results":"117","hashOfConfig":"66"},{"size":2774,"mtime":1725458511032,"results":"118","hashOfConfig":"66"},{"size":155,"mtime":1725458511032,"results":"119","hashOfConfig":"66"},{"size":114,"mtime":1725458511032,"results":"120","hashOfConfig":"66"},{"size":553,"mtime":1736427067792,"results":"121","hashOfConfig":"66"},{"size":2322,"mtime":1732204556694,"results":"122","hashOfConfig":"66"},{"size":202,"mtime":1732204556694,"results":"123","hashOfConfig":"66"},{"size":630,"mtime":1725458511032,"results":"124","hashOfConfig":"66"},{"size":267,"mtime":1725458511032,"results":"125","hashOfConfig":"66"},{"size":271,"mtime":1725458511032,"results":"126","hashOfConfig":"66"},{"size":141,"mtime":1725458511032,"results":"127","hashOfConfig":"66"},{"size":92,"mtime":1736427079675,"results":"128","hashOfConfig":"66"},{"size":259,"mtime":1725458511032,"results":"129","hashOfConfig":"66"},{"filePath":"130","messages":"131","suppressedMessages":"132","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1arz54o",{"filePath":"133","messages":"134","suppressedMessages":"135","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"136","messages":"137","suppressedMessages":"138","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"139","messages":"140","suppressedMessages":"141","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"142","messages":"143","suppressedMessages":"144","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"145","messages":"146","suppressedMessages":"147","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"148","messages":"149","suppressedMessages":"150","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"151","messages":"152","suppressedMessages":"153","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"154","messages":"155","suppressedMessages":"156","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"157","messages":"158","suppressedMessages":"159","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"160","messages":"161","suppressedMessages":"162","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"163","messages":"164","suppressedMessages":"165","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"166","messages":"167","suppressedMessages":"168","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"169","messages":"170","suppressedMessages":"171","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"172","messages":"173","suppressedMessages":"174","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"175","messages":"176","suppressedMessages":"177","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"178","messages":"179","suppressedMessages":"180","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"181","messages":"182","suppressedMessages":"183","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"184","messages":"185","suppressedMessages":"186","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"187","messages":"188","suppressedMessages":"189","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"190","messages":"191","suppressedMessages":"192","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"193","messages":"194","suppressedMessages":"195","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"196","messages":"197","suppressedMessages":"198","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"199","messages":"200","suppressedMessages":"201","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"202","messages":"203","suppressedMessages":"204","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"205","messages":"206","suppressedMessages":"207","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"208","messages":"209","suppressedMessages":"210","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"211","messages":"212","suppressedMessages":"213","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"214","messages":"215","suppressedMessages":"216","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"217","messages":"218","suppressedMessages":"219","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"220","messages":"221","suppressedMessages":"222","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"223","messages":"224","suppressedMessages":"225","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"226","messages":"227","suppressedMessages":"228","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"229","messages":"230","suppressedMessages":"231","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"232","messages":"233","suppressedMessages":"234","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"235","messages":"236","suppressedMessages":"237","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"238","messages":"239","suppressedMessages":"240","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"241","messages":"242","suppressedMessages":"243","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"244","messages":"245","suppressedMessages":"246","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"247","messages":"248","suppressedMessages":"249","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"250","messages":"251","suppressedMessages":"252","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"253","messages":"254","suppressedMessages":"255","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"256","messages":"257","suppressedMessages":"258","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"259","messages":"260","suppressedMessages":"261","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"262","messages":"263","suppressedMessages":"264","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"265","messages":"266","suppressedMessages":"267","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"268","messages":"269","suppressedMessages":"270","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"271","messages":"272","suppressedMessages":"273","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"274","messages":"275","suppressedMessages":"276","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"277","messages":"278","suppressedMessages":"279","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"280","messages":"281","suppressedMessages":"282","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"283","messages":"284","suppressedMessages":"285","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"286","messages":"287","suppressedMessages":"288","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"289","messages":"290","suppressedMessages":"291","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"292","messages":"293","suppressedMessages":"294","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"295","messages":"296","suppressedMessages":"297","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"298","messages":"299","suppressedMessages":"300","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"301","messages":"302","suppressedMessages":"303","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"304","messages":"305","suppressedMessages":"306","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"307","messages":"308","suppressedMessages":"309","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"310","messages":"311","suppressedMessages":"312","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"313","messages":"314","suppressedMessages":"315","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"316","messages":"317","suppressedMessages":"318","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"319","messages":"320","suppressedMessages":"321","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/get-email-path-from-slug.ts",[],["322"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/get-emails-directory-metadata-action.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/actions/render-email-by-path.tsx",[],["323"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/inter.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/layout.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/page.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/page.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/preview.tsx",[],["324"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/app/preview/[...slug]/rendering-error.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/button.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/code-container.tsx",[],["325"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/code.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/heading.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-arrow-down.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-base.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-button.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-check.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-clipboard.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-download.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-file.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-folder-open.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-folder.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-hide-sidebar.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-monitor.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-phone.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/icons/icon-source.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/index.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/logo.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/send.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/shell.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/index.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar-directory-children.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar-directory.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/sidebar/sidebar.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/text.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/tooltip-content.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/tooltip.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/components/topbar.tsx",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/contexts/emails.tsx",[],["326"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-email-rendering-result.ts",[],["327"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-hot-reload.ts",[],["328"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/hooks/use-rendering-metadata.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/cn.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/constants.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/copy-text-to-clipboard.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/emails-directory-absolute-path.ts",[],["329","330","331"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/esbuild/escape-string-for-regex.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/esbuild/renderring-utilities-exporter.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-email-component.spec.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-email-component.ts",[],["332","333","334","335","336","337"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-emails-directory-metadata.spec.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/get-emails-directory-metadata.ts",[],["338","339"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/improve-error-with-sourcemap.ts",[],["340"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/index.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/language-map.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/register-spinner-autostopping.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/static-node-modules-for-vm.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/testing/request-response-email.tsx",[],["341","342"],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/as.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/email-template.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/error-object.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/hot-reload-change.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/types/hot-reload-event.ts",[],[],"/home/gabriel/Projects/Resend/react-email.git/tertiary/packages/react-email/src/utils/unreachable.ts",[],[],{"ruleId":"343","severity":2,"message":"344","line":8,"column":64,"nodeType":"345","messageId":"346","endLine":8,"endColumn":66,"suppressions":"347"},{"ruleId":"348","severity":2,"message":"349","line":32,"column":36,"nodeType":"350","messageId":"351","endLine":32,"endColumn":57,"suppressions":"352"},{"ruleId":"353","severity":2,"message":"354","line":50,"column":5,"nodeType":"355","endLine":50,"endColumn":17,"suppressions":"356"},{"ruleId":"348","severity":2,"message":"349","line":56,"column":33,"nodeType":"350","messageId":"351","endLine":56,"endColumn":50,"suggestions":"357","suppressions":"358"},{"ruleId":"353","severity":2,"message":"354","line":37,"column":5,"nodeType":"355","endLine":37,"endColumn":17,"suppressions":"359"},{"ruleId":"353","severity":2,"message":"354","line":19,"column":5,"nodeType":"355","endLine":19,"endColumn":17,"suppressions":"360"},{"ruleId":"361","severity":2,"message":"362","line":12,"column":51,"nodeType":"363","messageId":"364","endLine":12,"endColumn":54,"suggestions":"365","suppressions":"366"},{"ruleId":"348","severity":2,"message":"349","line":3,"column":38,"nodeType":"350","messageId":"351","endLine":3,"endColumn":75,"suppressions":"367"},{"ruleId":"348","severity":2,"message":"349","line":6,"column":36,"nodeType":"350","messageId":"351","endLine":6,"endColumn":70,"suppressions":"368"},{"ruleId":"348","severity":2,"message":"349","line":10,"column":3,"nodeType":"350","messageId":"351","endLine":10,"endColumn":40,"suppressions":"369"},{"ruleId":"348","severity":2,"message":"349","line":60,"column":25,"nodeType":"350","messageId":"351","endLine":60,"endColumn":40,"suppressions":"370"},{"ruleId":"348","severity":2,"message":"349","line":61,"column":28,"nodeType":"350","messageId":"351","endLine":61,"endColumn":43,"suppressions":"371"},{"ruleId":"348","severity":2,"message":"349","line":93,"column":13,"nodeType":"350","messageId":"351","endLine":93,"endColumn":29,"suppressions":"372"},{"ruleId":"373","severity":2,"message":"374","line":98,"column":9,"nodeType":"375","messageId":"376","endLine":98,"endColumn":42,"suppressions":"377"},{"ruleId":"378","severity":2,"message":"379","line":102,"column":14,"nodeType":"380","messageId":"381","endLine":102,"endColumn":43,"suppressions":"382"},{"ruleId":"383","severity":2,"message":"384","line":102,"column":25,"nodeType":"355","messageId":"385","endLine":102,"endColumn":40,"fix":"386","suppressions":"387"},{"ruleId":"348","severity":2,"message":"349","line":46,"column":30,"nodeType":"350","messageId":"351","endLine":46,"endColumn":80,"suppressions":"388"},{"ruleId":"348","severity":2,"message":"349","line":111,"column":20,"nodeType":"350","messageId":"351","endLine":111,"endColumn":72,"suppressions":"389"},{"ruleId":"390","severity":2,"message":"391","line":52,"column":15,"nodeType":"392","messageId":"393","endLine":52,"endColumn":39,"suppressions":"394"},{"ruleId":"395","severity":2,"message":"396","line":2,"column":7,"nodeType":"355","messageId":"397","endLine":2,"endColumn":10,"suppressions":"398"},{"ruleId":"395","severity":2,"message":"399","line":3,"column":7,"nodeType":"355","messageId":"397","endLine":3,"endColumn":10,"suppressions":"400"},"@typescript-eslint/require-await","Async arrow function has no 'await' expression.","ArrowFunctionExpression","missingAwait",["401"],"@typescript-eslint/no-non-null-assertion","Forbidden non-null assertion.","TSNonNullExpression","noNonNull",["402"],"react-hooks/rules-of-hooks","React Hook \"useHotreload\" is called conditionally. React Hooks must be called in the exact same order in every component render.","Identifier",["403"],["404"],["405"],["406"],["407"],"@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["408","409"],["410"],["411"],["412"],["413"],["414"],["415"],["416"],"@typescript-eslint/no-unsafe-return","Unsafe return of an `any` typed value.","ReturnStatement","unsafeReturn",["417"],"@typescript-eslint/no-var-requires","Require statement not part of import statement.","CallExpression","noVarReqs",["418"],"@typescript-eslint/no-useless-template-literals","Template literal expression is unnecessary and can be simplified.","noUselessTemplateLiteral",{"range":"419","text":"420"},["421"],["422"],["423"],"@typescript-eslint/no-unnecessary-condition","Unnecessary conditional, expected left-hand side of `??` operator to be possibly null or undefined.","MemberExpression","neverNullish",["424"],"@typescript-eslint/no-unused-vars","'req' is assigned a value but never used. Allowed unused vars must match /^_/u.","unusedVar",["425"],"'res' is assigned a value but never used. Allowed unused vars must match /^_/u.",["426"],{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"messageId":"429","fix":"430","desc":"431"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"messageId":"432","fix":"433","desc":"434"},{"messageId":"435","fix":"436","desc":"437"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},[2935,2955],"specifiedModule",{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},{"kind":"427","justification":"428"},"directive","","suggestOptionalChain",{"range":"438","text":"439"},"Consider using the optional chain operator `?.` instead. This operator includes runtime checks, so it is safer than the compile-only non-null assertion operator.","suggestUnknown",{"range":"440","text":"441"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"442","text":"443"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.",[1779,1780],"?",[452,455],"unknown",[452,455],"never"]
|