@newrelic/browser-agent 1.245.0 → 1.246.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 (89) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +19 -0
  3. package/dist/cjs/cdn/polyfills.js +2 -1
  4. package/dist/cjs/common/config/state/configurable.js +1 -1
  5. package/dist/cjs/common/config/state/init.js +1 -0
  6. package/dist/cjs/common/constants/env.cdn.js +1 -1
  7. package/dist/cjs/common/constants/env.npm.js +1 -1
  8. package/dist/cjs/common/session/session-entity.js +3 -2
  9. package/dist/cjs/common/url/parse-url.js +20 -44
  10. package/dist/cjs/common/vitals/first-input-delay.js +1 -2
  11. package/dist/cjs/common/vitals/largest-contentful-paint.js +1 -2
  12. package/dist/cjs/common/vitals/vital-metric.js +2 -12
  13. package/dist/cjs/features/ajax/aggregate/index.js +1 -0
  14. package/dist/cjs/features/jserrors/aggregate/index.js +1 -1
  15. package/dist/cjs/features/page_view_event/aggregate/index.js +2 -0
  16. package/dist/cjs/features/page_view_timing/aggregate/index.js +10 -1
  17. package/dist/cjs/features/session_replay/aggregate/index.js +6 -6
  18. package/dist/cjs/features/session_trace/aggregate/index.js +14 -3
  19. package/dist/cjs/features/spa/aggregate/index.js +5 -3
  20. package/dist/cjs/features/utils/feature-base.js +2 -2
  21. package/dist/cjs/features/utils/instrument-base.js +4 -4
  22. package/dist/esm/cdn/polyfills.js +2 -1
  23. package/dist/esm/common/config/state/configurable.js +1 -1
  24. package/dist/esm/common/config/state/init.js +1 -0
  25. package/dist/esm/common/constants/env.cdn.js +1 -1
  26. package/dist/esm/common/constants/env.npm.js +1 -1
  27. package/dist/esm/common/session/session-entity.js +3 -2
  28. package/dist/esm/common/url/parse-url.js +21 -45
  29. package/dist/esm/common/vitals/first-input-delay.js +1 -2
  30. package/dist/esm/common/vitals/largest-contentful-paint.js +1 -2
  31. package/dist/esm/common/vitals/vital-metric.js +1 -11
  32. package/dist/esm/features/ajax/aggregate/index.js +1 -0
  33. package/dist/esm/features/jserrors/aggregate/index.js +1 -1
  34. package/dist/esm/features/page_view_event/aggregate/index.js +2 -0
  35. package/dist/esm/features/page_view_timing/aggregate/index.js +9 -0
  36. package/dist/esm/features/session_replay/aggregate/index.js +6 -6
  37. package/dist/esm/features/session_trace/aggregate/index.js +14 -3
  38. package/dist/esm/features/spa/aggregate/index.js +5 -3
  39. package/dist/esm/features/utils/feature-base.js +2 -2
  40. package/dist/esm/features/utils/instrument-base.js +4 -4
  41. package/dist/types/common/config/state/configurable.d.ts.map +1 -1
  42. package/dist/types/common/config/state/init.d.ts.map +1 -1
  43. package/dist/types/common/event-emitter/contextual-ee.d.ts +2 -2
  44. package/dist/types/common/event-emitter/register-handler.d.ts +1 -1
  45. package/dist/types/common/session/session-entity.d.ts +9 -9
  46. package/dist/types/common/session/session-entity.d.ts.map +1 -1
  47. package/dist/types/common/url/parse-url.d.ts +12 -1
  48. package/dist/types/common/url/parse-url.d.ts.map +1 -1
  49. package/dist/types/common/vitals/constants.d.ts +8 -8
  50. package/dist/types/common/vitals/vital-metric.d.ts +1 -2
  51. package/dist/types/common/vitals/vital-metric.d.ts.map +1 -1
  52. package/dist/types/common/window/nreum.d.ts +2 -2
  53. package/dist/types/features/ajax/aggregate/index.d.ts.map +1 -1
  54. package/dist/types/features/jserrors/aggregate/index.d.ts +2 -2
  55. package/dist/types/features/jserrors/aggregate/index.d.ts.map +1 -1
  56. package/dist/types/features/page_view_event/aggregate/index.d.ts.map +1 -1
  57. package/dist/types/features/page_view_timing/aggregate/index.d.ts.map +1 -1
  58. package/dist/types/features/session_replay/aggregate/index.d.ts +6 -6
  59. package/dist/types/features/session_trace/aggregate/index.d.ts +1 -0
  60. package/dist/types/features/session_trace/aggregate/index.d.ts.map +1 -1
  61. package/dist/types/features/spa/aggregate/index.d.ts +1 -0
  62. package/dist/types/features/spa/aggregate/index.d.ts.map +1 -1
  63. package/dist/types/features/utils/feature-base.d.ts +4 -4
  64. package/dist/types/features/utils/feature-base.d.ts.map +1 -1
  65. package/dist/types/features/utils/instrument-base.d.ts +6 -6
  66. package/dist/types/features/utils/instrument-base.d.ts.map +1 -1
  67. package/dist/types/loaders/configure/public-path.npm.d.ts.map +1 -1
  68. package/dist/types/loaders/features/features.d.ts +9 -9
  69. package/dist/types/loaders/micro-agent.d.ts +2 -2
  70. package/dist/types/loaders/micro-agent.d.ts.map +1 -1
  71. package/package.json +1 -1
  72. package/src/cdn/polyfills.js +1 -0
  73. package/src/common/config/state/configurable.js +2 -1
  74. package/src/common/config/state/init.js +1 -0
  75. package/src/common/session/session-entity.js +3 -2
  76. package/src/common/url/parse-url.js +21 -51
  77. package/src/common/vitals/first-input-delay.js +1 -2
  78. package/src/common/vitals/largest-contentful-paint.js +1 -2
  79. package/src/common/vitals/vital-metric.js +2 -12
  80. package/src/features/ajax/aggregate/index.js +2 -0
  81. package/src/features/jserrors/aggregate/index.js +1 -1
  82. package/src/features/page_view_event/aggregate/index.js +2 -0
  83. package/src/features/page_view_timing/aggregate/index.js +11 -0
  84. package/src/features/session_replay/aggregate/index.js +6 -6
  85. package/src/features/session_trace/aggregate/index.js +10 -2
  86. package/src/features/spa/aggregate/index.js +5 -3
  87. package/src/features/utils/feature-base.js +2 -2
  88. package/src/features/utils/instrument-base.js +4 -4
  89. package/src/loaders/configure/public-path.npm.js +0 -1
