@blueking/open-telemetry 0.0.5 → 0.0.6

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/dist/index.js CHANGED
@@ -9,39 +9,39 @@ import { registerInstrumentations as p } from "@opentelemetry/instrumentation";
9
9
  import { resourceFromAttributes as m } from "@opentelemetry/resources";
10
10
  import { BatchLogRecordProcessor as h, LoggerProvider as g } from "@opentelemetry/sdk-logs";
11
11
  import { MeterProvider as _, PeriodicExportingMetricReader as v } from "@opentelemetry/sdk-metrics";
12
- import { BatchSpanProcessor as y, ParentBasedSampler as b, TraceIdRatioBasedSampler as x } from "@opentelemetry/sdk-trace-base";
13
- import { WebTracerProvider as S } from "@opentelemetry/sdk-trace-web";
12
+ import { BatchSpanProcessor as y, ParentBasedSampler as b, SimpleSpanProcessor as x, TraceIdRatioBasedSampler as S } from "@opentelemetry/sdk-trace-base";
13
+ import { WebTracerProvider as C } from "@opentelemetry/sdk-trace-web";
14
14
  //#region \0@oxc-project+runtime@0.128.0/helpers/typeof.js
15
- function C(e) {
15
+ function w(e) {
16
16
  "@babel/helpers - typeof";
17
- return C = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
17
+ return w = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
18
18
  return typeof e;
19
19
  } : function(e) {
20
20
  return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
21
- }, C(e);
21
+ }, w(e);
22
22
  }
23
23
  //#endregion
24
24
  //#region \0@oxc-project+runtime@0.128.0/helpers/toPrimitive.js
