Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
nick-delirium
e420d5e8e4 fix(tracker): fix fetch input check 2023-12-20 16:40:42 +01:00
nick-delirium
bee960241a feat(tracker): 10.0.3 2023-11-27 09:58:24 +01:00
nick-delirium
a1bbda3de4 fix(tracker): add trycatch to ignore iframe errors 2023-11-27 09:54:14 +01:00
4 changed files with 28 additions and 5 deletions

View file

@ -1,3 +1,7 @@
# 10.0.3
- some safety guards for iframe components
# 10.0.2
- fix default ignore headers

View file

@ -1,7 +1,7 @@
{
"name": "@openreplay/tracker",
"description": "The OpenReplay tracker main package",
"version": "10.0.2",
"version": "10.0.4",
"keywords": [
"logging",
"replay"

View file

@ -131,8 +131,13 @@ export class FetchProxyHandler<T extends typeof fetch> implements ProxyHandler<T
public apply(target: T, _: typeof window, argsList: [RequestInfo | URL, RequestInit]) {
const input = argsList[0]
const init = argsList[1]
// @ts-ignore
if (!input?.url && !input) return <ReturnType<T>>target.apply(window, argsList)
if (
!input ||
// @ts-ignore
(typeof input !== 'string' && !input?.url)
) {
return <ReturnType<T>>target.apply(window, argsList)
}
const isORUrl =
input instanceof URL || typeof input === 'string'

View file

@ -138,7 +138,14 @@ export function createEventListener(
capture?: boolean,
) {
const safeAddEventListener = ngSafeBrowserMethod('addEventListener') as 'addEventListener'
target[safeAddEventListener](event, cb, capture)
try {
target[safeAddEventListener](event, cb, capture)
} catch (e) {
console.debug(
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
`Openreplay: ${e.messages}; if this error is caused by an IframeObserver, ignore it`,
)
}
}
export function deleteEventListener(
@ -150,7 +157,14 @@ export function deleteEventListener(
const safeRemoveEventListener = ngSafeBrowserMethod(
'removeEventListener',
) as 'removeEventListener'
target[safeRemoveEventListener](event, cb, capture)
try {
target[safeRemoveEventListener](event, cb, capture)
} catch (e) {
console.debug(
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
`Openreplay: ${e.messages}; if this error is caused by an IframeObserver, ignore it`,
)
}
}
/**