@gravito/signal 3.0.4 → 3.1.2
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/README.md +26 -15
- package/dist/Mailable.d.ts +453 -0
- package/dist/OrbitSignal.d.ts +267 -0
- package/{src/Queueable.ts → dist/Queueable.d.ts} +1 -1
- package/{src/TypedMailable.ts → dist/TypedMailable.d.ts} +12 -13
- package/dist/dev/DevMailbox.d.ts +79 -0
- package/dist/dev/DevServer.d.ts +39 -0
- package/dist/dev/storage/FileMailboxStorage.d.ts +16 -0
- package/dist/dev/storage/MailboxStorage.d.ts +14 -0
- package/dist/dev/storage/MemoryMailboxStorage.d.ts +13 -0
- package/dist/dev/ui/mailbox.d.ts +11 -0
- package/dist/dev/ui/preview.d.ts +11 -0
- package/dist/dev/ui/shared.d.ts +15 -0
- package/dist/errors.d.ts +58 -0
- package/{src/events.ts → dist/events.d.ts} +20 -29
- package/dist/{lib-HJTRWKU5.mjs → index.cjs} +4687 -10983
- package/dist/index.d.ts +303 -1874
- package/dist/index.js +317 -45939
- package/dist/index.mjs +59748 -27
- package/dist/renderers/HtmlRenderer.d.ts +34 -0
- package/dist/renderers/MjmlRenderer.d.ts +41 -0
- package/dist/renderers/ReactMjmlRenderer.d.ts +38 -0
- package/dist/renderers/ReactRenderer.d.ts +46 -0
- package/{src/renderers/Renderer.ts → dist/renderers/Renderer.d.ts} +23 -24
- package/dist/renderers/TemplateRenderer.d.ts +55 -0
- package/dist/renderers/VueMjmlRenderer.d.ts +39 -0
- package/dist/renderers/VueRenderer.d.ts +47 -0
- package/dist/renderers/mjml-templates.d.ts +11 -0
- package/dist/transports/BaseTransport.d.ts +111 -0
- package/dist/transports/LogTransport.d.ts +42 -0
- package/dist/transports/MemoryTransport.d.ts +51 -0
- package/dist/transports/SesTransport.d.ts +79 -0
- package/dist/transports/SmtpTransport.d.ts +124 -0
- package/dist/transports/Transport.d.ts +44 -0
- package/dist/types.d.ts +294 -0
- package/{src/utils/html.ts → dist/utils/html.d.ts} +1 -15
- package/dist/webhooks/SendGridWebhookDriver.d.ts +45 -0
- package/dist/webhooks/SesWebhookDriver.d.ts +23 -0
- package/package.json +20 -8
- package/CHANGELOG.md +0 -74
- package/dist/MjmlRenderer-IUH663FT.mjs +0 -8
- package/dist/ReactMjmlRenderer-C3P5YO5L.mjs +0 -8
- package/dist/ReactRenderer-24SQ4KRU.mjs +0 -27
- package/dist/ReactRenderer-2JFLRVST.mjs +0 -45
- package/dist/ReactRenderer-CMCAOEPH.mjs +0 -28
- package/dist/ReactRenderer-KYNA4WKE.mjs +0 -28
- package/dist/ReactRenderer-LYEOSYFS.mjs +0 -28
- package/dist/ReactRenderer-V54CUUEI.mjs +0 -45
- package/dist/VueMjmlRenderer-4F4CXHDB.mjs +0 -8
- package/dist/VueMjmlRenderer-5WZR4CQG.mjs +0 -8
- package/dist/VueMjmlRenderer-U5YMWI44.mjs +0 -8
- package/dist/VueRenderer-3YBRQXME.mjs +0 -48
- package/dist/VueRenderer-46JGXTJ2.mjs +0 -48
- package/dist/VueRenderer-5KWD4R3C.mjs +0 -48
- package/dist/VueRenderer-C23U4O5E.mjs +0 -48
- package/dist/VueRenderer-DWTCD2RF.mjs +0 -31
- package/dist/VueRenderer-IIR5SYTM.mjs +0 -31
- package/dist/VueRenderer-LEVDFLHP.mjs +0 -31
- package/dist/VueRenderer-RNHSCCRI.mjs +0 -48
- package/dist/VueRenderer-SUP66ISX.mjs +0 -29
- package/dist/chunk-3WOR3XSL.mjs +0 -82
- package/dist/chunk-DBFIVHHG.mjs +0 -79
- package/dist/chunk-EBO3CZXG.mjs +0 -15
- package/dist/chunk-HEBXNMVQ.mjs +0 -48
- package/dist/chunk-KB7IDDBT.mjs +0 -82
- package/dist/chunk-LZL5UUPC.mjs +0 -82
- package/dist/chunk-W6LXIJKK.mjs +0 -57
- package/dist/chunk-XBIVBJS2.mjs +0 -8
- package/dist/index.d.mts +0 -2115
- package/dist/server-renderer-4IM3P5XZ.mjs +0 -37183
- package/dist/server-renderer-4W4FI7YG.mjs +0 -37269
- package/dist/server-renderer-7KWFSTPV.mjs +0 -37193
- package/dist/server-renderer-S5FPSTJ2.mjs +0 -37183
- package/dist/server-renderer-X5LUFVWT.mjs +0 -37193
- package/doc/OPTIMIZATION_PLAN.md +0 -496
- package/scripts/check-coverage.ts +0 -64
- package/src/Mailable.ts +0 -674
- package/src/OrbitSignal.ts +0 -451
- package/src/dev/DevMailbox.ts +0 -146
- package/src/dev/DevServer.ts +0 -192
- package/src/dev/storage/FileMailboxStorage.ts +0 -66
- package/src/dev/storage/MailboxStorage.ts +0 -15
- package/src/dev/storage/MemoryMailboxStorage.ts +0 -36
- package/src/dev/ui/mailbox.ts +0 -77
- package/src/dev/ui/preview.ts +0 -103
- package/src/dev/ui/shared.ts +0 -60
- package/src/errors.ts +0 -69
- package/src/index.ts +0 -41
- package/src/renderers/HtmlRenderer.ts +0 -41
- package/src/renderers/MjmlRenderer.ts +0 -73
- package/src/renderers/ReactMjmlRenderer.ts +0 -94
- package/src/renderers/ReactRenderer.ts +0 -66
- package/src/renderers/TemplateRenderer.ts +0 -84
- package/src/renderers/VueMjmlRenderer.ts +0 -99
- package/src/renderers/VueRenderer.ts +0 -71
- package/src/renderers/mjml-templates.ts +0 -50
- package/src/transports/BaseTransport.ts +0 -148
- package/src/transports/LogTransport.ts +0 -55
- package/src/transports/MemoryTransport.ts +0 -55
- package/src/transports/SesTransport.ts +0 -129
- package/src/transports/SmtpTransport.ts +0 -184
- package/src/transports/Transport.ts +0 -45
- package/src/types.ts +0 -309
- package/src/webhooks/SendGridWebhookDriver.ts +0 -80
- package/src/webhooks/SesWebhookDriver.ts +0 -44
- package/tests/DevMailbox.test.ts +0 -54
- package/tests/FileMailboxStorage.test.ts +0 -56
- package/tests/MjmlLayout.test.ts +0 -28
- package/tests/MjmlRenderer.test.ts +0 -53
- package/tests/OrbitSignalWebhook.test.ts +0 -56
- package/tests/ReactMjmlRenderer.test.ts +0 -33
- package/tests/SendGridWebhookDriver.test.ts +0 -69
- package/tests/SesWebhookDriver.test.ts +0 -46
- package/tests/VueMjmlRenderer.test.ts +0 -35
- package/tests/dev-server.test.ts +0 -66
- package/tests/log-transport.test.ts +0 -21
- package/tests/mailable-extra.test.ts +0 -68
- package/tests/mailable.test.ts +0 -77
- package/tests/orbit-signal.test.ts +0 -43
- package/tests/renderers.test.ts +0 -58
- package/tests/template-renderer.test.ts +0 -24
- package/tests/transports.test.ts +0 -52
- package/tests/ui.test.ts +0 -37
- package/tsconfig.json +0 -14
package/dist/chunk-3WOR3XSL.mjs
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stripHtml
|
|
3
|
-
} from "./chunk-XBIVBJS2.mjs";
|
|
4
|
-
|
|
5
|
-
// src/renderers/VueMjmlRenderer.ts
|
|
6
|
-
var VueMjmlRenderer = class {
|
|
7
|
-
/**
|
|
8
|
-
* Creates an instance of VueMjmlRenderer.
|
|
9
|
-
*
|
|
10
|
-
* @param component - The Vue component to render.
|
|
11
|
-
* @param props - Initial props for the component.
|
|
12
|
-
* @param options - Optional MJML transformation options.
|
|
13
|
-
* @param deps - Optional dependency injection for testing.
|
|
14
|
-
*/
|
|
15
|
-
constructor(component, props, options = {}, deps = {}) {
|
|
16
|
-
this.component = component;
|
|
17
|
-
this.props = props;
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.deps = deps;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Renders the Vue component to a static HTML string via MJML.
|
|
23
|
-
*
|
|
24
|
-
* @param data - Runtime data to be merged with initial props.
|
|
25
|
-
* @returns A promise resolving to the rendered content.
|
|
26
|
-
* @throws {Error} If MJML rendering fails.
|
|
27
|
-
*/
|
|
28
|
-
async render(data) {
|
|
29
|
-
let { createSSRApp, h, renderToString, mjml2html } = this.deps;
|
|
30
|
-
if (!createSSRApp || !h || !renderToString) {
|
|
31
|
-
try {
|
|
32
|
-
const vue = await import("vue");
|
|
33
|
-
const vueServerRenderer = await import("./server-renderer-4IM3P5XZ.mjs");
|
|
34
|
-
createSSRApp ??= vue.createSSRApp;
|
|
35
|
-
h ??= vue.h;
|
|
36
|
-
renderToString ??= vueServerRenderer.renderToString;
|
|
37
|
-
} catch (_e) {
|
|
38
|
-
throw new Error(
|
|
39
|
-
'[OrbitSignal] The "vue" and "@vue/server-renderer" packages are required for VueMjmlRenderer. Please install them using "bun add vue @vue/server-renderer".'
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (!mjml2html) {
|
|
44
|
-
try {
|
|
45
|
-
mjml2html = (await import("./lib-HJTRWKU5.mjs")).default;
|
|
46
|
-
} catch (_e) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
'[OrbitSignal] The "mjml" package is required for VueMjmlRenderer. Please install it using "bun add mjml".'
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const mergedProps = { ...this.props, ...data };
|
|
53
|
-
const app = createSSRApp?.({
|
|
54
|
-
render: () => h?.(this.component, mergedProps)
|
|
55
|
-
});
|
|
56
|
-
const mjml = await renderToString?.(app);
|
|
57
|
-
if (!mjml) {
|
|
58
|
-
throw new Error("Failed to render MJML template");
|
|
59
|
-
}
|
|
60
|
-
const result = mjml2html?.(mjml, {
|
|
61
|
-
validationLevel: "soft",
|
|
62
|
-
...this.options
|
|
63
|
-
});
|
|
64
|
-
if (!result) {
|
|
65
|
-
throw new Error("Failed to convert MJML to HTML");
|
|
66
|
-
}
|
|
67
|
-
const { html, errors } = result;
|
|
68
|
-
if (errors && errors.length > 0 && this.options.validationLevel === "strict") {
|
|
69
|
-
throw new Error(
|
|
70
|
-
`MJML rendering failed: ${errors.map((e) => e.formattedMessage).join(", ")}`
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
html,
|
|
75
|
-
text: stripHtml(html)
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export {
|
|
81
|
-
VueMjmlRenderer
|
|
82
|
-
};
|
package/dist/chunk-DBFIVHHG.mjs
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stripHtml
|
|
3
|
-
} from "./chunk-XBIVBJS2.mjs";
|
|
4
|
-
|
|
5
|
-
// src/renderers/ReactMjmlRenderer.ts
|
|
6
|
-
var ReactMjmlRenderer = class {
|
|
7
|
-
/**
|
|
8
|
-
* Creates an instance of ReactMjmlRenderer.
|
|
9
|
-
*
|
|
10
|
-
* @param component - The React component to render.
|
|
11
|
-
* @param props - Initial props for the component.
|
|
12
|
-
* @param options - Optional MJML transformation options.
|
|
13
|
-
* @param deps - Optional dependency injection for testing.
|
|
14
|
-
*/
|
|
15
|
-
constructor(component, props, options = {}, deps = {}) {
|
|
16
|
-
this.component = component;
|
|
17
|
-
this.props = props;
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.deps = deps;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Renders the React component to a static HTML string via MJML.
|
|
23
|
-
*
|
|
24
|
-
* @param data - Runtime data to be merged with initial props.
|
|
25
|
-
* @returns A promise resolving to the rendered content.
|
|
26
|
-
* @throws {Error} If MJML rendering fails.
|
|
27
|
-
*/
|
|
28
|
-
async render(data) {
|
|
29
|
-
let { createElement, renderToStaticMarkup, mjml2html } = this.deps;
|
|
30
|
-
if (!createElement || !renderToStaticMarkup) {
|
|
31
|
-
try {
|
|
32
|
-
const react = await import("react");
|
|
33
|
-
const reactDomServer = await import("react-dom/server");
|
|
34
|
-
createElement ??= react.createElement;
|
|
35
|
-
renderToStaticMarkup ??= reactDomServer.renderToStaticMarkup;
|
|
36
|
-
} catch (_e) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
'[OrbitSignal] The "react" and "react-dom" packages are required for ReactMjmlRenderer. Please install them using "bun add react react-dom".'
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (!mjml2html) {
|
|
43
|
-
try {
|
|
44
|
-
mjml2html = (await import("./lib-HJTRWKU5.mjs")).default;
|
|
45
|
-
} catch (_e) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
'[OrbitSignal] The "mjml" package is required for ReactMjmlRenderer. Please install it using "bun add mjml".'
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const mergedProps = { ...this.props, ...data };
|
|
52
|
-
const element = createElement?.(this.component, mergedProps);
|
|
53
|
-
const mjml = renderToStaticMarkup?.(element);
|
|
54
|
-
if (!mjml) {
|
|
55
|
-
throw new Error("Failed to render MJML template");
|
|
56
|
-
}
|
|
57
|
-
const result = mjml2html?.(mjml, {
|
|
58
|
-
validationLevel: "soft",
|
|
59
|
-
...this.options
|
|
60
|
-
});
|
|
61
|
-
if (!result) {
|
|
62
|
-
throw new Error("Failed to convert MJML to HTML");
|
|
63
|
-
}
|
|
64
|
-
const { html, errors } = result;
|
|
65
|
-
if (errors && errors.length > 0 && this.options.validationLevel === "strict") {
|
|
66
|
-
throw new Error(
|
|
67
|
-
`MJML rendering failed: ${errors.map((e) => e.formattedMessage).join(", ")}`
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
return {
|
|
71
|
-
html,
|
|
72
|
-
text: stripHtml(html)
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
export {
|
|
78
|
-
ReactMjmlRenderer
|
|
79
|
-
};
|
package/dist/chunk-EBO3CZXG.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
3
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
4
|
-
}) : x)(function(x) {
|
|
5
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
6
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
-
});
|
|
8
|
-
var __commonJS = (cb, mod) => function __require2() {
|
|
9
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
__require,
|
|
14
|
-
__commonJS
|
|
15
|
-
};
|
package/dist/chunk-HEBXNMVQ.mjs
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
8
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
9
|
-
}) : x)(function(x) {
|
|
10
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
11
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
12
|
-
});
|
|
13
|
-
var __esm = (fn, res) => function __init() {
|
|
14
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
15
|
-
};
|
|
16
|
-
var __commonJS = (cb, mod) => function __require2() {
|
|
17
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
18
|
-
};
|
|
19
|
-
var __export = (target, all) => {
|
|
20
|
-
for (var name in all)
|
|
21
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
22
|
-
};
|
|
23
|
-
var __copyProps = (to, from, except, desc) => {
|
|
24
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
25
|
-
for (let key of __getOwnPropNames(from))
|
|
26
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
27
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
28
|
-
}
|
|
29
|
-
return to;
|
|
30
|
-
};
|
|
31
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
32
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
33
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
34
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
35
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
36
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
37
|
-
mod
|
|
38
|
-
));
|
|
39
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
__require,
|
|
43
|
-
__esm,
|
|
44
|
-
__commonJS,
|
|
45
|
-
__export,
|
|
46
|
-
__toESM,
|
|
47
|
-
__toCommonJS
|
|
48
|
-
};
|
package/dist/chunk-KB7IDDBT.mjs
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stripHtml
|
|
3
|
-
} from "./chunk-XBIVBJS2.mjs";
|
|
4
|
-
|
|
5
|
-
// src/renderers/VueMjmlRenderer.ts
|
|
6
|
-
var VueMjmlRenderer = class {
|
|
7
|
-
/**
|
|
8
|
-
* Creates an instance of VueMjmlRenderer.
|
|
9
|
-
*
|
|
10
|
-
* @param component - The Vue component to render.
|
|
11
|
-
* @param props - Initial props for the component.
|
|
12
|
-
* @param options - Optional MJML transformation options.
|
|
13
|
-
* @param deps - Optional dependency injection for testing.
|
|
14
|
-
*/
|
|
15
|
-
constructor(component, props, options = {}, deps = {}) {
|
|
16
|
-
this.component = component;
|
|
17
|
-
this.props = props;
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.deps = deps;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Renders the Vue component to a static HTML string via MJML.
|
|
23
|
-
*
|
|
24
|
-
* @param data - Runtime data to be merged with initial props.
|
|
25
|
-
* @returns A promise resolving to the rendered content.
|
|
26
|
-
* @throws {Error} If MJML rendering fails.
|
|
27
|
-
*/
|
|
28
|
-
async render(data) {
|
|
29
|
-
let { createSSRApp, h, renderToString, mjml2html } = this.deps;
|
|
30
|
-
if (!createSSRApp || !h || !renderToString) {
|
|
31
|
-
try {
|
|
32
|
-
const vue = await import("vue");
|
|
33
|
-
const vueServerRenderer = await import("./server-renderer-7KWFSTPV.mjs");
|
|
34
|
-
createSSRApp ??= vue.createSSRApp;
|
|
35
|
-
h ??= vue.h;
|
|
36
|
-
renderToString ??= vueServerRenderer.renderToString;
|
|
37
|
-
} catch (_e) {
|
|
38
|
-
throw new Error(
|
|
39
|
-
'[OrbitSignal] The "vue" and "@vue/server-renderer" packages are required for VueMjmlRenderer. Please install them using "bun add vue @vue/server-renderer".'
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (!mjml2html) {
|
|
44
|
-
try {
|
|
45
|
-
mjml2html = (await import("./lib-HJTRWKU5.mjs")).default;
|
|
46
|
-
} catch (_e) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
'[OrbitSignal] The "mjml" package is required for VueMjmlRenderer. Please install it using "bun add mjml".'
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const mergedProps = { ...this.props, ...data };
|
|
53
|
-
const app = createSSRApp?.({
|
|
54
|
-
render: () => h?.(this.component, mergedProps)
|
|
55
|
-
});
|
|
56
|
-
const mjml = await renderToString?.(app);
|
|
57
|
-
if (!mjml) {
|
|
58
|
-
throw new Error("Failed to render MJML template");
|
|
59
|
-
}
|
|
60
|
-
const result = mjml2html?.(mjml, {
|
|
61
|
-
validationLevel: "soft",
|
|
62
|
-
...this.options
|
|
63
|
-
});
|
|
64
|
-
if (!result) {
|
|
65
|
-
throw new Error("Failed to convert MJML to HTML");
|
|
66
|
-
}
|
|
67
|
-
const { html, errors } = result;
|
|
68
|
-
if (errors && errors.length > 0 && this.options.validationLevel === "strict") {
|
|
69
|
-
throw new Error(
|
|
70
|
-
`MJML rendering failed: ${errors.map((e) => e.formattedMessage).join(", ")}`
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
html,
|
|
75
|
-
text: stripHtml(html)
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export {
|
|
81
|
-
VueMjmlRenderer
|
|
82
|
-
};
|
package/dist/chunk-LZL5UUPC.mjs
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stripHtml
|
|
3
|
-
} from "./chunk-XBIVBJS2.mjs";
|
|
4
|
-
|
|
5
|
-
// src/renderers/VueMjmlRenderer.ts
|
|
6
|
-
var VueMjmlRenderer = class {
|
|
7
|
-
/**
|
|
8
|
-
* Creates an instance of VueMjmlRenderer.
|
|
9
|
-
*
|
|
10
|
-
* @param component - The Vue component to render.
|
|
11
|
-
* @param props - Initial props for the component.
|
|
12
|
-
* @param options - Optional MJML transformation options.
|
|
13
|
-
* @param deps - Optional dependency injection for testing.
|
|
14
|
-
*/
|
|
15
|
-
constructor(component, props, options = {}, deps = {}) {
|
|
16
|
-
this.component = component;
|
|
17
|
-
this.props = props;
|
|
18
|
-
this.options = options;
|
|
19
|
-
this.deps = deps;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Renders the Vue component to a static HTML string via MJML.
|
|
23
|
-
*
|
|
24
|
-
* @param data - Runtime data to be merged with initial props.
|
|
25
|
-
* @returns A promise resolving to the rendered content.
|
|
26
|
-
* @throws {Error} If MJML rendering fails.
|
|
27
|
-
*/
|
|
28
|
-
async render(data) {
|
|
29
|
-
let { createSSRApp, h, renderToString, mjml2html } = this.deps;
|
|
30
|
-
if (!createSSRApp || !h || !renderToString) {
|
|
31
|
-
try {
|
|
32
|
-
const vue = await import("vue");
|
|
33
|
-
const vueServerRenderer = await import("./server-renderer-X5LUFVWT.mjs");
|
|
34
|
-
createSSRApp ??= vue.createSSRApp;
|
|
35
|
-
h ??= vue.h;
|
|
36
|
-
renderToString ??= vueServerRenderer.renderToString;
|
|
37
|
-
} catch (_e) {
|
|
38
|
-
throw new Error(
|
|
39
|
-
'[OrbitSignal] The "vue" and "@vue/server-renderer" packages are required for VueMjmlRenderer. Please install them using "bun add vue @vue/server-renderer".'
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (!mjml2html) {
|
|
44
|
-
try {
|
|
45
|
-
mjml2html = (await import("./lib-HJTRWKU5.mjs")).default;
|
|
46
|
-
} catch (_e) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
'[OrbitSignal] The "mjml" package is required for VueMjmlRenderer. Please install it using "bun add mjml".'
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
const mergedProps = { ...this.props, ...data };
|
|
53
|
-
const app = createSSRApp?.({
|
|
54
|
-
render: () => h?.(this.component, mergedProps)
|
|
55
|
-
});
|
|
56
|
-
const mjml = await renderToString?.(app);
|
|
57
|
-
if (!mjml) {
|
|
58
|
-
throw new Error("Failed to render MJML template");
|
|
59
|
-
}
|
|
60
|
-
const result = mjml2html?.(mjml, {
|
|
61
|
-
validationLevel: "soft",
|
|
62
|
-
...this.options
|
|
63
|
-
});
|
|
64
|
-
if (!result) {
|
|
65
|
-
throw new Error("Failed to convert MJML to HTML");
|
|
66
|
-
}
|
|
67
|
-
const { html, errors } = result;
|
|
68
|
-
if (errors && errors.length > 0 && this.options.validationLevel === "strict") {
|
|
69
|
-
throw new Error(
|
|
70
|
-
`MJML rendering failed: ${errors.map((e) => e.formattedMessage).join(", ")}`
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
html,
|
|
75
|
-
text: stripHtml(html)
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export {
|
|
81
|
-
VueMjmlRenderer
|
|
82
|
-
};
|
package/dist/chunk-W6LXIJKK.mjs
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
stripHtml
|
|
3
|
-
} from "./chunk-XBIVBJS2.mjs";
|
|
4
|
-
|
|
5
|
-
// src/renderers/MjmlRenderer.ts
|
|
6
|
-
var MjmlRenderer = class {
|
|
7
|
-
/**
|
|
8
|
-
* Creates an instance of MjmlRenderer.
|
|
9
|
-
*
|
|
10
|
-
* @param content - The MJML markup string to be rendered.
|
|
11
|
-
* @param options - Optional MJML transformation options.
|
|
12
|
-
* @param deps - Optional dependency injection for testing.
|
|
13
|
-
*/
|
|
14
|
-
constructor(content, options = {}, deps = {}) {
|
|
15
|
-
this.content = content;
|
|
16
|
-
this.options = options;
|
|
17
|
-
this.deps = deps;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Renders the MJML content to static HTML.
|
|
21
|
-
*
|
|
22
|
-
* This method performs a dynamic import of `mjml` to ensure it's only
|
|
23
|
-
* loaded if this renderer is actually used.
|
|
24
|
-
*
|
|
25
|
-
* @returns A promise resolving to the rendered content.
|
|
26
|
-
* @throws {Error} If MJML dependencies cannot be loaded or rendering fails.
|
|
27
|
-
*/
|
|
28
|
-
async render() {
|
|
29
|
-
let mjml2html = this.deps.mjml2html;
|
|
30
|
-
if (!mjml2html) {
|
|
31
|
-
try {
|
|
32
|
-
mjml2html = (await import("./lib-HJTRWKU5.mjs")).default;
|
|
33
|
-
} catch (_e) {
|
|
34
|
-
throw new Error(
|
|
35
|
-
'[OrbitSignal] The "mjml" package is required for MjmlRenderer. Please install it using "bun add mjml".'
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const { html, errors } = mjml2html(this.content, {
|
|
40
|
-
validationLevel: "soft",
|
|
41
|
-
...this.options
|
|
42
|
-
});
|
|
43
|
-
if (errors && errors.length > 0 && this.options.validationLevel === "strict") {
|
|
44
|
-
throw new Error(
|
|
45
|
-
`MJML rendering failed: ${errors.map((e) => e.formattedMessage).join(", ")}`
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
html,
|
|
50
|
-
text: stripHtml(html)
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
export {
|
|
56
|
-
MjmlRenderer
|
|
57
|
-
};
|
package/dist/chunk-XBIVBJS2.mjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// src/utils/html.ts
|
|
2
|
-
function stripHtml(html) {
|
|
3
|
-
return html.replace(/<style(?:\s[^>]*)?>[\s\S]*?<\/style>/gi, "").replace(/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/gi, "").replace(/<[^>]+>/g, "").replace(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/\s+/g, " ").trim();
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export {
|
|
7
|
-
stripHtml
|
|
8
|
-
};
|