@emailmaker/emailmaker 1.1.15 → 1.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/{emailmaker-core.4725286d.js → emailmaker-core.89101e30.js} +1 -1
  2. package/emailmaker-esm.js +5 -5
  3. package/emailmaker.js +7 -7
  4. package/iframe/js/amp.BbapYQ7c.js +1 -0
  5. package/iframe/js/iframe-eblock.js +1 -1
  6. package/iframe/js/iframe.js +1 -1
  7. package/iframe/js/rules.CNqvmp_P.js +1 -1
  8. package/iframe/js/sanitize-html/sanitize-html.js +21756 -0
  9. package/iframe/js/sanitize-html/sanitize-html.min.js +16923 -0
  10. package/package.json +1 -1
  11. package/singlepage_headless_plugin.html +1 -1
  12. package/static/core/{83237bf7.js → 18ba331f.js} +1 -1
  13. package/static/core/{68af1b9e.js → 20f9532b.js} +1 -1
  14. package/static/core/28fbe0b6.js +834 -0
  15. package/static/core/{f3a4e54b.js → 313b4001.js} +2 -2
  16. package/static/core/{b8a67517.js → 39c9310d.js} +2 -2
  17. package/static/core/{3a08a74d.js → 52228076.js} +1 -1
  18. package/static/core/7efc3bcb.js +51 -0
  19. package/static/core/{83bfcbe5.js → 7ff62923.js} +4 -4
  20. package/static/core/8194155c.js +1 -0
  21. package/static/core/{a1e4c546.js → 8202e0f8.js} +2 -2
  22. package/static/core/{fcaec856.js → 873a79c1.js} +2 -2
  23. package/static/core/{70f01bbc.js → 9bc6d2d5.js} +1 -1
  24. package/static/core/{8597dcdb.js → ce528e2c.js} +6 -6
  25. package/static/core/{dbca3d8c.js → f99ffa93.js} +6 -6
  26. package/static/esm/{c4069a00.js → 6efa3ebe.js} +1 -1
  27. package/two_step_headless_plugin.html +1 -1
  28. package/vite/index.cjs +21 -3
  29. package/vite/index.js +21 -3
  30. package/iframe/js/amp.ChogY1pX.js +0 -1
  31. package/iframe/js/sanitize-html.CeWggAnN.js +0 -1
  32. package/static/core/5b0b84dc.js +0 -51
  33. package/static/core/c086d422.js +0 -834
  34. package/static/core/e683373a.js +0 -1
  35. /package/iframe/{iframe-eblock.4725286d.html → iframe-eblock.89101e30.html} +0 -0
  36. /package/iframe/{iframe.4725286d.html → iframe.89101e30.html} +0 -0
