@newtalaria/browser 0.1.13 → 0.1.16
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 +29 -6
- package/dist/client.d.ts +21 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/index.js +468 -48
- package/dist/index.js.map +3 -3
- package/dist/replay/hooks.d.ts +40 -2
- package/dist/replay/hooks.d.ts.map +1 -1
- package/dist/replay/privacy.d.ts +18 -1
- package/dist/replay/privacy.d.ts.map +1 -1
- package/dist/sdk_meta.d.ts +1 -1
- package/dist/talaria.browser.iife.js +468 -48
- package/dist/talaria.browser.iife.js.map +3 -3
- package/dist/types.d.ts +14 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/environment.d.ts +7 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/network_error.d.ts +13 -0
- package/dist/utils/network_error.d.ts.map +1 -0
- package/dist/utils/sdk_internal_noise.d.ts +6 -0
- package/dist/utils/sdk_internal_noise.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/replay/hooks.d.ts
CHANGED
|
@@ -8,22 +8,45 @@ export type Teardown = () => void;
|
|
|
8
8
|
export declare function installVisibilityResumeHook(onResume: () => void): Teardown;
|
|
9
9
|
export interface NetworkMeta {
|
|
10
10
|
method: string;
|
|
11
|
+
/** Sanitized request URL (origin + pathname; query stripped by default). */
|
|
11
12
|
url: string;
|
|
13
|
+
hostname?: string;
|
|
14
|
+
pathname?: string;
|
|
15
|
+
/** Only when `includeNetworkUrlQuery` is enabled. */
|
|
16
|
+
search?: string;
|
|
12
17
|
status?: number;
|
|
13
18
|
durationMs?: number;
|
|
14
19
|
ok?: boolean;
|
|
20
|
+
/** Present on transport failures (fetch reject / XHR status 0). */
|
|
21
|
+
errorName?: string;
|
|
22
|
+
errorMessage?: string;
|
|
23
|
+
aborted?: boolean;
|
|
24
|
+
/** `http` = completed response with status; `network` = no usable status. */
|
|
25
|
+
failureKind?: 'http' | 'network';
|
|
15
26
|
}
|
|
16
27
|
export interface NetworkHookOptions {
|
|
17
28
|
/** Still emit rrweb breadcrumbs for all requests. */
|
|
18
29
|
onNetwork?: (meta: NetworkMeta) => void;
|
|
19
30
|
/**
|
|
20
|
-
* Called when a completed
|
|
21
|
-
*
|
|
31
|
+
* Called when a completed HTTP response should become a Talaria event
|
|
32
|
+
* (status matches `failedRequestStatusCodes`).
|
|
22
33
|
*/
|
|
23
34
|
onFailedRequest?: (meta: NetworkMeta & {
|
|
24
35
|
status: number;
|
|
25
36
|
}) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Called when a transport failure should become a Talaria event
|
|
39
|
+
* (fetch reject / XHR status 0; never AbortError).
|
|
40
|
+
*/
|
|
41
|
+
onNetworkError?: (meta: NetworkMeta) => void;
|
|
26
42
|
captureFailedRequests?: boolean;
|
|
43
|
+
/** Promote CORS/offline/DNS fetch failures (default `true`). */
|
|
44
|
+
captureNetworkErrors?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Keep URL query strings in network telemetry (after sensitive-key redaction).
|
|
47
|
+
* Default `false` — GA/ads URLs often carry cid/sid/dl identifiers.
|
|
48
|
+
*/
|
|
49
|
+
includeNetworkUrlQuery?: boolean;
|
|
27
50
|
failedRequestStatusCodes?: FailedRequestStatusCode[];
|
|
28
51
|
failedRequestIgnoreUrls?: string[];
|
|
29
52
|
/** SDK base URL — requests under this host + /events|/replays are never promoted. */
|
|
@@ -32,6 +55,9 @@ export interface NetworkHookOptions {
|
|
|
32
55
|
/** Mirror console output into rrweb as `talaria-console` custom events. */
|
|
33
56
|
export declare function installConsoleHook(): Teardown;
|
|
34
57
|
export declare function statusMatches(status: number, codes: FailedRequestStatusCode[]): boolean;
|
|
58
|
+
/** Shared ignore list for HTTP + network failure promotion. */
|
|
59
|
+
export declare function buildFailedRequestIgnoreUrls(failedRequestIgnoreUrls: string[], talariaBaseUrl?: string): string[];
|
|
60
|
+
export declare function urlMatchesIgnoreList(url: string, ignoreUrls: string[]): boolean;
|
|
35
61
|
export declare function shouldPromoteFailedRequest(meta: NetworkMeta, opts: {
|
|
36
62
|
captureFailedRequests: boolean;
|
|
37
63
|
failedRequestStatusCodes: FailedRequestStatusCode[];
|
|
@@ -40,6 +66,18 @@ export declare function shouldPromoteFailedRequest(meta: NetworkMeta, opts: {
|
|
|
40
66
|
}): meta is NetworkMeta & {
|
|
41
67
|
status: number;
|
|
42
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* Promote fetch rejects / XHR status-0 failures (CORS, offline, DNS).
|
|
71
|
+
* AbortError is never promoted.
|
|
72
|
+
*/
|
|
73
|
+
export declare function shouldPromoteNetworkError(meta: NetworkMeta, opts: {
|
|
74
|
+
captureNetworkErrors: boolean;
|
|
75
|
+
failedRequestIgnoreUrls: string[];
|
|
76
|
+
talariaBaseUrl?: string;
|
|
77
|
+
}): boolean;
|
|
78
|
+
export declare function enrichNetworkMeta(meta: NetworkMeta): NetworkMeta;
|
|
79
|
+
/** Apply privacy sanitization to a raw request URL for network meta. */
|
|
80
|
+
export declare function networkUrlParts(rawUrl: string, includeQuery: boolean): Pick<NetworkMeta, 'url' | 'hostname' | 'pathname' | 'search'>;
|
|
43
81
|
/** Capture fetch / XHR metadata (no bodies, no auth headers); optionally promote failures. */
|
|
44
82
|
export declare function installNetworkHook(options?: NetworkHookOptions): Teardown;
|
|
45
83
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/replay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/replay/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/replay/privacy.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
/** Redact sensitive query params from a URL
|
|
1
|
+
/** Redact sensitive query params from a URL (keeps other query keys). */
|
|
2
2
|
export declare function redactUrl(raw: string): string;
|
|
3
|
+
export interface SanitizedNetworkUrl {
|
|
4
|
+
/** Safe URL for telemetry: origin + pathname (no query/hash by default). */
|
|
5
|
+
url: string;
|
|
6
|
+
hostname: string;
|
|
7
|
+
pathname: string;
|
|
8
|
+
/** Present only when query capture is opted in (after sensitive-key redaction). */
|
|
9
|
+
search?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Sanitize a request URL for network breadcrumbs / failure events.
|
|
13
|
+
* Default: drop query string and fragment (GA/ads URLs carry session ids).
|
|
14
|
+
* Opt-in `includeQuery` keeps search after `redactUrl` filtering.
|
|
15
|
+
*/
|
|
16
|
+
export declare function sanitizeNetworkUrl(raw: string, opts?: {
|
|
17
|
+
includeQuery?: boolean;
|
|
18
|
+
baseHref?: string;
|
|
19
|
+
}): SanitizedNetworkUrl;
|
|
3
20
|
export declare function defaultBlockSelector(extra?: string): string;
|
|
4
21
|
//# sourceMappingURL=privacy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/replay/privacy.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/replay/privacy.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY7C;AAED,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,mBAAmB,CAsCrB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3D"}
|
package/dist/sdk_meta.d.ts
CHANGED