@pratham.raval/browser-core 6.22.3 → 6.22.4
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/README.md +1 -1
- package/cjs/boot/displayAlreadyInitializedError.d.ts +1 -1
- package/cjs/boot/init.d.ts +1 -1
- package/cjs/browser/cookie.d.ts +10 -0
- package/cjs/browser/cookie.js +13 -0
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/domain/configuration/configuration.js +4 -4
- package/cjs/domain/configuration/configuration.js.map +1 -1
- package/cjs/domain/configuration/endpointBuilder.js +16 -24
- package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
- package/cjs/domain/configuration/transportConfiguration.js +5 -15
- package/cjs/domain/configuration/transportConfiguration.js.map +1 -1
- package/cjs/domain/intakeSites.d.ts +1 -7
- package/cjs/domain/intakeSites.js +2 -8
- package/cjs/domain/intakeSites.js.map +1 -1
- package/cjs/domain/session/oldCookiesMigration.d.ts +1 -1
- package/cjs/domain/session/oldCookiesMigration.js +1 -1
- package/cjs/domain/session/sessionManager.d.ts +1 -0
- package/cjs/domain/session/sessionManager.js +24 -6
- package/cjs/domain/session/sessionManager.js.map +1 -1
- package/cjs/domain/session/sessionState.js +2 -8
- package/cjs/domain/session/sessionState.js.map +1 -1
- package/cjs/domain/session/sessionStore.d.ts +1 -1
- package/cjs/domain/session/sessionStore.js +5 -1
- package/cjs/domain/session/sessionStore.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +5 -1
- package/cjs/domain/session/storeStrategies/sessionInCookie.js +52 -3
- package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +2 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +1 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +1 -1
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +1 -1
- package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +6 -6
- package/cjs/domain/synthetics/syntheticsWorkerValues.js +6 -6
- package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/domain/tags.js +6 -5
- package/cjs/domain/tags.js.map +1 -1
- package/cjs/domain/telemetry/telemetry.js +4 -5
- package/cjs/domain/telemetry/telemetry.js.map +1 -1
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +3 -2
- package/cjs/index.js.map +1 -1
- package/cjs/tools/display.js +1 -1
- package/cjs/tools/display.js.map +1 -1
- package/cjs/tools/experimentalFeatures.d.ts +2 -1
- package/cjs/tools/experimentalFeatures.js +1 -0
- package/cjs/tools/experimentalFeatures.js.map +1 -1
- package/cjs/tools/utils/browserDetection.d.ts +2 -0
- package/cjs/tools/utils/browserDetection.js +138 -0
- package/cjs/tools/utils/browserDetection.js.map +1 -1
- package/cjs/tools/utils/stringUtils.d.ts +15 -0
- package/cjs/tools/utils/stringUtils.js +36 -0
- package/cjs/tools/utils/stringUtils.js.map +1 -1
- package/cjs/transport/httpRequest.d.ts +1 -0
- package/cjs/transport/httpRequest.js +26 -4
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/index.d.ts +1 -1
- package/cjs/transport/index.js +2 -1
- package/cjs/transport/index.js.map +1 -1
- package/esm/boot/displayAlreadyInitializedError.d.ts +1 -1
- package/esm/boot/init.d.ts +1 -1
- package/esm/browser/cookie.d.ts +10 -0
- package/esm/browser/cookie.js +13 -1
- package/esm/browser/cookie.js.map +1 -1
- package/esm/domain/configuration/configuration.js +5 -5
- package/esm/domain/configuration/configuration.js.map +1 -1
- package/esm/domain/configuration/endpointBuilder.js +16 -24
- package/esm/domain/configuration/endpointBuilder.js.map +1 -1
- package/esm/domain/configuration/transportConfiguration.js +6 -16
- package/esm/domain/configuration/transportConfiguration.js.map +1 -1
- package/esm/domain/intakeSites.d.ts +1 -7
- package/esm/domain/intakeSites.js +1 -7
- package/esm/domain/intakeSites.js.map +1 -1
- package/esm/domain/session/oldCookiesMigration.d.ts +1 -1
- package/esm/domain/session/oldCookiesMigration.js +1 -1
- package/esm/domain/session/sessionManager.d.ts +1 -0
- package/esm/domain/session/sessionManager.js +25 -7
- package/esm/domain/session/sessionManager.js.map +1 -1
- package/esm/domain/session/sessionState.js +2 -8
- package/esm/domain/session/sessionState.js.map +1 -1
- package/esm/domain/session/sessionStore.d.ts +1 -1
- package/esm/domain/session/sessionStore.js +5 -1
- package/esm/domain/session/sessionStore.js.map +1 -1
- package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +5 -1
- package/esm/domain/session/storeStrategies/sessionInCookie.js +53 -4
- package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +2 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +1 -1
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +1 -1
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +1 -1
- package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +6 -6
- package/esm/domain/synthetics/syntheticsWorkerValues.js +6 -6
- package/esm/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/esm/domain/tags.js +6 -5
- package/esm/domain/tags.js.map +1 -1
- package/esm/domain/telemetry/telemetry.js +4 -5
- package/esm/domain/telemetry/telemetry.js.map +1 -1
- package/esm/domain/telemetry/telemetryEvent.types.d.ts +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/tools/display.js +1 -1
- package/esm/tools/display.js.map +1 -1
- package/esm/tools/experimentalFeatures.d.ts +2 -1
- package/esm/tools/experimentalFeatures.js +1 -0
- package/esm/tools/experimentalFeatures.js.map +1 -1
- package/esm/tools/utils/browserDetection.d.ts +2 -0
- package/esm/tools/utils/browserDetection.js +136 -0
- package/esm/tools/utils/browserDetection.js.map +1 -1
- package/esm/tools/utils/stringUtils.d.ts +15 -0
- package/esm/tools/utils/stringUtils.js +35 -0
- package/esm/tools/utils/stringUtils.js.map +1 -1
- package/esm/transport/httpRequest.d.ts +1 -0
- package/esm/transport/httpRequest.js +25 -4
- package/esm/transport/httpRequest.js.map +1 -1
- package/esm/transport/index.d.ts +1 -1
- package/esm/transport/index.js +1 -1
- package/esm/transport/index.js.map +1 -1
- package/package.json +4 -6
- package/src/boot/displayAlreadyInitializedError.ts +1 -1
- package/src/boot/init.ts +1 -1
- package/src/browser/cookie.ts +19 -1
- package/src/domain/configuration/configuration.ts +4 -4
- package/src/domain/configuration/endpointBuilder.ts +17 -27
- package/src/domain/configuration/transportConfiguration.ts +6 -18
- package/src/domain/intakeSites.ts +2 -17
- package/src/domain/session/oldCookiesMigration.ts +1 -1
- package/src/domain/session/sessionManager.ts +28 -7
- package/src/domain/session/sessionState.ts +2 -7
- package/src/domain/session/sessionStore.ts +6 -2
- package/src/domain/session/storeStrategies/sessionInCookie.ts +66 -4
- package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +1 -1
- package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +1 -1
- package/src/domain/synthetics/syntheticsWorkerValues.ts +9 -9
- package/src/domain/tags.ts +6 -6
- package/src/domain/telemetry/telemetry.ts +5 -5
- package/src/domain/telemetry/telemetryEvent.types.ts +1 -1
- package/src/index.ts +1 -0
- package/src/tools/display.ts +1 -1
- package/src/tools/experimentalFeatures.ts +1 -0
- package/src/tools/utils/browserDetection.ts +146 -0
- package/src/tools/utils/stringUtils.ts +34 -0
- package/src/transport/httpRequest.ts +31 -5
- package/src/transport/index.ts +1 -1
|
@@ -3,6 +3,7 @@ import type { Context } from '../tools/serialisation/context'
|
|
|
3
3
|
import { monitor, monitorError } from '../tools/monitor'
|
|
4
4
|
import type { RawError } from '../domain/error/error.types'
|
|
5
5
|
import { Observable } from '../tools/observable'
|
|
6
|
+
import { getDetailedBrowserName } from '../tools/utils/browserDetection'
|
|
6
7
|
import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -62,6 +63,12 @@ export interface RetryInfo {
|
|
|
62
63
|
lastFailureStatus: number
|
|
63
64
|
}
|
|
64
65
|
|
|
66
|
+
let currentSite: string | undefined
|
|
67
|
+
|
|
68
|
+
export function setCurrentSite(site: string | undefined) {
|
|
69
|
+
currentSite = site
|
|
70
|
+
}
|
|
71
|
+
|
|
65
72
|
export function createHttpRequest<Body extends Payload = Payload>(
|
|
66
73
|
endpointBuilders: EndpointBuilder[],
|
|
67
74
|
bytesLimit: number,
|
|
@@ -133,10 +140,16 @@ export function fetchKeepAliveStrategy(
|
|
|
133
140
|
|
|
134
141
|
if (canUseKeepAlive) {
|
|
135
142
|
const fetchUrl = endpointBuilder.build('fetch-keepalive', payload)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
.
|
|
143
|
+
const headers = buildRequestHeaders(fetchUrl)
|
|
144
|
+
|
|
145
|
+
fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors', headers })
|
|
146
|
+
.then(monitor((response: Response) => {
|
|
147
|
+
onResponse?.({ status: response.status, type: response.type })
|
|
148
|
+
}))
|
|
149
|
+
.catch(monitor((error) => {
|
|
150
|
+
fetchStrategy(endpointBuilder, payload, onResponse)
|
|
151
|
+
onResponse?.({ status: 0 })
|
|
152
|
+
}))
|
|
140
153
|
} else {
|
|
141
154
|
fetchStrategy(endpointBuilder, payload, onResponse)
|
|
142
155
|
}
|
|
@@ -148,8 +161,9 @@ export function fetchStrategy(
|
|
|
148
161
|
onResponse?: (r: HttpResponse) => void
|
|
149
162
|
) {
|
|
150
163
|
const fetchUrl = endpointBuilder.build('fetch', payload)
|
|
164
|
+
const headers = buildRequestHeaders(fetchUrl)
|
|
151
165
|
|
|
152
|
-
fetch(fetchUrl, { method: 'POST', body: payload.data, mode: 'cors' })
|
|
166
|
+
fetch(fetchUrl, { method: 'POST', body: payload.data, mode: 'cors', headers })
|
|
153
167
|
.then(monitor((response: Response) => onResponse?.({ status: response.status, type: response.type })))
|
|
154
168
|
.catch(monitor(() => onResponse?.({ status: 0 })))
|
|
155
169
|
}
|
|
@@ -162,3 +176,15 @@ function isKeepAliveSupported() {
|
|
|
162
176
|
return false
|
|
163
177
|
}
|
|
164
178
|
}
|
|
179
|
+
|
|
180
|
+
function buildRequestHeaders(url?: string): HeadersInit {
|
|
181
|
+
const headers: HeadersInit = {}
|
|
182
|
+
|
|
183
|
+
// dynamically match your RUM SDK endpoint host
|
|
184
|
+
// "site" comes from init() call, so this automatically adjusts
|
|
185
|
+
if (currentSite && url ) {
|
|
186
|
+
headers['X-Browser-Name'] = getDetailedBrowserName()
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return headers
|
|
190
|
+
}
|
package/src/transport/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { BandwidthStats, HttpRequest, HttpRequestEvent, Payload, RetryInfo } from './httpRequest'
|
|
2
|
-
export { createHttpRequest } from './httpRequest'
|
|
2
|
+
export { createHttpRequest, setCurrentSite } from './httpRequest'
|
|
3
3
|
export type { BrowserWindowWithEventBridge, DatadogEventBridge } from './eventBridge'
|
|
4
4
|
export { canUseEventBridge, bridgeSupports, getEventBridge, BridgeCapability } from './eventBridge'
|
|
5
5
|
export { createBatch } from './batch'
|