@@ -1 +1 @@
1
- import{d as e,s as t}from"./b9d66884.js";import"@emailmaker/emailmaker/runtime/react";function n(e){if(e instanceof DOMException&&e.name===`AbortError`)return e;let t=e===void 0?`The operation was aborted.`:typeof e==`string`?e:e instanceof Error?e.message:String(e);return new DOMException(t,`AbortError`)}function r(e){if(e?.aborted)throw n(e.reason)}function i(e,t){return t?(r(t),new Promise((r,i)=>{let a=()=>{o(),i(n(t.reason))},o=()=>{t.removeEventListener(`abort`,a)};t.addEventListener(`abort`,a),e.then(e=>{o(),r(e)},e=>{o(),i(e)})})):e}function a(t,i,a){if(r(a),t!==void 0){if(typeof t==`string`){let r=t,o=document.querySelector(r);if(o)return o;let s=i.addDisposable(new e);return new Promise((e,t)=>{let i=e=>{s.dispose(),e()},o=()=>{i(()=>t(n(a?.reason)))};if(a?.aborted){o();return}a?.addEventListener(`abort`,o),s.addDispose(()=>a?.removeEventListener(`abort`,o));let c=new MutationObserver(()=>{let t=document.querySelector(r);t&&i(()=>e(t))});c.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),s.addDispose(()=>c.disconnect())})}return t}return t}var o=new Map;t(`ELEMENT_INSERT_HTML_PIPELINE`),t(`BLOCK_INSERT_HTML_PIPELINE`),t(`DomComponentRegistry`),t(`ComponentRegistry`);function s(e){return t(e)}var c;(function(e){e.BEFORE_SAVE_EMAIL=s(),e.ON_SAVEBUTTON_CLICK_ID=s(),e.ON_NEXTBUTTON_CLICK_ID=s(),e.ON_PREVIOUSBUTTON_CLICK_ID=s(),e.ON_MODEL_CHANGE=s(),e.WILL_EMAIL_INIT_ID=s(),e.ON_EMAIL_INIT_ID=s(),e.ON_BLOCK_INIT_ID=s(),e.ON_CONTENT_CHANGED_ID=s(),e.ON_PREHEADER_CHANGED_ID=s(),e.ON_SUBJECT_CHANGED_ID=s(),e.ON_EMAIL_CHANGED_ID=s(),e.ON_BLOCK_CHANGED_ID=s(),e.ON_CHUNKS_LOADED=s(),e.ON_SEND_TESTEMAIL_ID=s(),e.ON_SEND_LIVEPREVIEW_ID=s(),e.ON_SHARE_ID=s(),e.ON_SHOW_PREVIEW_ID=s(),e.ON_EMAIL_CLONE_ID=s(),e.ON_SEND_EMAIL_MODAL_ID=s(),e.ON_NOTIFICATION=s(),e.READ_LOCALE=s(),e.ON_TRANSLATE_ID=s(),e.ON_CODE_VALIDATE_ID=s(),e.UPLOAD_EVENT_ID=s(),e.PROXY_URL_EVENT_ID=s(),e.FILE_PROXY_EVENT_ID=s(),e.ON_LIMIT_ID=s(),e.ON_BROWSER_EXTENSION_DETECTED_ID=s()})(c||={}),t(),t(),t(`InitPipelineContext`),t(),t(),t(),t(),t(),t(),t(`PluginCollection`),s(`APP_LOAD_EVENT`),s(`CONFIG_CHANGED_EVENT`);export{r as a,i,a as n,n as r,o as t};
1
+ import{d as e,s as t}from"./b9d66884.js";import"@emailmaker/emailmaker/runtime/react";function n(e){if(e instanceof DOMException&&e.name===`AbortError`)return e;let t=e===void 0?`The operation was aborted.`:typeof e==`string`?e:e instanceof Error?e.message:String(e);return new DOMException(t,`AbortError`)}function r(e){if(e?.aborted)throw n(e.reason)}function i(e,t){return t?(r(t),new Promise((r,i)=>{let a=()=>{o(),i(n(t.reason))},o=()=>{t.removeEventListener(`abort`,a)};t.addEventListener(`abort`,a),e.then(e=>{o(),r(e)},e=>{o(),i(e)})})):e}function a(t,i,a){if(r(a),t!==void 0){if(typeof t==`string`){let r=t,o=document.querySelector(r);if(o)return o;let s=i.addDisposable(new e);return new Promise((e,t)=>{let i=e=>{s.dispose(),e()},o=()=>{i(()=>t(n(a?.reason)))};if(a?.aborted){o();return}a?.addEventListener(`abort`,o),s.addDispose(()=>a?.removeEventListener(`abort`,o));let c=new MutationObserver(()=>{let t=document.querySelector(r);t&&i(()=>e(t))});c.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),s.addDispose(()=>c.disconnect())})}return t}return t}var o=new Map;t(`ELEMENT_INSERT_HTML_PIPELINE`),t(`BLOCK_INSERT_HTML_PIPELINE`),t(`DomComponentRegistry`),t(`ComponentRegistry`);function s(e){return t(e)}var c;(function(e){e.BEFORE_SAVE_EMAIL=s(),e.ON_SAVEBUTTON_CLICK_ID=s(),e.ON_NEXTBUTTON_CLICK_ID=s(),e.ON_PREVIOUSBUTTON_CLICK_ID=s(),e.ON_MODEL_CHANGE=s(),e.WILL_EMAIL_INIT_ID=s(),e.ON_EMAIL_INIT_ID=s(),e.ON_BLOCK_INIT_ID=s(),e.ON_CONTENT_CHANGED_ID=s(),e.ON_PREHEADER_CHANGED_ID=s(),e.ON_SUBJECT_CHANGED_ID=s(),e.ON_EMAIL_CHANGED_ID=s(),e.ON_BLOCK_CHANGED_ID=s(),e.ON_CHUNKS_LOADED=s(),e.ON_SEND_TESTEMAIL_ID=s(),e.ON_SEND_LIVEPREVIEW_ID=s(),e.ON_SHARE_ID=s(),e.ON_SHOW_PREVIEW_ID=s(),e.ON_EMAIL_CLONE_ID=s(),e.ON_SEND_EMAIL_MODAL_ID=s(),e.ON_NOTIFICATION=s(),e.READ_LOCALE=s(),e.ON_TRANSLATE_ID=s(),e.ON_CODE_VALIDATE_ID=s(),e.UPLOAD_EVENT_ID=s(),e.PROXY_URL_EVENT_ID=s(),e.FILE_PROXY_EVENT_ID=s(),e.ON_LIMIT_ID=s(),e.ON_BROWSER_EXTENSION_DETECTED_ID=s(),e.ON_BROWSER_TRANSLATE_DETECTED_ID=s()})(c||={}),t(),t(),t(`InitPipelineContext`),t(),t(),t(),t(),t(),t(),t(`PluginCollection`),s(`APP_LOAD_EVENT`),s(`CONFIG_CHANGED_EVENT`);export{r as a,i,a as n,n as r,o as t};
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <title>Two-step flow: design → subject/preheader (headless)</title>
6
- <script id="plugin-script" type="text/javascript" src="emailmaker.js?4725286d"></script>
6
+ <script id="plugin-script" type="text/javascript" src="emailmaker.js?89101e30"></script>
7
7
  <style>
