@newtalaria/browser 0.1.17 → 0.1.19
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 +136 -15
- package/dist/client.d.ts +13 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +628 -37
- package/dist/index.js.map +4 -4
- package/dist/replay/hooks.d.ts +45 -2
- package/dist/replay/hooks.d.ts.map +1 -1
- package/dist/replay/privacy.d.ts +1 -1
- package/dist/replay/privacy.d.ts.map +1 -1
- package/dist/sdk_meta.d.ts +1 -1
- package/dist/talaria.browser.iife.js +610 -36
- package/dist/talaria.browser.iife.js.map +4 -4
- package/dist/transport/events.d.ts +4 -1
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/types.d.ts +112 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/browser_context.d.ts +4 -3
- package/dist/utils/browser_context.d.ts.map +1 -1
- package/dist/utils/network_error.d.ts +5 -0
- package/dist/utils/network_error.d.ts.map +1 -1
- package/dist/utils/stacktrace.d.ts +35 -0
- package/dist/utils/stacktrace.d.ts.map +1 -0
- package/dist/utils/tags.d.ts +28 -0
- package/dist/utils/tags.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/replay/hooks.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { FailedRequestStatusCode } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fetch / XHR instrumentation for replay breadcrumbs and optional error promotion.
|
|
4
|
+
*
|
|
5
|
+
* Policy (see package README): always emit `talaria-network` breadcrumbs; promote
|
|
6
|
+
* to Talaria events only for same-origin or `networkErrorOrigins` (never invent
|
|
7
|
+
* a `cors` failure kind from status 0 / Failed to fetch).
|
|
8
|
+
*/
|
|
2
9
|
/** How the request was issued. */
|
|
3
10
|
export type NetworkTransport = 'fetch' | 'xhr';
|
|
4
11
|
/**
|
|
@@ -7,6 +14,8 @@ export type NetworkTransport = 'fetch' | 'xhr';
|
|
|
7
14
|
* (status 0 / Failed to fetch cover many causes).
|
|
8
15
|
*/
|
|
9
16
|
export type NetworkFailureKind = 'http' | 'network' | 'abort' | 'timeout';
|
|
17
|
+
/** Same-origin vs cross-origin relative to the page. */
|
|
18
|
+
export type NetworkParty = 'first_party' | 'third_party';
|
|
10
19
|
export type Teardown = () => void;
|
|
11
20
|
/**
|
|
12
21
|
* Fire when the document becomes visible again (tab focus) or is restored
|
|
@@ -18,6 +27,8 @@ export interface NetworkMeta {
|
|
|
18
27
|
method: string;
|
|
19
28
|
/** Sanitized request URL (origin + pathname; query stripped by default). */
|
|
20
29
|
url: string;
|
|
30
|
+
/** Request origin (scheme + host + port). */
|
|
31
|
+
origin?: string;
|
|
21
32
|
hostname?: string;
|
|
22
33
|
pathname?: string;
|
|
23
34
|
/** Only when query capture is enabled. */
|
|
@@ -31,6 +42,8 @@ export interface NetworkMeta {
|
|
|
31
42
|
errorMessage?: string;
|
|
32
43
|
aborted?: boolean;
|
|
33
44
|
failureKind?: NetworkFailureKind;
|
|
45
|
+
/** Same-origin (`first_party`) vs cross-origin (`third_party`). */
|
|
46
|
+
party?: NetworkParty;
|
|
34
47
|
}
|
|
35
48
|
export interface NetworkHookOptions {
|
|
36
49
|
/** Still emit rrweb breadcrumbs for all requests. */
|
|
@@ -48,8 +61,17 @@ export interface NetworkHookOptions {
|
|
|
48
61
|
*/
|
|
49
62
|
onNetworkError?: (meta: NetworkMeta) => void;
|
|
50
63
|
captureFailedRequests?: boolean;
|
|
51
|
-
/** Promote
|
|
64
|
+
/** Promote transport failures for first-party / allowlisted origins (default `true`). */
|
|
52
65
|
captureNetworkErrors?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Extra origins eligible for error promotion (exact origin strings).
|
|
68
|
+
* Same-origin is always eligible. `['*']` promotes all origins.
|
|
69
|
+
*/
|
|
70
|
+
networkErrorOrigins?: string[];
|
|
71
|
+
/**
|
|
72
|
+
* Override page origin (tests / non-browser). Defaults to `location.origin`.
|
|
73
|
+
*/
|
|
74
|
+
pageOrigin?: string;
|
|
53
75
|
/**
|
|
54
76
|
* Keep URL query strings in network telemetry (after sensitive-key redaction).
|
|
55
77
|
* Default `false`. Prefer `captureRequestQueryParameters` (same meaning).
|
|
@@ -68,10 +90,28 @@ export declare function statusMatches(status: number, codes: FailedRequestStatus
|
|
|
68
90
|
/** Shared ignore list for HTTP + network failure promotion. */
|
|
69
91
|
export declare function buildFailedRequestIgnoreUrls(failedRequestIgnoreUrls: string[], talariaBaseUrl?: string): string[];
|
|
70
92
|
export declare function urlMatchesIgnoreList(url: string, ignoreUrls: string[]): boolean;
|
|
93
|
+
/** Normalize an allowlist entry to an origin string (`https://host:port`). */
|
|
94
|
+
export declare function normalizeNetworkOrigin(raw: string): string;
|
|
95
|
+
export declare function resolvePageOrigin(pageOrigin?: string): string;
|
|
96
|
+
/** Resolve the request origin from a (possibly relative) URL. */
|
|
97
|
+
export declare function resolveRequestOrigin(rawUrl: string, pageOrigin?: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Whether a request origin may be promoted to an error event.
|
|
100
|
+
* Same-origin and `networkErrorOrigins` entries (or `*`) are allowed.
|
|
101
|
+
*/
|
|
102
|
+
export declare function isAllowedNetworkOrigin(requestOrigin: string, opts: {
|
|
103
|
+
networkErrorOrigins: string[];
|
|
104
|
+
pageOrigin?: string;
|
|
105
|
+
}): boolean;
|
|
106
|
+
export declare function classifyNetworkParty(requestOrigin: string, pageOrigin?: string): NetworkParty;
|
|
107
|
+
/** HTTP success = 2xx (aligned for fetch and XHR). */
|
|
108
|
+
export declare function isHttpOkStatus(status: number): boolean;
|
|
71
109
|
export declare function shouldPromoteFailedRequest(meta: NetworkMeta, opts: {
|
|
72
110
|
captureFailedRequests: boolean;
|
|
73
111
|
failedRequestStatusCodes: FailedRequestStatusCode[];
|
|
74
112
|
failedRequestIgnoreUrls: string[];
|
|
113
|
+
networkErrorOrigins?: string[];
|
|
114
|
+
pageOrigin?: string;
|
|
75
115
|
talariaBaseUrl?: string;
|
|
76
116
|
}): meta is NetworkMeta & {
|
|
77
117
|
status: number;
|
|
@@ -79,15 +119,18 @@ export declare function shouldPromoteFailedRequest(meta: NetworkMeta, opts: {
|
|
|
79
119
|
/**
|
|
80
120
|
* Promote fetch rejects / XHR status-0 failures (offline, DNS, blocked, etc.).
|
|
81
121
|
* Abort is never promoted; timeout may be promoted as `failureKind: timeout`.
|
|
122
|
+
* Third-party origins are skipped unless allowlisted (or `*`).
|
|
82
123
|
*/
|
|
83
124
|
export declare function shouldPromoteNetworkError(meta: NetworkMeta, opts: {
|
|
84
125
|
captureNetworkErrors: boolean;
|
|
85
126
|
failedRequestIgnoreUrls: string[];
|
|
127
|
+
networkErrorOrigins?: string[];
|
|
128
|
+
pageOrigin?: string;
|
|
86
129
|
talariaBaseUrl?: string;
|
|
87
130
|
}): boolean;
|
|
88
131
|
export declare function enrichNetworkMeta(meta: NetworkMeta): NetworkMeta;
|
|
89
132
|
/** Apply privacy sanitization to a raw request URL for network meta. */
|
|
90
|
-
export declare function networkUrlParts(rawUrl: string, includeQuery: boolean): Pick<NetworkMeta, 'url' | 'hostname' | 'pathname' | 'search'>;
|
|
133
|
+
export declare function networkUrlParts(rawUrl: string, includeQuery: boolean, pageOrigin?: string): Pick<NetworkMeta, 'url' | 'origin' | 'hostname' | 'pathname' | 'search'>;
|
|
91
134
|
/** Capture fetch / XHR metadata (no bodies, no auth headers); optionally promote failures. */
|
|
92
135
|
export declare function installNetworkHook(options?: NetworkHookOptions): Teardown;
|
|
93
136
|
//# 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;AAM3D,kCAAkC;AAClC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,QAAQ,CA4B1E;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,kBAAkB,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,4 @@
|
|
|
1
|
-
/** Redact sensitive query params from a URL (keeps other query keys). */
|
|
1
|
+
/** Redact sensitive / tracking query params from a URL (keeps other query keys). */
|
|
2
2
|
export declare function redactUrl(raw: string): string;
|
|
3
3
|
export interface SanitizedNetworkUrl {
|
|
4
4
|
/** Safe URL for telemetry: origin + pathname (no query/hash by default). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/replay/privacy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/replay/privacy.ts"],"names":[],"mappings":"AAUA,oFAAoF;AACpF,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