@@ -27,8 +27,7 @@ if (isBrowserScope) {
27
27
  elTag: lcpEntry.element.tagName
28
28
  })
29
29
  }
30
- }),
31
- shouldAddConnectionAttributes: true
30
+ })
32
31
  });
33
32
  });
34
33
  }
@@ -10,8 +10,7 @@ export class VitalMetric {
10
10
  let {
11
11
  value,
12
12
  entries = [],
13
- attrs = {},
14
- shouldAddConnectionAttributes = false
13
+ attrs = {}
15
14
  } = _ref;
16
15
  if (value < 0) return;
17
16
  const state = {
@@ -20,7 +19,6 @@ export class VitalMetric {
20
19
  entries,
21
20
  attrs
22
21
  };
23
- if (shouldAddConnectionAttributes) addConnectionAttributes(state.attrs);
24
22
  this.history.push(state);
25
23
  this.#subscribers.forEach(cb => {
26
24
  try {
@@ -53,12 +51,4 @@ export class VitalMetric {
53
51
  this.#subscribers.delete(callback);
54
52
  };
55
53
  }
56
- }
57
- function addConnectionAttributes(obj) {
58
- var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; // to date, both window & worker shares the same support for connection
59
- if (!connection) return;
60
- if (connection.type) obj['net-type'] = connection.type;
61
- if (connection.effectiveType) obj['net-etype'] = connection.effectiveType;
62
- if (connection.rtt) obj['net-rtt'] = connection.rtt;
63
- if (connection.downlink) obj['net-dlink'] = connection.downlink;
64
54
  }
@@ -115,6 +115,7 @@ export class Aggregate extends AggregateBase {
115
115
  body: this.body,
116
116
  query: this?.parsedOrigin?.search
117
117
  });
118
+ if (event.gql) handle(SUPPORTABILITY_METRIC_CHANNEL, ['Ajax/Events/GraphQL/Bytes-Added', stringify(event.gql).length], undefined, FEATURE_NAMES.metrics, ee);
118
119
 
119
120
  // if the ajax happened inside an interaction, hold it until the interaction finishes
