@openobserve/browser-core 0.2.12-beta.26 → 0.2.12-beta.28
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/cjs/boot/init.js +1 -1
- package/cjs/domain/configuration/endpointBuilder.js +1 -9
- package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
- package/cjs/domain/tags.js +1 -1
- package/cjs/domain/telemetry/telemetry.js +1 -1
- package/cjs/transport/httpRequest.js +0 -4
- package/cjs/transport/httpRequest.js.map +1 -1
- package/esm/boot/init.js +1 -1
- package/esm/domain/configuration/endpointBuilder.js +1 -9
- package/esm/domain/configuration/endpointBuilder.js.map +1 -1
- package/esm/domain/tags.js +1 -1
- package/esm/domain/telemetry/telemetry.js +1 -1
- package/esm/transport/httpRequest.js +0 -4
- package/esm/transport/httpRequest.js.map +1 -1
- package/package.json +2 -2
- package/src/boot/displayAlreadyInitializedError.spec.ts +18 -0
- package/src/boot/init.spec.ts +50 -0
- package/src/browser/addEventListener.spec.ts +141 -0
- package/src/browser/cookie.spec.ts +53 -0
- package/src/browser/fetchObservable.spec.ts +334 -0
- package/src/browser/pageMayExitObservable.spec.ts +56 -0
- package/src/browser/xhrObservable.spec.ts +405 -0
- package/src/domain/allowedTrackingOrigins.spec.ts +210 -0
- package/src/domain/bufferedData.spec.ts +34 -0
- package/src/domain/configuration/configuration.spec.ts +236 -0
- package/src/domain/configuration/endpointBuilder.spec.ts +173 -0
- package/src/domain/configuration/endpointBuilder.ts +1 -9
- package/src/domain/configuration/transportConfiguration.spec.ts +130 -0
- package/src/domain/connectivity/connectivity.spec.ts +50 -0
- package/src/domain/console/consoleObservable.spec.ts +151 -0
- package/src/domain/context/contextManager.spec.ts +152 -0
- package/src/domain/context/contextUtils.spec.ts +26 -0
- package/src/domain/context/storeContextManager.spec.ts +103 -0
- package/src/domain/contexts/accountContext.spec.ts +99 -0
- package/src/domain/contexts/globalContext.spec.ts +88 -0
- package/src/domain/contexts/userContext.spec.ts +156 -0
- package/src/domain/error/error.spec.ts +294 -0
- package/src/domain/error/trackRuntimeError.spec.ts +343 -0
- package/src/domain/eventRateLimiter/createEventRateLimiter.spec.ts +119 -0
- package/src/domain/extension/extensionUtils.spec.ts +47 -0
- package/src/domain/report/reportObservable.spec.ts +71 -0
- package/src/domain/session/oldCookiesMigration.spec.ts +76 -0
- package/src/domain/session/sessionManager.spec.ts +684 -0
- package/src/domain/session/sessionState.spec.ts +88 -0
- package/src/domain/session/sessionStore.spec.ts +647 -0
- package/src/domain/session/sessionStoreOperations.spec.ts +234 -0
- package/src/domain/session/storeStrategies/sessionInCookie.spec.ts +228 -0
- package/src/domain/session/storeStrategies/sessionInLocalStorage.spec.ts +75 -0
- package/src/domain/synthetics/syntheticsWorkerValues.spec.ts +82 -0
- package/src/domain/tags.spec.ts +74 -0
- package/src/domain/telemetry/telemetry.spec.ts +494 -0
- package/src/domain/trackingConsent.spec.ts +44 -0
- package/src/tools/abstractHooks.spec.ts +76 -0
- package/src/tools/abstractLifeCycle.spec.ts +46 -0
- package/src/tools/boundedBuffer.spec.ts +40 -0
- package/src/tools/catchUserErrors.spec.ts +20 -0
- package/src/tools/encoder.spec.ts +112 -0
- package/src/tools/experimentalFeatures.spec.ts +60 -0
- package/src/tools/getZoneJsOriginalValue.spec.ts +36 -0
- package/src/tools/instrumentMethod.spec.ts +381 -0
- package/src/tools/matchOption.spec.ts +41 -0
- package/src/tools/mergeInto.spec.ts +198 -0
- package/src/tools/monitor.spec.ts +172 -0
- package/src/tools/observable.spec.ts +259 -0
- package/src/tools/queueMicrotask.spec.ts +24 -0
- package/src/tools/readBytesFromStream.spec.ts +62 -0
- package/src/tools/requestIdleCallback.spec.ts +65 -0
- package/src/tools/serialisation/jsonStringify.spec.ts +76 -0
- package/src/tools/serialisation/sanitize.spec.ts +284 -0
- package/src/tools/stackTrace/capturedExceptions.specHelper.ts +316 -0
- package/src/tools/stackTrace/computeStackTrace.spec.ts +1007 -0
- package/src/tools/stackTrace/handlingStack.spec.ts +20 -0
- package/src/tools/taskQueue.spec.ts +60 -0
- package/src/tools/timer.spec.ts +76 -0
- package/src/tools/utils/browserDetection.spec.ts +120 -0
- package/src/tools/utils/byteUtils.spec.ts +29 -0
- package/src/tools/utils/functionUtils.spec.ts +229 -0
- package/src/tools/utils/numberUtils.spec.ts +27 -0
- package/src/tools/utils/stringUtils.spec.ts +74 -0
- package/src/tools/utils/typeUtils.spec.ts +25 -0
- package/src/tools/utils/urlPolyfill.spec.ts +55 -0
- package/src/tools/valueHistory.spec.ts +180 -0
- package/src/transport/batch.spec.ts +261 -0
- package/src/transport/eventBridge.spec.ts +90 -0
- package/src/transport/flushController.spec.ts +267 -0
- package/src/transport/httpRequest.spec.ts +400 -0
- package/src/transport/httpRequest.ts +3 -7
- package/src/transport/sendWithRetryStrategy.spec.ts +393 -0
package/cjs/boot/init.js
CHANGED
|
@@ -7,7 +7,7 @@ const monitor_1 = require("../tools/monitor");
|
|
|
7
7
|
const display_1 = require("../tools/display");
|
|
8
8
|
function makePublicApi(stub) {
|
|
9
9
|
const publicApi = {
|
|
10
|
-
version: "0.2.12-beta.
|
|
10
|
+
version: "0.2.12-beta.29",
|
|
11
11
|
// This API method is intentionally not monitored, since the only thing executed is the
|
|
12
12
|
// user-provided 'callback'. All SDK usages executed in the callback should be monitored, and
|
|
13
13
|
// we don't want to interfere with the user uncaught exceptions.
|
|
@@ -8,10 +8,6 @@ const stringUtils_1 = require("../../tools/utils/stringUtils");
|
|
|
8
8
|
const intakeSites_1 = require("../intakeSites");
|
|
9
9
|
function createEndpointBuilder(initConfiguration, trackType, extraParameters) {
|
|
10
10
|
const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);
|
|
11
|
-
console.log('extraParameters', extraParameters);
|
|
12
|
-
console.log('initConfiguration', initConfiguration);
|
|
13
|
-
console.log('trackType', trackType);
|
|
14
|
-
console.log('buildUrlWithParameters', buildUrlWithParameters);
|
|
15
11
|
return {
|
|
16
12
|
build(api, payload) {
|
|
17
13
|
const parameters = buildEndpointParameters(initConfiguration, trackType, api, payload, extraParameters);
|
|
@@ -28,11 +24,7 @@ function createEndpointBuilder(initConfiguration, trackType, extraParameters) {
|
|
|
28
24
|
function createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {
|
|
29
25
|
// const path = `/api/v2/${trackType}`
|
|
30
26
|
const { proxy, apiVersion, organizationIdentifier, insecureHTTP } = initConfiguration;
|
|
31
|
-
console.log('apiVersion', apiVersion);
|
|
32
|
-
console.log('organizationIdentifier', organizationIdentifier);
|
|
33
|
-
console.log('insecureHTTP', insecureHTTP);
|
|
34
27
|
const path = `/rum/${apiVersion}/${organizationIdentifier}/${trackType}`;
|
|
35
|
-
console.log('path', path);
|
|
36
28
|
if (typeof proxy === 'string') {
|
|
37
29
|
const normalizedProxyUrl = (0, urlPolyfill_1.normalizeUrl)(proxy);
|
|
38
30
|
return (parameters) => `${normalizedProxyUrl}?o2forward=${encodeURIComponent(`${path}?${parameters}`)}`;
|
|
@@ -68,7 +60,7 @@ function buildEndpointParameters({ clientToken, internalAnalyticsSubdomain, sour
|
|
|
68
60
|
const parameters = [
|
|
69
61
|
`o2source=${source}`,
|
|
70
62
|
`o2-api-key=${clientToken}`,
|
|
71
|
-
`o2-evp-origin-version=${encodeURIComponent("0.2.12-beta.
|
|
63
|
+
`o2-evp-origin-version=${encodeURIComponent("0.2.12-beta.29")}`,
|
|
72
64
|
'o2-evp-origin=browser',
|
|
73
65
|
`o2-request-id=${(0, stringUtils_1.generateUUID)()}`,
|
|
74
66
|
].concat(extraParameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpointBuilder.js","sourceRoot":"","sources":["../../../src/domain/configuration/endpointBuilder.ts"],"names":[],"mappings":";;AAqBA,
|
|
1
|
+
{"version":3,"file":"endpointBuilder.js","sourceRoot":"","sources":["../../../src/domain/configuration/endpointBuilder.ts"],"names":[],"mappings":"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"}
|
package/cjs/domain/tags.js
CHANGED
|
@@ -9,7 +9,7 @@ const display_1 = require("../tools/display");
|
|
|
9
9
|
exports.TAG_SIZE_LIMIT = 200;
|
|
10
10
|
function buildTags(configuration) {
|
|
11
11
|
const { env, service, version, datacenter, sdkVersion, variant } = configuration;
|
|
12
|
-
const tags = [buildTag('sdk_version', sdkVersion !== null && sdkVersion !== void 0 ? sdkVersion : "0.2.12-beta.
|
|
12
|
+
const tags = [buildTag('sdk_version', sdkVersion !== null && sdkVersion !== void 0 ? sdkVersion : "0.2.12-beta.29")];
|
|
13
13
|
if (env) {
|
|
14
14
|
tags.push(buildTag('env', env));
|
|
15
15
|
}
|
|
@@ -105,7 +105,7 @@ function startTelemetryCollection(telemetryService, configuration, hooks, observ
|
|
|
105
105
|
type: 'telemetry',
|
|
106
106
|
date: clockNow.timeStamp,
|
|
107
107
|
service: telemetryService,
|
|
108
|
-
version: "0.2.12-beta.
|
|
108
|
+
version: "0.2.12-beta.29",
|
|
109
109
|
source: 'browser',
|
|
110
110
|
_oo: {
|
|
111
111
|
format_version: 2,
|
|
@@ -20,7 +20,6 @@ function createHttpRequest(endpointBuilders, reportError, bytesLimit = exports.R
|
|
|
20
20
|
return {
|
|
21
21
|
observable,
|
|
22
22
|
send: (payload) => {
|
|
23
|
-
console.log('httpRequest.send called', { trackTypes: endpointBuilders.map(eb => eb.trackType), payloadSize: payload.bytesCount });
|
|
24
23
|
for (const endpointBuilder of endpointBuilders) {
|
|
25
24
|
(0, sendWithRetryStrategy_1.sendWithRetryStrategy)(payload, retryState, (payload, onResponse) => {
|
|
26
25
|
if ((0, experimentalFeatures_1.isExperimentalFeatureEnabled)(experimentalFeatures_1.ExperimentalFeature.AVOID_FETCH_KEEPALIVE)) {
|
|
@@ -68,10 +67,8 @@ function reportBeaconError(e) {
|
|
|
68
67
|
}
|
|
69
68
|
function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse) {
|
|
70
69
|
const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;
|
|
71
|
-
console.log('fetchKeepAliveStrategy', { trackType: endpointBuilder.trackType, canUseKeepAlive, bytesCount: payload.bytesCount, bytesLimit });
|
|
72
70
|
if (canUseKeepAlive) {
|
|
73
71
|
const fetchUrl = endpointBuilder.build('fetch-keepalive', payload);
|
|
74
|
-
console.log('Making fetch request to:', fetchUrl);
|
|
75
72
|
fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' })
|
|
76
73
|
.then((0, monitor_1.monitor)((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })))
|
|
77
74
|
.catch((0, monitor_1.monitor)(() => fetchStrategy(endpointBuilder, payload, onResponse)));
|
|
@@ -82,7 +79,6 @@ function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse
|
|
|
82
79
|
}
|
|
83
80
|
function fetchStrategy(endpointBuilder, payload, onResponse) {
|
|
84
81
|
const fetchUrl = endpointBuilder.build('fetch', payload);
|
|
85
|
-
console.log('fetchStrategy - Making fetch request to:', fetchUrl);
|
|
86
82
|
fetch(fetchUrl, { method: 'POST', body: payload.data, mode: 'cors' })
|
|
87
83
|
.then((0, monitor_1.monitor)((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })))
|
|
88
84
|
.catch((0, monitor_1.monitor)(() => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: 0 })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/transport/httpRequest.ts"],"names":[],"mappings":";;;AAwEA,
|
|
1
|
+
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/transport/httpRequest.ts"],"names":[],"mappings":";;;AAwEA,8CAsCC;AA6BD,wDAiBC;AAED,sCAUC;AAtKD,8CAAwD;AAExD,wEAAiG;AACjG,oDAAgD;AAChD,wDAAwD;AACxD,mEAA8E;AAE9E;;;GAGG;AACU,QAAA,+BAA+B,GAAG,EAAE,GAAG,yBAAa,CAAA;AA2DjE,SAAgB,iBAAiB,CAC/B,gBAAmC,EACnC,WAAsC,EACtC,aAAqB,uCAA+B;IAEpD,MAAM,UAAU,GAAG,IAAI,uBAAU,EAA0B,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAA,qCAAa,GAAQ,CAAA;IAExC,OAAO;QACL,UAAU;QACV,IAAI,EAAE,CAAC,OAAa,EAAE,EAAE;YACtB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,IAAA,6CAAqB,EACnB,OAAO,EACP,UAAU,EACV,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;oBACtB,IAAI,IAAA,mDAA4B,EAAC,0CAAmB,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC5E,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;oBACrD,CAAC;yBAAM,CAAC;wBACN,sBAAsB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;oBAC1E,CAAC;gBACH,CAAC,EACD,eAAe,CAAC,SAAS,EACzB,WAAW,EACX,UAAU,CACX,CAAA;YACH,CAAC;QACH,CAAC;QACD;;;WAGG;QACH,UAAU,EAAE,CAAC,OAAa,EAAE,EAAE;YAC5B,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,kBAAkB,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,eAAgC,EAAE,UAAkB,EAAE,OAAgB;IAChG,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9E,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAE9D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,iBAAiB,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAED,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC,SAAS,iBAAiB,CAAC,CAAU;IACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,sBAAsB,GAAG,IAAI,CAAA;QAC7B,IAAA,sBAAY,EAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CACpC,eAAgC,EAChC,UAAkB,EAClB,OAAgB,EAChB,UAAsC;IAEtC,MAAM,eAAe,GAAG,oBAAoB,EAAE,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;IAEjF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAElE,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aACnF,IAAI,CAAC,IAAA,iBAAO,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACrG,KAAK,CAAC,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,eAAgC,EAChC,OAAgB,EAChB,UAAsC;IAEtC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAExD,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAClE,IAAI,CAAC,IAAA,iBAAO,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACrG,KAAK,CAAC,IAAA,iBAAO,EAAC,GAAG,EAAE,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,SAAS,oBAAoB;IAC3B,gGAAgG;IAChG,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,IAAI,WAAW,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IACjE,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/esm/boot/init.js
CHANGED
|
@@ -3,7 +3,7 @@ import { setDebugMode } from '../tools/monitor';
|
|
|
3
3
|
import { display } from '../tools/display';
|
|
4
4
|
export function makePublicApi(stub) {
|
|
5
5
|
const publicApi = {
|
|
6
|
-
version: "0.2.12-beta.
|
|
6
|
+
version: "0.2.12-beta.29",
|
|
7
7
|
// This API method is intentionally not monitored, since the only thing executed is the
|
|
8
8
|
// user-provided 'callback'. All SDK usages executed in the callback should be monitored, and
|
|
9
9
|
// we don't want to interfere with the user uncaught exceptions.
|
|
@@ -4,10 +4,6 @@ import { generateUUID } from '../../tools/utils/stringUtils';
|
|
|
4
4
|
import { INTAKE_SITE_FED_STAGING, INTAKE_SITE_US1, PCI_INTAKE_HOST_US1 } from '../intakeSites';
|
|
5
5
|
export function createEndpointBuilder(initConfiguration, trackType, extraParameters) {
|
|
6
6
|
const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType);
|
|
7
|
-
console.log('extraParameters', extraParameters);
|
|
8
|
-
console.log('initConfiguration', initConfiguration);
|
|
9
|
-
console.log('trackType', trackType);
|
|
10
|
-
console.log('buildUrlWithParameters', buildUrlWithParameters);
|
|
11
7
|
return {
|
|
12
8
|
build(api, payload) {
|
|
13
9
|
const parameters = buildEndpointParameters(initConfiguration, trackType, api, payload, extraParameters);
|
|
@@ -24,11 +20,7 @@ export function createEndpointBuilder(initConfiguration, trackType, extraParamet
|
|
|
24
20
|
function createEndpointUrlWithParametersBuilder(initConfiguration, trackType) {
|
|
25
21
|
// const path = `/api/v2/${trackType}`
|
|
26
22
|
const { proxy, apiVersion, organizationIdentifier, insecureHTTP } = initConfiguration;
|
|
27
|
-
console.log('apiVersion', apiVersion);
|
|
28
|
-
console.log('organizationIdentifier', organizationIdentifier);
|
|
29
|
-
console.log('insecureHTTP', insecureHTTP);
|
|
30
23
|
const path = `/rum/${apiVersion}/${organizationIdentifier}/${trackType}`;
|
|
31
|
-
console.log('path', path);
|
|
32
24
|
if (typeof proxy === 'string') {
|
|
33
25
|
const normalizedProxyUrl = normalizeUrl(proxy);
|
|
34
26
|
return (parameters) => `${normalizedProxyUrl}?o2forward=${encodeURIComponent(`${path}?${parameters}`)}`;
|
|
@@ -64,7 +56,7 @@ function buildEndpointParameters({ clientToken, internalAnalyticsSubdomain, sour
|
|
|
64
56
|
const parameters = [
|
|
65
57
|
`o2source=${source}`,
|
|
66
58
|
`o2-api-key=${clientToken}`,
|
|
67
|
-
`o2-evp-origin-version=${encodeURIComponent("0.2.12-beta.
|
|
59
|
+
`o2-evp-origin-version=${encodeURIComponent("0.2.12-beta.29")}`,
|
|
68
60
|
'o2-evp-origin=browser',
|
|
69
61
|
`o2-request-id=${generateUUID()}`,
|
|
70
62
|
].concat(extraParameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpointBuilder.js","sourceRoot":"","sources":["../../../src/domain/configuration/endpointBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAiB9F,MAAM,UAAU,qBAAqB,CACnC,iBAAoC,EACpC,SAAoB,EACpB,eAA0B;IAE1B,MAAM,sBAAsB,GAAG,sCAAsC,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"endpointBuilder.js","sourceRoot":"","sources":["../../../src/domain/configuration/endpointBuilder.ts"],"names":[],"mappings":"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"}
|
package/esm/domain/tags.js
CHANGED
|
@@ -2,7 +2,7 @@ import { DOCS_ORIGIN, MORE_DETAILS, display } from '../tools/display';
|
|
|
2
2
|
export const TAG_SIZE_LIMIT = 200;
|
|
3
3
|
export function buildTags(configuration) {
|
|
4
4
|
const { env, service, version, datacenter, sdkVersion, variant } = configuration;
|
|
5
|
-
const tags = [buildTag('sdk_version', sdkVersion !== null && sdkVersion !== void 0 ? sdkVersion : "0.2.12-beta.
|
|
5
|
+
const tags = [buildTag('sdk_version', sdkVersion !== null && sdkVersion !== void 0 ? sdkVersion : "0.2.12-beta.29")];
|
|
6
6
|
if (env) {
|
|
7
7
|
tags.push(buildTag('env', env));
|
|
8
8
|
}
|
|
@@ -92,7 +92,7 @@ export function startTelemetryCollection(telemetryService, configuration, hooks,
|
|
|
92
92
|
type: 'telemetry',
|
|
93
93
|
date: clockNow.timeStamp,
|
|
94
94
|
service: telemetryService,
|
|
95
|
-
version: "0.2.12-beta.
|
|
95
|
+
version: "0.2.12-beta.29",
|
|
96
96
|
source: 'browser',
|
|
97
97
|
_oo: {
|
|
98
98
|
format_version: 2,
|
|
@@ -14,7 +14,6 @@ export function createHttpRequest(endpointBuilders, reportError, bytesLimit = RE
|
|
|
14
14
|
return {
|
|
15
15
|
observable,
|
|
16
16
|
send: (payload) => {
|
|
17
|
-
console.log('httpRequest.send called', { trackTypes: endpointBuilders.map(eb => eb.trackType), payloadSize: payload.bytesCount });
|
|
18
17
|
for (const endpointBuilder of endpointBuilders) {
|
|
19
18
|
sendWithRetryStrategy(payload, retryState, (payload, onResponse) => {
|
|
20
19
|
if (isExperimentalFeatureEnabled(ExperimentalFeature.AVOID_FETCH_KEEPALIVE)) {
|
|
@@ -62,10 +61,8 @@ function reportBeaconError(e) {
|
|
|
62
61
|
}
|
|
63
62
|
export function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onResponse) {
|
|
64
63
|
const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;
|
|
65
|
-
console.log('fetchKeepAliveStrategy', { trackType: endpointBuilder.trackType, canUseKeepAlive, bytesCount: payload.bytesCount, bytesLimit });
|
|
66
64
|
if (canUseKeepAlive) {
|
|
67
65
|
const fetchUrl = endpointBuilder.build('fetch-keepalive', payload);
|
|
68
|
-
console.log('Making fetch request to:', fetchUrl);
|
|
69
66
|
fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' })
|
|
70
67
|
.then(monitor((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })))
|
|
71
68
|
.catch(monitor(() => fetchStrategy(endpointBuilder, payload, onResponse)));
|
|
@@ -76,7 +73,6 @@ export function fetchKeepAliveStrategy(endpointBuilder, bytesLimit, payload, onR
|
|
|
76
73
|
}
|
|
77
74
|
export function fetchStrategy(endpointBuilder, payload, onResponse) {
|
|
78
75
|
const fetchUrl = endpointBuilder.build('fetch', payload);
|
|
79
|
-
console.log('fetchStrategy - Making fetch request to:', fetchUrl);
|
|
80
76
|
fetch(fetchUrl, { method: 'POST', body: payload.data, mode: 'cors' })
|
|
81
77
|
.then(monitor((response) => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type })))
|
|
82
78
|
.catch(monitor(() => onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: 0 })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/transport/httpRequest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,GAAG,aAAa,CAAA;AA2DjE,MAAM,UAAU,iBAAiB,CAC/B,gBAAmC,EACnC,WAAsC,EACtC,aAAqB,+BAA+B;IAEpD,MAAM,UAAU,GAAG,IAAI,UAAU,EAA0B,CAAA;IAC3D,MAAM,UAAU,GAAG,aAAa,EAAQ,CAAA;IAExC,OAAO;QACL,UAAU;QACV,IAAI,EAAE,CAAC,OAAa,EAAE,EAAE;YACtB,
|
|
1
|
+
{"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/transport/httpRequest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openobserve/browser-core",
|
|
3
|
-
"version": "0.2.12-beta.
|
|
3
|
+
"version": "0.2.12-beta.28",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InitConfiguration } from '../domain/configuration'
|
|
2
|
+
import { display } from '../tools/display'
|
|
3
|
+
import { displayAlreadyInitializedError } from './displayAlreadyInitializedError'
|
|
4
|
+
|
|
5
|
+
describe('displayAlreadyInitializedError', () => {
|
|
6
|
+
it('should display an error', () => {
|
|
7
|
+
const displayErrorSpy = spyOn(display, 'error')
|
|
8
|
+
displayAlreadyInitializedError('OO_RUM', {} as InitConfiguration)
|
|
9
|
+
expect(displayErrorSpy).toHaveBeenCalledTimes(1)
|
|
10
|
+
expect(displayErrorSpy).toHaveBeenCalledWith('OO_RUM is already initialized.')
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
it('should not display an error if the "silentMultipleInit" option is used', () => {
|
|
14
|
+
const displayErrorSpy = spyOn(display, 'error')
|
|
15
|
+
displayAlreadyInitializedError('OO_RUM', { silentMultipleInit: true } as InitConfiguration)
|
|
16
|
+
expect(displayErrorSpy).not.toHaveBeenCalled()
|
|
17
|
+
})
|
|
18
|
+
})
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { display } from '../tools/display'
|
|
2
|
+
import { defineGlobal } from './init'
|
|
3
|
+
|
|
4
|
+
describe('defineGlobal', () => {
|
|
5
|
+
it('adds new property to the global object', () => {
|
|
6
|
+
const myGlobal = {} as any
|
|
7
|
+
const value = 'my value'
|
|
8
|
+
defineGlobal(myGlobal, 'foo', value)
|
|
9
|
+
expect(myGlobal.foo).toBe(value)
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('overrides property if exists on the global object', () => {
|
|
13
|
+
const myGlobal = { foo: 'old value' }
|
|
14
|
+
const value = 'my value'
|
|
15
|
+
defineGlobal(myGlobal, 'foo', value)
|
|
16
|
+
expect(myGlobal.foo).toBe(value)
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
it('run the queued callbacks on the old value', () => {
|
|
20
|
+
const fn1 = jasmine.createSpy()
|
|
21
|
+
const fn2 = jasmine.createSpy()
|
|
22
|
+
const myGlobal: any = {
|
|
23
|
+
foo: {
|
|
24
|
+
q: [fn1, fn2],
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
const value = 'my value'
|
|
28
|
+
defineGlobal(myGlobal, 'foo', value)
|
|
29
|
+
expect(myGlobal.foo).toBe(value)
|
|
30
|
+
expect(fn1).toHaveBeenCalled()
|
|
31
|
+
expect(fn2).toHaveBeenCalled()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('catches the errors thrown by the queued callbacks', () => {
|
|
35
|
+
const myError = 'Ooops!'
|
|
36
|
+
const onReady = () => {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
38
|
+
throw myError
|
|
39
|
+
}
|
|
40
|
+
const myGlobal: any = {
|
|
41
|
+
foo: {
|
|
42
|
+
q: [onReady],
|
|
43
|
+
},
|
|
44
|
+
}
|
|
45
|
+
const displaySpy = spyOn(display, 'error')
|
|
46
|
+
|
|
47
|
+
defineGlobal(myGlobal, 'foo', {})
|
|
48
|
+
expect(displaySpy).toHaveBeenCalledWith('onReady callback threw an error:', myError)
|
|
49
|
+
})
|
|
50
|
+
})
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// import type { Configuration } from '@openobserve/browser-core'
|
|
2
|
+
// import { stubZoneJs } from '../../test'
|
|
3
|
+
import type { Configuration } from '../domain/configuration'
|
|
4
|
+
import { createNewEvent, mockZoneJs, registerCleanupTask } from '../../test'
|
|
5
|
+
import type { MockZoneJs } from '../../test'
|
|
6
|
+
import { noop } from '../tools/utils/functionUtils'
|
|
7
|
+
import { addEventListener, DOM_EVENT } from './addEventListener'
|
|
8
|
+
|
|
9
|
+
describe('addEventListener', () => {
|
|
10
|
+
let configuration: Configuration
|
|
11
|
+
|
|
12
|
+
describe('Zone.js support', () => {
|
|
13
|
+
let zoneJs: MockZoneJs
|
|
14
|
+
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
configuration = { allowUntrustedEvents: false } as Configuration
|
|
17
|
+
zoneJs = mockZoneJs()
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('uses the original addEventListener method instead of the method patched by Zone.js', () => {
|
|
21
|
+
const zoneJsPatchedAddEventListener = jasmine.createSpy()
|
|
22
|
+
const eventTarget = document.createElement('div')
|
|
23
|
+
zoneJs.replaceProperty(eventTarget, 'addEventListener', zoneJsPatchedAddEventListener)
|
|
24
|
+
|
|
25
|
+
addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, noop)
|
|
26
|
+
expect(zoneJsPatchedAddEventListener).not.toHaveBeenCalled()
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('uses the original removeEventListener method instead of the method patched by Zone.js', () => {
|
|
30
|
+
const zoneJsPatchedRemoveEventListener = jasmine.createSpy()
|
|
31
|
+
const eventTarget = document.createElement('div')
|
|
32
|
+
zoneJs.replaceProperty(eventTarget, 'removeEventListener', zoneJsPatchedRemoveEventListener)
|
|
33
|
+
|
|
34
|
+
const { stop } = addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, noop)
|
|
35
|
+
stop()
|
|
36
|
+
expect(zoneJsPatchedRemoveEventListener).not.toHaveBeenCalled()
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('Use the EventTarget.prototype.addEventListener when the eventTarget is an instance of EventTarget', () => {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
42
|
+
const originalAddEventListener = EventTarget.prototype.addEventListener
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
44
|
+
const originalRemoveEventListener = EventTarget.prototype.removeEventListener
|
|
45
|
+
|
|
46
|
+
EventTarget.prototype.addEventListener = jasmine.createSpy()
|
|
47
|
+
EventTarget.prototype.removeEventListener = jasmine.createSpy()
|
|
48
|
+
|
|
49
|
+
registerCleanupTask(() => {
|
|
50
|
+
EventTarget.prototype.addEventListener = originalAddEventListener
|
|
51
|
+
EventTarget.prototype.removeEventListener = originalRemoveEventListener
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
const htmlDivElement = document.createElement('div')
|
|
55
|
+
htmlDivElement.addEventListener = jasmine.createSpy()
|
|
56
|
+
htmlDivElement.removeEventListener = jasmine.createSpy()
|
|
57
|
+
|
|
58
|
+
const { stop } = addEventListener({ allowUntrustedEvents: false }, htmlDivElement, DOM_EVENT.CLICK, noop)
|
|
59
|
+
|
|
60
|
+
const event = createNewEvent(DOM_EVENT.CLICK)
|
|
61
|
+
htmlDivElement.dispatchEvent(event)
|
|
62
|
+
stop()
|
|
63
|
+
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
65
|
+
expect(htmlDivElement.addEventListener).not.toHaveBeenCalled()
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
67
|
+
expect(htmlDivElement.removeEventListener).not.toHaveBeenCalled()
|
|
68
|
+
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
70
|
+
expect(EventTarget.prototype.addEventListener).toHaveBeenCalled()
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
72
|
+
expect(EventTarget.prototype.removeEventListener).toHaveBeenCalled()
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
it('Use the addEventListener method when the eventTarget is not an instance of EventTarget', () => {
|
|
76
|
+
const listener = jasmine.createSpy()
|
|
77
|
+
|
|
78
|
+
const customEventTarget = {
|
|
79
|
+
addEventListener: jasmine.createSpy(),
|
|
80
|
+
removeEventListener: jasmine.createSpy(),
|
|
81
|
+
} as unknown as HTMLElement
|
|
82
|
+
|
|
83
|
+
const { stop } = addEventListener({ allowUntrustedEvents: false }, customEventTarget, 'change', listener)
|
|
84
|
+
stop()
|
|
85
|
+
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
87
|
+
expect(customEventTarget.addEventListener).toHaveBeenCalled()
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
89
|
+
expect(customEventTarget.removeEventListener).toHaveBeenCalled()
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
describe('Untrusted event', () => {
|
|
93
|
+
beforeEach(() => {
|
|
94
|
+
configuration = { allowUntrustedEvents: false } as Configuration
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
it('should be ignored if __ooIsTrusted is absent', () => {
|
|
98
|
+
const listener = jasmine.createSpy()
|
|
99
|
+
const eventTarget = document.createElement('div')
|
|
100
|
+
addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, listener)
|
|
101
|
+
|
|
102
|
+
const event = createNewEvent(DOM_EVENT.CLICK, { __ooIsTrusted: undefined })
|
|
103
|
+
eventTarget.dispatchEvent(event)
|
|
104
|
+
expect(listener).not.toHaveBeenCalled()
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
it('should be ignored if __ooIsTrusted is false', () => {
|
|
108
|
+
const listener = jasmine.createSpy()
|
|
109
|
+
const eventTarget = document.createElement('div')
|
|
110
|
+
addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, listener)
|
|
111
|
+
|
|
112
|
+
const event = createNewEvent(DOM_EVENT.CLICK, { __ooIsTrusted: false })
|
|
113
|
+
eventTarget.dispatchEvent(event)
|
|
114
|
+
expect(listener).not.toHaveBeenCalled()
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
it('should not be ignored if __ooIsTrusted is true', () => {
|
|
118
|
+
const listener = jasmine.createSpy()
|
|
119
|
+
const eventTarget = document.createElement('div')
|
|
120
|
+
addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, listener)
|
|
121
|
+
|
|
122
|
+
const event = createNewEvent(DOM_EVENT.CLICK, { __ooIsTrusted: true })
|
|
123
|
+
eventTarget.dispatchEvent(event)
|
|
124
|
+
|
|
125
|
+
expect(listener).toHaveBeenCalled()
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
it('should not be ignored if allowUntrustedEvents is true', () => {
|
|
129
|
+
const listener = jasmine.createSpy()
|
|
130
|
+
const eventTarget = document.createElement('div')
|
|
131
|
+
configuration = { allowUntrustedEvents: true } as Configuration
|
|
132
|
+
|
|
133
|
+
addEventListener(configuration, eventTarget, DOM_EVENT.CLICK, listener)
|
|
134
|
+
|
|
135
|
+
const event = createNewEvent(DOM_EVENT.CLICK, { __ooIsTrusted: undefined })
|
|
136
|
+
eventTarget.dispatchEvent(event)
|
|
137
|
+
|
|
138
|
+
expect(listener).toHaveBeenCalled()
|
|
139
|
+
})
|
|
140
|
+
})
|
|
141
|
+
})
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { mockCookies } from '../../test'
|
|
2
|
+
import { getCurrentSite, resetGetCurrentSite } from './cookie'
|
|
3
|
+
|
|
4
|
+
describe('cookie', () => {
|
|
5
|
+
describe('getCurrentSite', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
resetGetCurrentSite()
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
it('returns the eTLD+1 for example.com', () => {
|
|
11
|
+
mockCookies()
|
|
12
|
+
expect(getCurrentSite('example.com')).toBe('example.com')
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('returns the eTLD+1 for example.co.uk', () => {
|
|
16
|
+
mockCookies({
|
|
17
|
+
filter: (cookie) => cookie.domain !== '.co.uk',
|
|
18
|
+
})
|
|
19
|
+
expect(getCurrentSite('example.co.uk')).toBe('example.co.uk')
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
it('returns the eTLD+1 for foo.bar.baz.example.com', () => {
|
|
23
|
+
mockCookies()
|
|
24
|
+
expect(getCurrentSite('foo.bar.baz.example.com')).toBe('example.com')
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it('does not left any cookies', () => {
|
|
28
|
+
const { getCookies } = mockCookies()
|
|
29
|
+
expect(getCurrentSite('example.com')).toBe('example.com')
|
|
30
|
+
expect(getCookies()).toEqual([])
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
it('falls back to the referrer when the hostname is empty', () => {
|
|
34
|
+
mockCookies()
|
|
35
|
+
expect(getCurrentSite('', 'https://example.com')).toBe('example.com')
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('returns undefined when the referrer is empty', () => {
|
|
39
|
+
mockCookies()
|
|
40
|
+
expect(getCurrentSite('', '')).toBeUndefined()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('caches the result', () => {
|
|
44
|
+
const { setter } = mockCookies()
|
|
45
|
+
|
|
46
|
+
expect(getCurrentSite('example.com')).toBe('example.com')
|
|
47
|
+
expect(setter).toHaveBeenCalledTimes(2)
|
|
48
|
+
|
|
49
|
+
expect(getCurrentSite('example.com')).toBe('example.com')
|
|
50
|
+
expect(setter).toHaveBeenCalledTimes(2)
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|