@useinsider/guido 3.13.1-beta.2f8f877 → 3.13.1-beta.5ea31b5

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.
@@ -1,50 +1,68 @@
1
1
  import { useAllowlistApi as A } from "../services/allowlistApi.js";
2
- import { base64EncodeWithSpecialChars as p } from "../utils/base64.js";
3
- import { useTranslations as h } from "./useTranslations.js";
4
- import { useUserRole as D } from "./useUserRole.js";
5
- const f = /(?:https?:\/\/|www\.)[^\s"'<>()]+/gi, E = /&quot;\/\//gi, i = {
2
+ import { base64EncodeWithSpecialChars as f } from "../utils/base64.js";
3
+ import { useTranslations as D } from "./useTranslations.js";
4
+ import { useUserRole as E } from "./useUserRole.js";
5
+ const _ = /(?:https?:\/\/|www\.)[^\s"'<>()]+/gi, L = /&quot;\/\//gi, w = "s3-eu-west-1.amazonaws.com", d = [
6
+ "insider-email",
7
+ "web-image.useinsider.com",
8
+ "image.useinsider.com",
9
+ "panel-assets.useinsider.com",
10
+ "stripo-editor-image"
11
+ ], N = ({ hostname: r, pathname: l }) => {
12
+ const n = r.toLowerCase();
13
+ if (n === w) {
14
+ const i = l.split("/")[1].toLowerCase();
15
+ return d.includes(i);
16
+ }
17
+ return d.some((i) => n === `${i}.${w}`);
18
+ }, m = {
6
19
  MANAGE: "journey-builder.domain-allowlist-warning",
7
20
  NON_MANAGE: "settings.allow-list-warning-not-admin-architect",
8
21
  ADD_BUTTON: "settings.allow-list-warning-add-button"
9
- }, w = /* @__PURE__ */ new Set(), O = (n) => `/settings?openAddModal=true&type=domain&values=${p(n)}#security`, M = () => {
10
- const { checkDomain: n } = A(), { getIsManageUser: l } = D(), a = h(), d = (t, s) => {
11
- const c = `${t || ""} ${s || ""}`.replace(E, "https://").match(f) || [], e = /* @__PURE__ */ new Set();
12
- return c.forEach((r) => {
13
- const g = /^https?:\/\//i.test(r) ? r : `https://${r}`;
22
+ }, g = /* @__PURE__ */ new Set(), O = (r) => `/settings?openAddModal=true&type=domain&values=${f(r)}#security`, C = () => {
23
+ const { checkDomain: r } = A(), { getIsManageUser: l } = E(), n = D(), i = (t, e) => {
24
+ const a = `${t || ""} ${e || ""}`.replace(L, "https://").match(_) || [], s = /* @__PURE__ */ new Set();
25
+ return a.forEach((c) => {
26
+ const h = /^https?:\/\//i.test(c) ? c : `https://${c}`;
14
27
  try {
15
- const { hostname: u } = new URL(g);
16
- u && e.add(u.replace(/^www\./i, "").toLowerCase());
28
+ const u = new URL(h);
29
+ if (N(u))
30
+ return;
31
+ u.hostname && s.add(u.hostname.replace(/^www\./i, "").toLowerCase());
17
32
  } catch {
18
33
  }
19
- }), [...e];
20
- }, m = async (t) => {
21
- if (w.has(t))
34
+ }), [...s];
35
+ }, p = async (t) => {
36
+ if (g.has(t))
22
37
  return !0;
23
38
  try {
24
- const s = await n(t);
25
- return s && w.add(t), s;
26
- } catch (s) {
27
- return console.error("[GUIDO_ALLOWLIST] isDomainAllowlisted failed", t, s), !0;
39
+ const e = await r(t);
40
+ return e && g.add(t), e;
41
+ } catch (e) {
42
+ return console.error("[GUIDO_ALLOWLIST] isDomainAllowlisted failed", t, e), !0;
28
43
  }
29
44
  };
30
- return { getBlockedDomains: async (t, s) => {
45
+ return { getBlockedDomains: async (t, e) => {
31
46
  try {
32
- const o = d(t, s);
47
+ const o = i(t, e);
33
48
  return o.length ? (await Promise.all(
34
- o.map(async (e) => ({ domain: e, allowlisted: await m(e) }))
35
- )).filter((e) => !e.allowlisted).map((e) => e.domain) : [];
49
+ o.map(async (s) => ({ domain: s, allowlisted: await p(s) }))
50
+ )).filter((s) => !s.allowlisted).map((s) => s.domain) : [];
36
51
  } catch (o) {
37
52
  return console.error("[GUIDO_ALLOWLIST] getBlockedDomains failed", o), [];
38
53
  }
39
- }, resolveToast: async (t) => await l() ? {
40
- message: a(i.MANAGE),
41
- actionButton: {
42
- text: a(i.ADD_BUTTON),
43
- onClick: () => window.open(O(t.join(",")), "_blank")
44
- }
45
- } : { message: a(i.NON_MANAGE) } };
54
+ }, resolveToast: async (t) => {
55
+ const e = await l(), o = t.length ? ` (${t.join(", ")})` : "", a = (s) => `${s}${o}`;
56
+ return e ? {
57
+ message: a(n(m.MANAGE)),
58
+ actionButton: {
59
+ text: n(m.ADD_BUTTON),
60
+ onClick: () => window.open(O(t.join(",")), "_blank")
61
+ }
62
+ } : { message: a(n(m.NON_MANAGE)) };
63
+ } };
46
64
  };
