@newrelic/browser-agent 1.300.0-rc.0 → 1.300.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cdn/experimental.js +2 -2
- package/dist/cjs/cdn/spa.js +3 -3
- package/dist/cjs/common/constants/env.cdn.js +5 -7
- package/dist/cjs/common/constants/env.js +4 -6
- package/dist/cjs/common/constants/env.npm.js +6 -8
- package/dist/cjs/features/ajax/instrument/index.js +1 -2
- package/dist/cjs/features/generic_events/instrument/index.js +1 -2
- package/dist/cjs/features/jserrors/instrument/index.js +1 -2
- package/dist/cjs/features/logging/aggregate/index.js +3 -3
- package/dist/cjs/features/logging/instrument/index.js +1 -2
- package/dist/cjs/features/metrics/instrument/index.js +1 -2
- package/dist/cjs/features/page_view_event/aggregate/index.js +1 -2
- package/dist/cjs/features/page_view_event/instrument/index.js +1 -2
- package/dist/cjs/features/page_view_timing/instrument/index.js +1 -2
- package/dist/cjs/features/session_replay/aggregate/index.js +2 -3
- package/dist/cjs/features/session_replay/instrument/index.js +1 -2
- package/dist/cjs/features/session_replay/shared/recorder.js +2 -1
- package/dist/cjs/features/session_trace/instrument/index.js +1 -2
- package/dist/cjs/features/soft_navigations/instrument/index.js +1 -2
- package/dist/cjs/features/spa/aggregate/index.js +1 -2
- package/dist/cjs/features/spa/instrument/index.js +1 -2
- package/dist/cjs/features/utils/instrument-base.js +1 -2
- package/dist/cjs/loaders/browser-agent.js +3 -3
- package/dist/cjs/loaders/micro-agent.js +1 -2
- package/dist/esm/common/constants/env.cdn.js +4 -6
- package/dist/esm/common/constants/env.js +3 -5
- package/dist/esm/common/constants/env.npm.js +5 -7
- package/dist/esm/features/logging/aggregate/index.js +3 -3
- package/dist/esm/features/session_replay/aggregate/index.js +2 -2
- package/dist/esm/features/session_replay/shared/recorder.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/common/constants/env.cdn.d.ts +1 -3
- package/dist/types/common/constants/env.cdn.d.ts.map +1 -1
- package/dist/types/common/constants/env.d.ts +1 -3
- package/dist/types/common/constants/env.d.ts.map +1 -1
- package/dist/types/common/constants/env.npm.d.ts +2 -4
- package/dist/types/common/constants/env.npm.d.ts.map +1 -1
- package/dist/types/features/logging/aggregate/index.d.ts.map +1 -1
- package/dist/types/features/session_replay/constants.d.ts +4 -1
- package/dist/types/features/session_replay/constants.d.ts.map +1 -1
- package/dist/types/features/session_replay/shared/recorder.d.ts.map +1 -1
- package/dist/types/loaders/features/features.d.ts +22 -2
- package/dist/types/loaders/features/features.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/common/constants/__mocks__/env.js +0 -1
- package/src/common/constants/env.cdn.js +2 -3
- package/src/common/constants/env.js +3 -4
- package/src/common/constants/env.npm.js +3 -4
- package/src/features/logging/aggregate/index.js +2 -3
- package/src/features/session_replay/aggregate/index.js +2 -2
- package/src/features/session_replay/shared/recorder.js +2 -1
|
@@ -10,7 +10,7 @@ var _instrument6 = require("../features/session_trace/instrument");
|
|
|
10
10
|
var _instrument7 = require("../features/session_replay/instrument");
|
|
11
11
|
var _instrument8 = require("../features/generic_events/instrument");
|
|
12
12
|
var _instrument9 = require("../features/soft_navigations/instrument");
|
|
13
|
-
var
|
|
13
|
+
var _instrument0 = require("../features/logging/instrument");
|
|
14
14
|
/**
|
|
15
15
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
16
16
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -23,6 +23,6 @@ var _instrument10 = require("../features/logging/instrument");
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
new _agent.Agent({
|
|
26
|
-
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument8.Instrument,
|
|
26
|
+
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument8.Instrument, _instrument0.Instrument, _instrument9.Instrument],
|
|
27
27
|
loaderType: 'experimental'
|
|
28
28
|
});
|
package/dist/cjs/cdn/spa.js
CHANGED
|
@@ -10,8 +10,8 @@ var _instrument6 = require("../features/session_trace/instrument");
|
|
|
10
10
|
var _instrument7 = require("../features/session_replay/instrument");
|
|
11
11
|
var _instrument8 = require("../features/soft_navigations/instrument");
|
|
12
12
|
var _instrument9 = require("../features/spa/instrument");
|
|
13
|
-
var
|
|
14
|
-
var
|
|
13
|
+
var _instrument0 = require("../features/generic_events/instrument");
|
|
14
|
+
var _instrument1 = require("../features/logging/instrument");
|
|
15
15
|
/**
|
|
16
16
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
17
17
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -22,7 +22,7 @@ var _instrument11 = require("../features/logging/instrument");
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
new _agent.Agent({
|
|
25
|
-
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument,
|
|
25
|
+
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument7.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument0.Instrument, _instrument1.Instrument, _instrument8.Instrument, _instrument9.Instrument // either the softnav or the old spa will be used (not both), but we still need to pack both to avoid dynamic import for instrument files
|
|
26
26
|
],
|
|
27
27
|
loaderType: 'spa'
|
|
28
28
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
6
|
+
exports.VERSION = exports.RRWEB_VERSION = exports.RRWEB_PACKAGE_NAME = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
9
9
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -17,7 +17,7 @@ exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_EN
|
|
|
17
17
|
/**
|
|
18
18
|
* Exposes the version of the agent
|
|
19
19
|
*/
|
|
20
|
-
const VERSION = exports.VERSION = "1.300.0-rc.
|
|
20
|
+
const VERSION = exports.VERSION = "1.300.0-rc.2";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Exposes the build type of the agent
|
|
@@ -29,8 +29,6 @@ const BUILD_ENV = exports.BUILD_ENV = "CDN";
|
|
|
29
29
|
* Exposes the distribution method of the agent
|
|
30
30
|
*/
|
|
31
31
|
const DIST_METHOD = exports.DIST_METHOD = 'CDN';
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*/
|
|
36
|
-
const RRWEB_VERSION = exports.RRWEB_VERSION = "^2.0.0-alpha.18";
|
|
32
|
+
const RRWEB_PACKAGE_NAME = exports.RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
33
|
+
// Babel will inline this with the rrweb (fork) version on CDN builds.
|
|
34
|
+
const RRWEB_VERSION = exports.RRWEB_VERSION = "1.0.1";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
6
|
+
exports.VERSION = exports.RRWEB_VERSION = exports.RRWEB_PACKAGE_NAME = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
7
7
|
var _package = _interopRequireDefault(require("../../../package.json"));
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
/**
|
|
@@ -32,8 +32,6 @@ const BUILD_ENV = exports.BUILD_ENV = 'NPM';
|
|
|
32
32
|
* Exposes the distribution method of the agent
|
|
33
33
|
*/
|
|
34
34
|
const DIST_METHOD = exports.DIST_METHOD = 'NPM';
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*/
|
|
39
|
-
const RRWEB_VERSION = exports.RRWEB_VERSION = _package.default.dependencies.rrweb;
|
|
35
|
+
const RRWEB_PACKAGE_NAME = exports.RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
36
|
+
// For raw source consumers (no Babel inline), use the dependency string in package.json to get rrweb (fork) version.
|
|
37
|
+
const RRWEB_VERSION = exports.RRWEB_VERSION = _package.default.dependencies[RRWEB_PACKAGE_NAME] || '0.0.0';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
6
|
+
exports.VERSION = exports.RRWEB_VERSION = exports.RRWEB_PACKAGE_NAME = exports.DIST_METHOD = exports.BUILD_ENV = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
9
9
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -17,7 +17,7 @@ exports.VERSION = exports.RRWEB_VERSION = exports.DIST_METHOD = exports.BUILD_EN
|
|
|
17
17
|
/**
|
|
18
18
|
* Exposes the version of the agent
|
|
19
19
|
*/
|
|
20
|
-
const VERSION = exports.VERSION = "1.300.0-rc.
|
|
20
|
+
const VERSION = exports.VERSION = "1.300.0-rc.2";
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Exposes the build type of the agent
|
|
@@ -27,11 +27,9 @@ const BUILD_ENV = exports.BUILD_ENV = 'NPM';
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Exposes the distribution method of the agent
|
|
30
|
-
* Valid
|
|
30
|
+
* Valid values are CDN, NPM
|
|
31
31
|
*/
|
|
32
32
|
const DIST_METHOD = exports.DIST_METHOD = 'NPM';
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*/
|
|
37
|
-
const RRWEB_VERSION = exports.RRWEB_VERSION = "^2.0.0-alpha.18";
|
|
33
|
+
const RRWEB_PACKAGE_NAME = exports.RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
34
|
+
// Babel will inline this with the rrweb (fork) version on NPM dist esm/cjs builds.
|
|
35
|
+
const RRWEB_VERSION = exports.RRWEB_VERSION = "1.0.1";
|
|
@@ -22,8 +22,7 @@ var _constants2 = require("../../metrics/constants");
|
|
|
22
22
|
var _now = require("../../../common/timing/now");
|
|
23
23
|
var _denyList = require("../../../common/deny-list/deny-list");
|
|
24
24
|
var _extractUrl = require("../../../common/url/extract-url");
|
|
25
|
-
function
|
|
26
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
25
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
27
26
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
28
27
|
* SPDX-License-Identifier: Apache-2.0
|
|
29
28
|
*/
|
|
@@ -21,8 +21,7 @@ var _wrapFetch = require("../../../common/wrap/wrap-fetch");
|
|
|
21
21
|
var _wrapXhr = require("../../../common/wrap/wrap-xhr");
|
|
22
22
|
var _parseUrl = require("../../../common/url/parse-url");
|
|
23
23
|
var _extractUrl = require("../../../common/url/extract-url");
|
|
24
|
-
function
|
|
25
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
26
25
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
27
26
|
* SPDX-License-Identifier: Apache-2.0
|
|
28
27
|
*/
|
|
@@ -15,8 +15,7 @@ var _noticeError = require("../../../loaders/api/noticeError");
|
|
|
15
15
|
var _setErrorHandler = require("../../../loaders/api/setErrorHandler");
|
|
16
16
|
var _addRelease = require("../../../loaders/api/addRelease");
|
|
17
17
|
var _register = require("../../../loaders/api/register");
|
|
18
|
-
function
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
20
19
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
21
20
|
* SPDX-License-Identifier: Apache-2.0
|
|
22
21
|
*/
|
|
@@ -99,6 +99,8 @@ class Aggregate extends _aggregateBase.AggregateBase {
|
|
|
99
99
|
common: {
|
|
100
100
|
/** Attributes in the `common` section are added to `all` logs generated in the payload */
|
|
101
101
|
attributes: {
|
|
102
|
+
...this.agentRef.info.jsAttributes,
|
|
103
|
+
// user-provided custom attributes
|
|
102
104
|
'entity.guid': target.entityGuid,
|
|
103
105
|
// browser entity guid as provided API target OR the default from RUM response if not supplied
|
|
104
106
|
...(sessionEntity && {
|
|
@@ -119,9 +121,7 @@ class Aggregate extends _aggregateBase.AggregateBase {
|
|
|
119
121
|
// The following 3 attributes are evaluated and dropped at ingest processing time and do not get stored on NRDB:
|
|
120
122
|
'instrumentation.provider': 'browser',
|
|
121
123
|
'instrumentation.version': this.agentRef.runtime.version,
|
|
122
|
-
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
123
|
-
// Custom attributes
|
|
124
|
-
...this.agentRef.info.jsAttributes
|
|
124
|
+
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
127
|
/** logs section contains individual unique log entries */
|
|
@@ -13,8 +13,7 @@ var _log = require("../../../loaders/api/log");
|
|
|
13
13
|
var _wrapLogger2 = require("../../../loaders/api/wrapLogger");
|
|
14
14
|
var _register = require("../../../loaders/api/register");
|
|
15
15
|
var _monkeyPatched = require("../../../common/util/monkey-patched");
|
|
16
|
-
function
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
18
17
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
19
18
|
* SPDX-License-Identifier: Apache-2.0
|
|
20
19
|
*/
|
|
@@ -8,8 +8,7 @@ var _runtime = require("../../../common/constants/runtime");
|
|
|
8
8
|
var _handle = require("../../../common/event-emitter/handle");
|
|
9
9
|
var _instrumentBase = require("../../utils/instrument-base");
|
|
10
10
|
var _constants = require("../constants");
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
13
12
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
14
13
|
* SPDX-License-Identifier: Apache-2.0
|
|
15
14
|
*/
|
|
@@ -21,8 +21,7 @@ var _timeKeeper = require("../../../common/timing/time-keeper");
|
|
|
21
21
|
var _traverse = require("../../../common/util/traverse");
|
|
22
22
|
var _registerHandler = require("../../../common/event-emitter/register-handler");
|
|
23
23
|
var _target = require("../../../common/util/target");
|
|
24
|
-
function
|
|
25
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
26
25
|
/**
|
|
27
26
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
28
27
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -11,8 +11,7 @@ var CONSTANTS = _interopRequireWildcard(require("../constants"));
|
|
|
11
11
|
var _constants2 = require("../../../common/session/constants");
|
|
12
12
|
var _globalEvent = require("../../../common/dispatch/global-event");
|
|
13
13
|
var _load = require("../../../common/window/load");
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
16
15
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
17
16
|
* SPDX-License-Identifier: Apache-2.0
|
|
18
17
|
*/
|
|
@@ -11,8 +11,7 @@ var _instrumentBase = require("../../utils/instrument-base");
|
|
|
11
11
|
var _constants = require("../constants");
|
|
12
12
|
var _runtime = require("../../../common/constants/runtime");
|
|
13
13
|
var _now = require("../../../common/timing/now");
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
16
15
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
17
16
|
* SPDX-License-Identifier: Apache-2.0
|
|
18
17
|
*/
|
|
@@ -19,8 +19,7 @@ var _now = require("../../../common/timing/now");
|
|
|
19
19
|
var _agentConstants = require("../../../common/constants/agent-constants");
|
|
20
20
|
var _cleanUrl = require("../../../common/url/clean-url");
|
|
21
21
|
var _featureGates = require("../../utils/feature-gates");
|
|
22
|
-
function
|
|
23
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
24
23
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
25
24
|
* SPDX-License-Identifier: Apache-2.0
|
|
26
25
|
*/ /**
|
|
@@ -338,7 +337,7 @@ class Aggregate extends _aggregateBase.AggregateBase {
|
|
|
338
337
|
decompressedBytes: recorderEvents.payloadBytesEstimation,
|
|
339
338
|
invalidStylesheetsDetected: _stylesheetEvaluator.stylesheetEvaluator.invalidStylesheetsDetected,
|
|
340
339
|
inlinedAllStylesheets: recorderEvents.inlinedAllStylesheets,
|
|
341
|
-
'rrweb.version': _env.RRWEB_VERSION,
|
|
340
|
+
'rrweb.version': _env.RRWEB_PACKAGE_NAME + '@' + _env.RRWEB_VERSION,
|
|
342
341
|
'payload.type': recorderEvents.type,
|
|
343
342
|
// customer-defined data should go last so that if it exceeds the query param padding limit it will be truncated instead of important attrs
|
|
344
343
|
...(endUserId && {
|
|
@@ -11,8 +11,7 @@ var _utils = require("../shared/utils");
|
|
|
11
11
|
var _constants2 = require("../constants");
|
|
12
12
|
var _recordReplay = require("../../../loaders/api/recordReplay");
|
|
13
13
|
var _pauseReplay = require("../../../loaders/api/pauseReplay");
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
16
15
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
17
16
|
* SPDX-License-Identifier: Apache-2.0
|
|
18
17
|
*/ /**
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Recorder = void 0;
|
|
7
|
-
var _rrweb = require("rrweb");
|
|
7
|
+
var _rrweb = require("@newrelic/rrweb");
|
|
8
8
|
var _stringify = require("../../../common/util/stringify");
|
|
9
9
|
var _constants = require("../constants");
|
|
10
10
|
var _recorderEvents = require("./recorder-events");
|
|
@@ -192,6 +192,7 @@ class Recorder {
|
|
|
192
192
|
const eventBytes = event.__serialized.length;
|
|
193
193
|
/** The estimated size of the payload after compression */
|
|
194
194
|
const payloadSize = this.getPayloadSize(eventBytes);
|
|
195
|
+
(0, _handle.handle)(_constants3.SUPPORTABILITY_METRIC_CHANNEL, ['rrweb/node/' + event.type + '/bytes', eventBytes], undefined, _features.FEATURE_NAMES.metrics, this.ee);
|
|
195
196
|
// Checkout events are flags by the recording lib that indicate a fullsnapshot was taken every n ms. These are important
|
|
196
197
|
// to help reconstruct the replay later and must be included. While waiting and buffering for errors to come through,
|
|
197
198
|
// each time we see a new checkout, we can drop the old data.
|
|
@@ -14,8 +14,7 @@ var _featureGates = require("../../utils/feature-gates");
|
|
|
14
14
|
var _now = require("../../../common/timing/now");
|
|
15
15
|
var _addToTrace = require("../../../loaders/api/addToTrace");
|
|
16
16
|
var _finished = require("../../../loaders/api/finished");
|
|
17
|
-
function
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
19
18
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
20
19
|
* SPDX-License-Identifier: Apache-2.0
|
|
21
20
|
*/
|
|
@@ -14,8 +14,7 @@ var _instrumentBase = require("../../utils/instrument-base");
|
|
|
14
14
|
var _constants = require("../constants");
|
|
15
15
|
var _now = require("../../../common/timing/now");
|
|
16
16
|
var _interaction = require("../../../loaders/api/interaction");
|
|
17
|
-
function
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
19
18
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
20
19
|
* SPDX-License-Identifier: Apache-2.0
|
|
21
20
|
*/
|
|
@@ -23,8 +23,7 @@ var _runtime = require("../../../common/constants/runtime");
|
|
|
23
23
|
var _handle = require("../../../common/event-emitter/handle");
|
|
24
24
|
var _constants2 = require("../../metrics/constants");
|
|
25
25
|
var _console = require("../../../common/util/console");
|
|
26
|
-
function
|
|
27
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
26
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
28
27
|
/**
|
|
29
28
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
30
29
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -18,8 +18,7 @@ var _wrapFetch = require("../../../common/wrap/wrap-fetch");
|
|
|
18
18
|
var _wrapHistory = require("../../../common/wrap/wrap-history");
|
|
19
19
|
var _wrapMutation = require("../../../common/wrap/wrap-mutation");
|
|
20
20
|
var _interaction = require("../../../loaders/api/interaction");
|
|
21
|
-
function
|
|
22
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
21
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
23
22
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
24
23
|
* SPDX-License-Identifier: Apache-2.0
|
|
25
24
|
*/
|
|
@@ -15,8 +15,7 @@ var _featureGates = require("./feature-gates");
|
|
|
15
15
|
var _invoke = require("../../common/util/invoke");
|
|
16
16
|
var _agentConstants = require("../../common/constants/agent-constants");
|
|
17
17
|
var _handle = require("../../common/event-emitter/handle");
|
|
18
|
-
function
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
20
19
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
21
20
|
* SPDX-License-Identifier: Apache-2.0
|
|
22
21
|
*/ /**
|
|
@@ -14,8 +14,8 @@ var _instrument6 = require("../features/session_trace/instrument");
|
|
|
14
14
|
var _instrument7 = require("../features/spa/instrument");
|
|
15
15
|
var _instrument8 = require("../features/session_replay/instrument");
|
|
16
16
|
var _instrument9 = require("../features/generic_events/instrument");
|
|
17
|
-
var
|
|
18
|
-
var
|
|
17
|
+
var _instrument0 = require("../features/logging/instrument");
|
|
18
|
+
var _instrument1 = require("../features/soft_navigations/instrument");
|
|
19
19
|
/**
|
|
20
20
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
21
21
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -32,7 +32,7 @@ class BrowserAgent extends _agent.Agent {
|
|
|
32
32
|
constructor(options) {
|
|
33
33
|
super({
|
|
34
34
|
...options,
|
|
35
|
-
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument7.Instrument,
|
|
35
|
+
features: [_instrument5.Instrument, _instrument.Instrument, _instrument2.Instrument, _instrument6.Instrument, _instrument3.Instrument, _instrument4.Instrument, _instrument7.Instrument, _instrument1.Instrument, _instrument8.Instrument, _instrument9.Instrument, _instrument0.Instrument],
|
|
36
36
|
loaderType: 'browser-agent'
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -23,8 +23,7 @@ var _recordCustomEvent = require("./api/recordCustomEvent");
|
|
|
23
23
|
var _finished = require("./api/finished");
|
|
24
24
|
var _log = require("./api/log");
|
|
25
25
|
var _wrapLogger = require("./api/wrapLogger");
|
|
26
|
-
function
|
|
27
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
|
|
26
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } /**
|
|
28
27
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
29
28
|
* SPDX-License-Identifier: Apache-2.0
|
|
30
29
|
*/ // loader files
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
/**
|
|
12
12
|
* Exposes the version of the agent
|
|
13
13
|
*/
|
|
14
|
-
export const VERSION = "1.300.0-rc.
|
|
14
|
+
export const VERSION = "1.300.0-rc.2";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Exposes the build type of the agent
|
|
@@ -23,8 +23,6 @@ export const BUILD_ENV = "CDN";
|
|
|
23
23
|
* Exposes the distribution method of the agent
|
|
24
24
|
*/
|
|
25
25
|
export const DIST_METHOD = 'CDN';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
*/
|
|
30
|
-
export const RRWEB_VERSION = "^2.0.0-alpha.18";
|
|
26
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
27
|
+
// Babel will inline this with the rrweb (fork) version on CDN builds.
|
|
28
|
+
export const RRWEB_VERSION = "1.0.1";
|
|
@@ -26,8 +26,6 @@ export const BUILD_ENV = 'NPM';
|
|
|
26
26
|
* Exposes the distribution method of the agent
|
|
27
27
|
*/
|
|
28
28
|
export const DIST_METHOD = 'NPM';
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
export const RRWEB_VERSION = pkgJSON.dependencies.rrweb;
|
|
29
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
30
|
+
// For raw source consumers (no Babel inline), use the dependency string in package.json to get rrweb (fork) version.
|
|
31
|
+
export const RRWEB_VERSION = pkgJSON.dependencies[RRWEB_PACKAGE_NAME] || '0.0.0';
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
/**
|
|
12
12
|
* Exposes the version of the agent
|
|
13
13
|
*/
|
|
14
|
-
export const VERSION = "1.300.0-rc.
|
|
14
|
+
export const VERSION = "1.300.0-rc.2";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Exposes the build type of the agent
|
|
@@ -21,11 +21,9 @@ export const BUILD_ENV = 'NPM';
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Exposes the distribution method of the agent
|
|
24
|
-
* Valid
|
|
24
|
+
* Valid values are CDN, NPM
|
|
25
25
|
*/
|
|
26
26
|
export const DIST_METHOD = 'NPM';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
export const RRWEB_VERSION = "^2.0.0-alpha.18";
|
|
27
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb';
|
|
28
|
+
// Babel will inline this with the rrweb (fork) version on NPM dist esm/cjs builds.
|
|
29
|
+
export const RRWEB_VERSION = "1.0.1";
|
|
@@ -92,6 +92,8 @@ export class Aggregate extends AggregateBase {
|
|
|
92
92
|
common: {
|
|
93
93
|
/** Attributes in the `common` section are added to `all` logs generated in the payload */
|
|
94
94
|
attributes: {
|
|
95
|
+
...this.agentRef.info.jsAttributes,
|
|
96
|
+
// user-provided custom attributes
|
|
95
97
|
'entity.guid': target.entityGuid,
|
|
96
98
|
// browser entity guid as provided API target OR the default from RUM response if not supplied
|
|
97
99
|
...(sessionEntity && {
|
|
@@ -112,9 +114,7 @@ export class Aggregate extends AggregateBase {
|
|
|
112
114
|
// The following 3 attributes are evaluated and dropped at ingest processing time and do not get stored on NRDB:
|
|
113
115
|
'instrumentation.provider': 'browser',
|
|
114
116
|
'instrumentation.version': this.agentRef.runtime.version,
|
|
115
|
-
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
116
|
-
// Custom attributes
|
|
117
|
-
...this.agentRef.info.jsAttributes
|
|
117
|
+
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
118
118
|
}
|
|
119
119
|
},
|
|
120
120
|
/** logs section contains individual unique log entries */
|
|
@@ -13,7 +13,7 @@ import { sharedChannel } from '../../../common/constants/shared-channel';
|
|
|
13
13
|
import { obj as encodeObj } from '../../../common/url/encode';
|
|
14
14
|
import { warn } from '../../../common/util/console';
|
|
15
15
|
import { globalScope } from '../../../common/constants/runtime';
|
|
16
|
-
import { RRWEB_VERSION } from "../../../common/constants/env.npm";
|
|
16
|
+
import { RRWEB_VERSION, RRWEB_PACKAGE_NAME } from "../../../common/constants/env.npm";
|
|
17
17
|
import { MODE, SESSION_EVENTS, SESSION_EVENT_TYPES } from '../../../common/session/constants';
|
|
18
18
|
import { stringify } from '../../../common/util/stringify';
|
|
19
19
|
import { stylesheetEvaluator } from '../shared/stylesheet-evaluator';
|
|
@@ -333,7 +333,7 @@ export class Aggregate extends AggregateBase {
|
|
|
333
333
|
decompressedBytes: recorderEvents.payloadBytesEstimation,
|
|
334
334
|
invalidStylesheetsDetected: stylesheetEvaluator.invalidStylesheetsDetected,
|
|
335
335
|
inlinedAllStylesheets: recorderEvents.inlinedAllStylesheets,
|
|
336
|
-
'rrweb.version': RRWEB_VERSION,
|
|
336
|
+
'rrweb.version': RRWEB_PACKAGE_NAME + '@' + RRWEB_VERSION,
|
|
337
337
|
'payload.type': recorderEvents.type,
|
|
338
338
|
// customer-defined data should go last so that if it exceeds the query param padding limit it will be truncated instead of important attrs
|
|
339
339
|
...(endUserId && {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { record as recorder } from 'rrweb';
|
|
5
|
+
import { record as recorder } from '@newrelic/rrweb';
|
|
6
6
|
import { stringify } from '../../../common/util/stringify';
|
|
7
7
|
import { AVG_COMPRESSION, CHECKOUT_MS, QUERY_PARAM_PADDING, RRWEB_EVENT_TYPES } from '../constants';
|
|
8
8
|
import { RecorderEvents } from './recorder-events';
|
|
@@ -185,6 +185,7 @@ export class Recorder {
|
|
|
185
185
|
const eventBytes = event.__serialized.length;
|
|
186
186
|
/** The estimated size of the payload after compression */
|
|
187
187
|
const payloadSize = this.getPayloadSize(eventBytes);
|
|
188
|
+
handle(SUPPORTABILITY_METRIC_CHANNEL, ['rrweb/node/' + event.type + '/bytes', eventBytes], undefined, FEATURE_NAMES.metrics, this.ee);
|
|
188
189
|
// Checkout events are flags by the recording lib that indicate a fullsnapshot was taken every n ms. These are important
|
|
189
190
|
// to help reconstruct the replay later and must be included. While waiting and buffering for errors to come through,
|
|
190
191
|
// each time we see a new checkout, we can drop the old data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.js","../src/cdn/experimental.js","../src/cdn/lite.js","../src/cdn/pro.js","../src/cdn/spa.js","../src/common/aggregate/aggregator.js","../src/common/aggregate/event-aggregator.js","../src/common/config/configurable.js","../src/common/config/info.js","../src/common/config/init-types.js","../src/common/config/init.js","../src/common/config/loader-config.js","../src/common/config/runtime.js","../src/common/constants/agent-constants.js","../src/common/constants/env.cdn.js","../src/common/constants/env.js","../src/common/constants/env.npm.js","../src/common/constants/runtime.js","../src/common/constants/shared-channel.js","../src/common/deny-list/deny-list.js","../src/common/dispatch/global-event.js","../src/common/dom/iframe.js","../src/common/dom/query-selector.js","../src/common/dom/selector-path.js","../src/common/drain/drain.js","../src/common/event-emitter/contextual-ee.js","../src/common/event-emitter/event-context.js","../src/common/event-emitter/handle.js","../src/common/event-emitter/register-handler.js","../src/common/event-listener/event-listener-opts.js","../src/common/harvest/harvester.js","../src/common/harvest/types.js","../src/common/ids/bundle-id.js","../src/common/ids/id.js","../src/common/ids/unique-id.js","../src/common/serialize/bel-serializer.js","../src/common/session/constants.js","../src/common/session/session-entity.js","../src/common/storage/local-storage.js","../src/common/timer/interaction-timer.js","../src/common/timer/timer.js","../src/common/timing/nav-timing.js","../src/common/timing/now.js","../src/common/timing/time-keeper.js","../src/common/unload/eol.js","../src/common/url/canonicalize-url.js","../src/common/url/clean-url.js","../src/common/url/encode.js","../src/common/url/extract-url.js","../src/common/url/location.js","../src/common/url/parse-url.js","../src/common/url/protocol.js","../src/common/util/attribute-size.js","../src/common/util/console.js","../src/common/util/data-size.js","../src/common/util/event-origin.js","../src/common/util/feature-flags.js","../src/common/util/get-or-set.js","../src/common/util/invoke.js","../src/common/util/monkey-patched.js","../src/common/util/obfuscate.js","../src/common/util/stringify.js","../src/common/util/submit-data.js","../src/common/util/target.js","../src/common/util/text.js","../src/common/util/traverse.js","../src/common/util/type-check.js","../src/common/vitals/constants.js","../src/common/vitals/cumulative-layout-shift.js","../src/common/vitals/first-contentful-paint.js","../src/common/vitals/first-paint.js","../src/common/vitals/interaction-to-next-paint.js","../src/common/vitals/largest-contentful-paint.js","../src/common/vitals/time-to-first-byte.js","../src/common/vitals/vital-metric.js","../src/common/window/load.js","../src/common/window/nreum.js","../src/common/window/page-visibility.js","../src/common/wrap/wrap-events.js","../src/common/wrap/wrap-fetch.js","../src/common/wrap/wrap-function.js","../src/common/wrap/wrap-history.js","../src/common/wrap/wrap-jsonp.js","../src/common/wrap/wrap-logger.js","../src/common/wrap/wrap-mutation.js","../src/common/wrap/wrap-promise.js","../src/common/wrap/wrap-timer.js","../src/common/wrap/wrap-websocket.js","../src/common/wrap/wrap-xhr.js","../src/features/ajax/constants.js","../src/features/ajax/index.js","../src/features/ajax/aggregate/gql.js","../src/features/ajax/aggregate/index.js","../src/features/ajax/instrument/distributed-tracing.js","../src/features/ajax/instrument/index.js","../src/features/ajax/instrument/response-size.js","../src/features/generic_events/constants.js","../src/features/generic_events/index.js","../src/features/generic_events/aggregate/index.js","../src/features/generic_events/aggregate/user-actions/aggregated-user-action.js","../src/features/generic_events/aggregate/user-actions/user-actions-aggregator.js","../src/features/generic_events/instrument/index.js","../src/features/jserrors/constants.js","../src/features/jserrors/index.js","../src/features/jserrors/aggregate/canonical-function-name.js","../src/features/jserrors/aggregate/cause-string.js","../src/features/jserrors/aggregate/compute-stack-trace.js","../src/features/jserrors/aggregate/format-stack-trace.js","../src/features/jserrors/aggregate/index.js","../src/features/jserrors/aggregate/internal-errors.js","../src/features/jserrors/aggregate/string-hash-code.js","../src/features/jserrors/instrument/index.js","../src/features/jserrors/shared/cast-error.js","../src/features/jserrors/shared/uncaught-error.js","../src/features/logging/constants.js","../src/features/logging/index.js","../src/features/logging/aggregate/index.js","../src/features/logging/instrument/index.js","../src/features/logging/shared/log.js","../src/features/logging/shared/utils.js","../src/features/metrics/constants.js","../src/features/metrics/index.js","../src/features/metrics/aggregate/framework-detection.js","../src/features/metrics/aggregate/harvest-metadata.js","../src/features/metrics/aggregate/index.js","../src/features/metrics/aggregate/websocket-detection.js","../src/features/metrics/instrument/index.js","../src/features/page_action/constants.js","../src/features/page_action/index.js","../src/features/page_action/instrument/index.js","../src/features/page_view_event/constants.js","../src/features/page_view_event/index.js","../src/features/page_view_event/aggregate/index.js","../src/features/page_view_event/aggregate/initialized-features.js","../src/features/page_view_event/instrument/index.js","../src/features/page_view_timing/constants.js","../src/features/page_view_timing/index.js","../src/features/page_view_timing/aggregate/index.js","../src/features/page_view_timing/instrument/index.js","../src/features/session_replay/constants.js","../src/features/session_replay/index.js","../src/features/session_replay/aggregate/index.js","../src/features/session_replay/instrument/index.js","../src/features/session_replay/shared/recorder-events.js","../src/features/session_replay/shared/recorder.js","../src/features/session_replay/shared/stylesheet-evaluator.js","../src/features/session_replay/shared/utils.js","../src/features/session_trace/constants.js","../src/features/session_trace/index.js","../src/features/session_trace/aggregate/index.js","../src/features/session_trace/aggregate/trace/node.js","../src/features/session_trace/aggregate/trace/storage.js","../src/features/session_trace/aggregate/trace/utils.js","../src/features/session_trace/instrument/index.js","../src/features/soft_navigations/constants.js","../src/features/soft_navigations/index.js","../src/features/soft_navigations/aggregate/ajax-node.js","../src/features/soft_navigations/aggregate/bel-node.js","../src/features/soft_navigations/aggregate/index.js","../src/features/soft_navigations/aggregate/initial-page-load-interaction.js","../src/features/soft_navigations/aggregate/interaction.js","../src/features/soft_navigations/instrument/index.js","../src/features/spa/constants.js","../src/features/spa/index.js","../src/features/spa/aggregate/index.js","../src/features/spa/aggregate/interaction-node.js","../src/features/spa/aggregate/interaction.js","../src/features/spa/aggregate/serializer.js","../src/features/spa/instrument/index.js","../src/features/utils/agent-session.js","../src/features/utils/aggregate-base.js","../src/features/utils/entity-manager.js","../src/features/utils/event-buffer.js","../src/features/utils/event-store-manager.js","../src/features/utils/feature-base.js","../src/features/utils/feature-gates.js","../src/features/utils/instrument-base.js","../src/features/utils/nr1-debugger.js","../src/interfaces/registered-entity.js","../src/loaders/agent-base.js","../src/loaders/agent.js","../src/loaders/api-base.js","../src/loaders/browser-agent.js","../src/loaders/micro-agent-base.js","../src/loaders/micro-agent.js","../src/loaders/api/addPageAction.js","../src/loaders/api/addRelease.js","../src/loaders/api/addToTrace.js","../src/loaders/api/constants.js","../src/loaders/api/finished.js","../src/loaders/api/interaction-types.js","../src/loaders/api/interaction.js","../src/loaders/api/log.js","../src/loaders/api/measure.js","../src/loaders/api/noticeError.js","../src/loaders/api/pauseReplay.js","../src/loaders/api/recordCustomEvent.js","../src/loaders/api/recordReplay.js","../src/loaders/api/register-api-types.js","../src/loaders/api/register-api.js","../src/loaders/api/register.js","../src/loaders/api/setApplicationVersion.js","../src/loaders/api/setCustomAttribute.js","../src/loaders/api/setErrorHandler.js","../src/loaders/api/setPageViewName.js","../src/loaders/api/setUserId.js","../src/loaders/api/sharedHandlers.js","../src/loaders/api/start.js","../src/loaders/api/topLevelCallers.js","../src/loaders/api/wrapLogger.js","../src/loaders/configure/configure.js","../src/loaders/configure/nonce.js","../src/loaders/configure/public-path.js","../src/loaders/features/enabled-features.js","../src/loaders/features/featureDependencies.js","../src/loaders/features/features.js"],"version":"5.
|
|
1
|
+
{"root":["../src/index.js","../src/cdn/experimental.js","../src/cdn/lite.js","../src/cdn/pro.js","../src/cdn/spa.js","../src/common/aggregate/aggregator.js","../src/common/aggregate/event-aggregator.js","../src/common/config/configurable.js","../src/common/config/info.js","../src/common/config/init-types.js","../src/common/config/init.js","../src/common/config/loader-config.js","../src/common/config/runtime.js","../src/common/constants/agent-constants.js","../src/common/constants/env.cdn.js","../src/common/constants/env.js","../src/common/constants/env.npm.js","../src/common/constants/runtime.js","../src/common/constants/shared-channel.js","../src/common/deny-list/deny-list.js","../src/common/dispatch/global-event.js","../src/common/dom/iframe.js","../src/common/dom/query-selector.js","../src/common/dom/selector-path.js","../src/common/drain/drain.js","../src/common/event-emitter/contextual-ee.js","../src/common/event-emitter/event-context.js","../src/common/event-emitter/handle.js","../src/common/event-emitter/register-handler.js","../src/common/event-listener/event-listener-opts.js","../src/common/harvest/harvester.js","../src/common/harvest/types.js","../src/common/ids/bundle-id.js","../src/common/ids/id.js","../src/common/ids/unique-id.js","../src/common/serialize/bel-serializer.js","../src/common/session/constants.js","../src/common/session/session-entity.js","../src/common/storage/local-storage.js","../src/common/timer/interaction-timer.js","../src/common/timer/timer.js","../src/common/timing/nav-timing.js","../src/common/timing/now.js","../src/common/timing/time-keeper.js","../src/common/unload/eol.js","../src/common/url/canonicalize-url.js","../src/common/url/clean-url.js","../src/common/url/encode.js","../src/common/url/extract-url.js","../src/common/url/location.js","../src/common/url/parse-url.js","../src/common/url/protocol.js","../src/common/util/attribute-size.js","../src/common/util/console.js","../src/common/util/data-size.js","../src/common/util/event-origin.js","../src/common/util/feature-flags.js","../src/common/util/get-or-set.js","../src/common/util/invoke.js","../src/common/util/monkey-patched.js","../src/common/util/obfuscate.js","../src/common/util/stringify.js","../src/common/util/submit-data.js","../src/common/util/target.js","../src/common/util/text.js","../src/common/util/traverse.js","../src/common/util/type-check.js","../src/common/vitals/constants.js","../src/common/vitals/cumulative-layout-shift.js","../src/common/vitals/first-contentful-paint.js","../src/common/vitals/first-paint.js","../src/common/vitals/interaction-to-next-paint.js","../src/common/vitals/largest-contentful-paint.js","../src/common/vitals/time-to-first-byte.js","../src/common/vitals/vital-metric.js","../src/common/window/load.js","../src/common/window/nreum.js","../src/common/window/page-visibility.js","../src/common/wrap/wrap-events.js","../src/common/wrap/wrap-fetch.js","../src/common/wrap/wrap-function.js","../src/common/wrap/wrap-history.js","../src/common/wrap/wrap-jsonp.js","../src/common/wrap/wrap-logger.js","../src/common/wrap/wrap-mutation.js","../src/common/wrap/wrap-promise.js","../src/common/wrap/wrap-timer.js","../src/common/wrap/wrap-websocket.js","../src/common/wrap/wrap-xhr.js","../src/features/ajax/constants.js","../src/features/ajax/index.js","../src/features/ajax/aggregate/gql.js","../src/features/ajax/aggregate/index.js","../src/features/ajax/instrument/distributed-tracing.js","../src/features/ajax/instrument/index.js","../src/features/ajax/instrument/response-size.js","../src/features/generic_events/constants.js","../src/features/generic_events/index.js","../src/features/generic_events/aggregate/index.js","../src/features/generic_events/aggregate/user-actions/aggregated-user-action.js","../src/features/generic_events/aggregate/user-actions/user-actions-aggregator.js","../src/features/generic_events/instrument/index.js","../src/features/jserrors/constants.js","../src/features/jserrors/index.js","../src/features/jserrors/aggregate/canonical-function-name.js","../src/features/jserrors/aggregate/cause-string.js","../src/features/jserrors/aggregate/compute-stack-trace.js","../src/features/jserrors/aggregate/format-stack-trace.js","../src/features/jserrors/aggregate/index.js","../src/features/jserrors/aggregate/internal-errors.js","../src/features/jserrors/aggregate/string-hash-code.js","../src/features/jserrors/instrument/index.js","../src/features/jserrors/shared/cast-error.js","../src/features/jserrors/shared/uncaught-error.js","../src/features/logging/constants.js","../src/features/logging/index.js","../src/features/logging/aggregate/index.js","../src/features/logging/instrument/index.js","../src/features/logging/shared/log.js","../src/features/logging/shared/utils.js","../src/features/metrics/constants.js","../src/features/metrics/index.js","../src/features/metrics/aggregate/framework-detection.js","../src/features/metrics/aggregate/harvest-metadata.js","../src/features/metrics/aggregate/index.js","../src/features/metrics/aggregate/websocket-detection.js","../src/features/metrics/instrument/index.js","../src/features/page_action/constants.js","../src/features/page_action/index.js","../src/features/page_action/instrument/index.js","../src/features/page_view_event/constants.js","../src/features/page_view_event/index.js","../src/features/page_view_event/aggregate/index.js","../src/features/page_view_event/aggregate/initialized-features.js","../src/features/page_view_event/instrument/index.js","../src/features/page_view_timing/constants.js","../src/features/page_view_timing/index.js","../src/features/page_view_timing/aggregate/index.js","../src/features/page_view_timing/instrument/index.js","../src/features/session_replay/constants.js","../src/features/session_replay/index.js","../src/features/session_replay/aggregate/index.js","../src/features/session_replay/instrument/index.js","../src/features/session_replay/shared/recorder-events.js","../src/features/session_replay/shared/recorder.js","../src/features/session_replay/shared/stylesheet-evaluator.js","../src/features/session_replay/shared/utils.js","../src/features/session_trace/constants.js","../src/features/session_trace/index.js","../src/features/session_trace/aggregate/index.js","../src/features/session_trace/aggregate/trace/node.js","../src/features/session_trace/aggregate/trace/storage.js","../src/features/session_trace/aggregate/trace/utils.js","../src/features/session_trace/instrument/index.js","../src/features/soft_navigations/constants.js","../src/features/soft_navigations/index.js","../src/features/soft_navigations/aggregate/ajax-node.js","../src/features/soft_navigations/aggregate/bel-node.js","../src/features/soft_navigations/aggregate/index.js","../src/features/soft_navigations/aggregate/initial-page-load-interaction.js","../src/features/soft_navigations/aggregate/interaction.js","../src/features/soft_navigations/instrument/index.js","../src/features/spa/constants.js","../src/features/spa/index.js","../src/features/spa/aggregate/index.js","../src/features/spa/aggregate/interaction-node.js","../src/features/spa/aggregate/interaction.js","../src/features/spa/aggregate/serializer.js","../src/features/spa/instrument/index.js","../src/features/utils/agent-session.js","../src/features/utils/aggregate-base.js","../src/features/utils/entity-manager.js","../src/features/utils/event-buffer.js","../src/features/utils/event-store-manager.js","../src/features/utils/feature-base.js","../src/features/utils/feature-gates.js","../src/features/utils/instrument-base.js","../src/features/utils/nr1-debugger.js","../src/interfaces/registered-entity.js","../src/loaders/agent-base.js","../src/loaders/agent.js","../src/loaders/api-base.js","../src/loaders/browser-agent.js","../src/loaders/micro-agent-base.js","../src/loaders/micro-agent.js","../src/loaders/api/addPageAction.js","../src/loaders/api/addRelease.js","../src/loaders/api/addToTrace.js","../src/loaders/api/constants.js","../src/loaders/api/finished.js","../src/loaders/api/interaction-types.js","../src/loaders/api/interaction.js","../src/loaders/api/log.js","../src/loaders/api/measure.js","../src/loaders/api/noticeError.js","../src/loaders/api/pauseReplay.js","../src/loaders/api/recordCustomEvent.js","../src/loaders/api/recordReplay.js","../src/loaders/api/register-api-types.js","../src/loaders/api/register-api.js","../src/loaders/api/register.js","../src/loaders/api/setApplicationVersion.js","../src/loaders/api/setCustomAttribute.js","../src/loaders/api/setErrorHandler.js","../src/loaders/api/setPageViewName.js","../src/loaders/api/setUserId.js","../src/loaders/api/sharedHandlers.js","../src/loaders/api/start.js","../src/loaders/api/topLevelCallers.js","../src/loaders/api/wrapLogger.js","../src/loaders/configure/configure.js","../src/loaders/configure/nonce.js","../src/loaders/configure/public-path.js","../src/loaders/features/enabled-features.js","../src/loaders/features/featureDependencies.js","../src/loaders/features/features.js"],"version":"5.9.3"}
|
|
@@ -19,8 +19,6 @@ export const BUILD_ENV: string | undefined;
|
|
|
19
19
|
* Exposes the distribution method of the agent
|
|
20
20
|
*/
|
|
21
21
|
export const DIST_METHOD: "CDN";
|
|
22
|
-
|
|
23
|
-
* Exposes the lib version of rrweb
|
|
24
|
-
*/
|
|
22
|
+
export const RRWEB_PACKAGE_NAME: "@newrelic/rrweb";
|
|
25
23
|
export const RRWEB_VERSION: string | undefined;
|
|
26
24
|
//# sourceMappingURL=env.cdn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.cdn.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.cdn.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH;;GAEG;AACH,yCAAgD;AAEhD;;;GAGG;AACH,2CAA8C;AAE9C;;GAEG;AACH,0BAA2B,KAAK,CAAA;AAEhC
|
|
1
|
+
{"version":3,"file":"env.cdn.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.cdn.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH;;GAEG;AACH,yCAAgD;AAEhD;;;GAGG;AACH,2CAA8C;AAE9C;;GAEG;AACH,0BAA2B,KAAK,CAAA;AAEhC,iCAAkC,iBAAiB,CAAA;AAEnD,+CAAsD"}
|
|
@@ -10,8 +10,6 @@ export const BUILD_ENV: "NPM";
|
|
|
10
10
|
* Exposes the distribution method of the agent
|
|
11
11
|
*/
|
|
12
12
|
export const DIST_METHOD: "NPM";
|
|
13
|
-
|
|
14
|
-
* Exposes the lib version of rrweb
|
|
15
|
-
*/
|
|
13
|
+
export const RRWEB_PACKAGE_NAME: "@newrelic/rrweb";
|
|
16
14
|
export const RRWEB_VERSION: any;
|
|
17
15
|
//# sourceMappingURL=env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.js"],"names":[],"mappings":"AAcA;;GAEG;AACH,0BAAsC;AAEtC;;GAEG;AACH,wBAAyB,KAAK,CAAA;AAE9B;;GAEG;AACH,0BAA2B,KAAK,CAAA;AAEhC
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.js"],"names":[],"mappings":"AAcA;;GAEG;AACH,0BAAsC;AAEtC;;GAEG;AACH,wBAAyB,KAAK,CAAA;AAE9B;;GAEG;AACH,0BAA2B,KAAK,CAAA;AAEhC,iCAAkC,iBAAiB,CAAA;AAEnD,gCAAgF"}
|
|
@@ -17,11 +17,9 @@ export const VERSION: string | undefined;
|
|
|
17
17
|
export const BUILD_ENV: "NPM";
|
|
18
18
|
/**
|
|
19
19
|
* Exposes the distribution method of the agent
|
|
20
|
-
* Valid
|
|
20
|
+
* Valid values are CDN, NPM
|
|
21
21
|
*/
|
|
22
22
|
export const DIST_METHOD: "NPM";
|
|
23
|
-
|
|
24
|
-
* Exposes the lib version of rrweb
|
|
25
|
-
*/
|
|
23
|
+
export const RRWEB_PACKAGE_NAME: "@newrelic/rrweb";
|
|
26
24
|
export const RRWEB_VERSION: string | undefined;
|
|
27
25
|
//# sourceMappingURL=env.npm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.npm.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.npm.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH;;GAEG;AACH,yCAAgD;AAEhD;;;GAGG;AACH,wBAAyB,KAAK,CAAA;AAE9B;;;GAGG;AACH,0BAA2B,KAAK,CAAA;AAEhC
|
|
1
|
+
{"version":3,"file":"env.npm.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/env.npm.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH;;GAEG;AACH,yCAAgD;AAEhD;;;GAGG;AACH,wBAAyB,KAAK,CAAA;AAE9B;;;GAGG;AACH,0BAA2B,KAAK,CAAA;AAEhC,iCAAkC,iBAAiB,CAAA;AAEnD,+CAAsD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/logging/aggregate/index.js"],"names":[],"mappings":"AAiBA;IACE,2BAAiC;IACjC,2BAqCC;IAnCC,8BAAmG;IAY5F,iBAAmC;IAyB5C,0CAKC;IAED,4HAsCC;IAED;;YAKM,0FAA0F;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/logging/aggregate/index.js"],"names":[],"mappings":"AAiBA;IACE,2BAAiC;IACjC,2BAqCC;IAnCC,8BAAmG;IAY5F,iBAAmC;IAyB5C,0CAKC;IAED,4HAsCC;IAED;;YAKM,0FAA0F;;;QAmB5F,0DAA0D;;QAM7D;IAED;;MAGC;IAED,yDAAyD;IACzD,yBASC;IAED,yCAIC;CACF;8BAxJ6B,4BAA4B"}
|
|
@@ -15,7 +15,9 @@ export namespace RRWEB_EVENT_TYPES {
|
|
|
15
15
|
}
|
|
16
16
|
/** Interval between forcing new full snapshots -- 15 seconds in error mode (x2), 5 minutes in full mode */
|
|
17
17
|
export const CHECKOUT_MS: {
|
|
18
|
-
[
|
|
18
|
+
[MODE.ERROR]: number;
|
|
19
|
+
[MODE.FULL]: number;
|
|
20
|
+
[MODE.OFF]: number;
|
|
19
21
|
};
|
|
20
22
|
export namespace ABORT_REASONS {
|
|
21
23
|
namespace RESET {
|
|
@@ -62,4 +64,5 @@ export namespace TRIGGERS {
|
|
|
62
64
|
let INITIALIZE: string;
|
|
63
65
|
let PRELOAD: string;
|
|
64
66
|
}
|
|
67
|
+
import { MODE } from '../../common/session/constants';
|
|
65
68
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/features/session_replay/constants.js"],"names":[],"mappings":"AAOA,kCAAuD;;;;;;AAQvD,8BAA+B,IAAI,CAAA;;;;;;;;;AASnC,2GAA2G;AAC3G
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/features/session_replay/constants.js"],"names":[],"mappings":"AAOA,kCAAuD;;;;;;AAQvD,8BAA+B,IAAI,CAAA;;;;;;;;;AASnC,2GAA2G;AAC3G;IAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,SAAO;IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAQ;IAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAG;EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BtF,0CAA0C;AAC1C,kCAAmC,IAAI,CAAA;;;;;;;;qBAjDlB,gCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/features/session_replay/shared/recorder.js"],"names":[],"mappings":"AAqBA;IAUE,+BAiCC;IAnCD,sBAAmB;IAGjB,iDAAiD;IACjD,kBAAgC;IAEhC,QAAyB;IACzB,mBAA6C;IAC7C,cAAqC;IAErC,qBAAwB;IACxB,0FAA0F;IAC1F,eAAkE;IAElE,iHAAiH;IACjH,uBAAgD;IAChD,mFAAmF;IACnF,iCAA0D;IAC1D,uIAAuI;IACvI,yBAA4B;IAC5B,kIAAkI;IAClI,kBAAqB;IACrB,uIAAuI;IACvI,0BAAwE;IAc1E,mBAEC;IAED;;;;;;;;;MAWC;IAED,kFAAkF;IAClF,oBAGC;IAED,qDAAqD;IACrD,8CAyCC;IAED;;;;;OAKG;IACH,aAHW,GAAC,cACD,GAAC,QAiCX;IAED,yHAAyH;IACzH,
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/features/session_replay/shared/recorder.js"],"names":[],"mappings":"AAqBA;IAUE,+BAiCC;IAnCD,sBAAmB;IAGjB,iDAAiD;IACjD,kBAAgC;IAEhC,QAAyB;IACzB,mBAA6C;IAC7C,cAAqC;IAErC,qBAAwB;IACxB,0FAA0F;IAC1F,eAAkE;IAElE,iHAAiH;IACjH,uBAAgD;IAChD,mFAAmF;IACnF,iCAA0D;IAC1D,uIAAuI;IACvI,yBAA4B;IAC5B,kIAAkI;IAClI,kBAAqB;IACrB,uIAAuI;IACvI,0BAAwE;IAc1E,mBAEC;IAED;;;;;;;;;MAWC;IAED,kFAAkF;IAClF,oBAGC;IAED,qDAAqD;IACrD,8CAyCC;IAED;;;;;OAKG;IACH,aAHW,GAAC,cACD,GAAC,QAiCX;IAED,yHAAyH;IACzH,yCAiCC;IAED,0HAA0H;IAC1H,yBAOC;IAED,wBAEC;IAED,gCAAgC;IAChC,uCAGC;IAED;;;SAGK;IACL,oCAGC;;CACF;+BArO8B,mBAAmB"}
|
|
@@ -26,9 +26,29 @@ export namespace FEATURE_NAMES {
|
|
|
26
26
|
* wrapping events has any ramifications, so we are enforcing this order intentionally for now.
|
|
27
27
|
*/
|
|
28
28
|
export const featurePriority: {
|
|
29
|
-
[
|
|
29
|
+
[FEATURE_NAMES.pageViewEvent]: number;
|
|
30
|
+
[FEATURE_NAMES.pageViewTiming]: number;
|
|
31
|
+
[FEATURE_NAMES.metrics]: number;
|
|
32
|
+
[FEATURE_NAMES.jserrors]: number;
|
|
33
|
+
[FEATURE_NAMES.spa]: number;
|
|
34
|
+
[FEATURE_NAMES.ajax]: number;
|
|
35
|
+
[FEATURE_NAMES.sessionTrace]: number;
|
|
36
|
+
[FEATURE_NAMES.softNav]: number;
|
|
37
|
+
[FEATURE_NAMES.sessionReplay]: number;
|
|
38
|
+
[FEATURE_NAMES.logging]: number;
|
|
39
|
+
[FEATURE_NAMES.genericEvents]: number;
|
|
30
40
|
};
|
|
31
41
|
export const FEATURE_TO_ENDPOINT: {
|
|
32
|
-
[
|
|
42
|
+
[FEATURE_NAMES.pageViewEvent]: string;
|
|
43
|
+
[FEATURE_NAMES.pageViewTiming]: string;
|
|
44
|
+
[FEATURE_NAMES.ajax]: string;
|
|
45
|
+
[FEATURE_NAMES.spa]: string;
|
|
46
|
+
[FEATURE_NAMES.softNav]: string;
|
|
47
|
+
[FEATURE_NAMES.metrics]: string;
|
|
48
|
+
[FEATURE_NAMES.jserrors]: string;
|
|
49
|
+
[FEATURE_NAMES.sessionTrace]: string;
|
|
50
|
+
[FEATURE_NAMES.sessionReplay]: string;
|
|
51
|
+
[FEATURE_NAMES.logging]: string;
|
|
52
|
+
[FEATURE_NAMES.genericEvents]: string;
|
|
33
53
|
};
|
|
34
54
|
//# sourceMappingURL=features.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../../src/loaders/features/features.js"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,qBAAsB,QAAQ,CAAA;AAC9B,uBAAwB,UAAU,CAAA;AAClC,oBAAqB,eAAe,CAAA;AACpC,kBAAmB,KAAK,CAAA;AACxB,mBAAoB,cAAc,CAAA;;;;;;;;;;;;;;;AAoBlC;;;GAGG;AACH
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../../../src/loaders/features/features.js"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,qBAAsB,QAAQ,CAAA;AAC9B,uBAAwB,UAAU,CAAA;AAClC,oBAAqB,eAAe,CAAA;AACpC,kBAAmB,KAAK,CAAA;AACxB,mBAAoB,cAAc,CAAA;;;;;;;;;;;;;;;AAoBlC;;;GAGG;AACH;IACE,CAAC,aAAa,CAAC,aAAa,CAAC,SAAG;IAChC,CAAC,aAAa,CAAC,cAAc,CAAC,SAAG;IACjC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAG;IAC1B,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAG;IAC3B,CAAC,aAAa,CAAC,GAAG,CAAC,SAAG;IACtB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAG;IACvB,CAAC,aAAa,CAAC,YAAY,CAAC,SAAG;IAC/B,CAAC,aAAa,CAAC,OAAO,CAAC,SAAG;IAC1B,CAAC,aAAa,CAAC,aAAa,CAAC,SAAG;IAChC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAI;IAC3B,CAAC,aAAa,CAAC,aAAa,CAAC,SAAI;EAClC;AAED;IACE,CAAC,aAAa,CAAC,aAAa,CAAC,SAAK;IAClC,CAAC,aAAa,CAAC,cAAc,CAAC,SAAQ;IACtC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAQ;IAC5B,CAAC,aAAa,CAAC,GAAG,CAAC,SAAQ;IAC3B,CAAC,aAAa,CAAC,OAAO,CAAC,SAAQ;IAC/B,CAAC,aAAa,CAAC,OAAO,CAAC,SAAU;IACjC,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAU;IAClC,CAAC,aAAa,CAAC,YAAY,CAAC,SAAO;IACnC,CAAC,aAAa,CAAC,aAAa,CAAC,SAAO;IACpC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAM;IAC7B,CAAC,aAAa,CAAC,aAAa,CAAC,SAAO;EACrC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newrelic/browser-agent",
|
|
3
|
-
"version": "1.300.0-rc.
|
|
3
|
+
"version": "1.300.0-rc.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "New Relic Browser Agent Team <browser-agent@newrelic.com>",
|
|
6
6
|
"description": "New Relic Browser Agent",
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
},
|
|
222
222
|
"dependencies": {
|
|
223
223
|
"fflate": "0.8.2",
|
|
224
|
-
"rrweb": "
|
|
224
|
+
"@newrelic/rrweb": "1.0.1",
|
|
225
225
|
"web-vitals": "4.2.4"
|
|
226
226
|
},
|
|
227
227
|
"devDependencies": {
|
|
@@ -24,7 +24,6 @@ export const BUILD_ENV = process.env.BUILD_ENV
|
|
|
24
24
|
*/
|
|
25
25
|
export const DIST_METHOD = 'CDN'
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
*/
|
|
27
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb'
|
|
28
|
+
// Babel will inline this with the rrweb (fork) version on CDN builds.
|
|
30
29
|
export const RRWEB_VERSION = process.env.RRWEB_VERSION
|
|
@@ -27,7 +27,6 @@ export const BUILD_ENV = 'NPM'
|
|
|
27
27
|
*/
|
|
28
28
|
export const DIST_METHOD = 'NPM'
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export const RRWEB_VERSION = pkgJSON.dependencies.rrweb
|
|
30
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb'
|
|
31
|
+
// For raw source consumers (no Babel inline), use the dependency string in package.json to get rrweb (fork) version.
|
|
32
|
+
export const RRWEB_VERSION = pkgJSON.dependencies[RRWEB_PACKAGE_NAME] || '0.0.0'
|
|
@@ -21,11 +21,10 @@ export const BUILD_ENV = 'NPM'
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Exposes the distribution method of the agent
|
|
24
|
-
* Valid
|
|
24
|
+
* Valid values are CDN, NPM
|
|
25
25
|
*/
|
|
26
26
|
export const DIST_METHOD = 'NPM'
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
28
|
+
export const RRWEB_PACKAGE_NAME = '@newrelic/rrweb'
|
|
29
|
+
// Babel will inline this with the rrweb (fork) version on NPM dist esm/cjs builds.
|
|
31
30
|
export const RRWEB_VERSION = process.env.RRWEB_VERSION
|
|
@@ -110,6 +110,7 @@ export class Aggregate extends AggregateBase {
|
|
|
110
110
|
common: {
|
|
111
111
|
/** Attributes in the `common` section are added to `all` logs generated in the payload */
|
|
112
112
|
attributes: {
|
|
113
|
+
...this.agentRef.info.jsAttributes, // user-provided custom attributes
|
|
113
114
|
'entity.guid': target.entityGuid, // browser entity guid as provided API target OR the default from RUM response if not supplied
|
|
114
115
|
...(sessionEntity && {
|
|
115
116
|
session: sessionEntity.state.value || '0', // The session ID that we generate and keep across page loads
|
|
@@ -123,9 +124,7 @@ export class Aggregate extends AggregateBase {
|
|
|
123
124
|
// The following 3 attributes are evaluated and dropped at ingest processing time and do not get stored on NRDB:
|
|
124
125
|
'instrumentation.provider': 'browser',
|
|
125
126
|
'instrumentation.version': this.agentRef.runtime.version,
|
|
126
|
-
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
127
|
-
// Custom attributes
|
|
128
|
-
...this.agentRef.info.jsAttributes
|
|
127
|
+
'instrumentation.name': this.agentRef.runtime.loaderType
|
|
129
128
|
}
|
|
130
129
|
},
|
|
131
130
|
/** logs section contains individual unique log entries */
|
|
@@ -13,7 +13,7 @@ import { sharedChannel } from '../../../common/constants/shared-channel'
|
|
|
13
13
|
import { obj as encodeObj } from '../../../common/url/encode'
|
|
14
14
|
import { warn } from '../../../common/util/console'
|
|
15
15
|
import { globalScope } from '../../../common/constants/runtime'
|
|
16
|
-
import { RRWEB_VERSION } from '../../../common/constants/env'
|
|
16
|
+
import { RRWEB_VERSION, RRWEB_PACKAGE_NAME } from '../../../common/constants/env'
|
|
17
17
|
import { MODE, SESSION_EVENTS, SESSION_EVENT_TYPES } from '../../../common/session/constants'
|
|
18
18
|
import { stringify } from '../../../common/util/stringify'
|
|
19
19
|
import { stylesheetEvaluator } from '../shared/stylesheet-evaluator'
|
|
@@ -322,7 +322,7 @@ export class Aggregate extends AggregateBase {
|
|
|
322
322
|
decompressedBytes: recorderEvents.payloadBytesEstimation,
|
|
323
323
|
invalidStylesheetsDetected: stylesheetEvaluator.invalidStylesheetsDetected,
|
|
324
324
|
inlinedAllStylesheets: recorderEvents.inlinedAllStylesheets,
|
|
325
|
-
'rrweb.version': RRWEB_VERSION,
|
|
325
|
+
'rrweb.version': RRWEB_PACKAGE_NAME + '@' + RRWEB_VERSION,
|
|
326
326
|
'payload.type': recorderEvents.type,
|
|
327
327
|
// customer-defined data should go last so that if it exceeds the query param padding limit it will be truncated instead of important attrs
|
|
328
328
|
...(endUserId && { 'enduser.id': this.obfuscator.obfuscateString(endUserId) }),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright 2020-2025 New Relic, Inc. All rights reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { record as recorder } from 'rrweb'
|
|
5
|
+
import { record as recorder } from '@newrelic/rrweb'
|
|
6
6
|
import { stringify } from '../../../common/util/stringify'
|
|
7
7
|
import { AVG_COMPRESSION, CHECKOUT_MS, QUERY_PARAM_PADDING, RRWEB_EVENT_TYPES } from '../constants'
|
|
8
8
|
import { RecorderEvents } from './recorder-events'
|
|
@@ -180,6 +180,7 @@ export class Recorder {
|
|
|
180
180
|
const eventBytes = event.__serialized.length
|
|
181
181
|
/** The estimated size of the payload after compression */
|
|
182
182
|
const payloadSize = this.getPayloadSize(eventBytes)
|
|
183
|
+
handle(SUPPORTABILITY_METRIC_CHANNEL, ['rrweb/node/' + event.type + '/bytes', eventBytes], undefined, FEATURE_NAMES.metrics, this.ee)
|
|
183
184
|
// Checkout events are flags by the recording lib that indicate a fullsnapshot was taken every n ms. These are important
|
|
184
185
|
// to help reconstruct the replay later and must be included. While waiting and buffering for errors to come through,
|
|
185
186
|
// each time we see a new checkout, we can drop the old data.
|