@owlpane/browser 0.1.9 → 0.1.10

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.
@@ -8,6 +8,19 @@ export type DomReplayOptions = {
8
8
  fetch: LogFetchLike | undefined;
9
9
  /** Max rrweb events buffered before flush (default 8). */
10
10
  batchSize?: number;
11
+ /** Mask all text nodes (default true), so names, emails and tokens on screen are not recorded. */
12
+ maskAllText?: boolean;
13
+ /** Extra CSS selector whose text is masked even when maskAllText is false. */
14
+ maskTextSelector?: string;
15
+ /** CSS selector of elements that are not recorded at all (replaced by a placeholder). */
16
+ blockSelector?: string;
17
+ };
18
+ /** rrweb takes one selector for masked text; "*" masks every element. */
19
+ export declare function replayMaskOptions(opts: Pick<DomReplayOptions, "maskAllText" | "maskTextSelector" | "blockSelector">): {
20
+ maskAllInputs: true;
21
+ blockClass: string;
22
+ maskTextSelector?: string;
23
+ blockSelector?: string;
11
24
  };
12
25
  /** Starts rrweb recording and ships events as OTLP logs. Returns stop handle. */
13
26
  export declare function startDomReplay(opts: DomReplayOptions): () => void;
@@ -1,4 +1,14 @@
1
1
  import { buildLogsRequestBody, postLogs } from "./log-otlp.js";
2
+ /** rrweb takes one selector for masked text; "*" masks every element. */
3
+ export function replayMaskOptions(opts) {
4
+ const mask = opts.maskAllText === false ? opts.maskTextSelector : "*";
5
+ return {
6
+ maskAllInputs: true,
7
+ blockClass: "owlpane-replay-block",
8
+ ...(mask ? { maskTextSelector: mask } : {}),
9
+ ...(opts.blockSelector ? { blockSelector: opts.blockSelector } : {}),
10
+ };
11
+ }
2
12
  /** Starts rrweb recording and ships events as OTLP logs. Returns stop handle. */
3
13
  export function startDomReplay(opts) {
4
14
  let seq = 0;
@@ -28,8 +38,7 @@ export function startDomReplay(opts) {
28
38
  if (buffer.length >= (opts.batchSize ?? 8))
29
39
  void flush();
30
40
  },
31
- maskAllInputs: true,
32
- blockClass: "owlpane-replay-block",
41
+ ...replayMaskOptions(opts),
33
42
  });
34
43
  });