47
65
  export {
48
66
  O as buildAllowlistSettingsUrl,
49
- M as useAllowlist
67
+ C as useAllowlist
50
68
  };
@@ -1,69 +1,64 @@
1
- import { useConfig as V } from "./useConfig.js";
2
- import { getIgnoredRecommendationBlockIds as M } from "../config/compiler/utils/recommendationIgnoreUtils.js";
3
- import { TemplateTypes as W } from "../enums/defaults.js";
4
- import { DISPLAY_CONDITIONS_REGEX as G, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as H, CampaignCouldNotBeSavedKey as P, CanNotMakeAnyChangesForRunningKey as X, DATA_ATTRIBUTE_REGEX as $, DYNAMIC_CONTENT_TAG_REGEX as Y, ALLOWED_DYNAMIC_SYSTEM_TOKENS as U, VALID_DYNAMIC_VARIABLE_REGEX as j } from "../enums/html-validator.js";
1
+ import { useConfig as W } from "./useConfig.js";
2
+ import { getIgnoredRecommendationBlockIds as G } from "../config/compiler/utils/recommendationIgnoreUtils.js";
3
+ import { TemplateTypes as H } from "../enums/defaults.js";
4
+ import { DISPLAY_CONDITIONS_REGEX as P, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as X, CampaignCouldNotBeSavedKey as $, CanNotMakeAnyChangesForRunningKey as Y, DATA_ATTRIBUTE_REGEX as U, DYNAMIC_CONTENT_TAG_REGEX as j, ALLOWED_DYNAMIC_SYSTEM_TOKENS as q, VALID_DYNAMIC_VARIABLE_REGEX as K } from "../enums/html-validator.js";
5
5
  import { ToasterTypeOptions as c } from "../enums/toaster.js";
