@blueking/open-telemetry 0.0.20 → 0.0.22-beta.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.
Files changed (43) hide show
  1. package/README.md +11 -25
  2. package/dist/bk-rum.global.js +2 -12
  3. package/dist/bk-rum.global.js.map +1 -1
  4. package/dist/core/config.d.ts +8 -44
  5. package/dist/core/hash.d.ts +2 -0
  6. package/dist/core/plugin.d.ts +2 -7
  7. package/dist/core/processor.d.ts +0 -20
  8. package/dist/core/sdk.d.ts +1 -7
  9. package/dist/core/telemetry-attributes.d.ts +1 -2
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +1045 -1463
  12. package/dist/index.js.map +1 -1
  13. package/dist/plugins/common.d.ts +1 -1
  14. package/dist/plugins/csp-violation.d.ts +0 -8
  15. package/dist/plugins/error.d.ts +1 -5
  16. package/dist/plugins/long-task.d.ts +1 -3
  17. package/dist/plugins/web-vitals.d.ts +1 -4
  18. package/dist/schema/attributes.d.ts +8 -10
  19. package/dist/schema/span.d.ts +2 -0
  20. package/package.json +2 -6
  21. package/skills/bk-rum-otele/SKILL.md +9 -5
  22. package/skills/bk-rum-otele/evals/evals.json +2 -2
  23. package/skills/bk-rum-otele/references/api.md +10 -22
  24. package/skills/bk-rum-otele/references/architecture.md +38 -118
  25. package/skills/bk-rum-otele/references/capabilities.md +26 -28
  26. package/skills/bk-rum-otele/references/concepts.md +14 -106
  27. package/skills/bk-rum-otele/references/configuration.md +25 -66
  28. package/skills/bk-rum-otele/references/custom-plugin.md +10 -13
  29. package/skills/bk-rum-otele/references/data-model.md +23 -95
  30. package/skills/bk-rum-otele/references/getting-started.md +1 -1
  31. package/skills/bk-rum-otele/references/plugins-basic.md +135 -0
  32. package/skills/bk-rum-otele/references/plugins-error-security.md +86 -0
  33. package/skills/bk-rum-otele/references/plugins-experience.md +124 -0
  34. package/skills/bk-rum-otele/references/plugins-network.md +32 -0
  35. package/skills/bk-rum-otele/references/plugins.md +3 -486
  36. package/skills/bk-rum-otele/references/privacy.md +4 -25
  37. package/skills/bk-rum-otele/references/telemetry-reference.md +49 -243
  38. package/skills/bk-rum-otele/references/transport-sampling.md +15 -50
  39. package/skills/bk-rum-otele/references/troubleshooting.md +7 -34
  40. package/dist/core/metric.d.ts +0 -2
  41. package/dist/core/signal.d.ts +0 -3
  42. package/dist/core/throttle.d.ts +0 -20
  43. package/dist/plugins/request-body.d.ts +0 -15
package/dist/index.js CHANGED
@@ -1,52 +1,21 @@
1
- import { ExportResultCode as e, W3CTraceContextPropagator as t, hrTimeToMilliseconds as n, timeInputToHrTime as r } from "@opentelemetry/core";
2
- import { AggregationTemporality as i, MeterProvider as a, PeriodicExportingMetricReader as o } from "@opentelemetry/sdk-metrics";
3
- import { SpanKind as s, SpanStatusCode as c, context as l, propagation as u, trace as d } from "@opentelemetry/api";
4
- import { ZoneContextManager as f } from "@opentelemetry/context-zone";
5
- import { OTLPLogExporter as p } from "@opentelemetry/exporter-logs-otlp-http";
6
- import { AggregationTemporalityPreference as m, OTLPMetricExporter as h } from "@opentelemetry/exporter-metrics-otlp-http";
7
- import { OTLPTraceExporter as g } from "@opentelemetry/exporter-trace-otlp-http";
8
- import { registerInstrumentations as _ } from "@opentelemetry/instrumentation";
9
- import { resourceFromAttributes as v } from "@opentelemetry/resources";
10
- import { BatchLogRecordProcessor as y, LoggerProvider as b } from "@opentelemetry/sdk-logs";
11
- import { BatchSpanProcessor as x, SamplingDecision as S, SimpleSpanProcessor as C } from "@opentelemetry/sdk-trace-base";
12
- import { WebTracerProvider as w } from "@opentelemetry/sdk-trace-web";
13
- import { SeverityNumber as T } from "@opentelemetry/api-logs";
1
+ import { SpanKind as e, SpanStatusCode as t, context as n, propagation as r, trace as i } from "@opentelemetry/api";
2
+ import { ZoneContextManager as a } from "@opentelemetry/context-zone";
3
+ import { W3CTraceContextPropagator as o } from "@opentelemetry/core";
4
+ import { OTLPTraceExporter as s } from "@opentelemetry/exporter-trace-otlp-http";
5
+ import { registerInstrumentations as c } from "@opentelemetry/instrumentation";
6
+ import { resourceFromAttributes as l } from "@opentelemetry/resources";
7
+ import { BatchSpanProcessor as u, SamplingDecision as d, SimpleSpanProcessor as f } from "@opentelemetry/sdk-trace-base";
8
+ import { WebTracerProvider as p } from "@opentelemetry/sdk-trace-web";
14
9
  //#region package.json
15
- var ee = "0.0.20", E = (e) => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `${e}-${Date.now()}-${Math.random().toString(16).slice(2)}`, D = (e) => {
10
+ var m = "0.0.22-beta.1", h = (e) => typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `${e}-${Date.now()}-${Math.random().toString(16).slice(2)}`, g = (e) => {
16
11
  let t = 5381;
17
12
  for (let n = 0; n < e.length; n++) t = t * 33 ^ e.charCodeAt(n);
18
13
  return (t >>> 0).toString(36);
19
- }, te = (e, t) => {
20
- let n = /* @__PURE__ */ new Map(), r = 0, i = (t) => {
21
- if (!(t - r < e)) {
22
- r = t;
23
- for (let [r, i] of n) t - i.windowStart > e && n.delete(r);
24
- }
25
- };
26
- return { allow(r) {
27
- let a = Date.now();
28
- i(a);
29
- let o = n.get(r);
30
- return !o || a - o.windowStart > e ? (n.set(r, {
31
- count: 1,
32
- windowStart: a
33
- }), {
34
- allowed: !0,
35
- count: 1
36
- }) : (o.count += 1, {
37
- allowed: o.count <= t,
38
- count: o.count
39
- });
40
- } };
41
- }, O = {
42
- actionErrorCount: "action.error.count",
43
- actionFrustrationCount: "action.frustration.count",
14
+ }, _ = {
44
15
  actionFrustrationType: "action.frustration.type",
45
16
  actionId: "action.id",
46
17
  actionLoadingTime: "action.loading_time",
47
- actionLongTaskCount: "action.long_task.count",
48
18
  actionName: "action.name",
49
- actionResourceCount: "action.resource.count",
50
19
  actionTargetName: "action.target.name",
51
20
  actionTargetTag: "action.target.tag",
52
21
  actionType: "action.type",
@@ -57,17 +26,15 @@ var ee = "0.0.20", E = (e) => typeof crypto < "u" && typeof crypto.randomUUID ==
57
26
  deviceLogicalProcessorCount: "device.logical_processor_count",
58
27
  deviceMemoryGib: "device.memory_gib",
59
28
  deviceType: "device.type",
29
+ eventId: "event.id",
30
+ eventPhase: "event.phase",
31
+ eventTimestamp: "event.timestamp",
32
+ eventType: "event.type",
60
33
  errorType: "error_type",
61
- exceptionFingerprint: "exception.fingerprint",
62
- exceptionMessageShort: "exception.message_short",
63
- exceptionStackTopFrame: "exception.stack_top_frame",
64
34
  longTaskBlockingDuration: "long_task.blocking_duration",
65
- longTaskCulprit: "long_task.culprit",
66
35
  longTaskDuration: "long_task.duration",
67
36
  longTaskEntryType: "long_task.entry_type",
68
37
  longTaskId: "long_task.id",
69
- longTaskIsFrozenFrame: "long_task.is_frozen_frame",
70
- longTaskScriptCount: "long_task.script.count",
71
38
  longTaskStartTime: "long_task.start_time",
72
39
  networkEffectiveType: "network.effective_type",
73
40
  nextHopProtocol: "resource.protocol",
@@ -78,7 +45,9 @@ var ee = "0.0.20", E = (e) => typeof crypto < "u" && typeof crypto.randomUUID ==
78
45
  osName: "os.name",
79
46
  sessionHasReplay: "session.has_replay",
80
47
  sessionId: "session.id",
48
+ sessionSampleRate: "session.sample_rate",
81
49
  sessionStartTime: "session.start_time",
50
+ sessionType: "session.type",
82
51
  spanSubtype: "span_subtype",
83
52
  spanType: "span_type",
84
53
  userId: "user.id",
@@ -94,41 +63,43 @@ var ee = "0.0.20", E = (e) => typeof crypto < "u" && typeof crypto.randomUUID ==
94
63
  viewLoadingTime: "view.loading_time",
95
64
  viewLoadingType: "view.loading_type",
96
65
  viewName: "view.name",
66
+ viewStartedAt: "view.started_at",
97
67
  viewUrl: "view.url",
98
- viewUrlPathGroup: "view.url_path_group"
68
+ viewUrlPathGroup: "view.url_path_group",
69
+ viewVersion: "view.version"
99
70
  };
100
71
  //#endregion
101
72
  //#region \0@oxc-project+runtime@0.128.0/helpers/typeof.js
102
- function k(e) {
73
+ function v(e) {
103
74
  "@babel/helpers - typeof";
104
- return k = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
75
+ return v = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
105
76
  return typeof e;
106
77
  } : function(e) {
107
78
  return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
108
- }, k(e);
79
+ }, v(e);
109
80
  }
110
81
  //#endregion
111
82
  //#region \0@oxc-project+runtime@0.128.0/helpers/toPrimitive.js