120
121
  if (this.spaNode) {
@@ -182,7 +182,7 @@ export class Aggregate extends AggregateBase {
182
182
  params.pageview = 1;
183
183
  this.pageviewReported[bucketHash] = true;
184
184
  }
185
- if (agentRuntime?.session?.state?.sessionReplay) params.hasReplay = true;
185
+ if (agentRuntime?.session?.state?.sessionReplayMode) params.hasReplay = true;
186
186
  params.firstOccurrenceTimestamp = this.observedAt[bucketHash];
187
187
  var type = internal ? 'ierr' : 'err';
188
188
  var newMetrics = {
@@ -76,6 +76,8 @@ export class Aggregate extends AggregateBase {
76
76
  ua: info.userAttributes,
77
77
  at: info.atts
78
78
  };
79
+ if (agentRuntime.session) queryParameters.fsh = Number(agentRuntime.session.isNew); // "first session harvest" aka RUM request or PageView event of a session
80
+
79
81
  let body;
80
82
  if (typeof info.jsAttributes === 'object' && Object.keys(info.jsAttributes).length > 0) {
81
83
  body = {
@@ -100,6 +100,7 @@ export class Aggregate extends AggregateBase {
100
100
  }
101
101
  addTiming(name, value, attrs) {
102
102
  attrs = attrs || {};
103
+ addConnectionAttributes(attrs); // network conditions may differ from the actual for VitalMetrics when they were captured
103
104
 
104
105
  // If cls was set to another value by `onCLS`, then it's supported and is attached onto any timing but is omitted until such time.
105
106
  /*
@@ -170,4 +171,12 @@ export class Aggregate extends AggregateBase {
170
171
  }
171
172
  return payload;
172
173
  }
174
+ }
175
+ function addConnectionAttributes(obj) {
176
+ var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection; // to date, both window & worker shares the same support for connection
177
+ if (!connection) return;
178
+ if (connection.type) obj['net-type'] = connection.type;
179
+ if (connection.effectiveType) obj['net-etype'] = connection.effectiveType;
180
+ if (connection.rtt) obj['net-rtt'] = connection.rtt;
181
+ if (connection.downlink) obj['net-dlink'] = connection.downlink;
173
182
  }
@@ -131,13 +131,13 @@ export class Aggregate extends AggregateBase {
131
131
  const {
132
132
  session
133
133
  } = getRuntime(this.agentIdentifier);
134
- this.mode = session.state.sessionReplay;
134
+ this.mode = session.state.sessionReplayMode;
135
135
  if (!this.initialized || this.mode === MODE.OFF) return;
136
136
  this.startRecording();
137
137
  });
138
138
  this.ee.on(SESSION_EVENTS.UPDATE, (type, data) => {
139
139
  if (!this.initialized || this.blocked || type !== SESSION_EVENT_TYPES.CROSS_TAB) return;
140
- if (this.mode !== MODE.OFF && data.sessionReplay === MODE.OFF) this.abort(ABORT_REASONS.CROSS_TAB);
140
+ if (this.mode !== MODE.OFF && data.sessionReplayMode === MODE.OFF) this.abort(ABORT_REASONS.CROSS_TAB);
141
141
  this.mode = data.sessionReplay;
142
142
  });
143
143
 
@@ -163,7 +163,7 @@ export class Aggregate extends AggregateBase {
163
163
  this.startRecording();
164
164
  this.scheduler.startTimer(this.harvestTimeSeconds);
165
165
  this.syncWithSessionManager({
166
- sessionReplay: this.mode
166
+ sessionReplayMode: this.mode
167
167
  });
168
168
  }
169
169
  }
@@ -198,7 +198,7 @@ export class Aggregate extends AggregateBase {
198
198
  // session replays can continue if already in progress
199
199
  if (!session.isNew) {
200
200
  // inherit the mode of the existing session
201
- this.mode = session.state.sessionReplay;
201
+ this.mode = session.state.sessionReplayMode;
202
202
  } else {
203
203
  // The session is new... determine the mode the new session should start in
204
204
  if (fullSample) this.mode = MODE.FULL; // full mode has precedence over error mode
@@ -239,7 +239,7 @@ export class Aggregate extends AggregateBase {
239
239
  }
240
240
  this.startRecording();
241
241
  this.syncWithSessionManager({
242
- sessionReplay: this.mode
242
+ sessionReplayMode: this.mode
243
243
  });
244
244
  }
245
245
  prepareHarvest() {
@@ -448,7 +448,7 @@ export class Aggregate extends AggregateBase {
448
448
  this.mode = MODE.OFF;
449
449
  this.stopRecording();
450
450
  this.syncWithSessionManager({
451
- sessionReplay: this.mode
451
+ sessionReplayMode: this.mode
452
452
  });
453
453
  this.clearTimestamps();
454
454
  this.ee.emit('REPLAY_ABORTED');
@@ -141,7 +141,7 @@ export class Aggregate extends AggregateBase {
141
141
  });
142
142
  if (!sessionEntity.isNew) {
143
143
  // inherit the same mode as existing session's Trace
144
- if (sessionEntity.state.sessionReplay === MODE.OFF) this.isStandalone = true;
144
+ if (sessionEntity.state.sessionReplayMode === MODE.OFF) this.isStandalone = true;
145
145
  controlTraceOp(mostRecentModeKnown = sessionEntity.state.sessionTraceMode);
146
146
  } else {
147
147
  // for new sessions, see the truth table associated with NEWRELIC-8662 wrt the new Trace behavior under session management
@@ -503,6 +503,16 @@ export class Aggregate extends AggregateBase {
503
503
  }
504
504
  this.trace = {};
505
505
  this.nodeCount = 0;
506
+ let firstHarvestOfSession;
507
+ if (this.agentRuntime.session) {
508
+ const isFirstPayload = !this.agentRuntime.session.state.traceHarvestStarted;
509
+ firstHarvestOfSession = {
510
+ fsh: Number(isFirstPayload)
511
+ }; // converted to '0' | '1'
512
+ if (isFirstPayload) this.agentRuntime.session.write({
513
+ traceHarvestStarted: true
514
+ });
515
+ }
506
516
  return {
507
517
  qs: {
508
518
  st: this.agentRuntime.offset,
@@ -513,9 +523,10 @@ export class Aggregate extends AggregateBase {
513
523
  * so that blob parsing doesn't need to happen to support UI/API functions */
514
524
  fts: this.agentRuntime.offset + earliestTimeStamp,
515
525
  /** n === "nodeCount" in NR1, a count of nodes in the ST payload, so that blob parsing doesn't need to happen to support UI/API functions */
516
- n: stns.length // node count
526
+ n: stns.length,
527
+ // node count
528
+ ...firstHarvestOfSession
517
529
  },
518
-
519
530
  body: {
520
531
  res: stns
521
532
  }
@@ -58,7 +58,9 @@ export class Aggregate extends AggregateBase {
58
58
  depth: 0,
59
59
  harvestTimeSeconds: getConfigurationValue(agentIdentifier, 'spa.harvestTimeSeconds') || 10,
60
60
  interactionsToHarvest: [],
61
- interactionsSent: []
61
+ interactionsSent: [],
62
+ // The below feature flag is used to disable the SPA ajax fix for specific customers, see https://new-relic.atlassian.net/browse/NR-172169
63
+ disableSpaFix: (getConfigurationValue(agentIdentifier, 'feature_flags') || []).indexOf('disable-spa-fix') > -1
62
64
  };
63
65
  this.serializer = new Serializer(this);
64
66
  const {
@@ -278,7 +280,7 @@ export class Aggregate extends AggregateBase {
278
280
  // context is stored on the xhr and is shared with all callbacks associated
279
281
  // with the new xhr
280
282
  register('new-xhr', function () {
281
- if (!state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {
283
+ if (!state.disableSpaFix && !state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {
282
284
  /*
283
285
  * The previous interaction was discarded before a route change. Restore the interaction
284
286
  * in case this XHR is associated with a route change.
@@ -369,7 +371,7 @@ export class Aggregate extends AggregateBase {
369
371
  }, this.featureName, jsonpEE);
370
372
  register(FETCH_START, function (fetchArguments, dtPayload) {
371
373
  if (fetchArguments) {
372
- if (!state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {
374
+ if (!state.disableSpaFix && !state.currentNode && state.prevInteraction && !state.prevInteraction.ignored) {
373
375
  /*
374
376
  * The previous interaction was discarded before a route change. Restore the interaction
375
377
  * in case this XHR is associated with a route change.
@@ -3,9 +3,9 @@ export class FeatureBase {
3
3
  constructor(agentIdentifier, aggregator, featureName) {
4
4
  /** @type {string} */
5
5
  this.agentIdentifier = agentIdentifier;
6
- /** @type {Aggregator} */
6
+ /** @type {import('../../common/aggregate/aggregator').Aggregator} */
7
7
  this.aggregator = aggregator;
8
- /** @type {ContextualEE} */
8
+ /** @type {import('../../common/event-emitter/contextual-ee').ee} */
9
9
  this.ee = ee.get(agentIdentifier);
10
10
  /** @type {string} */
11
11
  this.featureName = featureName;
@@ -20,7 +20,7 @@ export class InstrumentBase extends FeatureBase {
20
20
  /**
21
21
  * Instantiate InstrumentBase.
22
22
  * @param {string} agentIdentifier - The unique ID of the instantiated agent (relative to global scope).
23
- * @param {Aggregator} aggregator - The shared Aggregator that will handle batching and reporting of data.
23
+ * @param {import('../../common/aggregate/aggregator').Aggregator} aggregator - The shared Aggregator that will handle batching and reporting of data.
24
24
  * @param {string} featureName - The name of the feature module (used to construct file path).
25
25
  * @param {boolean} [auto=true] - Determines whether the feature should automatically register to have the draining
26
26
  * of its pooled instrumentation data handled by the agent's centralized drain functionality, rather than draining
@@ -35,7 +35,7 @@ export class InstrumentBase extends FeatureBase {
35
35
  this.abortHandler = undefined;
36
36
 
37
37
  /**
38
- * @type {Class} Holds the reference to the feature's aggregate module counterpart, if and after it has been initialized. This may not be assigned until after page loads!
38
+ * @type {import('./aggregate-base').AggregateBase} Holds the reference to the feature's aggregate module counterpart, if and after it has been initialized. This may not be assigned until after page loads!
39
39
  * The only purpose of this for now is to expose it to the NREUM interface, as the feature's instrument instance is already exposed.
40
40
  */
41
41
  this.featAggregate = undefined;
@@ -127,14 +127,14 @@ export class InstrumentBase extends FeatureBase {
127
127
  /**
128
128
  * Make a determination if an aggregate class should even be imported
129
129
  * @param {string} featureName
130
- * @param {SessionEntity} session
130
+ * @param {import('../../common/session/session-entity').SessionEntity} session
131
131
  * @returns
132
132
  */
133
133
  shouldImportAgg(featureName, session) {
134
134
  if (featureName === FEATURE_NAMES.sessionReplay) {
135
135
  if (!originals.MO) return false; // Session Replay cannot work without Mutation Observer
136
136
  if (getConfigurationValue(this.agentIdentifier, 'session_trace.enabled') === false) return false; // Session Replay as of now is tightly coupled with Session Trace in the UI
137
- return !!session?.isNew || !!session?.state.sessionReplay; // Session Replay should only try to run if already running from a previous page, or at the beginning of a session
137
+ return !!session?.isNew || !!session?.state.sessionReplayMode; // Session Replay should only try to run if already running from a previous page, or at the beginning of a session
138
138
  }
139
139
 
140
140
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"configurable.d.ts","sourceRoot":"","sources":["../../../../../src/common/config/state/configurable.js"],"names":[],"mappings":"AAEA,4DAwBC"}
1
+ {"version":3,"file":"configurable.d.ts","sourceRoot":"","sources":["../../../../../src/common/config/state/configurable.js"],"names":[],"mappings":"AAEA,4DAyBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../src/common/config/state/init.js"],"names":[],"mappings":"AA0GA,+CAIC;AAED,0DAIC;AAED,+DAYC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../src/common/config/state/init.js"],"names":[],"mappings":"AA2GA,+CAIC;AAED,0DAIC;AAED,+DAYC"}
@@ -8,10 +8,10 @@ declare namespace globalInstance {
8
8
  export { context };
9
9
  export { bufferEventsByGroup as buffer };
10
10
  export { abort };
11
- export const aborted: boolean;
11
+ export let aborted: boolean;
12
12
  export { isBuffering };
13
13
  export { debugId };
14
- export const backlog: any;
14
+ export let backlog: any;
15
15
  }
16
16
  export const contextId: string;
17
17
  declare function emit(type: any, args: any, contextOrStore: any, force: any, bubble: any): any;
@@ -1,7 +1,7 @@
1
1
  export function defaultRegister(type: any, handler: any, group: any, ee: any): void;
2
2
  export namespace defaultRegister {
3
3
  export { registerWithSpecificEmitter as on };
4
- export const handlers: {};
4
+ export let handlers: {};
5
5
  }
6
6
  export { defaultRegister as registerHandler };
7
7
  declare function registerWithSpecificEmitter(ee: any, handlers: any, type: any, handler: any, group: any): void;
@@ -1,17 +1,17 @@
1
1
  export namespace MODE {
2
- const OFF: number;
3
- const FULL: number;
4
- const ERROR: number;
2
+ let OFF: number;
3
+ let FULL: number;
4
+ let ERROR: number;
5
5
  }
6
6
  export namespace SESSION_EVENTS {
7
- const PAUSE: string;
8
- const RESET: string;
9
- const RESUME: string;
10
- const UPDATE: string;
7
+ let PAUSE: string;
8
+ let RESET: string;
9
+ let RESUME: string;
10
+ let UPDATE: string;
11
11
  }
12
12
  export namespace SESSION_EVENT_TYPES {
13
- const SAME_TAB: string;
14
- const CROSS_TAB: string;
13
+ let SAME_TAB: string;
14
+ let CROSS_TAB: string;
15
15
  }
16
16
  export class SessionEntity {
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-entity.d.ts","sourceRoot":"","sources":["../../../../src/common/session/session-entity.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AA4CA;IACE;;;;;OAKG;IACH,uBA0BC;IApBC,qBAAsC;IACtC,aAAsB;IACtB,UAAe;IAGf,SAAc;IAEd,QAAiC;IAenC;;;;aAsEC;IA/DC,8BAA0B;IAC1B,+BAA4B;IAc1B,gCAOqC;IAUrC,4CAiBsC;IAOV,2BAA6C;IAM3E,iCAAuB;IAIzB,wBAEC;IAED,sBAEC;IAED;;;OAGG;IACH,QAFa,MAAM,CA6BlB;IAED;;;;;;OAMG;IACH,YAHW,MAAM,GACJ,MAAM,CAkBlB;IAED,gBAuBC;IAED;;OAEG;IACH,gBAIC;IAED;;;OAGG;IACH,qBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,OAAO,CAKnB;IAED,yDAYC;IAED;;;OAGG;IACH,6BAHW,MAAM,GACJ,MAAM,CAIlB;IAED,gDAaC;IAHG,YAAuD;CAI5D;sBA7SqB,gBAAgB;iCAGL,4BAA4B"}
1
+ {"version":3,"file":"session-entity.d.ts","sourceRoot":"","sources":["../../../../src/common/session/session-entity.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AA6CA;IACE;;;;;OAKG;IACH,uBA0BC;IApBC,qBAAsC;IACtC,aAAsB;IACtB,UAAe;IAGf,SAAc;IAEd,QAAiC;IAenC;;;;aAsEC;IA/DC,8BAA0B;IAC1B,+BAA4B;IAc1B,gCAOqC;IAUrC,4CAiBsC;IAOxC,2BAA6C;IAM7C,iCAAuB;IAIzB,wBAEC;IAED,sBAEC;IAED;;;OAGG;IACH,QAFa,MAAM,CA6BlB;IAED;;;;;;OAMG;IACH,YAHW,MAAM,GACJ,MAAM,CAkBlB;IAED,gBAuBC;IAED;;OAEG;IACH,gBAIC;IAED;;;OAGG;IACH,qBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,gBAHW,MAAM,GACJ,OAAO,CAKnB;IAED,yDAYC;IAED;;;OAGG;IACH,6BAHW,MAAM,GACJ,MAAM,CAIlB;IAED,gDAaC;IAHG,YAAuD;CAI5D;sBA9SqB,gBAAgB;iCAGL,4BAA4B"}
@@ -1,2 +1,13 @@
1
- export function parseUrl(url: any): any;
1
+ export function parseUrl(url: any): {
2
+ port: string;
3
+ hostname: string;
4
+ pathname: string;
5
+ search: string;
6
+ protocol: string;
7
+ sameOrigin: boolean;
8
+ } | {
9
+ protocol: string;
10
+ } | {
11
+ protocol?: undefined;
12
+ };
2
13
  //# sourceMappingURL=parse-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-url.d.ts","sourceRoot":"","sources":["../../../../src/common/url/parse-url.js"],"names":[],"mappings":"AASA,wCA8DC"}
1
+ {"version":3,"file":"parse-url.d.ts","sourceRoot":"","sources":["../../../../src/common/url/parse-url.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;EAkCC"}
@@ -1,11 +1,11 @@
1
1
  export namespace VITAL_NAMES {
2
- const FIRST_PAINT: string;
3
- const FIRST_CONTENTFUL_PAINT: string;
4
- const FIRST_INPUT_DELAY: string;
5
- const LARGEST_CONTENTFUL_PAINT: string;
6
- const CUMULATIVE_LAYOUT_SHIFT: string;
7
- const INTERACTION_TO_NEXT_PAINT: string;
8
- const LONG_TASK: string;
9
- const TIME_TO_FIRST_BYTE: string;
2
+ let FIRST_PAINT: string;
3
+ let FIRST_CONTENTFUL_PAINT: string;
4
+ let FIRST_INPUT_DELAY: string;
5
+ let LARGEST_CONTENTFUL_PAINT: string;
6
+ let CUMULATIVE_LAYOUT_SHIFT: string;
7
+ let INTERACTION_TO_NEXT_PAINT: string;
8
+ let LONG_TASK: string;
9
+ let TIME_TO_FIRST_BYTE: string;
10
10
  }
11
11
  //# sourceMappingURL=constants.d.ts.map
@@ -4,11 +4,10 @@ export class VitalMetric {
4
4
  name: any;
5
5
  attrs: {};
6
6
  roundingMethod: any;
7
- update({ value, entries, attrs, shouldAddConnectionAttributes }: {
7
+ update({ value, entries, attrs }: {
8
8
  value: any;
9
9
  entries?: any[] | undefined;
10
10
  attrs?: {} | undefined;
11
- shouldAddConnectionAttributes?: boolean | undefined;
12
11
  }): void;
13
12
  get current(): any;
14
13
  get isValid(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"vital-metric.d.ts","sourceRoot":"","sources":["../../../../src/common/vitals/vital-metric.js"],"names":[],"mappings":"AAAA;IAIE,4CAIC;IAND,eAAY;IAGV,UAAgB;IAChB,UAAe;IACf,oBAAwF;IAG1F;;;;;aAiBC;IAED,mBAOC;IAED,uBAEC;IAED,uEAMC;;CACF"}
1
+ {"version":3,"file":"vital-metric.d.ts","sourceRoot":"","sources":["../../../../src/common/vitals/vital-metric.js"],"names":[],"mappings":"AAAA;IAIE,4CAIC;IAND,eAAY;IAGV,UAAgB;IAChB,UAAe;IACf,oBAAwF;IAG1F;;;;aAiBC;IAED,mBAOC;IAED,uBAEC;IAED,uEAMC;;CACF"}
@@ -8,7 +8,7 @@ export function addToNREUM(fnName: any, fn: any): void;
8
8
  export function NREUMinitialized(): void;
9
9
  export function gosCDN(): any;
10
10
  export namespace defaults {
11
- const beacon: string;
12
- const errorBeacon: string;
11
+ let beacon: string;
12
+ let errorBeacon: string;
13
13
  }
14
14
  //# sourceMappingURL=nreum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/ajax/aggregate/index.js"],"names":[],"mappings":"AAiBA;IACE,2BAAiC;IACjC,mDAuOC;IAhNC,qGAAwB;IACxB;;;;4BAAoC;IACpC;;;mBAA2E;CA+M9E;8BA7O6B,4BAA4B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/ajax/aggregate/index.js"],"names":[],"mappings":"AAiBA;IACE,2BAAiC;IACjC,mDAyOC;IAlNC,qGAAwB;IACxB;;;;4BAAoC;IACpC;;;mBAA2E;CAiN9E;8BA/O6B,4BAA4B"}
@@ -8,10 +8,10 @@ export class Aggregate extends AggregateBase {
8
8
  observedAt: {};
9
9
  pageviewReported: {};
10
10
  errorCache: {};
11
- currentBody: any;
11
+ currentBody: {} | null | undefined;
12
12
  errorOnPage: boolean;
13
13
  onHarvestStarted(options: any): {
14
- body: any;
14
+ body: {} | null;
15
15
  qs: {};
16
16
  };
17
17
  onHarvestFinished(result: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/jserrors/aggregate/index.js"],"names":[],"mappings":"AAuBA;;GAEG;AAEH;IACE,2BAAiC;IACjC,mDAoCC;IAjCC,kBAAuB;IACvB,eAAoB;IACpB,qBAA0B;IAC1B,eAAoB;IACpB,iBAA4B;IAC5B,qBAAwB;IA8B1B;;;MAoBC;IAED,qCAWC;IAED,8BAEC;IAED,oEAMC;IAED;;;;;;OAMG;IACH,qCAHW,SAAS,GACP,MAAM,CAgBlB;IAED,4EA4FC;IAED,2CAgCC;IAED,+CA2BC;CACF;wBA7QY,OAAO,0BAA0B,EAAE,SAAS;8BAH3B,4BAA4B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/jserrors/aggregate/index.js"],"names":[],"mappings":"AAuBA;;GAEG;AAEH;IACE,2BAAiC;IACjC,mDAoCC;IAjCC,kBAAuB;IACvB,eAAoB;IACpB,qBAA0B;IAC1B,eAAoB;IACpB,mCAA4B;IAC5B,qBAAwB;IA8B1B;;;MAoBC;IAED,qCAWC;IAED,8BAEC;IAED,oEAMC;IAED;;;;;;OAMG;IACH,qCAHW,SAAS,GACP,MAAM,CAgBlB;IAED,4EA4FC;IAED,2CAgCC;IAED,+CA2BC;CACF;wBA7QY,OAAO,0BAA0B,EAAE,SAAS;8BAH3B,4BAA4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/page_view_event/aggregate/index.js"],"names":[],"mappings":"AAcA;IACE,2BAA2C;IAC3C,mDAoBC;IAjBC,wBAAwB;IACxB,8BAA8B;IAC9B,8BAA8B;IAiBhC,gBA8EC;CACF;8BA5G6B,4BAA4B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/page_view_event/aggregate/index.js"],"names":[],"mappings":"AAcA;IACE,2BAA2C;IAC3C,mDAoBC;IAjBC,wBAAwB;IACxB,8BAA8B;IAC9B,8BAA8B;IAiBhC,gBAgFC;CACF;8BA9G6B,4BAA4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/page_view_timing/aggregate/index.js"],"names":[],"mappings":"AAuBA;IACE,2BAAiC;IAMjC,mDAoCC;IAjCC,eAAiB;IACjB,mBAAqB;IACrB,4BAA+B;IAuB7B,4BAGQ;IAOZ;;;OAGG;IACH,6BAFW,MAAM,QAOhB;IAED;;OAEG;IACH,uCAUC;IAED,mDAqBC;IAED,qCAKC;IAED,gDAWC;IAGD;;;;kBAWC;IAGD,8BAuBC;;CACF;8BAnK6B,4BAA4B;iCANzB,2CAA2C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/page_view_timing/aggregate/index.js"],"names":[],"mappings":"AAuBA;IACE,2BAAiC;IAMjC,mDAoCC;IAjCC,eAAiB;IACjB,mBAAqB;IACrB,4BAA+B;IAuB7B,4BAGQ;IAOZ;;;OAGG;IACH,6BAFW,MAAM,QAOhB;IAED;;OAEG;IACH,uCAUC;IAED,mDAsBC;IAED,qCAKC;IAED,gDAWC;IAGD;;;;kBAWC;IAGD,8BAuBC;;CACF;8BApK6B,4BAA4B;iCANzB,2CAA2C"}
@@ -1,11 +1,11 @@
1
1
  export const AVG_COMPRESSION: 0.12;
2
2
  export namespace RRWEB_EVENT_TYPES {
3
- const DomContentLoaded: number;
4
- const Load: number;
5
- const FullSnapshot: number;
6
- const IncrementalSnapshot: number;
7
- const Meta: number;
8
- const Custom: number;
3
+ let DomContentLoaded: number;
4
+ let Load: number;
5
+ let FullSnapshot: number;
6
+ let IncrementalSnapshot: number;
7
+ let Meta: number;
8
+ let Custom: number;
9
9
  }
10
10
  /** Vortex caps payload sizes at 1MB */
11
11
  export const MAX_PAYLOAD_SIZE: 1000000;
@@ -37,6 +37,7 @@ export class Aggregate extends AggregateBase {
37
37
  body?: undefined;
38
38
  } | {
39
39
  qs: {
40
+ fsh?: number | undefined;
40
41
  st: any;
41
42
  /** hr === "hasReplay" in NR1, standalone is always checked and processed before harvesting
42
43
  * so a race condition between ST and SR states should not be a concern if implemented here */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/session_trace/aggregate/index.js"],"names":[],"mappings":"AAiCA;IACE,2BAAiC;IAGjC,iEAyHC;IAvHC,kBAA+C;IAK/C,sBAAiD;IACjD,yBAAc;IACd,sBAAe;IACf,8BAAkB;IAClB,iCAAqB;IACrB,wBAA0G;IAC1G,wBAA4G;IAC5G;;4EAEwE;IACxE,kCAAyB;IAGzB,0CAAsC;IAuGxC,sEAcC;IA6CD,oDAOC;IAGD,oCAwBC;IAGD,uEAkBC;IAED,oDAKC;IAED,wBAwBC;IAED,uCAuBC;IAGD,gDASC;IAID,qCAkBC;IAGD,qEAUC;IAGD,mEAUC;IAGD,yBAeC;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACJ,MAAM,CAsBlB;IAGD;;;;;;YA2BM;0GAC8F;;YAE9F;0FAC8E;;YAE9E,4IAA4I;;;;;;MAKjJ;IAED,mEA6BC;;CACF;8BAjf6B,4BAA4B;6BAH7B,2BAA2B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/session_trace/aggregate/index.js"],"names":[],"mappings":"AAiCA;IACE,2BAAiC;IAGjC,iEAyHC;IAvHC,kBAA+C;IAK/C,sBAAiD;IACjD,yBAAc;IACd,sBAAe;IACf,8BAAkB;IAClB,iCAAqB;IACrB,wBAA0G;IAC1G,wBAA4G;IAC5G;;4EAEwE;IACxE,kCAAyB;IAGzB,0CAAsC;IAuGxC,sEAcC;IA6CD,oDAOC;IAGD,oCAwBC;IAGD,uEAkBC;IAED,oDAKC;IAED,wBAwBC;IAED,uCAuBC;IAGD,gDASC;IAID,qCAkBC;IAGD,qEAUC;IAGD,mEAUC;IAGD,yBAeC;IAED;;;;OAIG;IACH,2BAHW,MAAM,GACJ,MAAM,CAsBlB;IAGD;;;;;;;YAkCM;0GAC8F;;YAE9F;0FAC8E;;YAE9E,4IAA4I;;;;;;MAMjJ;IAED,mEA6BC;;CACF;8BAzf6B,4BAA4B;6BAH7B,2BAA2B"}
@@ -17,6 +17,7 @@ export class Aggregate extends AggregateBase {
17
17
  harvestTimeSeconds: any;
18
18
  interactionsToHarvest: never[];
19
19
  interactionsSent: never[];
20
+ disableSpaFix: boolean;
20
21
  };
21
22
  serializer: Serializer;
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/spa/aggregate/index.js"],"names":[],"mappings":"AA4BA;IACE,2BAAiC;IACjC,mDA8rBC;IA3rBC;;;;;;;;;;;;;;;;MAgBC;IAED,uBAAsC;CA0qBzC;8BA1sB6B,4BAA4B;2BAJ/B,cAAc"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/spa/aggregate/index.js"],"names":[],"mappings":"AA4BA;IACE,2BAAiC;IACjC,mDAgsBC;IA7rBC;;;;;;;;;;;;;;;;;MAkBC;IAED,uBAAsC;CA0qBzC;8BA5sB6B,4BAA4B;2BAJ/B,cAAc"}
@@ -2,10 +2,10 @@ export class FeatureBase {
2
2
  constructor(agentIdentifier: any, aggregator: any, featureName: any);
3
3
  /** @type {string} */
4
4
  agentIdentifier: string;
5
- /** @type {Aggregator} */
6
- aggregator: Aggregator;
7
- /** @type {ContextualEE} */
8
- ee: ContextualEE;
5
+ /** @type {import('../../common/aggregate/aggregator').Aggregator} */
6
+ aggregator: import('../../common/aggregate/aggregator').Aggregator;
7
+ /** @type {import('../../common/event-emitter/contextual-ee').ee} */
8
+ ee: any;
9
9
  /** @type {string} */
10
10
  featureName: string;
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"feature-base.d.ts","sourceRoot":"","sources":["../../../../src/features/utils/feature-base.js"],"names":[],"mappings":"AAEA;IACE,qEAeC;IAdC,qBAAqB;IACrB,iBADW,MAAM,CACqB;IACtC,yBAAyB;IACzB,uBAA4B;IAC5B,2BAA2B;IAC3B,iBAAiC;IACjC,qBAAqB;IACrB,aADW,MAAM,CACa;IAC9B;;;;OAIG;IACH,SAFU,OAAO,CAEG;CAEvB"}
1
+ {"version":3,"file":"feature-base.d.ts","sourceRoot":"","sources":["../../../../src/features/utils/feature-base.js"],"names":[],"mappings":"AAEA;IACE,qEAeC;IAdC,qBAAqB;IACrB,iBADW,MAAM,CACqB;IACtC,qEAAqE;IACrE,YADW,OAAO,mCAAmC,EAAE,UAAU,CACrC;IAC5B,oEAAoE;IACpE,QAAiC;IACjC,qBAAqB;IACrB,aADW,MAAM,CACa;IAC9B;;;;OAIG;IACH,SAFU,OAAO,CAEG;CAEvB"}
@@ -6,21 +6,21 @@ export class InstrumentBase extends FeatureBase {
6
6
  /**
7
7
  * Instantiate InstrumentBase.
8
8
  * @param {string} agentIdentifier - The unique ID of the instantiated agent (relative to global scope).
9
- * @param {Aggregator} aggregator - The shared Aggregator that will handle batching and reporting of data.
9
+ * @param {import('../../common/aggregate/aggregator').Aggregator} aggregator - The shared Aggregator that will handle batching and reporting of data.
10
10
  * @param {string} featureName - The name of the feature module (used to construct file path).
11
11
  * @param {boolean} [auto=true] - Determines whether the feature should automatically register to have the draining
12
12
  * of its pooled instrumentation data handled by the agent's centralized drain functionality, rather than draining
13
13
  * immediately. Primarily useful for fine-grained control in tests.
14
14
  */
15
- constructor(agentIdentifier: string, aggregator: Aggregator, featureName: string, auto?: boolean | undefined);
15
+ constructor(agentIdentifier: string, aggregator: import('../../common/aggregate/aggregator').Aggregator, featureName: string, auto?: boolean | undefined);
16
16
  auto: boolean;
17
17
  /** @type {Function | undefined} This should be set by any derived Instrument class if it has things to do when feature fails or is killed. */
18
18
  abortHandler: Function | undefined;
19
19
  /**
20
- * @type {Class} Holds the reference to the feature's aggregate module counterpart, if and after it has been initialized. This may not be assigned until after page loads!
20
+ * @type {import('./aggregate-base').AggregateBase} Holds the reference to the feature's aggregate module counterpart, if and after it has been initialized. This may not be assigned until after page loads!
21
21
  * The only purpose of this for now is to expose it to the NREUM interface, as the feature's instrument instance is already exposed.
22
22
  */
23
- featAggregate: Class;
23
+ featAggregate: import('./aggregate-base').AggregateBase;
24
24
  /**
25
25
  * @type {Promise} Assigned immediately after @see importAggregator runs. Serves as a signal for when the inner async fn finishes execution. Useful for features to await
26
26
  * one another if there are inter-features dependencies.
@@ -36,10 +36,10 @@ export class InstrumentBase extends FeatureBase {
36
36
  /**
37
37
  * Make a determination if an aggregate class should even be imported
38
38
  * @param {string} featureName
39
- * @param {SessionEntity} session
39
+ * @param {import('../../common/session/session-entity').SessionEntity} session
40
40
  * @returns
41
41
  */
42
- shouldImportAgg(featureName: string, session: SessionEntity): boolean;
42
+ shouldImportAgg(featureName: string, session: import('../../common/session/session-entity').SessionEntity): boolean;
43
43
  }
44
44
  import { FeatureBase } from './feature-base';
45
45
  //# sourceMappingURL=instrument-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrument-base.d.ts","sourceRoot":"","sources":["../../../../src/features/utils/instrument-base.js"],"names":[],"mappings":"AAcA;;;GAGG;AACH;IACE;;;;;;;;OAQG;IACH,6BAPW,MAAM,uCAEN,MAAM,8BA4BhB;IArBC,cAAgB;IAEhB,8IAA8I;IAC9I,cADW,WAAW,SAAS,CACF;IAE7B;;;MAGE;IACF,qBAA8B;IAE9B;;;MAGE;IACF,kCAAoC;IAQtC;;;;;OAKG;IACH,mEA4DC;IAED;;;;;KAKC;IACD,6BAJS,MAAM,mCAWd;CACF;4BAhI2B,gBAAgB"}
1
+ {"version":3,"file":"instrument-base.d.ts","sourceRoot":"","sources":["../../../../src/features/utils/instrument-base.js"],"names":[],"mappings":"AAcA;;;GAGG;AACH;IACE;;;;;;;;OAQG;IACH,6BAPW,MAAM,cACN,OAAO,mCAAmC,EAAE,UAAU,eACtD,MAAM,8BA4BhB;IArBC,cAAgB;IAEhB,8IAA8I;IAC9I,cADW,WAAW,SAAS,CACF;IAE7B;;;MAGE;IACF,eAHU,OAAO,kBAAkB,EAAE,aAAa,CAGpB;IAE9B;;;MAGE;IACF,kCAAoC;IAQtC;;;;;OAKG;IACH,mEA4DC;IAED;;;;;KAKC;IACD,6BAJS,MAAM,WACN,OAAO,qCAAqC,EAAE,aAAa,WAUnE;CACF;4BAhI2B,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"public-path.npm.d.ts","sourceRoot":"","sources":["../../../../src/loaders/configure/public-path.npm.js"],"names":[],"mappings":"AACO,2CAEN"}
1
+ {"version":3,"file":"public-path.npm.d.ts","sourceRoot":"","sources":["../../../../src/loaders/configure/public-path.npm.js"],"names":[],"mappings":"AAAO,2CAEN"}
@@ -1,13 +1,13 @@
1
1
  export namespace FEATURE_NAMES {
2
- const ajax: string;
3
- const jserrors: string;
4
- const metrics: string;
5
- const pageAction: string;
6
- const pageViewEvent: string;
7
- const pageViewTiming: string;
8
- const sessionReplay: string;
9
- const sessionTrace: string;
10
- const spa: string;
2
+ let ajax: string;
3
+ let jserrors: string;
4
+ let metrics: string;
5
+ let pageAction: string;
6
+ let pageViewEvent: string;
7
+ let pageViewTiming: string;
8
+ let sessionReplay: string;
9
+ let sessionTrace: string;
10
+ let spa: string;
11
11
  }
12
12
  /**
13
13
  * The order in which features will be instrumented. This is the traditional order. It's unclear if the order of
@@ -17,14 +17,14 @@ export class MicroAgent extends AgentBase {
17
17
  * {@link https://docs.newrelic.com/docs/browser/new-relic-browser/browser-apis/start/}
18
18
  * @param {string|string[]|undefined} name The feature name(s) to start. If no name(s) are passed, all features will be started
19
19
  */
20
- start: (features: any) => false | void | MicroAgent;
20
+ start: (features: any) => false | void | this;
21
21
  get config(): {
22
22
  info: any;
23
23
  init: any;
24
24
  loader_config: any;
25
25
  runtime: any;
26
26
  };
27
- run(features: any): false | void | MicroAgent;
27
+ run(features: any): false | void | this;
28
28
  }
29
29
  import { AgentBase } from './agent-base';
30
30
  import { Aggregator } from '../common/aggregate/aggregator';
@@ -1 +1 @@
1
- {"version":3,"file":"micro-agent.d.ts","sourceRoot":"","sources":["../../../src/loaders/micro-agent.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;IACE;;;OAGG;IACH,qBAHW,MAAM,oBACN,MAAM,cAkBhB;IAbC,wBAAsC;IACtC,6BAAiF;IACjF,aAAkB;IAIlB;;;;OAIG;IACH,oDAA2C;IAI7C;;;;;MAOC;IAED,8CA0CC;CACF;0BAxFyB,cAAc;2BAPb,gCAAgC"}
1
+ {"version":3,"file":"micro-agent.d.ts","sourceRoot":"","sources":["../../../src/loaders/micro-agent.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;IACE;;;OAGG;IACH,qBAHW,MAAM,oBACN,MAAM,cAkBhB;IAbC,wBAAsC;IACtC,6BAAiF;IACjF,aAAkB;IAIlB;;;;OAIG;IACH,8CAA2C;IAI7C;;;;;MAOC;IAED,wCA0CC;CACF;0BAxFyB,cAAc;2BAPb,gCAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newrelic/browser-agent",
3
- "version": "1.245.0",
3
+ "version": "1.246.1",
4
4
  "private": false,
5
5
  "author": "New Relic Browser Agent Team <browser-agent@newrelic.com>",
6
6
  "description": "New Relic Browser Agent",