6
- import { itemsBlockDynamicVariables as q } from "../extensions/Blocks/Items/enums/productEnums.js";
7
- import { RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES as K } from "../extensions/Blocks/Recommendation/constants/selectors.js";
8
- import { useRecommendationExtensionStore as z } from "../extensions/Blocks/Recommendation/store/recommendation.js";
9
- import { resolveProductAttrValue as Z } from "../extensions/Blocks/Recommendation/templates/utils.js";
10
- import { RecommendationRequiredFieldsKey as J } from "../extensions/Blocks/Recommendation/validation/requiredFields.js";
11
- import { useRecommendationStore as Q } from "../stores/recommendation.js";
12
- import { base64EncodeWithSpecialChars as ee } from "../utils/base64.js";
13
- import { computed as te } from "vue";
14
- import { useHttp as ne } from "./useHttp.js";
15
- import { useToaster as se } from "./useToaster.js";
16
- import { useTranslations as re } from "./useTranslations.js";
17
- const oe = /recommendation-id="(\d+)"/g;
18
- function ie(n) {
19
- return [...n.matchAll(oe)].map((m) => m[1]);
6
+ import { itemsBlockDynamicVariables as z } from "../extensions/Blocks/Items/enums/productEnums.js";
7
+ import { RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES as Z } from "../extensions/Blocks/Recommendation/constants/selectors.js";
8
+ import { useRecommendationExtensionStore as J } from "../extensions/Blocks/Recommendation/store/recommendation.js";
9
+ import { resolveProductAttrValue as Q } from "../extensions/Blocks/Recommendation/templates/utils.js";
10
+ import { RecommendationRequiredFieldsKey as ee } from "../extensions/Blocks/Recommendation/validation/requiredFields.js";
11
+ import { useRecommendationStore as te } from "../stores/recommendation.js";
12
+ import { base64EncodeWithSpecialChars as ne } from "../utils/base64.js";
13
+ import { useHttp as se } from "./useHttp.js";
14
+ import { useToaster as re } from "./useToaster.js";
15
+ import { useTranslations as oe } from "./useTranslations.js";
16
+ const ie = /recommendation-id="(\d+)"/g;
17
+ function ae(t) {
18
+ return [...t.matchAll(ie)].map((m) => m[1]);
20
19
  }
21
- function ae(n, m) {
22
- return m.some((f) => n.startsWith(`${f}_`));
20
+ function ce(t, m) {
21
+ return m.some((f) => t.startsWith(`${f}_`));
23
22
  }
24
- const ce = /^(\d+)_\d+_(.+)$/;
25
- function le(n) {
26
- const m = n.match(ce);
23
+ const le = /^(\d+)_\d+_(.+)$/;
24
+ function me(t) {
25
+ const m = t.match(le);
27
26
  return m ? { recoId: m[1], attribute: m[2] } : null;
28
27
  }
29
- function me(n) {
30
- const m = new Set(K);
31
- return Object.values(n).forEach((f) => {
32
- m.add(Z(f.attributeName, n).toLowerCase());
28
+ function ue(t) {
29
+ const m = new Set(Z);
30
+ return Object.values(t).forEach((f) => {
31
+ m.add(Q(f.attributeName, t).toLowerCase());
33
32
  }), m;
34
33
  }
35
- function ue(n, m, f, o, d) {
36
- const u = n.match(/{{([a-zA-Z0-9_.\s]*)}}/gm);
34
+ function de(t, m, f, o, d) {
35
+ const u = t.match(/{{([a-zA-Z0-9_.\s]*)}}/gm);
37
36
  if (!u)
38
37
  return [];
39
- const g = new Set(m.map((h) => h.toLowerCase())), E = [];
38
+ const p = new Set(m.map((h) => h.toLowerCase())), E = [];
40
39
  return u.forEach((h) => {
41
- const p = h.slice(2, -2).trim().toLowerCase();
42
- if (p !== "" && g.has(p))
40
+ const g = h.slice(2, -2).trim().toLowerCase();
41
+ if (g !== "" && p.has(g))
43
42
  return;
44
- const y = le(p);
43
+ const y = me(g);
45
44
  if (y && o.has(y.recoId)) {
46
45
  if (!d || d.has(y.attribute))
47
46
  return;
48
- E.push(p);
47
+ E.push(g);
49
48
  return;
50
49
  }
51
- ae(p, f) || p.includes(".") || E.push(p);
50
+ ce(g, f) || g.includes(".") || E.push(g);
52
51
  }), E;
53
52
  }
54
- function de(n) {
55
- return (n.replace($, "$1").match(Y) ?? []).filter((o) => {
56
- const d = o.slice(2, -2), u = d.indexOf("|"), g = (u === -1 ? d : d.slice(0, u)).trim();
57
- return U.includes(g) ? !1 : j.test(g) ? u !== -1 && d.slice(u + 1).trim() === "" : !0;
53
+ function fe(t) {
54
+ return (t.replace(U, "$1").match(j) ?? []).filter((o) => {
55
+ const d = o.slice(2, -2), u = d.indexOf("|"), p = (u === -1 ? d : d.slice(0, u)).trim();
56
+ return q.includes(p) ? !1 : K.test(p) ? u !== -1 && d.slice(u + 1).trim() === "" : !0;
58
57
  });
59
58
  }
60
59
  const xe = () => {
61
- const { showToaster: n } = se(), { post: m } = ne(), { config: f } = V(), o = re(), d = Q(), u = z(), g = te(
62
- () => {
63
- var e, t;
64
- return ((t = (e = f.value) == null ? void 0 : e.partner) == null ? void 0 : t.messageType) === W.transactional;
65
- }
66
- ), E = async (e) => {
60
+ var b, S;
61
+ const { showToaster: t } = re(), { post: m } = se(), { config: f } = W(), o = oe(), d = te(), u = J(), p = ((S = (b = f.value) == null ? void 0 : b.partner) == null ? void 0 : S.messageType) === H.transactional, E = async (e) => {
67
62
  if (e.size === 0)
68
63
  return /* @__PURE__ */ new Set();
69
64
  try {
@@ -71,61 +66,61 @@ const xe = () => {
71
66
  } catch {
72
67
  return null;
73
68
  }
74
- return me(u.filterList);
69
+ return ue(u.filterList);
75
70
  }, h = async (e) => {
76
- const s = await m(
71
+ const n = await m(
77
72
  "/newsletter/template-library/check-template-html-body",
78
- { html: ee(e) }
79
- ), { status: r, message: a } = s.data;
80
- return r || n({
73
+ { html: ne(e) }
74
+ ), { status: r, message: a } = n.data;
75
+ return r || t({
81
76
  type: c.Error,
82
77
  message: r === void 0 ? a : o("newsletter.invalid-url-link-for-toaster")
83
- }), o(P), a === o(X) && n({
78
+ }), o($), a === o(Y) && t({
84
79
  type: c.Error,
85
80
  message: o("newsletter.already-in-progress")
86
81
  }), r;
87
- }, p = (e) => !["if", "endif", "else", "elif", "now"].includes(e.toLowerCase()), y = (e) => ["if", "endif"].includes(e.toLowerCase()), S = (e, t) => {
88
- const s = e.match(/({%(.*?)%})/g);
82
+ }, g = (e) => !["if", "endif", "else", "elif", "now"].includes(e.toLowerCase()), y = (e) => ["if", "endif"].includes(e.toLowerCase()), T = (e, s) => {
83
+ const n = e.match(/({%(.*?)%})/g);
89
84
  let r = !0;
90
- return s !== null && !g.value && s.forEach((a) => {
85
+ return n !== null && !p && n.forEach((a) => {
91
86
  const i = a.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
92
87
  if (i && i.length > 0) {
93
88
  const [l] = i;
94
- p(l) && !t.includes(l) && (n({
89
+ g(l) && !s.includes(l) && (t({
95
90
  type: c.Warning,
96
91
  message: o("custom-fields.invalid-custom-fields")
97
92
  }), r = !1);
98
93
  }
99
94
  }), r;
100
- }, A = async (e, t, s) => {
101
- const r = s ? await h(e) : !0;
102
- return S(e, t) && r;
103
- }, T = (e) => e.length > 0 ? !0 : (n({
95
+ }, w = async (e, s, n) => {
96
+ const r = n ? await h(e) : !0;
97
+ return T(e, s) && r;
98
+ }, R = (e) => e.length > 0 ? !0 : (t({
104
99
  type: c.Warning,
105
100
  message: o("newsletter.html-content-is-empty")
106
- }), !1), w = (e) => {
107
- const t = (e.match(/{/gm) || []).length, s = (e.match(/}/gm) || []).length;
108
- return t > s && n({
101
+ }), !1), _ = (e) => {
102
+ const s = (e.match(/{/gm) || []).length, n = (e.match(/}/gm) || []).length;
103
+ return s > n && t({
109
104
  type: c.Warning,
110
105
  message: o("custom-fields.missing-closing-braces")
111
- }), t < s && n({
106
+ }), s < n && t({
112
107
  type: c.Warning,
113
108
  message: o("custom-fields.missing-opening-braces")
114
- }), t === s;
115
- }, R = (e) => {
116
- const t = de(e).length === 0;
117
- return t || n({
109
+ }), s === n;
110
+ }, N = (e) => {
111
+ const s = fe(e).length === 0;
112
+ return s || t({
118
113
  type: c.Warning,
119
114
  message: o("custom-fields.invalid-custom-fields")
120
- }), t;
121
- }, _ = (e, t, s, r) => {
122
- if (g.value)
115
+ }), s;
116
+ }, x = (e, s, n, r) => {
117
+ if (p)
123
118
  return !0;
124
- const a = ue(
119
+ const a = de(
125
120
  e,
126
- t,
127
- ie(e),
128
121
  s,
122
+ ae(e),
123
+ n,
129
124
  r
130
125
  );
131
126
  if (a.length > 0) {
@@ -134,91 +129,91 @@ const xe = () => {
134
129
  ${a.map((l) => `<li>${l}</li>`).join("")}
135
130
  </ul>
136
131
  `;
137
- return n({
132
+ return t({
138
133
  type: c.Error,
139
134
  message: o("custom-fields.invalid-custom-fields") + i
140
135
  }), !1;
141
136
  }
142
137
  return !0;
143
- }, N = (e) => {
144
- const t = e.match(/{%(.*?)%}/g), s = [];
138
+ }, O = (e) => {
139
+ const s = e.match(/{%(.*?)%}/g), n = [];
145
140
  let r = !0;
146
- if (t && t.forEach((a) => {
147
- const i = a.match(G), l = a.match(H), C = (i == null ? void 0 : i.join("")) || "";
148
- (!i || a !== C) && !l && (n({
141
+ if (s && s.forEach((a) => {
142
+ const i = a.match(P), l = a.match(X), v = (i == null ? void 0 : i.join("")) || "";
143
+ (!i || a !== v) && !l && (t({
149
144
  type: c.Error,
150
145
  message: o("newsletter.display-conditions-invalid-syntax")
151
- }), r = !1), i && i.forEach((v) => {
152
- v.trim() === "=" && (n({
146
+ }), r = !1), i && i.forEach((C) => {
147
+ C.trim() === "=" && (t({
153
148
  type: c.Error,
154
149
  message: o("custom-conditions.wrong-equality-operators")
155
150
  }), r = !1);
156
- const I = v.match(/^[a-zA-Z]*$/g);
157
- I && I.forEach((b) => {
158
- y(b) && s.push(b);
151
+ const I = C.match(/^[a-zA-Z]*$/g);
152
+ I && I.forEach((A) => {
153
+ y(A) && n.push(A);
159
154
  });
160
155
  });
161
- }), s.length) {
162
- const a = s.filter((l) => l === "if"), i = s.filter((l) => l === "endif");
163
- a.length !== i.length && (n({
156
+ }), n.length) {
157
+ const a = n.filter((l) => l === "if"), i = n.filter((l) => l === "endif");
158
+ a.length !== i.length && (t({
164
159
  type: c.Error,
165
160
  message: o("custom-conditions.missing-if-endif-tag")
166
161
  }), r = !1);
167
162
  }
168
163
  return r;
169
- }, x = (e) => {
170
- const t = (e.match(/{% /gm) || []).length, s = (e.match(/ %}/gm) || []).length, r = t === s;
171
- return r || n({
164
+ }, k = (e) => {
165
+ const s = (e.match(/{% /gm) || []).length, n = (e.match(/ %}/gm) || []).length, r = s === n;
166
+ return r || t({
172
167
  type: c.Warning,
173
168
  message: o("custom-conditions.no-space-after-braces")
174
169
  }), r;
175
- }, O = (e) => (e.match(/({%(.*?)%})/g) || []).filter((s) => s.includes("if")).map((s) => (s.match(/{{.*}}/gm) || []).length).reduce((s, r) => s + r, 0) > 0 ? (n({
170
+ }, B = (e) => (e.match(/({%(.*?)%})/g) || []).filter((n) => n.includes("if")).map((n) => (n.match(/{{.*}}/gm) || []).length).reduce((n, r) => n + r, 0) > 0 ? (t({
176
171
  type: c.Warning,
177
172
  message: o("custom-conditions.no-braces-inside-if-tag")
178
- }), !1) : !0, k = () => u.hasInvalidBlock() ? (n({
173
+ }), !1) : !0, D = () => u.hasInvalidBlock() ? (t({
179
174
  type: c.Error,
180
- message: o(J)
181
- }), !1) : !0, B = () => d.recommendationConfigs && Object.values(d.recommendationConfigs).find((t) => t.filters.find((s) => s.value === "")) !== void 0 ? (n({
175
+ message: o(ee)
176
+ }), !1) : !0, F = () => d.recommendationConfigs && Object.values(d.recommendationConfigs).find((s) => s.filters.find((n) => n.value === "")) !== void 0 ? (t({
182
177
  type: c.Error,
183
178
  message: o("newsletter.fill-all-necessary-fields")
184
- }), !1) : !0, D = (e) => {
185
- const t = /src="[^"]*\.(svg|pst)"/gm;
186
- return e.match(t) === null ? !0 : (n({
179
+ }), !1) : !0, L = (e) => {
180
+ const s = /src="[^"]*\.(svg|pst)"/gm;
181
+ return e.match(s) === null ? !0 : (t({
187
182
  type: c.Error,
188
183
  message: o("newsletter.invalid-image-type")
189
184
  }), !1);
190
- }, F = (e) => {
185
+ }, V = (e) => {
191
186
  const r = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".checkbox-block-v2");
192
187
  return Array.from(r).find((i) => {
193
188
  var l;
194
189
  return !((l = i.id) != null && l.trim());
195
- }) ? (n({
190
+ }) ? (t({
196
191
  type: c.Error,
197
192
  message: o("unsubscribe-templates.select-checkbox-groups")
198
193
  }), !1) : !0;
199
- }, L = (e) => {
194
+ }, M = (e) => {
200
195
  const r = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".radio-button-v2");
201
196
  return Array.from(r).find((i) => {
202
197
  var l;
203
198
  return !((l = i.id) != null && l.trim());
204
- }) ? (n({
199
+ }) ? (t({
205
200
  type: c.Error,
206
201
  message: o("unsubscribe-templates.select-radio-button-groups")
207
202
  }), !1) : !0;
208
203
  };
209
- return { validateHtml: async (e, t, s = !1) => {
210
- var C, v;
204
+ return { validateHtml: async (e, s, n = !1) => {
205
+ var v, C;
211
206
  const r = [
212
- ...t.map((I) => I.value),
213
- ...q,
214
- ...((v = (C = f.value) == null ? void 0 : C.template) == null ? void 0 : v.customFieldAttributes) ?? []
215
- ], a = M(e), i = await E(a);
216
- return await A(e, r, s) && T(e) && w(e) && R(e) && _(e, r, a, i) && N(e) && x(e) && O(e) && k() && B() && D(e) && F(e) && L(e);
207
+ ...s.map((I) => I.value),
208
+ ...z,
209
+ ...((C = (v = f.value) == null ? void 0 : v.template) == null ? void 0 : C.customFieldAttributes) ?? []
210
+ ], a = G(e), i = await E(a);
211
+ return await w(e, r, n) && R(e) && _(e) && N(e) && x(e, r, a, i) && O(e) && k(e) && B(e) && D() && F() && L(e) && V(e) && M(e);
217
212
  } };
218
213
  };
219
214
  export {
220
- me as buildPartnerAttributeNameSet,
221
- ue as findInvalidCustomFields,
222
- le as parseRecommendationVariable,
215
+ ue as buildPartnerAttributeNameSet,
216
+ de as findInvalidCustomFields,
217
+ me as parseRecommendationVariable,
223
218
  xe as useHtmlValidator
224
219
  };
@@ -147,6 +147,24 @@ const d = [
147
147
  replaceAll: !0,
148
148
  priority: 41
149
149
  },
150
+ {
151
+ id: "replace-s3-path-style-web-image-domain",
152
+ description: "Rewriting path-style S3 asset URLs to the web-image.useinsider.com domain",
153
+ type: "replace",
154
+ search: "s3-eu-west-1.amazonaws.com/web-image.useinsider.com",
155
+ replacement: "web-image.useinsider.com",
156
+ replaceAll: !0,
157
+ priority: 42
158
+ },
159
+ {
160
+ id: "replace-s3-path-style-image-domain",
161
+ description: "Rewriting path-style S3 asset URLs to the image.useinsider.com domain",
162
+ type: "replace",
163
+ search: "s3-eu-west-1.amazonaws.com/image.useinsider.com",
164
+ replacement: "image.useinsider.com",
165
+ replaceAll: !0,
166
+ priority: 43
167
+ },
150
168
  {
151
169
  id: "convert-rgb-to-hex",
152
170
  // SD-142395: rgb()/6-digit hex are verbose; hex/3-digit shorthand is byte-identical
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.13.1-beta.2f8f877",
3
+ "version": "3.13.1-beta.5ea31b5",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",