8
8
  body {
9
9
  margin: 0;
package/vite/index.cjs CHANGED
@@ -93,6 +93,25 @@ async function copyFolder(src, dest, filter) {
93
93
  //#endregion
94
94
  //#region src/shared/hostBootstrap.ts
95
95
  /**
96
+ * Joins an integrator-provided `publicPath` prefix with the product `outputFolder`
97
+ * into the contractual runtime `publicPath` (always trailing-slash terminated).
98
+ *
99
+ * Unlike `path.posix.join`, this preserves the `//` in absolute URLs
100
+ * (`http://localhost:3032` must NOT collapse to `http:/localhost:3032`), so an
101
+ * absolute origin passed in Vite `serve`/`build` reaches the runtime intact.
102
+ *
103
+ * - No `publicPath`: keeps the leading-slash semantics of `outputFolder`
104
+ * (`/product` -> `/product/`, resolved against the host `document.baseURI`).
105
+ * - With `publicPath`: `http://host:3032` + `/product` -> `http://host:3032/product/`.
106
+ */
107
+ function joinHostPublicPath(publicPath, outputFolder, defaultOutputFolder) {
108
+ const folder = outputFolder != null && outputFolder !== "" ? String(outputFolder) : defaultOutputFolder;
109
+ const base = String(publicPath || "").replace(/\/+$/, "");
110
+ if (!base) return `${folder.replace(/\/+$/, "")}/`;
111
+ const segment = folder.replace(/^\/+/, "").replace(/\/+$/, "");
112
+ return `${(segment ? `${base}/${segment}` : base).replace(/\/+$/, "")}/`;
113
+ }
114
+ /**
96
115
  * Host plugin bootstrap: sets contractual `window.__ns__.publicPath` (e.g. `/product/`)
97
116
  * before product entry runs. Publish bootstrap uses script/meta detection only when
98
117
  * `publicPath` is still unset — plugin-dev must rely on host prepend, not detection.
@@ -442,7 +461,7 @@ var ViteServePlugin = (options) => {
442
461
  const mountSeg = outputFolderFsSegment(options.outputFolder, BUNDLER_DEFAULT_APP_NAME);
443
462
  const destPath = path.default.normalize(path.default.join(rootPath, mountSeg));
444
463
  const packageRoot = path.default.join(options.modulesPath || DEFAULT_MODULES_PATH, BUNDLER_DEFAULT_PACKAGE_NAME);
445
- const publicPath = `${String(options.outputFolder || DEFAULT_OUTPUT_FOLDER).replace(/\/$/, "")}/`;
464
+ const publicPath = joinHostPublicPath(options.publicPath, options.outputFolder, DEFAULT_OUTPUT_FOLDER);
446
465
  const startupPrefetchMode = options.startupPrefetchMode || DEFAULT_STARTUP_PREFETCH_MODE;
447
466
  let optimizedFacadeFile = getFlattenedOptimizedDepFileName();
448
467
  return {
@@ -585,10 +604,9 @@ var ViteServePlugin = (options) => {
585
604
  };
586
605
  };
587
606
  var ViteBuildPlugin = (options) => {
588
- const publicPath = options.publicPath || "";
589
607
  const sourcePath = path.default.join(options.modulesPath || DEFAULT_MODULES_PATH, BUNDLER_DEFAULT_PACKAGE_NAME);
590
608
  let resolvedConfig;
591
- const normalizedPublicPath = `${String(path.default.posix.join(publicPath, options.outputFolder || DEFAULT_OUTPUT_FOLDER)).replace(/\/$/, "")}/`;
609
+ const normalizedPublicPath = joinHostPublicPath(options.publicPath, options.outputFolder, DEFAULT_OUTPUT_FOLDER);
592
610
  const startupPrefetchMode = options.startupPrefetchMode || DEFAULT_STARTUP_PREFETCH_MODE;
593
611
  return {
594
612
  name: `${PLUGIN_NAME}-build`,
package/vite/index.js CHANGED
@@ -64,6 +64,25 @@ async function copyFolder(src, dest, filter) {
64
64
  //#endregion
65
65
  //#region src/shared/hostBootstrap.ts
66
66
  /**
67
+ * Joins an integrator-provided `publicPath` prefix with the product `outputFolder`
68
+ * into the contractual runtime `publicPath` (always trailing-slash terminated).
69
+ *
70
+ * Unlike `path.posix.join`, this preserves the `//` in absolute URLs
71
+ * (`http://localhost:3032` must NOT collapse to `http:/localhost:3032`), so an
72
+ * absolute origin passed in Vite `serve`/`build` reaches the runtime intact.
73
+ *
74
+ * - No `publicPath`: keeps the leading-slash semantics of `outputFolder`
75
+ * (`/product` -> `/product/`, resolved against the host `document.baseURI`).
76
+ * - With `publicPath`: `http://host:3032` + `/product` -> `http://host:3032/product/`.
77
+ */
78
+ function joinHostPublicPath(publicPath, outputFolder, defaultOutputFolder) {
79
+ const folder = outputFolder != null && outputFolder !== "" ? String(outputFolder) : defaultOutputFolder;
80
+ const base = String(publicPath || "").replace(/\/+$/, "");
81
+ if (!base) return `${folder.replace(/\/+$/, "")}/`;
82
+ const segment = folder.replace(/^\/+/, "").replace(/\/+$/, "");
83
+ return `${(segment ? `${base}/${segment}` : base).replace(/\/+$/, "")}/`;
84
+ }
85
+ /**
67
86
  * Host plugin bootstrap: sets contractual `window.__ns__.publicPath` (e.g. `/product/`)
68
87
  * before product entry runs. Publish bootstrap uses script/meta detection only when
69
88
  * `publicPath` is still unset — plugin-dev must rely on host prepend, not detection.
@@ -413,7 +432,7 @@ var ViteServePlugin = (options) => {
413
432
  const mountSeg = outputFolderFsSegment(options.outputFolder, BUNDLER_DEFAULT_APP_NAME);
414
433
  const destPath = path.normalize(path.join(rootPath, mountSeg));
415
434
  const packageRoot = path.join(options.modulesPath || DEFAULT_MODULES_PATH, BUNDLER_DEFAULT_PACKAGE_NAME);
416
- const publicPath = `${String(options.outputFolder || DEFAULT_OUTPUT_FOLDER).replace(/\/$/, "")}/`;
435
+ const publicPath = joinHostPublicPath(options.publicPath, options.outputFolder, DEFAULT_OUTPUT_FOLDER);
417
436
  const startupPrefetchMode = options.startupPrefetchMode || DEFAULT_STARTUP_PREFETCH_MODE;
418
437
  let optimizedFacadeFile = getFlattenedOptimizedDepFileName();
419
438
  return {
@@ -556,10 +575,9 @@ var ViteServePlugin = (options) => {
556
575
  };
557
576
  };
558
577
  var ViteBuildPlugin = (options) => {
559
- const publicPath = options.publicPath || "";
560
578
  const sourcePath = path.join(options.modulesPath || DEFAULT_MODULES_PATH, BUNDLER_DEFAULT_PACKAGE_NAME);
561
579
  let resolvedConfig;
562
- const normalizedPublicPath = `${String(path.posix.join(publicPath, options.outputFolder || DEFAULT_OUTPUT_FOLDER)).replace(/\/$/, "")}/`;
580
+ const normalizedPublicPath = joinHostPublicPath(options.publicPath, options.outputFolder, DEFAULT_OUTPUT_FOLDER);
563
581
  const startupPrefetchMode = options.startupPrefetchMode || DEFAULT_STARTUP_PREFETCH_MODE;
564
582
  return {
565
583
  name: `${PLUGIN_NAME}-build`,