@braze/web-sdk 6.6.0 → 6.7.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 +253 -5
- package/package.json +1 -1
- package/shared-lib/event-types.js +21 -20
- package/shared-lib/guid.js +3 -3
- package/shared-lib/indexed-db-adapter.js +70 -70
- package/shared-lib/logger.js +7 -7
- package/shared-lib/supported-options.js +26 -26
- package/src/Banner/banner-factory.js +11 -1
- package/src/Banner/banner-provider.js +244 -120
- package/src/Banner/banner.js +14 -12
- package/src/Banner/display/banner-to-html.js +23 -16
- package/src/Banner/display/detect-banner-impressions.js +13 -13
- package/src/Banner/get-all-banners.js +5 -5
- package/src/Banner/get-banner.js +4 -4
- package/src/Banner/log-banner-click.js +4 -4
- package/src/Banner/log-banner-dismissal.js +23 -0
- package/src/Banner/log-banner-impressions.js +7 -7
- package/src/Banner/request-banners-refresh.js +12 -16
- package/src/Banner/subscribe-to-banners-updates.js +6 -6
- package/src/Banner/ui/insert-banner.js +12 -12
- package/src/Card/card-manager-factory.js +5 -5
- package/src/Card/card-manager.js +33 -33
- package/src/Card/constants.js +1 -1
- package/src/Card/display/card-display.js +11 -11
- package/src/Card/log-card-dismissal.js +3 -3
- package/src/Card/log-content-card-click.js +3 -3
- package/src/Card/log-content-card-impressions.js +6 -6
- package/src/Card/models/captioned-image.js +21 -21
- package/src/Card/models/card.js +73 -73
- package/src/Card/models/classic-card.js +21 -21
- package/src/Card/models/control-card.js +11 -11
- package/src/Card/models/image-only.js +18 -18
- package/src/Card/util/card-factory.js +41 -41
- package/src/ContentCards/content-cards-provider-factory.js +12 -12
- package/src/ContentCards/content-cards-provider.js +151 -151
- package/src/ContentCards/content-cards.js +5 -5
- 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 +6 -6
- package/src/ContentCards/ui/show-content-cards.js +10 -10
- package/src/Core/add-sdk-metadata.js +2 -2
- package/src/Core/change-user.js +6 -6
- package/src/Core/disable-sdk.js +9 -9
- package/src/Core/enable-sdk.js +5 -5
- package/src/Core/get-user.js +1 -1
- package/src/Core/handle-braze-action.js +3 -3
- package/src/Core/is-disabled.js +2 -2
- package/src/Core/log-custom-event.js +8 -8
- package/src/Core/log-purchase.js +5 -5
- package/src/Core/open-session.js +7 -7
- package/src/Core/set-sdk-authentication-signature.js +3 -3
- package/src/Core/subscribe-to-sdk-authentication-failures.js +1 -1
- package/src/Core/wipe-data.js +6 -6
- package/src/DUST/dust-provider-factory.js +11 -11
- package/src/DUST/dust-provider.js +255 -255
- package/src/DUST/dust-shared-worker-impl.js +100 -100
- package/src/DUST/dust-worker-bridge.js +27 -27
- package/src/DUST/subscribe-to-dust.js +9 -9
- package/src/FeatureFlags/feature-flag-factory.js +8 -8
- package/src/FeatureFlags/feature-flag.js +9 -9
- package/src/FeatureFlags/feature-flags-provider.js +86 -86
- package/src/FeatureFlags/get-all-feature-flags.js +2 -2
- package/src/FeatureFlags/get-feature-flag.js +2 -2
- package/src/FeatureFlags/log-feature-flag-impression.js +5 -5
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +2 -2
- package/src/InAppMessage/constants.js +83 -2
- package/src/InAppMessage/display/html-message-display-utils.js +15 -15
- package/src/InAppMessage/display/html-message-to-html.js +36 -37
- package/src/InAppMessage/display/in-app-message-to-html.js +44 -44
- package/src/InAppMessage/display/modal-utils.js +10 -14
- package/src/InAppMessage/in-app-message-factory.js +16 -20
- package/src/InAppMessage/in-app-message-manager.js +115 -116
- package/src/InAppMessage/log-in-app-message-button-click.js +8 -8
- package/src/InAppMessage/log-in-app-message-click.js +7 -7
- package/src/InAppMessage/log-in-app-message-html-click.js +8 -8
- package/src/InAppMessage/log-in-app-message-impression.js +5 -5
- package/src/InAppMessage/models/control-message.js +4 -4
- package/src/InAppMessage/models/full-screen-message.js +56 -49
- package/src/InAppMessage/models/html-message.js +31 -27
- package/src/InAppMessage/models/in-app-message-button.js +12 -12
- package/src/InAppMessage/models/in-app-message.js +202 -256
- package/src/InAppMessage/models/modal-message.js +55 -49
- package/src/InAppMessage/models/slide-up-message.js +57 -51
- package/src/InAppMessage/models/templated-in-app-message.js +10 -10
- package/src/InAppMessage/shared-types.js +1 -0
- package/src/InAppMessage/subscribe-to-in-app-message.js +1 -1
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +5 -5
- package/src/InAppMessage/ui/remove-all-visible-in-app-messages.js +3 -3
- package/src/InAppMessage/ui/show-in-app-message.js +43 -41
- package/src/Push/is-push-blocked.js +2 -2
- package/src/Push/is-push-permission-granted.js +2 -2
- package/src/Push/is-push-supported.js +2 -2
- package/src/Push/push-manager-factory.js +9 -9
- package/src/Push/push-manager.js +15 -15
- package/src/Push/utils/push-utils.js +15 -15
- package/src/User/user-manager.js +14 -14
- package/src/User/user.js +60 -59
- package/src/common/base-provider.js +1 -1
- package/src/common/constants.js +2 -1
- package/src/common/content-cards-display.js +38 -38
- package/src/common/event-logger.js +8 -8
- package/src/l10n/l10n-manager-factory.js +9 -9
- package/src/l10n/l10n-manager.js +2 -2
- package/src/managers/auth-manager.js +31 -31
- package/src/managers/braze-instance.js +197 -186
- package/src/managers/constants.js +1 -0
- package/src/managers/device-manager.js +25 -25
- package/src/managers/network-manager.js +155 -155
- package/src/managers/server-config-manager.js +106 -93
- package/src/managers/session-manager.js +37 -33
- package/src/managers/storage-manager-factory.js +33 -28
- package/src/managers/storage-manager.js +192 -170
- package/src/managers/subscription-manager.js +13 -13
- package/src/managers/utils.js +1 -1
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +13 -13
- package/src/models/device.js +3 -3
- package/src/models/identifier.js +12 -12
- package/src/models/push-token.js +9 -9
- package/src/models/request-result.js +4 -4
- package/src/models/server-config.js +29 -38
- package/src/request-controller.js +160 -164
- package/src/triggers/models/custom-event-data.js +7 -7
- package/src/triggers/models/custom-event-property-data.js +10 -10
- package/src/triggers/models/filter-set.js +12 -12
- package/src/triggers/models/filter.js +66 -66
- package/src/triggers/models/in-app-message-click-data.js +13 -13
- package/src/triggers/models/purchase-data.js +4 -4
- package/src/triggers/models/purchase-property-data.js +10 -10
- package/src/triggers/models/push-click-data.js +8 -8
- package/src/triggers/models/trigger-condition.js +58 -58
- package/src/triggers/models/trigger-events.js +3 -3
- package/src/triggers/models/trigger.js +44 -44
- package/src/triggers/triggers-provider-factory.js +5 -5
- package/src/triggers/triggers-provider.js +70 -70
- package/src/ui/js/attach-css.js +3 -3
- package/src/ui/js/feed-css.js +2 -2
- package/src/ui/js/iam-css.js +2 -2
- package/src/ui/js/load-font-awesome.js +2 -2
- package/src/util/base-device-parser.js +9 -9
- package/src/util/braze-actions.js +3 -3
- package/src/util/browser-detector.js +37 -37
- package/src/util/client-hints-parser.js +9 -9
- package/src/util/component-utils.js +3 -3
- package/src/util/dom-utils.js +2 -2
- package/src/util/html-display-utils.js +11 -11
- package/src/util/key-codes.js +1 -1
- package/src/util/net.js +8 -8
- package/src/util/request-header-utils.js +25 -25
- package/src/util/user-agent-parser.js +20 -20
- package/src/util/validation-utils.js +21 -21
- package/src/util/window-utils.js +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { logger as E } from "../../shared-lib/index.js";
|
|
2
2
|
import { getUser as ao } from "../Core/get-user.js";
|
|
3
|
-
import { CoreStrings as
|
|
3
|
+
import { CoreStrings as R } from "../common/constants.js";
|
|
4
4
|
import r from "../managers/braze-instance.js";
|
|
5
|
-
import { keys as
|
|
5
|
+
import { keys as D } from "../util/code-utils.js";
|
|
6
6
|
import User from "../User/user.js";
|
|
7
7
|
export const buildBrazeBridge = (t, e) => {
|
|
8
8
|
const o = { display: {}, web: {} },
|
|
@@ -12,7 +12,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
12
12
|
import("../Push/request-push-permission.js").then((e) => {
|
|
13
13
|
r.ao()
|
|
14
14
|
? e.requestPushPermission(...Array.prototype.slice.call(t))
|
|
15
|
-
: E.error(
|
|
15
|
+
: E.error(R.ee);
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
18
|
},
|
|
@@ -23,7 +23,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
23
23
|
({ requestImmediateDataFlush: requestImmediateDataFlush }) => {
|
|
24
24
|
r.ao()
|
|
25
25
|
? requestImmediateDataFlush(...Array.prototype.slice.call(t))
|
|
26
|
-
: E.error(
|
|
26
|
+
: E.error(R.ee);
|
|
27
27
|
},
|
|
28
28
|
);
|
|
29
29
|
},
|
|
@@ -31,7 +31,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
31
31
|
const t = arguments;
|
|
32
32
|
import("../Core/log-custom-event.js").then(
|
|
33
33
|
({ logCustomEvent: logCustomEvent }) => {
|
|
34
|
-
if (!r.ao()) return void E.error(
|
|
34
|
+
if (!r.ao()) return void E.error(R.ee);
|
|
35
35
|
logCustomEvent(...Array.prototype.slice.call(t));
|
|
36
36
|
},
|
|
37
37
|
);
|
|
@@ -40,7 +40,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
40
40
|
const t = arguments;
|
|
41
41
|
import("../Core/log-purchase.js").then(
|
|
42
42
|
({ logPurchase: logPurchase }) => {
|
|
43
|
-
if (!r.ao()) return void E.error(
|
|
43
|
+
if (!r.ao()) return void E.error(R.ee);
|
|
44
44
|
logPurchase(...Array.prototype.slice.call(t));
|
|
45
45
|
},
|
|
46
46
|
);
|
|
@@ -51,7 +51,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
51
51
|
({ unregisterPush: unregisterPush }) => {
|
|
52
52
|
r.ao()
|
|
53
53
|
? unregisterPush(...Array.prototype.slice.call(t))
|
|
54
|
-
: E.error(
|
|
54
|
+
: E.error(R.ee);
|
|
55
55
|
},
|
|
56
56
|
);
|
|
57
57
|
},
|
|
@@ -59,7 +59,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
59
59
|
changeUser: function () {
|
|
60
60
|
const t = arguments;
|
|
61
61
|
import("../Core/change-user.js").then(({ changeUser: changeUser }) => {
|
|
62
|
-
if (!r.ao()) return void E.error(
|
|
62
|
+
if (!r.ao()) return void E.error(R.ee);
|
|
63
63
|
changeUser(...Array.prototype.slice.call(t));
|
|
64
64
|
});
|
|
65
65
|
},
|
|
@@ -69,7 +69,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
69
69
|
n[t](...Array.prototype.slice.call(arguments));
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
|
-
for (const t of
|
|
72
|
+
for (const t of D(n)) o[t] = s(t);
|
|
73
73
|
const i = [
|
|
74
74
|
"setFirstName",
|
|
75
75
|
"setLastName",
|
|
@@ -115,7 +115,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
115
115
|
};
|
|
116
116
|
},
|
|
117
117
|
f = o.display;
|
|
118
|
-
for (const t of
|
|
118
|
+
for (const t of D(a)) f[t] = m(t);
|
|
119
119
|
const l = { registerAppboyPushMessages: requestPushPermission() },
|
|
120
120
|
p = function (t) {
|
|
121
121
|
return function () {
|
|
@@ -123,7 +123,7 @@ export const buildBrazeBridge = (t, e) => {
|
|
|
123
123
|
};
|
|
124
124
|
},
|
|
125
125
|
y = o.web;
|
|
126
|
-
for (const t of
|
|
126
|
+
for (const t of D(l)) y[t] = p(t);
|
|
127
127
|
return (
|
|
128
128
|
(o.NotificationSubscriptionTypes = User.NotificationSubscriptionTypes), o
|
|
129
129
|
);
|
package/src/util/key-codes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const KeyCodes = {
|
|
1
|
+
export const KeyCodes = { Ao: 32, Wo: 9, Lo: 13, rh: 27 };
|
package/src/util/net.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { logger as E } from "../../shared-lib/index.js";
|
|
2
|
-
import
|
|
2
|
+
import Ne from "../models/backend-errors.js";
|
|
3
3
|
import { getErrorMessage as ai } from "./error-utils.js";
|
|
4
4
|
const l = {
|
|
5
|
-
|
|
5
|
+
ot: (t) => {
|
|
6
6
|
let e, o;
|
|
7
7
|
try {
|
|
8
8
|
const r = () => {
|
|
@@ -13,7 +13,7 @@ const l = {
|
|
|
13
13
|
e = new XMLHttpRequest();
|
|
14
14
|
const s = (o) => {
|
|
15
15
|
"function" == typeof t.error && t.error(e.status),
|
|
16
|
-
"function" == typeof t.
|
|
16
|
+
"function" == typeof t.ft && t.ft(!1, o);
|
|
17
17
|
};
|
|
18
18
|
(e.onload = () => {
|
|
19
19
|
let o = !1;
|
|
@@ -21,20 +21,20 @@ const l = {
|
|
|
21
21
|
o = (e.status >= 200 && e.status < 300) || 304 === e.status;
|
|
22
22
|
const r = e.getAllResponseHeaders();
|
|
23
23
|
if (o) {
|
|
24
|
-
if ("function" == typeof t.
|
|
24
|
+
if ("function" == typeof t.lt) {
|
|
25
25
|
let o;
|
|
26
26
|
try {
|
|
27
27
|
o = JSON.parse(e.responseText);
|
|
28
28
|
} catch (o) {
|
|
29
29
|
const n = {
|
|
30
|
-
error: "" === e.responseText ?
|
|
30
|
+
error: "" === e.responseText ? Ne.Wa : Ne.Qa,
|
|
31
31
|
response: e.responseText,
|
|
32
32
|
};
|
|
33
|
-
(0, t.
|
|
33
|
+
(0, t.lt)(n, r);
|
|
34
34
|
}
|
|
35
|
-
o && t.
|
|
35
|
+
o && t.lt(o, r);
|
|
36
36
|
}
|
|
37
|
-
"function" == typeof t.
|
|
37
|
+
"function" == typeof t.ft && t.ft(!0, r);
|
|
38
38
|
} else s(r);
|
|
39
39
|
}),
|
|
40
40
|
(e.onerror = () => {
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { REQUEST_ATTEMPT_DEFAULT as
|
|
1
|
+
import { REQUEST_ATTEMPT_DEFAULT as Ge } from "../common/constants.js";
|
|
2
2
|
import { STORAGE_KEYS as s } from "../managers/storage-manager.js";
|
|
3
3
|
const h = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
Am: (t) => (null == t ? void 0 : t.
|
|
4
|
+
it: {
|
|
5
|
+
pn: "data",
|
|
6
|
+
Ji: "content_cards/sync",
|
|
7
|
+
Co: "feature_flags/sync",
|
|
8
|
+
Yo: "template",
|
|
9
|
+
st: "banners/sync",
|
|
10
|
+
},
|
|
11
|
+
Pl: (t) => (null == t ? void 0 : t.Rt(s.Tt.iS)),
|
|
12
|
+
Am: (t) => (null == t ? void 0 : t.Rt(s.Tt.ES)),
|
|
13
13
|
Rm: (t, e) => {
|
|
14
|
-
null == t || t.
|
|
14
|
+
null == t || t.It(s.Tt.iS, e);
|
|
15
15
|
},
|
|
16
16
|
qm: (t, e) => {
|
|
17
|
-
null == t || t.
|
|
17
|
+
null == t || t.It(s.Tt.ES, e);
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
ql: (t, e) => {
|
|
20
20
|
if (!t || !e) return -1;
|
|
21
|
-
const s = h.
|
|
21
|
+
const s = h.Pl(t);
|
|
22
22
|
if (null == s) return -1;
|
|
23
23
|
const n = s[e];
|
|
24
24
|
return null == n || isNaN(n) ? -1 : n;
|
|
25
25
|
},
|
|
26
|
-
|
|
27
|
-
let s =
|
|
26
|
+
Al: (t, e) => {
|
|
27
|
+
let s = Ge;
|
|
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) ? Ge : s);
|
|
31
31
|
},
|
|
32
|
-
|
|
32
|
+
nt: (t, e, s) => {
|
|
33
33
|
if (!t || !e) return;
|
|
34
|
-
let n = h.
|
|
34
|
+
let n = h.Pl(t);
|
|
35
35
|
null == n && (n = {}), (n[e] = s), h.Rm(t, n);
|
|
36
36
|
},
|
|
37
|
-
|
|
37
|
+
Dl: (t, e, s) => {
|
|
38
38
|
if (!t || !e) return;
|
|
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.
|
|
42
|
+
Li: (t, e) => {
|
|
43
|
+
t && e && h.Dl(t, e, Ge);
|
|
44
44
|
},
|
|
45
|
-
|
|
45
|
+
zl: (t, e) => {
|
|
46
46
|
if (!t || !e) return;
|
|
47
|
-
const s = h.
|
|
48
|
-
h.
|
|
47
|
+
const s = h.Al(t, e);
|
|
48
|
+
h.Dl(t, e, s + 1);
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
export default h;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Browsers as
|
|
3
|
-
export default class
|
|
1
|
+
import Ve from "./base-device-parser.js";
|
|
2
|
+
import { Browsers as vi, OperatingSystems as so } from "./device-constants.js";
|
|
3
|
+
export default class bi extends Ve {
|
|
4
4
|
constructor() {
|
|
5
|
-
super(), (this.
|
|
5
|
+
super(), (this.Sd = bi.hf(navigator.userAgent || ""));
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
return this.
|
|
7
|
+
ef() {
|
|
8
|
+
return this.Sd[0] || "Unknown Browser";
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
return this.
|
|
10
|
+
ff() {
|
|
11
|
+
return this.Sd[1] || "Unknown Version";
|
|
12
12
|
}
|
|
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 = bi.nf(e, r[n]);
|
|
17
17
|
if (i)
|
|
18
18
|
return (
|
|
19
19
|
i === so.Pg && navigator.maxTouchPoints > 1 && (i = so.co),
|
|
@@ -40,40 +40,40 @@ export default class Si extends Oe {
|
|
|
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] === vi.rO) {
|
|
44
|
+
if (r.includes(vi.Sg)) return [vi.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", vi.oO)),
|
|
52
|
+
(n[0] = n[0].replace("EdgA", vi.eO)),
|
|
53
|
+
"Edg" === n[0] && (n[0] = vi.eO),
|
|
54
54
|
[n[0], n[1]]
|
|
55
55
|
);
|
|
56
56
|
}
|
|
57
57
|
if (
|
|
58
|
-
e[1] ===
|
|
58
|
+
e[1] === vi.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", vi.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] === vi.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] === vi.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] = vi.rO),
|
|
77
77
|
"tizen" === r && ((e[0] = "Samsung Smart TV"), (e[1] = null)),
|
|
78
78
|
"samsungbrowser" === r && (e[0] = "Samsung Browser");
|
|
79
79
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
isArray as
|
|
2
|
+
isArray as g,
|
|
3
3
|
isDate as Nt,
|
|
4
|
-
isObject as
|
|
5
|
-
keys as
|
|
4
|
+
isObject as Ct,
|
|
5
|
+
keys as D,
|
|
6
6
|
} from "./code-utils.js";
|
|
7
|
-
import { getByteLength as
|
|
7
|
+
import { getByteLength as ir } from "./string-utils.js";
|
|
8
8
|
import { logger as E } from "../../shared-lib/index.js";
|
|
9
|
-
import { toValidBackendTimeString as
|
|
9
|
+
import { toValidBackendTimeString as $t } from "./date-utils.js";
|
|
10
10
|
import { BRAZE_ACTIONS as oo } from "./braze-actions.js";
|
|
11
|
-
import { CoreStrings as
|
|
11
|
+
import { CoreStrings as R } from "../common/constants.js";
|
|
12
12
|
export const CUSTOM_DATA_REGEX = /^[^\x00-\x1F\x22]+$/;
|
|
13
13
|
export const CUSTOM_ATTRIBUTE_SPECIAL_CHARS_REGEX = /[$.]/;
|
|
14
14
|
export const CUSTOM_ATTRIBUTE_RESERVED_OPERATORS = [
|
|
@@ -58,20 +58,20 @@ export function _validateNestedProperties(t, e, r) {
|
|
|
58
58
|
if (n && r > 50)
|
|
59
59
|
return E.error("Nested attributes cannot be more than 50 levels deep."), !1;
|
|
60
60
|
const o = n ? r + 1 : -1;
|
|
61
|
-
if (
|
|
61
|
+
if (g(t) && g(e)) {
|
|
62
62
|
for (let r = 0; r < t.length && r < e.length; r++)
|
|
63
63
|
if (
|
|
64
|
-
(Nt(t[r]) && (e[r] =
|
|
64
|
+
(Nt(t[r]) && (e[r] = $t(t[r])),
|
|
65
65
|
!_validateNestedProperties(t[r], e[r], o))
|
|
66
66
|
)
|
|
67
67
|
return !1;
|
|
68
68
|
} else {
|
|
69
|
-
if (!
|
|
70
|
-
for (const r of
|
|
69
|
+
if (!Ct(t)) return validatePropertyType(t);
|
|
70
|
+
for (const r of D(t)) {
|
|
71
71
|
const i = t[r];
|
|
72
72
|
if (n && !validateCustomAttributeKey(r)) return !1;
|
|
73
73
|
if (Nt(i)) {
|
|
74
|
-
e[r] =
|
|
74
|
+
e[r] = $t(i);
|
|
75
75
|
}
|
|
76
76
|
if (!_validateNestedProperties(i, e[r], o)) return !1;
|
|
77
77
|
}
|
|
@@ -82,7 +82,7 @@ export function _validateEventPropertyValue(t, e, r, n, o) {
|
|
|
82
82
|
let i;
|
|
83
83
|
return (
|
|
84
84
|
(i =
|
|
85
|
-
|
|
85
|
+
Ct(t) || g(t)
|
|
86
86
|
? _validateNestedProperties(t, e, o ? 1 : -1)
|
|
87
87
|
: validatePropertyType(t)),
|
|
88
88
|
i || E.error(`Cannot ${r} because ${n} "${t}" is invalid.`),
|
|
@@ -94,15 +94,15 @@ export function validateStandardString(t, e, r, n = !1) {
|
|
|
94
94
|
return o || E.error(`Cannot ${e} because ${r} "${t}" is invalid.`), o;
|
|
95
95
|
}
|
|
96
96
|
export function validateCustomProperties(t, e, r, n, o) {
|
|
97
|
-
if ((null == t && (t = {}), "object" != typeof t ||
|
|
97
|
+
if ((null == t && (t = {}), "object" != typeof t || g(t)))
|
|
98
98
|
return (
|
|
99
99
|
E.error(`${e} requires that ${r} be an object. Ignoring ${o}.`),
|
|
100
100
|
[!1, null]
|
|
101
101
|
);
|
|
102
102
|
let i, a;
|
|
103
|
-
e ===
|
|
103
|
+
e === R.Ku ? ((i = 76800), (a = "75KB")) : ((i = 51200), (a = "50KB"));
|
|
104
104
|
const s = JSON.stringify(t);
|
|
105
|
-
if (
|
|
105
|
+
if (ir(s) > i)
|
|
106
106
|
return (
|
|
107
107
|
E.error(
|
|
108
108
|
`Could not ${n} because ${r} was greater than the max size of ${a}.`,
|
|
@@ -119,22 +119,22 @@ export function validateCustomProperties(t, e, r, n, o) {
|
|
|
119
119
|
);
|
|
120
120
|
}
|
|
121
121
|
for (const r in t) {
|
|
122
|
-
if (e ===
|
|
122
|
+
if (e === R.Ku && !validateCustomAttributeKey(r)) return [!1, null];
|
|
123
123
|
if (!validateCustomString(r, n, `the ${o} property name`))
|
|
124
124
|
return [!1, null];
|
|
125
125
|
const i = t[r];
|
|
126
|
-
if (e !==
|
|
126
|
+
if (e !== R.Ku && null == i) {
|
|
127
127
|
delete t[r], delete u[r];
|
|
128
128
|
continue;
|
|
129
129
|
}
|
|
130
|
-
Nt(i) && (u[r] =
|
|
130
|
+
Nt(i) && (u[r] = $t(i));
|
|
131
131
|
if (
|
|
132
132
|
!_validateEventPropertyValue(
|
|
133
133
|
i,
|
|
134
134
|
u[r],
|
|
135
135
|
n,
|
|
136
136
|
`the ${o} property "${r}"`,
|
|
137
|
-
e ===
|
|
137
|
+
e === R.Ku,
|
|
138
138
|
)
|
|
139
139
|
)
|
|
140
140
|
return [!1, null];
|
|
@@ -162,12 +162,12 @@ export function validateCustomAttributeArrayType(t, e) {
|
|
|
162
162
|
return [!1, !1];
|
|
163
163
|
r = !0;
|
|
164
164
|
} else {
|
|
165
|
-
if (!
|
|
165
|
+
if (!Ct(i)) return o(), [!1, !1];
|
|
166
166
|
if (r) return o(), [!1, !1];
|
|
167
167
|
if (
|
|
168
168
|
!validateCustomProperties(
|
|
169
169
|
i,
|
|
170
|
-
|
|
170
|
+
R.Ku,
|
|
171
171
|
"attribute value",
|
|
172
172
|
`set custom user attribute "${t}"`,
|
|
173
173
|
"custom user attribute",
|
package/src/util/window-utils.js
CHANGED