react-email 3.0.4 → 3.0.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.
- package/CHANGELOG.md +6 -0
- package/dist/cli/index.js +90 -94
- package/dist/cli/index.mjs +69 -58
- package/dist/index.d.mts +20 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +96 -0
- package/dist/index.mjs +21 -0
- package/dist/package/index.d.mts +33 -0
- package/dist/package/index.d.ts +33 -0
- package/dist/package/index.js +62 -0
- package/dist/package/index.mjs +7 -0
- package/dist/preview/.next/BUILD_ID +1 -1
- package/dist/preview/.next/app-build-manifest.json +31 -31
- package/dist/preview/.next/app-path-routes-manifest.json +1 -1
- package/dist/preview/.next/build-manifest.json +14 -14
- package/dist/preview/.next/cache/.rscinfo +1 -1
- package/dist/preview/.next/cache/eslint/.cache_1vyas3k +1 -0
- 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/diagnostics/framework.json +1 -1
- 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/required-server-files.json +1 -1
- package/dist/preview/.next/server/app/_not-found/page.js +1 -1
- package/dist/preview/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/preview/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/preview/.next/server/app/favicon.ico/route.js +1 -1
- package/dist/preview/.next/server/app/favicon.ico/route.js.nft.json +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/app-paths-manifest.json +1 -1
- package/dist/preview/.next/server/chunks/300.js +13 -0
- package/dist/preview/.next/server/chunks/420.js +1 -0
- package/dist/preview/.next/server/chunks/625.js +5 -0
- package/dist/preview/.next/server/chunks/631.js +6 -0
- package/dist/preview/.next/server/chunks/720.js +10 -0
- package/dist/preview/.next/server/middleware-build-manifest.js +1 -1
- package/dist/preview/.next/server/next-font-manifest.js +1 -1
- package/dist/preview/.next/server/next-font-manifest.json +1 -1
- package/dist/preview/.next/server/pages/500.html +1 -1
- package/dist/preview/.next/server/pages/_app.js +1 -1
- package/dist/preview/.next/server/pages/_app.js.nft.json +1 -1
- package/dist/preview/.next/server/pages/_document.js +1 -1
- package/dist/preview/.next/server/pages/_document.js.nft.json +1 -1
- package/dist/preview/.next/server/pages/_error.js +1 -1
- package/dist/preview/.next/server/pages/_error.js.nft.json +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/6K68y2QEZ1dLbv-Xhi30p/_buildManifest.js +1 -0
- package/dist/preview/.next/static/chunks/12-b9450aa0845e7574.js +1 -0
- package/dist/preview/.next/static/chunks/154-69b91a0c2fd801b8.js +1 -0
- package/dist/preview/.next/static/chunks/447-886131c35ca42b91.js +1 -0
- package/dist/preview/.next/static/chunks/5fec7a0a-5179023f3f5a9421.js +1 -0
- package/dist/preview/.next/static/chunks/797-46f6c20952f0a280.js +2 -0
- package/dist/preview/.next/static/chunks/{677-dd9544a8249ca33a.js → 860-38d96c8819ba6f19.js} +1 -1
- package/dist/preview/.next/static/chunks/app/_not-found/page-96d3eac723be3ee2.js +1 -0
- package/dist/preview/.next/static/chunks/app/layout-e1b6f1534cbbe5bd.js +1 -0
- package/dist/preview/.next/static/chunks/app/page-2c3e297e38c526ef.js +1 -0
- package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-2b4988ba6daf34e1.js +1 -0
- package/dist/preview/.next/static/chunks/framework-e7cae9cecd5c9ba2.js +1 -0
- package/dist/preview/.next/static/chunks/main-app-2c7f96205a73f128.js +1 -0
- package/dist/preview/.next/static/chunks/main-df761fde212f9cda.js +1 -0
- package/dist/preview/.next/static/chunks/pages/_app-203a61b355820ccf.js +1 -0
- package/dist/preview/.next/static/chunks/pages/_error-1764ca54938748c8.js +1 -0
- package/dist/preview/.next/static/chunks/{webpack-08c76d9f8dd5b0f0.js → webpack-9255716c9496e606.js} +1 -1
- package/dist/preview/.next/static/css/{eecb5c96aca6bd9e.css → ec5d7e66bd3b6cb8.css} +1 -1
- package/dist/preview/.next/trace +20 -2
- package/dist/preview/.next/types/app/layout.ts +1 -1
- package/dist/preview/.next/types/app/preview/[...slug]/page.ts +1 -1
- package/dist/preview/.next/types/cache-life.d.ts +2 -0
- package/next-env.d.ts +1 -1
- package/package.json +6 -6
- package/src/actions/get-email-path-from-slug.ts +3 -2
- package/src/actions/get-emails-directory-metadata.spec.ts +1 -0
- package/src/actions/get-emails-directory-metadata.ts +62 -59
- package/src/actions/render-email-by-path.tsx +16 -5
- package/src/app/preview/[...slug]/page.tsx +19 -9
- package/src/app/preview/[...slug]/preview.tsx +6 -7
- package/src/contexts/emails.tsx +2 -56
- package/src/hooks/use-email-rendering-result.ts +44 -0
- package/src/hooks/use-rendering-metadata.ts +5 -5
- package/src/package/body/dist/index.d.mts +6 -0
- package/src/package/body/dist/index.d.ts +6 -0
- package/src/package/body/dist/index.js +79 -0
- package/src/package/body/dist/index.mjs +45 -0
- package/src/package/button/dist/index.d.mts +6 -0
- package/src/package/button/dist/index.d.ts +6 -0
- package/src/package/button/dist/index.js +252 -0
- package/src/package/button/dist/index.mjs +218 -0
- package/src/package/code-block/dist/index.d.mts +4906 -0
- package/src/package/code-block/dist/index.d.ts +4906 -0
- package/src/package/code-block/dist/index.js +18205 -0
- package/src/package/code-block/dist/index.mjs +18133 -0
- package/src/package/code-inline/dist/index.d.mts +11 -0
- package/src/package/code-inline/dist/index.d.ts +11 -0
- package/src/package/code-inline/dist/index.js +106 -0
- package/src/package/code-inline/dist/index.mjs +72 -0
- package/src/package/column/dist/index.d.mts +6 -0
- package/src/package/column/dist/index.d.ts +6 -0
- package/src/package/column/dist/index.js +79 -0
- package/src/package/column/dist/index.mjs +45 -0
- package/src/package/components/dist/index.d.mts +20 -0
- package/src/package/components/dist/index.d.ts +20 -0
- package/src/package/components/dist/index.js +62 -0
- package/src/package/components/dist/index.mjs +21 -0
- package/src/package/container/dist/index.d.mts +6 -0
- package/src/package/container/dist/index.d.ts +6 -0
- package/src/package/container/dist/index.js +93 -0
- package/src/package/container/dist/index.mjs +59 -0
- package/src/package/font/dist/index.d.mts +25 -0
- package/src/package/font/dist/index.d.ts +25 -0
- package/src/package/font/dist/index.js +55 -0
- package/src/package/font/dist/index.mjs +28 -0
- package/src/package/head/dist/index.d.mts +6 -0
- package/src/package/head/dist/index.d.ts +6 -0
- package/src/package/head/dist/index.js +83 -0
- package/src/package/head/dist/index.mjs +49 -0
- package/src/package/heading/dist/index.d.mts +43 -0
- package/src/package/heading/dist/index.d.ts +43 -0
- package/src/package/heading/dist/index.js +113 -0
- package/src/package/heading/dist/index.mjs +79 -0
- package/src/package/hr/dist/index.d.mts +6 -0
- package/src/package/hr/dist/index.d.ts +6 -0
- package/src/package/hr/dist/index.js +89 -0
- package/src/package/hr/dist/index.mjs +55 -0
- package/src/package/html/dist/index.d.mts +6 -0
- package/src/package/html/dist/index.d.ts +6 -0
- package/src/package/html/dist/index.js +79 -0
- package/src/package/html/dist/index.mjs +45 -0
- package/src/package/img/dist/index.d.mts +6 -0
- package/src/package/img/dist/index.d.ts +6 -0
- package/src/package/img/dist/index.js +94 -0
- package/src/package/img/dist/index.mjs +60 -0
- package/src/package/link/dist/index.d.mts +6 -0
- package/src/package/link/dist/index.d.ts +6 -0
- package/src/package/link/dist/index.js +90 -0
- package/src/package/link/dist/index.mjs +56 -0
- package/src/package/markdown/dist/index.d.mts +15 -0
- package/src/package/markdown/dist/index.d.ts +15 -0
- package/src/package/markdown/dist/index.js +92 -0
- package/src/package/markdown/dist/index.mjs +58 -0
- package/src/package/preview/dist/index.d.mts +12 -0
- package/src/package/preview/dist/index.d.ts +12 -0
- package/src/package/preview/dist/index.js +108 -0
- package/src/package/preview/dist/index.mjs +73 -0
- package/src/package/render/dist/browser/index.d.mts +24 -0
- package/src/package/render/dist/browser/index.d.ts +24 -0
- package/src/package/render/dist/browser/index.js +250 -0
- package/src/package/render/dist/browser/index.mjs +214 -0
- package/src/package/render/dist/index.d.mts +23 -0
- package/src/package/render/dist/index.d.ts +23 -0
- package/src/package/render/dist/index.js +768 -0
- package/src/package/render/dist/index.mjs +733 -0
- package/src/package/render/dist/node/index.d.mts +27 -0
- package/src/package/render/dist/node/index.d.ts +27 -0
- package/src/package/render/dist/node/index.js +212 -0
- package/src/package/render/dist/node/index.mjs +176 -0
- package/src/package/row/dist/index.d.mts +10 -0
- package/src/package/row/dist/index.d.ts +10 -0
- package/src/package/row/dist/index.js +93 -0
- package/src/package/row/dist/index.mjs +59 -0
- package/src/package/section/dist/index.d.mts +6 -0
- package/src/package/section/dist/index.d.ts +6 -0
- package/src/package/section/dist/index.js +93 -0
- package/src/package/section/dist/index.mjs +59 -0
- package/src/package/tailwind/dist/index.d.ts +19 -0
- package/src/package/tailwind/dist/index.js +48 -0
- package/src/package/tailwind/dist/index.mjs +17167 -0
- package/src/package/tailwind/dist/tailwindcss/config.d.ts +376 -0
- package/src/package/tailwind/dist/tailwindcss/generated/.gitkeep +0 -0
- package/src/package/tailwind/dist/tailwindcss/generated/colors.d.ts +298 -0
- package/src/package/tailwind/dist/tailwindcss/generated/corePluginList.d.ts +1 -0
- package/src/package/tailwind/dist/tailwindcss/generated/default-theme.d.ts +397 -0
- package/src/package/tailwind/dist/tailwindcss/index.d.ts +11 -0
- package/src/package/text/dist/index.d.mts +6 -0
- package/src/package/text/dist/index.d.ts +6 -0
- package/src/package/text/dist/index.js +89 -0
- package/src/package/text/dist/index.mjs +55 -0
- package/src/utils/types/hot-reload-event.ts +3 -6
- package/dist/preview/.next/cache/eslint/.cache_117y9un +0 -1
- package/dist/preview/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/preview/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/preview/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/preview/.next/cache/webpack/server-production/1.pack +0 -0
- package/dist/preview/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/dist/preview/.next/server/chunks/185.js +0 -1
- package/dist/preview/.next/server/chunks/270.js +0 -10
- package/dist/preview/.next/server/chunks/323.js +0 -4
- package/dist/preview/.next/server/chunks/867.js +0 -7
- package/dist/preview/.next/server/chunks/887.js +0 -5
- package/dist/preview/.next/server/chunks/931.js +0 -6
- package/dist/preview/.next/server/chunks/945.js +0 -13
- package/dist/preview/.next/static/chunks/131-f4d810c5beddfab6.js +0 -2
- package/dist/preview/.next/static/chunks/174-3e37f7e70124a32b.js +0 -1
- package/dist/preview/.next/static/chunks/406-3d68715e81289266.js +0 -1
- package/dist/preview/.next/static/chunks/41423bf1-6f7e6cd2fc1291c3.js +0 -1
- package/dist/preview/.next/static/chunks/968-7fddcc3bfb4ada61.js +0 -1
- package/dist/preview/.next/static/chunks/app/_not-found/page-53e238cd8965175e.js +0 -1
- package/dist/preview/.next/static/chunks/app/layout-94f263ae274f6f80.js +0 -1
- package/dist/preview/.next/static/chunks/app/page-68f0897ebaef4c9c.js +0 -1
- package/dist/preview/.next/static/chunks/app/preview/[...slug]/page-823cfe936f21397d.js +0 -1
- package/dist/preview/.next/static/chunks/framework-9780ea70a2600e73.js +0 -1
- package/dist/preview/.next/static/chunks/main-app-d2690e9b3dbe4561.js +0 -1
- package/dist/preview/.next/static/chunks/main-f2abbba525af0515.js +0 -1
- package/dist/preview/.next/static/chunks/pages/_app-ac8e4ba1a8597f2e.js +0 -1
- package/dist/preview/.next/static/chunks/pages/_error-88e591eedab147f8.js +0 -1
- package/dist/preview/.next/static/yKpx8LQApEcHL50eu16RD/_buildManifest.js +0 -1
- /package/dist/preview/.next/static/{yKpx8LQApEcHL50eu16RD → 6K68y2QEZ1dLbv-Xhi30p}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __async = (__this, __arguments, generator) => {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
var fulfilled = (value) => {
|
|
20
|
+
try {
|
|
21
|
+
step(generator.next(value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
reject(e);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var rejected = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.throw(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// src/browser/render.tsx
|
|
39
|
+
import { convert } from "html-to-text";
|
|
40
|
+
import { Suspense } from "react";
|
|
41
|
+
|
|
42
|
+
// src/shared/utils/pretty.ts
|
|
43
|
+
import { format } from "prettier/standalone";
|
|
44
|
+
import html from "prettier/plugins/html";
|
|
45
|
+
var defaults = {
|
|
46
|
+
endOfLine: "lf",
|
|
47
|
+
tabWidth: 2,
|
|
48
|
+
plugins: [html],
|
|
49
|
+
parser: "html"
|
|
50
|
+
};
|
|
51
|
+
var pretty = (str, options = {}) => {
|
|
52
|
+
return format(str, __spreadValues(__spreadValues({}, defaults), options));
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// src/shared/plain-text-selectors.ts
|
|
56
|
+
var plainTextSelectors = [
|
|
57
|
+
{ selector: "img", format: "skip" },
|
|
58
|
+
{ selector: "#__react-email-preview", format: "skip" },
|
|
59
|
+
{
|
|
60
|
+
selector: "a",
|
|
61
|
+
options: { linkBrackets: false }
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
// src/browser/render.tsx
|
|
66
|
+
import { jsx } from "react/jsx-runtime";
|
|
67
|
+
var decoder = new TextDecoder("utf-8");
|
|
68
|
+
var readStream = (stream) => __async(void 0, null, function* () {
|
|
69
|
+
const chunks = [];
|
|
70
|
+
if ("pipeTo" in stream) {
|
|
71
|
+
const writableStream = new WritableStream({
|
|
72
|
+
write(chunk) {
|
|
73
|
+
chunks.push(chunk);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
yield stream.pipeTo(writableStream);
|
|
77
|
+
} else {
|
|
78
|
+
throw new Error(
|
|
79
|
+
"For some reason, the Node version of `react-dom/server` has been imported instead of the browser one.",
|
|
80
|
+
{
|
|
81
|
+
cause: {
|
|
82
|
+
stream
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
let length = 0;
|
|
88
|
+
chunks.forEach((item) => {
|
|
89
|
+
length += item.length;
|
|
90
|
+
});
|
|
91
|
+
const mergedChunks = new Uint8Array(length);
|
|
92
|
+
let offset = 0;
|
|
93
|
+
chunks.forEach((item) => {
|
|
94
|
+
mergedChunks.set(item, offset);
|
|
95
|
+
offset += item.length;
|
|
96
|
+
});
|
|
97
|
+
return decoder.decode(mergedChunks);
|
|
98
|
+
});
|
|
99
|
+
var render = (element, options) => __async(void 0, null, function* () {
|
|
100
|
+
const suspendedElement = /* @__PURE__ */ jsx(Suspense, { children: element });
|
|
101
|
+
const reactDOMServer = yield import("react-dom/server");
|
|
102
|
+
let html2;
|
|
103
|
+
if (Object.hasOwn(reactDOMServer, "renderToReadableStream")) {
|
|
104
|
+
html2 = yield readStream(
|
|
105
|
+
yield reactDOMServer.renderToReadableStream(suspendedElement)
|
|
106
|
+
);
|
|
107
|
+
} else {
|
|
108
|
+
yield new Promise((resolve, reject) => {
|
|
109
|
+
const stream = reactDOMServer.renderToPipeableStream(suspendedElement, {
|
|
110
|
+
onAllReady() {
|
|
111
|
+
return __async(this, null, function* () {
|
|
112
|
+
html2 = yield readStream(stream);
|
|
113
|
+
resolve();
|
|
114
|
+
});
|
|
115
|
+
},
|
|
116
|
+
onError(error) {
|
|
117
|
+
reject(error);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (options == null ? void 0 : options.plainText) {
|
|
123
|
+
return convert(html2, __spreadValues({
|
|
124
|
+
selectors: plainTextSelectors
|
|
125
|
+
}, options.htmlToTextOptions));
|
|
126
|
+
}
|
|
127
|
+
const doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
|
|
128
|
+
const document = `${doctype}${html2.replace(/<!DOCTYPE.*?>/, "")}`;
|
|
129
|
+
if (options == null ? void 0 : options.pretty) {
|
|
130
|
+
return pretty(document);
|
|
131
|
+
}
|
|
132
|
+
return document;
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// src/browser/render-async.tsx
|
|
136
|
+
import { convert as convert2 } from "html-to-text";
|
|
137
|
+
import { Suspense as Suspense2 } from "react";
|
|
138
|
+
|
|
139
|
+
// src/browser/read-stream.ts
|
|
140
|
+
var decoder2 = new TextDecoder("utf-8");
|
|
141
|
+
var readStream2 = (stream) => __async(void 0, null, function* () {
|
|
142
|
+
const chunks = [];
|
|
143
|
+
if ("pipeTo" in stream) {
|
|
144
|
+
const writableStream = new WritableStream({
|
|
145
|
+
write(chunk) {
|
|
146
|
+
chunks.push(chunk);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
yield stream.pipeTo(writableStream);
|
|
150
|
+
} else {
|
|
151
|
+
throw new Error(
|
|
152
|
+
"For some reason, the Node version of `react-dom/server` has been imported instead of the browser one.",
|
|
153
|
+
{
|
|
154
|
+
cause: {
|
|
155
|
+
stream
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
let length = 0;
|
|
161
|
+
chunks.forEach((item) => {
|
|
162
|
+
length += item.length;
|
|
163
|
+
});
|
|
164
|
+
const mergedChunks = new Uint8Array(length);
|
|
165
|
+
let offset = 0;
|
|
166
|
+
chunks.forEach((item) => {
|
|
167
|
+
mergedChunks.set(item, offset);
|
|
168
|
+
offset += item.length;
|
|
169
|
+
});
|
|
170
|
+
return decoder2.decode(mergedChunks);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// src/browser/render-async.tsx
|
|
174
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
175
|
+
var renderAsync = (element, options) => __async(void 0, null, function* () {
|
|
176
|
+
const suspendedElement = /* @__PURE__ */ jsx2(Suspense2, { children: element });
|
|
177
|
+
const reactDOMServer = yield import("react-dom/server");
|
|
178
|
+
let html2;
|
|
179
|
+
if (Object.hasOwn(reactDOMServer, "renderToReadableStream")) {
|
|
180
|
+
html2 = yield readStream2(
|
|
181
|
+
yield reactDOMServer.renderToReadableStream(suspendedElement)
|
|
182
|
+
);
|
|
183
|
+
} else {
|
|
184
|
+
yield new Promise((resolve, reject) => {
|
|
185
|
+
const stream = reactDOMServer.renderToPipeableStream(suspendedElement, {
|
|
186
|
+
onAllReady() {
|
|
187
|
+
return __async(this, null, function* () {
|
|
188
|
+
html2 = yield readStream2(stream);
|
|
189
|
+
resolve();
|
|
190
|
+
});
|
|
191
|
+
},
|
|
192
|
+
onError(error) {
|
|
193
|
+
reject(error);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (options == null ? void 0 : options.plainText) {
|
|
199
|
+
return convert2(html2, __spreadValues({
|
|
200
|
+
selectors: plainTextSelectors
|
|
201
|
+
}, options.htmlToTextOptions));
|
|
202
|
+
}
|
|
203
|
+
const doctype = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
|
|
204
|
+
const document = `${doctype}${html2.replace(/<!DOCTYPE.*?>/, "")}`;
|
|
205
|
+
if (options == null ? void 0 : options.pretty) {
|
|
206
|
+
return pretty(document);
|
|
207
|
+
}
|
|
208
|
+
return document;
|
|
209
|
+
});
|
|
210
|
+
export {
|
|
211
|
+
plainTextSelectors,
|
|
212
|
+
render,
|
|
213
|
+
renderAsync
|
|
214
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HtmlToTextOptions } from 'html-to-text';
|
|
2
|
+
import { Options as Options$1 } from 'prettier';
|
|
3
|
+
|
|
4
|
+
type Options = {
|
|
5
|
+
pretty?: boolean;
|
|
6
|
+
} & ({
|
|
7
|
+
plainText?: false;
|
|
8
|
+
} | {
|
|
9
|
+
plainText?: true;
|
|
10
|
+
/**
|
|
11
|
+
* These are options you can pass down directly to the library we use for
|
|
12
|
+
* converting the rendered email's HTML into plain text.
|
|
13
|
+
*
|
|
14
|
+
* @see https://github.com/html-to-text/node-html-to-text
|
|
15
|
+
*/
|
|
16
|
+
htmlToTextOptions?: HtmlToTextOptions;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
declare const render: (element: React.ReactElement, options?: Options) => Promise<string>;
|
|
20
|
+
|
|
21
|
+
declare const pretty: (str: string, options?: Options$1) => Promise<string>;
|
|
22
|
+
|
|
23
|
+
export { Options, pretty, render };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HtmlToTextOptions } from 'html-to-text';
|
|
2
|
+
import { Options as Options$1 } from 'prettier';
|
|
3
|
+
|
|
4
|
+
type Options = {
|
|
5
|
+
pretty?: boolean;
|
|
6
|
+
} & ({
|
|
7
|
+
plainText?: false;
|
|
8
|
+
} | {
|
|
9
|
+
plainText?: true;
|
|
10
|
+
/**
|
|
11
|
+
* These are options you can pass down directly to the library we use for
|
|
12
|
+
* converting the rendered email's HTML into plain text.
|
|
13
|
+
*
|
|
14
|
+
* @see https://github.com/html-to-text/node-html-to-text
|
|
15
|
+
*/
|
|
16
|
+
htmlToTextOptions?: HtmlToTextOptions;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
declare const render: (element: React.ReactElement, options?: Options) => Promise<string>;
|
|
20
|
+
|
|
21
|
+
declare const pretty: (str: string, options?: Options$1) => Promise<string>;
|
|
22
|
+
|
|
23
|
+
export { Options, pretty, render };
|