@newtalaria/browser 0.1.16 → 0.1.18

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/dist/types.d.ts CHANGED
@@ -47,23 +47,36 @@ export interface TalariaInitOptions {
47
47
  /** Disable automatic `window` / `unhandledrejection` handlers. */
48
48
  disableDefaultIntegrations?: boolean;
49
49
  /**
50
- * Promote matching HTTP fetch/XHR failures to Talaria events (not just replay breadcrumbs).
51
- * Default `true`.
50
+ * Promote matching HTTP fetch/XHR failures to Talaria events for first-party /
51
+ * allowlisted origins (not just replay breadcrumbs). Default `true`.
52
52
  */
53
53
  captureFailedRequests?: boolean;
54
54
  /**
55
- * Promote fetch/XHR transport failures (CORS, offline, DNS — no HTTP status) as events.
56
- * Default `true`. AbortError is never promoted.
55
+ * Promote fetch/XHR transport failures (no HTTP status) as events for
56
+ * first-party / allowlisted origins. Default `true`. AbortError is never promoted.
57
+ * Third-party failures stay as replay breadcrumbs unless their origin is allowlisted.
57
58
  */
58
59
  captureNetworkErrors?: boolean;
60
+ /**
61
+ * Extra origins whose failed requests may be promoted (exact origin strings).
62
+ * Same-origin is always eligible. Use `['*']` to promote all origins (not recommended).
63
+ * Example: `['https://api.stripe.com']`.
64
+ */
65
+ networkErrorOrigins?: string[];
59
66
  /**
60
67
  * Keep query strings on network telemetry URLs (after sensitive-key redaction).
61
68
  * Default `false` — strips `?…` / `#…` so GA/ads identifiers are not stored.
69
+ * Prefer `captureRequestQueryParameters`.
62
70
  */
63
71
  includeNetworkUrlQuery?: boolean;
72
+ /**
73
+ * Alias of `includeNetworkUrlQuery`. Privacy-preserving default is `false`.
74
+ */
75
+ captureRequestQueryParameters?: boolean;
64
76
  /**
65
77
  * Status codes / ranges to promote. Default `[[500, 599]]`.
66
78
  * Use `[[400, 599]]` for CMS admin (GridField/PJAX 404s).
79
+ * Only applies to first-party / allowlisted origins.
67
80
  */
68
81
  failedRequestStatusCodes?: FailedRequestStatusCode[];
69
82
  /** Extra URL substrings that must never be promoted (Talaria ingest URLs are always ignored). */
@@ -92,6 +105,7 @@ export interface ResolvedOptions {
92
105
  disableDefaultIntegrations: boolean;
93
106
  captureFailedRequests: boolean;
94
107
  captureNetworkErrors: boolean;
108
+ networkErrorOrigins: string[];
95
109
  includeNetworkUrlQuery: boolean;
96
110
  failedRequestStatusCodes: FailedRequestStatusCode[];
97
111
  failedRequestIgnoreUrls: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7E,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;AAEnE,mDAAmD;AACnD,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kEAAkE;IAClE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACrD,iGAAiG;IACjG,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,wBAAwB,EAAE,uBAAuB,EAAE,CAAC;IACpD,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,10 @@ export interface BrowserContext {
9
9
  device: string;
10
10
  language: string;
11
11
  userAgent: string;
12
+ /** True when UA looks like a crawler / headless fetcher. */
13
+ bot: boolean;
14
+ /** Friendly crawler name when recognized (e.g. Baiduspider). */
15
+ botName?: string;
12
16
  }
13
17
  export interface BrowserContextTags {
14
18
  'browser.name': string;
@@ -16,7 +20,13 @@ export interface BrowserContextTags {
16
20
  'os.name': string;
17
21
  'os.version': string;
18
22
  'device': string;
23
+ bot?: string;
24
+ 'bot.name'?: string;
19
25
  }
26
+ export declare function detectBot(ua: string): {
27
+ bot: boolean;
28
+ botName?: string;
29
+ };
20
30
  /**
21
31
  * Lightweight UA parse — no dependency. Good enough for triage tags;
22
32
  * full UA is still attached in extra for debugging.
@@ -1 +1 @@
1
- {"version":3,"file":"browser_context.d.ts","sourceRoot":"","sources":["../../src/utils/browser_context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,SAA8D,EAChE,QAAQ,SAA6D,GACpE,cAAc,CAiFhB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB,CAQ1E;AAED,qDAAqD;AACrD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAiErE"}
1
+ {"version":3,"file":"browser_context.d.ts","sourceRoot":"","sources":["../../src/utils/browser_context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,GAAG,EAAE,OAAO,CAAC;IACb,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4BD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAWxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,SAA8D,EAChE,QAAQ,SAA6D,GACpE,cAAc,CAuFhB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB,CAc1E;AAED,qDAAqD;AACrD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC,CAoErE"}
@@ -1,13 +1,29 @@
1
1
  /** AbortError from fetch/XHR — usually intentional, not an app bug. */
2
2
  export declare function isAbortError(error: unknown): boolean;
3
+ /** Explicit fetch/XHR timeout (AbortSignal.timeout / XHR timeout). */
4
+ export declare function isTimeoutError(error: unknown): boolean;
3
5
  /**
4
6
  * Browser fetch transport failures (CORS, offline, DNS, blocked).
5
7
  * These reject with TypeError / NetworkError — not HTTP status codes.
8
+ * TimeoutError is handled separately via {@link isTimeoutError}.
6
9
  */
7
10
  export declare function isLikelyNetworkFetchError(error: unknown): boolean;
11
+ /** True when a bare rejection may correlate with instrumented network/timeout meta. */
12
+ export declare function isCorrelatableTransportError(error: unknown): boolean;
8
13
  export declare function describeUnknownError(error: unknown): {
9
14
  errorName: string;
10
15
  errorMessage: string;
11
16
  aborted: boolean;
17
+ timedOut: boolean;
12
18
  };
19
+ /**
20
+ * Classify a transport-layer failure.
21
+ * Never maps status-0 / Failed to fetch → `cors` — browsers do not expose that
22
+ * reliably (CORS, adblock, offline, DNS, privacy all look similar).
23
+ */
24
+ export declare function classifyTransportFailure(opts: {
25
+ aborted?: boolean;
26
+ timedOut?: boolean;
27
+ errorName?: string;
28
+ }): 'network' | 'abort' | 'timeout';
13
29
  //# sourceMappingURL=network_error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network_error.d.ts","sourceRoot":"","sources":["../../src/utils/network_error.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAajE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAaA"}
1
+ {"version":3,"file":"network_error.d.ts","sourceRoot":"","sources":["../../src/utils/network_error.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAajE;AAED,uFAAuF;AACvF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAeA;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAIlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newtalaria/browser",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "Talaria browser SDK — error capture and session replay (rrweb)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",