@braze/web-sdk 6.7.1 → 6.9.0
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/index.d.ts +165 -38
- package/package.json +1 -1
- package/shared-lib/encoding-utils.js +2 -2
- package/shared-lib/event-types.js +16 -16
- package/shared-lib/indexed-db-adapter.js +65 -65
- package/shared-lib/logger.js +18 -18
- package/shared-lib/supported-options.js +1 -1
- package/src/Banner/banner-provider.js +67 -59
- package/src/Banner/banner.js +40 -19
- package/src/Banner/dismiss-banner.js +4 -0
- package/src/Banner/display/banner-to-html.js +10 -10
- package/src/Banner/display/destroy-banner-html.js +2 -2
- package/src/Banner/get-all-banners.js +6 -6
- package/src/Banner/get-banner.js +6 -6
- package/src/Banner/index.js +1 -0
- package/src/Banner/log-banner-click.js +7 -7
- package/src/Banner/log-banner-dismissal.js +7 -7
- package/src/Banner/log-banner-impressions.js +27 -18
- package/src/Banner/request-banners-refresh.js +8 -8
- package/src/Banner/subscribe-to-banners-updates.js +5 -5
- package/src/Banner/ui/insert-banner.js +8 -8
- package/src/Card/card-manager.js +31 -31
- package/src/Card/log-card-dismissal.js +2 -2
- package/src/Card/log-content-card-click.js +2 -2
- package/src/Card/log-content-card-impressions.js +4 -4
- package/src/Card/models/captioned-image.js +15 -15
- package/src/Card/models/card.js +89 -89
- package/src/Card/models/classic-card.js +16 -16
- package/src/Card/models/control-card.js +7 -7
- package/src/Card/models/image-only.js +13 -13
- package/src/Card/util/card-factory.js +32 -32
- package/src/ContentCards/content-cards-provider-factory.js +13 -11
- package/src/ContentCards/content-cards-provider.js +105 -105
- package/src/ContentCards/get-cached-content-cards.js +2 -2
- package/src/ContentCards/request-content-cards-refresh.js +2 -2
- package/src/ContentCards/subscribe-to-content-cards-updates.js +10 -10
- package/src/ContentCards/ui/show-content-cards.js +7 -7
- package/src/Core/add-sdk-metadata.js +2 -2
- package/src/Core/change-user.js +5 -5
- package/src/Core/destroy.js +2 -2
- package/src/Core/disable-sdk.js +4 -4
- package/src/Core/enable-sdk.js +4 -4
- package/src/Core/get-device-id.js +2 -2
- package/src/Core/handle-braze-action.js +5 -5
- package/src/Core/index.js +1 -0
- package/src/Core/log-custom-event.js +5 -5
- package/src/Core/log-ecommerce-event.js +29 -0
- package/src/Core/log-purchase.js +23 -198
- package/src/Core/open-session.js +10 -10
- package/src/Core/set-logger.js +2 -2
- package/src/Core/set-sdk-authentication-signature.js +1 -1
- package/src/Core/subscribe-to-sdk-authentication-failures.js +1 -1
- package/src/Core/toggle-logging.js +2 -2
- package/src/Core/wipe-data.js +6 -6
- package/src/DUST/dust-connection-core.js +1 -0
- package/src/DUST/dust-provider-factory.js +10 -10
- package/src/DUST/dust-provider.js +258 -226
- package/src/DUST/dust-shared-worker-code.js +1 -1
- package/src/DUST/dust-shared-worker-impl.js +97 -103
- package/src/DUST/dust-worker-bridge.js +55 -40
- package/src/DUST/subscribe-to-dust.js +7 -7
- package/src/FeatureFlags/feature-flag-factory.js +8 -8
- package/src/FeatureFlags/feature-flag.js +3 -3
- package/src/FeatureFlags/feature-flags-provider.js +21 -21
- package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +1 -1
- package/src/InAppMessage/constants.js +3 -3
- package/src/InAppMessage/defer-in-app-message.js +3 -3
- package/src/InAppMessage/display/html-message-to-html.js +4 -4
- package/src/InAppMessage/display/in-app-message-to-html.js +32 -32
- package/src/InAppMessage/display/modal-utils.js +2 -2
- package/src/InAppMessage/in-app-message-factory.js +36 -36
- package/src/InAppMessage/in-app-message-manager.js +35 -35
- package/src/InAppMessage/log-in-app-message-button-click.js +3 -3
- package/src/InAppMessage/log-in-app-message-click.js +3 -3
- package/src/InAppMessage/log-in-app-message-html-click.js +3 -3
- package/src/InAppMessage/log-in-app-message-impression.js +3 -3
- package/src/InAppMessage/models/control-message.js +4 -4
- package/src/InAppMessage/models/full-screen-message.js +9 -9
- package/src/InAppMessage/models/html-message.js +2 -2
- package/src/InAppMessage/models/in-app-message-button.js +4 -4
- package/src/InAppMessage/models/in-app-message.js +34 -34
- package/src/InAppMessage/models/modal-message.js +7 -7
- package/src/InAppMessage/models/slide-up-message.js +8 -8
- package/src/InAppMessage/ui/show-in-app-message.js +20 -20
- package/src/Push/push-manager.js +44 -44
- package/src/User/user-manager.js +19 -19
- package/src/User/user.js +17 -17
- package/src/common/base-provider.js +1 -1
- package/src/common/constants.js +1 -0
- package/src/common/content-cards-display.js +6 -6
- package/src/common/event-logger.js +3 -3
- package/src/common/properties-base.js +3 -3
- package/src/l10n/l10n-manager.js +2 -2
- package/src/managers/auth-manager.js +11 -11
- package/src/managers/braze-instance.js +59 -59
- package/src/managers/device-manager.js +9 -9
- package/src/managers/network-manager.js +65 -63
- package/src/managers/server-config-manager.js +110 -93
- package/src/managers/session-manager.js +20 -20
- package/src/managers/storage-manager-factory.js +9 -9
- package/src/managers/storage-manager.js +137 -137
- package/src/managers/subscription-manager.js +2 -2
- package/src/managers/utils.js +1 -1
- package/src/models/braze-event.js +2 -2
- package/src/models/identifier.js +5 -5
- package/src/models/push-token.js +8 -8
- package/src/models/request-result.js +1 -1
- package/src/models/server-config.js +46 -28
- package/src/request-controller.js +124 -124
- package/src/triggers/models/custom-event-data.js +4 -4
- package/src/triggers/models/custom-event-property-data.js +5 -5
- package/src/triggers/models/filter-set.js +2 -2
- package/src/triggers/models/filter.js +1 -1
- package/src/triggers/models/in-app-message-click-data.js +5 -5
- package/src/triggers/models/purchase-data.js +1 -1
- package/src/triggers/models/purchase-property-data.js +2 -2
- package/src/triggers/models/push-click-data.js +5 -5
- package/src/triggers/models/trigger-condition.js +45 -45
- package/src/triggers/models/trigger-events.js +3 -3
- package/src/triggers/models/trigger.js +30 -30
- package/src/triggers/triggers-provider.js +63 -63
- package/src/types.js +5 -1
- package/src/ui/js/attach-css.js +1 -1
- package/src/util/braze-actions.js +6 -6
- package/src/util/browser-detector.js +13 -13
- package/src/util/client-hints-parser.js +5 -5
- package/src/util/code-utils.js +2 -2
- package/src/util/deprecation-utils.js +2 -2
- package/src/util/dom-utils.js +8 -8
- package/src/util/ecommerce-event-validation.js +343 -0
- package/src/util/html-display-utils.js +11 -11
- package/src/util/iso-4217-currency-codes.js +176 -0
- package/src/util/net.js +4 -4
- package/src/util/request-header-utils.js +10 -10
- package/src/util/string-utils.js +2 -2
- package/src/util/user-agent-parser.js +15 -15
- package/src/util/validation-utils.js +14 -14
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
const DD = [
|
|
2
|
+
"AED",
|
|
3
|
+
"AFN",
|
|
4
|
+
"ALL",
|
|
5
|
+
"AMD",
|
|
6
|
+
"ANG",
|
|
7
|
+
"AOA",
|
|
8
|
+
"ARS",
|
|
9
|
+
"AUD",
|
|
10
|
+
"AWG",
|
|
11
|
+
"AZN",
|
|
12
|
+
"BAM",
|
|
13
|
+
"BBD",
|
|
14
|
+
"BDT",
|
|
15
|
+
"BGN",
|
|
16
|
+
"BHD",
|
|
17
|
+
"BIF",
|
|
18
|
+
"BMD",
|
|
19
|
+
"BND",
|
|
20
|
+
"BOB",
|
|
21
|
+
"BRL",
|
|
22
|
+
"BSD",
|
|
23
|
+
"BTC",
|
|
24
|
+
"BTN",
|
|
25
|
+
"BWP",
|
|
26
|
+
"BYR",
|
|
27
|
+
"BZD",
|
|
28
|
+
"CAD",
|
|
29
|
+
"CDF",
|
|
30
|
+
"CHF",
|
|
31
|
+
"CLF",
|
|
32
|
+
"CLP",
|
|
33
|
+
"CNY",
|
|
34
|
+
"COP",
|
|
35
|
+
"CRC",
|
|
36
|
+
"CUC",
|
|
37
|
+
"CUP",
|
|
38
|
+
"CVE",
|
|
39
|
+
"CZK",
|
|
40
|
+
"DJF",
|
|
41
|
+
"DKK",
|
|
42
|
+
"DOP",
|
|
43
|
+
"DZD",
|
|
44
|
+
"EEK",
|
|
45
|
+
"EGP",
|
|
46
|
+
"ERN",
|
|
47
|
+
"ETB",
|
|
48
|
+
"EUR",
|
|
49
|
+
"FJD",
|
|
50
|
+
"FKP",
|
|
51
|
+
"GBP",
|
|
52
|
+
"GEL",
|
|
53
|
+
"GGP",
|
|
54
|
+
"GHS",
|
|
55
|
+
"GIP",
|
|
56
|
+
"GMD",
|
|
57
|
+
"GNF",
|
|
58
|
+
"GTQ",
|
|
59
|
+
"GYD",
|
|
60
|
+
"HKD",
|
|
61
|
+
"HNL",
|
|
62
|
+
"HRK",
|
|
63
|
+
"HTG",
|
|
64
|
+
"HUF",
|
|
65
|
+
"IDR",
|
|
66
|
+
"ILS",
|
|
67
|
+
"IMP",
|
|
68
|
+
"INR",
|
|
69
|
+
"IQD",
|
|
70
|
+
"IRR",
|
|
71
|
+
"ISK",
|
|
72
|
+
"JEP",
|
|
73
|
+
"JMD",
|
|
74
|
+
"JOD",
|
|
75
|
+
"JPY",
|
|
76
|
+
"KES",
|
|
77
|
+
"KGS",
|
|
78
|
+
"KHR",
|
|
79
|
+
"KMF",
|
|
80
|
+
"KPW",
|
|
81
|
+
"KRW",
|
|
82
|
+
"KWD",
|
|
83
|
+
"KYD",
|
|
84
|
+
"KZT",
|
|
85
|
+
"LAK",
|
|
86
|
+
"LBP",
|
|
87
|
+
"LKR",
|
|
88
|
+
"LRD",
|
|
89
|
+
"LSL",
|
|
90
|
+
"LTL",
|
|
91
|
+
"LVL",
|
|
92
|
+
"LYD",
|
|
93
|
+
"MAD",
|
|
94
|
+
"MDL",
|
|
95
|
+
"MGA",
|
|
96
|
+
"MKD",
|
|
97
|
+
"MMK",
|
|
98
|
+
"MNT",
|
|
99
|
+
"MOP",
|
|
100
|
+
"MRO",
|
|
101
|
+
"MTL",
|
|
102
|
+
"MUR",
|
|
103
|
+
"MVR",
|
|
104
|
+
"MWK",
|
|
105
|
+
"MXN",
|
|
106
|
+
"MYR",
|
|
107
|
+
"MZN",
|
|
108
|
+
"NAD",
|
|
109
|
+
"NGN",
|
|
110
|
+
"NIO",
|
|
111
|
+
"NOK",
|
|
112
|
+
"NPR",
|
|
113
|
+
"NZD",
|
|
114
|
+
"OMR",
|
|
115
|
+
"PAB",
|
|
116
|
+
"PEN",
|
|
117
|
+
"PGK",
|
|
118
|
+
"PHP",
|
|
119
|
+
"PKR",
|
|
120
|
+
"PLN",
|
|
121
|
+
"PYG",
|
|
122
|
+
"QAR",
|
|
123
|
+
"RON",
|
|
124
|
+
"RSD",
|
|
125
|
+
"RUB",
|
|
126
|
+
"RWF",
|
|
127
|
+
"SAR",
|
|
128
|
+
"SBD",
|
|
129
|
+
"SCR",
|
|
130
|
+
"SDG",
|
|
131
|
+
"SEK",
|
|
132
|
+
"SGD",
|
|
133
|
+
"SHP",
|
|
134
|
+
"SLL",
|
|
135
|
+
"SOS",
|
|
136
|
+
"SRD",
|
|
137
|
+
"STD",
|
|
138
|
+
"SVC",
|
|
139
|
+
"SYP",
|
|
140
|
+
"SZL",
|
|
141
|
+
"THB",
|
|
142
|
+
"TJS",
|
|
143
|
+
"TMT",
|
|
144
|
+
"TND",
|
|
145
|
+
"TOP",
|
|
146
|
+
"TRY",
|
|
147
|
+
"TTD",
|
|
148
|
+
"TWD",
|
|
149
|
+
"TZS",
|
|
150
|
+
"UAH",
|
|
151
|
+
"UGX",
|
|
152
|
+
"USD",
|
|
153
|
+
"UYU",
|
|
154
|
+
"UZS",
|
|
155
|
+
"VEF",
|
|
156
|
+
"VND",
|
|
157
|
+
"VUV",
|
|
158
|
+
"WST",
|
|
159
|
+
"XAF",
|
|
160
|
+
"XAG",
|
|
161
|
+
"XAU",
|
|
162
|
+
"XCD",
|
|
163
|
+
"XDR",
|
|
164
|
+
"XOF",
|
|
165
|
+
"XPD",
|
|
166
|
+
"XPF",
|
|
167
|
+
"XPT",
|
|
168
|
+
"YER",
|
|
169
|
+
"ZAR",
|
|
170
|
+
"ZMK",
|
|
171
|
+
"ZMW",
|
|
172
|
+
"ZWL",
|
|
173
|
+
];
|
|
174
|
+
export function isValidIso4217CurrencyCode(D) {
|
|
175
|
+
return -1 !== DD.indexOf(D);
|
|
176
|
+
}
|
package/src/util/net.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as b } from "../../shared-lib/index.js";
|
|
2
2
|
import Ne from "../models/backend-errors.js";
|
|
3
|
-
import { getErrorMessage as
|
|
3
|
+
import { getErrorMessage as hi } from "./error-utils.js";
|
|
4
4
|
const l = {
|
|
5
5
|
ot: (t) => {
|
|
6
6
|
let e, o;
|
|
7
7
|
try {
|
|
8
8
|
const r = () => {
|
|
9
|
-
|
|
9
|
+
b.error("This browser does not have any supported ajax options!");
|
|
10
10
|
};
|
|
11
11
|
let n = !1;
|
|
12
12
|
if ((window.XMLHttpRequest && (n = !0), !n)) return void r();
|
|
@@ -51,7 +51,7 @@ const l = {
|
|
|
51
51
|
for (const t of i) e.setRequestHeader(t[0], t[1]);
|
|
52
52
|
e.send(o);
|
|
53
53
|
} catch (t) {
|
|
54
|
-
|
|
54
|
+
b.error(`Network request error: ${hi(t)}`);
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { REQUEST_ATTEMPT_DEFAULT as
|
|
1
|
+
import { REQUEST_ATTEMPT_DEFAULT as Qe } from "../common/constants.js";
|
|
2
2
|
import { STORAGE_KEYS as s } from "../managers/storage-manager.js";
|
|
3
3
|
const h = {
|
|
4
4
|
it: {
|
|
5
5
|
pn: "data",
|
|
6
|
-
|
|
6
|
+
Mi: "content_cards/sync",
|
|
7
7
|
Co: "feature_flags/sync",
|
|
8
8
|
Yo: "template",
|
|
9
9
|
st: "banners/sync",
|
|
10
10
|
},
|
|
11
|
-
Pl: (t) => (null == t ? void 0 : t.
|
|
12
|
-
Am: (t) => (null == t ? void 0 : t.
|
|
11
|
+
Pl: (t) => (null == t ? void 0 : t.St(s.It.ES)),
|
|
12
|
+
Am: (t) => (null == t ? void 0 : t.St(s.It.SS)),
|
|
13
13
|
Rm: (t, e) => {
|
|
14
|
-
null == t || t.
|
|
14
|
+
null == t || t.Pt(s.It.ES, e);
|
|
15
15
|
},
|
|
16
16
|
qm: (t, e) => {
|
|
17
|
-
null == t || t.
|
|
17
|
+
null == t || t.Pt(s.It.SS, e);
|
|
18
18
|
},
|
|
19
19
|
ql: (t, e) => {
|
|
20
20
|
if (!t || !e) return -1;
|
|
@@ -24,10 +24,10 @@ const h = {
|
|
|
24
24
|
return null == n || isNaN(n) ? -1 : n;
|
|
25
25
|
},
|
|
26
26
|
Al: (t, e) => {
|
|
27
|
-
let s =
|
|
27
|
+
let s = Qe;
|
|
28
28
|
if (!t || !e) return s;
|
|
29
29
|
const n = h.Am(t);
|
|
30
|
-
return null == n ? s : ((s = n[e]), null == s || isNaN(s) ?
|
|
30
|
+
return null == n ? s : ((s = n[e]), null == s || isNaN(s) ? Qe : s);
|
|
31
31
|
},
|
|
32
32
|
nt: (t, e, s) => {
|
|
33
33
|
if (!t || !e) return;
|
|
@@ -39,8 +39,8 @@ const h = {
|
|
|
39
39
|
let n = h.Am(t);
|
|
40
40
|
null == n && (n = {}), (n[e] = s), h.qm(t, n);
|
|
41
41
|
},
|
|
42
|
-
|
|
43
|
-
t && e && h.Dl(t, e,
|
|
42
|
+
Ji: (t, e) => {
|
|
43
|
+
t && e && h.Dl(t, e, Qe);
|
|
44
44
|
},
|
|
45
45
|
zl: (t, e) => {
|
|
46
46
|
if (!t || !e) return;
|
package/src/util/string-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger as
|
|
1
|
+
import { logger as b } from "../../shared-lib/index.js";
|
|
2
2
|
export function getByteLength(t) {
|
|
3
3
|
let e = t.length;
|
|
4
4
|
for (let n = t.length - 1; n >= 0; n--) {
|
|
@@ -17,6 +17,6 @@ export function decodeBrazeActions(t) {
|
|
|
17
17
|
const r = new Uint16Array(n.buffer);
|
|
18
18
|
return String.fromCharCode(...r);
|
|
19
19
|
} catch (t) {
|
|
20
|
-
return
|
|
20
|
+
return b.error("Unable to decode Base64: " + t), null;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Ve from "./base-device-parser.js";
|
|
2
|
-
import { Browsers as
|
|
3
|
-
export default class
|
|
2
|
+
import { Browsers as yi, OperatingSystems as so } from "./device-constants.js";
|
|
3
|
+
export default class vi extends Ve {
|
|
4
4
|
constructor() {
|
|
5
|
-
super(), (this.Sd =
|
|
5
|
+
super(), (this.Sd = vi.Bc(navigator.userAgent || ""));
|
|
6
6
|
}
|
|
7
7
|
ef() {
|
|
8
8
|
return this.Sd[0] || "Unknown Browser";
|
|
@@ -13,7 +13,7 @@ export default class bi extends Ve {
|
|
|
13
13
|
Fa(r) {
|
|
14
14
|
for (let n = 0; n < r.length; n++) {
|
|
15
15
|
const e = r[n].string;
|
|
16
|
-
let i =
|
|
16
|
+
let i = vi.nf(e, r[n]);
|
|
17
17
|
if (i)
|
|
18
18
|
return (
|
|
19
19
|
i === so.Pg && navigator.maxTouchPoints > 1 && (i = so.co),
|
|
@@ -22,7 +22,7 @@ export default class bi extends Ve {
|
|
|
22
22
|
}
|
|
23
23
|
return Promise.resolve(navigator.platform);
|
|
24
24
|
}
|
|
25
|
-
static
|
|
25
|
+
static Bc(r) {
|
|
26
26
|
let n,
|
|
27
27
|
e =
|
|
28
28
|
r.match(
|
|
@@ -40,40 +40,40 @@ export default class bi extends Ve {
|
|
|
40
40
|
if (-1 !== r.indexOf("PhilipsTV")) return ["Philips Smart TV", null];
|
|
41
41
|
if (r.match(/\b(Roku)\b/)) return ["Roku", null];
|
|
42
42
|
if (r.match(/\bAFTM\b/)) return ["Amazon Fire Stick", null];
|
|
43
|
-
if (e[1] ===
|
|
44
|
-
if (r.includes(
|
|
43
|
+
if (e[1] === yi.rO) {
|
|
44
|
+
if (r.includes(yi.Sg)) return [yi.Sg, e[2]];
|
|
45
45
|
if (
|
|
46
46
|
((n = r.match(/\b(OPR|Edge|EdgA|Edg|UCBrowser)\/(\.?\d+(\.\d+)*)/)),
|
|
47
47
|
null != n)
|
|
48
48
|
)
|
|
49
49
|
return (
|
|
50
50
|
(n = n.slice(1)),
|
|
51
|
-
(n[0] = n[0].replace("OPR",
|
|
52
|
-
(n[0] = n[0].replace("EdgA",
|
|
53
|
-
"Edg" === n[0] && (n[0] =
|
|
51
|
+
(n[0] = n[0].replace("OPR", yi.oO)),
|
|
52
|
+
(n[0] = n[0].replace("EdgA", yi.eO)),
|
|
53
|
+
"Edg" === n[0] && (n[0] = yi.eO),
|
|
54
54
|
[n[0], n[1]]
|
|
55
55
|
);
|
|
56
56
|
}
|
|
57
57
|
if (
|
|
58
|
-
e[1] ===
|
|
58
|
+
e[1] === yi.Bg &&
|
|
59
59
|
((n = r.match(/\b(EdgiOS)\/(\.?\d+(\.\d+)*)/)), null != n)
|
|
60
60
|
)
|
|
61
61
|
return (
|
|
62
|
-
(n = n.slice(1)), (n[0] = n[0].replace("EdgiOS",
|
|
62
|
+
(n = n.slice(1)), (n[0] = n[0].replace("EdgiOS", yi.eO)), [n[0], n[1]]
|
|
63
63
|
);
|
|
64
64
|
if (
|
|
65
65
|
((e = e[2] ? [e[1], e[2]] : [null, null]),
|
|
66
|
-
e[0] ===
|
|
66
|
+
e[0] === yi.Bg &&
|
|
67
67
|
null != (n = r.match(/version\/(\.?\d+(\.\d+)*)/i)) &&
|
|
68
68
|
e.splice(1, 1, n[1]),
|
|
69
69
|
null != (n = r.match(/\b(UCBrowser)\/(\.?\d+(\.\d+)*)/)) &&
|
|
70
70
|
e.splice(1, 1, n[2]),
|
|
71
|
-
e[0] ===
|
|
71
|
+
e[0] === yi.oO && null != (n = r.match(/mini\/(\.?\d+(\.\d+)*)/i)))
|
|
72
72
|
)
|
|
73
73
|
return ["Opera Mini", n[1] || ""];
|
|
74
74
|
if (e[0]) {
|
|
75
75
|
const r = e[0].toLowerCase();
|
|
76
|
-
"crios" === r && (e[0] =
|
|
76
|
+
"crios" === r && (e[0] = yi.rO),
|
|
77
77
|
"tizen" === r && ((e[0] = "Samsung Smart TV"), (e[1] = null)),
|
|
78
78
|
"samsungbrowser" === r && (e[0] = "Samsung Browser");
|
|
79
79
|
}
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
isArray as g,
|
|
3
3
|
isDate as Nt,
|
|
4
4
|
isObject as Ct,
|
|
5
|
-
keys as
|
|
5
|
+
keys as C,
|
|
6
6
|
} from "./code-utils.js";
|
|
7
|
-
import { getByteLength as
|
|
8
|
-
import { logger as
|
|
7
|
+
import { getByteLength as er } from "./string-utils.js";
|
|
8
|
+
import { logger as b } from "../../shared-lib/index.js";
|
|
9
9
|
import { toValidBackendTimeString as $t } from "./date-utils.js";
|
|
10
10
|
import { BRAZE_ACTIONS as oo } from "./braze-actions.js";
|
|
11
11
|
import { CoreStrings as R } from "../common/constants.js";
|
|
@@ -36,14 +36,14 @@ export function validateCustomString(t, e, r) {
|
|
|
36
36
|
null != t &&
|
|
37
37
|
"string" == typeof t &&
|
|
38
38
|
("" === t || null != t.match(CUSTOM_DATA_REGEX));
|
|
39
|
-
return n ||
|
|
39
|
+
return n || b.error(`Cannot ${e} because ${r} "${t}" is invalid.`), n;
|
|
40
40
|
}
|
|
41
41
|
export function validateCustomAttributeKey(t) {
|
|
42
42
|
return (
|
|
43
43
|
null != t &&
|
|
44
44
|
t.match(CUSTOM_ATTRIBUTE_SPECIAL_CHARS_REGEX) &&
|
|
45
45
|
-1 === CUSTOM_ATTRIBUTE_RESERVED_OPERATORS.indexOf(t) &&
|
|
46
|
-
|
|
46
|
+
b.warn("Custom attribute keys cannot contain '$' or '.'"),
|
|
47
47
|
validateCustomString(t, "set custom user attribute", "the given key")
|
|
48
48
|
);
|
|
49
49
|
}
|
|
@@ -56,7 +56,7 @@ export function validatePropertyType(t) {
|
|
|
56
56
|
export function _validateNestedProperties(t, e, r) {
|
|
57
57
|
const n = -1 !== r;
|
|
58
58
|
if (n && r > 50)
|
|
59
|
-
return
|
|
59
|
+
return b.error("Nested attributes cannot be more than 50 levels deep."), !1;
|
|
60
60
|
const o = n ? r + 1 : -1;
|
|
61
61
|
if (g(t) && g(e)) {
|
|
62
62
|
for (let r = 0; r < t.length && r < e.length; r++)
|
|
@@ -67,7 +67,7 @@ export function _validateNestedProperties(t, e, r) {
|
|
|
67
67
|
return !1;
|
|
68
68
|
} else {
|
|
69
69
|
if (!Ct(t)) return validatePropertyType(t);
|
|
70
|
-
for (const r of
|
|
70
|
+
for (const r of C(t)) {
|
|
71
71
|
const i = t[r];
|
|
72
72
|
if (n && !validateCustomAttributeKey(r)) return !1;
|
|
73
73
|
if (Nt(i)) {
|
|
@@ -85,26 +85,26 @@ export function _validateEventPropertyValue(t, e, r, n, o) {
|
|
|
85
85
|
Ct(t) || g(t)
|
|
86
86
|
? _validateNestedProperties(t, e, o ? 1 : -1)
|
|
87
87
|
: validatePropertyType(t)),
|
|
88
|
-
i ||
|
|
88
|
+
i || b.error(`Cannot ${r} because ${n} "${t}" is invalid.`),
|
|
89
89
|
i
|
|
90
90
|
);
|
|
91
91
|
}
|
|
92
92
|
export function validateStandardString(t, e, r, n = !1) {
|
|
93
93
|
const o = "string" == typeof t || (null === t && n);
|
|
94
|
-
return o ||
|
|
94
|
+
return o || b.error(`Cannot ${e} because ${r} "${t}" is invalid.`), o;
|
|
95
95
|
}
|
|
96
96
|
export function validateCustomProperties(t, e, r, n, o) {
|
|
97
97
|
if ((null == t && (t = {}), "object" != typeof t || g(t)))
|
|
98
98
|
return (
|
|
99
|
-
|
|
99
|
+
b.error(`${e} requires that ${r} be an object. Ignoring ${o}.`),
|
|
100
100
|
[!1, null]
|
|
101
101
|
);
|
|
102
102
|
let i, a;
|
|
103
103
|
e === R.Ku ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
|
|
104
104
|
const s = JSON.stringify(t);
|
|
105
|
-
if (
|
|
105
|
+
if (er(s) > i)
|
|
106
106
|
return (
|
|
107
|
-
|
|
107
|
+
b.error(
|
|
108
108
|
`Could not ${n} because ${r} was greater than the max size of ${a}.`,
|
|
109
109
|
),
|
|
110
110
|
[!1, null]
|
|
@@ -114,7 +114,7 @@ export function validateCustomProperties(t, e, r, n, o) {
|
|
|
114
114
|
u = JSON.parse(s);
|
|
115
115
|
} catch (t) {
|
|
116
116
|
return (
|
|
117
|
-
|
|
117
|
+
b.error(`Could not ${n} because ${r} did not contain valid JSON.`),
|
|
118
118
|
[!1, null]
|
|
119
119
|
);
|
|
120
120
|
}
|
|
@@ -145,7 +145,7 @@ export function validateCustomAttributeArrayType(t, e) {
|
|
|
145
145
|
let r = !1,
|
|
146
146
|
n = !1;
|
|
147
147
|
const o = () => {
|
|
148
|
-
|
|
148
|
+
b.error(
|
|
149
149
|
"Custom attribute arrays must be either string arrays or object arrays.",
|
|
150
150
|
);
|
|
151
151
|
};
|