35
44
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"dom-replay.js","sourceRoot":"","sources":["../src/dom-replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAelF,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAiB,EAAE,CAAC;IAC9B,IAAI,UAAoC,CAAC;IAEzC,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,EAAE,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,UAAU,EAAE;gBACV,qBAAqB,EAAE,OAAO;gBAC9B,2BAA2B,EAAE,IAAI,CAAC,SAAS;gBAC3C,oBAAoB,EAAE,GAAG,EAAE;aAC5B;SACF,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,UAAU,GAAG,MAAM,CAAC;YAClB,IAAI,CAAC,KAAK;gBACR,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;oBAAE,KAAK,KAAK,EAAE,CAAC;YAC3D,CAAC;YACD,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,sBAAsB;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE;QACV,UAAU,EAAE,EAAE,CAAC;QACf,KAAK,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dom-replay.js","sourceRoot":"","sources":["../src/dom-replay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAqB,MAAM,eAAe,CAAC;AAqBlF,yEAAyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,IAAkF;IAMlH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IACtE,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,sBAAsB;QAClC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAsB;IACnD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAiB,EAAE,CAAC;IAC9B,IAAI,UAAoC,CAAC;IAEzC,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,EAAE,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,UAAU,EAAE;gBACV,qBAAqB,EAAE,OAAO;gBAC9B,2BAA2B,EAAE,IAAI,CAAC,SAAS;gBAC3C,oBAAoB,EAAE,GAAG,EAAE;aAC5B;SACF,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,UAAU,GAAG,MAAM,CAAC;YAClB,IAAI,CAAC,KAAK;gBACR,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;oBAAE,KAAK,KAAK,EAAE,CAAC;YAC3D,CAAC;YACD,GAAG,iBAAiB,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,EAAE;QACV,UAAU,EAAE,EAAE,CAAC;QACf,KAAK,KAAK,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** An ingest key may only travel over https, or over http to the local machine (development). */
2
+ export declare function isKeySafeEndpoint(endpoint: string): boolean;
@@ -0,0 +1,13 @@
1
+ /** An ingest key may only travel over https, or over http to the local machine (development). */
2
+ export function isKeySafeEndpoint(endpoint) {
3
+ try {
4
+ const u = new URL(endpoint);
5
+ if (u.protocol === "https:")
6
+ return true;
7
+ return u.protocol === "http:" && (u.hostname === "localhost" || u.hostname === "127.0.0.1" || u.hostname === "[::1]" || u.hostname.endsWith(".localhost"));
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ //# sourceMappingURL=endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7J,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
package/dist/env.d.ts CHANGED
@@ -24,6 +24,8 @@ export type Env = {
24
24
  mobile?: boolean;
25
25
  platform?: string;
26
26
  };
27
+ doNotTrack?: string | null;
28
+ globalPrivacyControl?: boolean;
27
29
  };
28
30
  performance?: {
29
31
  timeOrigin?: number;
@@ -33,6 +35,7 @@ export type Env = {
33
35
  storage?: {
34
36
  getItem(k: string): string | null;
35
37
  setItem(k: string, v: string): void;
38
+ removeItem?(k: string): void;
36
39
  };
37
40
  setTimeout?: (fn: () => void, ms: number) => unknown;
38
41
  clearTimeout?: (h: unknown) => void;
package/dist/index.d.ts CHANGED
@@ -21,6 +21,21 @@ export type OwlpaneBrowserOptions = {
21
21
  env?: Env;
22
22
  /** Record rrweb DOM to OTLP logs (requires server OWLPANE_DOM_REPLAY_ENABLED). */
23
23
  recordDomReplay?: boolean;
24
+ /** Replay masking. Text nodes are masked by default; inputs are always masked. */
25
+ replay?: {
26
+ maskAllText?: boolean;
27
+ maskTextSelector?: string;
28
+ blockSelector?: string;
29
+ };
30
+ /** Extra redaction for exception text, run after the built-in one (emails, bearer tokens, JWTs, keys, card numbers). */
31
+ scrub?: (text: string) => string;
32
+ /**
33
+ * 'pending' collects nothing and stores no session id until `setConsent(true)`. Default 'granted' (collect at init),
34
+ * so call sites that already gate `init()` on their own consent banner keep working.
35
+ */
36
+ consent?: "granted" | "pending";
37
+ /** Collect nothing while the browser sends Global Privacy Control or Do Not Track (until `setConsent(true)`). Default false. */
38
+ respectDnt?: boolean;
24
39
  };
25
40
  export type OwlpaneBrowser = {
26
41
  sessionId: string;
@@ -41,6 +56,11 @@ export type OwlpaneBrowser = {
41
56
  export declare const DEFAULT_ENDPOINT = "https://ingest.owlpane.com";
42
57
  /** Starts RUM collection. Safe to call once per page; never throws. */
43
58
  export declare function init(options: OwlpaneBrowserOptions): OwlpaneBrowser;
59
+ /**
60
+ * Grants or withdraws consent. Granting starts collection if `init()` was held back by `consent: "pending"` or
61
+ * `respectDnt`; withdrawing stops it and forgets the stored session id.
62
+ */
63
+ export declare function setConsent(granted: boolean): OwlpaneBrowser;
44
64
  export { newSpanId, newTraceId };
45
65
  export { formatTraceparent, parseTraceparent } from "./ids.js";
46
66
  export { sanitizeUrl, shouldPropagate } from "./url.js";
package/dist/index.js CHANGED
@@ -6,9 +6,13 @@ import { instrumentFetch, instrumentXhr } from "./instrument-http.js";
6
6
  import { captureDocumentLoad, captureErrors, captureVitals, createErrorReporter } from "./observers.js";
7
7
  import { startDomReplay } from "./dom-replay.js";
8
8
  import { VERSION, createTracer } from "./tracer.js";
9
+ import { makeScrubber } from "./scrub.js";
10
+ import { isKeySafeEndpoint } from "./endpoint.js";
9
11
  import { sanitizeUrl, urlPath } from "./url.js";
10
12
  export const DEFAULT_ENDPOINT = "https://ingest.owlpane.com";
11
13
  let active;
14
+ let lastOptions;
15
+ let lastEnv;
12
16
  const NOOP = {
13
17
  sessionId: "",
14
18
  flush: async () => undefined,
@@ -45,6 +49,21 @@ export function init(options) {
45
49
  const env = options.env ?? browserEnv();
46
50
  if (!options.projectKey || !options.serviceName)
47
51
  return NOOP;
52
+ lastOptions = options;
53
+ lastEnv = env;
54
+ // The ingest key is a bearer credential: never send it over cleartext to a non-loopback host.
55
+ if (!isKeySafeEndpoint(options.endpoint || DEFAULT_ENDPOINT)) {
56
+ try {
57
+ env.global.console?.warn?.("[owlpane] endpoint must use https (or http on localhost); telemetry is disabled.");
58
+ }
59
+ catch {
60
+ /* ignore */
61
+ }
62
+ return NOOP;
63
+ }
64
+ const nav = env.navigator;
65
+ if (options.consent === "pending" || (options.respectDnt && (nav?.globalPrivacyControl === true || nav?.doNotTrack === "1")))
66
+ return NOOP;
48
67
  const opts = {
49
68
  endpoint: (options.endpoint || DEFAULT_ENDPOINT).replace(/\/+$/, ""),
50
69
  projectKey: options.projectKey,
@@ -55,6 +74,7 @@ export function init(options) {
55
74
  propagateTraceTo: options.propagateTraceTo ?? [],
56
75
  keepQuery: options.keepQuery ?? false,
57
76
  maxErrorsPerPage: options.maxErrorsPerPage ?? 20,
77
+ scrub: makeScrubber(options.scrub),
58
78
  };
59
79
  const tracesUrl = `${opts.endpoint}/v1/traces`;
60
80
  const originalFetch = env.fetch; // captured BEFORE patching: exports must not be instrumented
@@ -114,6 +134,7 @@ export function init(options) {
114
134
  sessionId,
115
135
  resource,
116
136
  fetch: originalFetch,
137
+ ...options.replay,
117
138
  });
118
139
  }
119
140
  active = {
@@ -162,6 +183,31 @@ export function init(options) {
162
183
  return NOOP;
163
184
  }
164
185
  }
186
+ /**
187
+ * Grants or withdraws consent. Granting starts collection if `init()` was held back by `consent: "pending"` or
188
+ * `respectDnt`; withdrawing stops it and forgets the stored session id.
189
+ */
190
+ export function setConsent(granted) {
191
+ try {
192
+ if (granted) {
193
+ if (active)
194
+ return active;
195
+ return lastOptions ? init({ ...lastOptions, consent: "granted", respectDnt: false, env: lastEnv }) : NOOP;
196
+ }
197
+ const a = active;
198
+ void a?.shutdown();
199
+ try {
200
+ lastEnv?.storage?.removeItem?.("owlpane.sid");
201
+ }
202
+ catch {
203
+ /* storage may throw (privacy mode) */
204
+ }
205
+ return NOOP;
206
+ }
207
+ catch {
208
+ return NOOP;
209
+ }
210
+ }
165
211
  export { newSpanId, newTraceId };
166
212
  export { formatTraceparent, parseTraceparent } from "./ids.js";
167
213
  export { sanitizeUrl, shouldPropagate } from "./url.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/log-otlp.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { encodeAttrs, unixNano } from "./otlp.js";
2
- const REPLAY_SCOPE = { name: "@owlpane/browser-replay", version: "0.1.9" };
2
+ const REPLAY_SCOPE = { name: "@owlpane/browser-replay", version: "0.1.10" };
3
3
  export function buildLogsRequestBody(resourceAttrs, records) {
4
4
  const resource = JSON.stringify({ attributes: encodeAttrs(resourceAttrs) });
5
5
  const logs = records.map((r) => JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"log-otlp.js","sourceRoot":"","sources":["../src/log-otlp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAE3E,MAAM,UAAU,oBAAoB,CAClC,aAAoB,EACpB,OAAmE;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;QAC7B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;KACtC,CAAC,CACH,CAAC;IACF,OAAO,gCAAgC,QAAQ,0BAA0B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChJ,CAAC;AASD,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,UAAkB,EAClB,IAAY,EACZ,OAAiC;IAEjC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE;YACtF,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"log-otlp.js","sourceRoot":"","sources":["../src/log-otlp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAE5E,MAAM,UAAU,oBAAoB,CAClC,aAAoB,EACpB,OAAmE;IAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;QACb,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;QAC7B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;KACtC,CAAC,CACH,CAAC;IACF,OAAO,gCAAgC,QAAQ,0BAA0B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChJ,CAAC;AASD,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,UAAkB,EAClB,IAAY,EACZ,OAAiC;IAEjC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE;YACtF,IAAI;YACJ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC"}
package/dist/observers.js CHANGED
@@ -135,7 +135,9 @@ export function createErrorReporter(c) {
135
135
  if (count >= c.opts.maxErrorsPerPage)
136
136
  return;
137
137
  count++;
138
- const info = errorInfo(error);
138
+ const raw = errorInfo(error);
139
+ // Bound the work before scrubbing: the exported fields are cut to 2000 / 8000 chars anyway.
140
+ const info = { ...raw, message: c.opts.scrub(raw.message.slice(0, 4000)), stack: raw.stack === undefined ? undefined : c.opts.scrub(raw.stack.slice(0, 16000)) };
139
141
  const now = c.env.now();
140
142
  const s = c.tracer.start("exception", 1, {
141
143
  traceId: c.page.traceId,
@@ -1 +1 @@
1
- {"version":3,"file":"observers.js","sourceRoot":"","sources":["../src/observers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observers.js","sourceRoot":"","sources":["../src/observers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Built-in redaction for free text that leaves the page (exception messages, stacks, rejection reasons). */
2
+ /** Removes emails, bearer tokens, JWTs, Owlpane keys and card-like numbers. */
3
+ export declare function scrubText(text: string): string;
4
+ export declare function makeScrubber(custom?: (text: string) => string): (text: string) => string;
package/dist/scrub.js ADDED
@@ -0,0 +1,43 @@
1
+ /** Built-in redaction for free text that leaves the page (exception messages, stacks, rejection reasons). */
2
+ const luhn = (digits) => {
3
+ let sum = 0;
4
+ let alt = false;
5
+ for (let i = digits.length - 1; i >= 0; i--) {
6
+ let n = digits.charCodeAt(i) - 48;
7
+ if (alt) {
8
+ n *= 2;
9
+ if (n > 9)
10
+ n -= 9;
11
+ }
12
+ sum += n;
13
+ alt = !alt;
14
+ }
15
+ return sum % 10 === 0;
16
+ };
17
+ /** Removes emails, bearer tokens, JWTs, Owlpane keys and card-like numbers. */
18
+ export function scrubText(text) {
19
+ return text
20
+ .replace(/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g, "[email]")
21
+ .replace(/\bBearer\s+[A-Za-z0-9._~+/=-]{8,}/gi, "Bearer [redacted]")
22
+ .replace(/\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]*/g, "[jwt]")
23
+ .replace(/\bowl_(?:ing|pat)_[A-Za-z0-9]{8,}/g, "[key]")
24
+ .replace(/\b(?:\d[ -]?){13,19}\b/g, (m) => {
25
+ const digits = m.replace(/[ -]/g, "");
26
+ return digits.length >= 13 && digits.length <= 19 && luhn(digits) ? "[card]" : m;
27
+ });
28
+ }
29
+ export function makeScrubber(custom) {
30
+ return (text) => {
31
+ let out = scrubText(text);
32
+ if (custom) {
33
+ try {
34
+ out = custom(out);
35
+ }
36
+ catch {
37
+ /* a broken hook must not leak the unscrubbed text or throw into the page */
38
+ }
39
+ }
40
+ return out;
41
+ };
42
+ }
43
+ //# sourceMappingURL=scrub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrub.js","sourceRoot":"","sources":["../src/scrub.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAE7G,MAAM,IAAI,GAAG,CAAC,MAAc,EAAW,EAAE;IACvC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,GAAG,EAAE,CAAC;YACR,CAAC,IAAI,CAAC,CAAC;YACP,IAAI,CAAC,GAAG,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;QACT,GAAG,GAAG,CAAC,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,OAAO,CAAC,iDAAiD,EAAE,SAAS,CAAC;SACrE,OAAO,CAAC,qCAAqC,EAAE,mBAAmB,CAAC;SACnE,OAAO,CAAC,4DAA4D,EAAE,OAAO,CAAC;SAC9E,OAAO,CAAC,oCAAoC,EAAE,OAAO,CAAC;SACtD,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAiC;IAC5D,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
package/dist/tracer.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { Env } from "./env.js";
2
2
  import { RandomBytes } from "./ids.js";
3
3
  import type { Attrs, SpanData, SpanEvent } from "./otlp.js";
4
- export declare const VERSION = "0.1.9";
4
+ export declare const VERSION = "0.1.10";
5
5
  export type ResolvedOptions = {
6
6
  endpoint: string;
7
7
  projectKey: string;
@@ -12,6 +12,8 @@ export type ResolvedOptions = {
12
12
  propagateTraceTo: (string | RegExp)[];
13
13
  keepQuery: boolean;
14
14
  maxErrorsPerPage: number;
15
+ /** Redacts free text (exception messages, stacks) before export. */
16
+ scrub: (text: string) => string;
15
17
  };
16
18
  export type ActiveSpan = {
17
19
  traceId: string;
package/dist/tracer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defaultRandomBytes, newSpanId, newTraceId } from "./ids.js";
2
- export const VERSION = "0.1.9";
2
+ export const VERSION = "0.1.10";
3
3
  export function createTracer(env, opts, emit, sessionId, pageUrl, pageAttrs = {}) {
4
4
  const rand = env.randomBytes ?? defaultRandomBytes();
5
5
  const nav = env.navigator;
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGlF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAwB/B,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,IAAqB,EAAE,IAA2B,EAAE,SAAiB,EAAE,OAA4C,EAAE,YAAmB,EAAE;IAC/K,MAAM,IAAI,GAAgB,GAAG,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;IAE1B,SAAS,MAAM;QACb,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,CAAC,CAAC,GAAG;YACzB,mBAAmB,EAAE,CAAC,CAAC,IAAI;YAC3B,qBAAqB,EAAE,GAAG,EAAE,SAAS;YACrC,kBAAkB,EAAE,GAAG,EAAE,QAAQ;YACjC,kBAAkB,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ;YACjE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM;YAC5C,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAED,SAAS,MAAM;QACb,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IACrG,CAAC;IAED,SAAS,KAAK,CAAC,IAAY,EAAE,IAAW,EAAE,IAA0G,EAAE;QACpJ,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO;YACL,OAAO;YACP,MAAM;YACN,OAAO;YACP,GAAG,CAAC,CAAC,GAAG,EAAE;gBACR,IAAI,IAAI;oBAAE,OAAO;gBACjB,IAAI,GAAG,IAAI,CAAC;gBACZ,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,IAAI,CAAC;oBACH,IAAI,CAAC;wBACH,OAAO;wBACP,MAAM;wBACN,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,IAAI;wBACJ,IAAI;wBACJ,OAAO;wBACP,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE;wBAC3B,UAAU,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE;wBAC3D,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/G,CAAC"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGlF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AA0BhC,MAAM,UAAU,YAAY,CAAC,GAAQ,EAAE,IAAqB,EAAE,IAA2B,EAAE,SAAiB,EAAE,OAA4C,EAAE,YAAmB,EAAE;IAC/K,MAAM,IAAI,GAAgB,GAAG,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;IAE1B,SAAS,MAAM;QACb,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,CAAC,CAAC,GAAG;YACzB,mBAAmB,EAAE,CAAC,CAAC,IAAI;YAC3B,qBAAqB,EAAE,GAAG,EAAE,SAAS;YACrC,kBAAkB,EAAE,GAAG,EAAE,QAAQ;YACjC,kBAAkB,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,IAAI,GAAG,EAAE,QAAQ;YACjE,gBAAgB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM;YAC5C,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAED,SAAS,MAAM;QACb,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IACrG,CAAC;IAED,SAAS,KAAK,CAAC,IAAY,EAAE,IAAW,EAAE,IAA0G,EAAE;QACpJ,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO;YACL,OAAO;YACP,MAAM;YACN,OAAO;YACP,GAAG,CAAC,CAAC,GAAG,EAAE;gBACR,IAAI,IAAI;oBAAE,OAAO;gBACjB,IAAI,GAAG,IAAI,CAAC;gBACZ,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,IAAI,CAAC;oBACH,IAAI,CAAC;wBACH,OAAO;wBACP,MAAM;wBACN,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,IAAI;wBACJ,IAAI;wBACJ,OAAO;wBACP,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE;wBAC3B,UAAU,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE;wBAC3D,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/G,CAAC"}
package/dist/url.js CHANGED
@@ -34,6 +34,18 @@ export function urlOrigin(raw, base) {
34
34
  return null;
35
35
  }
36
36
  }
37
+ /** An origin-only entry ("https://api.example.com") matches by origin, so "https://api.example.com.evil.io" does not; other strings are prefixes. */
38
+ function matchesEntry(abs, entry) {
39
+ if (/^https?:\/\/[^/?#]+\/?$/i.test(entry)) {
40
+ try {
41
+ return new URL(abs).origin === new URL(entry).origin;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ return abs.startsWith(entry);
48
+ }
37
49
  /**
38
50
  * Decides whether a request URL may receive a traceparent header.
39
51
  * Same-origin is always allowed. String entries match as a prefix of the absolute URL
@@ -54,7 +66,7 @@ export function shouldPropagate(raw, base, allow = []) {
54
66
  }
55
67
  for (const e of allow) {
56
68
  if (typeof e === "string") {
57
- if (abs.startsWith(e))
69
+ if (matchesEntry(abs, e))
58
70
  return true;
59
71
  }
60
72
  else {
package/dist/url.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,IAAwB,EAAE,SAAS,GAAG,KAAK;IAClF,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;YACd,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,IAAwB;IAC3D,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,IAAwB;IAC7D,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;QACpC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,IAAwB,EAAE,QAA+B,EAAE;IACtG,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlpane/browser",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Owlpane real-user-monitoring SDK for browsers: page load, Web Vitals, JS errors, fetch/XHR spans, optional rrweb DOM replay, and W3C trace propagation over OTLP/HTTP JSON.",
5
5
  "license": "MIT",
6
6
  "repository": {