@braze/web-sdk 4.7.2 → 4.8.1
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 +32 -26
- package/package.json +1 -1
- package/shared-lib/braze-shared-lib.js +5 -5
- package/shared-lib/encoding-utils.js +1 -1
- package/shared-lib/event-types.js +25 -25
- package/shared-lib/guid.js +3 -3
- package/shared-lib/indexed-db-adapter.js +74 -74
- package/shared-lib/logger.js +18 -18
- package/shared-lib/supported-options.js +18 -18
- package/src/Card/card-manager-factory.js +2 -2
- package/src/Card/card-manager.js +48 -42
- package/src/Card/display/card-display.js +70 -67
- package/src/Card/log-card-click.js +1 -1
- package/src/Card/log-card-dismissal.js +1 -1
- package/src/Card/log-card-impressions.js +3 -3
- package/src/Card/models/banner.js +3 -2
- package/src/Card/models/captioned-image.js +6 -5
- package/src/Card/models/card.js +107 -87
- package/src/Card/models/classic-card.js +5 -5
- package/src/Card/models/control-card.js +5 -21
- package/src/Card/types.js +1 -0
- package/src/Card/util/card-factory.js +32 -32
- package/src/ContentCards/content-cards-provider-factory.js +3 -3
- package/src/ContentCards/content-cards-provider.js +283 -175
- package/src/ContentCards/content-cards.js +2 -2
- package/src/ContentCards/get-cached-content-cards.js +1 -1
- package/src/ContentCards/log-content-cards-displayed.js +2 -2
- package/src/ContentCards/request-content-cards-refresh.js +1 -1
- package/src/ContentCards/subscribe-to-content-cards-updates.js +9 -6
- package/src/ContentCards/types.js +1 -0
- package/src/ContentCards/ui/hide-content-cards.js +2 -2
- package/src/ContentCards/ui/show-content-cards.js +36 -34
- package/src/Core/add-sdk-metadata.js +17 -18
- package/src/Core/change-user.js +12 -14
- package/src/Core/destroy.js +1 -1
- package/src/Core/disable-sdk.js +8 -6
- package/src/Core/enable-sdk.js +4 -4
- package/src/Core/get-device-id.js +7 -6
- package/src/Core/get-user.js +1 -1
- package/src/Core/handle-braze-action.js +57 -40
- package/src/Core/is-disabled.js +2 -2
- package/src/Core/log-custom-event.js +22 -15
- package/src/Core/log-purchase.js +33 -33
- package/src/Core/open-session.js +17 -15
- package/src/Core/request-immediate-data-flush.js +4 -2
- package/src/Core/set-logger.js +1 -1
- package/src/Core/set-sdk-authentication-signature.js +5 -6
- package/src/Core/subscribe-to-sdk-authentication-failures.js +3 -1
- package/src/Core/toggle-logging.js +1 -1
- package/src/Core/types.js +1 -0
- package/src/Core/wipe-data.js +11 -10
- package/src/FeatureFlags/feature-flag-factory.js +6 -6
- package/src/FeatureFlags/feature-flag.js +17 -17
- package/src/FeatureFlags/feature-flags-provider-factory.js +2 -2
- package/src/FeatureFlags/feature-flags-provider.js +67 -65
- package/src/FeatureFlags/get-all-feature-flags.js +3 -3
- package/src/FeatureFlags/get-feature-flag.js +4 -4
- package/src/FeatureFlags/subscribe-to-feature-flags-updates.js +4 -1
- package/src/Feed/feed-provider-factory.js +8 -8
- package/src/Feed/feed-provider.js +57 -46
- package/src/Feed/feed.js +1 -1
- package/src/Feed/get-cached-feed.js +2 -2
- package/src/Feed/log-feed-displayed.js +3 -1
- package/src/Feed/request-feed-refresh.js +2 -2
- package/src/Feed/subscribe-to-feed-updates.js +2 -2
- package/src/Feed/types.js +1 -0
- package/src/Feed/ui/hide-feed.js +2 -2
- package/src/Feed/ui/show-feed.js +41 -37
- package/src/InAppMessage/display/html-message-to-html.js +125 -119
- package/src/InAppMessage/display/in-app-message-to-html.js +72 -69
- package/src/InAppMessage/display/modal-utils.js +18 -13
- package/src/InAppMessage/in-app-message-factory.js +9 -8
- package/src/InAppMessage/in-app-message-manager-factory.js +7 -7
- package/src/InAppMessage/in-app-message-manager.js +130 -110
- package/src/InAppMessage/log-in-app-message-button-click.js +10 -10
- package/src/InAppMessage/log-in-app-message-click.js +9 -9
- package/src/InAppMessage/log-in-app-message-html-click.js +10 -10
- package/src/InAppMessage/log-in-app-message-impression.js +5 -5
- package/src/InAppMessage/models/control-message.js +4 -1
- package/src/InAppMessage/models/full-screen-message.js +35 -37
- package/src/InAppMessage/models/html-message.js +34 -33
- package/src/InAppMessage/models/in-app-message-button.js +23 -16
- package/src/InAppMessage/models/in-app-message.js +147 -105
- package/src/InAppMessage/models/modal-message.js +34 -36
- package/src/InAppMessage/models/slide-up-message.js +25 -27
- package/src/InAppMessage/models/templated-in-app-message.js +12 -7
- package/src/InAppMessage/subscribe-to-in-app-message.js +2 -2
- package/src/InAppMessage/types.js +1 -0
- package/src/InAppMessage/ui/automatically-show-in-app-messages.js +4 -4
- package/src/InAppMessage/ui/show-in-app-message.js +95 -89
- package/src/InAppMessage/utils/in-app-message-utils.js +1 -0
- 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 +20 -20
- package/src/Push/push-manager.js +193 -174
- package/src/Push/request-push-permission.js +4 -3
- package/src/Push/types.js +1 -0
- package/src/Push/unregister-push.js +2 -2
- package/src/Push/utils/push-utils.js +10 -10
- package/src/User/types.js +1 -0
- package/src/User/user-manager.js +24 -24
- package/src/User/user.js +117 -105
- package/src/common/base-feed.js +7 -7
- package/src/common/base-provider.js +2 -2
- package/src/common/constants.js +6 -0
- package/src/common/event-logger.js +6 -6
- package/src/common/feed-display.js +95 -85
- package/src/common/types.js +1 -0
- package/src/l10n/l10n-manager-factory.js +10 -10
- package/src/l10n/l10n-manager.js +1 -1
- package/src/managers/auth-manager.js +37 -34
- package/src/managers/braze-instance.js +209 -193
- package/src/managers/device-manager.js +43 -38
- package/src/managers/network-manager.js +119 -96
- package/src/managers/server-config-manager.js +68 -48
- package/src/managers/session-manager.js +52 -45
- package/src/managers/storage-manager-factory.js +29 -22
- package/src/managers/storage-manager.js +288 -273
- package/src/managers/subscription-manager.js +9 -6
- package/src/managers/types.js +1 -0
- package/src/models/backend-errors.js +5 -5
- package/src/models/braze-event.js +14 -8
- package/src/models/device.js +10 -18
- package/src/models/identifier.js +10 -11
- package/src/models/push-token.js +17 -12
- package/src/models/request-result.js +4 -4
- package/src/models/server-config.js +36 -20
- package/src/models/types.js +1 -0
- package/src/request-controller.js +176 -174
- package/src/triggers/models/custom-event-data.js +6 -6
- package/src/triggers/models/custom-event-property-data.js +9 -9
- package/src/triggers/models/filter-set.js +9 -9
- package/src/triggers/models/filter.js +64 -64
- package/src/triggers/models/in-app-message-click-data.js +12 -12
- package/src/triggers/models/purchase-data.js +3 -3
- package/src/triggers/models/purchase-property-data.js +9 -9
- package/src/triggers/models/push-click-data.js +7 -7
- package/src/triggers/models/trigger-condition.js +57 -57
- package/src/triggers/models/trigger-events.js +2 -2
- package/src/triggers/models/trigger.js +42 -42
- package/src/triggers/triggers-provider-factory.js +8 -8
- package/src/triggers/triggers-provider.js +173 -170
- package/src/types.js +1 -0
- package/src/ui/js/attach-css.js +3 -3
- package/src/ui/js/load-font-awesome.js +2 -2
- package/src/util/base-device-parser.js +2 -2
- package/src/util/braze-actions.js +20 -20
- package/src/util/browser-detector.js +22 -22
- package/src/util/client-hints-parser.js +7 -7
- package/src/util/code-utils.js +1 -1
- package/src/util/color-utils.js +2 -2
- package/src/util/component-utils.js +2 -2
- package/src/util/deprecation-utils.js +1 -1
- package/src/util/device-constants.js +3 -3
- package/src/util/dom-utils.js +7 -7
- package/src/util/error-utils.js +2 -0
- package/src/util/key-codes.js +1 -1
- package/src/util/net.js +11 -11
- package/src/util/request-header-utils.js +23 -0
- package/src/util/string-utils.js +1 -1
- package/src/util/user-agent-parser.js +21 -21
- package/src/util/validation-utils.js +44 -44
- package/src/util/window-utils.js +3 -3
|
@@ -1,59 +1,72 @@
|
|
|
1
1
|
import qt from "../models/backend-errors.js";
|
|
2
2
|
import ue from "../models/braze-event.js";
|
|
3
3
|
import {
|
|
4
|
-
convertMsToSeconds as
|
|
4
|
+
convertMsToSeconds as h,
|
|
5
5
|
convertSecondsToMs as Xt
|
|
6
6
|
} from "../util/date-utils.js";
|
|
7
7
|
import s from "../common/event-logger.js";
|
|
8
8
|
import { isArray as p, isEqual as ii } from "../util/code-utils.js";
|
|
9
9
|
import r from "../../shared-lib/braze-shared-lib.js";
|
|
10
|
-
import { STORAGE_KEYS as
|
|
10
|
+
import { STORAGE_KEYS as i } from "./storage-manager.js";
|
|
11
|
+
import T from "../util/request-header-utils.js";
|
|
12
|
+
import { LAST_REQUEST_TO_ENDPOINT_MS_AGO_DEFAULT as Ht } from "../common/constants.js";
|
|
11
13
|
export default class Pt {
|
|
12
|
-
constructor(t, e, s, i, r, o, n, a,
|
|
13
|
-
(this.
|
|
14
|
-
(this.
|
|
15
|
-
(this.
|
|
16
|
-
(this.
|
|
17
|
-
(this.
|
|
18
|
-
(this.
|
|
19
|
-
(this.
|
|
20
|
-
(this.
|
|
21
|
-
(this.
|
|
22
|
-
(this.
|
|
23
|
-
(this
|
|
24
|
-
(this.
|
|
14
|
+
constructor(t, e, s, i, r, o, n, a, h, u, c) {
|
|
15
|
+
(this.Zr = t),
|
|
16
|
+
(this.u = e),
|
|
17
|
+
(this.jo = s),
|
|
18
|
+
(this.ft = i),
|
|
19
|
+
(this._e = r),
|
|
20
|
+
(this.wt = o),
|
|
21
|
+
(this.Xr = n),
|
|
22
|
+
(this.Do = a),
|
|
23
|
+
(this.Ro = h),
|
|
24
|
+
(this.Mo = u),
|
|
25
|
+
(this.appVersion = c),
|
|
26
|
+
(this.Zr = t),
|
|
27
|
+
(this.u = e),
|
|
28
|
+
(this.jo = s),
|
|
29
|
+
(this.ft = i),
|
|
30
|
+
(this._e = r),
|
|
31
|
+
(this.wt = o),
|
|
32
|
+
(this.Xr = n),
|
|
33
|
+
(this.Do = a),
|
|
34
|
+
(this.Ro = h),
|
|
35
|
+
(this.Mo = u),
|
|
36
|
+
(this.appVersion = c),
|
|
37
|
+
(this.ha = ["npm"]);
|
|
25
38
|
}
|
|
26
|
-
|
|
27
|
-
const s = this.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
ii(
|
|
31
|
-
(t.api_key = this.
|
|
32
|
-
(t.time =
|
|
33
|
-
const n = this.
|
|
34
|
-
a = this.
|
|
39
|
+
Gs(t, e = !1) {
|
|
40
|
+
const s = this.Zr.te(),
|
|
41
|
+
r = s.Xi(),
|
|
42
|
+
o = this.u.v(i.k.la);
|
|
43
|
+
ii(o, r) || (t.device = r),
|
|
44
|
+
(t.api_key = this.Xr),
|
|
45
|
+
(t.time = h(new Date().valueOf(), !0));
|
|
46
|
+
const n = this.u.v(i.k.ua) || [],
|
|
47
|
+
a = this.u.v(i.k.ma) || "";
|
|
35
48
|
if (
|
|
36
|
-
(this.
|
|
37
|
-
(!ii(n, this.
|
|
38
|
-
(t.sdk_metadata = this.
|
|
39
|
-
(t.sdk_version = this.
|
|
40
|
-
this.
|
|
41
|
-
(t.app_version = this
|
|
49
|
+
(this.ha.length > 0 &&
|
|
50
|
+
(!ii(n, this.ha) || a !== this._e.pa()) &&
|
|
51
|
+
(t.sdk_metadata = this.ha),
|
|
52
|
+
(t.sdk_version = this.Ro),
|
|
53
|
+
this.Mo && (t.sdk_flavor = this.Mo),
|
|
54
|
+
(t.app_version = this.appVersion),
|
|
42
55
|
(t.device_id = s.id),
|
|
43
56
|
e)
|
|
44
57
|
) {
|
|
45
|
-
const e = this.
|
|
58
|
+
const e = this.ft.getUserId();
|
|
46
59
|
null != e && (t.user_id = e);
|
|
47
60
|
}
|
|
48
61
|
return t;
|
|
49
62
|
}
|
|
50
|
-
|
|
63
|
+
ti(t, e, i) {
|
|
51
64
|
const o = e.auth_error,
|
|
52
65
|
n = e.error;
|
|
53
66
|
if (!o && !n) return !0;
|
|
54
67
|
if (o) {
|
|
55
68
|
let e;
|
|
56
|
-
this.
|
|
69
|
+
this.jo.Ch();
|
|
57
70
|
const s = { errorCode: o.error_code };
|
|
58
71
|
for (const t of i)
|
|
59
72
|
p(t) && "X-Braze-Auth-Signature" === t[0] && (s.signature = t[1]);
|
|
@@ -65,12 +78,12 @@ export default class Pt {
|
|
|
65
78
|
n
|
|
66
79
|
? ((s.reason = n), (e = `due to ${n}`))
|
|
67
80
|
: (e = `with error code ${o.error_code}.`),
|
|
68
|
-
this.
|
|
81
|
+
this.jo.Zn() ||
|
|
69
82
|
(e +=
|
|
70
83
|
' Please use the "enableSdkAuthentication" initialization option to enable authentication.'),
|
|
71
|
-
r.
|
|
72
|
-
this.
|
|
73
|
-
this.
|
|
84
|
+
r.j.error(`SDK Authentication failed ${e}`),
|
|
85
|
+
this.Ra(t.events || [], t.attributes || []),
|
|
86
|
+
this.jo.wh(s),
|
|
74
87
|
!1
|
|
75
88
|
);
|
|
76
89
|
}
|
|
@@ -78,110 +91,119 @@ export default class Pt {
|
|
|
78
91
|
let i,
|
|
79
92
|
o = n;
|
|
80
93
|
switch (o) {
|
|
81
|
-
case qt.
|
|
94
|
+
case qt.ga:
|
|
82
95
|
return (
|
|
83
96
|
(i = "Received successful response with empty body."),
|
|
84
|
-
s.
|
|
85
|
-
r.
|
|
97
|
+
s.N(r.q.Is, { e: i }),
|
|
98
|
+
r.j.info(i),
|
|
86
99
|
!1
|
|
87
100
|
);
|
|
88
|
-
case qt.
|
|
101
|
+
case qt.qa:
|
|
89
102
|
return (
|
|
90
103
|
(i = "Received successful response with invalid JSON"),
|
|
91
|
-
s.
|
|
92
|
-
r.
|
|
104
|
+
s.N(r.q.Is, { e: i + ": " + e.response }),
|
|
105
|
+
r.j.info(i),
|
|
93
106
|
!1
|
|
94
107
|
);
|
|
95
|
-
case qt.
|
|
96
|
-
o = `The API key "${t.api_key}" is invalid for the baseUrl ${this.
|
|
108
|
+
case qt.ba:
|
|
109
|
+
o = `The API key "${t.api_key}" is invalid for the baseUrl ${this.Do}`;
|
|
97
110
|
break;
|
|
98
|
-
case qt.
|
|
111
|
+
case qt.Aa:
|
|
99
112
|
o =
|
|
100
113
|
"Sorry, we are not currently accepting your requests. If you think this is in error, please contact us.";
|
|
101
114
|
break;
|
|
102
|
-
case qt.
|
|
115
|
+
case qt.za:
|
|
103
116
|
o = "No device identifier. Please contact support@braze.com";
|
|
104
117
|
}
|
|
105
|
-
r.
|
|
118
|
+
r.j.error("Backend error: " + o);
|
|
106
119
|
}
|
|
107
120
|
return !1;
|
|
108
121
|
}
|
|
109
|
-
|
|
122
|
+
Ba(t, e, s, i) {
|
|
110
123
|
return !!((t && 0 !== t.length) || (e && 0 !== e.length) || s || i);
|
|
111
124
|
}
|
|
112
|
-
|
|
125
|
+
Da(t, e, s, i) {
|
|
113
126
|
const r = [],
|
|
114
127
|
o = t => t || "",
|
|
115
|
-
n = o(this.
|
|
116
|
-
let a,
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
l =
|
|
128
|
+
n = o(this.ft.getUserId());
|
|
129
|
+
let a = this.Wi(t, e);
|
|
130
|
+
const h = [],
|
|
131
|
+
u = [];
|
|
132
|
+
let c,
|
|
133
|
+
l = null;
|
|
121
134
|
if (s.length > 0) {
|
|
122
135
|
const t = [];
|
|
123
136
|
for (const e of s) {
|
|
124
|
-
if (((
|
|
125
|
-
if (n && !
|
|
126
|
-
|
|
137
|
+
if (((c = e.Xi()), this.jo.Zn())) {
|
|
138
|
+
if (n && !c.user_id) {
|
|
139
|
+
l || (l = {}), l.events || (l.events = []), l.events.push(c);
|
|
127
140
|
continue;
|
|
128
141
|
}
|
|
129
|
-
if (o(
|
|
130
|
-
u
|
|
142
|
+
if (o(c.user_id) !== n) {
|
|
143
|
+
u.push(c);
|
|
131
144
|
continue;
|
|
132
145
|
}
|
|
133
146
|
}
|
|
134
|
-
t.push(
|
|
147
|
+
t.push(c);
|
|
135
148
|
}
|
|
136
|
-
t.length > 0 && (
|
|
149
|
+
t.length > 0 && (a.events = t);
|
|
137
150
|
}
|
|
138
151
|
if (i.length > 0) {
|
|
139
152
|
const t = [];
|
|
140
153
|
for (const e of i)
|
|
141
|
-
this.
|
|
142
|
-
|
|
143
|
-
: t.push(e);
|
|
144
|
-
t.length > 0 && (l.attributes = t);
|
|
154
|
+
this.jo.Zn() && o(e.user_id) !== n ? h.push(e) : t.push(e);
|
|
155
|
+
t.length > 0 && (a.attributes = t);
|
|
145
156
|
}
|
|
146
|
-
if ((this.
|
|
147
|
-
|
|
148
|
-
const t = { requestData:
|
|
157
|
+
if ((this.Ra(u, h), (a = this.Gs(a, !0)), l)) {
|
|
158
|
+
l = this.Gs(l, !1);
|
|
159
|
+
const t = { requestData: l, headers: this.Ks(l, T.Qs.Sa) };
|
|
149
160
|
r.push(t);
|
|
150
161
|
}
|
|
151
|
-
if (
|
|
152
|
-
const f = { requestData:
|
|
162
|
+
if (a && !this.Ba(a.events, a.attributes, t, e)) return l ? r : null;
|
|
163
|
+
const f = { requestData: a, headers: this.Ks(a, T.Qs.Sa) };
|
|
153
164
|
return r.push(f), r;
|
|
154
165
|
}
|
|
155
|
-
|
|
166
|
+
Ra(t, e) {
|
|
156
167
|
if (t) {
|
|
157
168
|
const e = [];
|
|
158
169
|
for (const s of t) {
|
|
159
170
|
const t = ue.fromJson(s);
|
|
160
171
|
(t.time = Xt(t.time)), e.push(t);
|
|
161
172
|
}
|
|
162
|
-
this.
|
|
173
|
+
this.u.co(e);
|
|
163
174
|
}
|
|
164
|
-
if (e) for (const t of e) this.
|
|
175
|
+
if (e) for (const t of e) this.u.va(t);
|
|
165
176
|
}
|
|
166
|
-
|
|
177
|
+
ii(t, e) {
|
|
167
178
|
let s = "HTTP error ";
|
|
168
|
-
null != t && (s += t + " "), (s += e), r.
|
|
179
|
+
null != t && (s += t + " "), (s += e), r.j.error(s);
|
|
169
180
|
}
|
|
170
|
-
|
|
171
|
-
return s.
|
|
181
|
+
qr(t) {
|
|
182
|
+
return s.N(r.q.ka, { n: t });
|
|
172
183
|
}
|
|
173
|
-
|
|
184
|
+
Wi(t, e, s) {
|
|
174
185
|
const i = {};
|
|
175
186
|
t && (i.feed = !0), e && (i.triggers = !0);
|
|
176
|
-
const r = null != s ? s : this.
|
|
187
|
+
const r = null != s ? s : this.ft.getUserId();
|
|
177
188
|
return (
|
|
178
189
|
r && (i.user_id = r),
|
|
179
|
-
(i.config = { config_time: this.
|
|
190
|
+
(i.config = { config_time: this.wt.oi() }),
|
|
180
191
|
{ respond_with: i }
|
|
181
192
|
);
|
|
182
193
|
}
|
|
183
|
-
|
|
184
|
-
const
|
|
194
|
+
Ta(t) {
|
|
195
|
+
const e = new Date().valueOf();
|
|
196
|
+
let s = Ht.toString();
|
|
197
|
+
const i = T.Xa(this.u, t);
|
|
198
|
+
if (-1 !== i) {
|
|
199
|
+
s = (e - i).toString();
|
|
200
|
+
}
|
|
201
|
+
return s;
|
|
202
|
+
}
|
|
203
|
+
Ks(t, e, s = !1) {
|
|
204
|
+
const r = [["X-Braze-Api-Key", this.Xr]],
|
|
205
|
+
o = this.Ta(e);
|
|
206
|
+
r.push(["X-Braze-Last-Req-Ms-Ago", o]);
|
|
185
207
|
let n = !1;
|
|
186
208
|
if (
|
|
187
209
|
(null != t.respond_with &&
|
|
@@ -190,25 +212,26 @@ export default class Pt {
|
|
|
190
212
|
null != t.respond_with &&
|
|
191
213
|
t.respond_with.feed &&
|
|
192
214
|
(r.push(["X-Braze-FeedRequest", "true"]), (n = !0)),
|
|
193
|
-
e)
|
|
215
|
+
e === T.Qs.Os)
|
|
194
216
|
) {
|
|
195
217
|
r.push(["X-Braze-ContentCardsRequest", "true"]);
|
|
196
|
-
let t = this.
|
|
197
|
-
(t &&
|
|
218
|
+
let t = this.u.v(i.k.Fs);
|
|
219
|
+
(t && s) || ((t = 0), this.u.D(i.k.Fs, t)),
|
|
198
220
|
r.push(["BRAZE-SYNC-RETRY-COUNT", t.toString()]),
|
|
199
221
|
(n = !0);
|
|
200
222
|
}
|
|
201
223
|
if (
|
|
202
|
-
(
|
|
224
|
+
(e === T.Qs.xi &&
|
|
225
|
+
(r.push(["X-Braze-FeatureFlagsRequest", "true"]), (n = !0)),
|
|
203
226
|
n && r.push(["X-Braze-DataRequest", "true"]),
|
|
204
|
-
this.
|
|
227
|
+
this.jo.Zn())
|
|
205
228
|
) {
|
|
206
|
-
const t = this.
|
|
229
|
+
const t = this.jo.gh();
|
|
207
230
|
null != t && r.push(["X-Braze-Auth-Signature", t]);
|
|
208
231
|
}
|
|
209
232
|
return r;
|
|
210
233
|
}
|
|
211
|
-
|
|
234
|
+
Vs(t, e) {
|
|
212
235
|
const s = t.device;
|
|
213
236
|
s && s.os_version instanceof Promise
|
|
214
237
|
? s.os_version.then(s => {
|
|
@@ -216,13 +239,13 @@ export default class Pt {
|
|
|
216
239
|
})
|
|
217
240
|
: e();
|
|
218
241
|
}
|
|
219
|
-
|
|
220
|
-
this.
|
|
242
|
+
si() {
|
|
243
|
+
this.jo.si();
|
|
221
244
|
}
|
|
222
|
-
|
|
223
|
-
return this.
|
|
245
|
+
Zs() {
|
|
246
|
+
return this.Do;
|
|
224
247
|
}
|
|
225
248
|
addSdkMetadata(t) {
|
|
226
|
-
for (const e of t) -1 === this.
|
|
249
|
+
for (const e of t) -1 === this.ha.indexOf(e) && this.ha.push(e);
|
|
227
250
|
}
|
|
228
251
|
}
|
|
@@ -1,30 +1,36 @@
|
|
|
1
|
-
import { STORAGE_KEYS as
|
|
2
|
-
import
|
|
1
|
+
import { STORAGE_KEYS as i } from "./storage-manager.js";
|
|
2
|
+
import E from "./subscription-manager.js";
|
|
3
3
|
import Kt from "../models/server-config.js";
|
|
4
4
|
import s from "../common/event-logger.js";
|
|
5
5
|
import r from "../../shared-lib/braze-shared-lib.js";
|
|
6
|
+
import {
|
|
7
|
+
CONTENT_CARDS_RATE_LIMIT_CAPACITY_DEFAULT as Vt,
|
|
8
|
+
CONTENT_CARDS_RATE_LIMIT_REFILL_RATE_DEFAULT as Gt
|
|
9
|
+
} from "../common/constants.js";
|
|
6
10
|
export default class Mt {
|
|
7
11
|
constructor(t) {
|
|
8
|
-
(this.
|
|
9
|
-
(this.
|
|
10
|
-
(this.
|
|
11
|
-
(this.
|
|
12
|
-
(this.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
(this.u = t),
|
|
13
|
+
(this.u = t),
|
|
14
|
+
(this.tl = new E()),
|
|
15
|
+
(this.el = new E()),
|
|
16
|
+
(this.sl = new E()),
|
|
17
|
+
(this.il = null),
|
|
18
|
+
(this.rl = null);
|
|
19
|
+
}
|
|
20
|
+
ll() {
|
|
21
|
+
if (null == this.rl) {
|
|
22
|
+
const t = this.u.v(i.k.hl);
|
|
23
|
+
this.rl = null != t ? Kt.zn(t) : new Kt();
|
|
18
24
|
}
|
|
19
|
-
return this.
|
|
25
|
+
return this.rl;
|
|
20
26
|
}
|
|
21
|
-
|
|
22
|
-
return this.
|
|
27
|
+
oi() {
|
|
28
|
+
return this.ll().ol;
|
|
23
29
|
}
|
|
24
|
-
|
|
30
|
+
ul(t) {
|
|
25
31
|
if (null != t && null != t.config) {
|
|
26
32
|
const e = t.config;
|
|
27
|
-
if (e.time > this.
|
|
33
|
+
if (e.time > this.ll().ol) {
|
|
28
34
|
const t = new Kt(
|
|
29
35
|
e.time,
|
|
30
36
|
e.events_blacklist,
|
|
@@ -36,53 +42,67 @@ export default class Mt {
|
|
|
36
42
|
e.feature_flags
|
|
37
43
|
);
|
|
38
44
|
let s = !1;
|
|
39
|
-
null != t.
|
|
40
|
-
let i = !1;
|
|
41
|
-
null != t.ml.enabled && this.Ys() !== t.ml.enabled && (i = !0);
|
|
45
|
+
null != t.al && this.Un() !== t.al && (s = !0);
|
|
42
46
|
let r = !1;
|
|
43
|
-
null != t.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
null != t.ml.enabled && this.ni() !== t.ml.enabled && (r = !0);
|
|
48
|
+
let n = !1;
|
|
49
|
+
null != t.mi.enabled && this.bi() !== t.mi.enabled && (n = !0),
|
|
50
|
+
(this.rl = t),
|
|
51
|
+
this.u.D(i.k.hl, t.ss()),
|
|
52
|
+
s && this.tl.Et(),
|
|
53
|
+
r && this.el.Et(),
|
|
54
|
+
n && this.sl.Et();
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return this.
|
|
58
|
+
Wn(t) {
|
|
59
|
+
const e = this.tl.lt(t);
|
|
60
|
+
return this.il && this.tl.removeSubscription(this.il), (this.il = e), e;
|
|
55
61
|
}
|
|
56
|
-
|
|
57
|
-
return this.el.
|
|
62
|
+
$s(t) {
|
|
63
|
+
return this.el.lt(t);
|
|
58
64
|
}
|
|
59
|
-
|
|
60
|
-
return this.sl.
|
|
65
|
+
Ni(t) {
|
|
66
|
+
return this.sl.lt(t);
|
|
61
67
|
}
|
|
62
68
|
ge(t) {
|
|
63
|
-
return -1 !== this.
|
|
69
|
+
return -1 !== this.ll().cl.indexOf(t);
|
|
64
70
|
}
|
|
65
71
|
hu(t) {
|
|
66
|
-
return -1 !== this.
|
|
72
|
+
return -1 !== this.ll().gl.indexOf(t);
|
|
67
73
|
}
|
|
68
74
|
Dr(t) {
|
|
69
|
-
return -1 !== this.
|
|
75
|
+
return -1 !== this.ll().fl.indexOf(t);
|
|
76
|
+
}
|
|
77
|
+
dl() {
|
|
78
|
+
return this.ll().bl;
|
|
79
|
+
}
|
|
80
|
+
Un() {
|
|
81
|
+
return this.ll().al;
|
|
82
|
+
}
|
|
83
|
+
ni() {
|
|
84
|
+
return this.ll().ml.enabled || !1;
|
|
70
85
|
}
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
_s() {
|
|
87
|
+
const t = this.ll().ml.rate_limit;
|
|
88
|
+
return !(!t || null == t.enabled) && t.enabled;
|
|
73
89
|
}
|
|
74
|
-
|
|
75
|
-
|
|
90
|
+
fi() {
|
|
91
|
+
if (!this._s()) return -1;
|
|
92
|
+
const t = this.ll().ml.rate_limit;
|
|
93
|
+
return null == t.capacity ? Vt : t.capacity <= 0 ? -1 : t.capacity;
|
|
76
94
|
}
|
|
77
|
-
|
|
78
|
-
|
|
95
|
+
di() {
|
|
96
|
+
if (!this._s()) return -1;
|
|
97
|
+
const t = this.ll().ml.rate_limit;
|
|
98
|
+
return null == t.refill_rate ? Gt : t.refill_rate <= 0 ? -1 : t.refill_rate;
|
|
79
99
|
}
|
|
80
|
-
|
|
81
|
-
return this.
|
|
82
|
-
? (s.
|
|
83
|
-
: this.
|
|
100
|
+
bi() {
|
|
101
|
+
return this.ll().mi.enabled && null == this.Si()
|
|
102
|
+
? (s.N(r.q.Is, { e: "Missing feature flag refresh_rate_limit." }), !1)
|
|
103
|
+
: this.ll().mi.enabled || !1;
|
|
84
104
|
}
|
|
85
|
-
|
|
86
|
-
return this.
|
|
105
|
+
Si() {
|
|
106
|
+
return this.ll().mi.refresh_rate_limit;
|
|
87
107
|
}
|
|
88
108
|
}
|
|
@@ -1,68 +1,75 @@
|
|
|
1
|
-
import { STORAGE_KEYS as
|
|
1
|
+
import { STORAGE_KEYS as i } from "../managers/storage-manager.js";
|
|
2
2
|
import ue from "../models/braze-event.js";
|
|
3
3
|
import _t from "../models/identifier.js";
|
|
4
|
-
import { convertMsToSeconds as
|
|
4
|
+
import { convertMsToSeconds as h } from "../util/date-utils.js";
|
|
5
5
|
import r from "../../shared-lib/braze-shared-lib.js";
|
|
6
|
-
export default class
|
|
7
|
-
constructor(s, t,
|
|
8
|
-
(this.
|
|
9
|
-
(this.
|
|
10
|
-
(this.
|
|
11
|
-
(this.
|
|
12
|
-
(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
export default class Dt {
|
|
7
|
+
constructor(s, t, i, e) {
|
|
8
|
+
(this.u = s),
|
|
9
|
+
(this.ft = t),
|
|
10
|
+
(this.wt = i),
|
|
11
|
+
(this.wl = e),
|
|
12
|
+
(this.u = s),
|
|
13
|
+
(this.ft = t),
|
|
14
|
+
(this.wt = i),
|
|
15
|
+
(this.Sl = 1e3),
|
|
16
|
+
(null == e || isNaN(e)) && (e = 1800),
|
|
17
|
+
e < this.Sl / 1e3 &&
|
|
18
|
+
(r.j.info(
|
|
16
19
|
"Specified session timeout of " +
|
|
17
|
-
|
|
20
|
+
e +
|
|
18
21
|
"s is too small, using the minimum session timeout of " +
|
|
19
|
-
this.
|
|
22
|
+
this.Sl / 1e3 +
|
|
20
23
|
"s instead."
|
|
21
24
|
),
|
|
22
|
-
(
|
|
23
|
-
(this.
|
|
25
|
+
(e = this.Sl / 1e3)),
|
|
26
|
+
(this.wl = e);
|
|
24
27
|
}
|
|
25
|
-
|
|
26
|
-
return new ue(this.
|
|
28
|
+
jl(s, t) {
|
|
29
|
+
return new ue(this.ft.getUserId(), r.q.xl, s, t.iu, { d: h(s - t.vl) });
|
|
27
30
|
}
|
|
28
|
-
|
|
29
|
-
const s = this.
|
|
31
|
+
pa() {
|
|
32
|
+
const s = this.u.tu(i.eu.Dl);
|
|
30
33
|
return null == s ? null : s.iu;
|
|
31
34
|
}
|
|
32
|
-
|
|
35
|
+
El() {
|
|
33
36
|
const s = new Date().valueOf(),
|
|
34
|
-
t = this.
|
|
35
|
-
e = this.
|
|
37
|
+
t = this.wt.dl(),
|
|
38
|
+
e = this.u.v(i.k.zl);
|
|
36
39
|
if (null != e && null == t) return !1;
|
|
37
|
-
|
|
38
|
-
return
|
|
40
|
+
let n = !1;
|
|
41
|
+
return (
|
|
42
|
+
null == e ? (n = !0) : null != t && (n = s - e > 1e3 * t),
|
|
43
|
+
n && this.u.D(i.k.zl, s),
|
|
44
|
+
n
|
|
45
|
+
);
|
|
39
46
|
}
|
|
40
|
-
|
|
41
|
-
return null == t || (!(s - t.
|
|
47
|
+
Cl(s, t) {
|
|
48
|
+
return null == t || null == t.Gl || (!(s - t.vl < this.Sl) && t.Gl < s);
|
|
42
49
|
}
|
|
43
|
-
|
|
50
|
+
bo() {
|
|
44
51
|
const s = new Date().valueOf(),
|
|
45
|
-
t = s + 1e3 * this.
|
|
46
|
-
e = this.
|
|
47
|
-
if (this.
|
|
48
|
-
let
|
|
52
|
+
t = s + 1e3 * this.wl,
|
|
53
|
+
e = this.u.tu(i.eu.Dl);
|
|
54
|
+
if (this.Cl(s, e)) {
|
|
55
|
+
let n = "Generating session start event with time " + s;
|
|
49
56
|
if (null != e) {
|
|
50
|
-
let s = e.
|
|
51
|
-
s - e.
|
|
52
|
-
this.
|
|
53
|
-
(
|
|
57
|
+
let s = e.Nl;
|
|
58
|
+
s - e.vl < this.Sl && (s = e.vl + this.Sl),
|
|
59
|
+
this.u.Hl(this.jl(s, e)),
|
|
60
|
+
(n += " (old session ended " + s + ")");
|
|
54
61
|
}
|
|
55
|
-
(
|
|
56
|
-
const
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
59
|
-
return null == this.
|
|
62
|
+
(n += ". Will expire " + t.valueOf()), r.j.info(n);
|
|
63
|
+
const l = new _t(r.Z.Y(), t);
|
|
64
|
+
this.u.Hl(new ue(this.ft.getUserId(), r.q.Wl, s, l.iu)),
|
|
65
|
+
this.u.uu(i.eu.Dl, l);
|
|
66
|
+
return null == this.u.v(i.k.zl) && this.u.D(i.k.zl, s), l.iu;
|
|
60
67
|
}
|
|
61
|
-
return (e.
|
|
68
|
+
if (null != e) return (e.Nl = s), (e.Gl = t), this.u.uu(i.eu.Dl, e), e.iu;
|
|
62
69
|
}
|
|
63
|
-
|
|
64
|
-
const s = this.
|
|
70
|
+
kl() {
|
|
71
|
+
const s = this.u.tu(i.eu.Dl);
|
|
65
72
|
null != s &&
|
|
66
|
-
(this.
|
|
73
|
+
(this.u.ql(i.eu.Dl), this.u.Hl(this.jl(new Date().valueOf(), s)));
|
|
67
74
|
}
|
|
68
75
|
}
|