@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
|
|
3
|
-
import { useTranslations as
|
|
4
|
-
import { useUserRole as
|
|
5
|
-
const
|
|
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 = /"\/\//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
|
-
},
|
|
10
|
-
const { checkDomain:
|
|
11
|
-
const
|
|
12
|
-
return
|
|
13
|
-
const
|
|
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
|
|
16
|
-
|
|
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
|
-
}), [...
|
|
20
|
-
},
|
|
21
|
-
if (
|
|
34
|
+
}), [...s];
|
|
35
|
+
}, p = async (t) => {
|
|
36
|
+
if (g.has(t))
|
|
22
37
|
return !0;
|
|
23
38
|
try {
|
|
24
|
-
const
|
|
25
|
-
return
|
|
26
|
-
} catch (
|
|
27
|
-
return console.error("[GUIDO_ALLOWLIST] isDomainAllowlisted failed", t,
|
|
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,
|
|
45
|
+
return { getBlockedDomains: async (t, e) => {
|
|
31
46
|
try {
|
|
32
|
-
const o =
|
|
47
|
+
const o = i(t, e);
|
|
33
48
|
return o.length ? (await Promise.all(
|
|
34
|
-
o.map(async (
|
|
35
|
-
)).filter((
|
|
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) =>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
67
|
+
C as useAllowlist
|
|
50
68
|
};
|
|
@@ -1,69 +1,64 @@
|
|
|
1
|
-
import { useConfig as
|
|
2
|
-
import { getIgnoredRecommendationBlockIds as
|
|
3
|
-
import { TemplateTypes as
|
|
4
|
-
import { DISPLAY_CONDITIONS_REGEX as
|
|
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
|
|
7
|
-
import { RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES as
|
|
8
|
-
import { useRecommendationExtensionStore as
|
|
9
|
-
import { resolveProductAttrValue as
|
|
10
|
-
import { RecommendationRequiredFieldsKey as
|
|
11
|
-
import { useRecommendationStore as
|
|
12
|
-
import { base64EncodeWithSpecialChars as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
22
|
-
return m.some((f) =>
|
|
20
|
+
function ce(t, m) {
|
|
21
|
+
return m.some((f) => t.startsWith(`${f}_`));
|
|
23
22
|
}
|
|
24
|
-
const
|
|
25
|
-
function
|
|
26
|
-
const m =
|
|
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
|
|
30
|
-
const m = new Set(
|
|
31
|
-
return Object.values(
|
|
32
|
-
m.add(
|
|
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
|
|
36
|
-
const u =
|
|
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
|
|
38
|
+
const p = new Set(m.map((h) => h.toLowerCase())), E = [];
|
|
40
39
|
return u.forEach((h) => {
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
40
|
+
const g = h.slice(2, -2).trim().toLowerCase();
|
|
41
|
+
if (g !== "" && p.has(g))
|
|
43
42
|
return;
|
|
44
|
-
const y =
|
|
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(
|
|
47
|
+
E.push(g);
|
|
49
48
|
return;
|
|
50
49
|
}
|
|
51
|
-
|
|
50
|
+
ce(g, f) || g.includes(".") || E.push(g);
|
|
52
51
|
}), E;
|
|
53
52
|
}
|
|
54
|
-
function
|
|
55
|
-
return (
|
|
56
|
-
const d = o.slice(2, -2), u = d.indexOf("|"),
|
|
57
|
-
return
|
|
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
|
-
|
|
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
|
|
69
|
+
return ue(u.filterList);
|
|
75
70
|
}, h = async (e) => {
|
|
76
|
-
const
|
|
71
|
+
const n = await m(
|
|
77
72
|
"/newsletter/template-library/check-template-html-body",
|
|
78
|
-
{ html:
|
|
79
|
-
), { status: r, message: a } =
|
|
80
|
-
return r ||
|
|
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(
|
|
78
|
+
}), o($), a === o(Y) && t({
|
|
84
79
|
type: c.Error,
|
|
85
80
|
message: o("newsletter.already-in-progress")
|
|
86
81
|
}), r;
|
|
87
|
-
},
|
|
88
|
-
const
|
|
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
|
|
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
|
-
|
|
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
|
-
},
|
|
101
|
-
const r =
|
|
102
|
-
return
|
|
103
|
-
},
|
|
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),
|
|
107
|
-
const
|
|
108
|
-
return
|
|
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
|
-
}),
|
|
106
|
+
}), s < n && t({
|
|
112
107
|
type: c.Warning,
|
|
113
108
|
message: o("custom-fields.missing-opening-braces")
|
|
114
|
-
}),
|
|
115
|
-
},
|
|
116
|
-
const
|
|
117
|
-
return
|
|
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
|
-
}),
|
|
121
|
-
},
|
|
122
|
-
if (
|
|
115
|
+
}), s;
|
|
116
|
+
}, x = (e, s, n, r) => {
|
|
117
|
+
if (p)
|
|
123
118
|
return !0;
|
|
124
|
-
const a =
|
|
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
|
|
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
|
-
},
|
|
144
|
-
const
|
|
138
|
+
}, O = (e) => {
|
|
139
|
+
const s = e.match(/{%(.*?)%}/g), n = [];
|
|
145
140
|
let r = !0;
|
|
146
|
-
if (
|
|
147
|
-
const i = a.match(
|
|
148
|
-
(!i || a !==
|
|
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((
|
|
152
|
-
|
|
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 =
|
|
157
|
-
I && I.forEach((
|
|
158
|
-
y(
|
|
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
|
-
}),
|
|
162
|
-
const a =
|
|
163
|
-
a.length !== i.length && (
|
|
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
|
-
},
|
|
170
|
-
const
|
|
171
|
-
return r ||
|
|
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
|
-
},
|
|
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,
|
|
173
|
+
}), !1) : !0, D = () => u.hasInvalidBlock() ? (t({
|
|
179
174
|
type: c.Error,
|
|
180
|
-
message: o(
|
|
181
|
-
}), !1) : !0,
|
|
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,
|
|
185
|
-
const
|
|
186
|
-
return e.match(
|
|
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
|
-
},
|
|
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
|
-
}) ? (
|
|
190
|
+
}) ? (t({
|
|
196
191
|
type: c.Error,
|
|
197
192
|
message: o("unsubscribe-templates.select-checkbox-groups")
|
|
198
193
|
}), !1) : !0;
|
|
199
|
-
},
|
|
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
|
-
}) ? (
|
|
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,
|
|
210
|
-
var
|
|
204
|
+
return { validateHtml: async (e, s, n = !1) => {
|
|
205
|
+
var v, C;
|
|
211
206
|
const r = [
|
|
212
|
-
...
|
|
213
|
-
...
|
|
214
|
-
...((
|
|
215
|
-
], a =
|
|
216
|
-
return await
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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.
|
|
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",
|