@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.
@@ -1,5 +1,5 @@
1
1
  import type { ServerpodTransport } from './serverpod.js';
2
- import type { SeverityLevel } from '../types.js';
2
+ import type { DebugMeta, ExceptionData, SeverityLevel } from '../types.js';
3
3
  export interface IngestEventParams {
4
4
  message: string;
5
5
  environment: string;
@@ -7,6 +7,9 @@ export interface IngestEventParams {
7
7
  eventType?: 'error' | 'warning' | 'info' | 'debug';
8
8
  title?: string;
9
9
  stackTrace?: string;
10
+ exception?: ExceptionData;
11
+ debugMeta?: DebugMeta;
12
+ platform?: string;
10
13
  release?: string;
11
14
  userId?: string;
12
15
  sessionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/transport/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,OAAO,CAAC,CA2BlB"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/transport/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAGb,aAAa,EAGd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,OAAO,CAAC,CA8BlB"}
package/dist/types.d.ts CHANGED
@@ -44,18 +44,30 @@ export interface TalariaInitOptions {
44
44
  userId?: string;
45
45
  /** Tags merged into every captured event (per-call tags win on key conflict). */
46
46
  tags?: Record<string, string>;
47
+ /**
48
+ * Preferred low-cardinality dimensions (optional conventions):
49
+ * `service`, `platform`, `feature`, `operation`, `component`, `runtime`,
50
+ * `runtime_version`. Do not put environment/release or high-cardinality IDs here.
51
+ */
47
52
  /** Disable automatic `window` / `unhandledrejection` handlers. */
48
53
  disableDefaultIntegrations?: boolean;
49
54
  /**
50
- * Promote matching HTTP fetch/XHR failures to Talaria events (not just replay breadcrumbs).
51
- * Default `true`.
55
+ * Promote matching HTTP fetch/XHR failures to Talaria events for first-party /
56
+ * allowlisted origins (not just replay breadcrumbs). Default `true`.
52
57
  */
53
58
  captureFailedRequests?: boolean;
54
59
  /**
55
- * Promote fetch/XHR transport failures (CORS, offline, DNS — no HTTP status) as events.
56
- * Default `true`. AbortError is never promoted.
60
+ * Promote fetch/XHR transport failures (no HTTP status) as events for
61
+ * first-party / allowlisted origins. Default `true`. AbortError is never promoted.
62
+ * Third-party failures stay as replay breadcrumbs unless their origin is allowlisted.
57
63
  */
58
64
  captureNetworkErrors?: boolean;
65
+ /**
66
+ * Extra origins whose failed requests may be promoted (exact origin strings).
67
+ * Same-origin is always eligible. Use `['*']` to promote all origins (not recommended).
68
+ * Example: `['https://api.stripe.com']`.
69
+ */
70
+ networkErrorOrigins?: string[];
59
71
  /**
60
72
  * Keep query strings on network telemetry URLs (after sensitive-key redaction).
61
73
  * Default `false` — strips `?…` / `#…` so GA/ads identifiers are not stored.
@@ -69,16 +81,108 @@ export interface TalariaInitOptions {
69
81
  /**
70
82
  * Status codes / ranges to promote. Default `[[500, 599]]`.
71
83
  * Use `[[400, 599]]` for CMS admin (GridField/PJAX 404s).
84
+ * Only applies to first-party / allowlisted origins.
72
85
  */
73
86
  failedRequestStatusCodes?: FailedRequestStatusCode[];
74
87
  /** Extra URL substrings that must never be promoted (Talaria ingest URLs are always ignored). */
75
88
  failedRequestIgnoreUrls?: string[];
89
+ /**
90
+ * Path substrings or RegExps that force stack frames `inApp: true`
91
+ * (checked after built-in denies / denyUrls).
92
+ */
93
+ inAppAllowUrls?: Array<string | RegExp>;
94
+ /**
95
+ * Path substrings or RegExps that force stack frames `inApp: false`.
96
+ */
97
+ inAppDenyUrls?: Array<string | RegExp>;
98
+ /**
99
+ * Extra origins treated as app code for `inApp` (exact origin strings).
100
+ * Same-origin (`window.location.origin`) is always included.
101
+ * Example: `['https://cdn.example.com']` for CDN-hosted app bundles.
102
+ */
103
+ inAppOrigins?: string[];
104
+ }
105
+ /** How an exception was captured / produced (mirrors ExceptionMechanismDto). */
106
+ export interface ExceptionMechanism {
107
+ type: string;
108
+ handled?: boolean;
109
+ synthetic?: boolean;
110
+ }
111
+ /**
112
+ * Single stack frame on the wire (mirrors StackFrameDto).
113
+ * Uses `functionName` — not `function` (reserved in Dart / Serverpod).
114
+ */
115
+ export interface StackFrame {
116
+ filename?: string;
117
+ absPath?: string;
118
+ functionName?: string;
119
+ rawFunction?: string;
120
+ module?: string;
121
+ package?: string;
122
+ platform?: string;
123
+ lineno?: number;
124
+ colno?: number;
125
+ inApp?: boolean;
126
+ instructionAddr?: string;
127
+ symbolAddr?: string;
128
+ imageAddr?: string;
129
+ addrMode?: string;
130
+ contextLine?: string;
131
+ preContext?: string[];
132
+ postContext?: string[];
133
+ vars?: Record<string, string>;
134
+ stackStart?: boolean;
135
+ }
136
+ /** Structured stacktrace (mirrors StackTraceDto). Frames are oldest → newest. */
137
+ export interface StackTrace {
138
+ frames: StackFrame[];
139
+ registers?: Record<string, string>;
140
+ }
141
+ /** One exception in a chain (mirrors ExceptionValueDto). */
142
+ export interface ExceptionValue {
143
+ type?: string;
144
+ value?: string;
145
+ module?: string;
146
+ threadId?: string;
147
+ code?: string;
148
+ mechanism?: ExceptionMechanism;
149
+ stacktrace?: StackTrace;
150
+ }
151
+ /** First-class exception payload (mirrors ExceptionDataDto). */
152
+ export interface ExceptionData {
153
+ values: ExceptionValue[];
154
+ }
155
+ /** Optional debug image metadata (mirrors DebugImageDto). */
156
+ export interface DebugImage {
157
+ type?: string;
158
+ imageAddr?: string;
159
+ imageSize?: number;
160
+ debugId?: string;
161
+ debugFile?: string;
162
+ codeId?: string;
163
+ codeFile?: string;
164
+ arch?: string;
165
+ }
166
+ /** Optional debug meta (mirrors DebugMetaDto). */
167
+ export interface DebugMeta {
168
+ images?: DebugImage[];
76
169
  }
77
170
  export interface CaptureContext {
78
171
  tags?: Record<string, string>;
79
172
  extra?: Record<string, unknown>;
80
173
  userId?: string;
81
174
  title?: string;
175
+ /** How the exception was captured (`onerror`, `unhandledrejection`, `http`, …). */
176
+ mechanism?: ExceptionMechanism;
177
+ /**
178
+ * Enrich the top (newest) stack frame — e.g. `window.onerror` location.
179
+ * Not sent in `extra`.
180
+ */
181
+ source?: {
182
+ filename?: string;
183
+ lineno?: number;
184
+ colno?: number;
185
+ };
82
186
  }
83
187
  export interface ResolvedOptions {
84
188
  baseUrl: string;
@@ -97,8 +201,12 @@ export interface ResolvedOptions {
97
201
  disableDefaultIntegrations: boolean;
98
202
  captureFailedRequests: boolean;
99
203
  captureNetworkErrors: boolean;
204
+ networkErrorOrigins: string[];
100
205
  includeNetworkUrlQuery: boolean;
101
206
  failedRequestStatusCodes: FailedRequestStatusCode[];
102
207
  failedRequestIgnoreUrls: string[];
208
+ inAppAllowUrls: Array<string | RegExp>;
209
+ inAppDenyUrls: Array<string | RegExp>;
210
+ inAppOrigins: string[];
103
211
  }
104
212
  //# sourceMappingURL=types.d.ts.map
@@ -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;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;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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"}
@@ -14,15 +14,16 @@ export interface BrowserContext {
14
14
  /** Friendly crawler name when recognized (e.g. Baiduspider). */
15
15
  botName?: string;
16
16
  }
17
- export interface BrowserContextTags {
17
+ /** Known browser triage tags; typed as TagMap for mergeTags compatibility. */
18
+ export type BrowserContextTags = {
18
19
  'browser.name': string;
19
20
  'browser.version': string;
20
21
  'os.name': string;
21
22
  'os.version': string;
22
- 'device': string;
23
+ device: string;
23
24
  bot?: string;
24
25
  'bot.name'?: string;
25
- }
26
+ } & Record<string, string>;
26
27
  export declare function detectBot(ua: string): {
27
28
  bot: boolean;
28
29
  botName?: string;
@@ -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;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
+ {"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,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AA4B3B,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,10 +1,15 @@
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;
@@ -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;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"}
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"}
@@ -0,0 +1,35 @@
1
+ import type { StackFrame, StackTrace } from '../types.js';
2
+ /** Options for classifying stack frames as in-app. */
3
+ export interface InAppFrameOptions {
4
+ /** Page origin (e.g. `https://www.example.com`). Same-origin frames are in-app. */
5
+ pageOrigin?: string;
6
+ /** Extra origins treated as app code (exact origin strings, e.g. asset CDN). */
7
+ inAppOrigins?: string[];
8
+ /** Path substrings or RegExps that force `inApp: true`. */
9
+ allowUrls?: Array<string | RegExp>;
10
+ /** Path substrings or RegExps that force `inApp: false`. */
11
+ denyUrls?: Array<string | RegExp>;
12
+ }
13
+ /**
14
+ * Parse a V8 / Chrome `Error.stack` string into structured frames.
15
+ * Returns frames in **oldest → newest** order (crash site last).
16
+ */
17
+ export declare function parseStackTrace(stack?: string | null, inAppOptions?: InAppFrameOptions): StackTrace | undefined;
18
+ /** Parse a single V8 stack line into a frame, or null if not a frame. */
19
+ export declare function parseStackLine(line: string, inAppOptions?: InAppFrameOptions): StackFrame | null;
20
+ /**
21
+ * Apply `window.onerror` (or similar) location onto the newest frame,
22
+ * or synthesize a single frame when the stack had none.
23
+ */
24
+ export declare function applySourceLocation(stacktrace: StackTrace | undefined, source?: {
25
+ filename?: string;
26
+ lineno?: number;
27
+ colno?: number;
28
+ }, inAppOptions?: InAppFrameOptions): StackTrace | undefined;
29
+ /**
30
+ * inApp heuristics: same-origin (or allowlisted) app code, not vendors/CDN/SDK.
31
+ */
32
+ export declare function isInAppFrame(path: string, options?: InAppFrameOptions): boolean;
33
+ /** Page origin from `window.location.origin` or a full page URL. */
34
+ export declare function resolvePageOrigin(originOrUrl?: string): string | undefined;
35
+ //# sourceMappingURL=stacktrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacktrace.d.ts","sourceRoot":"","sources":["../../src/utils/stacktrace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAY1D,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,YAAY,CAAC,EAAE,iBAAiB,GAC/B,UAAU,GAAG,SAAS,CAcxB;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,iBAAiB,GAC/B,UAAU,GAAG,IAAI,CAgCnB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/D,YAAY,CAAC,EAAE,iBAAiB,GAC/B,UAAU,GAAG,SAAS,CAyCxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CA2BT;AAyCD,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Tag normalization and high-cardinality heuristics for the browser SDK.
3
+ *
4
+ * Precedence when merging (later wins): auto → init → scope/withTags → per-call.
5
+ */
6
+ export declare const MAX_TAGS_PER_EVENT = 20;
7
+ export declare const MAX_TAG_KEY_LENGTH = 64;
8
+ export declare const MAX_TAG_VALUE_LENGTH = 128;
9
+ export declare const MAX_TAG_TOTAL_UTF8_BYTES = 2048;
10
+ /** Keys that usually belong in extra / top-level context, not tags. */
11
+ export declare const HIGH_CARDINALITY_TAG_KEYS: Set<string>;
12
+ export type TagMap = Record<string, string>;
13
+ /**
14
+ * Sanitize a tag map: lowercase keys, charset, limits, size budget.
15
+ * Invalid entries are dropped (never throws).
16
+ */
17
+ export declare function normalizeTags(tags: Record<string, unknown> | null | undefined): TagMap;
18
+ /** Merge tag maps left-to-right; later keys win. Result is normalized. */
19
+ export declare function mergeTags(...parts: Array<TagMap | undefined | null>): TagMap;
20
+ export declare function looksHighCardinalityValue(value: string): boolean;
21
+ /**
22
+ * Warn in non-production when tags look high-cardinality.
23
+ * No-op when `environment` is production or warnings are disabled.
24
+ */
25
+ export declare function warnSuspiciousTags(tags: TagMap, environment: string | undefined): void;
26
+ /** Reserved / preferred facet keys (conventions, not a closed enum). */
27
+ export declare const RESERVED_TAG_KEYS: readonly ["service", "platform", "feature", "operation", "component", "runtime", "runtime_version"];
28
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/utils/tags.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAI7C,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,aAapC,CAAC;AAOH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAyB5C;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,CAuBR;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAO5E;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,IAAI,CAqBN;AAED,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,qGAQpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newtalaria/browser",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
4
4
  "description": "Talaria browser SDK — error capture and session replay (rrweb)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",