112
- function ne(e, t) {
113
- if (k(e) != "object" || !e) return e;
83
+ function y(e, t) {
84
+ if (v(e) != "object" || !e) return e;
114
85
  var n = e[Symbol.toPrimitive];
115
86
  if (n !== void 0) {
116
87
  var r = n.call(e, t || "default");
117
- if (k(r) != "object") return r;
88
+ if (v(r) != "object") return r;
118
89
  throw TypeError("@@toPrimitive must return a primitive value.");
119
90
  }
120
91
  return (t === "string" ? String : Number)(e);
121
92
  }
122
93
  //#endregion
123
94
  //#region \0@oxc-project+runtime@0.128.0/helpers/toPropertyKey.js
124
- function re(e) {
125
- var t = ne(e, "string");
126
- return k(t) == "symbol" ? t : t + "";
95
+ function b(e) {
96
+ var t = y(e, "string");
97
+ return v(t) == "symbol" ? t : t + "";
127
98
  }
128
99
  //#endregion
129
100
  //#region \0@oxc-project+runtime@0.128.0/helpers/defineProperty.js
130
- function A(e, t, n) {
131
- return (t = re(t)) in e ? Object.defineProperty(e, t, {
101
+ function x(e, t, n) {
102
+ return (t = b(t)) in e ? Object.defineProperty(e, t, {
132
103
  value: n,
133
104
  enumerable: !0,
134
105
  configurable: !0,
@@ -137,7 +108,7 @@ function A(e, t, n) {
137
108
  }
138
109
  //#endregion
139
110
  //#region \0@oxc-project+runtime@0.128.0/helpers/objectSpread2.js
140
- function ie(e, t) {
111
+ function S(e, t) {
141
112
  var n = Object.keys(e);
142
113
  if (Object.getOwnPropertySymbols) {
143
114
  var r = Object.getOwnPropertySymbols(e);
@@ -147,12 +118,12 @@ function ie(e, t) {
147
118
  }
148
119
  return n;
149
120
  }
150
- function j(e) {
121
+ function C(e) {
151
122
  for (var t = 1; t < arguments.length; t++) {
152
123
  var n = arguments[t] == null ? {} : arguments[t];
153
- t % 2 ? ie(Object(n), !0).forEach(function(t) {
154
- A(e, t, n[t]);
155
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ie(Object(n)).forEach(function(t) {
124
+ t % 2 ? S(Object(n), !0).forEach(function(t) {
125
+ x(e, t, n[t]);
126
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : S(Object(n)).forEach(function(t) {
156
127
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
157
128
  });
158
129
  }
@@ -160,7 +131,7 @@ function j(e) {
160
131
  }
161
132
  //#endregion
162
133
  //#region src/plugins/device.ts
163
- var ae = "BK_RUM_DEVICE_ID", oe = 250, se = () => navigator.connection, ce = () => navigator.userAgentData, le = (e) => {
134
+ var w = "BK_RUM_DEVICE_ID", T = 250, ee = () => navigator.connection, te = () => navigator.userAgentData, ne = (e) => {
164
135
  for (let [t, n] of [
165
136
  ["Edge", /Edg\/([\d.]+)/],
166
137
  ["Chrome", /Chrome\/([\d.]+)/],
@@ -177,21 +148,21 @@ var ae = "BK_RUM_DEVICE_ID", oe = 250, se = () => navigator.connection, ce = ()
177
148
  name: "Other",
178
149
  version: void 0
179
150
  };
180
- }, ue = (e, t) => {
151
+ }, re = (e, t) => {
181
152
  let n = `${t == null ? "" : t} ${e}`;
182
153
  return /iphone|ipad|ipod/i.test(n) ? "iOS" : /android/i.test(n) ? "Android" : /mac/i.test(n) ? "macOS" : /win/i.test(n) ? "Windows" : /linux/i.test(n) ? "Linux" : "Other";
183
- }, de = (e) => {
154
+ }, ie = (e) => {
184
155
  let t = null;
185
156
  try {
186
157
  t = window.localStorage.getItem(e);
187
158
  } catch (e) {}
188
159
  if (t) return t;
189
- let n = E("device");
160
+ let n = h("device");
190
161
  try {
191
162
  window.localStorage.setItem(e, n);
192
163
  } catch (e) {}
193
164
  return n;
194
- }, fe = () => {
165
+ }, ae = () => {
195
166
  var e, t;
196
167
  return typeof window > "u" ? {} : {
197
168
  "browser.viewport.width": window.innerWidth,
@@ -199,8 +170,8 @@ var ae = "BK_RUM_DEVICE_ID", oe = 250, se = () => navigator.connection, ce = ()
199
170
  "browser.screen.width": (e = window.screen) == null ? void 0 : e.width,
200
171
  "browser.screen.height": (t = window.screen) == null ? void 0 : t.height
201
172
  };
202
- }, pe = () => {
203
- let e = se();
173
+ }, oe = () => {
174
+ let e = ee();
204
175
  return e ? {
205
176
  "network.effective_type": e.effectiveType,
206
177
  "network.connection_type": e.type,
@@ -208,40 +179,40 @@ var ae = "BK_RUM_DEVICE_ID", oe = 250, se = () => navigator.connection, ce = ()
208
179
  "network.rtt": e.rtt,
209
180
  "network.save_data": e.saveData
210
181
  } : {};
211
- }, me = () => {
182
+ }, se = () => {
212
183
  if (typeof navigator > "u") return {};
213
- let e = ce(), t = navigator.userAgent, n = le(t), r = ue(t, e == null ? void 0 : e.platform), i = e != null && e.mobile || /mobi|android|iphone|ipad|ipod/i.test(t) ? "mobile" : "desktop";
184
+ let e = te(), t = navigator.userAgent, n = ne(t), r = re(t, e == null ? void 0 : e.platform), i = e != null && e.mobile || /mobi|android|iphone|ipad|ipod/i.test(t) ? "mobile" : "desktop";
214
185
  return {
215
- [O.deviceMemoryGib]: navigator.deviceMemory,
216
- [O.deviceLogicalProcessorCount]: navigator.hardwareConcurrency,
217
- [O.browserName]: n.name,
218
- [O.browserVersion]: n.version,
219
- [O.deviceType]: i,
220
- [O.osName]: r
186
+ [_.deviceMemoryGib]: navigator.deviceMemory,
187
+ [_.deviceLogicalProcessorCount]: navigator.hardwareConcurrency,
188
+ [_.browserName]: n.name,
189
+ [_.browserVersion]: n.version,
190
+ [_.deviceType]: i,
191
+ [_.osName]: r
221
192
  };
222
- }, he = (e, t) => {
193
+ }, ce = (e, t) => {
223
194
  let n;
224
195
  return () => {
225
196
  n !== void 0 && window.clearTimeout(n), n = window.setTimeout(() => {
226
197
  n = void 0, e();
227
198
  }, t);
228
199
  };
229
- }, ge = (e = {}) => {
200
+ }, le = (e = {}) => {
230
201
  let t = [];
231
202
  return {
232
203
  name: "device",
233
204
  init(n) {
234
205
  var r;
235
- let i = (r = e.storageKey) == null ? `${ae}_${D(n.config.application.name)}` : r, a = typeof window > "u" || e.persistentId !== !0 ? E("device") : de(i);
236
- if (n.setRuntimeAttributes(j(j(j({ "device.id": a }, n.config.tracking.device === !1 ? me() : {}), fe()), pe())), typeof window > "u") return;
237
- let o = he(() => {
238
- n.setRuntimeAttributes(fe());
239
- }, oe);
206
+ let i = (r = e.storageKey) == null ? `${w}_${g(n.config.application.name)}` : r, a = typeof window > "u" || e.persistentId !== !0 ? h("device") : ie(i);
207
+ if (n.setRuntimeAttributes(C(C(C({ "device.id": a }, n.config.tracking.device === !1 ? se() : {}), ae()), oe())), typeof window > "u") return;
208
+ let o = ce(() => {
209
+ n.setRuntimeAttributes(ae());
210
+ }, T);
240
211
  window.addEventListener("resize", o), window.addEventListener("orientationchange", o), t.push(() => window.removeEventListener("resize", o), () => window.removeEventListener("orientationchange", o));
241
- let s = se();
212
+ let s = ee();
242
213
  if (s && typeof s.addEventListener == "function") {
243
214
  let e = () => {
244
- n.setRuntimeAttributes(pe());
215
+ n.setRuntimeAttributes(oe());
245
216
  };
246
217
  s.addEventListener("change", e), t.push(() => {
247
218
  var t;
@@ -256,129 +227,97 @@ var ae = "BK_RUM_DEVICE_ID", oe = 250, se = () => navigator.connection, ce = ()
256
227
  }
257
228
  }
258
229
  };
259
- }, _e = 60 * 1e3, ve = (e) => e.trim().replace(/\/+$/, ""), ye = {
260
- traces: "rum",
261
- metrics: "metrics",
262
- logs: "logs"
263
- }, be = (e, t) => `${ve(e == null ? "" : e)}/v1/${ye[t]}`, xe = (e, t) => {
264
- var n, r, i;
265
- let a = (n = e.signals) == null ? void 0 : n[t];
266
- if (a === !1) return !1;
267
- let o = a == null ? void 0 : a.endpoint, s = e.token || e.headers || a != null && a.headers ? j(j(j({}, e.token ? { Authorization: `Bearer ${e.token}` } : {}), (r = e.headers) == null ? {} : r), (i = a == null ? void 0 : a.headers) == null ? {} : i) : void 0;
230
+ }, ue = (e) => e.trim().replace(/\/+$/, ""), de = (e) => {
231
+ var t;
232
+ let n = e.token || e.headers ? C(C({}, e.token ? { Authorization: `Bearer ${e.token}` } : {}), (t = e.headers) == null ? {} : t) : void 0;
268
233
  return {
269
- concurrencyLimit: a == null ? void 0 : a.concurrencyLimit,
270
- endpoint: o ? ve(o) : be(e.endpoint, t),
271
- headers: s,
272
- timeoutMillis: a == null ? void 0 : a.timeoutMillis
234
+ concurrencyLimit: e.concurrencyLimit,
235
+ endpoint: `${ue(e.endpoint)}/v1/rum`,
236
+ headers: n,
237
+ timeoutMillis: e.timeoutMillis
273
238
  };
274
- }, Se = (e) => typeof e != "number" || !Number.isFinite(e) ? 1 : Math.max(0, Math.min(1, e)), Ce = (e) => e, we = (e) => {
239
+ }, fe = (e) => typeof e != "number" || !Number.isFinite(e) ? 1 : Math.max(0, Math.min(1, e)), pe = (e) => e, me = (e) => {
275
240
  try {
276
241
  let t = new URL(e, typeof location > "u" ? "http://localhost" : location.href);
277
242
  return t.username = "", t.password = "", t.search = "", t.hash = "", t.href;
278
243
  } catch (t) {
279
244
  return e.replace(/[?#].*$/, "");
280
245
  }
281
- }, Te = (e) => {
246
+ }, he = (e) => {
282
247
  try {
283
248
  return new URL(e, typeof location > "u" ? "http://localhost" : location.href).pathname || "/";
284
249
  } catch (t) {
285
250
  return e || "/";
286
251
  }
287
- }, Ee = (e) => {
252
+ }, ge = (e) => {
288
253
  var t;
289
254
  return {
290
255
  environment: (t = e.environment) == null ? "production" : t,
291
256
  name: e.name,
292
257
  version: e.version
293
258
  };
294
- }, De = (e, t) => j(j(j({ [O.deploymentEnvironmentName]: e.environment }, t === !1 ? {} : me()), {}, {
295
- [O.rumSchemaVersion]: "2",
296
- [O.serviceName]: e.name
297
- }, e.version ? { [O.serviceVersion]: e.version } : {}), {}, {
259
+ }, _e = (e, t, n) => C(C(C({ [_.deploymentEnvironmentName]: e.environment }, t === !1 ? {} : se()), {}, {
260
+ [_.rumSchemaVersion]: "2",
261
+ [_.serviceName]: e.name
262
+ }, e.version ? { [_.serviceVersion]: e.version } : {}), {}, {
263
+ [_.sessionSampleRate]: n,
298
264
  "telemetry.sdk.language": "webjs",
299
265
  "telemetry.sdk.name": "@blueking/open-telemetry",
300
- "telemetry.sdk.version": ee
301
- }), Oe = (e) => {
302
- var t, n;
303
- let r = xe(e, "traces"), i = xe(e, "metrics"), a = xe(e, "logs");
304
- return {
305
- endpoint: ve((t = e.endpoint) == null ? "" : t) || ((n = [
306
- r,
307
- i,
308
- a
309
- ].find((e) => e !== !1)) == null ? void 0 : n.endpoint) || "",
310
- traces: r,
311
- metrics: i,
312
- logs: a
313
- };
314
- }, ke = (e) => {
266
+ "telemetry.sdk.version": m
267
+ }), ve = (e) => {
268
+ var t;
315
269
  if (!e) throw Error("[bk-ot] transport is required.");
316
- let t = [
317
- "traces",
318
- "metrics",
319
- "logs"
320
- ].filter((t) => {
321
- var n;
322
- return ((n = e.signals) == null ? void 0 : n[t]) !== !1;
323
- });
324
- if (!t.length) throw Error("[bk-ot] at least one transport signal must be enabled.");
325
- for (let i of t) {
326
- var n, r;
327
- let t = (n = e.signals) == null ? void 0 : n[i], a = t ? t.endpoint : void 0;
328
- if (!(a != null && a.trim()) && !((r = e.endpoint) != null && r.trim())) throw Error(`[bk-ot] transport.signals.${i}.endpoint or transport.endpoint is required.`);
329
- }
330
- }, Ae = (e) => {
331
- var t, n, r, i, a, o, s, c, l, u, d, f, p;
270
+ if (!((t = e.endpoint) != null && t.trim())) throw Error("[bk-ot] transport.endpoint is required.");
271
+ }, ye = (e) => {
272
+ var t, n, r, i, a, o, s, c, l, u, d;
332
273
  return {
333
274
  beforeSend: (t = e.tracking) == null ? void 0 : t.beforeSend,
334
275
  getPageAttributes: (n = (r = e.context) == null || (r = r.attributes) == null ? void 0 : r.page) == null ? (() => ({
335
276
  "rum.page.host": typeof window > "u" ? "" : window.location.host,
336
277
  "rum.page.path": typeof window > "u" ? "" : window.location.pathname
337
278
  })) : n,
338
- getMetricAttributes: (i = (a = e.context) == null || (a = a.attributes) == null ? void 0 : a.metric) == null ? (() => ({})) : i,
339
- getErrorAttributes: (o = (s = e.context) == null || (s = s.attributes) == null ? void 0 : s.error) == null ? (() => ({})) : o,
340
- getCustomAttributes: (c = (l = e.context) == null || (l = l.attributes) == null ? void 0 : l.custom) == null ? (() => ({})) : c,
279
+ getErrorAttributes: (i = (a = e.context) == null || (a = a.attributes) == null ? void 0 : a.error) == null ? (() => ({})) : i,
280
+ getCustomAttributes: (o = (s = e.context) == null || (s = s.attributes) == null ? void 0 : s.custom) == null ? (() => ({})) : o,
341
281
  getViewPathGroup: (t) => {
342
282
  var n, r, i, a;
343
- return (n = typeof ((r = e.tracking) == null ? void 0 : r.view) == "object" ? (i = (a = e.tracking.view).getPathGroup) == null ? void 0 : i.call(a, t) : void 0) == null ? Te(t) : n;
283
+ return (n = typeof ((r = e.tracking) == null ? void 0 : r.view) == "object" ? (i = (a = e.tracking.view).getPathGroup) == null ? void 0 : i.call(a, t) : void 0) == null ? he(t) : n;
344
284
  },
345
- redactAttributes: (u = (d = e.privacy) == null ? void 0 : d.redactAttributes) == null ? Ce : u,
346
- redactUrl: (f = (p = e.privacy) == null ? void 0 : p.redactUrl) == null ? we : f
285
+ redactAttributes: (c = (l = e.privacy) == null ? void 0 : l.redactAttributes) == null ? pe : c,
286
+ redactUrl: (u = (d = e.privacy) == null ? void 0 : d.redactUrl) == null ? me : u
347
287
  };
348
- }, je = (e) => {
349
- var t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y;
288
+ }, be = (e) => {
289
+ var t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g;
350
290
  if (!(!((t = e.application) == null || (t = t.name) == null) && t.trim())) throw Error("[bk-ot] application.name is required.");
351
- ke(e.transport);
352
- let b = Ee(e.application), x = typeof ((n = e.tracking) == null ? void 0 : n.view) == "object" ? e.tracking.view : void 0, S = (r = e.transport.signals) == null ? void 0 : r.traces, C = (i = e.transport.signals) == null ? void 0 : i.metrics, w = Ae(e);
291
+ ve(e.transport);
292
+ let _ = ge(e.application), v = typeof ((n = e.tracking) == null ? void 0 : n.view) == "object" ? e.tracking.view : void 0, y = ye(e), b = fe((r = e.session) == null ? void 0 : r.sampleRate);
353
293
  return {
354
- application: b,
355
- autoStart: (a = e.autoStart) == null ? !0 : a,
356
- debug: (o = e.debug) == null ? !1 : o,
357
- enabled: (s = e.enabled) == null ? !0 : s,
294
+ application: _,
295
+ autoStart: (i = e.autoStart) == null ? !0 : i,
296
+ debug: (a = e.debug) == null ? !1 : a,
297
+ enabled: (o = e.enabled) == null ? !0 : o,
358
298
  extensions: {
359
- instrumentations: [...(c = (l = e.extensions) == null ? void 0 : l.instrumentations) == null ? [] : c],
360
- plugins: [...(u = (d = e.extensions) == null ? void 0 : d.plugins) == null ? [] : u]
299
+ instrumentations: [...(s = (c = e.extensions) == null ? void 0 : c.instrumentations) == null ? [] : s],
300
+ plugins: [...(l = (u = e.extensions) == null ? void 0 : u.plugins) == null ? [] : l]
361
301
  },
362
- hooks: w,
363
- metricIntervalMillis: C ? (f = C.intervalMillis) == null ? _e : f : _e,
364
- resourceAttributes: w.redactAttributes(De(b, (p = e.tracking) == null ? void 0 : p.device)),
365
- session: j(j({}, e.session), {}, { sampleRate: Se((m = e.session) == null ? void 0 : m.sampleRate) }),
366
- spanBatch: S ? S.batch : void 0,
367
- spanProcessor: S ? (h = S.processor) == null ? "batch" : h : "batch",
368
- tracking: (g = e.tracking) == null ? {} : g,
369
- trackingConsent: (_ = (v = e.privacy) == null ? void 0 : v.trackingConsent) == null ? "granted" : _,
370
- transport: Oe(e.transport),
371
- user: (y = e.context) == null ? void 0 : y.user,
302
+ hooks: y,
303
+ resourceAttributes: y.redactAttributes(_e(_, (d = e.tracking) == null ? void 0 : d.device, b)),
304
+ session: C(C({}, e.session), {}, { sampleRate: b }),
305
+ spanBatch: e.transport.batch,
306
+ spanProcessor: (f = e.transport.processor) == null ? "batch" : f,
307
+ tracking: (p = e.tracking) == null ? {} : p,
308
+ trackingConsent: (m = (h = e.privacy) == null ? void 0 : h.trackingConsent) == null ? "granted" : m,
309
+ transport: de(e.transport),
310
+ user: (g = e.context) == null ? void 0 : g.user,
372
311
  view: {
373
- excludedActivityUrls: x == null ? void 0 : x.excludedActivityUrls,
374
- loadingTime: (x == null ? void 0 : x.loadingTime) !== !1,
375
- tracking: (x == null ? void 0 : x.tracking) === "manual" ? "manual" : "auto"
312
+ excludedActivityUrls: v == null ? void 0 : v.excludedActivityUrls,
313
+ loadingTime: (v == null ? void 0 : v.loadingTime) !== !1,
314
+ tracking: (v == null ? void 0 : v.tracking) === "manual" ? "manual" : "auto"
376
315
  }
377
316
  };
378
317
  };
379
318
  //#endregion
380
319
  //#region \0@oxc-project+runtime@0.128.0/helpers/asyncToGenerator.js
381
- function Me(e, t, n, r, i, a, o) {
320
+ function xe(e, t, n, r, i, a, o) {
382
321
  try {
383
322
  var s = e[a](o), c = s.value;
384
323
  } catch (e) {
@@ -387,16 +326,16 @@ function Me(e, t, n, r, i, a, o) {
387
326
  }
388
327
  s.done ? t(c) : Promise.resolve(c).then(r, i);
389
328
  }
390
- function M(e) {
329
+ function E(e) {
391
330
  return function() {
392
331
  var t = this, n = arguments;
393
332
  return new Promise(function(r, i) {
394
333
  var a = e.apply(t, n);
395
334
  function o(e) {
396
- Me(a, r, i, o, s, "next", e);
335
+ xe(a, r, i, o, s, "next", e);
397
336
  }
398
337
  function s(e) {
399
- Me(a, r, i, o, s, "throw", e);
338
+ xe(a, r, i, o, s, "throw", e);
400
339
  }
401
340
  o(void 0);
402
341
  });
@@ -404,13 +343,13 @@ function M(e) {
404
343
  }
405
344
  //#endregion
406
345
  //#region src/core/plugin.ts
407
- var Ne = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !== !1, Pe = (e) => e, Fe = class {
346
+ var Se = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !== !1, Ce = (e) => e, we = class {
408
347
  constructor(e) {
409
- A(this, "plugins", void 0), A(this, "startedPlugins", []), this.plugins = e;
348
+ x(this, "plugins", void 0), x(this, "startedPlugins", []), this.plugins = e;
410
349
  }
411
350
  flush() {
412
351
  var e = this;
413
- return M(function* () {
352
+ return E(function* () {
414
353
  yield Promise.all(e.startedPlugins.map((e) => Promise.resolve().then(() => {
415
354
  var t;
416
355
  return (t = e.flush) == null ? void 0 : t.call(e);
@@ -419,7 +358,7 @@ var Ne = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
419
358
  }
420
359
  shutdown() {
421
360
  var e = this;
422
- return M(function* () {
361
+ return E(function* () {
423
362
  let t = [...e.startedPlugins].reverse();
424
363
  for (let e of t) {
425
364
  var n;
@@ -430,8 +369,8 @@ var Ne = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
430
369
  }
431
370
  start(e) {
432
371
  var t = this;
433
- return M(function* () {
434
- for (let r of t.plugins) if (Ne(r, e.config)) try {
372
+ return E(function* () {
373
+ for (let r of t.plugins) if (Se(r, e.config)) try {
435
374
  yield r.init(e), t.startedPlugins.push(r);
436
375
  } catch (t) {
437
376
  if (e.config.debug) {
@@ -441,103 +380,38 @@ var Ne = (e, t) => typeof e.enabled == "function" ? e.enabled(t) : e.enabled !==
441
380
  }
442
381
  })();
443
382
  }
444
- }, N = "bk.rum.sampled", Ie = (e) => {
383
+ }, D = "bk.rum.sampled", Te = (e) => {
445
384
  let t = 2166136261;
446
385
  for (let n = 0; n < e.length; n += 1) t = Math.imul(t ^ e.charCodeAt(n), 16777619);
447
386
  return t += t << 13, t ^= t >>> 7, t += t << 3, t ^= t >>> 17, t += t << 5, (t >>> 0) / 4294967296;
448
- }, Le = ({ application: e, session: t }, n) => t.sampleRate <= 0 ? !1 : t.sampleRate >= 1 ? !0 : Ie(`${e.name}\0${n}`) < t.sampleRate, Re = () => typeof window > "u" ? "http://localhost" : window.location.origin, P = (e) => {
387
+ }, Ee = ({ application: e, session: t }, n) => t.sampleRate <= 0 ? !1 : t.sampleRate >= 1 ? !0 : Te(`${e.name}\0${n}`) < t.sampleRate, De = () => typeof window > "u" ? "http://localhost" : window.location.origin, O = (e) => {
449
388
  try {
450
- return new URL(e, Re()).href;
389
+ return new URL(e, De()).href;
451
390
  } catch (t) {
452
391
  return e;
453
392
  }
454
- }, ze = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, Be = (e, t) => {
455
- let n = (e) => ze(e.replace(/[?#].*$/, ""));
393
+ }, Oe = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, ke = (e, t) => {
394
+ let n = (e) => Oe(e.replace(/[?#].*$/, ""));
456
395
  return n(e) === n(t);
457
- }, Ve = (e, t) => {
458
- let n = P(t);
459
- return [
460
- e.transport.traces,
461
- e.transport.metrics,
462
- e.transport.logs
463
- ].filter((e) => e !== !1).some((e) => Be(n, P(e.endpoint)));
464
- }, He = (e, t) => Ve(e, t), Ue = (e, t) => typeof e == "function" ? e(t) : typeof e == "string" ? t.includes(e) : (e.lastIndex = 0, e.test(t)), F = (e, t) => (Array.isArray(e) ? e : e ? [e] : []).some((e) => Ue(e, t)), We = (e) => typeof e.tracking.request == "object" ? e.tracking.request : void 0, Ge = (e, t) => {
396
+ }, Ae = (e, t) => ke(O(t), O(e.transport.endpoint)), k = (e, t) => Ae(e, t), je = (e, t) => typeof e == "function" ? e(t) : typeof e == "string" ? t.includes(e) : (e.lastIndex = 0, e.test(t)), A = (e, t) => (Array.isArray(e) ? e : e ? [e] : []).some((e) => je(e, t)), Me = (e) => typeof e.tracking.request == "object" ? e.tracking.request : void 0, Ne = (e, t) => {
465
397
  var n;
466
- return He(e, t) || F((n = We(e)) == null ? void 0 : n.excludedUrls, P(t));
467
- }, Ke = (e, t) => {
398
+ return k(e, t) || A((n = Me(e)) == null ? void 0 : n.excludedUrls, O(t));
399
+ }, Pe = (e, t) => {
468
400
  var n;
469
- return e.transport.traces !== !1 && F((n = We(e)) == null ? void 0 : n.allowedTracingUrls, P(t));
470
- };
471
- //#endregion
472
- //#region \0@oxc-project+runtime@0.128.0/helpers/objectWithoutPropertiesLoose.js
473
- function qe(e, t) {
474
- if (e == null) return {};
475
- var n = {};
476
- for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
477
- if (t.includes(r)) continue;
478
- n[r] = e[r];
479
- }
480
- return n;
481
- }
482
- //#endregion
483
- //#region \0@oxc-project+runtime@0.128.0/helpers/objectWithoutProperties.js
484
- function Je(e, t) {
485
- if (e == null) return {};
486
- var n, r, i = qe(e, t);
487
- if (Object.getOwnPropertySymbols) {
488
- var a = Object.getOwnPropertySymbols(e);
489
- for (r = 0; r < a.length; r++) n = a[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (i[n] = e[n]);
490
- }
491
- return i;
492
- }
493
- //#endregion
494
- //#region src/core/processor.ts
495
- var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
496
- for (let n of Ye) {
401
+ return A((n = Me(e)) == null ? void 0 : n.allowedTracingUrls, O(t));
402
+ }, Fe = ["http.url", "url.full"], Ie = "bk.rum.request.discard", Le = (e) => {
403
+ for (let n of Fe) {
497
404
  var t;
498
405
  let r = (t = e.attributes) == null ? void 0 : t[n];
499
406
  if (typeof r == "string") return r;
500
407
  }
501
- }, Qe = (e) => {
502
- let t = e == null ? void 0 : e[O.sessionId];
408
+ }, Re = (e) => {
409
+ let t = e == null ? void 0 : e[_.sessionId];
503
410
  return typeof t == "string" && t.length > 0;
504
- }, $e = (e) => {
505
- let t = e == null ? void 0 : e[O.viewId];
411
+ }, ze = (e) => {
412
+ let t = e == null ? void 0 : e[_.viewId];
506
413
  return typeof t == "string" && t.length > 0;
507
- }, et = (e) => (e == null ? void 0 : e["bk.rum.sampled"]) === !0 && Qe(e) && $e(e), tt = class {
508
- constructor(e, t) {
509
- this.inner = e, this.config = t;
510
- }
511
- enabled(e) {
512
- var t, n, r;
513
- return (t = (n = (r = this.inner).enabled) == null ? void 0 : n.call(r, e)) == null ? !0 : t;
514
- }
515
- forceFlush() {
516
- return this.inner.forceFlush();
517
- }
518
- onEmit(e, t) {
519
- var n;
520
- let r = e.body === "session.start" || e.body === "session.rotate";
521
- if (et(e.attributes) || r && ((n = e.attributes) == null ? void 0 : n["bk.rum.sampled"]) === !0 && Qe(e.attributes)) {
522
- delete e.attributes[N];
523
- try {
524
- var i, a, o, s, c;
525
- if (((i = this.config) == null || (o = (a = i.hooks).beforeSend) == null ? void 0 : o.call(a, {
526
- attributes: e.attributes,
527
- name: (s = e.eventName) == null ? String((c = e.body) == null ? "" : c) : s,
528
- signal: "log"
529
- })) === !1) return;
530
- } catch (e) {
531
- var l, u;
532
- (l = this.config) != null && l.debug && ((u = globalThis.console) == null || u.warn("[bk-ot] tracking.beforeSend failed:", e));
533
- }
534
- this.inner.onEmit(e, t);
535
- }
536
- }
537
- shutdown() {
538
- return this.inner.shutdown();
539
- }
540
- }, nt = class {
414
+ }, Be = (e) => (e == null ? void 0 : e["bk.rum.sampled"]) === !0 && Re(e) && ze(e), Ve = class {
541
415
  constructor(e, t, n) {
542
416
  this.inner = e, this.config = t, this.getRuntimeAttributes = n;
543
417
  }
@@ -545,9 +419,9 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
545
419
  return this.inner.forceFlush();
546
420
  }
547
421
  onEnd(e) {
548
- let t = Ze(e);
549
- if (!(e.attributes["bk.rum.request.discard"] === !0 || t && Ve(this.config, t) || !et(e.attributes))) {
550
- delete e.attributes[N];
422
+ let t = Le(e);
423
+ if (!(e.attributes["bk.rum.request.discard"] === !0 || t && Ae(this.config, t) || !Be(e.attributes) && !(e.name === "browser.session" && e.attributes["bk.rum.sampled"] === !0 && Re(e.attributes)))) {
424
+ delete e.attributes[D];
551
425
  try {
552
426
  var n, r;
553
427
  if (((n = this.config.hooks) == null || (r = n.beforeSend) == null ? void 0 : r.call(n, {
@@ -571,34 +445,9 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
571
445
  shutdown() {
572
446
  return this.inner.shutdown();
573
447
  }
574
- }, rt = (e) => j(j({}, e), {}, { dataPoints: e.dataPoints.filter((e) => e.attributes[N] === !0).map((e) => {
575
- let t = e.attributes, { [N]: n } = t, r = Je(t, [N].map(re));
576
- return j(j({}, e), {}, { attributes: r });
577
- }) }), it = class {
578
- constructor(e) {
579
- this.inner = e;
580
- }
581
- export(t, n) {
582
- let r = j(j({}, t), {}, { scopeMetrics: t.scopeMetrics.map((e) => j(j({}, e), {}, { metrics: e.metrics.map(rt).filter((e) => e.dataPoints.length > 0) })).filter((e) => e.metrics.length > 0) });
583
- if (r.scopeMetrics.length === 0) {
584
- n({ code: e.SUCCESS });
585
- return;
586
- }
587
- this.inner.export(r, n);
588
- }
589
- forceFlush() {
590
- return this.inner.forceFlush();
591
- }
592
- selectAggregationTemporality(e) {
593
- var t, n, r;
594
- return (t = (n = (r = this.inner).selectAggregationTemporality) == null ? void 0 : n.call(r, e)) == null ? i.CUMULATIVE : t;
595
- }
596
- shutdown() {
597
- return this.inner.shutdown();
598
- }
599
- }, at = new Set([...Object.values(O), N]), ot = class {
448
+ }, He = new Set([...Object.values(_), D]), Ue = class {
600
449
  constructor(e = {}, t) {
601
- A(this, "actionHistory", []), A(this, "attributes", {}), A(this, "queuedViewCommands", []), A(this, "recordAssociation", (e, t, n, r) => {
450
+ x(this, "actionHistory", []), x(this, "attributes", {}), x(this, "queuedViewCommands", []), x(this, "recordAssociation", (e, t, n, r) => {
602
451
  let i = e.at(-1);
603
452
  if (i && i.endedAt === void 0 && (i.endedAt = Math.max(i.startedAt, n)), r) {
604
453
  let r = {};
@@ -612,19 +461,19 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
612
461
  });
613
462
  }
614
463
  e.length > 100 && e.splice(0, e.length - 100);
615
- }), A(this, "sessionHistory", []), A(this, "sessionLifecycleListeners", /* @__PURE__ */ new Set()), A(this, "setOptionalAttribute", (e, t) => {
464
+ }), x(this, "sessionHistory", []), x(this, "sessionLifecycleListeners", /* @__PURE__ */ new Set()), x(this, "setOptionalAttribute", (e, t) => {
616
465
  if (t === void 0) {
617
466
  delete this.attributes[e];
618
467
  return;
619
468
  }
620
469
  this.attributes[e] = t;
621
- }), A(this, "user", {}), A(this, "view", {}), A(this, "viewAttributeKeys", /* @__PURE__ */ new Set()), A(this, "viewChangeListeners", /* @__PURE__ */ new Set()), A(this, "viewCommandListeners", /* @__PURE__ */ new Set()), A(this, "viewHistory", []), A(this, "viewScopedAttributeKeys", /* @__PURE__ */ new Set()), A(this, "dispatchViewCommand", (e) => {
470
+ }), x(this, "user", {}), x(this, "view", {}), x(this, "viewAttributeKeys", /* @__PURE__ */ new Set()), x(this, "viewChangeListeners", /* @__PURE__ */ new Set()), x(this, "viewCommandListeners", /* @__PURE__ */ new Set()), x(this, "viewHistory", []), x(this, "viewScopedAttributeKeys", /* @__PURE__ */ new Set()), x(this, "dispatchViewCommand", (e) => {
622
471
  if (this.viewCommandListeners.size === 0) {
623
472
  this.queuedViewCommands.push(e);
624
473
  return;
625
474
  }
626
475
  this.viewCommandListeners.forEach((t) => t(e));
627
- }), A(this, "getAttributes", () => j({}, this.attributes)), A(this, "getAttributesAt", (e) => {
476
+ }), x(this, "getAttributes", () => C({}, this.attributes)), x(this, "getAttributesAt", (e) => {
628
477
  if (!Number.isFinite(e)) return this.getAttributes();
629
478
  let t = this.getAttributes(), n = (n, r) => {
630
479
  for (let e of r) delete t[e];
@@ -632,16 +481,16 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
632
481
  i && Object.assign(t, i.attributes);
633
482
  };
634
483
  return n(this.sessionHistory, [
635
- O.sessionId,
636
- O.sessionHasReplay,
637
- N
638
- ]), n(this.viewHistory, this.viewScopedAttributeKeys), n(this.actionHistory, [O.actionId]), t;
639
- }), A(this, "getUser", () => j({}, this.user)), A(this, "getView", () => j({}, this.view)), A(this, "isSessionActive", () => typeof this.attributes[O.sessionId] == "string"), A(this, "isViewActive", () => typeof this.attributes[O.viewId] == "string"), A(this, "notifySessionLifecycle", (e) => {
484
+ _.sessionId,
485
+ _.sessionHasReplay,
486
+ D
487
+ ]), n(this.viewHistory, this.viewScopedAttributeKeys), n(this.actionHistory, [_.actionId]), t;
488
+ }), x(this, "getUser", () => C({}, this.user)), x(this, "getView", () => C({}, this.view)), x(this, "isSessionActive", () => typeof this.attributes[_.sessionId] == "string"), x(this, "isViewActive", () => typeof this.attributes[_.viewId] == "string"), x(this, "notifySessionLifecycle", (e) => {
640
489
  this.sessionLifecycleListeners.forEach((t) => t(e));
641
- }), A(this, "onSessionLifecycle", (e) => (this.sessionLifecycleListeners.add(e), () => this.sessionLifecycleListeners.delete(e))), A(this, "onViewChange", (e) => (this.viewChangeListeners.add(e), this.view.id && e(this.getView()), () => this.viewChangeListeners.delete(e))), A(this, "onViewCommand", (e) => {
490
+ }), x(this, "onSessionLifecycle", (e) => (this.sessionLifecycleListeners.add(e), () => this.sessionLifecycleListeners.delete(e))), x(this, "onViewChange", (e) => (this.viewChangeListeners.add(e), this.view.id && e(this.getView()), () => this.viewChangeListeners.delete(e))), x(this, "onViewCommand", (e) => {
642
491
  for (this.viewCommandListeners.add(e); this.queuedViewCommands.length;) e(this.queuedViewCommands.shift());
643
492
  return () => this.viewCommandListeners.delete(e);
644
- }), A(this, "setAttributes", (e, t = Date.now()) => {
493
+ }), x(this, "setAttributes", (e, t = Date.now()) => {
645
494
  for (let [t, n] of Object.entries(e)) {
646
495
  if (n === void 0) {
647
496
  delete this.attributes[t];
@@ -649,43 +498,43 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
649
498
  }
650
499
  this.attributes[t] = n;
651
500
  }
652
- if (O.sessionId in e && this.recordAssociation(this.sessionHistory, [
653
- O.sessionId,
654
- O.sessionHasReplay,
655
- N
656
- ], t, typeof this.attributes[O.sessionId] == "string"), O.actionId in e) {
657
- let e = this.attributes[O.actionId];
658
- this.recordAssociation(this.actionHistory, [O.actionId], t, Array.isArray(e) ? e.length > 0 : typeof e == "string");
501
+ if (_.sessionId in e && this.recordAssociation(this.sessionHistory, [
502
+ _.sessionId,
503
+ _.sessionHasReplay,
504
+ D
505
+ ], t, typeof this.attributes[_.sessionId] == "string"), _.actionId in e) {
506
+ let e = this.attributes[_.actionId];
507
+ this.recordAssociation(this.actionHistory, [_.actionId], t, Array.isArray(e) ? e.length > 0 : typeof e == "string");
659
508
  }
660
- }), A(this, "setUser", (e) => {
661
- if (this.user = j(j({}, this.user), e), "id" in e) {
509
+ }), x(this, "setUser", (e) => {
510
+ if (this.user = C(C({}, this.user), e), "id" in e) {
662
511
  if (e.id === void 0) {
663
- delete this.attributes[O.userId];
512
+ delete this.attributes[_.userId];
664
513
  return;
665
514
  }
666
- this.attributes[O.userId] = e.id;
515
+ this.attributes[_.userId] = e.id;
667
516
  }
668
- }), A(this, "setView", (e, t = ((t) => (t = e.startedAt) == null ? Date.now() : t)()) => {
517
+ }), x(this, "setView", (e, t = ((t) => (t = e.startedAt) == null ? Date.now() : t)()) => {
669
518
  var n;
670
519
  this.viewAttributeKeys.forEach((e) => delete this.attributes[e]), this.viewAttributeKeys.clear();
671
520
  let r = {};
672
- for (let [t, i] of Object.entries((n = e.attributes) == null ? {} : n)) i === void 0 || at.has(t) || (r[t] = i, this.attributes[t] = i, this.viewAttributeKeys.add(t), this.viewScopedAttributeKeys.add(t));
673
- this.view = j(j({}, e), {}, { attributes: r }), this.setOptionalAttribute(O.viewId, e.id), this.setOptionalAttribute(O.viewUrl, e.url), this.setOptionalAttribute(O.viewUrlPathGroup, e.urlPathGroup), this.setOptionalAttribute(O.viewLoadingType, e.loadingType), this.setOptionalAttribute(O.viewName, e.name), [
674
- O.viewId,
675
- O.viewUrl,
676
- O.viewUrlPathGroup,
677
- O.viewLoadingType,
678
- O.viewName
521
+ for (let [t, i] of Object.entries((n = e.attributes) == null ? {} : n)) i === void 0 || He.has(t) || (r[t] = i, this.attributes[t] = i, this.viewAttributeKeys.add(t), this.viewScopedAttributeKeys.add(t));
522
+ this.view = C(C({}, e), {}, { attributes: r }), this.setOptionalAttribute(_.viewId, e.id), this.setOptionalAttribute(_.viewUrl, e.url), this.setOptionalAttribute(_.viewUrlPathGroup, e.urlPathGroup), this.setOptionalAttribute(_.viewLoadingType, e.loadingType), this.setOptionalAttribute(_.viewName, e.name), [
523
+ _.viewId,
524
+ _.viewUrl,
525
+ _.viewUrlPathGroup,
526
+ _.viewLoadingType,
527
+ _.viewName
679
528
  ].forEach((e) => this.viewScopedAttributeKeys.add(e)), this.recordAssociation(this.viewHistory, this.viewScopedAttributeKeys, t, typeof e.id == "string" && e.id.length > 0), this.viewChangeListeners.forEach((e) => e(this.getView()));
680
529
  }), this.setAttributes(e), t && this.setUser(t);
681
530
  }
682
- }, I = (e, t) => e.isSampled() && e.config.transport[t] !== !1, L = {
531
+ }, j = {
683
532
  abort: "abort",
684
533
  error: "error",
685
534
  success: "success",
686
535
  timeout: "timeout",
687
536
  warning: "warning"
688
- }, R = {
537
+ }, M = {
689
538
  action: "action",
690
539
  custom: "custom",
691
540
  document: "document",
@@ -693,8 +542,10 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
693
542
  longtask: "longtask",
694
543
  resource: "resource",
695
544
  route: "route",
696
- vital: "vital"
697
- }, st = (e) => e === 408 || e === 504 ? L.timeout : typeof e == "number" && e >= 400 ? L.error : L.success, ct = (e) => e === 408 || e === 504 ? "network_timeout" : typeof e != "number" || e < 400 ? "none" : e >= 500 ? "http_5xx" : "http_4xx", lt = (e) => e === "good" ? L.success : L.warning, ut = (e) => {
545
+ session: "session",
546
+ vital: "vital",
547
+ websocket: "websocket"
548
+ }, We = (e) => e === 408 || e === 504 ? j.timeout : typeof e == "number" && e >= 400 ? j.error : j.success, Ge = (e) => e === 408 || e === 504 ? "network_timeout" : typeof e != "number" || e < 400 ? "none" : e >= 500 ? "http_5xx" : "http_4xx", Ke = (e) => e === "good" ? j.success : j.warning, qe = (e) => {
698
549
  if (!e) return {};
699
550
  try {
700
551
  let t = new URL(e, typeof location > "u" ? "http://localhost" : location.href);
@@ -705,39 +556,39 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
705
556
  } catch (e) {
706
557
  return {};
707
558
  }
708
- }, z = ({ errorType: e = "none", result: t = L.success, spanSubtype: n, spanType: r }) => ({
709
- [O.spanType]: r,
710
- [O.spanSubtype]: n,
711
- [O.result]: t,
712
- [O.errorType]: e
713
- }), dt = ({ initiatorType: e = "other", method: t, networkError: n = !1, responseStatus: r, transferSize: i, url: a }) => {
714
- let o = ut(a), s = n ? L.error : typeof r == "number" ? st(r) : L.success, c = t == null ? void 0 : t.toUpperCase();
715
- return j(j(j(j(j(j({}, z({
716
- errorType: n ? "network" : typeof r == "number" ? ct(r) : "none",
559
+ }, N = ({ errorType: e = "none", result: t = j.success, spanSubtype: n, spanType: r }) => ({
560
+ [_.spanType]: r,
561
+ [_.spanSubtype]: n,
562
+ [_.result]: t,
563
+ [_.errorType]: e
564
+ }), Je = ({ initiatorType: e = "other", method: t, networkError: n = !1, responseStatus: r, transferSize: i, url: a }) => {
565
+ let o = qe(a), s = n ? j.error : typeof r == "number" ? We(r) : j.success, c = t == null ? void 0 : t.toUpperCase();
566
+ return C(C(C(C(C(C({}, N({
567
+ errorType: n ? "network" : typeof r == "number" ? Ge(r) : "none",
717
568
  result: s,
718
569
  spanSubtype: e,
719
- spanType: R.resource
570
+ spanType: M.resource
720
571
  })), o.serverAddress ? { "server.address": o.serverAddress } : {}), o.serverPort === void 0 ? {} : { "server.port": o.serverPort }), {}, { "resource.type": e }, c ? { "http.request.method": c } : {}), typeof i == "number" ? { "resource.size": i } : {}), typeof r == "number" ? { "http.response.status_code": r } : {});
721
- }, ft = 100, pt = 100, mt = 1e3, ht = 100, gt = 1e4, _t = "data-bk-action-name", vt = 100, yt = 10, bt = (e) => e.replace(/\s+/g, " ").trim().slice(0, vt), xt = (e) => {
572
+ }, Ye = 100, Xe = 100, Ze = 1e3, Qe = 100, $e = 1e4, et = "data-bk-action-name", tt = 100, nt = 10, P = (e) => e.replace(/\s+/g, " ").trim().slice(0, tt), F = (e) => {
722
573
  var t;
723
574
  if (e.parentElement) return e.parentElement;
724
575
  let n = (t = e.getRootNode) == null ? void 0 : t.call(e);
725
576
  return typeof ShadowRoot < "u" && n instanceof ShadowRoot ? n.host : null;
726
- }, St = (e, t) => {
577
+ }, rt = (e, t) => {
727
578
  let n = e;
728
579
  for (; n;) {
729
580
  let e = n.getAttribute(t);
730
- if (e) return bt(e);
731
- n = xt(n);
581
+ if (e) return P(e);
582
+ n = F(n);
732
583
  }
733
- }, Ct = (e) => {
584
+ }, I = (e) => {
734
585
  var t;
735
- return e.isContentEditable ? "" : bt((t = e.textContent) == null ? "" : t);
736
- }, wt = (e) => {
586
+ return e.isContentEditable ? "" : P((t = e.textContent) == null ? "" : t);
587
+ }, it = (e) => {
737
588
  var t, n;
738
589
  let r = e, i = (t = r.labels) == null ? void 0 : t[0];
739
590
  if (i) {
740
- let e = Ct(i);
591
+ let e = I(i);
741
592
  if (e) return e;
742
593
  }
743
594
  let a = e.tagName.toLowerCase(), o = (n = e.getAttribute("type")) == null ? void 0 : n.toLowerCase();
@@ -747,11 +598,11 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
747
598
  "submit"
748
599
  ].includes(o == null ? "" : o)) {
749
600
  var s;
750
- let e = bt((s = r.value) == null ? "" : s);
601
+ let e = P((s = r.value) == null ? "" : s);
751
602
  if (e) return e;
752
603
  }
753
604
  if (a === "button" || a === "label" || e.getAttribute("role") === "button") {
754
- let t = Ct(e);
605
+ let t = I(e);
755
606
  if (t) return t;
756
607
  }
757
608
  for (let t of [
@@ -762,39 +613,39 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
762
613
  "placeholder"
763
614
  ]) {
764
615
  var c;
765
- let n = bt((c = e.getAttribute(t)) == null ? "" : c);
616
+ let n = P((c = e.getAttribute(t)) == null ? "" : c);
766
617
  if (n) return n;
767
618
  }
768
- }, Tt = (e, t = _t, n = !1) => {
769
- let r = St(e, t);
619
+ }, at = (e, t = et, n = !1) => {
620
+ let r = rt(e, t);
770
621
  if (r) return r;
771
622
  if (!n) return e.tagName.toLowerCase();
772
623
  let i = e, a = 0;
773
- for (; i && a <= yt;) {
624
+ for (; i && a <= nt;) {
774
625
  let e = i.tagName.toLowerCase();
775
626
  if (e === "body" || e === "html" || e === "head") break;
776
- let t = wt(i);
627
+ let t = it(i);
777
628
  if (t) return t;
778
629
  if (e === "form") break;
779
- i = xt(i), a += 1;
630
+ i = F(i), a += 1;
780
631
  }
781
- for (i = e, a = 0; i && a <= yt;) {
632
+ for (i = e, a = 0; i && a <= nt;) {
782
633
  let e = i.tagName.toLowerCase();
783
634
  if (e === "body" || e === "html" || e === "head") break;
784
- let t = Ct(i);
635
+ let t = I(i);
785
636
  if (t) return t;
786
637
  if (e === "form") break;
787
- i = xt(i), a += 1;
638
+ i = F(i), a += 1;
788
639
  }
789
640
  return e.tagName.toLowerCase();
790
- }, Et = (e) => {
641
+ }, ot = (e) => {
791
642
  var t;
792
643
  let n = (t = e.composedPath) == null ? void 0 : t.call(e)[0];
793
644
  return n instanceof Element ? n : e.target instanceof Element ? e.target : void 0;
794
- }, Dt = (e) => {
645
+ }, st = (e) => {
795
646
  let t = e.timeStamp;
796
647
  return !Number.isFinite(t) || t <= 0 ? Date.now() : t > 0xe8d4a51000 ? t : typeof performance > "u" ? Date.now() : performance.timeOrigin + t;
797
- }, Ot = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t, kt = (e) => {
648
+ }, ct = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t, lt = (e) => {
798
649
  let t = e;
799
650
  if (t.tagName.toLowerCase() === "label" && t.hasAttribute("for")) {
800
651
  var n;
@@ -814,90 +665,89 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
814
665
  "submit"
815
666
  ].includes((r = (i = t.getAttribute("type")) == null ? void 0 : i.toLowerCase()) == null ? "text" : r);
816
667
  }
817
- t = xt(t);
668
+ t = F(t);
818
669
  }
819
670
  return !1;
820
- }, At = (e = {}) => {
821
- let t = [], n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = e.actionNameAttribute || _t, a = Ot(e.maxDuration, gt), o = [], s, c = () => {
822
- s == null || s.setRuntimeAttributes({ [O.actionId]: n.size ? [...n.keys()] : void 0 });
823
- }, l = (e) => !e.hadActivity && !e.userActivity.input && !e.userActivity.scroll && !e.userActivity.selection && !kt(e.target), u = (e) => {
671
+ }, ut = (e = {}) => {
672
+ let t = [], n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = e.actionNameAttribute || et, a = ct(e.maxDuration, $e), o = [], s, c = () => {
673
+ s == null || s.setRuntimeAttributes({ [_.actionId]: n.size ? [...n.keys()] : void 0 });
674
+ }, l = (e) => !e.hadActivity && !e.userActivity.input && !e.userActivity.scroll && !e.userActivity.selection && !lt(e.target), u = (e) => {
824
675
  var t;
825
676
  if (!r.delete(e) || !s || !e.completed || e.discardedByRage) return;
826
- clearTimeout(e.reportTimer), e.counts.error && e.frustrations.add("error_click"), ((t = e.rageSources) == null ? [e] : t).some(l) && e.frustrations.add("dead_click");
677
+ clearTimeout(e.reportTimer), e.hadError && e.frustrations.add("error_click"), ((t = e.rageSources) == null ? [e] : t).some(l) && e.frustrations.add("dead_click");
827
678
  let n = [
828
679
  "rage_click",
829
680
  "dead_click",
830
681
  "error_click"
831
- ].filter((t) => e.frustrations.has(t)), { endTime: i, hasLoadingTime: a } = e.completed, o = Math.max(0, i - e.startTime), c = e.counts.error > 0 || n.length > 0;
832
- s.startSpan("action.click", j(j(j(j(j({}, s.config.hooks.getPageAttributes()), z({
833
- errorType: e.counts.error ? "js" : n.length ? "frustration" : "none",
834
- result: c ? L.warning : L.success,
682
+ ].filter((t) => e.frustrations.has(t)), { endTime: i, hasLoadingTime: a } = e.completed, o = Math.max(0, i - e.startTime), c = e.hadError || n.length > 0;
683
+ s.startSpan("action.click", C(C(C(C(C({}, s.config.hooks.getPageAttributes()), N({
684
+ errorType: e.hadError ? "js" : n.length ? "frustration" : "none",
685
+ result: c ? j.warning : j.success,
835
686
  spanSubtype: "click",
836
- spanType: R.action
687
+ spanType: M.action
837
688
  })), e.runtimeAttributes), {}, {
838
- [O.actionId]: e.id,
839
- [O.actionType]: "click",
840
- [O.actionName]: `Click on ${e.targetName}`,
841
- [O.actionTargetName]: e.targetName,
842
- [O.actionTargetTag]: e.targetTag,
843
- [O.actionResourceCount]: e.counts.resource,
844
- [O.actionErrorCount]: e.counts.error,
845
- [O.actionLongTaskCount]: e.counts.longTask,
846
- [O.actionFrustrationCount]: n.length
847
- }, n.length ? { [O.actionFrustrationType]: n } : {}), a ? { [O.actionLoadingTime]: o } : {}), { startTime: e.startTime }).end(a ? i : e.startTime);
689
+ [_.eventId]: h("event"),
690
+ [_.eventTimestamp]: e.startTime,
691
+ [_.eventType]: "action",
692
+ [_.actionId]: e.id,
693
+ [_.actionType]: "click",
694
+ [_.actionName]: `Click on ${e.targetName}`,
695
+ [_.actionTargetName]: e.targetName,
696
+ [_.actionTargetTag]: e.targetTag
697
+ }, n.length ? { [_.actionFrustrationType]: n } : {}), a ? { [_.actionLoadingTime]: o } : {}), { startTime: e.startTime }).end(a ? i : e.startTime);
848
698
  }, d = (e, t, i) => {
849
699
  if (!n.delete(e.id) || !s) return;
850
700
  clearTimeout(e.validationTimer), clearTimeout(e.quietTimer), clearTimeout(e.maxDurationTimer), c(), e.completed = {
851
701
  endTime: t,
852
702
  hasLoadingTime: i
853
703
  }, r.add(e);
854
- let a = Math.max(0, e.startTime + mt - Date.now());
704
+ let a = Math.max(0, e.startTime + Ze - Date.now());
855
705
  e.reportTimer = setTimeout(() => u(e), a);
856
706
  }, f = () => {
857
707
  [...r].forEach(u);
858
708
  }, p = (e) => {
859
709
  if (clearTimeout(e.quietTimer), !e.hadActivity || e.pendingRequests.size) return;
860
- let t = Math.max(0, e.lastActivityTime + pt - Date.now());
710
+ let t = Math.max(0, e.lastActivityTime + Xe - Date.now());
861
711
  e.quietTimer = setTimeout(() => d(e, e.lastActivityTime, !0), t);
862
712
  }, m = (e, t) => {
863
713
  e.hadActivity = !0, e.lastActivityTime = Math.max(e.lastActivityTime, t), p(e);
864
- }, h = (e, t) => t >= e.startTime && t <= e.startTime + a, g = (e) => {
714
+ }, g = (e, t) => t >= e.startTime && t <= e.startTime + a, v = (e) => {
865
715
  for (let i of n.values()) {
866
716
  if (e.type === "request_start") {
867
717
  var t;
868
- if (e.url && F(s == null || (t = s.config.view) == null ? void 0 : t.excludedActivityUrls, e.url) || !h(i, e.time)) continue;
718
+ if (e.url && A(s == null || (t = s.config.view) == null ? void 0 : t.excludedActivityUrls, e.url) || !g(i, e.time)) continue;
869
719
  i.pendingRequests.add(e.id), m(i, e.time);
870
720
  continue;
871
721
  }
872
722
  if (e.type === "request_end") {
873
723
  if (!i.pendingRequests.delete(e.id)) continue;
874
- i.counts.resource += 1, m(i, e.time);
724
+ m(i, e.time);
875
725
  continue;
876
726
  }
877
727
  if (e.type === "long_task" || e.type === "resource") {
878
728
  var r;
879
- if (e.type === "resource" && e.url && F(s == null || (r = s.config.view) == null ? void 0 : r.excludedActivityUrls, e.url) || e.startTime > i.startTime + a || (e.type === "resource" ? e.startTime < i.startTime : e.endTime < i.startTime)) continue;
880
- i.counts[e.type === "long_task" ? "longTask" : "resource"] += 1, m(i, e.endTime);
729
+ if (e.type === "resource" && e.url && A(s == null || (r = s.config.view) == null ? void 0 : r.excludedActivityUrls, e.url) || e.startTime > i.startTime + a || (e.type === "resource" ? e.startTime < i.startTime : e.endTime < i.startTime)) continue;
730
+ m(i, e.endTime);
881
731
  continue;
882
732
  }
883
733
  if (e.type === "dom_mutation" || e.type === "window_open") {
884
- h(i, e.time) && m(i, e.time);
734
+ g(i, e.time) && m(i, e.time);
885
735
  continue;
886
736
  }
887
- e.type === "error" && h(i, e.time) && (i.counts.error += 1, m(i, e.time));
737
+ e.type === "error" && g(i, e.time) && (i.hadError = !0, m(i, e.time));
888
738
  }
889
- }, _ = (e = Date.now()) => {
739
+ }, y = (e = Date.now()) => {
890
740
  [...n.values()].forEach((t) => d(t, e, t.hadActivity));
891
- }, v = (e, t) => {
741
+ }, b = (e, t) => {
892
742
  let n = "clientX" in t && typeof t.clientX == "number" ? t.clientX : 0, r = "clientY" in t && typeof t.clientY == "number" ? t.clientY : 0;
893
- o = o.filter((t) => e.startTime - t.action.startTime <= mt);
894
- let i = o.at(-1), a = o.some((e) => e.action.userActivity.scroll || e.action.userActivity.selection), s = (i == null ? void 0 : i.target) === e.target && Math.hypot(i.x - n, i.y - r) <= ht;
743
+ o = o.filter((t) => e.startTime - t.action.startTime <= Ze);
744
+ let i = o.at(-1), a = o.some((e) => e.action.userActivity.scroll || e.action.userActivity.selection), s = (i == null ? void 0 : i.target) === e.target && Math.hypot(i.x - n, i.y - r) <= Qe;
895
745
  if ((a || i && !s) && (o = []), o.push({
896
746
  action: e,
897
747
  target: e.target,
898
748
  x: n,
899
749
  y: r
900
- }), o.length >= 3 && e.startTime - o[o.length - 3].action.startTime <= mt) {
750
+ }), o.length >= 3 && e.startTime - o[o.length - 3].action.startTime <= Ze) {
901
751
  let t = o.slice(-3).map((e) => e.action);
902
752
  t.slice(0, -1).forEach((e) => {
903
753
  e.discardedByRage = !0;
@@ -913,17 +763,13 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
913
763
  capture: !0,
914
764
  passive: !0
915
765
  }, p = (t) => {
916
- if (!I(l, "traces") || "button" in t && typeof t.button == "number" && t.button !== 0) return;
917
- let r = Et(t);
766
+ if (!l.isSampled() || "button" in t && typeof t.button == "number" && t.button !== 0) return;
767
+ let r = ot(t);
918
768
  if (!r) return;
919
- let o = Dt(t), s = E("action"), u = {
920
- counts: {
921
- error: 0,
922
- longTask: 0,
923
- resource: 0
924
- },
769
+ let o = st(t), s = h("action"), u = {
925
770
  frustrations: /* @__PURE__ */ new Set(),
926
771
  hadActivity: !1,
772
+ hadError: !1,
927
773
  id: s,
928
774
  lastActivityTime: o,
929
775
  maxDurationTimer: setTimeout(() => d(u, o + a, !0), a),
@@ -931,7 +777,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
931
777
  runtimeAttributes: l.getRuntimeAttributes(),
932
778
  startTime: o,
933
779
  target: r,
934
- targetName: Tt(r, i, e.nameCollection === "text"),
780
+ targetName: at(r, i, e.nameCollection === "text"),
935
781
  targetTag: r.tagName.toLowerCase(),
936
782
  userActivity: {
937
783
  input: !1,
@@ -940,22 +786,22 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
940
786
  },
941
787
  validationTimer: setTimeout(() => {
942
788
  u.hadActivity || d(u, u.startTime, !1);
943
- }, ft)
789
+ }, Ye)
944
790
  };
945
- n.set(s, u), v(u, t), c();
791
+ n.set(s, u), b(u, t), c();
946
792
  };
947
793
  window.addEventListener("click", p, u), t.push(() => window.removeEventListener("click", p, u));
948
- let m = l.onActivity(g), h = l.onSessionLifecycle((e) => {
949
- e.type === "expired" && (_(e.expiredAt), f());
794
+ let m = l.onActivity(v), g = l.onSessionLifecycle((e) => {
795
+ e.type === "expired" && (y(e.expiredAt), f());
950
796
  });
951
- t.push(m, h);
952
- let y = () => {
953
- document.visibilityState === "hidden" && (_(), f());
954
- }, b = () => {
955
- _(), f();
797
+ t.push(m, g);
798
+ let _ = () => {
799
+ document.visibilityState === "hidden" && (y(), f());
800
+ }, x = () => {
801
+ y(), f();
956
802
  };
957
- window.addEventListener("pagehide", b), document.addEventListener("visibilitychange", y), t.push(() => window.removeEventListener("pagehide", b), () => document.removeEventListener("visibilitychange", y));
958
- let x = (e) => {
803
+ window.addEventListener("pagehide", x), document.addEventListener("visibilitychange", _), t.push(() => window.removeEventListener("pagehide", x), () => document.removeEventListener("visibilitychange", _));
804
+ let S = (e) => {
959
805
  new Set([
960
806
  ...n.values(),
961
807
  ...r,
@@ -968,27 +814,27 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
968
814
  }), t.rageSources = void 0;
969
815
  }
970
816
  });
971
- }, S = () => x("input"), C = () => x("scroll"), w = () => x("selection");
972
- window.addEventListener("input", S, u), window.addEventListener("scroll", C, u), document.addEventListener("selectionchange", w, u), t.push(() => window.removeEventListener("input", S, u), () => window.removeEventListener("scroll", C, u), () => document.removeEventListener("selectionchange", w, u));
817
+ }, C = () => S("input"), w = () => S("scroll"), T = () => S("selection");
818
+ window.addEventListener("input", C, u), window.addEventListener("scroll", w, u), document.addEventListener("selectionchange", T, u), t.push(() => window.removeEventListener("input", C, u), () => window.removeEventListener("scroll", w, u), () => document.removeEventListener("selectionchange", T, u));
973
819
  },
974
820
  shutdown() {
975
- for (_(), f(); t.length;) {
821
+ for (y(), f(); t.length;) {
976
822
  var e;
977
823
  (e = t.pop()) == null || e();
978
824
  }
979
825
  o = [], s = void 0;
980
826
  }
981
827
  };
982
- }, jt = "data-bk-excluded-activity-mutations", Mt = (e) => {
828
+ }, dt = "data-bk-excluded-activity-mutations", ft = (e) => {
983
829
  let t = e.type === "characterData" ? e.target.parentElement : e.target;
984
830
  return t instanceof Element && !!t.closest("[data-bk-excluded-activity-mutations]");
985
- }, Nt = () => {
831
+ }, pt = () => {
986
832
  let e, t = [];
987
833
  return {
988
834
  name: "activity",
989
835
  init(n) {
990
836
  if (typeof document < "u" && typeof MutationObserver < "u" && (e = new MutationObserver((e) => {
991
- e.length && !e.every(Mt) && n.notifyActivity({
837
+ e.length && !e.every(ft) && n.notifyActivity({
992
838
  time: Date.now(),
993
839
  type: "dom_mutation"
994
840
  });
@@ -1012,7 +858,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1012
858
  for (e == null || e.disconnect(), e = void 0; t.length;) (n = t.pop()) == null || n();
1013
859
  }
1014
860
  };
1015
- }, Pt = (e, t) => !!(t && F(e.config.view.excludedActivityUrls, t)), Ft = (e, t, n) => {
861
+ }, mt = (e, t) => !!(t && A(e.config.view.excludedActivityUrls, t)), ht = (e, t, n) => {
1016
862
  let r = /* @__PURE__ */ new Set(), i = !1, a = !1, o = t, s, c = (e) => {
1017
863
  i || (i = !0, clearTimeout(f), clearTimeout(s), d(), n(e));
1018
864
  }, l = () => {
@@ -1025,7 +871,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1025
871
  }, d = e.onActivity((n) => {
1026
872
  if (!(n.type === "error" || n.type === "long_task")) {
1027
873
  if (n.type === "request_start") {
1028
- if (n.time < t || Pt(e, n.url)) return;
874
+ if (n.time < t || mt(e, n.url)) return;
1029
875
  r.add(n.id), u(n.time);
1030
876
  return;
1031
877
  }
@@ -1035,7 +881,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1035
881
  return;
1036
882
  }
1037
883
  if (n.type === "resource") {
1038
- if (n.endTime < t || Pt(e, n.url)) return;
884
+ if (n.endTime < t || mt(e, n.url)) return;
1039
885
  u(n.endTime);
1040
886
  return;
1041
887
  }
@@ -1047,10 +893,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1047
893
  return () => {
1048
894
  i || (i = !0, clearTimeout(f), clearTimeout(s), d());
1049
895
  };
1050
- }, It = /^(?:\d+|[0-9a-f]{8}-[0-9a-f-]{27,}|[0-9a-f]{16,})$/i, Lt = (e) => e.split(/[?#]/, 1)[0].split("/").map((e) => It.test(e) ? ":id" : e).join("/"), Rt = (e) => typeof e == "string" && e.length > 0 ? Lt(e) : void 0, zt = (e) => {
1051
- let t = Rt(e);
1052
- return t ? { [O.viewUrlPathGroup]: t } : {};
1053
- }, B = (e) => j(j({}, zt(e[O.viewUrlPathGroup])), {}, { [N]: e[N] === !0 }), Bt = 1e3, Vt = 200, Ht = "body", Ut = .8, Wt = [
896
+ }, gt = 1e3, _t = 200, vt = "body", yt = .8, bt = [
1054
897
  "[data-loading=\"true\"]",
1055
898
  "[aria-busy=\"true\"]",
1056
899
  ".loading",
@@ -1058,7 +901,7 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1058
901
  ".spinner",
1059
902
  ".skeleton",
1060
903
  ".bk-loading"
1061
- ], V = [
904
+ ], L = [
1062
905
  [.2, .2],
1063
906
  [.5, .2],
1064
907
  [.8, .2],
@@ -1068,45 +911,45 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1068
911
  [.2, .8],
1069
912
  [.5, .8],
1070
913
  [.8, .8]
1071
- ], Gt = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, Kt = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.min(1, e)) : t, qt = (e) => {
914
+ ], xt = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, St = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.min(1, e)) : t, Ct = (e) => {
1072
915
  if (!e) return "";
1073
916
  let t = e.tagName.toLowerCase();
1074
917
  return e.id ? `${t}#${e.id}` : t;
1075
- }, Jt = (e, t) => t.some((t) => {
918
+ }, wt = (e, t) => t.some((t) => {
1076
919
  try {
1077
920
  return e.matches(t) || !!e.closest(t);
1078
921
  } catch (e) {
1079
922
  return !1;
1080
923
  }
1081
- }), Yt = (e) => {
924
+ }), Tt = (e) => {
1082
925
  if (typeof getComputedStyle != "function") return !0;
1083
926
  let t = getComputedStyle(e);
1084
927
  return t.display !== "none" && t.visibility !== "hidden" && Number(t.opacity || 1) > 0;
1085
- }, Xt = (e, t) => {
928
+ }, Et = (e, t) => {
1086
929
  if (typeof document.elementsFromPoint == "function") return document.elementsFromPoint(e, t);
1087
930
  let n = document.elementFromPoint(e, t);
1088
931
  return n ? [n] : [];
1089
- }, Zt = (e, t) => {
932
+ }, Dt = (e, t) => {
1090
933
  let n = document.querySelector(e);
1091
934
  if (!n) return {
1092
- centerElement: qt(Xt(window.innerWidth / 2, window.innerHeight / 2)[0]),
1093
- emptyCount: V.length,
935
+ centerElement: Ct(Et(window.innerWidth / 2, window.innerHeight / 2)[0]),
936
+ emptyCount: L.length,
1094
937
  ignoredCount: 0,
1095
938
  reason: "missing_root",
1096
939
  rootFound: !1,
1097
940
  score: 1,
1098
- validCount: V.length
941
+ validCount: L.length
1099
942
  };
1100
943
  let r = 0, i = 0, a = "";
1101
- for (let [e, o] of V) {
1102
- let s = Xt(window.innerWidth * e, window.innerHeight * o);
1103
- if (e === .5 && o === .5 && (a = qt(s[0])), s.some((e) => Jt(e, t))) {
944
+ for (let [e, o] of L) {
945
+ let s = Et(window.innerWidth * e, window.innerHeight * o);
946
+ if (e === .5 && o === .5 && (a = Ct(s[0])), s.some((e) => wt(e, t))) {
1104
947
  i += 1;
1105
948
  continue;
1106
949
  }
1107
- s.some((e) => e !== n && e !== document.body && e !== document.documentElement && n.contains(e) && Yt(e)) || (r += 1);
950
+ s.some((e) => e !== n && e !== document.body && e !== document.documentElement && n.contains(e) && Tt(e)) || (r += 1);
1108
951
  }
1109
- let o = V.length - i;
952
+ let o = L.length - i;
1110
953
  return {
1111
954
  centerElement: a,
1112
955
  emptyCount: r,
@@ -1116,42 +959,43 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1116
959
  score: o ? r / o : 0,
1117
960
  validCount: o
1118
961
  };
1119
- }, Qt = (e = {}) => {
962
+ }, Ot = (e = {}) => {
1120
963
  var t;
1121
- let n = Gt(e.checkDelay, Bt), r = Gt(e.confirmationDelay, Vt), i = e.rootSelector || Ht, a = Kt(e.threshold, Ut), o = [...Wt, ...(t = e.ignoreSelectors) == null ? [] : t], s, c, l, u, d = () => {}, f;
964
+ let n = xt(e.checkDelay, gt), r = xt(e.confirmationDelay, _t), i = e.rootSelector || vt, a = St(e.threshold, yt), o = [...bt, ...(t = e.ignoreSelectors) == null ? [] : t], s, c, l, u, d = () => {}, f;
1122
965
  return {
1123
966
  name: "blank-screen",
1124
967
  init(e) {
1125
968
  if (typeof window > "u" || typeof document > "u") return;
1126
- let t = e.meter.createCounter("browser.blank_screen.count", { description: "Number of confirmed blank screens" }), p = () => {
969
+ let t = () => {
1127
970
  clearTimeout(u), u = void 0;
1128
- }, m = (n, r) => {
1129
- if (s !== n || c === n) return;
1130
- let a = I(e, "metrics"), o = I(e, "traces");
1131
- !a && !o || (c = n, a && t.add(1, e.applyRedact(j(j(j({}, e.config.hooks.getMetricAttributes()), B(e.getRuntimeAttributes())), {}, {
1132
- "blank_screen.reason": r.reason,
1133
- "blank_screen.root_selector": i
1134
- }))), o && e.startSpan("browser.blank_screen", j(j({}, z({
971
+ }, p = (t, n) => {
972
+ if (s !== t || c === t || !e.isSampled()) return;
973
+ c = t;
974
+ let r = Date.now();
975
+ e.startSpan("browser.blank_screen", C(C({}, N({
1135
976
  errorType: "blank_screen",
1136
- result: L.error,
1137
- spanSubtype: r.reason,
1138
- spanType: R.error
977
+ result: j.error,
978
+ spanSubtype: n.reason,
979
+ spanType: M.error
1139
980
  })), {}, {
1140
- "blank_screen.center_element": r.centerElement,
1141
- "blank_screen.empty_ratio": r.score,
1142
- "blank_screen.empty_sample_count": r.emptyCount,
1143
- "blank_screen.ignored_sample_count": r.ignoredCount,
1144
- "blank_screen.reason": r.reason,
1145
- "blank_screen.root_found": r.rootFound,
981
+ "blank_screen.center_element": n.centerElement,
982
+ "blank_screen.empty_ratio": n.score,
983
+ "blank_screen.empty_sample_count": n.emptyCount,
984
+ "blank_screen.ignored_sample_count": n.ignoredCount,
985
+ "blank_screen.reason": n.reason,
986
+ "blank_screen.root_found": n.rootFound,
1146
987
  "blank_screen.root_selector": i,
1147
- "blank_screen.sample_count": V.length,
1148
- "blank_screen.valid_sample_count": r.validCount
1149
- })).end());
1150
- }, h = (t) => {
988
+ "blank_screen.sample_count": L.length,
989
+ "blank_screen.valid_sample_count": n.validCount,
990
+ [_.eventId]: h("event"),
991
+ [_.eventTimestamp]: r,
992
+ [_.eventType]: "error"
993
+ }), { startTime: r }).end(r);
994
+ }, m = (t) => {
1151
995
  if (s !== t || c === t || document.visibilityState === "hidden") return;
1152
996
  let n;
1153
997
  try {
1154
- n = Zt(i, o);
998
+ n = Dt(i, o);
1155
999
  } catch (t) {
1156
1000
  var l;
1157
1001
  e.config.debug && ((l = globalThis.console) == null || l.warn("[bk-ot][blank-screen] detection failed:", t));
@@ -1161,206 +1005,61 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1161
1005
  if (s !== t || document.visibilityState === "hidden") return;
1162
1006
  let n;
1163
1007
  try {
1164
- n = Zt(i, o);
1008
+ n = Dt(i, o);
1165
1009
  } catch (t) {
1166
1010
  var r;
1167
1011
  e.config.debug && ((r = globalThis.console) == null || r.warn("[bk-ot][blank-screen] confirmation failed:", t));
1168
1012
  return;
1169
1013
  }
1170
- n.validCount && n.score >= a && m(t, n);
1014
+ n.validCount && n.score >= a && p(t, n);
1171
1015
  }, r));
1172
- }, g = (t) => {
1173
- p(), !(document.visibilityState === "hidden" || !I(e, "metrics") && !I(e, "traces")) && (u = setTimeout(() => h(t), n));
1016
+ }, g = (r) => {
1017
+ t(), !(document.visibilityState === "hidden" || !e.isSampled()) && (u = setTimeout(() => m(r), n));
1174
1018
  };
1175
- d = e.onViewChange((t) => {
1176
- if (t.id !== s && (p(), l == null || l(), l = void 0, s = t.id, c = void 0, t.id)) {
1177
- let n = t.id;
1178
- l = Ft(e, Date.now(), () => {
1179
- l = void 0, g(n);
1019
+ d = e.onViewChange((n) => {
1020
+ if (n.id !== s && (t(), l == null || l(), l = void 0, s = n.id, c = void 0, n.id)) {
1021
+ let t = n.id;
1022
+ l = ht(e, Date.now(), () => {
1023
+ l = void 0, g(t);
1180
1024
  });
1181
1025
  }
1182
1026
  });
1183
- let _ = () => {
1184
- document.visibilityState === "hidden" ? p() : s && c !== s && g(s);
1027
+ let v = () => {
1028
+ document.visibilityState === "hidden" ? t() : s && c !== s && g(s);
1185
1029
  };
1186
- document.addEventListener("visibilitychange", _), f = () => document.removeEventListener("visibilitychange", _);
1030
+ document.addEventListener("visibilitychange", v), f = () => document.removeEventListener("visibilitychange", v);
1187
1031
  },
1188
1032
  shutdown() {
1189
1033
  clearTimeout(u), u = void 0, d(), l == null || l(), l = void 0, f == null || f(), f = void 0, s = void 0, c = void 0;
1190
1034
  }
1191
1035
  };
1192
- }, $t = 100, en = 200, H = [], tn = (e) => e.replace(/#.*$/, ""), nn = (e) => {
1193
- let t = H.indexOf(e);
1194
- t >= 0 && H.splice(t, 1), e.timer !== void 0 && clearTimeout(e.timer);
1195
- }, U = (e, t) => {
1036
+ }, kt = 100, At = 200, R = [], jt = (e) => e.replace(/#.*$/, ""), Mt = (e) => {
1037
+ let t = R.indexOf(e);
1038
+ t >= 0 && R.splice(t, 1), e.timer !== void 0 && clearTimeout(e.timer);
1039
+ }, z = (e, t) => {
1196
1040
  let n = e.callback;
1197
- nn(e), e.callback = void 0, n == null || n(t);
1198
- }, rn = (e) => {
1199
- let t = performance.timeOrigin + e.startTime, n = H.filter((n) => !n.entry && tn(n.url) === tn(e.name) && t >= n.startTime - 50).sort((e, n) => Math.abs(e.startTime - t) - Math.abs(n.startTime - t))[0];
1200
- n && (n.entry = e, n.callback && U(n, e));
1201
- }, an = (e, t = Date.now()) => {
1041
+ Mt(e), e.callback = void 0, n == null || n(t);
1042
+ }, Nt = (e) => {
1043
+ let t = performance.timeOrigin + e.startTime, n = R.filter((n) => !n.entry && jt(n.url) === jt(e.name) && t >= n.startTime - 50).sort((e, n) => Math.abs(e.startTime - t) - Math.abs(n.startTime - t))[0];
1044
+ n && (n.entry = e, n.callback && z(n, e));
1045
+ }, Pt = (e, t = Date.now()) => {
1202
1046
  let n = {
1203
1047
  startTime: t,
1204
1048
  url: e
1205
1049
  };
1206
- return H.push(n), H.length > $t && U(H[0]), {
1207
- cancel: () => U(n),
1050
+ return R.push(n), R.length > kt && z(R[0]), {
1051
+ cancel: () => z(n),
1208
1052
  complete: (e) => {
1209
1053
  if (n.callback = e, n.entry) {
1210
- U(n, n.entry);
1054
+ z(n, n.entry);
1211
1055
  return;
1212
1056
  }
1213
- n.timer = setTimeout(() => U(n), en);
1057
+ n.timer = setTimeout(() => z(n), At);
1214
1058
  }
1215
1059
  };
1216
- }, on = 10 * 1024, sn = [
1217
- /^text\//i,
1218
- /json/i,
1219
- "application/x-www-form-urlencoded",
1220
- "application/graphql"
1221
- ], cn = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : on, ln = (e, t, n) => e ? t.some((t) => typeof t == "string" ? e.toLowerCase().includes(t.toLowerCase()) : (t.lastIndex = 0, t.test(e))) : n, un = (e) => {
1222
- try {
1223
- var t;
1224
- return e ? (t = new Headers(e).get("content-type")) == null ? void 0 : t : void 0;
1225
- } catch (e) {
1226
- return;
1227
- }
1228
- }, dn = function() {
1229
- var e = M(function* (e, t) {
1230
- let n = e.getReader(), r = new TextDecoder(), i = "";
1231
- try {
1232
- for (; i.length <= t;) {
1233
- let { done: e, value: t } = yield n.read();
1234
- if (e) {
1235
- i += r.decode();
1236
- break;
1237
- }
1238
- i += r.decode(t, { stream: !0 });
1239
- }
1240
- i.length > t && (yield n.cancel().catch(() => void 0));
1241
- } finally {
1242
- n.releaseLock();
1243
- }
1244
- return i;
1245
- });
1246
- return function(t, n) {
1247
- return e.apply(this, arguments);
1248
- };
1249
- }(), fn = function() {
1250
- var e = M(function* (e, t) {
1251
- if (typeof e == "string") return e;
1252
- if (typeof URLSearchParams < "u" && e instanceof URLSearchParams) return e.toString();
1253
- if (typeof Blob < "u" && e instanceof Blob) return dn(e.stream(), t);
1254
- });
1255
- return function(t, n) {
1256
- return e.apply(this, arguments);
1257
- };
1258
- }(), pn = function() {
1259
- var e = M(function* (e, t) {
1260
- if (typeof Request < "u" && e instanceof Request) {
1261
- var n;
1262
- let r = (n = e.headers.get("content-type")) == null ? void 0 : n, i = e.clone();
1263
- return {
1264
- contentType: r,
1265
- text: i.body ? yield dn(i.body, t) : ""
1266
- };
1267
- }
1268
- return {
1269
- contentType: un(e.headers),
1270
- text: yield fn(e.body, t)
1271
- };
1272
- });
1273
- return function(t, n) {
1274
- return e.apply(this, arguments);
1275
- };
1276
- }(), mn = (e) => {
1277
- if (typeof Request > "u" || !(e instanceof Request)) return e;
1278
- try {
1279
- return e.clone();
1280
- } catch (e) {
1281
- return;
1282
- }
1283
- }, hn = function() {
1284
- var e = M(function* (e, t) {
1285
- var n;
1286
- if (!e) return {};
1287
- let r = (n = e.headers.get("content-type")) == null ? void 0 : n, i = e.clone();
1288
- return {
1289
- contentType: r,
1290
- text: i.body ? yield dn(i.body, t) : ""
1291
- };
1292
- });
1293
- return function(t, n) {
1294
- return e.apply(this, arguments);
1295
- };
1296
- }(), gn = (e) => {
1297
- var t;
1298
- let n = (t = e.getResponseHeader("content-type")) == null ? void 0 : t;
1299
- return e.responseType === "" || e.responseType === "text" ? {
1300
- contentType: n,
1301
- text: e.responseText
1302
- } : e.responseType === "json" ? {
1303
- contentType: n,
1304
- text: JSON.stringify(e.response)
1305
- } : { contentType: n };
1306
- }, _n = (e, t, n, r, i) => {
1307
- if (i === void 0) return;
1308
- let a = cn(e.maxSize), o = i.length > a, s = {
1309
- body: i.slice(0, a * 2),
1310
- contentType: r,
1311
- kind: n,
1312
- method: t.resource.method,
1313
- statusCode: t.resource.statusCode,
1314
- truncated: o,
1315
- type: t.resource.type,
1316
- url: t.resource.url
1317
- }, c = e.redact(s);
1318
- if (c !== void 0) return {
1319
- body: c.slice(0, a),
1320
- contentType: r,
1321
- truncated: o || c.length > a
1322
- };
1323
- }, vn = function() {
1324
- var e = M(function* ({ bodyConfig: e, domainContext: t, event: n, fetchRequest: r, occurredAt: i, runtimeContext: a, span: o }) {
1325
- var s, c;
1326
- let u = n.resource.statusCode, f = u === void 0 || u === 0 || u >= 400;
1327
- if (((s = e.capture) == null ? "errors" : s) === "errors" && !f) return;
1328
- let p = cn(e.maxSize) * 2, m = (c = e.allowedContentTypes) == null ? sn : c, h = {}, g = {};
1329
- try {
1330
- t.type === "fetch" ? [h, g] = yield Promise.all([pn(r == null ? t.request : r, p), hn(t.response, p)]) : (h = { text: yield fn(t.requestBody, p) }, g = gn(t.xhr));
1331
- } catch (e) {
1332
- return;
1333
- }
1334
- let _, v;
1335
- try {
1336
- _ = ln(h.contentType, m, !0) ? _n(e, n, "request", h.contentType, h.text) : void 0, v = ln(g.contentType, m, !1) ? _n(e, n, "response", g.contentType, g.text) : void 0;
1337
- } catch (e) {
1338
- return;
1339
- }
1340
- !_ && !v || a.emitLog({
1341
- attributes: j(j(j({}, n.attributes), _ ? {
1342
- "request.body": _.body,
1343
- "request.body.content_type": _.contentType,
1344
- "request.body.truncated": _.truncated
1345
- } : {}), v ? {
1346
- "response.body": v.body,
1347
- "response.body.content_type": v.contentType,
1348
- "response.body.truncated": v.truncated
1349
- } : {}),
1350
- body: "browser.request.body",
1351
- context: d.setSpan(l.active(), o),
1352
- eventName: "browser.request.body",
1353
- severityNumber: f ? T.ERROR : T.INFO,
1354
- severityText: f ? "ERROR" : "INFO",
1355
- timestamp: i
1356
- });
1357
- });
1358
- return function(t) {
1359
- return e.apply(this, arguments);
1360
- };
1361
- }(), yn = (e) => e.deliveryType === "cache" || e.transferSize === 0 && e.decodedBodySize > 0 ? !0 : void 0, bn = (...e) => e.every((t, n) => n === 0 || e[n - 1] <= t), W = (e, t, n, r, i) => {
1362
- bn(n, r, i) && (e[`resource.${t}.start`] = r - n, e[`resource.${t}.duration`] = i - r);
1363
- }, xn = (e) => {
1060
+ }, Ft = (e) => e.deliveryType === "cache" || e.transferSize === 0 && e.decodedBodySize > 0 ? !0 : void 0, B = (...e) => e.every((t, n) => n === 0 || e[n - 1] <= t), V = (e, t, n, r, i) => {
1061
+ B(n, r, i) && (e[`resource.${t}.start`] = r - n, e[`resource.${t}.duration`] = i - r);
1062
+ }, It = (e) => {
1364
1063
  let t = {}, n = [
1365
1064
  e.startTime,
1366
1065
  e.fetchStart,
@@ -1372,79 +1071,87 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1372
1071
  e.responseStart,
1373
1072
  e.responseEnd
1374
1073
  ];
1375
- return !n.every(Number.isFinite) || !bn(...n) ? t : (W(t, "first_byte", e.startTime, e.requestStart, e.responseStart), W(t, "download", e.startTime, e.responseStart, e.responseEnd), e.workerStart > 0 && e.workerStart < e.fetchStart && W(t, "worker", e.startTime, e.workerStart, e.fetchStart), e.fetchStart < e.domainLookupEnd && W(t, "dns", e.startTime, e.domainLookupStart, e.domainLookupEnd), e.fetchStart < e.connectEnd && (W(t, "connect", e.startTime, e.connectStart, e.connectEnd), e.connectStart <= e.secureConnectionStart && e.secureConnectionStart <= e.connectEnd && W(t, "ssl", e.startTime, e.secureConnectionStart, e.connectEnd)), e.redirectEnd > e.startTime && bn(e.startTime, e.redirectStart, e.redirectEnd, e.fetchStart) && W(t, "redirect", e.startTime, e.redirectStart, e.redirectEnd), t);
1376
- }, Sn = (e) => e.duration === 0 && e.responseEnd > e.startTime ? e.responseEnd - e.startTime : e.duration, Cn = (e) => {
1074
+ return !n.every(Number.isFinite) || !B(...n) ? t : (V(t, "first_byte", e.startTime, e.requestStart, e.responseStart), V(t, "download", e.startTime, e.responseStart, e.responseEnd), e.workerStart > 0 && e.workerStart < e.fetchStart && V(t, "worker", e.startTime, e.workerStart, e.fetchStart), e.fetchStart < e.domainLookupEnd && V(t, "dns", e.startTime, e.domainLookupStart, e.domainLookupEnd), e.fetchStart < e.connectEnd && (V(t, "connect", e.startTime, e.connectStart, e.connectEnd), e.connectStart <= e.secureConnectionStart && e.secureConnectionStart <= e.connectEnd && V(t, "ssl", e.startTime, e.secureConnectionStart, e.connectEnd)), e.redirectEnd > e.startTime && B(e.startTime, e.redirectStart, e.redirectEnd, e.fetchStart) && V(t, "redirect", e.startTime, e.redirectStart, e.redirectEnd), t);
1075
+ }, Lt = (e) => e.duration === 0 && e.responseEnd > e.startTime ? e.responseEnd - e.startTime : e.duration, Rt = (e) => {
1377
1076
  let t = typeof e.deliveryType == "string" ? e.deliveryType || "other" : void 0;
1378
- return j(j(j(j({
1379
- [O.cacheHit]: yn(e),
1380
- [O.nextHopProtocol]: e.nextHopProtocol
1381
- }, xn(e)), t ? { "resource.delivery_type": t } : {}), e.renderBlockingStatus ? { "resource.render_blocking_status": e.renderBlockingStatus } : {}), {}, {
1077
+ return C(C(C(C({
1078
+ [_.cacheHit]: Ft(e),
1079
+ [_.nextHopProtocol]: e.nextHopProtocol
1080
+ }, It(e)), t ? { "resource.delivery_type": t } : {}), e.renderBlockingStatus ? { "resource.render_blocking_status": e.renderBlockingStatus } : {}), {}, {
1382
1081
  "resource.encoded_body_size": e.encodedBodySize,
1383
1082
  "resource.decoded_body_size": e.decodedBodySize
1384
1083
  });
1385
- }, wn = (e = !0) => {
1386
- let t;
1084
+ }, zt = (t = !0) => {
1085
+ let n;
1387
1086
  return {
1388
1087
  name: "resource",
1389
- init(n) {
1390
- var r;
1391
- if (typeof PerformanceObserver > "u" || !((r = PerformanceObserver.supportedEntryTypes) != null && r.includes("resource"))) return;
1392
- let i = (t) => {
1393
- if (!n.isSampled() || !t.name || He(n.config, t.name)) return;
1394
- if (t.initiatorType === "fetch" || t.initiatorType === "xmlhttprequest") {
1395
- rn(t);
1088
+ init(r) {
1089
+ var i;
1090
+ if (typeof PerformanceObserver > "u" || !((i = PerformanceObserver.supportedEntryTypes) != null && i.includes("resource"))) return;
1091
+ let a = (n) => {
1092
+ if (!r.isSampled() || !n.name || k(r.config, n.name)) return;
1093
+ if (n.initiatorType === "fetch" || n.initiatorType === "xmlhttprequest") {
1094
+ Nt(n);
1396
1095
  return;
1397
1096
  }
1398
- if (t.duration < 0) return;
1399
- let r = n.config.hooks.redactUrl(t.name), i = Sn(t), a = performance.timeOrigin + t.startTime, o = a + i;
1400
- e && I(n, "traces") && n.startSpan("browser.resource", j(j(j({}, n.config.hooks.getPageAttributes()), dt({
1401
- initiatorType: t.initiatorType || "other",
1402
- responseStatus: t.responseStatus,
1403
- transferSize: t.transferSize,
1404
- url: r
1405
- })), {}, { "url.full": r }, Cn(t)), { startTime: a }).end(o), n.notifyActivity({
1406
- endTime: o,
1407
- startTime: a,
1097
+ if (n.duration < 0) return;
1098
+ let i = r.config.hooks.redactUrl(n.name), a = Lt(n), o = performance.timeOrigin + n.startTime, s = o + a;
1099
+ t && r.isSampled() && r.startSpan("browser.resource", C(C(C({}, r.config.hooks.getPageAttributes()), Je({
1100
+ initiatorType: n.initiatorType || "other",
1101
+ responseStatus: n.responseStatus,
1102
+ transferSize: n.transferSize,
1103
+ url: i
1104
+ })), {}, {
1105
+ [_.eventId]: h("event"),
1106
+ [_.eventTimestamp]: o,
1107
+ [_.eventType]: "resource",
1108
+ "url.full": i
1109
+ }, Rt(n)), {
1110
+ kind: e.CLIENT,
1111
+ startTime: o
1112
+ }).end(s), r.notifyActivity({
1113
+ endTime: s,
1114
+ startTime: o,
1408
1115
  type: "resource",
1409
- url: t.name
1116
+ url: n.name
1410
1117
  });
1411
1118
  };
1412
1119
  try {
1413
- t = new PerformanceObserver((e) => {
1414
- for (let t of e.getEntries()) i(t);
1415
- }), t.observe({
1120
+ n = new PerformanceObserver((e) => {
1121
+ for (let t of e.getEntries()) a(t);
1122
+ }), n.observe({
1416
1123
  type: "resource",
1417
1124
  buffered: !0
1418
1125
  });
1419
1126
  } catch (e) {
1420
- t = void 0;
1127
+ n = void 0;
1421
1128
  }
1422
1129
  },
1423
1130
  shutdown() {
1424
- t == null || t.disconnect(), t = void 0;
1131
+ n == null || n.disconnect(), n = void 0;
1425
1132
  }
1426
1133
  };
1427
- }, Tn = (e) => typeof e.config.tracking.request == "object" ? e.config.tracking.request : void 0, En = (e) => {
1134
+ }, Bt = (e) => typeof e.config.tracking.request == "object" ? e.config.tracking.request : void 0, Vt = (e) => {
1428
1135
  if (e.type === "xhr") return e.xhr.status;
1429
1136
  if (e.response) return e.response.status;
1430
1137
  if (typeof e.error == "object" && e.error && "status" in e.error) {
1431
1138
  let t = e.error.status;
1432
1139
  return typeof t == "number" ? t : void 0;
1433
1140
  }
1434
- }, Dn = (e) => typeof e == "string" || e instanceof URL ? P(String(e)) : P(e.url), On = (e, t) => {
1141
+ }, Ht = (e) => typeof e == "string" || e instanceof URL ? O(String(e)) : O(e.url), Ut = (e, t) => {
1435
1142
  var n;
1436
1143
  return ((n = t == null ? void 0 : t.method) == null ? typeof Request < "u" && e instanceof Request ? e.method : "GET" : n).toUpperCase();
1437
- }, kn = (e, t) => typeof Request < "u" && e instanceof Request ? e : t == null ? {} : t, An = (e, t, n) => {
1438
- var r;
1439
- let i = typeof Request < "u" && e instanceof Request ? e.headers : void 0, a = new Headers((r = t == null ? void 0 : t.headers) == null ? i : r);
1440
- return u.inject(d.setSpan(l.active(), n), a, { set: (e, t, n) => e.set(t, n) }), j(j({}, t), {}, { headers: a });
1441
- }, jn = (e, t) => {
1442
- let n = {};
1443
- u.inject(d.setSpan(l.active(), t), n);
1444
- for (let [t, r] of Object.entries(n)) e.setRequestHeader(t, r);
1445
- }, Mn = (e, t) => He(e.config, t) || F(e.config.view.excludedActivityUrls, t), Nn = (e, t) => {
1446
- if (Mn(e, t)) return () => {};
1447
- let n = E("request");
1144
+ }, Wt = (e, t) => typeof Request < "u" && e instanceof Request ? e : t == null ? {} : t, Gt = (e, t, a) => {
1145
+ var o;
1146
+ let s = typeof Request < "u" && e instanceof Request ? e.headers : void 0, c = new Headers((o = t == null ? void 0 : t.headers) == null ? s : o);
1147
+ return r.inject(i.setSpan(n.active(), a), c, { set: (e, t, n) => e.set(t, n) }), C(C({}, t), {}, { headers: c });
1148
+ }, Kt = (e, t) => {
1149
+ let a = {};
1150
+ r.inject(i.setSpan(n.active(), t), a);
1151
+ for (let [t, n] of Object.entries(a)) e.setRequestHeader(t, n);
1152
+ }, qt = (e, t) => k(e.config, t) || A(e.config.view.excludedActivityUrls, t), Jt = (e, t) => {
1153
+ if (qt(e, t)) return () => {};
1154
+ let n = h("request");
1448
1155
  e.notifyActivity({
1449
1156
  id: n,
1450
1157
  time: Date.now(),
@@ -1459,59 +1166,56 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1459
1166
  type: "request_end"
1460
1167
  }));
1461
1168
  };
1462
- }, Pn = (e, t) => e.config.transport.traces === !1 || !e.isSampled() ? {
1169
+ }, Yt = (e, t) => e.isSampled() ? Pt(t) : {
1463
1170
  cancel() {},
1464
1171
  complete(e) {
1465
1172
  e();
1466
1173
  }
1467
- } : an(t), Fn = (e, t, n) => {
1468
- var r;
1469
- return e.startSpan("browser.resource", j(j(j({}, e.config.hooks.getPageAttributes()), dt({
1470
- initiatorType: t,
1471
- method: n.method,
1472
- url: (r = n.url) == null ? "" : r
1473
- })), n.url ? { "url.full": e.config.hooks.redactUrl(n.url) } : {}), { kind: s.CLIENT });
1474
- }, In = (e, t, n, r, i = {}, a) => {
1475
- var o;
1476
- let s = i.url, l = s ? e.config.hooks.redactUrl(s) : void 0, u = En(r), d = i.method, f = {
1477
- attributes: j(j(j({}, e.config.hooks.getPageAttributes()), dt({
1478
- initiatorType: n,
1479
- method: d,
1480
- networkError: r.type === "fetch" ? !r.response : r.xhr.status === 0,
1481
- responseStatus: u,
1482
- url: l == null ? "" : l
1483
- })), l ? { "url.full": l } : {}),
1174
+ }, Xt = (t, n, r) => {
1175
+ var i, a;
1176
+ let o = (i = r.startedAt) == null ? Date.now() : i;
1177
+ return t.startSpan("browser.resource", C(C(C({}, t.config.hooks.getPageAttributes()), Je({
1178
+ initiatorType: n,
1179
+ method: r.method,
1180
+ url: (a = r.url) == null ? "" : a
1181
+ })), {}, {
1182
+ [_.eventId]: h("event"),
1183
+ [_.eventTimestamp]: o,
1184
+ [_.eventType]: "resource"
1185
+ }, r.url ? { "url.full": t.config.hooks.redactUrl(r.url) } : {}), {
1186
+ kind: e.CLIENT,
1187
+ startTime: o
1188
+ });
1189
+ }, Zt = (e, n, r, i, a = {}) => {
1190
+ let o = a.url, s = o ? e.config.hooks.redactUrl(o) : void 0, c = Vt(i), l = a.method, u = {
1191
+ attributes: C(C(C({}, e.config.hooks.getPageAttributes()), Je({
1192
+ initiatorType: r,
1193
+ method: l,
1194
+ networkError: i.type === "fetch" ? !i.response : i.xhr.status === 0,
1195
+ responseStatus: c,
1196
+ url: s == null ? "" : s
1197
+ })), s ? { "url.full": s } : {}),
1484
1198
  resource: {
1485
- method: d,
1486
- statusCode: u,
1487
- type: n,
1488
- url: l
1199
+ method: l,
1200
+ statusCode: c,
1201
+ type: r,
1202
+ url: s
1489
1203
  },
1490
1204
  type: "resource"
1491
- }, p = !0;
1205
+ }, d = !0;
1492
1206
  try {
1493
- var m, h;
1494
- p = (m = Tn(e)) == null || (h = m.beforeSend) == null ? void 0 : h.call(m, f, r);
1207
+ var f, p;
1208
+ d = (f = Bt(e)) == null || (p = f.beforeSend) == null ? void 0 : p.call(f, u, i);
1495
1209
  } catch (t) {
1496
- var g;
1497
- e.config.debug && ((g = globalThis.console) == null || g.warn("[bk-ot] request.beforeSend failed:", t));
1210
+ var m;
1211
+ e.config.debug && ((m = globalThis.console) == null || m.warn("[bk-ot] request.beforeSend failed:", t));
1498
1212
  }
1499
- if (t.setAttributes(e.applyRedact(f.attributes)), p === !1) {
1500
- t.setAttribute(Xe, !0);
1213
+ if (n.setAttributes(e.applyRedact(u.attributes)), d === !1) {
1214
+ n.setAttribute(Ie, !0);
1501
1215
  return;
1502
1216
  }
1503
- ((u == null ? 0 : u) >= 400 || u === 0 || r.type === "fetch" && r.error) && t.setStatus({ code: c.ERROR });
1504
- let _ = e.config.transport.logs === !1 || (o = Tn(e)) == null ? void 0 : o.body;
1505
- _ && vn({
1506
- bodyConfig: _,
1507
- domainContext: r,
1508
- event: f,
1509
- fetchRequest: a,
1510
- occurredAt: i.startedAt,
1511
- runtimeContext: e,
1512
- span: t
1513
- });
1514
- }, Ln = (e) => {
1217
+ ((c == null ? 0 : c) >= 400 || c === 0 || i.type === "fetch" && i.error) && n.setStatus({ code: t.ERROR });
1218
+ }, Qt = (e) => {
1515
1219
  let t = [], n = /* @__PURE__ */ new Set();
1516
1220
  return {
1517
1221
  name: "request",
@@ -1520,35 +1224,34 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1520
1224
  if (!(typeof window > "u")) {
1521
1225
  if (typeof window.fetch == "function") {
1522
1226
  let r = window.fetch, i = /* @__PURE__ */ function() {
1523
- var t = M(function* (t, i) {
1524
- var a;
1525
- let o = Dn(t);
1526
- if (!e.isSampled() || Ge(e.config, o)) return r.call(this, t, i);
1527
- let s = {
1528
- method: On(t, i),
1227
+ var t = E(function* (t, i) {
1228
+ let a = Ht(t);
1229
+ if (!e.isSampled() || Ne(e.config, a)) return r.call(this, t, i);
1230
+ let o = {
1231
+ method: Ut(t, i),
1529
1232
  startedAt: Date.now(),
1530
- url: o
1531
- }, c = Fn(e, "fetch", s), l = Pn(e, o), u = Nn(e, o), d = kn(t, i), f = e.config.transport.logs !== !1 && (a = Tn(e)) != null && a.body ? mn(d) : void 0, p = Ke(e.config, o) ? An(t, i, c) : i, m = !1, h = (t) => {
1532
- m || (m = !0, n.delete(g), t && c.setAttributes(e.applyRedact(Cn(t))), c.end());
1533
- }, g = () => {
1534
- l.cancel(), h();
1233
+ url: a
1234
+ }, s = Xt(e, "fetch", o), c = Yt(e, a), l = Jt(e, a), u = Wt(t, i), d = Pe(e.config, a) ? Gt(t, i, s) : i, f = !1, p = (t) => {
1235
+ f || (f = !0, n.delete(m), t && s.setAttributes(e.applyRedact(Rt(t))), s.end());
1236
+ }, m = () => {
1237
+ c.cancel(), p();
1535
1238
  };
1536
- n.add(g);
1239
+ n.add(m);
1537
1240
  try {
1538
- let n = yield r.call(this, t, p);
1539
- return In(e, c, "fetch", {
1540
- request: d,
1241
+ let n = yield r.call(this, t, d);
1242
+ return Zt(e, s, "fetch", {
1243
+ request: u,
1541
1244
  response: n,
1542
1245
  type: "fetch"
1543
- }, s, f), l.complete(h), n;
1246
+ }, o), c.complete(p), n;
1544
1247
  } catch (t) {
1545
- throw In(e, c, "fetch", {
1248
+ throw Zt(e, s, "fetch", {
1546
1249
  error: t,
1547
- request: d,
1250
+ request: u,
1548
1251
  type: "fetch"
1549
- }, s, f), t instanceof Error && c.recordException(t), l.complete(h), t;
1252
+ }, o), t instanceof Error && s.recordException(t), c.complete(p), t;
1550
1253
  } finally {
1551
- u();
1254
+ l();
1552
1255
  }
1553
1256
  });
1554
1257
  return function(e, n) {
@@ -1563,26 +1266,26 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1563
1266
  let r = /* @__PURE__ */ new WeakMap(), i = XMLHttpRequest.prototype.open, a = XMLHttpRequest.prototype.send, o = function(e, t, n = !0, a, o) {
1564
1267
  return r.set(this, {
1565
1268
  method: e.toUpperCase(),
1566
- url: P(String(t))
1269
+ url: O(String(t))
1567
1270
  }), i.call(this, e, String(t), n, a, o);
1568
1271
  }, s = function(t) {
1569
1272
  var i;
1570
1273
  let o = (i = r.get(this)) == null ? {} : i;
1571
- if (!e.isSampled() || !o.url || Ge(e.config, o.url)) return a.call(this, t);
1274
+ if (!e.isSampled() || !o.url || Ne(e.config, o.url)) return a.call(this, t);
1572
1275
  o.startedAt = Date.now();
1573
- let s = Fn(e, "xhr", o), c = Pn(e, o.url), l = Nn(e, o.url);
1574
- Ke(e.config, o.url) && jn(this, s);
1276
+ let s = Xt(e, "xhr", o), c = Yt(e, o.url), l = Jt(e, o.url);
1277
+ Pe(e.config, o.url) && Kt(this, s);
1575
1278
  let u = !1, d = () => {
1576
1279
  c.cancel(), !u && (u = !0, n.delete(d), l(), s.end());
1577
1280
  };
1578
1281
  n.add(d);
1579
1282
  let f = () => {
1580
- u || (In(e, s, "xhr", {
1283
+ u || (Zt(e, s, "xhr", {
1581
1284
  requestBody: t,
1582
1285
  type: "xhr",
1583
1286
  xhr: this
1584
1287
  }, o), l(), c.complete((t) => {
1585
- u || (u = !0, n.delete(d), t && s.setAttributes(e.applyRedact(Cn(t))), s.end());
1288
+ u || (u = !0, n.delete(d), t && s.setAttributes(e.applyRedact(Rt(t))), s.end());
1586
1289
  }));
1587
1290
  };
1588
1291
  this.addEventListener("loadend", f, { once: !0 });
@@ -1604,50 +1307,45 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1604
1307
  for (; t.length;) (e = t.pop()) == null || e();
1605
1308
  }
1606
1309
  };
1607
- }, Rn = 6e4, zn = 5, Bn = /^https?:|^\/\//i, Vn = (e, t) => {
1608
- if (t) return Bn.test(t) ? e(t) : t;
1609
- }, Hn = () => {
1310
+ }, $t = /^https?:|^\/\//i, en = (e, t) => {
1311
+ if (t) return $t.test(t) ? e(t) : t;
1312
+ }, tn = () => {
1610
1313
  let e;
1611
1314
  return {
1612
1315
  name: "csp-violation",
1613
1316
  init(t) {
1614
1317
  if (typeof window > "u" || typeof document > "u") return;
1615
- let n = te(Rn, zn), r = t.meter.createCounter("browser.csp_violation.count", { description: "Total number of CSP violations before span throttling" }), i = (e) => {
1616
- let i = I(t, "metrics"), a = I(t, "traces");
1617
- if (!i && !a || (i && r.add(1, t.applyRedact(j(j(j({}, t.config.hooks.getMetricAttributes()), B(t.getRuntimeAttributes())), {}, {
1618
- "csp.disposition": e.disposition,
1619
- "csp.effective_directive": e.effectiveDirective
1620
- }))), !a)) return;
1621
- let o = D(`${e.violatedDirective}|${e.blockedURI}|${e.sourceFile}|${e.lineNumber}`), s = n.allow(o);
1622
- if (!s.allowed) return;
1623
- let c = Vn(t.config.hooks.redactUrl, e.blockedURI), l = e.sourceFile ? t.config.hooks.redactUrl(e.sourceFile) : void 0, u = s.count === 1;
1624
- t.startSpan("csp.violation", j(j(j({}, t.config.hooks.getPageAttributes()), z({
1318
+ let n = (e) => {
1319
+ if (!t.isSampled()) return;
1320
+ let n = Date.now(), r = en(t.config.hooks.redactUrl, e.blockedURI), i = e.sourceFile ? t.config.hooks.redactUrl(e.sourceFile) : void 0;
1321
+ t.startSpan("csp.violation", C(C(C({}, t.config.hooks.getPageAttributes()), N({
1625
1322
  errorType: "csp",
1626
- result: L.error,
1323
+ result: j.error,
1627
1324
  spanSubtype: "csp",
1628
- spanType: R.error
1325
+ spanType: M.error
1629
1326
  })), {}, {
1630
- "csp.blocked_uri": c,
1327
+ "csp.blocked_uri": r,
1631
1328
  "csp.violated_directive": e.violatedDirective,
1632
1329
  "csp.effective_directive": e.effectiveDirective,
1633
1330
  "csp.disposition": e.disposition,
1634
- "csp.source_file": l,
1331
+ "csp.source_file": i,
1635
1332
  "csp.line_number": e.lineNumber,
1636
1333
  "csp.column_number": e.columnNumber,
1637
1334
  "csp.status_code": e.statusCode,
1638
- "csp.fingerprint": o,
1639
- "csp.window_occurrence_index": s.count,
1640
- [O.exceptionFingerprint]: o,
1335
+ "csp.original_policy": e.originalPolicy,
1336
+ [_.eventId]: h("event"),
1337
+ [_.eventTimestamp]: n,
1338
+ [_.eventType]: "error",
1641
1339
  "error.source": "csp"
1642
- }, u ? { "csp.original_policy": e.originalPolicy } : {})).end();
1340
+ }), { startTime: n }).end(n);
1643
1341
  };
1644
- document.addEventListener("securitypolicyviolation", i), e = () => document.removeEventListener("securitypolicyviolation", i);
1342
+ document.addEventListener("securitypolicyviolation", n), e = () => document.removeEventListener("securitypolicyviolation", n);
1645
1343
  },
1646
1344
  shutdown() {
1647
1345
  e == null || e(), e = void 0;
1648
1346
  }
1649
1347
  };
1650
- }, Un = 6e4, Wn = 5, Gn = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : t, Kn = (e) => {
1348
+ }, nn = (e) => {
1651
1349
  if (e instanceof Error) return e.message;
1652
1350
  if (typeof e == "string") return e;
1653
1351
  try {
@@ -1655,137 +1353,92 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1655
1353
  } catch (t) {
1656
1354
  return String(e);
1657
1355
  }
1658
- }, qn = (e) => {
1659
- var t;
1660
- return e instanceof Error ? (t = e.stack) == null ? "" : t : "";
1661
- }, Jn = (e) => e.slice(0, 80), Yn = (e) => {
1662
- var t, n;
1663
- return (t = (n = e.split("\n").find((e) => e.trim().startsWith("at "))) == null ? void 0 : n.trim()) == null ? "" : t;
1664
- }, Xn = (e) => e === "unhandledrejection" ? "promise" : e === "resource" ? "resource_load" : "js", Zn = ({ context: e, counter: t, error: n, exceptionType: r, extra: i = {}, source: a, spanName: o, throttle: s }) => {
1665
- let l = I(e, "metrics"), u = I(e, "traces");
1666
- if (!l && !u) return;
1667
- let d = Kn(n), f = qn(n), p = D(`${a}|${d}|${f.slice(0, 256)}`);
1668
- if (l && t.add(1, e.applyRedact(j(j(j({}, e.config.hooks.getMetricAttributes()), B(e.getRuntimeAttributes())), {}, {
1669
- "error.source": a,
1670
- "error.subtype": Xn(a)
1671
- }))), !u) return;
1356
+ }, rn = (e) => e === "unhandledrejection" ? "promise" : e === "resource" ? "resource_load" : "js", an = ({ context: e, error: n, exceptionType: r, extra: i = {}, source: a, spanName: o }) => {
1357
+ if (!e.isSampled()) return;
1358
+ let s = Date.now(), c = nn(n);
1672
1359
  e.notifyActivity({
1673
- time: Date.now(),
1360
+ time: s,
1674
1361
  type: "error"
1675
1362
  });
1676
- let m = s.allow(p);
1677
- if (!m.allowed) return;
1678
- let h = n instanceof Error ? n : {
1679
- message: d,
1363
+ let l = n instanceof Error ? n : {
1364
+ message: c,
1680
1365
  name: r == null ? a : r
1681
- }, g = j(j(j(j({}, e.config.hooks.getPageAttributes()), e.config.hooks.getErrorAttributes()), z({
1682
- errorType: Xn(a),
1683
- result: L.error,
1684
- spanSubtype: Xn(a),
1685
- spanType: R.error
1366
+ }, u = C(C(C(C({}, e.config.hooks.getPageAttributes()), e.config.hooks.getErrorAttributes()), N({
1367
+ errorType: rn(a),
1368
+ result: j.error,
1369
+ spanSubtype: rn(a),
1370
+ spanType: M.error
1686
1371
  })), {}, {
1687
- [O.exceptionMessageShort]: Jn(d),
1688
- [O.exceptionStackTopFrame]: Yn(f),
1689
- [O.exceptionFingerprint]: p,
1372
+ [_.eventId]: h("event"),
1373
+ [_.eventTimestamp]: s,
1374
+ [_.eventType]: "error",
1375
+ "error.message": c,
1690
1376
  "error.handled": !1,
1691
- "error.source": a,
1692
- "error.window_occurrence_index": m.count
1693
- }, i), _ = e.startSpan(o, g);
1694
- _.recordException(h), _.setStatus({
1695
- code: c.ERROR,
1696
- message: d
1697
- }), _.end();
1698
- }, Qn = (e = {}) => {
1699
- let t = [], n = Gn(e.windowMs, Un), r = Gn(e.maxPerWindow, Wn);
1377
+ "error.source": a
1378
+ }, i), d = e.startSpan(o, u, { startTime: s });
1379
+ d.recordException(l), d.setStatus({
1380
+ code: t.ERROR,
1381
+ message: c
1382
+ }), d.end();
1383
+ }, on = () => {
1384
+ let e = [];
1700
1385
  return {
1701
1386
  name: "error",
1702
- init(e) {
1387
+ init(t) {
1703
1388
  if (typeof window > "u") return;
1704
- let i = te(n, r), a = e.meter.createCounter("browser.error.count", { description: "Total number of browser errors before span throttling" }), o = (t) => {
1389
+ let n = (e) => {
1705
1390
  var n;
1706
- let r = !t.error && !t.filename && t.message === "Script error.";
1707
- Zn({
1708
- context: e,
1709
- counter: a,
1710
- throttle: i,
1391
+ let r = !e.error && !e.filename && e.message === "Script error.";
1392
+ an({
1393
+ context: t,
1711
1394
  spanName: "browser.error",
1712
1395
  source: "window.error",
1713
- error: (n = t.error) == null ? t.message : n,
1714
- extra: j({
1715
- "code.filepath": t.filename,
1716
- "code.lineno": t.lineno,
1717
- "code.column": t.colno
1396
+ error: (n = e.error) == null ? e.message : n,
1397
+ extra: C({
1398
+ "code.filepath": e.filename,
1399
+ "code.lineno": e.lineno,
1400
+ "code.column": e.colno
1718
1401
  }, r ? { "error.cross_origin": !0 } : {})
1719
1402
  });
1720
- }, s = (t) => {
1721
- Zn({
1722
- context: e,
1723
- counter: a,
1724
- throttle: i,
1403
+ }, r = (e) => {
1404
+ an({
1405
+ context: t,
1725
1406
  spanName: "browser.unhandledrejection",
1726
1407
  source: "unhandledrejection",
1727
- error: t.reason,
1728
- exceptionType: t.reason instanceof Error ? t.reason.name : "UnhandledRejection"
1408
+ error: e.reason,
1409
+ exceptionType: e.reason instanceof Error ? e.reason.name : "UnhandledRejection"
1729
1410
  });
1730
- }, c = (t) => {
1731
- if (t instanceof ErrorEvent) return;
1732
- let n = t.target;
1411
+ }, i = (e) => {
1412
+ if (e instanceof ErrorEvent) return;
1413
+ let n = e.target;
1733
1414
  if (!(n instanceof Element)) return;
1734
- let r = n, o = r.src || r.href || n.currentSrc || "";
1735
- Zn({
1736
- context: e,
1737
- counter: a,
1738
- throttle: i,
1415
+ let r = n, i = r.src || r.href || n.currentSrc || "";
1416
+ an({
1417
+ context: t,
1739
1418
  spanName: "browser.resource_error",
1740
1419
  source: "resource",
1741
- error: /* @__PURE__ */ Error(`Resource load failed: ${n.tagName.toLowerCase()} ${o}`),
1420
+ error: /* @__PURE__ */ Error(`Resource load failed: ${n.tagName.toLowerCase()} ${i}`),
1742
1421
  exceptionType: "ResourceError",
1743
1422
  extra: {
1744
- "url.full": e.config.hooks.redactUrl(o),
1423
+ "url.full": t.config.hooks.redactUrl(i),
1745
1424
  "html.tag": n.tagName
1746
1425
  }
1747
1426
  });
1748
1427
  };
1749
- window.addEventListener("error", o), window.addEventListener("unhandledrejection", s), window.addEventListener("error", c, !0), t.push(() => window.removeEventListener("error", o), () => window.removeEventListener("unhandledrejection", s), () => window.removeEventListener("error", c, !0));
1428
+ window.addEventListener("error", n), window.addEventListener("unhandledrejection", r), window.addEventListener("error", i, !0), e.push(() => window.removeEventListener("error", n), () => window.removeEventListener("unhandledrejection", r), () => window.removeEventListener("error", i, !0));
1750
1429
  },
1751
1430
  shutdown() {
1752
- for (; t.length;) {
1753
- var e;
1754
- (e = t.pop()) == null || e();
1431
+ for (; e.length;) {
1432
+ var t;
1433
+ (t = e.pop()) == null || t();
1755
1434
  }
1756
1435
  }
1757
1436
  };
1758
- }, $n = [
1759
- 0,
1760
- .01,
1761
- .025,
1762
- .05,
1763
- .075,
1764
- .1,
1765
- .15,
1766
- .25,
1767
- .5,
1768
- 1
1769
- ], G = [
1770
- 0,
1771
- 50,
1772
- 100,
1773
- 200,
1774
- 300,
1775
- 500,
1776
- 800,
1777
- 1e3,
1778
- 1500,
1779
- 2e3,
1780
- 2500,
1781
- 4e3,
1782
- 5e3,
1783
- 1e4
1784
- ], er = 50, tr = 100, nr = 700, rr = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, ir = (e) => Number.isFinite(e) ? e : void 0, ar = (e, t) => {
1437
+ }, sn = 50, cn = (e, t) => typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : t, ln = (e) => Number.isFinite(e) ? e : void 0, un = (e, t) => {
1785
1438
  var n;
1786
1439
  let r = (n = e.attribution) == null ? void 0 : n[0];
1787
1440
  return r != null && r.containerSrc ? t(r.containerSrc) : (r == null ? void 0 : r.containerName) || (r == null ? void 0 : r.name) || e.name || "unknown";
1788
- }, or = (e, t) => ({
1441
+ }, dn = (e, t) => ({
1789
1442
  "long_task.script.duration": e.duration,
1790
1443
  "long_task.script.execution_start": e.executionStart,
1791
1444
  "long_task.script.forced_style_and_layout_duration": e.forcedStyleAndLayoutDuration,
@@ -1797,127 +1450,130 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1797
1450
  "long_task.script.source_url": e.sourceURL ? t(e.sourceURL) : "",
1798
1451
  "long_task.script.start_time": e.startTime,
1799
1452
  "long_task.script.window_attribution": e.windowAttribution
1800
- }), sr = (e = {}) => {
1801
- let t = rr(e.threshold, er), n = Math.max(t, rr(e.warningThreshold, tr)), r, i, a = [];
1453
+ }), fn = (e = {}) => {
1454
+ let t = cn(e.threshold, sn), n, r, i = [];
1802
1455
  return {
1803
1456
  name: "long-task",
1804
1457
  init(e) {
1805
- var o;
1458
+ var a;
1806
1459
  if (typeof PerformanceObserver > "u" || typeof performance > "u") return;
1807
- let s = (o = PerformanceObserver.supportedEntryTypes) == null ? [] : o, c = s.includes("long-animation-frame") ? "long-animation-frame" : s.includes("longtask") ? "longtask" : void 0;
1808
- if (!c) return;
1809
- let l = e.meter.createCounter("browser.long_task.count", { description: "Number of long tasks and long animation frames" }), u = e.meter.createHistogram("browser.long_task.duration", {
1810
- description: "Duration of long tasks and long animation frames",
1811
- unit: "ms",
1812
- advice: { explicitBucketBoundaries: G }
1813
- }), d = e.meter.createHistogram("browser.long_task.blocking_duration", {
1814
- description: "Blocking duration of long animation frames",
1815
- unit: "ms",
1816
- advice: { explicitBucketBoundaries: G }
1817
- }), f = (r) => {
1818
- var i;
1819
- let a = I(e, "metrics"), o = I(e, "traces");
1820
- if (!a && !o || !Number.isFinite(r.duration) || r.duration < t) return;
1821
- let s = r.entryType === "long-animation-frame", c = s ? r : void 0, f = (i = c == null ? void 0 : c.scripts) == null ? [] : i, p = f.reduce((e, t) => !e || t.duration > e.duration ? t : e, void 0), m = E("long-task"), h = performance.timeOrigin + r.startTime, g = h + r.duration, _ = r.duration >= n ? L.warning : L.success, v = s ? "long-animation-frame" : "long-task", y = p != null && p.sourceURL ? e.config.hooks.redactUrl(p.sourceURL) : void 0, b = s ? void 0 : ar(r, e.config.hooks.redactUrl), x = y || (p == null ? void 0 : p.sourceFunctionName) || b || "unknown";
1822
- if (o) {
1823
- var S;
1824
- let t = e.startSpan("browser.long_task", j(j(j(j(j(j(j(j({}, e.config.hooks.getPageAttributes()), z({
1825
- errorType: _ === L.warning ? "main_thread_blocked" : "none",
1826
- result: _,
1827
- spanSubtype: v,
1828
- spanType: R.longtask
1829
- })), {}, {
1830
- [O.longTaskBlockingDuration]: (S = c == null ? void 0 : c.blockingDuration) == null ? r.duration : S,
1831
- [O.longTaskDuration]: r.duration,
1832
- [O.longTaskEntryType]: v,
1833
- [O.longTaskId]: m,
1834
- [O.longTaskIsFrozenFrame]: r.duration >= nr,
1835
- [O.longTaskScriptCount]: f.length
1836
- }, b ? { [O.longTaskCulprit]: b } : {}), p ? {
1837
- [O.longTaskCulprit]: x,
1838
- "long_task.culprit.duration": p.duration,
1839
- "long_task.culprit.forced_style_and_layout_duration": p.forcedStyleAndLayoutDuration,
1840
- "long_task.culprit.function_name": p.sourceFunctionName,
1841
- "long_task.culprit.invoker_type": p.invokerType
1842
- } : {}), ir(c == null ? void 0 : c.firstUIEventTimestamp) === void 0 ? {} : { "long_task.first_ui_event_timestamp": c.firstUIEventTimestamp }), ir(c == null ? void 0 : c.renderStart) === void 0 ? {} : { "long_task.render_start": c.renderStart }), ir(c == null ? void 0 : c.styleAndLayoutStart) === void 0 ? {} : { "long_task.style_and_layout_start": c.styleAndLayoutStart }), c ? { [O.longTaskStartTime]: c.startTime } : {}), { startTime: h });
1843
- f.forEach((n) => {
1844
- t.addEvent("long_task.script", e.applyRedact(or(n, e.config.hooks.redactUrl)), performance.timeOrigin + n.startTime);
1845
- }), t.end(g), e.notifyActivity({
1846
- endTime: g,
1847
- startTime: h,
1848
- type: "long_task"
1849
- });
1850
- }
1851
- if (a) {
1852
- let t = e.applyRedact(j(j(j({}, e.config.hooks.getMetricAttributes()), B(e.getRuntimeAttributesAt(h))), {}, { [O.longTaskEntryType]: v }));
1853
- l.add(1, t), u.record(r.duration, t), c && d.record(c.blockingDuration, t);
1854
- }
1855
- }, p = (e) => e.forEach((e) => f(e));
1460
+ let o = (a = PerformanceObserver.supportedEntryTypes) == null ? [] : a, s = o.includes("long-animation-frame") ? "long-animation-frame" : o.includes("longtask") ? "longtask" : void 0;
1461
+ if (!s) return;
1462
+ let c = (n) => {
1463
+ var r, i;
1464
+ if (!e.isSampled() || !Number.isFinite(n.duration) || n.duration < t) return;
1465
+ let a = n.entryType === "long-animation-frame", o = a ? n : void 0, s = (r = o == null ? void 0 : o.scripts) == null ? [] : r, c = h("long-task"), l = performance.timeOrigin + n.startTime, u = l + n.duration, d = a ? "long-animation-frame" : "long-task", f = a ? void 0 : un(n, e.config.hooks.redactUrl), p = e.startSpan("browser.long_task", C(C(C(C(C(C(C({}, e.config.hooks.getPageAttributes()), N({
1466
+ errorType: "none",
1467
+ result: j.success,
1468
+ spanSubtype: d,
1469
+ spanType: M.longtask
1470
+ })), {}, {
1471
+ [_.longTaskBlockingDuration]: (i = o == null ? void 0 : o.blockingDuration) == null ? n.duration : i,
1472
+ [_.longTaskDuration]: n.duration,
1473
+ [_.longTaskEntryType]: d,
1474
+ [_.longTaskId]: c,
1475
+ [_.eventId]: h("event"),
1476
+ [_.eventTimestamp]: l,
1477
+ [_.eventType]: "long_task"
1478
+ }, f ? { "long_task.attribution": f } : {}), ln(o == null ? void 0 : o.firstUIEventTimestamp) === void 0 ? {} : { "long_task.first_ui_event_timestamp": o.firstUIEventTimestamp }), ln(o == null ? void 0 : o.renderStart) === void 0 ? {} : { "long_task.render_start": o.renderStart }), ln(o == null ? void 0 : o.styleAndLayoutStart) === void 0 ? {} : { "long_task.style_and_layout_start": o.styleAndLayoutStart }), o ? { [_.longTaskStartTime]: o.startTime } : {}), { startTime: l });
1479
+ s.forEach((t) => {
1480
+ p.addEvent("long_task.script", e.applyRedact(dn(t, e.config.hooks.redactUrl)), performance.timeOrigin + t.startTime);
1481
+ }), p.end(u), e.notifyActivity({
1482
+ endTime: u,
1483
+ startTime: l,
1484
+ type: "long_task"
1485
+ });
1486
+ }, l = (e) => e.forEach((e) => c(e));
1856
1487
  try {
1857
1488
  let e = !0;
1858
- r = new PerformanceObserver((t) => {
1489
+ n = new PerformanceObserver((t) => {
1859
1490
  let n = t.getEntries();
1860
- e ? (a.push(...n), i || (i = setTimeout(() => {
1861
- let e = a;
1862
- a = [], i = void 0, p(e);
1863
- }))) : p(n);
1864
- }), r.observe({
1865
- type: c,
1491
+ e ? (i.push(...n), r || (r = setTimeout(() => {
1492
+ let e = i;
1493
+ i = [], r = void 0, l(e);
1494
+ }))) : l(n);
1495
+ }), n.observe({
1496
+ type: s,
1866
1497
  buffered: !0
1867
1498
  }), e = !1;
1868
1499
  } catch (e) {
1869
- r = void 0;
1500
+ n = void 0;
1870
1501
  }
1871
1502
  },
1872
1503
  shutdown() {
1873
- r == null || r.disconnect(), r = void 0, clearTimeout(i), i = void 0, a = [];
1504
+ n == null || n.disconnect(), n = void 0, clearTimeout(r), r = void 0, i = [];
1874
1505
  }
1875
1506
  };
1876
- }, cr = /* @__PURE__ */ new Set(), K = "", q, J, lr = !1, Y = () => typeof location > "u" ? "" : location.href, ur = (e, t) => {
1877
- let n = Y();
1878
- K = n;
1507
+ }, H = /* @__PURE__ */ new Set(), U = "", W, G, K = !1, q = () => typeof location > "u" ? "" : location.href, J = (e, t) => {
1508
+ let n = q();
1509
+ U = n;
1879
1510
  let r = {
1880
1511
  fromUrl: t,
1881
1512
  source: e,
1882
1513
  toUrl: n
1883
1514
  };
1884
- for (let e of Array.from(cr)) e(r);
1885
- }, dr = () => {
1886
- ur("popstate", K || Y());
1887
- }, fr = () => {
1888
- ur("hashchange", K || Y());
1889
- }, pr = () => {
1890
- lr || typeof window > "u" || typeof history > "u" || (lr = !0, K = Y(), q = history.pushState, J = history.replaceState, history.pushState = function(e, t, n) {
1891
- let r = K || Y(), i = q == null ? void 0 : q.apply(this, [
1515
+ for (let e of Array.from(H)) e(r);
1516
+ }, pn = () => {
1517
+ J("popstate", U || q());
1518
+ }, mn = () => {
1519
+ J("hashchange", U || q());
1520
+ }, hn = () => {
1521
+ K || typeof window > "u" || typeof history > "u" || (K = !0, U = q(), W = history.pushState, G = history.replaceState, history.pushState = function(e, t, n) {
1522
+ let r = U || q(), i = W == null ? void 0 : W.apply(this, [
1892
1523
  e,
1893
1524
  t,
1894
1525
  n
1895
1526
  ]);
1896
- return ur("pushState", r), i;
1527
+ return J("pushState", r), i;
1897
1528
  }, history.replaceState = function(e, t, n) {
1898
- let r = K || Y(), i = J == null ? void 0 : J.apply(this, [
1529
+ let r = U || q(), i = G == null ? void 0 : G.apply(this, [
1899
1530
  e,
1900
1531
  t,
1901
1532
  n
1902
1533
  ]);
1903
- return ur("replaceState", r), i;
1904
- }, window.addEventListener("popstate", dr), window.addEventListener("hashchange", fr));
1905
- }, mr = () => {
1906
- !lr || typeof window > "u" || typeof history > "u" || (q && (history.pushState = q), J && (history.replaceState = J), window.removeEventListener("popstate", dr), window.removeEventListener("hashchange", fr), q = void 0, J = void 0, lr = !1, K = "");
1907
- }, hr = (e) => typeof window > "u" || typeof history > "u" ? () => {} : (pr(), cr.add(e), () => {
1908
- cr.delete(e), cr.size === 0 && mr();
1909
- }), gr = ["span", "stopLoadingTime"], _r = new Set([...Object.values(O), N]), vr = () => typeof location > "u" ? "" : location.href, yr = () => {
1534
+ return J("replaceState", r), i;
1535
+ }, window.addEventListener("popstate", pn), window.addEventListener("hashchange", mn));
1536
+ }, gn = () => {
1537
+ !K || typeof window > "u" || typeof history > "u" || (W && (history.pushState = W), G && (history.replaceState = G), window.removeEventListener("popstate", pn), window.removeEventListener("hashchange", mn), W = void 0, G = void 0, K = !1, U = "");
1538
+ }, _n = (e) => typeof window > "u" || typeof history > "u" ? () => {} : (hn(), H.add(e), () => {
1539
+ H.delete(e), H.size === 0 && gn();
1540
+ });
1541
+ //#endregion
1542
+ //#region \0@oxc-project+runtime@0.128.0/helpers/objectWithoutPropertiesLoose.js
1543
+ function vn(e, t) {
1544
+ if (e == null) return {};
1545
+ var n = {};
1546
+ for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
1547
+ if (t.includes(r)) continue;
1548
+ n[r] = e[r];
1549
+ }
1550
+ return n;
1551
+ }
1552
+ //#endregion
1553
+ //#region \0@oxc-project+runtime@0.128.0/helpers/objectWithoutProperties.js
1554
+ function yn(e, t) {
1555
+ if (e == null) return {};
1556
+ var n, r, i = vn(e, t);
1557
+ if (Object.getOwnPropertySymbols) {
1558
+ var a = Object.getOwnPropertySymbols(e);
1559
+ for (r = 0; r < a.length; r++) n = a[r], t.includes(n) || {}.propertyIsEnumerable.call(e, n) && (i[n] = e[n]);
1560
+ }
1561
+ return i;
1562
+ }
1563
+ //#endregion
1564
+ //#region src/plugins/page-view.ts
1565
+ var bn = ["stopLoadingTime"], xn = new Set([...Object.values(_), D]), Sn = () => typeof location > "u" ? "" : location.href, Cn = () => {
1910
1566
  if (typeof performance > "u") return {};
1911
1567
  let e = performance.getEntriesByType("navigation")[0];
1912
1568
  if (!e) return {};
1913
1569
  let t = {}, n = (e, n) => {
1914
1570
  Number.isFinite(n) && n > 0 && (t[e] = n);
1915
1571
  };
1916
- return n(O.viewFirstByte, e.responseStart), n(O.viewDomInteractive, e.domInteractive), n(O.viewDomContentLoaded, e.domContentLoadedEventEnd), n(O.viewDomComplete, e.domComplete), n(O.viewLoadEvent, e.loadEventEnd), t;
1917
- }, br = (e) => {
1572
+ return n(_.viewFirstByte, e.responseStart), n(_.viewDomInteractive, e.domInteractive), n(_.viewDomContentLoaded, e.domContentLoadedEventEnd), n(_.viewDomComplete, e.domComplete), n(_.viewLoadEvent, e.loadEventEnd), t;
1573
+ }, wn = (e) => {
1918
1574
  let t = e.indexOf("?");
1919
1575
  return t < 0 ? e : e.slice(0, t);
1920
- }, xr = (e) => {
1576
+ }, Tn = (e) => {
1921
1577
  let t = e.slice(1);
1922
1578
  if (!t || typeof document > "u" || typeof document.getElementById != "function") return !1;
1923
1579
  try {
@@ -1925,65 +1581,58 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1925
1581
  } catch (e) {
1926
1582
  return !!document.getElementById(t);
1927
1583
  }
1928
- }, Sr = (e, t) => {
1584
+ }, En = (e, t) => {
1929
1585
  try {
1930
1586
  let n = typeof location > "u" ? "http://localhost" : location.href, r = new URL(e, n), i = new URL(t, n);
1931
- return r.pathname !== i.pathname || !xr(i.hash) && br(r.hash) !== br(i.hash);
1587
+ return r.pathname !== i.pathname || !Tn(i.hash) && wn(r.hash) !== wn(i.hash);
1932
1588
  } catch (n) {
1933
1589
  return e !== t;
1934
1590
  }
1935
- }, Cr = () => {
1591
+ }, Dn = () => {
1936
1592
  let e = [];
1937
1593
  return {
1938
1594
  name: "page-view",
1939
1595
  init(t) {
1940
1596
  if (typeof window > "u") return;
1941
- let n, r, i = t.config.view.loadingTime ? t.meter.createHistogram("browser.view.loading_time", {
1942
- description: "Time from view start until network and DOM activity become idle",
1943
- unit: "ms",
1944
- advice: { explicitBucketBoundaries: G }
1945
- }) : void 0, a = (e = Date.now()) => t.setView({}, e), o = (e, n, r = Date.now(), i) => {
1946
- I(t, "logs") && (e.documentVersion += 1, t.emitLog({
1947
- attributes: j(j(j(j(j({}, t.config.hooks.getPageAttributes()), e.attributes), e.snapshotAttributes), {}, {
1948
- "event.type": "view",
1949
- "view.document_version": e.documentVersion,
1950
- "view.duration": Math.max(0, r - e.startedAt),
1951
- "view.is_active": n !== "final",
1952
- "view.snapshot.type": n
1953
- }, i ? { "view.end_reason": i } : {}), e.loadingTime === void 0 ? {} : {
1954
- [O.viewLoadingTime]: e.loadingTime,
1955
- "view.loading_time.source": e.loadingTimeSource
1956
- }),
1957
- body: "browser.view",
1958
- eventName: "browser.view",
1959
- severityNumber: T.INFO,
1960
- severityText: "INFO",
1961
- timestamp: r
1962
- }));
1963
- }, s = (e, r = !0, s = Date.now()) => {
1964
- var c;
1597
+ let n, r, i = (e = Date.now()) => t.setView({}, e), a = (e, n, r = Date.now(), i) => {
1598
+ e.version += 1, t.startSpan("browser.view", C(C(C(C(C({}, t.config.hooks.getPageAttributes()), e.attributes), e.snapshotAttributes), {}, {
1599
+ [_.eventId]: h("event"),
1600
+ [_.eventPhase]: n,
1601
+ [_.eventTimestamp]: r,
1602
+ [_.eventType]: "view",
1603
+ [_.viewStartedAt]: e.startedAt,
1604
+ [_.viewVersion]: e.version
1605
+ }, i ? { "view.end_reason": i } : {}), e.loadingTime === void 0 ? {} : {
1606
+ [_.viewLoadingTime]: e.loadingTime,
1607
+ "view.loading_time.source": e.loadingTimeSource
1608
+ }), {
1609
+ contextTime: r,
1610
+ startTime: r
1611
+ }).end(r);
1612
+ }, o = (e, t = !0, r = Date.now()) => {
1613
+ var o;
1965
1614
  if (!n) {
1966
- r && a(s);
1615
+ t && i(r);
1967
1616
  return;
1968
1617
  }
1969
- let l = j({}, n);
1970
- (c = n.stopLoadingTime) == null || c.call(n), n.loadingTime !== void 0 && I(t, "metrics") && (i == null || i.record(n.loadingTime, t.applyRedact(j(j(j({}, t.config.hooks.getMetricAttributes()), B(t.getRuntimeAttributes())), {}, { "view.loading_type": n.loadingType })))), o(n, "final", s, e), n.span.setAttribute("view.end_reason", e), n.span.end(s), n = void 0, r && a(s);
1971
- let { span: u, stopLoadingTime: d } = l;
1972
- return Je(l, gr);
1973
- }, c = (e, t, r) => {
1618
+ let s = C({}, n);
1619
+ (o = n.stopLoadingTime) == null || o.call(n), a(n, "end", r, e), n = void 0, t && i(r);
1620
+ let { stopLoadingTime: c } = s;
1621
+ return yn(s, bn);
1622
+ }, s = (e, t, r) => {
1974
1623
  if (n !== e || !Number.isFinite(t) || t < 0) return;
1975
- let i = j(j({}, e.loadingType === "initial_load" ? yr() : {}), {}, {
1976
- [O.viewLoadingTime]: t,
1624
+ let i = C(C({}, e.loadingType === "initial_load" ? Cn() : {}), {}, {
1625
+ [_.viewLoadingTime]: t,
1977
1626
  "view.loading_time.source": r
1978
1627
  });
1979
- e.span.setAttributes(i), Object.assign(e.snapshotAttributes, i), e.loadingTime = t, e.loadingTimeSource = r, o(e, "update");
1980
- }, l = (e) => {
1628
+ Object.assign(e.snapshotAttributes, i), e.loadingTime = t, e.loadingTimeSource = r, a(e, "update");
1629
+ }, c = (e) => {
1981
1630
  if (!t.config.view.loadingTime || document.visibilityState === "hidden") return;
1982
- let r = !1, i, a = e.loadingType !== "initial_load", o, s, l = !1, u, d = () => {
1631
+ let r = !1, i, a = e.loadingType !== "initial_load", o, c, l = !1, u, d = () => {
1983
1632
  var t;
1984
1633
  if (l || !r || !a || n !== e) return;
1985
- let s = [i, o].filter((e) => e !== void 0);
1986
- s.length && c(e, Math.max(...s), "auto"), (t = e.stopLoadingTime) == null || t.call(e), e.stopLoadingTime = void 0;
1634
+ let c = [i, o].filter((e) => e !== void 0);
1635
+ c.length && s(e, Math.max(...c), "auto"), (t = e.stopLoadingTime) == null || t.call(e), e.stopLoadingTime = void 0;
1987
1636
  }, f = () => {
1988
1637
  var t, n;
1989
1638
  let r = (t = (n = performance).getEntriesByType) == null ? void 0 : t.call(n, "navigation")[0];
@@ -1995,73 +1644,70 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
1995
1644
  n === e && (f(), a = !0, d());
1996
1645
  });
1997
1646
  };
1998
- window.addEventListener("load", t, { once: !0 }), s = () => window.removeEventListener("load", t);
1647
+ window.addEventListener("load", t, { once: !0 }), c = () => window.removeEventListener("load", t);
1999
1648
  }
2000
- let p = Ft(t, e.startedAt, (t) => {
1649
+ let p = ht(t, e.startedAt, (t) => {
2001
1650
  r = !0, t.hadActivity && (i = Math.max(0, t.endTime - e.startedAt)), d();
2002
1651
  }), m = () => {
2003
1652
  var t;
2004
1653
  document.visibilityState === "hidden" && (l = !0, (t = e.stopLoadingTime) == null || t.call(e), e.stopLoadingTime = void 0);
2005
1654
  };
2006
1655
  document.addEventListener("visibilitychange", m), u = () => document.removeEventListener("visibilitychange", m), e.stopLoadingTime = () => {
2007
- p(), s == null || s(), s = void 0, u == null || u(), u = void 0;
1656
+ p(), c == null || c(), c = void 0, u == null || u(), u = void 0;
2008
1657
  }, d();
2009
- }, u = (e) => {
1658
+ }, l = (e) => {
2010
1659
  let n = t.applyRedact(e == null ? {} : e);
2011
- return Object.fromEntries(Object.entries(n).filter(([e, t]) => t !== void 0 && !_r.has(e)));
2012
- }, d = (e, r, i, a = ((e) => (e = n == null ? void 0 : n.rawUrl) == null ? "" : e)()) => {
2013
- var c, d;
1660
+ return Object.fromEntries(Object.entries(n).filter(([e, t]) => t !== void 0 && !xn.has(e)));
1661
+ }, u = (e, r, i, s = ((e) => (e = n == null ? void 0 : n.rawUrl) == null ? "" : e)()) => {
1662
+ var u, d;
2014
1663
  if (!t.isSessionActive()) return;
2015
- let f = (c = e.url) == null ? vr() : c, p = t.config.hooks.getViewPathGroup(f), m = (d = e.name) == null ? p : d, h = u(e.attributes);
2016
- s(r, !1);
2017
- let g = E("view"), _ = t.config.hooks.redactUrl(f), v = t.config.hooks.redactUrl(a), y = i === "initial_load", b = y && typeof performance < "u" ? performance.timeOrigin : Date.now(), x = y ? yr() : {};
1664
+ let f = (u = e.url) == null ? Sn() : u, p = t.config.hooks.getViewPathGroup(f), m = (d = e.name) == null ? p : d, g = l(e.attributes);
1665
+ o(r, !1);
1666
+ let v = h("view"), y = t.config.hooks.redactUrl(f), b = t.config.hooks.redactUrl(s), x = i === "initial_load", S = x && typeof performance < "u" ? performance.timeOrigin : Date.now(), w = x ? Cn() : {};
2018
1667
  t.setView({
2019
- attributes: h,
2020
- id: g,
1668
+ attributes: g,
1669
+ id: v,
2021
1670
  loadingType: i,
2022
1671
  name: m,
2023
- startedAt: b,
2024
- url: _,
1672
+ startedAt: S,
1673
+ url: y,
2025
1674
  urlPathGroup: p
2026
- }, b);
2027
- let S = j(j(j(j(j({}, h), t.config.hooks.getPageAttributes()), x), z({
2028
- errorType: "none",
2029
- spanSubtype: y ? "navigate" : r,
2030
- spanType: y ? R.document : R.route
2031
- })), {}, {
2032
- [O.viewId]: g,
2033
- [O.viewName]: m,
2034
- [O.viewUrl]: _,
2035
- [O.viewUrlPathGroup]: p,
2036
- [O.viewLoadingType]: i,
2037
- "url.previous": v,
2038
- "event.source": r
2039
- }, y ? { "document.referrer": t.config.hooks.redactUrl(document.referrer || "") } : {});
2040
- n = {
2041
- attributes: h,
2042
- documentVersion: 0,
2043
- id: g,
1675
+ }, S), n = {
1676
+ attributes: g,
1677
+ version: 0,
1678
+ id: v,
2044
1679
  loadingType: i,
2045
1680
  name: m,
2046
1681
  rawUrl: f,
2047
- snapshotAttributes: S,
2048
- span: t.startSpan("browser.view", S, { startTime: b }),
2049
- startedAt: b,
2050
- url: _,
1682
+ snapshotAttributes: C(C(C(C(C({}, g), t.config.hooks.getPageAttributes()), w), N({
1683
+ errorType: "none",
1684
+ spanSubtype: x ? "navigate" : r,
1685
+ spanType: x ? M.document : M.route
1686
+ })), {}, {
1687
+ [_.viewId]: v,
1688
+ [_.viewName]: m,
1689
+ [_.viewUrl]: y,
1690
+ [_.viewUrlPathGroup]: p,
1691
+ [_.viewLoadingType]: i,
1692
+ "url.previous": b,
1693
+ "event.source": r
1694
+ }, x ? { "document.referrer": t.config.hooks.redactUrl(document.referrer || "") } : {}),
1695
+ startedAt: S,
1696
+ url: y,
2051
1697
  urlPathGroup: p
2052
- }, o(n, "create", b), l(n);
2053
- }, f = t.onViewCommand((e) => {
1698
+ }, a(n, "start", S), c(n);
1699
+ }, d = t.onViewCommand((e) => {
2054
1700
  if (e.type === "start") {
2055
- d(e.options, "manual", n ? "route_change" : "initial_load");
1701
+ u(e.options, "manual", n ? "route_change" : "initial_load");
2056
1702
  return;
2057
1703
  }
2058
1704
  if (n) {
2059
1705
  if (e.type === "set_loading_time") {
2060
1706
  var r;
2061
- (r = n.stopLoadingTime) == null || r.call(n), n.stopLoadingTime = void 0, c(n, Math.max(0, e.time - n.startedAt), "manual");
1707
+ (r = n.stopLoadingTime) == null || r.call(n), n.stopLoadingTime = void 0, s(n, Math.max(0, e.time - n.startedAt), "manual");
2062
1708
  return;
2063
1709
  }
2064
- n.name !== e.name && (n.name = e.name, n.span.setAttribute(O.viewName, e.name), n.snapshotAttributes[O.viewName] = e.name, t.setView({
1710
+ n.name !== e.name && (n.name = e.name, n.snapshotAttributes[_.viewName] = e.name, t.setView({
2065
1711
  attributes: n.attributes,
2066
1712
  id: n.id,
2067
1713
  loadingType: n.loadingType,
@@ -2069,28 +1715,28 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2069
1715
  startedAt: n.startedAt,
2070
1716
  url: n.url,
2071
1717
  urlPathGroup: n.urlPathGroup
2072
- }), o(n, "update"));
1718
+ }), a(n, "update"));
2073
1719
  }
2074
- }), p = () => {};
2075
- t.config.view.tracking === "auto" && (n || d({}, "load", "initial_load"), p = hr((e) => {
2076
- Sr(e.fromUrl, e.toUrl) && d({}, e.source, "route_change", e.fromUrl);
1720
+ }), f = () => {};
1721
+ t.config.view.tracking === "auto" && (n || u({}, "load", "initial_load"), f = _n((e) => {
1722
+ En(e.fromUrl, e.toUrl) && u({}, e.source, "route_change", e.fromUrl);
2077
1723
  }));
2078
- let m = (e) => {
2079
- e.persisted || s("pagehide");
2080
- }, h = (e) => {
2081
- e.persisted && t.config.view.tracking === "auto" && d({}, "bfCache", "bf_cache", n == null ? void 0 : n.rawUrl);
1724
+ let p = (e) => {
1725
+ e.persisted || o("pagehide");
1726
+ }, m = (e) => {
1727
+ e.persisted && t.config.view.tracking === "auto" && u({}, "bfCache", "bf_cache", n == null ? void 0 : n.rawUrl);
2082
1728
  }, g = t.onSessionLifecycle((e) => {
2083
1729
  if (e.type === "expired") {
2084
- r = s("session_expired", !0, e.expiredAt);
1730
+ r = o("session_expired", !0, e.expiredAt);
2085
1731
  return;
2086
1732
  }
2087
- r && (d({
1733
+ r && (u({
2088
1734
  attributes: r.attributes,
2089
1735
  name: r.name,
2090
1736
  url: r.rawUrl
2091
1737
  }, "sessionRenewal", "session_renewal", r.rawUrl), r = void 0);
2092
1738
  });
2093
- window.addEventListener("pagehide", m), window.addEventListener("pageshow", h), e.push(p, g, f, () => window.removeEventListener("pagehide", m), () => window.removeEventListener("pageshow", h), () => s("shutdown"));
1739
+ window.addEventListener("pagehide", p), window.addEventListener("pageshow", m), e.push(f, g, d, () => window.removeEventListener("pagehide", p), () => window.removeEventListener("pageshow", m), () => o("shutdown"));
2094
1740
  },
2095
1741
  shutdown() {
2096
1742
  for (; e.length;) {
@@ -2099,27 +1745,27 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2099
1745
  }
2100
1746
  }
2101
1747
  };
2102
- }, wr = 5e3, Tr = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, Er = (e, t, n, r) => ({
1748
+ }, On = 5e3, kn = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, An = (e, t, n, r) => ({
2103
1749
  expiresAt: Math.min(t + n, t + r),
2104
1750
  id: e,
2105
1751
  startedAt: t,
2106
1752
  status: "active"
2107
- }), X = (e, t, n) => {
1753
+ }), Y = (e, t, n) => {
2108
1754
  if (t >= e.startedAt + n) return "maxLifetime";
2109
1755
  if (t >= e.expiresAt) return "inactivity";
2110
- }, Dr = (e, t, n, r) => j(j({}, e), {}, { expiresAt: Math.min(t + n, e.startedAt + r) }), Or = (e, t, n) => {
1756
+ }, jn = (e, t, n, r) => C(C({}, e), {}, { expiresAt: Math.min(t + n, e.startedAt + r) }), Mn = (e, t, n) => {
2111
1757
  if (!e) return null;
2112
1758
  try {
2113
1759
  let r = JSON.parse(e);
2114
- if (r.status === "active" && typeof r.id == "string" && r.id.length > 0 && Tr(r.startedAt) && r.startedAt <= t + wr && Tr(r.expiresAt) && r.expiresAt >= r.startedAt && r.expiresAt <= r.startedAt + n || r.status === "expired" && typeof r.previousId == "string" && r.previousId.length > 0 && (r.reason === "inactivity" || r.reason === "maxLifetime") && Tr(r.expiredAt) && r.expiredAt <= t + wr) return r;
1760
+ if (r.status === "active" && typeof r.id == "string" && r.id.length > 0 && kn(r.startedAt) && r.startedAt <= t + On && kn(r.expiresAt) && r.expiresAt >= r.startedAt && r.expiresAt <= r.startedAt + n || r.status === "expired" && typeof r.previousId == "string" && r.previousId.length > 0 && (r.reason === "inactivity" || r.reason === "maxLifetime") && kn(r.expiredAt) && r.expiredAt <= t + On) return r;
2115
1761
  } catch (e) {}
2116
1762
  return null;
2117
- }, kr = 900 * 1e3, Z = 14400 * 1e3, Ar = 1e3, jr = 6e4, Mr = [
1763
+ }, Nn = 900 * 1e3, X = 14400 * 1e3, Pn = 1e3, Fn = 6e4, In = [
2118
1764
  "click",
2119
1765
  "keydown",
2120
1766
  "scroll",
2121
1767
  "touchstart"
2122
- ], Nr = /* @__PURE__ */ new Map(), Pr = (e) => {
1768
+ ], Ln = /* @__PURE__ */ new Map(), Rn = (e) => {
2123
1769
  let t = typeof window < "u", n = () => {
2124
1770
  var n;
2125
1771
  if (t) try {
@@ -2127,83 +1773,95 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2127
1773
  } catch (e) {
2128
1774
  t = !1;
2129
1775
  }
2130
- return (n = Nr.get(e)) == null ? null : n;
1776
+ return (n = Ln.get(e)) == null ? null : n;
2131
1777
  };
2132
1778
  return n(), {
2133
1779
  isLocalStorage: () => t,
2134
1780
  read: n,
2135
1781
  write: (n) => {
2136
1782
  let r = JSON.stringify(n);
2137
- if (Nr.set(e, r), t) try {
1783
+ if (Ln.set(e, r), t) try {
2138
1784
  window.localStorage.setItem(e, r);
2139
1785
  } catch (e) {
2140
1786
  t = !1;
2141
1787
  }
2142
1788
  }
2143
1789
  };
2144
- }, Fr = (e, t) => {
1790
+ }, zn = (e, t) => {
2145
1791
  let n = "";
2146
1792
  try {
2147
1793
  n = new URL(e).host;
2148
1794
  } catch (t) {
2149
1795
  n = e;
2150
1796
  }
2151
- return `bk_ot_session__${D(`${t}\0${n || "default"}`)}`;
2152
- }, Ir = (e, t) => {
2153
- t.reason && e.emitLog({
2154
- severityNumber: T.INFO,
2155
- severityText: "INFO",
2156
- body: t.reason === "init" ? "session.start" : "session.rotate",
2157
- attributes: j(j({}, e.config.hooks.getPageAttributes()), {}, {
2158
- [O.sessionHasReplay]: !1,
2159
- [O.sessionId]: t.record.id,
2160
- [O.sessionStartTime]: t.record.startedAt,
2161
- "session.rotate.reason": t.reason
2162
- }, t.previousId ? { "session.previous_id": t.previousId } : {})
2163
- });
2164
- }, Lr = (e = {}) => {
1797
+ return `bk_ot_session__${g(`${t}\0${n || "default"}`)}`;
1798
+ }, Bn = (e, t, n, r, i, a, o) => {
1799
+ e.startSpan("browser.session", C(C(C({}, e.config.hooks.getPageAttributes()), N({
1800
+ spanSubtype: t,
1801
+ spanType: M.session
1802
+ })), {}, {
1803
+ [_.eventId]: h("event"),
1804
+ [_.eventPhase]: t,
1805
+ [_.eventTimestamp]: i,
1806
+ [_.eventType]: "session",
1807
+ [_.sessionHasReplay]: !1,
1808
+ [_.sessionId]: n,
1809
+ [_.sessionStartTime]: r,
1810
+ [_.sessionType]: "user",
1811
+ "session.lifecycle.reason": a
1812
+ }, o ? { "session.previous_id": o } : {}), {
1813
+ contextTime: i,
1814
+ startTime: i
1815
+ }).end(i);
1816
+ }, Vn = (e = {}) => {
2165
1817
  let t = [];
2166
1818
  return {
2167
1819
  name: "session",
2168
1820
  init(n) {
2169
1821
  var r;
2170
1822
  if (typeof window > "u" || typeof document > "u") {
1823
+ let e = Date.now(), t = h("session");
2171
1824
  n.setRuntimeAttributes({
2172
- [O.sessionHasReplay]: !1,
2173
- [O.sessionId]: E("session")
2174
- });
1825
+ [_.sessionHasReplay]: !1,
1826
+ [_.sessionId]: t,
1827
+ [_.sessionStartTime]: e,
1828
+ [_.sessionType]: "user"
1829
+ }, e);
2175
1830
  return;
2176
1831
  }
2177
- let i = (r = e.storageKey) == null ? Fr(n.config.transport.endpoint, n.config.application.name) : r, a = Pr(i), o = typeof performance < "u" && Number.isFinite(performance.timeOrigin) ? performance.timeOrigin : Date.now(), s, c, l = (e = Date.now()) => Or(a.read(), e, Z), u = () => {
2178
- c !== void 0 && (clearTimeout(c), c = void 0);
2179
- }, d = (e, t = Date.now()) => {
2180
- let r = s;
2181
- r && (n.notifySessionLifecycle({
1832
+ let i = (r = e.storageKey) == null ? zn(n.config.transport.endpoint, n.config.application.name) : r, a = Rn(i), o = typeof performance < "u" && Number.isFinite(performance.timeOrigin) ? performance.timeOrigin : Date.now(), s, c, l, u = (e = Date.now()) => Mn(a.read(), e, X), d = () => {
1833
+ l !== void 0 && (clearTimeout(l), l = void 0);
1834
+ }, f = (e, t = Date.now()) => {
1835
+ var r;
1836
+ let i = s;
1837
+ i && (n.notifySessionLifecycle({
2182
1838
  expiredAt: t,
2183
- id: r,
1839
+ id: i,
2184
1840
  reason: e,
2185
1841
  type: "expired"
2186
- }), u(), s = void 0, n.setRuntimeAttributes({
2187
- [O.sessionHasReplay]: void 0,
2188
- [O.sessionId]: void 0
1842
+ }), Bn(n, "end", i, (r = c) == null ? t : r, t, e), d(), s = void 0, c = void 0, n.setRuntimeAttributes({
1843
+ [_.sessionHasReplay]: void 0,
1844
+ [_.sessionId]: void 0,
1845
+ [_.sessionStartTime]: void 0,
1846
+ [_.sessionType]: void 0
2189
1847
  }, t), n.flush());
2190
- }, f = () => {
2191
- let e = Date.now(), t = l(e);
1848
+ }, p = () => {
1849
+ let e = Date.now(), t = u(e);
2192
1850
  if (!t) {
2193
- d("external", e);
1851
+ f("external", e);
2194
1852
  return;
2195
1853
  }
2196
1854
  if (t.status === "expired") {
2197
- d(t.reason, t.expiredAt);
1855
+ f(t.reason, t.expiredAt);
2198
1856
  return;
2199
1857
  }
2200
1858
  if (t.id !== s) {
2201
- d("external", e);
1859
+ f("external", e);
2202
1860
  return;
2203
1861
  }
2204
- let n = X(t, e, Z);
1862
+ let n = Y(t, e, X);
2205
1863
  if (!n) {
2206
- p(t);
1864
+ m(t);
2207
1865
  return;
2208
1866
  }
2209
1867
  let r = {
@@ -2212,135 +1870,135 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2212
1870
  reason: n,
2213
1871
  status: "expired"
2214
1872
  };
2215
- a.write(r), d(n, e);
2216
- }, p = (e) => {
2217
- u();
2218
- let t = Math.min(e.expiresAt, e.startedAt + Z);
2219
- c = setTimeout(f, Math.max(0, t - Date.now()));
2220
- }, m = (e, t) => {
1873
+ a.write(r), f(n, e);
1874
+ }, m = (e) => {
1875
+ d();
1876
+ let t = Math.min(e.expiresAt, e.startedAt + X);
1877
+ l = setTimeout(p, Math.max(0, t - Date.now()));
1878
+ }, g = (e, t) => {
2221
1879
  let r = e.id !== s;
2222
- s = e.id, n.setRuntimeAttributes({
2223
- [O.sessionHasReplay]: !1,
2224
- [O.sessionId]: e.id
2225
- }, Math.min(e.startedAt, o)), p(e), r && t && n.notifySessionLifecycle({
1880
+ s = e.id, c = e.startedAt, n.setRuntimeAttributes({
1881
+ [_.sessionHasReplay]: !1,
1882
+ [_.sessionId]: e.id,
1883
+ [_.sessionStartTime]: e.startedAt,
1884
+ [_.sessionType]: "user"
1885
+ }, Math.min(e.startedAt, o)), m(e), r && t && n.notifySessionLifecycle({
2226
1886
  id: e.id,
2227
1887
  previousId: t.previousId,
2228
1888
  reason: t.reason,
2229
1889
  startedAt: e.startedAt,
2230
1890
  type: "renewed"
2231
1891
  });
2232
- }, h = (e = !1) => {
2233
- let t = Date.now(), r = l(t);
2234
- if ((r == null ? void 0 : r.status) === "active" && !X(r, t, Z)) {
2235
- let e = Dr(r, t, kr, Z);
2236
- a.write(e), m(e, s ? void 0 : { reason: "shared" });
1892
+ }, v = (e = !1) => {
1893
+ let t = Date.now(), r = u(t);
1894
+ if ((r == null ? void 0 : r.status) === "active" && !Y(r, t, X)) {
1895
+ let e = jn(r, t, Nn, X);
1896
+ a.write(e), g(e, s ? void 0 : { reason: "shared" });
2237
1897
  return;
2238
1898
  }
2239
- let i = (r == null ? void 0 : r.status) === "expired" ? r.previousId : r == null ? void 0 : r.id, o = (r == null ? void 0 : r.status) === "expired" ? r.reason : r ? X(r, t, Z) : e ? "init" : void 0, c = Er(E("session"), t, kr, Z);
2240
- a.write(c), m(c, {
1899
+ let i = (r == null ? void 0 : r.status) === "expired" ? r.previousId : r == null ? void 0 : r.id, o = (r == null ? void 0 : r.status) === "expired" ? r.reason : r ? Y(r, t, X) : e ? "init" : void 0, c = An(h("session"), t, Nn, X);
1900
+ a.write(c), g(c, {
2241
1901
  previousId: i,
2242
1902
  reason: o == null ? "init" : o
2243
- }), Ir(n, {
2244
- previousId: i,
2245
- reason: o == null ? "init" : o,
2246
- record: c
2247
1903
  });
2248
- }, g = () => {
1904
+ let l = o == null ? "init" : o;
1905
+ Bn(n, l === "init" ? "start" : "rotate", c.id, c.startedAt, c.startedAt, l, i);
1906
+ }, y = () => {
2249
1907
  if (!s) return;
2250
- let e = Date.now(), t = l(e);
2251
- if ((t == null ? void 0 : t.status) !== "active" || t.id !== s || X(t, e, Z)) {
2252
- f();
1908
+ let e = Date.now(), t = u(e);
1909
+ if ((t == null ? void 0 : t.status) !== "active" || t.id !== s || Y(t, e, X)) {
1910
+ p();
2253
1911
  return;
2254
1912
  }
2255
- let n = Dr(t, e, kr, Z);
2256
- a.write(n), m(n);
1913
+ let n = jn(t, e, Nn, X);
1914
+ a.write(n), g(n);
2257
1915
  };
2258
- h(!0);
2259
- let _ = 0, v = () => {
1916
+ v(!0);
1917
+ let b = 0, x = () => {
2260
1918
  let e = Date.now();
2261
- e - _ < Ar || (_ = e, h());
2262
- }, y = {
1919
+ e - b < Pn || (b = e, v());
1920
+ }, S = {
2263
1921
  capture: !0,
2264
1922
  passive: !0
2265
1923
  };
2266
- Mr.forEach((e) => window.addEventListener(e, v, y)), t.push(() => {
2267
- Mr.forEach((e) => window.removeEventListener(e, v, y));
1924
+ In.forEach((e) => window.addEventListener(e, x, S)), t.push(() => {
1925
+ In.forEach((e) => window.removeEventListener(e, x, S));
2268
1926
  });
2269
- let b = () => {
2270
- document.visibilityState === "visible" && g();
1927
+ let C = () => {
1928
+ document.visibilityState === "visible" && y();
2271
1929
  };
2272
- document.addEventListener("visibilitychange", b);
2273
- let x = window.setInterval(b, jr);
1930
+ document.addEventListener("visibilitychange", C);
1931
+ let w = window.setInterval(C, Fn);
2274
1932
  t.push(() => {
2275
- document.removeEventListener("visibilitychange", b), window.clearInterval(x);
1933
+ document.removeEventListener("visibilitychange", C), window.clearInterval(w);
2276
1934
  });
2277
- let S = (e) => {
1935
+ let T = (e) => {
2278
1936
  if (!a.isLocalStorage() || e.storageArea !== window.localStorage || e.key !== i) return;
2279
- let t = Date.now(), n = Or(e.newValue, t, Z);
2280
- if ((n == null ? void 0 : n.status) === "active" && n.id === s && !X(n, t, Z)) {
2281
- p(n);
1937
+ let t = Date.now(), n = Mn(e.newValue, t, X);
1938
+ if ((n == null ? void 0 : n.status) === "active" && n.id === s && !Y(n, t, X)) {
1939
+ m(n);
2282
1940
  return;
2283
1941
  }
2284
- d((n == null ? void 0 : n.status) === "expired" ? n.reason : "external", (n == null ? void 0 : n.status) === "expired" ? n.expiredAt : t);
1942
+ f((n == null ? void 0 : n.status) === "expired" ? n.reason : "external", (n == null ? void 0 : n.status) === "expired" ? n.expiredAt : t);
2285
1943
  };
2286
- window.addEventListener("storage", S), t.push(() => window.removeEventListener("storage", S)), t.push(u);
1944
+ window.addEventListener("storage", T), t.push(() => window.removeEventListener("storage", T)), t.push(d);
2287
1945
  },
2288
1946
  shutdown() {
2289
1947
  for (var e; t.length;) (e = t.pop()) == null || e();
2290
1948
  }
2291
1949
  };
2292
- }, Rr = "unknown", zr = 10, Br = 6e4, Vr = 5e3, Hr = 1e3, Ur = (e, t) => !!t && e === t, Wr = (e) => e ? e.replace(/_/g, "-") : Rr, Gr = () => {
2293
- if (typeof performance > "u") return Rr;
1950
+ }, Hn = "unknown", Un = 10, Wn = 6e4, Gn = 5e3, Kn = 1e3, qn = (e, t) => !!t && e === t, Jn = (e) => e ? e.replace(/_/g, "-") : Hn, Yn = () => {
1951
+ if (typeof performance > "u") return Hn;
2294
1952
  let e = performance.getEntriesByType("navigation")[0];
2295
- return Wr(e == null ? void 0 : e.type);
2296
- }, Kr = (e, t) => {
1953
+ return Jn(e == null ? void 0 : e.type);
1954
+ }, Xn = (e, t) => {
2297
1955
  let [n, r] = e === "CLS" ? [.1, .25] : [200, 500];
2298
1956
  return t <= n ? "good" : t <= r ? "needs-improvement" : "poor";
2299
- }, qr = (e) => {
1957
+ }, Z = (e) => {
2300
1958
  var t, n, r;
2301
1959
  if (!(typeof Element > "u" || !(e instanceof Element))) return (t = (n = (r = e.getAttribute("data-bk-action-name")) == null ? e.getAttribute("aria-label") : r) == null ? e.getAttribute("name") : n) == null ? e.tagName.toLowerCase() : t;
2302
- }, Jr = () => {
1960
+ }, Zn = () => {
2303
1961
  if (typeof performance > "u") return;
2304
1962
  let e = performance.interactionCount;
2305
1963
  return typeof e == "number" && Number.isFinite(e) ? e : void 0;
2306
- }, Yr = (e, t) => {
1964
+ }, Qn = (e, t) => {
2307
1965
  var n, r;
2308
1966
  let i = (n = t.value) == null ? 0 : n;
2309
1967
  if (!(t.hadRecentInput || !Number.isFinite(i))) {
2310
- if (e.clsWindowStart === void 0 || t.startTime - ((r = e.clsWindowEnd) == null ? t.startTime : r) >= Hr || t.startTime - e.clsWindowStart >= Vr) {
1968
+ if (e.clsWindowStart === void 0 || t.startTime - ((r = e.clsWindowEnd) == null ? t.startTime : r) >= Kn || t.startTime - e.clsWindowStart >= Gn) {
2311
1969
  var a;
2312
- e.clsWindowStart = t.startTime, e.clsWindowValue = i, e.clsWindowLargestShiftValue = i, e.clsWindowLargestShiftTarget = qr((a = t.sources) == null || (a = a[0]) == null ? void 0 : a.node);
1970
+ e.clsWindowStart = t.startTime, e.clsWindowValue = i, e.clsWindowLargestShiftValue = i, e.clsWindowLargestShiftTarget = Z((a = t.sources) == null || (a = a[0]) == null ? void 0 : a.node);
2313
1971
  } else if (e.clsWindowValue += i, i > e.clsWindowLargestShiftValue) {
2314
1972
  var o;
2315
- e.clsWindowLargestShiftValue = i, e.clsWindowLargestShiftTarget = qr((o = t.sources) == null || (o = o[0]) == null ? void 0 : o.node);
1973
+ e.clsWindowLargestShiftValue = i, e.clsWindowLargestShiftTarget = Z((o = t.sources) == null || (o = o[0]) == null ? void 0 : o.node);
2316
1974
  }
2317
1975
  e.clsWindowEnd = t.startTime, e.clsWindowValue > e.cls && (e.cls = Math.round(e.clsWindowValue * 1e4) / 1e4, e.largestShiftValue = e.clsWindowLargestShiftValue, e.largestShiftTarget = e.clsWindowLargestShiftTarget);
2318
1976
  }
2319
- }, Xr = (e, t) => {
1977
+ }, $n = (e, t) => {
2320
1978
  var n, r;
2321
1979
  if (!t.interactionId || !Number.isFinite(t.duration)) return;
2322
1980
  e.interactionIdMin = Math.min(e.interactionIdMin, t.interactionId), e.interactionIdMax = Math.max(e.interactionIdMax, t.interactionId);
2323
1981
  let i = (n = t.processingStart) == null ? t.startTime : n, a = (r = t.processingEnd) == null ? i : r, o = {
2324
- duration: Math.min(t.duration, Br),
1982
+ duration: Math.min(t.duration, Wn),
2325
1983
  inputDelay: Math.max(0, i - t.startTime),
2326
1984
  interactionId: t.interactionId,
2327
- interactionTarget: qr(t.target),
1985
+ interactionTarget: Z(t.target),
2328
1986
  interactionType: t.name,
2329
1987
  presentationDelay: Math.max(0, t.startTime + t.duration - a),
2330
1988
  processingDuration: Math.max(0, a - i)
2331
1989
  }, s = e.inpCandidates.findIndex((e) => e.interactionId === t.interactionId);
2332
- s >= 0 ? o.duration > e.inpCandidates[s].duration && (e.inpCandidates[s] = o) : e.inpCandidates.push(o), e.inpCandidates.sort((e, t) => t.duration - e.duration).splice(zr);
2333
- }, Zr = (e) => {
2334
- let t = Jr(), n = t !== void 0 && e.interactionCountAtStart !== void 0 ? Math.max(0, t - e.interactionCountAtStart) : e.interactionIdMin === Infinity ? 0 : (e.interactionIdMax - e.interactionIdMin) / 7 + 1;
1990
+ s >= 0 ? o.duration > e.inpCandidates[s].duration && (e.inpCandidates[s] = o) : e.inpCandidates.push(o), e.inpCandidates.sort((e, t) => t.duration - e.duration).splice(Un);
1991
+ }, er = (e) => {
1992
+ let t = Zn(), n = t !== void 0 && e.interactionCountAtStart !== void 0 ? Math.max(0, t - e.interactionCountAtStart) : e.interactionIdMin === Infinity ? 0 : (e.interactionIdMax - e.interactionIdMin) / 7 + 1;
2335
1993
  if (e.inpCandidates.length) return e.inpCandidates[Math.min(e.inpCandidates.length - 1, Math.floor(n / 50))];
2336
- }, Qr = (e, t) => {
1994
+ }, tr = (e, t) => {
2337
1995
  var n;
2338
1996
  return {
2339
1997
  "rum.navigation.type": (n = e.navigationType) == null ? t : n,
2340
- [O.vitalMetric]: e.name.toLowerCase(),
2341
- [O.vitalRating]: e.rating
1998
+ [_.vitalMetric]: e.name.toLowerCase(),
1999
+ [_.vitalRating]: e.rating
2342
2000
  };
2343
- }, $r = (e, t) => {
2001
+ }, nr = (e, t) => {
2344
2002
  var n;
2345
2003
  let r = (n = e.attribution) == null ? {} : n, i = {}, a = (e) => r[e], o = (e, t, n) => {
2346
2004
  t != null && (typeof t == "string" || typeof t == "number" || typeof t == "boolean") && (i[e] = typeof t == "string" && n ? n(t) : t);
@@ -2364,12 +2022,12 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2364
2022
  default: break;
2365
2023
  }
2366
2024
  return i;
2367
- }, ei = () => {
2025
+ }, rr = () => {
2368
2026
  let e, t = !1;
2369
2027
  return {
2370
2028
  name: "web-vitals",
2371
2029
  init(n) {
2372
- return M(function* () {
2030
+ return E(function* () {
2373
2031
  if (typeof window > "u") return;
2374
2032
  let r;
2375
2033
  try {
@@ -2382,55 +2040,49 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2382
2040
  return;
2383
2041
  }
2384
2042
  if (t) return;
2385
- let { onFCP: a, onLCP: o, onTTFB: s } = r, c = Gr(), l = n.meter.createHistogram("browser.web_vital.cls", {
2386
- unit: "1",
2387
- description: "Cumulative Layout Shift",
2388
- advice: { explicitBucketBoundaries: $n }
2389
- }), u = n.meter.createHistogram("browser.web_vital.duration", {
2390
- unit: "ms",
2391
- description: "Web Vitals duration metrics, including FCP, INP, LCP and TTFB",
2392
- advice: { explicitBucketBoundaries: G }
2393
- }), d = (e, t, r) => {
2394
- if (!I(n, "traces")) return;
2395
- let i = e.name.toLowerCase();
2396
- n.startSpan("browser.web_vital", j(j(j(j(j({}, n.config.hooks.getPageAttributes()), t), Qr(e, c)), z({
2043
+ let { onFCP: a, onLCP: o, onTTFB: s } = r, c = Yn(), l = (e, t, r, i = r == null ? Date.now() : r) => {
2044
+ if (!n.isSampled()) return;
2045
+ let a = e.name.toLowerCase();
2046
+ n.startSpan("browser.web_vital", C(C(C(C(C({}, n.config.hooks.getPageAttributes()), t), tr(e, c)), N({
2397
2047
  errorType: e.rating === "good" ? "none" : "slow",
2398
- result: lt(e.rating),
2399
- spanSubtype: i,
2400
- spanType: R.vital
2048
+ result: Ke(e.rating),
2049
+ spanSubtype: a,
2050
+ spanType: M.vital
2401
2051
  })), {}, {
2402
- [O.vitalMetric]: i,
2403
- [O.vitalValue]: e.value,
2404
- [O.vitalRating]: e.rating,
2052
+ [_.vitalMetric]: a,
2053
+ [_.vitalValue]: e.value,
2054
+ [_.vitalRating]: e.rating,
2055
+ [_.eventId]: h("event"),
2056
+ [_.eventTimestamp]: i,
2057
+ [_.eventType]: "vital",
2405
2058
  "vital.id": e.id
2406
- }, $r(e, n.config.hooks.redactUrl)), r === void 0 ? void 0 : { contextTime: r }).end();
2407
- }, f = (e) => {
2408
- if (t || !Number.isFinite(e.value) || !I(n, "metrics") && !I(n, "traces")) return;
2409
- let r = e.entries[0], i = r && typeof performance < "u" ? performance.timeOrigin + r.startTime : void 0, a = i === void 0 ? n.getRuntimeAttributes() : n.getRuntimeAttributesAt(i);
2410
- I(n, "metrics") && u.record(e.value, n.applyRedact(j(j(j({}, n.config.hooks.getMetricAttributes()), B(a)), Qr(e, c)))), d(e, a, i);
2411
- }, p, m, h, g = (e, t, r) => {
2412
- if (I(n, "metrics")) {
2413
- let r = n.applyRedact(j(j(j({}, n.config.hooks.getMetricAttributes()), B(t)), Qr(e, c)));
2414
- e.name === "CLS" ? l.record(e.value, r) : u.record(e.value, r);
2415
- }
2416
- d(e, t, r);
2417
- }, _ = () => {
2418
- let e = p;
2419
- if (!e || !I(n, "metrics") && !I(n, "traces")) return;
2420
- g({
2059
+ }, nr(e, n.config.hooks.redactUrl)), {
2060
+ contextTime: r,
2061
+ startTime: i
2062
+ }).end(i);
2063
+ }, u = (e) => {
2064
+ if (t || !Number.isFinite(e.value) || !n.isSampled()) return;
2065
+ let r = e.entries[0], i = r && typeof performance < "u" ? performance.timeOrigin + r.startTime : void 0;
2066
+ l(e, i === void 0 ? n.getRuntimeAttributes() : n.getRuntimeAttributesAt(i), i);
2067
+ }, d, f, p, m = (e, t, n) => {
2068
+ l(e, t, n, Date.now());
2069
+ }, g = () => {
2070
+ let e = d;
2071
+ if (!e || !n.isSampled()) return;
2072
+ m({
2421
2073
  attribution: {
2422
2074
  largestShiftTarget: e.largestShiftTarget,
2423
2075
  largestShiftValue: e.largestShiftValue
2424
2076
  },
2425
2077
  entries: [],
2426
- id: E("vital"),
2078
+ id: h("vital"),
2427
2079
  name: "CLS",
2428
2080
  navigationType: c,
2429
- rating: Kr("CLS", e.cls),
2081
+ rating: Xn("CLS", e.cls),
2430
2082
  value: e.cls
2431
2083
  }, e.runtimeAttributes, e.startedAt);
2432
- let t = Zr(e);
2433
- t && g({
2084
+ let t = er(e);
2085
+ t && m({
2434
2086
  attribution: {
2435
2087
  inputDelay: t.inputDelay,
2436
2088
  interactionTarget: t.interactionTarget,
@@ -2439,29 +2091,29 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2439
2091
  processingDuration: t.processingDuration
2440
2092
  },
2441
2093
  entries: [],
2442
- id: E("vital"),
2094
+ id: h("vital"),
2443
2095
  name: "INP",
2444
2096
  navigationType: c,
2445
- rating: Kr("INP", t.duration),
2097
+ rating: Xn("INP", t.duration),
2446
2098
  value: t.duration
2447
2099
  }, e.runtimeAttributes, e.startedAt);
2448
2100
  }, v = n.onViewChange((e) => {
2449
2101
  var t;
2450
- let r = p;
2451
- if (r && Ur(r.id, e.id)) {
2452
- r.runtimeAttributes = j(j({}, r.runtimeAttributes), {}, {
2453
- [O.viewId]: e.id,
2454
- [O.viewName]: e.name,
2455
- [O.viewUrl]: e.url,
2456
- [O.viewUrlPathGroup]: e.urlPathGroup
2102
+ let r = d;
2103
+ if (r && qn(r.id, e.id)) {
2104
+ r.runtimeAttributes = C(C({}, r.runtimeAttributes), {}, {
2105
+ [_.viewId]: e.id,
2106
+ [_.viewName]: e.name,
2107
+ [_.viewUrl]: e.url,
2108
+ [_.viewUrlPathGroup]: e.urlPathGroup
2457
2109
  });
2458
2110
  return;
2459
2111
  }
2460
- _(), p = e.id ? {
2112
+ g(), d = e.id ? {
2461
2113
  cls: 0,
2462
2114
  clsWindowLargestShiftValue: 0,
2463
2115
  clsWindowValue: 0,
2464
- interactionCountAtStart: Jr(),
2116
+ interactionCountAtStart: Zn(),
2465
2117
  interactionIdMax: 0,
2466
2118
  interactionIdMin: Infinity,
2467
2119
  inpCandidates: [],
@@ -2473,21 +2125,21 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2473
2125
  });
2474
2126
  if (typeof PerformanceObserver < "u") {
2475
2127
  var y, b;
2476
- (y = PerformanceObserver.supportedEntryTypes) != null && y.includes("layout-shift") && (h = new PerformanceObserver((e) => {
2477
- if (p) for (let t of e.getEntries()) performance.timeOrigin + t.startTime < p.startedAt || Yr(p, t);
2478
- }), h.observe({
2128
+ (y = PerformanceObserver.supportedEntryTypes) != null && y.includes("layout-shift") && (p = new PerformanceObserver((e) => {
2129
+ if (d) for (let t of e.getEntries()) performance.timeOrigin + t.startTime < d.startedAt || Qn(d, t);
2130
+ }), p.observe({
2479
2131
  buffered: !0,
2480
2132
  type: "layout-shift"
2481
- })), (b = PerformanceObserver.supportedEntryTypes) != null && b.includes("event") && (m = new PerformanceObserver((e) => {
2482
- if (p) for (let t of e.getEntries()) performance.timeOrigin + t.startTime < p.startedAt || !t.interactionId || !Number.isFinite(t.duration) || Xr(p, t);
2483
- }), m.observe({
2133
+ })), (b = PerformanceObserver.supportedEntryTypes) != null && b.includes("event") && (f = new PerformanceObserver((e) => {
2134
+ if (d) for (let t of e.getEntries()) performance.timeOrigin + t.startTime < d.startedAt || !t.interactionId || !Number.isFinite(t.duration) || $n(d, t);
2135
+ }), f.observe({
2484
2136
  buffered: !0,
2485
2137
  durationThreshold: 40,
2486
2138
  type: "event"
2487
2139
  }));
2488
2140
  }
2489
- a(f), o(f), s(f), e = () => {
2490
- _(), p = void 0, v(), h == null || h.disconnect(), m == null || m.disconnect();
2141
+ a(u), o(u), s(u), e = () => {
2142
+ g(), d = void 0, v(), p == null || p.disconnect(), f == null || f.disconnect();
2491
2143
  };
2492
2144
  })();
2493
2145
  },
@@ -2495,182 +2147,123 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2495
2147
  t = !0, e == null || e(), e = void 0;
2496
2148
  }
2497
2149
  };
2498
- }, ti = 64 * 1024, ni = 6e4, ri = 5, ii = (e) => e == null ? 0 : typeof e == "string" ? e.length > ti || 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, ai = (e, t) => {
2150
+ }, ir = (e, t) => {
2499
2151
  let n = {
2500
2152
  "network.protocol.name": "websocket",
2501
2153
  "url.full": t(e)
2502
- }, r = { "network.protocol.name": "websocket" };
2154
+ };
2503
2155
  try {
2504
2156
  let t = new URL(e, typeof location > "u" ? "http://localhost" : location.href);
2505
- n["server.address"] = t.host, n["url.scheme"] = t.protocol.replace(":", ""), r["server.address"] = t.host, r["url.scheme"] = n["url.scheme"];
2157
+ n["server.address"] = t.hostname, t.port && (n["server.port"] = Number(t.port)), n["url.scheme"] = t.protocol.replace(":", "");
2506
2158
  } catch (e) {}
2507
- return {
2508
- metricAttributes: r,
2509
- spanAttributes: n
2510
- };
2511
- }, oi = (e, t) => {
2512
- let { bytesCounter: n, connectDurationHistogram: r, context: i, errorCounter: a, errorThrottle: o, isDisposed: s, messageCounter: l, url: u } = t, { metricAttributes: d, spanAttributes: f } = ai(u, i.config.hooks.redactUrl), p = i.config.hooks.getMetricAttributes(), m = () => i.applyRedact(j(j(j({}, p), B(i.getRuntimeAttributes())), d)), h = i.startSpan("websocket.connect", j(j({}, f), z({
2513
- errorType: "none",
2514
- spanSubtype: "websocket",
2515
- spanType: R.custom
2516
- }))), g = performance.now(), _ = !1, v = (e) => {
2517
- if (_) return;
2518
- _ = !0;
2519
- let t = performance.now() - g;
2520
- e === "error" && h.setStatus({
2521
- code: c.ERROR,
2522
- message: "websocket connect failed"
2523
- }), h.setAttributes(z({
2524
- errorType: e === "error" ? "network" : "none",
2525
- result: e === "error" ? L.error : L.success,
2526
- spanSubtype: "websocket",
2527
- spanType: R.custom
2528
- })), h.end(), e === "opened" && !s() && I(i, "metrics") && r.record(t, m());
2159
+ return n;
2160
+ }, ar = (t, n, r, i) => {
2161
+ let a = h("websocket"), o = ir(r, n.config.hooks.redactUrl), s = !1, c = (t, r, s = {}) => {
2162
+ if (i() || !n.isSampled()) return;
2163
+ let c = t === "error";
2164
+ n.startSpan("browser.websocket", C(C(C({}, o), N({
2165
+ errorType: c ? "network" : "none",
2166
+ result: c ? j.error : j.success,
2167
+ spanSubtype: t,
2168
+ spanType: M.websocket
2169
+ })), {}, {
2170
+ [_.eventId]: h("event"),
2171
+ [_.eventPhase]: t,
2172
+ [_.eventTimestamp]: r,
2173
+ [_.eventType]: "websocket",
2174
+ "websocket.connection.id": a
2175
+ }, s), {
2176
+ kind: e.CLIENT,
2177
+ startTime: r
2178
+ }).end(r);
2529
2179
  };
2530
- e.addEventListener("open", () => {
2531
- s() || v("opened");
2532
- }), e.addEventListener("message", (e) => {
2533
- if (s() || !I(i, "metrics")) return;
2534
- let t = j(j({}, m()), {}, { "websocket.direction": "in" });
2535
- l.add(1, t), n.add(ii(e.data), t);
2536
- }), e.addEventListener("error", () => {
2537
- if (s()) return;
2538
- let e = _ ? "runtime" : "connect";
2539
- if (I(i, "metrics") && a.add(1, j(j({}, m()), {}, { "websocket.error.phase": e })), v("error"), !I(i, "logs")) return;
2540
- let t = o.allow(`ws:error:${u}`);
2541
- t.allowed && i.emitLog({
2542
- severityNumber: T.ERROR,
2543
- severityText: "ERROR",
2544
- body: "websocket.error",
2545
- attributes: j(j(j({}, f), z({
2546
- errorType: "network",
2547
- result: L.error,
2548
- spanSubtype: "websocket",
2549
- spanType: R.custom
2550
- })), {}, {
2551
- "websocket.error.phase": e,
2552
- "websocket.error.window_occurrence_index": t.count
2553
- })
2180
+ c("connect", Date.now()), t.addEventListener("open", () => {
2181
+ s = !0, c("open", Date.now());
2182
+ }), t.addEventListener("error", () => {
2183
+ c("error", Date.now(), { "websocket.error.phase": s ? "runtime" : "connect" });
2184
+ }), t.addEventListener("close", (e) => {
2185
+ c("close", Date.now(), {
2186
+ "websocket.close.code": e.code,
2187
+ "websocket.close.reason": e.reason,
2188
+ "websocket.close.was_clean": e.wasClean
2554
2189
  });
2555
- }), e.addEventListener("close", (e) => {
2556
- s() || (_ || v("error"), I(i, "logs") && i.emitLog({
2557
- severityNumber: T.INFO,
2558
- severityText: "INFO",
2559
- body: "websocket.close",
2560
- attributes: j(j(j({}, f), z({
2561
- errorType: e.wasClean ? "none" : "network",
2562
- result: e.wasClean ? L.success : L.warning,
2563
- spanSubtype: "websocket",
2564
- spanType: R.custom
2565
- })), {}, {
2566
- "websocket.close.code": e.code,
2567
- "websocket.close.reason": e.reason,
2568
- "websocket.close.was_clean": e.wasClean
2569
- })
2570
- }));
2571
2190
  });
2572
- let y = e.send.bind(e);
2573
- e.send = (e) => {
2574
- if (!s() && I(i, "metrics")) {
2575
- let t = j(j({}, m()), {}, { "websocket.direction": "out" });
2576
- l.add(1, t), n.add(ii(e), t);
2577
- }
2578
- return y(e);
2579
- };
2580
- }, si = () => {
2191
+ }, or = () => {
2581
2192
  let e, t, n = !1;
2582
2193
  return {
2583
2194
  name: "websocket",
2584
2195
  init(r) {
2585
2196
  if (typeof window > "u" || window.WebSocket === void 0) return;
2586
2197
  let i = window.WebSocket;
2587
- e = i;
2588
- let a = r.meter.createCounter("browser.websocket.message.count", { description: "Total number of WebSocket messages observed" }), o = r.meter.createCounter("browser.websocket.message.bytes", {
2589
- unit: "By",
2590
- description: "Total bytes transferred over WebSocket (best-effort)"
2591
- }), s = r.meter.createCounter("browser.websocket.error.count", { description: "Total number of WebSocket error events" }), c = r.meter.createHistogram("browser.websocket.connect.duration", {
2592
- unit: "ms",
2593
- description: "WebSocket connection establishment duration (only successful connects)",
2594
- advice: { explicitBucketBoundaries: G }
2595
- }), l = te(ni, ri), u = () => n;
2596
- t = new Proxy(i, { construct(e, t, i) {
2597
- let d = Reflect.construct(e, t, i);
2598
- if (n || !r.isSampled()) return d;
2599
- let f = t[0] == null ? "" : String(t[0]);
2600
- return !f || He(r.config, f) || oi(d, {
2601
- bytesCounter: o,
2602
- connectDurationHistogram: c,
2603
- context: r,
2604
- errorCounter: s,
2605
- errorThrottle: l,
2606
- isDisposed: u,
2607
- messageCounter: a,
2608
- url: f
2609
- }), d;
2198
+ e = i, t = new Proxy(i, { construct(e, t, i) {
2199
+ let a = Reflect.construct(e, t, i);
2200
+ if (n || !r.isSampled()) return a;
2201
+ let o = t[0] == null ? "" : String(t[0]);
2202
+ return o && !k(r.config, o) && ar(a, r, o, () => n), a;
2610
2203
  } }), window.WebSocket = t;
2611
2204
  },
2612
2205
  shutdown() {
2613
2206
  n = !0, typeof window < "u" && e && window.WebSocket === t && (window.WebSocket = e), t = void 0, e = void 0;
2614
2207
  }
2615
2208
  };
2616
- }, ci = class {
2209
+ }, sr = class {
2617
2210
  constructor() {
2618
- A(this, "listeners", /* @__PURE__ */ new Set()), A(this, "notify", (e) => {
2211
+ x(this, "listeners", /* @__PURE__ */ new Set()), x(this, "notify", (e) => {
2619
2212
  this.listeners.forEach((t) => t(e));
2620
- }), A(this, "subscribe", (e) => (this.listeners.add(e), () => this.listeners.delete(e)));
2213
+ }), x(this, "subscribe", (e) => (this.listeners.add(e), () => this.listeners.delete(e)));
2621
2214
  }
2622
- }, li = (e) => ({
2215
+ }, cr = (e) => ({
2623
2216
  url: e.endpoint,
2624
2217
  headers: e.headers,
2625
2218
  concurrencyLimit: e.concurrencyLimit,
2626
2219
  timeoutMillis: e.timeoutMillis
2627
- }), ui = "bk-rum", di = class {
2220
+ }), lr = "bk-rum", ur = class {
2628
2221
  constructor(e) {
2629
2222
  this.isSampled = e;
2630
2223
  }
2631
2224
  shouldSample() {
2632
- return { decision: this.isSampled() ? S.RECORD_AND_SAMPLED : S.NOT_RECORD };
2225
+ return { decision: this.isSampled() ? d.RECORD_AND_SAMPLED : d.NOT_RECORD };
2633
2226
  }
2634
2227
  toString() {
2635
2228
  return "RumSessionSampler";
2636
2229
  }
2637
- }, Q, fi = () => {
2230
+ }, Q, dr = () => {
2638
2231
  if (Q) Q.users += 1;
2639
2232
  else {
2640
- let e = new f().enable(), n = l.setGlobalContextManager(e);
2641
- n || e.disable(), Q = {
2642
- contextManager: n ? e : void 0,
2643
- ownsContext: n,
2644
- ownsPropagator: u.setGlobalPropagator(new t()),
2233
+ let e = new a().enable(), t = n.setGlobalContextManager(e);
2234
+ t || e.disable(), Q = {
2235
+ contextManager: t ? e : void 0,
2236
+ ownsContext: t,
2237
+ ownsPropagator: r.setGlobalPropagator(new o()),
2645
2238
  users: 1
2646
2239
  };
2647
2240
  }
2648
2241
  let e = !1;
2649
2242
  return () => {
2650
- e || !Q || (e = !0, --Q.users, !(Q.users > 0) && (Q.ownsContext && l.disable(), Q.ownsPropagator && u.disable(), Q = void 0));
2243
+ e || !Q || (e = !0, --Q.users, !(Q.users > 0) && (Q.ownsContext && n.disable(), Q.ownsPropagator && r.disable(), Q = void 0));
2651
2244
  };
2652
- }, pi = (e, t, n) => n ? new Proxy(e, { get(e, n, r) {
2653
- if (n === "export") return (n, r) => {
2654
- var i;
2655
- return (i = globalThis.console) == null || i.log(`[bk-ot][${t}]`, n), e.export(n, r);
2245
+ }, fr = (e, t) => t ? new Proxy(e, { get(e, t, n) {
2246
+ if (t === "export") return (t, n) => {
2247
+ var r;
2248
+ return (r = globalThis.console) == null || r.log("[bk-ot][rum]", t), e.export(t, n);
2656
2249
  };
2657
- let i = Reflect.get(e, n, r);
2658
- return typeof i == "function" ? i.bind(e) : i;
2659
- } }) : e, mi = (e) => [Ln(e.tracking.request)], hi = (e) => [
2660
- Lr(e.session),
2661
- ...$(e.tracking.device, !0, ge),
2662
- Nt(),
2663
- Cr(),
2664
- wn(gi(e.tracking.resource, !0))
2665
- ], gi = (e, t) => e === void 0 ? t : e !== !1, _i = (e) => typeof e == "object" && e ? e : void 0, $ = (e, t, n) => gi(e, t) ? [n(_i(e))] : [], vi = (e) => [
2666
- ...$(e.error, !0, Qn),
2667
- ...$(e.webVitals, !0, ei),
2668
- ...$(e.blankScreen, !0, Qt),
2669
- ...$(e.action, !0, At),
2670
- ...$(e.websocket, !1, si),
2671
- ...$(e.longTask, !1, sr),
2672
- ...$(e.cspViolation, !1, Hn)
2673
- ], yi = class {
2250
+ let r = Reflect.get(e, t, n);
2251
+ return typeof r == "function" ? r.bind(e) : r;
2252
+ } }) : e, pr = (e) => [Qt(e.tracking.request)], mr = (e) => [
2253
+ Vn(e.session),
2254
+ ...$(e.tracking.device, !0, le),
2255
+ pt(),
2256
+ Dn(),
2257
+ zt(hr(e.tracking.resource, !0))
2258
+ ], hr = (e, t) => e === void 0 ? t : e !== !1, gr = (e) => typeof e == "object" && e ? e : void 0, $ = (e, t, n) => hr(e, t) ? [n(gr(e))] : [], _r = (e) => [
2259
+ ...$(e.error, !0, on),
2260
+ ...$(e.webVitals, !0, rr),
2261
+ ...$(e.blankScreen, !0, Ot),
2262
+ ...$(e.action, !0, ut),
2263
+ ...$(e.websocket, !1, or),
2264
+ ...$(e.longTask, !1, fn),
2265
+ ...$(e.cspViolation, !1, tn)
2266
+ ], vr = class {
2674
2267
  assertBeforeStart(e) {
2675
2268
  if (this.phase !== "idle") throw Error(`[bk-ot] ${e}() must be called before start(); set autoStart: false before registration.`);
2676
2269
  }
@@ -2678,15 +2271,12 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2678
2271
  return {
2679
2272
  applyRedact: this.applyRedact,
2680
2273
  config: this.config,
2681
- emitLog: this.emitLog,
2682
2274
  flush: this.flush,
2683
2275
  getRuntimeAttributes: this.getRuntimeAttributes,
2684
2276
  getRuntimeAttributesAt: this.getRuntimeAttributesAt,
2685
2277
  isSampled: this.isSampled,
2686
2278
  isSessionActive: this.isSessionActive,
2687
2279
  isViewActive: this.isViewActive,
2688
- logger: this.logger,
2689
- meter: this.meter,
2690
2280
  notifySessionLifecycle: this.notifySessionLifecycle,
2691
2281
  notifyActivity: this.activityObserver.notify,
2692
2282
  onActivity: this.activityObserver.subscribe,
@@ -2703,195 +2293,187 @@ var Ye = ["http.url", "url.full"], Xe = "bk.rum.request.discard", Ze = (e) => {
2703
2293
  }
2704
2294
  createPluginManager() {
2705
2295
  var e;
2706
- return new Fe([
2707
- ...hi(this.config),
2708
- ...mi(this.config),
2709
- ...vi(this.config.tracking),
2296
+ return new we([
2297
+ ...mr(this.config),
2298
+ ...pr(this.config),
2299
+ ..._r(this.config.tracking),
2710
2300
  ...(e = this.config.extensions.plugins) == null ? [] : e
2711
2301
  ]);
2712
2302
  }
2713
- constructor(e) {
2714
- var t = this;
2715
- A(this, "activityObserver", new ci()), A(this, "flushProviders", M(function* () {
2716
- yield t.tracerProvider.forceFlush(), yield t.meterProvider.forceFlush(), yield t.loggerProvider.forceFlush();
2717
- })), A(this, "loggerProvider", void 0), A(this, "meterProvider", void 0), A(this, "phase", "idle"), A(this, "pluginManager", void 0), A(this, "registeredInstrumentations", void 0), A(this, "releaseOtelGlobals", void 0), A(this, "runtimeContext", void 0), A(this, "sampled", !1), A(this, "startCollection", M(function* () {
2718
- if (t.pluginManager || !t.config.enabled || t.config.trackingConsent !== "granted") return;
2719
- t.config.transport.traces !== !1 && (t.releaseOtelGlobals = fi());
2720
- let e = t.createPluginManager();
2721
- t.pluginManager = e;
2303
+ constructor(n) {
2304
+ var r = this;
2305
+ x(this, "activityObserver", new sr()), x(this, "flushProviders", E(function* () {
2306
+ yield r.tracerProvider.forceFlush();
2307
+ })), x(this, "phase", "idle"), x(this, "pluginManager", void 0), x(this, "registeredInstrumentations", void 0), x(this, "releaseOtelGlobals", void 0), x(this, "runtimeContext", void 0), x(this, "sampled", !1), x(this, "startCollection", E(function* () {
2308
+ if (r.pluginManager || !r.config.enabled || r.config.trackingConsent !== "granted") return;
2309
+ r.releaseOtelGlobals = dr();
2310
+ let e = r.createPluginManager();
2311
+ r.pluginManager = e;
2722
2312
  try {
2723
- var n;
2724
- yield e.start(t.createPluginContext()), t.registerInstrumentations((n = t.config.extensions.instrumentations) == null ? [] : n);
2725
- } catch (n) {
2726
- var r, i, a;
2727
- for (yield e.shutdown(), t.pluginManager = void 0; t.registeredInstrumentations.length;) (r = t.registeredInstrumentations.pop()) == null || (i = r.disable) == null || i.call(r);
2728
- throw (a = t.releaseOtelGlobals) == null || a.call(t), t.releaseOtelGlobals = void 0, n;
2313
+ var t;
2314
+ yield e.start(r.createPluginContext()), r.registerInstrumentations((t = r.config.extensions.instrumentations) == null ? [] : t);
2315
+ } catch (t) {
2316
+ var n, i, a;
2317
+ for (yield e.shutdown(), r.pluginManager = void 0; r.registeredInstrumentations.length;) (n = r.registeredInstrumentations.pop()) == null || (i = n.disable) == null || i.call(n);
2318
+ throw (a = r.releaseOtelGlobals) == null || a.call(r), r.releaseOtelGlobals = void 0, t;
2729
2319
  }
2730
- })), A(this, "stopCollection", function() {
2731
- var e = M(function* (e) {
2732
- var n, r, i;
2733
- let a = t.pluginManager;
2320
+ })), x(this, "stopCollection", function() {
2321
+ var e = E(function* (e) {
2322
+ var t, n, i;
2323
+ let a = r.pluginManager;
2734
2324
  if (a) {
2735
- for (yield a.shutdown(), t.pluginManager = void 0; t.registeredInstrumentations.length;) (n = t.registeredInstrumentations.pop()) == null || (r = n.disable) == null || r.call(n);
2736
- t.setRuntimeAttributes({
2737
- [O.sessionHasReplay]: void 0,
2738
- [O.sessionId]: void 0
2739
- }), e && (yield t.flushProviders()), (i = t.releaseOtelGlobals) == null || i.call(t), t.releaseOtelGlobals = void 0;
2325
+ for (yield a.shutdown(), r.pluginManager = void 0; r.registeredInstrumentations.length;) (t = r.registeredInstrumentations.pop()) == null || (n = t.disable) == null || n.call(t);
2326
+ r.setRuntimeAttributes({
2327
+ [_.sessionHasReplay]: void 0,
2328
+ [_.sessionId]: void 0
2329
+ }), e && (yield r.flushProviders()), (i = r.releaseOtelGlobals) == null || i.call(r), r.releaseOtelGlobals = void 0;
2740
2330
  }
2741
2331
  });
2742
2332
  return function(t) {
2743
2333
  return e.apply(this, arguments);
2744
2334
  };
2745
- }()), A(this, "teardownCallbacks", []), A(this, "tracerProvider", void 0), A(this, "applyRedact", (e) => this.config.hooks.redactAttributes(e)), A(this, "config", void 0), A(this, "emitLog", (e) => {
2746
- var t;
2747
- if (!this.isSampled() || this.config.transport.logs === !1) return;
2748
- let i = e.timestamp ? n(r(e.timestamp)) : void 0, a = j(j({}, e), {}, { attributes: this.applyRedact(j(j({}, i === void 0 ? this.getRuntimeAttributes() : this.getRuntimeAttributesAt(i)), (t = e.attributes) == null ? {} : t)) });
2749
- this.logger.emit(a);
2750
- }), A(this, "flush", M(function* () {
2335
+ }()), x(this, "teardownCallbacks", []), x(this, "tracerProvider", void 0), x(this, "applyRedact", (e) => this.config.hooks.redactAttributes(e)), x(this, "config", void 0), x(this, "flush", E(function* () {
2751
2336
  var e;
2752
- yield (e = t.pluginManager) == null ? void 0 : e.flush(), yield t.flushProviders();
2753
- })), A(this, "getRuntimeAttributes", () => this.runtimeContext.getAttributes()), A(this, "getRuntimeAttributesAt", (e) => this.runtimeContext.getAttributesAt(e)), A(this, "isSampled", () => this.sampled), A(this, "isSessionActive", () => this.runtimeContext.isSessionActive()), A(this, "isViewActive", () => this.runtimeContext.isViewActive()), A(this, "logger", void 0), A(this, "meter", void 0), A(this, "notifySessionLifecycle", (e) => {
2337
+ yield (e = r.pluginManager) == null ? void 0 : e.flush(), yield r.flushProviders();
2338
+ })), x(this, "getRuntimeAttributes", () => this.runtimeContext.getAttributes()), x(this, "getRuntimeAttributesAt", (e) => this.runtimeContext.getAttributesAt(e)), x(this, "isSampled", () => this.sampled), x(this, "isSessionActive", () => this.runtimeContext.isSessionActive()), x(this, "isViewActive", () => this.runtimeContext.isViewActive()), x(this, "notifySessionLifecycle", (e) => {
2754
2339
  this.runtimeContext.notifySessionLifecycle(e);
2755
- }), A(this, "onSessionLifecycle", (e) => this.runtimeContext.onSessionLifecycle(e)), A(this, "registerInstrumentations", (e) => {
2756
- e.length && (_({
2340
+ }), x(this, "onSessionLifecycle", (e) => this.runtimeContext.onSessionLifecycle(e)), x(this, "registerInstrumentations", (e) => {
2341
+ e.length && (c({
2757
2342
  instrumentations: e,
2758
- meterProvider: this.meterProvider,
2759
2343
  tracerProvider: this.tracerProvider
2760
2344
  }), this.registeredInstrumentations.push(...e));
2761
- }), A(this, "reportAction", ({ attributes: e = {}, name: t }) => {
2762
- if (!this.isSampled() || this.config.transport.traces === !1) return;
2763
- let n = E("action");
2764
- this.startSpan("action.custom", j(j(j(j({}, this.config.hooks.getPageAttributes()), e), z({
2345
+ }), x(this, "reportAction", ({ attributes: e = {}, name: t }) => {
2346
+ if (!this.isSampled()) return;
2347
+ let n = h("action"), r = Date.now();
2348
+ this.startSpan("action.custom", C(C(C(C({}, this.config.hooks.getPageAttributes()), e), N({
2765
2349
  errorType: "none",
2766
2350
  spanSubtype: "custom",
2767
- spanType: R.action
2351
+ spanType: M.action
2768
2352
  })), {}, {
2769
- [O.actionId]: n,
2770
- [O.actionName]: t,
2771
- [O.actionType]: "custom"
2772
- })).end();
2773
- }), A(this, "reportCustomEvent", ({ attributes: e = {}, error: t, name: n }) => {
2774
- if (!this.isSampled() || this.config.transport.traces === !1) {
2353
+ [_.actionId]: n,
2354
+ [_.actionName]: t,
2355
+ [_.actionType]: "custom",
2356
+ [_.eventId]: h("event"),
2357
+ [_.eventTimestamp]: r,
2358
+ [_.eventType]: "action"
2359
+ }), { startTime: r }).end(r);
2360
+ }), x(this, "reportCustomEvent", ({ attributes: e = {}, error: n, name: r }) => {
2361
+ if (!this.isSampled()) {
2775
2362
  if (this.config.debug) {
2776
- var r;
2777
- (r = globalThis.console) == null || r.warn("[bk-ot] custom event dropped (not sampled):", n);
2363
+ var i;
2364
+ (i = globalThis.console) == null || i.warn("[bk-ot] custom event dropped (not sampled):", r);
2778
2365
  }
2779
2366
  return;
2780
2367
  }
2781
- let i = this.startSpan(`custom.${n}`, j(j(j(j(j({}, this.config.hooks.getPageAttributes()), this.config.hooks.getCustomAttributes()), z({
2782
- errorType: t ? "custom" : "none",
2783
- result: t ? L.error : L.success,
2784
- spanSubtype: n,
2785
- spanType: R.custom
2786
- })), e), {}, { "rum.custom.name": n }));
2787
- t && (i.recordException(t), i.setStatus({
2788
- code: c.ERROR,
2789
- message: t.message
2790
- })), i.end();
2791
- }), A(this, "setRuntimeAttributes", (e, t) => {
2792
- let n = j({}, e);
2793
- if (O.sessionId in e) {
2794
- let t = e[O.sessionId];
2795
- this.sampled = this.config.enabled && typeof t == "string" && t.length > 0 ? Le(this.config, t) : !1, n[N] = this.sampled;
2368
+ let a = Date.now(), o = this.startSpan(`custom.${r}`, C(C(C(C(C({}, this.config.hooks.getPageAttributes()), this.config.hooks.getCustomAttributes()), N({
2369
+ errorType: n ? "custom" : "none",
2370
+ result: n ? j.error : j.success,
2371
+ spanSubtype: r,
2372
+ spanType: M.custom
2373
+ })), e), {}, {
2374
+ [_.eventId]: h("event"),
2375
+ [_.eventTimestamp]: a,
2376
+ [_.eventType]: "custom",
2377
+ "rum.custom.name": r
2378
+ }), { startTime: a });
2379
+ n && (o.recordException(n), o.setStatus({
2380
+ code: t.ERROR,
2381
+ message: n.message
2382
+ })), o.end(a);
2383
+ }), x(this, "setRuntimeAttributes", (e, t) => {
2384
+ let n = C({}, e);
2385
+ if (_.sessionId in e) {
2386
+ let t = e[_.sessionId];
2387
+ this.sampled = this.config.enabled && typeof t == "string" && t.length > 0 ? Ee(this.config, t) : !1, n[D] = this.sampled;
2796
2388
  }
2797
2389
  this.runtimeContext.setAttributes(n, t);
2798
- }), A(this, "setTrackingConsent", function() {
2799
- var e = M(function* (e) {
2800
- t.config.trackingConsent !== e && (t.config.trackingConsent = e, t.phase === "started" && (e === "granted" ? yield t.startCollection() : yield t.stopCollection(!0)));
2390
+ }), x(this, "setTrackingConsent", function() {
2391
+ var e = E(function* (e) {
2392
+ r.config.trackingConsent !== e && (r.config.trackingConsent = e, r.phase === "started" && (e === "granted" ? yield r.startCollection() : yield r.stopCollection(!0)));
2801
2393
  });
2802
2394
  return function(t) {
2803
2395
  return e.apply(this, arguments);
2804
2396
  };
2805
- }()), A(this, "setUser", (e) => {
2397
+ }()), x(this, "setUser", (e) => {
2806
2398
  this.runtimeContext.setUser(e);
2807
- }), A(this, "setViewLoadingTime", () => {
2399
+ }), x(this, "setViewLoadingTime", () => {
2808
2400
  this.isSampled() && this.runtimeContext.dispatchViewCommand({
2809
2401
  time: Date.now(),
2810
2402
  type: "set_loading_time"
2811
2403
  });
2812
- }), A(this, "setViewName", (e) => {
2404
+ }), x(this, "setViewName", (e) => {
2813
2405
  this.isSampled() && this.runtimeContext.dispatchViewCommand({
2814
2406
  name: e,
2815
2407
  type: "set_name"
2816
2408
  });
2817
- }), A(this, "shutdown", M(function* () {
2818
- if (t.phase !== "stopped") {
2819
- for (yield t.stopCollection(!1), yield t.flushProviders(); t.teardownCallbacks.length;) {
2409
+ }), x(this, "shutdown", E(function* () {
2410
+ if (r.phase !== "stopped") {
2411
+ for (yield r.stopCollection(!1), yield r.flushProviders(); r.teardownCallbacks.length;) {
2820
2412
  var e;
2821
- (e = t.teardownCallbacks.pop()) == null || e();
2413
+ (e = r.teardownCallbacks.pop()) == null || e();
2822
2414
  }
2823
- yield t.tracerProvider.shutdown(), yield t.meterProvider.shutdown(), yield t.loggerProvider.shutdown(), t.phase = "stopped";
2415
+ yield r.tracerProvider.shutdown(), r.phase = "stopped";
2824
2416
  }
2825
- })), A(this, "start", M(function* () {
2826
- if (!(t.phase === "started" || t.phase === "starting")) {
2827
- if (t.phase === "stopped") throw Error("[bk-ot] instance has been shut down and cannot be restarted; create a new instance instead.");
2828
- if (!t.config.enabled) {
2829
- t.phase = "started";
2417
+ })), x(this, "start", E(function* () {
2418
+ if (!(r.phase === "started" || r.phase === "starting")) {
2419
+ if (r.phase === "stopped") throw Error("[bk-ot] instance has been shut down and cannot be restarted; create a new instance instead.");
2420
+ if (!r.config.enabled) {
2421
+ r.phase = "started";
2830
2422
  return;
2831
2423
  }
2832
- t.phase = "starting";
2424
+ r.phase = "starting";
2833
2425
  try {
2834
- if (yield t.startCollection(), typeof window < "u" && typeof document < "u") {
2426
+ if (yield r.startCollection(), typeof window < "u" && typeof document < "u") {
2835
2427
  let e = () => {
2836
- t.flush();
2837
- }, n = () => {
2838
- document.visibilityState === "hidden" && t.flush();
2428
+ r.flush();
2429
+ }, t = () => {
2430
+ document.visibilityState === "hidden" && r.flush();
2839
2431
  };
2840
- window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", n), t.teardownCallbacks.push(() => window.removeEventListener("pagehide", e), () => document.removeEventListener("visibilitychange", n));
2432
+ window.addEventListener("pagehide", e), document.addEventListener("visibilitychange", t), r.teardownCallbacks.push(() => window.removeEventListener("pagehide", e), () => document.removeEventListener("visibilitychange", t));
2841
2433
  }
2842
- } catch (n) {
2843
- for (; t.teardownCallbacks.length;) {
2434
+ } catch (t) {
2435
+ for (; r.teardownCallbacks.length;) {
2844
2436
  var e;
2845
- (e = t.teardownCallbacks.pop()) == null || e();
2437
+ (e = r.teardownCallbacks.pop()) == null || e();
2846
2438
  }
2847
- throw yield t.stopCollection(!1), t.phase = "idle", n;
2439
+ throw yield r.stopCollection(!1), r.phase = "idle", t;
2848
2440
  }
2849
- t.phase = "started";
2441
+ r.phase = "started";
2850
2442
  }
2851
- })), A(this, "startSpan", (e, t = {}, n) => {
2852
- var r, i;
2853
- if (!this.isSampled() || this.config.transport.traces === !1) return this.tracer.startSpan(e);
2854
- let a = (r = n == null ? void 0 : n.contextTime) == null ? typeof (n == null ? void 0 : n.startTime) == "number" ? n.startTime : void 0 : r, o = a === void 0 ? this.getRuntimeAttributes() : this.runtimeContext.getAttributesAt(a);
2855
- return this.tracer.startSpan(e, {
2856
- kind: (i = n == null ? void 0 : n.kind) == null ? s.INTERNAL : i,
2857
- startTime: n == null ? void 0 : n.startTime,
2858
- attributes: this.applyRedact(j(j({}, o), t))
2443
+ })), x(this, "startSpan", (t, n = {}, r) => {
2444
+ var i, a;
2445
+ if (!this.isSampled()) return this.tracer.startSpan(t);
2446
+ let o = (i = r == null ? void 0 : r.contextTime) == null ? typeof (r == null ? void 0 : r.startTime) == "number" ? r.startTime : void 0 : i, s = o === void 0 ? this.getRuntimeAttributes() : this.runtimeContext.getAttributesAt(o);
2447
+ return this.tracer.startSpan(t, {
2448
+ kind: (a = r == null ? void 0 : r.kind) == null ? e.INTERNAL : a,
2449
+ startTime: r == null ? void 0 : r.startTime,
2450
+ attributes: this.applyRedact(C(C({}, s), n))
2859
2451
  });
2860
- }), A(this, "startView", (e = {}) => {
2452
+ }), x(this, "startView", (e = {}) => {
2861
2453
  this.isSampled() && this.runtimeContext.dispatchViewCommand({
2862
2454
  options: e,
2863
2455
  type: "start"
2864
2456
  });
2865
- }), A(this, "tracer", void 0), A(this, "use", (e) => {
2457
+ }), x(this, "tracer", void 0), x(this, "use", (e) => {
2866
2458
  var t;
2867
2459
  return this.assertBeforeStart("use"), (t = this.config.extensions.plugins) == null || t.push(e), this;
2868
- }), A(this, "useInstrumentation", (e) => {
2460
+ }), x(this, "useInstrumentation", (e) => {
2869
2461
  var t;
2870
2462
  return this.assertBeforeStart("useInstrumentation"), this.config.enabled && ((t = this.config.extensions.instrumentations) == null || t.push(e)), this;
2871
- }), this.config = je(e), this.runtimeContext = new ot({ [N]: !1 }, this.config.user);
2872
- let i = v(this.config.resourceAttributes), l = (() => {
2873
- if (this.config.transport.traces === !1) return [];
2874
- let e = pi(new g(li(this.config.transport.traces)), "traces", this.config.debug);
2875
- return [new nt(this.config.spanProcessor === "simple" ? new C(e) : new x(e, this.config.spanBatch), this.config, () => this.applyRedact(j(j({}, this.runtimeContext.getAttributes()), this.config.hooks.getPageAttributes())))];
2876
- })(), u = this.config.transport.metrics === !1 ? [] : [new o({
2877
- exporter: new it(pi(new h(j(j({}, li(this.config.transport.metrics)), {}, { temporalityPreference: m.DELTA })), "metrics", this.config.debug)),
2878
- exportIntervalMillis: this.config.metricIntervalMillis
2879
- })], d = this.config.transport.logs === !1 ? [] : [new tt(new y(pi(new p(li(this.config.transport.logs)), "logs", this.config.debug)), this.config)];
2880
- this.tracerProvider = new w({
2881
- resource: i,
2882
- sampler: new di(() => this.config.transport.traces !== !1 && this.isSampled()),
2883
- spanProcessors: l
2884
- }), this.meterProvider = new a({
2885
- resource: i,
2886
- readers: u
2887
- }), this.loggerProvider = new b({
2463
+ }), this.config = be(n), this.runtimeContext = new Ue({ [D]: !1 }, this.config.user);
2464
+ let i = l(this.config.resourceAttributes), a = (() => {
2465
+ let e = fr(new s(cr(this.config.transport)), this.config.debug);
2466
+ return [new Ve(this.config.spanProcessor === "simple" ? new f(e) : new u(e, this.config.spanBatch), this.config, () => this.applyRedact(C(C({}, this.runtimeContext.getAttributes()), this.config.hooks.getPageAttributes())))];
2467
+ })();
2468
+ this.tracerProvider = new p({
2888
2469
  resource: i,
2889
- processors: d
2890
- }), this.tracer = this.tracerProvider.getTracer(ui), this.meter = this.meterProvider.getMeter(ui), this.logger = this.loggerProvider.getLogger(ui), this.registeredInstrumentations = [], this.config.autoStart && this.start().catch((e) => {
2470
+ sampler: new ur(this.isSampled),
2471
+ spanProcessors: a
2472
+ }), this.tracer = this.tracerProvider.getTracer(lr), this.registeredInstrumentations = [], this.config.autoStart && this.start().catch((e) => {
2891
2473
  var t;
2892
2474
  (t = globalThis.console) == null || t.warn("[bk-ot] auto start failed:", e);
2893
2475
  });
2894
2476
  }
2895
2477
  };
2896
2478
  //#endregion
2897
- export { yi as BkOpenTelemetry, jt as EXCLUDED_ACTIVITY_MUTATIONS_ATTRIBUTE, tt as FilteringLogRecordProcessor, it as FilteringMetricExporter, nt as FilteringSpanProcessor, O as RUM_ATTRIBUTES, L as RUM_SPAN_RESULT, R as RUM_SPAN_TYPE, ot as RumRuntimeContext, z as buildRumSpanAttributes, At as createActionPlugin, Qt as createBlankScreenPlugin, Ln as createCommonInstrumentationsPlugin, Hn as createCspViolationPlugin, ge as createDevicePlugin, Qn as createErrorPlugin, sr as createLongTaskPlugin, Pe as createPlugin, wn as createResourcePlugin, Lr as createSessionPlugin, si as createWebSocketPlugin, ei as createWebVitalsPlugin, je as resolveConfig };
2479
+ export { vr as BkOpenTelemetry, dt as EXCLUDED_ACTIVITY_MUTATIONS_ATTRIBUTE, Ve as FilteringSpanProcessor, _ as RUM_ATTRIBUTES, j as RUM_SPAN_RESULT, M as RUM_SPAN_TYPE, Ue as RumRuntimeContext, N as buildRumSpanAttributes, ut as createActionPlugin, Ot as createBlankScreenPlugin, Qt as createCommonInstrumentationsPlugin, tn as createCspViolationPlugin, le as createDevicePlugin, on as createErrorPlugin, fn as createLongTaskPlugin, Ce as createPlugin, zt as createResourcePlugin, Vn as createSessionPlugin, or as createWebSocketPlugin, rr as createWebVitalsPlugin, be as resolveConfig };