25
- function w(e, t) {
26
- if (C(e) != "object" || !e) return e;
25
+ function T(e, t) {
26
+ if (w(e) != "object" || !e) return e;
27
27
  var n = e[Symbol.toPrimitive];
28
28
  if (n !== void 0) {
29
29
  var r = n.call(e, t || "default");
30
- if (C(r) != "object") return r;
30
+ if (w(r) != "object") return r;
31
31
  throw TypeError("@@toPrimitive must return a primitive value.");
32
32
  }
33
33
  return (t === "string" ? String : Number)(e);
34
34
  }
35
35
  //#endregion
36
36
  //#region \0@oxc-project+runtime@0.128.0/helpers/toPropertyKey.js
37
- function T(e) {
38
- var t = w(e, "string");
39
- return C(t) == "symbol" ? t : t + "";
37
+ function E(e) {
38
+ var t = T(e, "string");
39
+ return w(t) == "symbol" ? t : t + "";
40
40
  }
41
41
  //#endregion
42
42
  //#region \0@oxc-project+runtime@0.128.0/helpers/defineProperty.js
43
- function E(e, t, n) {
44
- return (t = T(t)) in e ? Object.defineProperty(e, t, {
43
+ function D(e, t, n) {
44
+ return (t = E(t)) in e ? Object.defineProperty(e, t, {
45
45
  value: n,
46
46
  enumerable: !0,
47
47
  configurable: !0,
@@ -50,7 +50,7 @@ function E(e, t, n) {
50
50
  }
51
51
  //#endregion
52
52
  //#region \0@oxc-project+runtime@0.128.0/helpers/objectSpread2.js
53
- function D(e, t) {
53
+ function O(e, t) {
54
54
  var n = Object.keys(e);
55
55
  if (Object.getOwnPropertySymbols) {
56
56
  var r = Object.getOwnPropertySymbols(e);
@@ -60,12 +60,12 @@ function D(e, t) {
60
60
  }
61
61
  return n;
62
62
  }
63
- function O(e) {
63
+ function k(e) {
64
64
  for (var t = 1; t < arguments.length; t++) {
65
65
  var n = arguments[t] == null ? {} : arguments[t];
66
- t % 2 ? D(Object(n), !0).forEach(function(t) {
67
- E(e, t, n[t]);
68
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : D(Object(n)).forEach(function(t) {
66
+ t % 2 ? O(Object(n), !0).forEach(function(t) {
67
+ D(e, t, n[t]);
68
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : O(Object(n)).forEach(function(t) {
69
69
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
70
70
  });
71
71
  }
@@ -73,25 +73,25 @@ function O(e) {
73
73
  }
74
74
  //#endregion
75
75
  //#region src/core/config.ts
76
- var k = "http://localhost:4318", ee = 60 * 1e3, A = (e) => e.replace(/\/+$/, ""), j = (e, t) => {
77
- let n = A(e || k);
76
+ var A = "http://localhost:4318", ee = 60 * 1e3, j = (e) => e.replace(/\/+$/, ""), M = (e, t) => {
77
+ let n = j(e || A);
78
78
  return n.endsWith(`/v1/${t}`) ? n : n.endsWith("/v1") ? `${n}/${t}` : `${n}/v1/${t}`;
79
- }, M = (e, t) => {
79
+ }, N = (e, t) => {
80
80
  var n, r, i, a;
81
- let o = e[t], s = (n = e.signalEndpoints) == null ? void 0 : n[t], c = e.token || e.headers || o != null && o.headers ? O(O(O({}, e.token ? { Authorization: `Bearer ${e.token}` } : {}), (r = e.headers) == null ? {} : r), (i = o == null ? void 0 : o.headers) == null ? {} : i) : void 0;
81
+ let o = e[t], s = (n = e.signalEndpoints) == null ? void 0 : n[t], c = e.token || e.headers || o != null && o.headers ? k(k(k({}, e.token ? { Authorization: `Bearer ${e.token}` } : {}), (r = e.headers) == null ? {} : r), (i = o == null ? void 0 : o.headers) == null ? {} : i) : void 0;
82
82
  return {
83
83
  concurrencyLimit: o == null ? void 0 : o.concurrencyLimit,
84
- endpoint: s ? A(s) : j((a = o == null ? void 0 : o.endpoint) == null ? e.endpoint : a, t),
84
+ endpoint: s ? j(s) : M((a = o == null ? void 0 : o.endpoint) == null ? e.endpoint : a, t),
85
85
  headers: c,
86
86
  timeoutMillis: o == null ? void 0 : o.timeoutMillis
87
87
  };
88
- }, te = (e) => typeof e != "number" || !Number.isFinite(e) ? 1 : Math.max(0, Math.min(1, e)), N = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t, ne = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, re = (e, t) => typeof e != "number" || !Number.isFinite(e) ? t : Math.max(0, Math.min(1, e)), ie = (e) => e.body, ae = (e) => {
88
+ }, te = (e) => typeof e != "number" || !Number.isFinite(e) ? 1 : Math.max(0, Math.min(1, e)), P = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t, ne = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, re = (e, t) => typeof e != "number" || !Number.isFinite(e) ? t : Math.max(0, Math.min(1, e)), ie = (e) => e.body, ae = (e) => {
89
89
  var t;
90
90
  return e ? typeof e == "boolean" ? {
91
91
  maxBodySize: 10 * 1024,
92
92
  redact: ie
93
93
  } : {
94
- maxBodySize: N(e.maxBodySize, 10 * 1024),
94
+ maxBodySize: P(e.maxBodySize, 10 * 1024),
95
95
  redact: (t = e.redact) == null ? ie : t
96
96
  } : !1;
97
97
  }, oe = (e) => {
@@ -99,59 +99,63 @@ var k = "http://localhost:4318", ee = 60 * 1e3, A = (e) => e.replace(/\/+$/, "")
99
99
  return {
100
100
  device: (t = e == null ? void 0 : e.device) == null ? !0 : t,
101
101
  httpBody: ae(e == null ? void 0 : e.httpBody),
102
- session: typeof (e == null ? void 0 : e.session) == "object" ? O(O({}, e.session), {}, { inactivityMs: N(e.session.inactivityMs, 1800 * 1e3) }) : (n = e == null ? void 0 : e.session) == null ? !0 : n,
102
+ session: typeof (e == null ? void 0 : e.session) == "object" ? k(k({}, e.session), {}, {
103
+ inactivityMs: P(e.session.inactivityMs, 1800 * 1e3),
104
+ maxLifetimeMs: P(e.session.maxLifetimeMs, 1440 * 60 * 1e3)
105
+ }) : (n = e == null ? void 0 : e.session) == null ? !0 : n,
103
106
  pageView: (r = e == null ? void 0 : e.pageView) == null ? !0 : r,
104
- error: typeof (e == null ? void 0 : e.error) == "object" ? O(O({}, e.error), {}, {
105
- maxPerWindow: N(e.error.maxPerWindow, 5),
106
- windowMs: N(e.error.windowMs, 6e4)
107
+ error: typeof (e == null ? void 0 : e.error) == "object" ? k(k({}, e.error), {}, {
108
+ maxPerWindow: P(e.error.maxPerWindow, 5),
109
+ windowMs: P(e.error.windowMs, 6e4)
107
110
  }) : (i = e == null ? void 0 : e.error) == null ? !0 : i,
108
111
  webVitals: (a = e == null ? void 0 : e.webVitals) == null ? !0 : a,
109
- blankScreen: typeof (e == null ? void 0 : e.blankScreen) == "object" ? O(O({}, e.blankScreen), {}, {
112
+ blankScreen: typeof (e == null ? void 0 : e.blankScreen) == "object" ? k(k({}, e.blankScreen), {}, {
110
113
  checkDelay: ne(e.blankScreen.checkDelay, 3e3),
111
114
  threshold: re(e.blankScreen.threshold, .8)
112
115
  }) : (o = e == null ? void 0 : e.blankScreen) == null ? !0 : o,
113
116
  websocket: (s = e == null ? void 0 : e.websocket) == null ? !0 : s,
114
- longTask: typeof (e == null ? void 0 : e.longTask) == "object" ? O(O({}, e.longTask), {}, { threshold: ne(e.longTask.threshold, 50) }) : (c = e == null ? void 0 : e.longTask) == null ? !1 : c,
117
+ longTask: typeof (e == null ? void 0 : e.longTask) == "object" ? k(k({}, e.longTask), {}, { threshold: ne(e.longTask.threshold, 50) }) : (c = e == null ? void 0 : e.longTask) == null ? !1 : c,
115
118
  cspViolation: (l = e == null ? void 0 : e.cspViolation) == null ? !1 : l,
116
119
  routeTiming: (u = e == null ? void 0 : e.routeTiming) == null ? !1 : u
117
120
  };
118
121
  }, se = (e) => e, ce = (e) => e, le = (e) => {
119
- var t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D;
120
- let j = {
122
+ var t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O;
123
+ let M = {
121
124
  "deployment.environment.name": (t = e.environment) == null ? "production" : t,
122
125
  "rum.provider": "blueking",
123
126
  "telemetry.sdk.language": "webjs"
124
127
  };
125
- return O(O({}, e), {}, {
128
+ return k(k({}, e), {}, {
126
129
  debug: (n = e.debug) == null ? !1 : n,
127
130
  enabled: (r = e.enabled) == null ? !0 : r,
128
131
  environment: (i = e.environment) == null ? "production" : i,
129
- endpoint: A(e.endpoint || k),
130
- traces: M(e, "traces"),
131
- metrics: M(e, "metrics"),
132
- logs: M(e, "logs"),
132
+ endpoint: j(e.endpoint || A),
133
+ traces: N(e, "traces"),
134
+ metrics: N(e, "metrics"),
135
+ logs: N(e, "logs"),
133
136
  sampleRate: te(e.sampleRate),
134
- resourceAttributes: j,
137
+ spanProcessor: (a = e.spanProcessor) == null ? "batch" : a,
138
+ resourceAttributes: M,
135
139
  metricIntervalMillis: ee,
136
- instrumentations: (a = e.instrumentations) == null ? [] : a,
140
+ instrumentations: (o = e.instrumentations) == null ? [] : o,
137
141
  commonInstrumentations: {
138
- documentLoad: (o = (s = e.rum) == null ? void 0 : s.documentLoad) == null ? !0 : o,
139
- fetch: (c = (l = e.rum) == null ? void 0 : l.fetch) == null ? !0 : c,
140
- xhr: (u = (d = e.rum) == null ? void 0 : d.xhr) == null ? !0 : u,
141
- userInteraction: (f = (p = e.rum) == null ? void 0 : p.userInteraction) == null ? !0 : f
142
+ documentLoad: (s = (c = e.rum) == null ? void 0 : c.documentLoad) == null ? !0 : s,
143
+ fetch: (l = (u = e.rum) == null ? void 0 : u.fetch) == null ? !0 : l,
144
+ xhr: (d = (f = e.rum) == null ? void 0 : f.xhr) == null ? !0 : d,
145
+ userInteraction: (p = (m = e.rum) == null ? void 0 : m.userInteraction) == null ? !0 : p
142
146
  },
143
147
  rum: oe(e.rum),
144
- plugins: (m = e.plugins) == null ? [] : m,
145
- autoStart: (h = e.autoStart) == null ? !0 : h,
146
- getPageAttributes: (g = (_ = e.attributes) == null ? void 0 : _.page) == null ? (() => ({
148
+ plugins: (h = e.plugins) == null ? [] : h,
149
+ autoStart: (g = e.autoStart) == null ? !0 : g,
150
+ getPageAttributes: (_ = (v = e.attributes) == null ? void 0 : v.page) == null ? (() => ({
147
151
  "rum.page.host": typeof window > "u" ? "" : window.location.host,
148
152
  "rum.page.path": typeof window > "u" ? "" : window.location.pathname
149
- })) : g,
150
- getMetricAttributes: (v = (y = e.attributes) == null ? void 0 : y.metric) == null ? (() => ({})) : v,
151
- getErrorAttributes: (b = (x = e.attributes) == null ? void 0 : x.error) == null ? (() => ({})) : b,
152
- getCustomAttributes: (S = (C = e.attributes) == null ? void 0 : C.custom) == null ? (() => ({})) : S,
153
- redactAttributes: (w = (T = e.redact) == null ? void 0 : T.attributes) == null ? se : w,
154
- redactUrl: (E = (D = e.redact) == null ? void 0 : D.url) == null ? ce : E
153
+ })) : _,
154
+ getMetricAttributes: (y = (b = e.attributes) == null ? void 0 : b.metric) == null ? (() => ({})) : y,
155
+ getErrorAttributes: (x = (S = e.attributes) == null ? void 0 : S.error) == null ? (() => ({})) : x,
156
+ getCustomAttributes: (C = (w = e.attributes) == null ? void 0 : w.custom) == null ? (() => ({})) : C,
157
+ redactAttributes: (T = (E = e.redact) == null ? void 0 : E.attributes) == null ? se : T,
158
+ redactUrl: (D = (O = e.redact) == null ? void 0 : O.url) == null ? ce : D
155
159
  });
156
160
  };
157
161
  //#endregion
@@ -165,7 +169,7 @@ function ue(e, t, n, r, i, a, o) {
165
169
  }
166
170
  s.done ? t(c) : Promise.resolve(c).then(r, i);
167
171
  }
168
- function P(e) {
172
+ function F(e) {
169
173
  return function() {
170
174
  var t = this, n = arguments;
171
175
  return new Promise(function(r, i) {
@@ -184,11 +188,11 @@ function P(e) {
184
188
  //#region src/core/plugin.ts
185
189
  var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !== !1, fe = (e) => e, pe = class {
186
190
  constructor(e) {
187
- E(this, "plugins", void 0), E(this, "startedPlugins", []), this.plugins = e;
191
+ D(this, "plugins", void 0), D(this, "startedPlugins", []), this.plugins = e;
188
192
  }
189
193
  flush() {
190
194
  var e = this;
191
- return P(function* () {
195
+ return F(function* () {
192
196
  yield Promise.all(e.startedPlugins.map((e) => Promise.resolve().then(() => {
193
197
  var t;
194
198
  return (t = e.flush) == null ? void 0 : t.call(e);
@@ -197,7 +201,7 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
197
201
  }
198
202
  shutdown() {
199
203
  var e = this;
200
- return P(function* () {
204
+ return F(function* () {
201
205
  let t = [...e.startedPlugins].reverse();
202
206
  for (let e of t) {
203
207
  var n;
@@ -208,43 +212,46 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
208
212
  }
209
213
  start(e) {
210
214
  var t = this;
211
- return P(function* () {
212
- try {
213
- for (let n of t.plugins) de(n, e.config) && (yield n.init(e), t.startedPlugins.push(n));
214
- } catch (e) {
215
- throw yield t.shutdown(), e;
215
+ return F(function* () {
216
+ for (let r of t.plugins) if (de(r, e.config)) try {
217
+ yield r.init(e), t.startedPlugins.push(r);
218
+ } catch (t) {
219
+ if (e.config.debug) {
220
+ var n;
221
+ (n = globalThis.console) == null || n.warn(`[bk-ot] plugin "${r.name}" init failed:`, t);
222
+ }
216
223
  }
217
224
  })();
218
225
  }
219
- }, F = () => typeof window > "u" ? "http://localhost" : window.location.origin, me = (e) => {
226
+ }, me = () => typeof window > "u" ? "http://localhost" : window.location.origin, he = (e) => {
220
227
  try {
221
- return new URL(e, F()).href;
228
+ return new URL(e, me()).href;
222
229
  } catch (t) {
223
230
  return e;
224
231
  }
225
- }, he = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, ge = (e, t) => {
226
- let n = (e) => he(e.replace(/[?#].*$/, ""));
232
+ }, ge = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, _e = (e, t) => {
233
+ let n = (e) => ge(e.replace(/[?#].*$/, ""));
227
234
  return n(e) === n(t);
228
- }, _e = (e) => {
235
+ }, ve = (e) => {
229
236
  try {
230
- return new URL(e, F()).origin === F();
237
+ return new URL(e, me()).origin === me();
231
238
  } catch (e) {
232
239
  return !1;
233
240
  }
234
- }, ve = (e, t) => {
235
- let n = me(t);
241
+ }, ye = (e, t) => {
242
+ let n = he(t);
236
243
  return [
237
244
  e.traces.endpoint,
238
245
  e.metrics.endpoint,
239
246
  e.logs.endpoint
240
- ].some((e) => ge(n, me(e)));
241
- }, I = (e, t) => ve(e, t), ye = (e, t) => _e(t), be = ["http.url", "url.full"], xe = (e) => {
242
- for (let n of be) {
247
+ ].some((e) => _e(n, he(e)));
248
+ }, I = (e, t) => ye(e, t), be = (e, t) => ve(t), xe = ["http.url", "url.full"], Se = (e) => {
249
+ for (let n of xe) {
243
250
  var t;
244
251
  let r = (t = e.attributes) == null ? void 0 : t[n];
245
252
  if (typeof r == "string") return r;
246
253
  }
247
- }, Se = class {
254
+ }, Ce = class {
248
255
  constructor(e, t) {
249
256
  this.inner = e, this.config = t;
250
257
  }
@@ -252,8 +259,8 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
252
259
  return this.inner.forceFlush();
253
260
  }
254
261
  onEnd(e) {
255
- let t = xe(e);
256
- t && ve(this.config, t) || this.inner.onEnd(e);
262
+ let t = Se(e);
263
+ t && ye(this.config, t) || this.inner.onEnd(e);
257
264
  }
258
265
  onStart(e, t) {
259
266
  this.inner.onStart(e, t);
@@ -261,7 +268,7 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
261
268
  shutdown() {
262
269
  return this.inner.shutdown();
263
270
  }
264
- }, Ce = "body", we = 3e3, Te = .8, Ee = [
271
+ }, we = "body", Te = 3e3, Ee = .8, De = [
265
272
  "[data-loading=\"true\"]",
266
273
  "[aria-busy=\"true\"]",
267
274
  ".loading",
@@ -275,73 +282,80 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
275
282
  [.75, .25],
276
283
  [.25, .75],
277
284
  [.75, .75]
278
- ], De = (e) => {
285
+ ], Oe = (e) => {
279
286
  if (!e) return "";
280
287
  let t = e.tagName.toLowerCase();
281
288
  return e.id ? `${t}#${e.id}` : t;
282
- }, Oe = (e, t) => e ? t.some((t) => {
289
+ }, ke = (e, t) => e ? t.some((t) => {
283
290
  try {
284
291
  return e.matches(t) || !!e.closest(t);
285
292
  } catch (e) {
286
293
  return !1;
287
294
  }
288
- }) : !1, ke = (e) => {
289
- if (typeof document > "u") return;
290
- if (document.readyState === "complete" || document.readyState === "interactive") {
291
- e();
292
- return;
293
- }
295
+ }) : !1, Ae = (e) => {
296
+ if (typeof document > "u") return () => {};
297
+ if (document.readyState === "complete" || document.readyState === "interactive") return e(), () => {};
294
298
  let t = () => {
295
299
  document.removeEventListener("DOMContentLoaded", t), e();
296
300
  };
297
- document.addEventListener("DOMContentLoaded", t);
298
- }, Ae = (e) => {
299
- let t;
301
+ return document.addEventListener("DOMContentLoaded", t), () => document.removeEventListener("DOMContentLoaded", t);
302
+ }, je = (e) => {
303
+ let t, n, r = !1;
300
304
  return {
301
305
  name: "blank-screen",
302
306
  enabled: !!e,
303
- init(n) {
304
- var r, i, a, s;
307
+ init(i) {
308
+ var a, s, c, l;
305
309
  if (typeof window > "u" || typeof document > "u") return;
306
- let c = typeof e == "object" ? e : {}, l = (r = c.rootSelector) == null ? Ce : r, u = (i = c.checkDelay) == null ? we : i, d = (a = c.threshold) == null ? Te : a, f = [...Ee, ...(s = c.ignoreSelectors) == null ? [] : s], p = n.meter.createCounter("browser.blank_screen.count", { description: "Number of suspected blank screen detections" });
307
- ke(() => {
308
- t = window.setTimeout(() => {
310
+ let u = typeof e == "object" ? e : {}, d = (a = u.rootSelector) == null ? we : a, f = (s = u.checkDelay) == null ? Te : s, p = (c = u.threshold) == null ? Ee : c, m = [...De, ...(l = u.ignoreSelectors) == null ? [] : l], h = i.meter.createCounter("browser.blank_screen.count", { description: "Number of suspected blank screen detections" }), g = () => {
311
+ try {
309
312
  var e, t;
310
- let r = document.querySelector(l), i = 0, a = 0;
313
+ let n = document.querySelector(d), r = 0, a = 0;
311
314
  for (let [e, t] of L) {
312
- let n = document.elementFromPoint(window.innerWidth * e, window.innerHeight * t);
313
- if (Oe(n, f)) {
315
+ let i = document.elementFromPoint(window.innerWidth * e, window.innerHeight * t);
316
+ if (ke(i, m)) {
314
317
  a += 1;
315
318
  continue;
316
319
  }
317
- (n === r || n === document.body || n === document.documentElement) && (i += 1);
320
+ (i === n || i === document.body || i === document.documentElement) && (r += 1);
318
321
  }
319
- let s = i / L.length;
320
- if (a === L.length) return;
321
- let c = s >= d, u = {
322
- "bk.rum.blank_screen.score": s,
323
- "bk.rum.blank_screen.threshold": d,
324
- "bk.rum.blank_screen.root": l,
325
- "bk.rum.blank_screen.detected": c,
326
- "bk.rum.blank_screen.center_element": De(document.elementFromPoint(window.innerWidth / 2, window.innerHeight / 2)),
322
+ let s = L.length - a;
323
+ if (s === 0) return;
324
+ let c = r / s, l = c >= p, u = {
325
+ "bk.rum.blank_screen.score": c,
326
+ "bk.rum.blank_screen.threshold": p,
327
+ "bk.rum.blank_screen.root": d,
328
+ "bk.rum.blank_screen.detected": l,
329
+ "bk.rum.blank_screen.sample_total": L.length,
330
+ "bk.rum.blank_screen.sample_valid": s,
331
+ "bk.rum.blank_screen.sample_loading": a,
332
+ "bk.rum.blank_screen.center_element": Oe(document.elementFromPoint(window.innerWidth / 2, window.innerHeight / 2)),
327
333
  "bk.rum.blank_screen.dom_node_count": (e = (t = document.body) == null ? void 0 : t.getElementsByTagName("*").length) == null ? 0 : e
328
334
  };
329
- c && (p.add(1, n.applyRedact({ "bk.rum.blank_screen.root": l })), n.emitLog({
335
+ l && (h.add(1, i.applyRedact({ "bk.rum.blank_screen.root": d })), i.emitLog({
330
336
  severityNumber: o.ERROR,
331
337
  severityText: "ERROR",
332
338
  body: "browser.blank_screen",
333
339
  attributes: u
334
340
  }));
335
- }, u);
341
+ } catch (e) {
342
+ if (i.config.debug) {
343
+ var n;
344
+ (n = globalThis.console) == null || n.warn("[bk-ot][blank-screen] detection failed:", e);
345
+ }
346
+ }
347
+ };
348
+ n = Ae(() => {
349
+ r || (t = window.setTimeout(g, f));
336
350
  });
337
351
  },
338
352
  shutdown() {
339
- t !== void 0 && typeof window < "u" && window.clearTimeout(t);
353
+ r = !0, n == null || n(), n = void 0, t !== void 0 && typeof window < "u" && (window.clearTimeout(t), t = void 0);
340
354
  }
341
355
  };
342
- }, je = ["http.url", "url.full"], Me = (e) => ({ test: e }), Ne = (e, t) => {
356
+ }, Me = ["http.url", "url.full"], Ne = (e) => ({ test: e }), Pe = (e, t) => {
343
357
  t.setAttributes(e.applyRedact(e.config.getPageAttributes()));
344
- for (let r of je) {
358
+ for (let r of Me) {
345
359
  var n;
346
360
  let i = (n = t.attributes) == null ? void 0 : n[r];
347
361
  if (typeof i == "string") {
@@ -349,43 +363,36 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
349
363
  typeof n == "string" && t.setAttribute(r, n);
350
364
  }
351
365
  }
352
- }, Pe = (e) => {
366
+ }, Fe = (e) => {
353
367
  let t = [];
354
368
  return {
355
369
  name: "official-instrumentations",
356
370
  enabled: !!(e.documentLoad || e.fetch || e.xhr || e.userInteraction),
357
371
  init(n) {
358
- return P(function* () {
359
- let r = [], i = [Me((e) => I(n.config, e))], a = [Me((e) => ye(n.config, e))];
360
- if (e.documentLoad) {
361
- let { DocumentLoadInstrumentation: e } = yield import("@opentelemetry/instrumentation-document-load");
362
- r.push(new e({ semconvStabilityOptIn: "http" }));
363
- }
364
- if (e.fetch) {
365
- let { FetchInstrumentation: e } = yield import("@opentelemetry/instrumentation-fetch");
366
- r.push(new e({
367
- applyCustomAttributesOnSpan: (e) => Ne(n, e),
368
- ignoreUrls: i,
369
- propagateTraceHeaderCorsUrls: a,
370
- semconvStabilityOptIn: "http",
371
- ignoreNetworkEvents: !1
372
- }));
373
- }
374
- if (e.xhr) {
375
- let { XMLHttpRequestInstrumentation: e } = yield import("@opentelemetry/instrumentation-xml-http-request");
376
- r.push(new e({
377
- applyCustomAttributesOnSpan: (e) => Ne(n, e),
378
- ignoreUrls: i,
379
- propagateTraceHeaderCorsUrls: a,
380
- semconvStabilityOptIn: "http",
381
- ignoreNetworkEvents: !1
382
- }));
383
- }
384
- if (e.userInteraction) {
385
- let { UserInteractionInstrumentation: t } = yield import("@opentelemetry/instrumentation-user-interaction"), n = typeof e.userInteraction == "object" ? { eventNames: e.userInteraction.eventNames } : void 0;
386
- r.push(new t(n));
372
+ return F(function* () {
373
+ let r = [Ne((e) => I(n.config, e))], i = [Ne((e) => be(n.config, e))], [a, o, s, c] = yield Promise.all([
374
+ e.documentLoad ? import("@opentelemetry/instrumentation-document-load") : Promise.resolve(null),
375
+ e.fetch ? import("@opentelemetry/instrumentation-fetch") : Promise.resolve(null),
376
+ e.xhr ? import("@opentelemetry/instrumentation-xml-http-request") : Promise.resolve(null),
377
+ e.userInteraction ? import("@opentelemetry/instrumentation-user-interaction") : Promise.resolve(null)
378
+ ]);
379
+ if (a && t.push(new a.DocumentLoadInstrumentation({ semconvStabilityOptIn: "http" })), o && t.push(new o.FetchInstrumentation({
380
+ applyCustomAttributesOnSpan: (e) => Pe(n, e),
381
+ ignoreUrls: r,
382
+ propagateTraceHeaderCorsUrls: i,
383
+ semconvStabilityOptIn: "http",
384
+ ignoreNetworkEvents: !1
385
+ })), s && t.push(new s.XMLHttpRequestInstrumentation({
386
+ applyCustomAttributesOnSpan: (e) => Pe(n, e),
387
+ ignoreUrls: r,
388
+ propagateTraceHeaderCorsUrls: i,
389
+ semconvStabilityOptIn: "http",
390
+ ignoreNetworkEvents: !1
391
+ })), c) {
392
+ let n = e.userInteraction !== null && typeof e.userInteraction == "object" ? { eventNames: e.userInteraction.eventNames } : void 0;
393
+ t.push(new c.UserInteractionInstrumentation(n));
387
394
  }
388
- t.push(...r), p({ instrumentations: r });
395
+ p({ instrumentations: t });
389
396
  })();
390
397
  },
391
398
  shutdown() {
@@ -395,66 +402,145 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
395
402
  }
396
403
  }
397
404
  };
398
- }, Fe = (e) => {
405
+ }, R = (e) => {
406
+ let t = 5381;
407
+ for (let n = 0; n < e.length; n++) t = t * 33 ^ e.charCodeAt(n);
408
+ return (t >>> 0).toString(36);
409
+ }, z = (e, t) => {
410
+ let n = /* @__PURE__ */ new Map(), r = 0, i = (t) => {
411
+ if (!(t - r < e)) {
412
+ r = t;
413
+ for (let [r, i] of n) t - i.windowStart > e && n.delete(r);
414
+ }
415
+ };
416
+ return { allow(r) {
417
+ let a = Date.now();
418
+ i(a);
419
+ let o = n.get(r);
420
+ return !o || a - o.windowStart > e ? (n.set(r, {
421
+ count: 1,
422
+ windowStart: a
423
+ }), {
424
+ allowed: !0,
425
+ count: 1
426
+ }) : (o.count += 1, {
427
+ allowed: o.count <= t,
428
+ count: o.count
429
+ });
430
+ } };
431
+ }, Ie = 6e4, Le = 5, Re = /^https?:|^\/\//i, ze = (e, t) => {
432
+ if (t) return Re.test(t) ? e(t) : t;
433
+ }, Be = (e) => {
399
434
  let t;
400
435
  return {
401
436
  name: "csp-violation",
402
437
  enabled: !!e,
403
438
  init(e) {
404
439
  if (typeof window > "u" || typeof document > "u") return;
405
- let n = (t) => {
440
+ let n = z(Ie, Le), r = (t) => {
441
+ let r = R(`${t.violatedDirective}|${t.blockedURI}|${t.sourceFile}|${t.lineNumber}`), i = n.allow(r);
442
+ if (!i.allowed) return;
443
+ let a = ze(e.config.redactUrl, t.blockedURI), s = t.sourceFile ? e.config.redactUrl(t.sourceFile) : void 0, c = i.count === 1;
406
444
  e.emitLog({
407
445
  severityNumber: o.WARN,
408
446
  severityText: "WARN",
409
447
  body: "csp.violation",
410
- attributes: O(O({}, e.config.getPageAttributes()), {}, {
411
- "csp.blocked_uri": e.config.redactUrl(t.blockedURI || ""),
448
+ attributes: k(k({}, e.config.getPageAttributes()), {}, {
449
+ "csp.blocked_uri": a,
412
450
  "csp.violated_directive": t.violatedDirective,
413
451
  "csp.effective_directive": t.effectiveDirective,
414
- "csp.original_policy": t.originalPolicy,
415
452
  "csp.disposition": t.disposition,
416
- "csp.source_file": e.config.redactUrl(t.sourceFile || ""),
453
+ "csp.source_file": s,
417
454
  "csp.line_number": t.lineNumber,
418
455
  "csp.column_number": t.columnNumber,
419
- "csp.status_code": t.statusCode
420
- })
456
+ "csp.status_code": t.statusCode,
457
+ "csp.fingerprint": r,
458
+ "csp.window_count": i.count
459
+ }, c ? { "csp.original_policy": t.originalPolicy } : {})
421
460
  });
422
461
  };
423
- document.addEventListener("securitypolicyviolation", n), t = () => document.removeEventListener("securitypolicyviolation", n);
462
+ document.addEventListener("securitypolicyviolation", r), t = () => document.removeEventListener("securitypolicyviolation", r);
424
463
  },
425
464
  shutdown() {
426
465
  t == null || t(), t = void 0;
427
466
  }
428
467
  };
429
- }, Ie = "bk_ot_session_id", R = () => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `device-${Date.now()}-${Math.random().toString(16).slice(2)}`, Le = (e) => {
468
+ }, B = (e) => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `${e}-${Date.now()}-${Math.random().toString(16).slice(2)}`, Ve = "bk_ot_session_id", He = 250, Ue = () => navigator.connection, We = () => navigator.userAgentData, Ge = (e) => {
469
+ let t = null;
430
470
  try {
431
- let t = window.localStorage.getItem(e);
432
- if (t) return t;
433
- let n = R();
434
- return window.localStorage.setItem(e, n), n;
435
- } catch (e) {
436
- return R();
437
- }
438
- }, Re = () => {
439
- var e, t, n;
440
- if (typeof window > "u") return {};
441
- let r = navigator.connection;
442
- return {
471
+ t = window.localStorage.getItem(e);
472
+ } catch (e) {}
473
+ if (t) return t;
474
+ let n = B("device");
475
+ try {
476
+ window.localStorage.setItem(e, n);
477
+ } catch (e) {}
478
+ return n;
479
+ }, Ke = () => {
480
+ var e, t;
481
+ return typeof window > "u" ? {} : {
443
482
  "browser.viewport.width": window.innerWidth,
444
483
  "browser.viewport.height": window.innerHeight,
445
484
  "browser.screen.width": (e = window.screen) == null ? void 0 : e.width,
446
- "browser.screen.height": (t = window.screen) == null ? void 0 : t.height,
447
- "network.effective_type": (n = r == null ? void 0 : r.effectiveType) == null ? r == null ? void 0 : r.type : n
485
+ "browser.screen.height": (t = window.screen) == null ? void 0 : t.height
448
486
  };
449
- }, ze = (e) => ({
450
- name: "device",
451
- enabled: !!e,
452
- init(t) {
453
- var n;
454
- let r = typeof e == "object" ? (n = e.storageKey) == null ? Ie : n : Ie, i = typeof window > "u" ? R() : Le(r);
455
- t.setRuntimeAttributes(O({ "device.id": i }, Re()));
456
- }
457
- }), Be = 6e4, Ve = 5, He = (e) => {
487
+ }, qe = () => {
488
+ let e = Ue();
489
+ return e ? {
490
+ "network.effective_type": e.effectiveType,
491
+ "network.connection_type": e.type,
492
+ "network.downlink": e.downlink,
493
+ "network.rtt": e.rtt,
494
+ "network.save_data": e.saveData
495
+ } : {};
496
+ }, Je = () => {
497
+ if (typeof navigator > "u") return {};
498
+ let e = We();
499
+ return {
500
+ "device.memory": navigator.deviceMemory,
501
+ "device.cpu_cores": navigator.hardwareConcurrency,
502
+ "device.platform": e == null ? void 0 : e.platform,
503
+ "device.mobile": e == null ? void 0 : e.mobile
504
+ };
505
+ }, Ye = (e, t) => {
506
+ let n;
507
+ return () => {
508
+ n !== void 0 && window.clearTimeout(n), n = window.setTimeout(() => {
509
+ n = void 0, e();
510
+ }, t);
511
+ };
512
+ }, Xe = (e) => {
513
+ let t = [];
514
+ return {
515
+ name: "device",
516
+ enabled: !!e,
517
+ init(n) {
518
+ var r;
519
+ let i = typeof e == "object" ? (r = e.storageKey) == null ? Ve : r : Ve, a = typeof window > "u" ? B("device") : Ge(i);
520
+ if (n.setRuntimeAttributes(k(k(k({ "device.id": a }, Je()), Ke()), qe())), typeof window > "u") return;
521
+ let o = Ye(() => {
522
+ n.setRuntimeAttributes(Ke());
523
+ }, He);
524
+ window.addEventListener("resize", o), window.addEventListener("orientationchange", o), t.push(() => window.removeEventListener("resize", o), () => window.removeEventListener("orientationchange", o));
525
+ let s = Ue();
526
+ if (s && typeof s.addEventListener == "function") {
527
+ let e = () => {
528
+ n.setRuntimeAttributes(qe());
529
+ };
530
+ s.addEventListener("change", e), t.push(() => {
531
+ var t;
532
+ (t = s.removeEventListener) == null || t.call(s, "change", e);
533
+ });
534
+ }
535
+ },
536
+ shutdown() {
537
+ for (; t.length;) {
538
+ var e;
539
+ (e = t.pop()) == null || e();
540
+ }
541
+ }
542
+ };
543
+ }, Ze = 6e4, Qe = 5, $e = (e) => {
458
544
  if (e instanceof Error) return e.message;
459
545
  if (typeof e == "string") return e;
460
546
  try {
@@ -462,53 +548,41 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
462
548
  } catch (t) {
463
549
  return String(e);
464
550
  }
465
- }, Ue = (e) => {
551
+ }, et = (e) => {
466
552
  var t;
467
553
  return e instanceof Error ? (t = e.stack) == null ? "" : t : "";
468
- }, We = (e) => {
469
- let t = 5381;
470
- for (let n = 0; n < e.length; n++) t = t * 33 ^ e.charCodeAt(n);
471
- return (t >>> 0).toString(36);
472
- }, Ge = (e, t) => {
473
- let n = /* @__PURE__ */ new Map();
474
- return { allow(r) {
475
- let i = Date.now(), a = n.get(r);
476
- return !a || i - a.windowStart > e ? (n.set(r, {
477
- count: 1,
478
- windowStart: i
479
- }), !0) : a.count >= t ? !1 : (a.count += 1, !0);
480
- } };
481
- }, z = ({ context: e, error: r, exceptionType: i, extra: s = {}, source: c, spanName: l, throttle: u }) => {
482
- let d = He(r), f = Ue(r), p = We(`${c}|${d}|${f.slice(0, 256)}`);
483
- if (!u.allow(p)) return;
484
- let m = a.getActiveSpan(), h = r instanceof Error ? r : {
554
+ }, V = ({ context: e, error: r, exceptionType: i, extra: s = {}, source: c, spanName: l, throttle: u }) => {
555
+ let d = $e(r), f = et(r), p = R(`${c}|${d}|${f.slice(0, 256)}`), m = u.allow(p);
556
+ if (!m.allowed) return;
557
+ let h = a.getActiveSpan(), g = r instanceof Error ? r : {
485
558
  message: d,
486
559
  name: i == null ? c : i
487
- }, g = O(O(O({}, e.config.getPageAttributes()), e.config.getErrorAttributes()), {}, {
560
+ }, _ = k(k(k({}, e.config.getPageAttributes()), e.config.getErrorAttributes()), {}, {
488
561
  "exception.message": d,
489
562
  "exception.stacktrace": f,
490
563
  "exception.type": r instanceof Error ? r.name : i == null ? c : i,
491
564
  "bk.rum.error.source": c,
492
- "bk.rum.error.fingerprint": p
493
- }, s), _ = () => e.emitLog({
565
+ "bk.rum.error.fingerprint": p,
566
+ "bk.rum.error.window_count": m.count
567
+ }, s), v = () => e.emitLog({
494
568
  severityNumber: o.ERROR,
495
569
  severityText: "ERROR",
496
570
  body: d,
497
- attributes: g
571
+ attributes: _
498
572
  });
499
- if (m) {
500
- m.recordException(h), m.setStatus({
573
+ if (h) {
574
+ h.recordException(g), h.setStatus({
501
575
  code: t.ERROR,
502
576
  message: d
503
- }), _();
577
+ }), v();
504
578
  return;
505
579
  }
506
- let v = e.startSpan(l, g);
507
- v.recordException(h), v.setStatus({
580
+ let y = e.startSpan(l, _);
581
+ y.recordException(g), y.setStatus({
508
582
  code: t.ERROR,
509
583
  message: d
510
- }), n.with(a.setSpan(n.active(), v), _), v.end();
511
- }, Ke = (e) => {
584
+ }), n.with(a.setSpan(n.active(), y), v), y.end();
585
+ }, tt = (e) => {
512
586
  let t = [];
513
587
  return {
514
588
  name: "error",
@@ -516,22 +590,23 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
516
590
  init(n) {
517
591
  var r, i;
518
592
  if (typeof window > "u") return;
519
- let a = Ge(typeof e == "object" ? (r = e.windowMs) == null ? Be : r : Be, typeof e == "object" ? (i = e.maxPerWindow) == null ? Ve : i : Ve), o = (e) => {
593
+ let a = z(typeof e == "object" ? (r = e.windowMs) == null ? Ze : r : Ze, typeof e == "object" ? (i = e.maxPerWindow) == null ? Qe : i : Qe), o = (e) => {
520
594
  var t;
521
- z({
595
+ let r = !e.error && !e.filename && e.message === "Script error.";
596
+ V({
522
597
  context: n,
523
598
  throttle: a,
524
599
  spanName: "browser.error",
525
600
  source: "window.error",
526
601
  error: (t = e.error) == null ? e.message : t,
527
- extra: {
602
+ extra: k({
528
603
  "code.filepath": e.filename,
529
604
  "code.lineno": e.lineno,
530
605
  "code.column": e.colno
531
- }
606
+ }, r ? { "bk.rum.error.cross_origin": !0 } : {})
532
607
  });
533
608
  }, s = (e) => {
534
- z({
609
+ V({
535
610
  context: n,
536
611
  throttle: a,
537
612
  spanName: "browser.unhandledrejection",
@@ -540,20 +615,20 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
540
615
  exceptionType: e.reason instanceof Error ? e.reason.name : "UnhandledRejection"
541
616
  });
542
617
  }, c = (e) => {
543
- var t;
544
- let r = e.target;
545
- if (r === window) return;
546
- let i = r.src || r.href || "";
547
- z({
618
+ if (e instanceof ErrorEvent) return;
619
+ let t = e.target;
620
+ if (!(t instanceof Element)) return;
621
+ let r = t, i = r.src || r.href || t.currentSrc || "";
622
+ V({
548
623
  context: n,
549
624
  throttle: a,
550
625
  spanName: "browser.resource_error",
551
626
  source: "resource",
552
- error: /* @__PURE__ */ Error(`Resource load failed: ${((t = r.tagName) == null ? void 0 : t.toLowerCase()) || "unknown"} ${i}`),
627
+ error: /* @__PURE__ */ Error(`Resource load failed: ${t.tagName.toLowerCase()} ${i}`),
553
628
  exceptionType: "ResourceError",
554
629
  extra: {
555
630
  "url.full": n.config.redactUrl(i),
556
- "html.tag": r.tagName || ""
631
+ "html.tag": t.tagName
557
632
  }
558
633
  });
559
634
  };
@@ -566,13 +641,13 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
566
641
  }
567
642
  }
568
643
  };
569
- }, qe = 10 * 1024, B = (e, t) => e.length <= t ? {
644
+ }, nt = 10 * 1024, rt = 10, H = /* @__PURE__ */ new WeakMap(), U = (e, t) => e.length <= t ? {
570
645
  body: e,
571
646
  truncated: !1
572
647
  } : {
573
648
  body: e.slice(0, t),
574
649
  truncated: !0
575
- }, Je = (e, t) => {
650
+ }, it = (e, t) => {
576
651
  if (!e) return;
577
652
  if (e instanceof Headers) return e.get(t) || void 0;
578
653
  let n = t.toLowerCase();
@@ -582,30 +657,30 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
582
657
  }
583
658
  let i = Object.keys(e).find((e) => e.toLowerCase() === n);
584
659
  return i ? e[i] : void 0;
585
- }, Ye = (e) => {
660
+ }, at = (e) => {
586
661
  let t = {};
587
662
  return e.forEach((e, n) => {
588
663
  t[n] = e instanceof File ? `[File name=${e.name} type=${e.type || "unknown"} size=${e.size}]` : e;
589
664
  }), JSON.stringify(t);
590
- }, Xe = function() {
591
- var e = P(function* (e) {
592
- return e == null ? "" : typeof e == "string" ? e : e instanceof URLSearchParams ? e.toString() : e instanceof FormData ? Ye(e) : e instanceof Blob ? e.text() : e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? new TextDecoder().decode(e) : e instanceof Document ? new XMLSerializer().serializeToString(e) : String(e);
665
+ }, ot = function() {
666
+ var e = F(function* (e) {
667
+ return e == null ? "" : typeof e == "string" ? e : e instanceof URLSearchParams ? e.toString() : e instanceof FormData ? at(e) : e instanceof Blob ? e.text() : e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? new TextDecoder().decode(e) : e instanceof Document ? new XMLSerializer().serializeToString(e) : String(e);
593
668
  });
594
669
  return function(t) {
595
670
  return e.apply(this, arguments);
596
671
  };
597
- }(), Ze = function() {
598
- var e = P(function* (e, t, n) {
599
- let r = yield Xe(e);
600
- if (r) return O(O({}, B(r, t)), {}, { contentType: n });
672
+ }(), st = function() {
673
+ var e = F(function* (e, t, n) {
674
+ let r = yield ot(e);
675
+ if (r) return k(k({}, U(r, t)), {}, { contentType: n });
601
676
  });
602
677
  return function(t, n, r) {
603
678
  return e.apply(this, arguments);
604
679
  };
605
- }(), V = function() {
606
- var e = P(function* (e, t, n) {
680
+ }(), W = function() {
681
+ var e = F(function* (e, t, n) {
607
682
  try {
608
- return yield Ze(e, t, n);
683
+ return yield st(e, t, n);
609
684
  } catch (e) {
610
685
  return;
611
686
  }
@@ -613,11 +688,11 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
613
688
  return function(t, n, r) {
614
689
  return e.apply(this, arguments);
615
690
  };
616
- }(), Qe = (e) => e instanceof Request ? e.url : String(e), $e = (e, t) => t != null && t.method ? t.method : e instanceof Request ? e.method : "GET", et = function() {
617
- var e = P(function* (e, t, n) {
618
- if (t != null && t.body) return V(t.body, n, Je(t.headers, "content-type"));
691
+ }(), ct = (e) => e instanceof Request ? e.url : String(e), lt = (e, t) => t != null && t.method ? t.method : e instanceof Request ? e.method : "GET", ut = function() {
692
+ var e = F(function* (e, t, n) {
693
+ if (t != null && t.body) return W(t.body, n, it(t.headers, "content-type"));
619
694
  if (e instanceof Request) try {
620
- return V(yield e.clone().text(), n, e.headers.get("content-type") || void 0);
695
+ return W(yield e.clone().text(), n, e.headers.get("content-type") || void 0);
621
696
  } catch (e) {
622
697
  return;
623
698
  }
@@ -625,11 +700,20 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
625
700
  return function(t, n, r) {
626
701
  return e.apply(this, arguments);
627
702
  };
628
- }(), tt = function() {
629
- var e = P(function* (e, t) {
703
+ }(), dt = function() {
704
+ var e = F(function* (e, t) {
630
705
  try {
631
- let n = e.clone();
632
- return V(n.body ? yield n.text() : "", t, e.headers.get("content-type") || void 0);
706
+ let n = e.headers.get("content-type") || void 0, r = e.headers.get("content-length");
707
+ if (r) {
708
+ let e = Number(r);
709
+ if (Number.isFinite(e) && e > t * rt) return {
710
+ body: "",
711
+ contentType: n,
712
+ truncated: !0
713
+ };
714
+ }
715
+ let i = e.clone();
716
+ return W(i.body ? yield i.text() : "", t, n);
633
717
  } catch (e) {
634
718
  return;
635
719
  }
@@ -637,30 +721,30 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
637
721
  return function(t, n) {
638
722
  return e.apply(this, arguments);
639
723
  };
640
- }(), nt = (e, t) => {
641
- if (e.responseType === "" || e.responseType === "text") return O(O({}, B(e.responseText || "", t)), {}, { contentType: e.getResponseHeader("content-type") || void 0 });
642
- if (e.responseType === "json") return O(O({}, B(JSON.stringify(e.response), t)), {}, { contentType: e.getResponseHeader("content-type") || void 0 });
643
- }, rt = (e, t, n) => {
644
- if (n) return e.redact(O(O({}, t), {}, {
724
+ }(), ft = (e, t) => {
725
+ if (e.responseType === "" || e.responseType === "text") return k(k({}, U(e.responseText || "", t)), {}, { contentType: e.getResponseHeader("content-type") || void 0 });
726
+ if (e.responseType === "json") return k(k({}, U(JSON.stringify(e.response), t)), {}, { contentType: e.getResponseHeader("content-type") || void 0 });
727
+ }, pt = (e, t, n) => {
728
+ if (n) return e.redact(k(k({}, t), {}, {
645
729
  body: n.body,
646
730
  truncated: n.truncated
647
731
  }));
648
- }, H = ({ context: e, duration: t, error: n, method: r, request: i, response: a, status: s, url: c }) => {
732
+ }, G = ({ context: e, duration: t, error: n, method: r, request: i, response: a, status: s, url: c }) => {
649
733
  let l = e.config.rum.httpBody;
650
734
  if (!l) return;
651
- let u = !!n || typeof s == "number" && s >= 400, d = r.toUpperCase(), f = u ? rt(l, {
735
+ let u = !!n || typeof s == "number" && s >= 400, d = r.toUpperCase(), f = u ? pt(l, {
652
736
  contentType: i == null ? void 0 : i.contentType,
653
737
  method: d,
654
738
  status: s,
655
739
  type: "request",
656
740
  url: c
657
- }, i) : void 0, p = u ? rt(l, {
741
+ }, i) : void 0, p = u ? pt(l, {
658
742
  contentType: a == null ? void 0 : a.contentType,
659
743
  method: d,
660
744
  status: s,
661
745
  type: "response",
662
746
  url: c
663
- }, a) : void 0, m = O(O({}, e.config.getPageAttributes()), {}, {
747
+ }, a) : void 0, m = k(k({}, e.config.getPageAttributes()), {}, {
664
748
  "http.duration": t,
665
749
  "http.request.method": d,
666
750
  "url.full": e.config.redactUrl(c)
@@ -679,77 +763,98 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
679
763
  body: u ? "HTTP request completed with error" : "HTTP request completed",
680
764
  attributes: m
681
765
  });
682
- }, it = (e) => {
766
+ }, mt = (e) => {
683
767
  let t = [];
684
768
  return {
685
769
  name: "http-body",
686
770
  enabled: !!e,
687
771
  init(n) {
688
772
  if (!e || typeof window > "u") return;
689
- let r = e.maxBodySize || qe, i = window.fetch;
690
- typeof i == "function" && (window.fetch = function() {
691
- var e = P(function* (e, t) {
692
- let a = Qe(e);
693
- if (I(n.config, a)) return i(e, t);
694
- let o = $e(e, t), s = yield et(e, t, r), c = performance.now();
695
- try {
696
- let l = yield i(e, t);
697
- return H({
698
- context: n,
699
- duration: performance.now() - c,
700
- method: o,
701
- request: s,
702
- response: l.status >= 400 ? yield tt(l, r) : void 0,
703
- status: l.status,
704
- url: a
705
- }), l;
706
- } catch (e) {
707
- throw H({
708
- context: n,
709
- duration: performance.now() - c,
710
- error: e,
711
- method: o,
712
- request: s,
713
- url: a
714
- }), e;
715
- }
773
+ let r = e.maxBodySize || nt, i = window.fetch;
774
+ if (typeof i == "function") {
775
+ let e = function() {
776
+ var e = F(function* (e, t) {
777
+ let a = ct(e);
778
+ if (I(n.config, a)) return i(e, t);
779
+ let o = lt(e, t), s = yield ut(e, t, r), c = performance.now();
780
+ try {
781
+ let l = yield i(e, t);
782
+ return G({
783
+ context: n,
784
+ duration: performance.now() - c,
785
+ method: o,
786
+ request: s,
787
+ response: l.status >= 400 ? yield dt(l, r) : void 0,
788
+ status: l.status,
789
+ url: a
790
+ }), l;
791
+ } catch (e) {
792
+ throw G({
793
+ context: n,
794
+ duration: performance.now() - c,
795
+ error: e,
796
+ method: o,
797
+ request: s,
798
+ url: a
799
+ }), e;
800
+ }
801
+ });
802
+ return function(t, n) {
803
+ return e.apply(this, arguments);
804
+ };
805
+ }();
806
+ window.fetch = e, t.push(() => {
807
+ window.fetch === e && (window.fetch = i);
716
808
  });
717
- return function(t, n) {
718
- return e.apply(this, arguments);
719
- };
720
- }(), t.push(() => {
721
- window.fetch = i;
722
- }));
723
- let a = XMLHttpRequest.prototype.open, o = XMLHttpRequest.prototype.send, s = XMLHttpRequest.prototype.setRequestHeader;
724
- XMLHttpRequest.prototype.open = function(e, t, ...n) {
809
+ }
810
+ let a = XMLHttpRequest.prototype.open, o = XMLHttpRequest.prototype.send, s = XMLHttpRequest.prototype.setRequestHeader, c = function(e, t, ...n) {
725
811
  var r;
726
- return this.__bkOtHttpBodyMeta__ = {
812
+ return H.set(this, {
727
813
  method: e,
728
814
  startTime: performance.now(),
729
815
  url: String(t)
730
- }, a.call(this, e, t, (r = n[0]) == null ? !0 : r, n[1], n[2]);
731
- }, XMLHttpRequest.prototype.setRequestHeader = function(e, t) {
732
- var n;
733
- return this.__bkOtHttpBodyRequestHeaders__ = O(O({}, (n = this.__bkOtHttpBodyRequestHeaders__) == null ? {} : n), {}, { [e]: t }), s.call(this, e, t);
734
- }, XMLHttpRequest.prototype.send = function(e) {
735
- return V(e, r, Je(this.__bkOtHttpBodyRequestHeaders__, "content-type")).then((e) => {
736
- this.__bkOtHttpBodyRequest__ = e;
737
- }), this.addEventListener("loadend", () => {
738
- let e = this.__bkOtHttpBodyMeta__;
739
- if (!e || I(n.config, e.url)) return;
740
- let t = this.status >= 400 ? nt(this, r) : void 0;
741
- H({
742
- context: n,
743
- duration: performance.now() - e.startTime,
744
- method: e.method,
745
- request: this.__bkOtHttpBodyRequest__,
746
- response: t,
747
- status: this.status,
748
- url: e.url
749
- });
750
- }), o.call(this, e);
751
- }, t.push(() => {
752
- XMLHttpRequest.prototype.open = a, XMLHttpRequest.prototype.send = o, XMLHttpRequest.prototype.setRequestHeader = s;
816
+ }), a.call(this, e, t, (r = n[0]) == null ? !0 : r, n[1], n[2]);
817
+ }, l = function(e, t) {
818
+ let n = H.get(this);
819
+ if (n) {
820
+ var r;
821
+ let i = e.toLowerCase(), a = (r = n.requestHeaders) == null ? {} : r, o = a[i];
822
+ a[i] = o ? `${o}, ${t}` : t, n.requestHeaders = a;
823
+ }
824
+ return s.call(this, e, t);
825
+ }, u = function(e) {
826
+ var t = this;
827
+ let i = H.get(this);
828
+ if (i) {
829
+ var a;
830
+ i.requestPromise = W(e, r, (a = i.requestHeaders) == null ? void 0 : a["content-type"]);
831
+ }
832
+ return this.addEventListener("abort", () => {
833
+ let e = H.get(this);
834
+ e && (e.aborted = !0);
835
+ }, { once: !0 }), this.addEventListener("error", () => {
836
+ let e = H.get(this);
837
+ e && (e.networkError = !0);
838
+ }, { once: !0 }), this.addEventListener("loadend", () => {
839
+ F(function* () {
840
+ let e = H.get(t);
841
+ if (!e || I(n.config, e.url) || e.aborted) return;
842
+ let i = e.networkError || t.status >= 400 ? ft(t, r) : void 0, a = yield e.requestPromise;
843
+ G({
844
+ context: n,
845
+ duration: performance.now() - e.startTime,
846
+ error: e.networkError ? /* @__PURE__ */ Error("XHR network error") : void 0,
847
+ method: e.method,
848
+ request: a,
849
+ response: i,
850
+ status: t.status,
851
+ url: e.url
852
+ });
853
+ })();
854
+ }, { once: !0 }), o.call(this, e);
855
+ };
856
+ XMLHttpRequest.prototype.open = c, XMLHttpRequest.prototype.setRequestHeader = l, XMLHttpRequest.prototype.send = u, t.push(() => {
857
+ XMLHttpRequest.prototype.open === c && (XMLHttpRequest.prototype.open = a), XMLHttpRequest.prototype.setRequestHeader === l && (XMLHttpRequest.prototype.setRequestHeader = s), XMLHttpRequest.prototype.send === u && (XMLHttpRequest.prototype.send = o);
753
858
  });
754
859
  },
755
860
  shutdown() {
@@ -759,30 +864,29 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
759
864
  }
760
865
  }
761
866
  };
762
- }, at = 50, ot = (e) => {
867
+ }, ht = 50, gt = (e) => {
763
868
  let t;
764
869
  return {
765
870
  name: "long-task",
766
871
  enabled: !!e,
767
872
  init(n) {
768
- var r;
769
- if (typeof PerformanceObserver > "u") return;
770
- let i = PerformanceObserver.supportedEntryTypes;
771
- if (!(i != null && i.includes("longtask"))) return;
772
- let a = typeof e == "object" ? (r = e.threshold) == null ? at : r : at, o = n.meter.createCounter("browser.long_task.count", { description: "Number of long tasks observed (duration >= threshold)" }), s = n.meter.createHistogram("browser.long_task.duration", {
873
+ var r, i;
874
+ if (typeof PerformanceObserver > "u" || !((r = PerformanceObserver.supportedEntryTypes) != null && r.includes("longtask"))) return;
875
+ let a = typeof e == "object" ? (i = e.threshold) == null ? ht : i : ht, o = n.meter.createCounter("browser.long_task.count", { description: "Number of long tasks observed (duration >= threshold)" }), s = n.meter.createHistogram("browser.long_task.duration", {
773
876
  unit: "ms",
774
877
  description: "Duration of long tasks"
775
878
  });
776
879
  try {
777
880
  t = new PerformanceObserver((e) => {
778
- for (let i of e.getEntries()) {
779
- var t, r;
780
- if (i.duration < a) continue;
781
- let e = (t = i.attribution) == null ? void 0 : t[0], c = n.applyRedact(O(O(O({}, n.config.getPageAttributes()), n.config.getMetricAttributes()), {}, {
782
- "long_task.name": i.name,
783
- "long_task.attribution": (r = e == null ? void 0 : e.name) == null ? "unknown" : r
784
- }));
785
- o.add(1, c), s.record(i.duration, c);
881
+ let t = n.applyRedact(k(k({}, n.config.getPageAttributes()), n.config.getMetricAttributes()));
882
+ for (let n of e.getEntries()) {
883
+ var r, i;
884
+ if (n.duration < a) continue;
885
+ let e = (r = n.attribution) == null ? void 0 : r[0], c = k(k({}, t), {}, {
886
+ "long_task.name": n.name,
887
+ "long_task.attribution": (i = e == null ? void 0 : e.name) == null ? "unknown" : i
888
+ });
889
+ o.add(1, c), s.record(n.duration, c);
786
890
  }
787
891
  }), t.observe({
788
892
  type: "longtask",
@@ -796,40 +900,40 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
796
900
  t == null || t.disconnect(), t = void 0;
797
901
  }
798
902
  };
799
- }, U = /* @__PURE__ */ new Set(), W = "", G, K, q = !1, J = () => typeof location > "u" ? "" : location.href, Y = (e, t) => {
800
- let n = J();
801
- W = n;
903
+ }, K = /* @__PURE__ */ new Set(), q = "", J, Y, X = !1, Z = () => typeof location > "u" ? "" : location.href, Q = (e, t) => {
904
+ let n = Z();
905
+ q = n;
802
906
  let r = {
803
907
  fromUrl: t,
804
908
  source: e,
805
909
  toUrl: n
806
910
  };
807
- for (let e of Array.from(U)) e(r);
808
- }, st = () => {
809
- Y("popstate", W || J());
810
- }, ct = () => {
811
- Y("hashchange", W || J());
812
- }, lt = () => {
813
- q || typeof window > "u" || typeof history > "u" || (q = !0, W = J(), G = history.pushState, K = history.replaceState, history.pushState = function(e, t, n) {
814
- let r = W || J(), i = G == null ? void 0 : G.apply(this, [
911
+ for (let e of Array.from(K)) e(r);
912
+ }, _t = () => {
913
+ Q("popstate", q || Z());
914
+ }, vt = () => {
915
+ Q("hashchange", q || Z());
916
+ }, yt = () => {
917
+ X || typeof window > "u" || typeof history > "u" || (X = !0, q = Z(), J = history.pushState, Y = history.replaceState, history.pushState = function(e, t, n) {
918
+ let r = q || Z(), i = J == null ? void 0 : J.apply(this, [
815
919
  e,
816
920
  t,
817
921
  n
818
922
  ]);
819
- return Y("pushState", r), i;
923
+ return Q("pushState", r), i;
820
924
  }, history.replaceState = function(e, t, n) {
821
- let r = W || J(), i = K == null ? void 0 : K.apply(this, [
925
+ let r = q || Z(), i = Y == null ? void 0 : Y.apply(this, [
822
926
  e,
823
927
  t,
824
928
  n
825
929
  ]);
826
- return Y("replaceState", r), i;
827
- }, window.addEventListener("popstate", st), window.addEventListener("hashchange", ct));
828
- }, ut = () => {
829
- !q || typeof window > "u" || typeof history > "u" || (G && (history.pushState = G), K && (history.replaceState = K), window.removeEventListener("popstate", st), window.removeEventListener("hashchange", ct), G = void 0, K = void 0, q = !1, W = "");
830
- }, dt = (e) => typeof window > "u" || typeof history > "u" ? () => {} : (lt(), U.add(e), () => {
831
- U.delete(e), U.size === 0 && ut();
832
- }), ft = () => typeof location > "u" ? "" : location.href, pt = (e) => {
930
+ return Q("replaceState", r), i;
931
+ }, window.addEventListener("popstate", _t), window.addEventListener("hashchange", vt));
932
+ }, bt = () => {
933
+ !X || typeof window > "u" || typeof history > "u" || (J && (history.pushState = J), Y && (history.replaceState = Y), window.removeEventListener("popstate", _t), window.removeEventListener("hashchange", vt), J = void 0, Y = void 0, X = !1, q = "");
934
+ }, xt = (e) => typeof window > "u" || typeof history > "u" ? () => {} : (yt(), K.add(e), () => {
935
+ K.delete(e), K.size === 0 && bt();
936
+ }), St = () => typeof location > "u" ? "" : location.href, Ct = (e) => {
833
937
  let t = [];
834
938
  return {
835
939
  name: "page-view",
@@ -837,14 +941,16 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
837
941
  init(e) {
838
942
  if (typeof window > "u") return;
839
943
  let n = "", r = (t, r = n) => {
840
- let i = ft();
841
- i !== n && (n = i, e.startSpan("browser.page_view", O(O({}, e.config.getPageAttributes()), {}, {
944
+ let i = St();
945
+ if (i === n) return;
946
+ n = i;
947
+ let a = t === "load";
948
+ e.startSpan("browser.page_view", k(k({}, e.config.getPageAttributes()), {}, {
842
949
  "url.full": e.config.redactUrl(i),
843
950
  "url.previous": e.config.redactUrl(r),
844
- "document.referrer": e.config.redactUrl(document.referrer || ""),
845
951
  "bk.rum.event.source": t
846
- })).end());
847
- }, i = dt((e) => {
952
+ }, a ? { "document.referrer": e.config.redactUrl(document.referrer || "") } : {})).end();
953
+ }, i = xt((e) => {
848
954
  r(e.source, e.fromUrl);
849
955
  });
850
956
  r("load"), t.push(i);
@@ -856,96 +962,191 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
856
962
  }
857
963
  }
858
964
  };
859
- }, mt = (e) => {
860
- let t = [];
965
+ }, wt = (e) => {
966
+ let t = [], n = !1;
861
967
  return {
862
968
  name: "route-timing",
863
969
  enabled: !!e,
864
970
  init(e) {
865
971
  if (typeof window > "u" || typeof history > "u") return;
866
- let n = e.meter.createHistogram("browser.route_change.duration", {
972
+ let r = e.meter.createHistogram("browser.route_change.duration", {
867
973
  unit: "ms",
868
974
  description: "Estimated SPA route change duration (route start to next idle)"
869
- }), r = (t, r, i) => {
870
- let a = performance.now(), o = () => {
871
- let o = performance.now() - a, s = e.applyRedact(O(O(O({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), {}, { "route.change.source": t }));
872
- n.record(o, s), e.startSpan("browser.route_change", O(O({}, s), {}, {
873
- "url.full": e.config.redactUrl(i),
874
- "url.previous": e.config.redactUrl(r),
875
- "route.change.duration_ms": o
876
- })).end();
975
+ }), i = (t, i, a) => {
976
+ if (n) return;
977
+ let o = performance.now(), s = performance.timeOrigin + o, c = () => {
978
+ if (n || typeof document < "u" && document.visibilityState === "hidden") return;
979
+ let c = performance.now() - o, l = e.applyRedact(k(k(k({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), {}, { "route.change.source": t }));
980
+ r.record(c, l), e.startSpan("browser.route_change", k(k({}, l), {}, {
981
+ "url.full": e.config.redactUrl(a),
982
+ "url.previous": e.config.redactUrl(i),
983
+ "route.change.duration_ms": c
984
+ }), { startTime: s }).end();
877
985
  };
878
- requestAnimationFrame(() => requestAnimationFrame(() => setTimeout(o, 0)));
879
- }, i = dt((e) => {
880
- e.fromUrl !== e.toUrl && r(e.source, e.fromUrl, e.toUrl);
986
+ requestAnimationFrame(() => requestAnimationFrame(() => setTimeout(c, 0)));
987
+ }, a = xt((e) => {
988
+ e.fromUrl !== e.toUrl && i(e.source, e.fromUrl, e.toUrl);
881
989
  });
882
- t.push(i);
990
+ t.push(a);
883
991
  },
884
992
  shutdown() {
885
- for (; t.length;) {
993
+ for (n = !0; t.length;) {
886
994
  var e;
887
995
  (e = t.pop()) == null || e();
888
996
  }
889
997
  }
890
998
  };
891
- }, ht = "bk_ot_session", gt = 1800 * 1e3, _t = () => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `session-${Date.now()}-${Math.random().toString(16).slice(2)}`, vt = (e) => {
999
+ }, Tt = 1800 * 1e3, Et = 1440 * 60 * 1e3, Dt = 6e4, Ot = 5e3, kt = [
1000
+ "click",
1001
+ "keydown",
1002
+ "scroll",
1003
+ "mousemove",
1004
+ "touchstart"
1005
+ ], At = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 && e <= t + Ot, jt = (e, t) => {
1006
+ if (!e) return null;
892
1007
  try {
893
- var t;
894
- let n = (t = window.sessionStorage.getItem(e)) == null ? window.localStorage.getItem(e) : t;
895
- if (!n) return null;
896
- let r = JSON.parse(n);
897
- return typeof (r == null ? void 0 : r.id) == "string" && typeof (r == null ? void 0 : r.ts) == "number" ? r : null;
898
- } catch (e) {
899
- return null;
900
- }
901
- }, yt = (e, t) => {
1008
+ let n = JSON.parse(e);
1009
+ if (typeof (n == null ? void 0 : n.id) == "string" && At(n.ts, t) && At(n.startedAt, t)) return n;
1010
+ } catch (e) {}
1011
+ return null;
1012
+ }, Mt = (e, t) => {
1013
+ if (typeof window > "u") return null;
1014
+ let n = null;
1015
+ try {
1016
+ n = window.localStorage.getItem(e);
1017
+ } catch (e) {}
1018
+ let r = jt(n, t);
1019
+ if (r) return r;
902
1020
  try {
903
- let n = JSON.stringify(t);
904
- window.sessionStorage.setItem(e, n), window.localStorage.setItem(e, n);
1021
+ n = window.sessionStorage.getItem(e);
905
1022
  } catch (e) {}
906
- }, bt = (e, t) => {
907
- let n = Date.now(), r = vt(e);
908
- if (r && n - r.ts < t) {
909
- let t = {
910
- id: r.id,
911
- ts: n
1023
+ return r = jt(n, t), r;
1024
+ }, Nt = (e, t) => {
1025
+ if (typeof window > "u") return;
1026
+ let n = JSON.stringify(t);
1027
+ try {
1028
+ window.sessionStorage.setItem(e, n);
1029
+ } catch (e) {}
1030
+ try {
1031
+ window.localStorage.setItem(e, n);
1032
+ } catch (e) {}
1033
+ }, Pt = (e, t, n) => {
1034
+ let r = Date.now(), i = Mt(e, r);
1035
+ if (i) {
1036
+ let a = r - i.ts >= t, o = r - i.startedAt >= n;
1037
+ if (!a && !o) {
1038
+ let t = k(k({}, i), {}, { ts: r });
1039
+ return Nt(e, t), {
1040
+ id: t.id,
1041
+ rotated: !1
1042
+ };
1043
+ }
1044
+ let s = a ? "inactivity" : "maxLifetime", c = {
1045
+ id: B("session"),
1046
+ startedAt: r,
1047
+ ts: r
1048
+ };
1049
+ return Nt(e, c), {
1050
+ id: c.id,
1051
+ prevId: i.id,
1052
+ reason: s,
1053
+ rotated: !0
912
1054
  };
913
- return yt(e, t), t.id;
914
1055
  }
915
- let i = {
916
- id: _t(),
917
- ts: n
1056
+ let a = {
1057
+ id: B("session"),
1058
+ startedAt: r,
1059
+ ts: r
918
1060
  };
919
- return yt(e, i), i.id;
920
- }, xt = (e) => {
921
- let t;
1061
+ return Nt(e, a), {
1062
+ id: a.id,
1063
+ reason: "init",
1064
+ rotated: !0
1065
+ };
1066
+ }, Ft = (e) => {
1067
+ let t = "";
1068
+ try {
1069
+ t = new URL(e).host;
1070
+ } catch (n) {
1071
+ t = e;
1072
+ }
1073
+ return `bk_ot_session__${R(t || "default")}`;
1074
+ }, It = (e, t) => {
1075
+ !t.rotated || !t.reason || e.emitLog({
1076
+ severityNumber: o.INFO,
1077
+ severityText: "INFO",
1078
+ body: t.reason === "init" ? "session.start" : "session.rotate",
1079
+ attributes: k(k({}, e.config.getPageAttributes()), {}, {
1080
+ "session.id": t.id,
1081
+ "session.rotate.reason": t.reason
1082
+ }, t.prevId ? { "session.previous_id": t.prevId } : {})
1083
+ });
1084
+ }, Lt = (e) => {
1085
+ let t = [];
922
1086
  return {
923
1087
  name: "session",
924
1088
  enabled: !!e,
925
1089
  init(n) {
926
- var r, i;
927
- let a = typeof e == "object" ? (r = e.storageKey) == null ? ht : r : ht, o = typeof e == "object" ? (i = e.inactivityMs) == null ? gt : i : gt, s = () => {
928
- let e = typeof window > "u" ? _t() : bt(a, o);
929
- n.setRuntimeAttributes({ "session.id": e });
1090
+ var r, i, a;
1091
+ let o = typeof e == "object" ? e : void 0, s = (r = o == null ? void 0 : o.storageKey) == null ? Ft(n.config.endpoint) : r, c = (i = o == null ? void 0 : o.inactivityMs) == null ? Tt : i, l = (a = o == null ? void 0 : o.maxLifetimeMs) == null ? Et : a, u = "", d = () => {
1092
+ if (typeof window > "u") {
1093
+ u || (u = B("session"), n.setRuntimeAttributes({ "session.id": u }));
1094
+ return;
1095
+ }
1096
+ let e = Pt(s, c, l);
1097
+ n.setRuntimeAttributes({ "session.id": e.id }), e.id !== u && (u = e.id, It(n, e));
1098
+ };
1099
+ if (d(), typeof window > "u" || typeof document > "u") return;
1100
+ let f = Date.now(), p = () => {
1101
+ let e = Date.now();
1102
+ e - f < Dt || (f = e, d());
1103
+ }, m = {
1104
+ capture: !0,
1105
+ passive: !0
1106
+ };
1107
+ kt.forEach((e) => {
1108
+ window.addEventListener(e, p, m);
1109
+ }), t.push(() => {
1110
+ kt.forEach((e) => {
1111
+ window.removeEventListener(e, p, m);
1112
+ });
1113
+ });
1114
+ let h = () => {
1115
+ document.visibilityState === "visible" && d();
930
1116
  };
931
- if (s(), typeof window > "u" || typeof document > "u") return;
932
- let c = () => {
933
- document.visibilityState === "visible" && s();
1117
+ document.addEventListener("visibilitychange", h), t.push(() => document.removeEventListener("visibilitychange", h));
1118
+ let g = (e) => {
1119
+ if (e.storageArea !== window.localStorage || e.key !== s || !e.newValue) return;
1120
+ let t = Date.now(), r = jt(e.newValue, t);
1121
+ if (!(!r || r.id === u)) {
1122
+ u = r.id;
1123
+ try {
1124
+ window.sessionStorage.setItem(s, e.newValue);
1125
+ } catch (e) {}
1126
+ n.setRuntimeAttributes({ "session.id": r.id });
1127
+ }
934
1128
  };
935
- document.addEventListener("visibilitychange", c), t = () => document.removeEventListener("visibilitychange", c);
1129
+ window.addEventListener("storage", g), t.push(() => window.removeEventListener("storage", g));
936
1130
  },
937
1131
  shutdown() {
938
- t == null || t(), t = void 0;
1132
+ for (; t.length;) {
1133
+ var e;
1134
+ (e = t.pop()) == null || e();
1135
+ }
939
1136
  }
940
1137
  };
941
- }, St = () => {
1138
+ }, Rt = "unknown", zt = (e) => e ? e.replace(/_/g, "-") : Rt, Bt = () => {
1139
+ if (typeof performance > "u") return Rt;
942
1140
  let e = performance.getEntriesByType("navigation")[0];
943
- return (e == null ? void 0 : e.type) || "unknown";
944
- }, X = (e) => ({
945
- "rum.navigation.type": St(),
946
- "web_vital.name": e.name,
947
- "web_vital.rating": e.rating
948
- }), Ct = (e, t) => {
1141
+ return zt(e == null ? void 0 : e.type);
1142
+ }, Vt = (e, t) => {
1143
+ var n;
1144
+ return {
1145
+ "rum.navigation.type": (n = e.navigationType) == null ? t : n,
1146
+ "web_vital.name": e.name,
1147
+ "web_vital.rating": e.rating
1148
+ };
1149
+ }, Ht = (e, t) => {
949
1150
  var n;
950
1151
  let r = (n = e.attribution) == null ? {} : n, i = {}, a = (e) => r[e], o = (e, t, n) => {
951
1152
  t != null && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") && (i[e] = typeof t == "string" && n ? n(t) : t);
@@ -969,143 +1170,196 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
969
1170
  default: break;
970
1171
  }
971
1172
  return i;
972
- }, wt = (e) => ({
973
- name: "web-vitals",
974
- enabled: !!e,
975
- init(e) {
976
- return P(function* () {
977
- if (typeof window > "u") return;
978
- let { onCLS: t, onFCP: n, onINP: r, onLCP: i, onTTFB: a } = yield import("web-vitals/attribution"), o = e.meter.createHistogram("browser.web_vital.cls", {
979
- unit: "1",
980
- description: "Cumulative Layout Shift"
981
- }), s = e.meter.createHistogram("browser.web_vital.duration", {
982
- unit: "ms",
983
- description: "Web Vitals duration metrics, including FCP, INP, LCP and TTFB"
984
- }), c = (t) => {
985
- e.startSpan("browser.web_vital", O(O(O(O({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), X(t)), {}, {
986
- "web_vital.id": t.id,
987
- "web_vital.value": t.value
988
- }, Ct(t, e.config.redactUrl))).end();
989
- }, l = (t) => {
990
- s.record(t.value, e.applyRedact(O(O(O({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), X(t)))), c(t);
991
- };
992
- t((t) => {
993
- o.record(t.value, e.applyRedact(O(O(O({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), X(t)))), c(t);
994
- }), n(l), r(l), i(l), a(l);
995
- })();
996
- }
997
- }), Tt = (e) => e == null ? 0 : typeof e == "string" ? typeof TextEncoder > "u" ? e.length : new TextEncoder().encode(e).byteLength : e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? e.byteLength : typeof Blob < "u" && e instanceof Blob ? e.size : 0, Et = (e, t) => {
998
- let n = {
999
- "url.full": t(e),
1000
- "network.protocol.name": "websocket"
1173
+ }, Ut = (e) => {
1174
+ let t = !1;
1175
+ return {
1176
+ name: "web-vitals",
1177
+ enabled: !!e,
1178
+ init(e) {
1179
+ return F(function* () {
1180
+ if (typeof window > "u") return;
1181
+ let n;
1182
+ try {
1183
+ n = yield import("web-vitals/attribution");
1184
+ } catch (t) {
1185
+ if (e.config.debug) {
1186
+ var r;
1187
+ (r = globalThis.console) == null || r.warn("[bk-ot] web-vitals load failed:", t);
1188
+ }
1189
+ return;
1190
+ }
1191
+ if (t) return;
1192
+ let { onCLS: i, onFCP: a, onINP: o, onLCP: s, onTTFB: c } = n, l = Bt(), u = e.meter.createHistogram("browser.web_vital.cls", {
1193
+ unit: "1",
1194
+ description: "Cumulative Layout Shift"
1195
+ }), d = e.meter.createHistogram("browser.web_vital.duration", {
1196
+ unit: "ms",
1197
+ description: "Web Vitals duration metrics, including FCP, INP, LCP and TTFB"
1198
+ }), f = (t) => {
1199
+ e.startSpan("browser.web_vital", k(k(k(k({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), Vt(t, l)), {}, {
1200
+ "web_vital.id": t.id,
1201
+ "web_vital.value": t.value
1202
+ }, Ht(t, e.config.redactUrl))).end();
1203
+ }, p = (n) => {
1204
+ t || !Number.isFinite(n.value) || (d.record(n.value, e.applyRedact(k(k(k({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), Vt(n, l)))), f(n));
1205
+ };
1206
+ i((n) => {
1207
+ t || !Number.isFinite(n.value) || (u.record(n.value, e.applyRedact(k(k(k({}, e.config.getPageAttributes()), e.config.getMetricAttributes()), Vt(n, l)))), f(n));
1208
+ }), a(p), o(p), s(p), c(p);
1209
+ })();
1210
+ },
1211
+ shutdown() {
1212
+ t = !0;
1213
+ }
1001
1214
  };
1215
+ }, Wt = 64 * 1024, Gt = 6e4, Kt = 5, qt = (e) => e == null ? 0 : typeof e == "string" ? e.length > Wt || typeof TextEncoder > "u" ? e.length : new TextEncoder().encode(e).byteLength : e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? e.byteLength : typeof Blob < "u" && e instanceof Blob ? e.size : 0, Jt = (e, t) => {
1216
+ let n = {
1217
+ "network.protocol.name": "websocket",
1218
+ "url.full": t(e)
1219
+ }, r = { "network.protocol.name": "websocket" };
1002
1220
  try {
1003
- n["server.address"] = new URL(e, typeof location > "u" ? "http://localhost" : location.href).host;
1221
+ let t = new URL(e, typeof location > "u" ? "http://localhost" : location.href);
1222
+ n["server.address"] = t.host, n["url.scheme"] = t.protocol.replace(":", ""), r["server.address"] = t.host, r["url.scheme"] = n["url.scheme"];
1004
1223
  } catch (e) {}
1005
1224
  return {
1006
- spanAttributes: n,
1007
- metricAttributes: { "network.protocol.name": "websocket" }
1225
+ metricAttributes: r,
1226
+ spanAttributes: n
1008
1227
  };
1009
- }, Dt = (e) => {
1010
- let n;
1228
+ }, Yt = (e, n) => {
1229
+ let { bytesCounter: r, connectDurationHistogram: i, context: a, errorCounter: s, errorThrottle: c, isDisposed: l, messageCounter: u, url: d } = n, { metricAttributes: f, spanAttributes: p } = Jt(d, a.config.redactUrl), m = a.startSpan("websocket.connect", p), h = performance.now(), g = !1, _ = (e) => {
1230
+ if (g) return;
1231
+ g = !0;
1232
+ let n = performance.now() - h;
1233
+ e === "error" && m.setStatus({
1234
+ code: t.ERROR,
1235
+ message: "websocket connect failed"
1236
+ }), m.setAttribute("websocket.connect.duration_ms", n), m.end(), e === "opened" && !l() && i.record(n, f);
1237
+ };
1238
+ e.addEventListener("open", () => {
1239
+ l() || _("opened");
1240
+ }), e.addEventListener("message", (e) => {
1241
+ if (l()) return;
1242
+ let t = k(k({}, f), {}, { "websocket.direction": "in" });
1243
+ u.add(1, t), r.add(qt(e.data), t);
1244
+ }), e.addEventListener("error", () => {
1245
+ if (l()) return;
1246
+ let e = g ? "runtime" : "connect";
1247
+ s.add(1, k(k({}, f), {}, { "websocket.error.phase": e })), _("error");
1248
+ let t = c.allow(`ws:error:${d}`);
1249
+ t.allowed && a.emitLog({
1250
+ severityNumber: o.ERROR,
1251
+ severityText: "ERROR",
1252
+ body: "websocket.error",
1253
+ attributes: k(k({}, p), {}, {
1254
+ "websocket.error.phase": e,
1255
+ "websocket.error.window_count": t.count
1256
+ })
1257
+ });
1258
+ }), e.addEventListener("close", (e) => {
1259
+ l() || (g || _("error"), a.emitLog({
1260
+ severityNumber: o.INFO,
1261
+ severityText: "INFO",
1262
+ body: "websocket.close",
1263
+ attributes: k(k({}, p), {}, {
1264
+ "websocket.close.code": e.code,
1265
+ "websocket.close.reason": e.reason,
1266
+ "websocket.close.was_clean": e.wasClean
1267
+ })
1268
+ }));
1269
+ });
1270
+ let v = e.send.bind(e);
1271
+ e.send = (e) => {
1272
+ if (!l()) {
1273
+ let t = k(k({}, f), {}, { "websocket.direction": "out" });
1274
+ u.add(1, t), r.add(qt(e), t);
1275
+ }
1276
+ return v(e);
1277
+ };
1278
+ }, Xt = (e) => {
1279
+ let t, n, r = !1;
1011
1280
  return {
1012
1281
  name: "websocket",
1013
1282
  enabled: !!e,
1014
1283
  init(e) {
1015
1284
  if (typeof window > "u" || window.WebSocket === void 0) return;
1016
- let r = window.WebSocket;
1017
- n = r;
1018
- let i = e.meter.createCounter("browser.websocket.message.count", { description: "Total number of WebSocket messages observed" }), a = e.meter.createCounter("browser.websocket.message.bytes", {
1285
+ let i = window.WebSocket;
1286
+ t = i;
1287
+ let a = e.meter.createCounter("browser.websocket.message.count", { description: "Total number of WebSocket messages observed" }), o = e.meter.createCounter("browser.websocket.message.bytes", {
1019
1288
  unit: "By",
1020
1289
  description: "Total bytes transferred over WebSocket (best-effort)"
1021
- }), s = e.meter.createCounter("browser.websocket.error.count", { description: "Total number of WebSocket error events" }), c = function(n, c) {
1022
- let l = n.toString();
1023
- if (I(e.config, l)) return c === void 0 ? new r(n) : new r(n, c);
1024
- let { metricAttributes: u, spanAttributes: d } = Et(l, e.config.redactUrl), f = e.startSpan("websocket.connect", d), p = performance.now(), m = c === void 0 ? new r(n) : new r(n, c), h = !1, g = (e) => {
1025
- h || (h = !0, e === "error" && f.setStatus({
1026
- code: t.ERROR,
1027
- message: "websocket connect failed"
1028
- }), f.setAttribute("websocket.connect.duration_ms", performance.now() - p), f.end());
1029
- };
1030
- m.addEventListener("open", () => g("opened")), m.addEventListener("message", (e) => {
1031
- i.add(1, O(O({}, u), {}, { "websocket.direction": "in" })), a.add(Tt(e.data), O(O({}, u), {}, { "websocket.direction": "in" }));
1032
- }), m.addEventListener("error", () => {
1033
- s.add(1, u), g("error"), e.emitLog({
1034
- severityNumber: o.ERROR,
1035
- severityText: "ERROR",
1036
- body: "websocket.error",
1037
- attributes: d
1038
- });
1039
- }), m.addEventListener("close", (t) => {
1040
- g("opened"), e.emitLog({
1041
- severityNumber: o.INFO,
1042
- severityText: "INFO",
1043
- body: "websocket.close",
1044
- attributes: O(O({}, d), {}, {
1045
- "websocket.close.code": t.code,
1046
- "websocket.close.reason": t.reason,
1047
- "websocket.close.was_clean": t.wasClean
1048
- })
1049
- });
1050
- });
1051
- let _ = m.send.bind(m);
1052
- return m.send = (e) => (i.add(1, O(O({}, u), {}, { "websocket.direction": "out" })), a.add(Tt(e), O(O({}, u), {}, { "websocket.direction": "out" })), _(e)), m;
1053
- };
1054
- c.prototype = r.prototype, Object.assign(c, r), window.WebSocket = c;
1290
+ }), s = e.meter.createCounter("browser.websocket.error.count", { description: "Total number of WebSocket error events" }), c = e.meter.createHistogram("browser.websocket.connect.duration", {
1291
+ unit: "ms",
1292
+ description: "WebSocket connection establishment duration (only successful connects)"
1293
+ }), l = z(Gt, Kt), u = () => r;
1294
+ n = new Proxy(i, { construct(t, n, i) {
1295
+ let d = Reflect.construct(t, n, i);
1296
+ if (r) return d;
1297
+ let f = n[0] == null ? "" : String(n[0]);
1298
+ return !f || I(e.config, f) || Yt(d, {
1299
+ bytesCounter: o,
1300
+ connectDurationHistogram: c,
1301
+ context: e,
1302
+ errorCounter: s,
1303
+ errorThrottle: l,
1304
+ isDisposed: u,
1305
+ messageCounter: a,
1306
+ url: f
1307
+ }), d;
1308
+ } }), window.WebSocket = n;
1055
1309
  },
1056
1310
  shutdown() {
1057
- n && typeof window < "u" && (window.WebSocket = n);
1311
+ r = !0, typeof window < "u" && t && window.WebSocket === n && (window.WebSocket = t), n = void 0, t = void 0;
1058
1312
  }
1059
1313
  };
1060
- }, Z = "__bk_ot_sampled__", Ot = /* @__PURE__ */ new Map(), kt = (e) => Ot.get(e), At = (e, t) => (Ot.set(e, t), t), jt = ({ sampleRate: e }) => {
1314
+ }, $ = "__bk_ot_sampled__", Zt = /* @__PURE__ */ new Map(), Qt = (e) => Zt.get(e), $t = (e, t) => (Zt.set(e, t), t), en = ({ sampleRate: e }) => {
1061
1315
  if (e <= 0) return !1;
1062
1316
  if (e >= 1) return !0;
1063
1317
  try {
1064
- let t = sessionStorage.getItem(Z);
1318
+ let t = sessionStorage.getItem($);
1065
1319
  if (t) return t === "1";
1066
1320
  let n = Math.random() < e;
1067
- return sessionStorage.setItem(Z, n ? "1" : "0"), At(Z, n), n;
1321
+ return sessionStorage.setItem($, n ? "1" : "0"), $t($, n), n;
1068
1322
  } catch (t) {
1069
- let n = kt(Z);
1070
- return typeof n == "boolean" ? n : At(Z, Math.random() < e);
1323
+ let n = Qt($);
1324
+ return typeof n == "boolean" ? n : $t($, Math.random() < e);
1071
1325
  }
1072
- }, Q = (e) => ({
1326
+ }, tn = (e) => ({
1073
1327
  url: e.endpoint,
1074
1328
  headers: e.headers,
1075
1329
  concurrencyLimit: e.concurrencyLimit,
1076
1330
  timeoutMillis: e.timeoutMillis
1077
- }), $ = "bk-rum", Mt = (e, t, n) => n ? new Proxy(e, { get(e, n, r) {
1331
+ }), nn = "bk-rum", rn = (e, t, n) => n ? new Proxy(e, { get(e, n, r) {
1078
1332
  if (n === "export") return (n, r) => {
1079
1333
  var i;
1080
1334
  return (i = globalThis.console) == null || i.log(`[bk-ot][${t}]`, n), e.export(n, r);
1081
1335
  };
1082
1336
  let i = Reflect.get(e, n, r);
1083
1337
  return typeof i == "function" ? i.bind(e) : i;
1084
- } }) : e, Nt = (e) => [Pe(e.commonInstrumentations)], Pt = (e) => [
1085
- ze(e.rum.device),
1086
- it(e.rum.httpBody),
1087
- xt(e.rum.session),
1088
- pt(e.rum.pageView),
1089
- Ke(e.rum.error),
1090
- wt(e.rum.webVitals),
1091
- Ae(e.rum.blankScreen),
1092
- Dt(e.rum.websocket),
1093
- ot(e.rum.longTask),
1094
- Fe(e.rum.cspViolation),
1095
- mt(e.rum.routeTiming)
1096
- ], Ft = class {
1338
+ } }) : e, an = (e) => [Fe(e.commonInstrumentations)], on = (e) => [
1339
+ Xe(e.rum.device),
1340
+ mt(e.rum.httpBody),
1341
+ Lt(e.rum.session),
1342
+ Ct(e.rum.pageView),
1343
+ tt(e.rum.error),
1344
+ Ut(e.rum.webVitals),
1345
+ je(e.rum.blankScreen),
1346
+ Xt(e.rum.websocket),
1347
+ gt(e.rum.longTask),
1348
+ Be(e.rum.cspViolation),
1349
+ wt(e.rum.routeTiming)
1350
+ ], sn = class {
1097
1351
  assertBeforeStart(e) {
1098
1352
  if (this.phase !== "idle") throw Error(`[bk-ot] ${e}() must be called before start(); set autoStart: false before registration.`);
1099
1353
  }
1100
1354
  constructor(o) {
1101
- var C = this;
1102
- E(this, "loggerProvider", void 0), E(this, "meterProvider", void 0), E(this, "phase", "idle"), E(this, "pluginManager", void 0), E(this, "plugins", void 0), E(this, "registeredInstrumentations", void 0), E(this, "runtimeAttributes", void 0), E(this, "sampled", void 0), E(this, "teardownCallbacks", []), E(this, "tracerProvider", void 0), E(this, "applyRedact", (e) => this.config.redactAttributes(e)), E(this, "config", void 0), E(this, "emitLog", (e) => {
1355
+ var w = this;
1356
+ D(this, "loggerProvider", void 0), D(this, "meterProvider", void 0), D(this, "phase", "idle"), D(this, "pluginManager", void 0), D(this, "plugins", void 0), D(this, "registeredInstrumentations", void 0), D(this, "runtimeAttributes", void 0), D(this, "sampled", void 0), D(this, "teardownCallbacks", []), D(this, "tracerProvider", void 0), D(this, "applyRedact", (e) => this.config.redactAttributes(e)), D(this, "config", void 0), D(this, "emitLog", (e) => {
1103
1357
  var t;
1104
- let n = O(O({}, e), {}, { attributes: this.applyRedact(O(O({}, this.getRuntimeAttributes()), (t = e.attributes) == null ? {} : t)) });
1358
+ let n = k(k({}, e), {}, { attributes: this.applyRedact(k(k({}, this.getRuntimeAttributes()), (t = e.attributes) == null ? {} : t)) });
1105
1359
  this.logger.emit(n);
1106
- }), E(this, "flush", P(function* () {
1107
- yield C.pluginManager.flush(), yield C.tracerProvider.forceFlush(), yield C.meterProvider.forceFlush(), yield C.loggerProvider.forceFlush();
1108
- })), E(this, "getRuntimeAttributes", () => O({}, this.runtimeAttributes)), E(this, "logger", void 0), E(this, "meter", void 0), E(this, "reportCustomEvent", ({ attributes: e = {}, error: n, name: r }) => {
1360
+ }), D(this, "flush", F(function* () {
1361
+ yield w.pluginManager.flush(), yield w.tracerProvider.forceFlush(), yield w.meterProvider.forceFlush(), yield w.loggerProvider.forceFlush();
1362
+ })), D(this, "getRuntimeAttributes", () => k({}, this.runtimeAttributes)), D(this, "logger", void 0), D(this, "meter", void 0), D(this, "reportCustomEvent", ({ attributes: e = {}, error: n, name: r }) => {
1109
1363
  if (!this.sampled) {
1110
1364
  if (this.config.debug) {
1111
1365
  var i;
@@ -1113,83 +1367,84 @@ var de = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
1113
1367
  }
1114
1368
  return;
1115
1369
  }
1116
- let a = this.startSpan(`custom.${r}`, O(O(O(O({}, this.config.getPageAttributes()), this.config.getCustomAttributes()), e), {}, { "rum.custom.name": r }));
1370
+ let a = this.startSpan(`custom.${r}`, k(k(k(k({}, this.config.getPageAttributes()), this.config.getCustomAttributes()), e), {}, { "rum.custom.name": r }));
1117
1371
  n && (a.recordException(n), a.setStatus({
1118
1372
  code: t.ERROR,
1119
1373
  message: n.message
1120
1374
  })), a.end();
1121
- }), E(this, "setRuntimeAttributes", (e) => {
1375
+ }), D(this, "setRuntimeAttributes", (e) => {
1122
1376
  Object.assign(this.runtimeAttributes, e);
1123
- }), E(this, "shutdown", P(function* () {
1124
- if (C.phase !== "stopped") {
1125
- for (yield C.flush(); C.teardownCallbacks.length;) {
1377
+ }), D(this, "shutdown", F(function* () {
1378
+ if (w.phase !== "stopped") {
1379
+ for (yield w.flush(); w.teardownCallbacks.length;) {
1126
1380
  var e;
1127
- (e = C.teardownCallbacks.pop()) == null || e();
1381
+ (e = w.teardownCallbacks.pop()) == null || e();
1128
1382
  }
1129
- for (yield C.pluginManager.shutdown(); C.registeredInstrumentations.length;) {
1383
+ for (yield w.pluginManager.shutdown(); w.registeredInstrumentations.length;) {
1130
1384
  var t, i;
1131
- (t = C.registeredInstrumentations.pop()) == null || (i = t.disable) == null || i.call(t);
1385
+ (t = w.registeredInstrumentations.pop()) == null || (i = t.disable) == null || i.call(t);
1132
1386
  }
1133
- yield C.tracerProvider.shutdown(), yield C.meterProvider.shutdown(), yield C.loggerProvider.shutdown(), a.disable(), r.disable(), n.disable(), C.phase = "stopped";
1387
+ yield w.tracerProvider.shutdown(), yield w.meterProvider.shutdown(), yield w.loggerProvider.shutdown(), a.disable(), r.disable(), n.disable(), w.phase = "stopped";
1134
1388
  }
1135
- })), E(this, "start", P(function* () {
1136
- if (!(C.phase === "started" || C.phase === "starting")) {
1137
- if (C.phase === "stopped") throw Error("[bk-ot] instance has been shut down and cannot be restarted; create a new instance instead.");
1138
- if (!C.config.enabled) {
1139
- C.phase = "started";
1389
+ })), D(this, "start", F(function* () {
1390
+ if (!(w.phase === "started" || w.phase === "starting")) {
1391
+ if (w.phase === "stopped") throw Error("[bk-ot] instance has been shut down and cannot be restarted; create a new instance instead.");
1392
+ if (!w.config.enabled) {
1393
+ w.phase = "started";
1140
1394
  return;
1141
1395
  }
1142
- C.phase = "starting", i.setGlobalPropagator(new l()), C.tracerProvider.register({ contextManager: new c() }), r.setGlobalMeterProvider(C.meterProvider), s.setGlobalLoggerProvider(C.loggerProvider);
1396
+ w.phase = "starting", i.setGlobalPropagator(new l()), w.tracerProvider.register({ contextManager: new c() }), r.setGlobalMeterProvider(w.meterProvider), s.setGlobalLoggerProvider(w.loggerProvider);
1143
1397
  try {
1144
- if (C.registeredInstrumentations.length && p({
1145
- instrumentations: C.registeredInstrumentations,
1146
- meterProvider: C.meterProvider,
1147
- tracerProvider: C.tracerProvider
1148
- }), yield C.pluginManager.start(C), typeof window < "u" && typeof document < "u") {
1398
+ if (w.registeredInstrumentations.length && p({
1399
+ instrumentations: w.registeredInstrumentations,
1400
+ meterProvider: w.meterProvider,
1401
+ tracerProvider: w.tracerProvider
1402
+ }), yield w.pluginManager.start(w), typeof window < "u" && typeof document < "u") {
1149
1403
  let e = () => {
1150
- C.flush();
1404
+ w.flush();
1151
1405
  }, t = () => {
1152
- document.visibilityState === "hidden" && C.flush();
1406
+ document.visibilityState === "hidden" && w.flush();
1153
1407
  };
1154
- window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", t), C.teardownCallbacks.push(() => window.removeEventListener("pagehide", e), () => document.removeEventListener("visibilitychange", t));
1408
+ window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", t), w.teardownCallbacks.push(() => window.removeEventListener("pagehide", e), () => document.removeEventListener("visibilitychange", t));
1155
1409
  }
1156
1410
  } catch (i) {
1157
- for (; C.teardownCallbacks.length;) {
1411
+ for (; w.teardownCallbacks.length;) {
1158
1412
  var e;
1159
- (e = C.teardownCallbacks.pop()) == null || e();
1413
+ (e = w.teardownCallbacks.pop()) == null || e();
1160
1414
  }
1161
- yield C.pluginManager.shutdown();
1162
- for (let e of C.registeredInstrumentations) {
1415
+ yield w.pluginManager.shutdown();
1416
+ for (let e of w.registeredInstrumentations) {
1163
1417
  var t;
1164
1418
  (t = e.disable) == null || t.call(e);
1165
1419
  }
1166
- throw a.disable(), r.disable(), n.disable(), C.phase = "idle", i;
1420
+ throw a.disable(), r.disable(), n.disable(), w.phase = "idle", i;
1167
1421
  }
1168
- C.phase = "started";
1422
+ w.phase = "started";
1169
1423
  }
1170
- })), E(this, "startSpan", (t, n = {}) => this.tracer.startSpan(t, {
1424
+ })), D(this, "startSpan", (t, n = {}, r) => this.tracer.startSpan(t, {
1171
1425
  kind: e.INTERNAL,
1172
- attributes: this.applyRedact(O(O({}, this.getRuntimeAttributes()), n))
1173
- })), E(this, "tracer", void 0), E(this, "use", (e) => (this.assertBeforeStart("use"), this.sampled && this.plugins.push(e), this)), E(this, "useInstrumentation", (e) => (this.assertBeforeStart("useInstrumentation"), this.config.enabled && this.registeredInstrumentations.push(e), this)), this.config = le(o), this.sampled = this.config.enabled && jt(this.config);
1174
- let w = m(this.config.resourceAttributes), T = Mt(new f(Q(this.config.traces)), "traces", this.config.debug), D = Mt(new d(Q(this.config.metrics)), "metrics", this.config.debug), k = Mt(new u(Q(this.config.logs)), "logs", this.config.debug), ee = new Se(new y(T, this.config.spanBatch), this.config), A = new v({
1175
- exporter: D,
1426
+ startTime: r == null ? void 0 : r.startTime,
1427
+ attributes: this.applyRedact(k(k({}, this.getRuntimeAttributes()), n))
1428
+ })), D(this, "tracer", void 0), D(this, "use", (e) => (this.assertBeforeStart("use"), this.sampled && this.plugins.push(e), this)), D(this, "useInstrumentation", (e) => (this.assertBeforeStart("useInstrumentation"), this.config.enabled && this.registeredInstrumentations.push(e), this)), this.config = le(o), this.sampled = this.config.enabled && en(this.config);
1429
+ let T = m(this.config.resourceAttributes), E = rn(new f(tn(this.config.traces)), "traces", this.config.debug), O = rn(new d(tn(this.config.metrics)), "metrics", this.config.debug), A = rn(new u(tn(this.config.logs)), "logs", this.config.debug), ee = new Ce(this.config.spanProcessor === "simple" ? new x(E) : new y(E, this.config.spanBatch), this.config), j = new v({
1430
+ exporter: O,
1176
1431
  exportIntervalMillis: this.config.metricIntervalMillis
1177
- }), j = new h(k);
1178
- this.tracerProvider = new S({
1179
- resource: w,
1180
- sampler: new b({ root: new x(+!!this.sampled) }),
1432
+ }), M = new h(A);
1433
+ this.tracerProvider = new C({
1434
+ resource: T,
1435
+ sampler: new b({ root: new S(+!!this.sampled) }),
1181
1436
  spanProcessors: [ee]
1182
1437
  }), this.meterProvider = new _({
1183
- resource: w,
1184
- readers: [A]
1438
+ resource: T,
1439
+ readers: [j]
1185
1440
  }), this.loggerProvider = new g({
1186
- resource: w,
1187
- processors: [j]
1188
- }), this.tracer = this.tracerProvider.getTracer($), this.meter = this.meterProvider.getMeter($), this.logger = this.loggerProvider.getLogger($), this.runtimeAttributes = { "bk.rum.sampled": this.sampled }, this.registeredInstrumentations = this.config.enabled ? [...this.config.instrumentations] : [], this.plugins = [...this.config.enabled ? Nt(this.config) : [], ...this.sampled ? [...Pt(this.config), ...this.config.plugins] : []], this.pluginManager = new pe(this.plugins), this.config.autoStart && this.start().catch((e) => {
1441
+ resource: T,
1442
+ processors: [M]
1443
+ }), this.tracer = this.tracerProvider.getTracer(nn), this.meter = this.meterProvider.getMeter(nn), this.logger = this.loggerProvider.getLogger(nn), this.runtimeAttributes = { "bk.rum.sampled": this.sampled }, this.registeredInstrumentations = this.config.enabled ? [...this.config.instrumentations] : [], this.plugins = [...this.config.enabled ? an(this.config) : [], ...this.sampled ? [...on(this.config), ...this.config.plugins] : []], this.pluginManager = new pe(this.plugins), this.config.autoStart && this.start().catch((e) => {
1189
1444
  var t;
1190
1445
  (t = globalThis.console) == null || t.warn("[bk-ot] auto start failed:", e);
1191
1446
  });
1192
1447
  }
1193
1448
  };
1194
1449
  //#endregion
1195
- export { Ft as BkOpenTelemetry, Se as FilteringSpanProcessor, Ae as createBlankScreenPlugin, Pe as createCommonInstrumentationsPlugin, Fe as createCspViolationPlugin, ze as createDevicePlugin, Ke as createErrorPlugin, it as createHttpBodyPlugin, ot as createLongTaskPlugin, pt as createPageViewPlugin, fe as createPlugin, mt as createRouteTimingPlugin, xt as createSessionPlugin, Dt as createWebSocketPlugin, wt as createWebVitalsPlugin, le as normalizeConfig };
1450
+ export { sn as BkOpenTelemetry, Ce as FilteringSpanProcessor, je as createBlankScreenPlugin, Fe as createCommonInstrumentationsPlugin, Be as createCspViolationPlugin, Xe as createDevicePlugin, tt as createErrorPlugin, mt as createHttpBodyPlugin, gt as createLongTaskPlugin, Ct as createPageViewPlugin, fe as createPlugin, wt as createRouteTimingPlugin, Lt as createSessionPlugin, Xt as createWebSocketPlugin, Ut as createWebVitalsPlugin, le as normalizeConfig };