@owlpane/browser 0.1.1 → 0.1.3

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 CHANGED
@@ -20,7 +20,9 @@ init({
20
20
 
21
21
  Script tag: `npm run build:iife -w @owlpane/browser` produces `dist/owlpane-browser.iife.js` (global `OwlpaneBrowser`). It uses `esbuild`, which is not a dependency of this package; it must be present in the workspace `node_modules`.
22
22
 
23
- `init()` never throws, is a no-op if called twice, and returns `{ sessionId, flush(), shutdown(), captureException(err) }`.
23
+ `init()` never throws, is a no-op if called twice, and returns `{ sessionId, flush(), shutdown(), captureException(err), setExperiment(id), setFeatureFlag(key) }`.
24
+
25
+ `setExperiment("checkout", "b")` stamps `owlpane.experiment.id` on spans that end afterwards (Experiments). `setFeatureFlag("new-nav", "on")` stamps `feature_flag.key` (Feature flags). A browser page is not a mobile app: this SDK does not set `os.name` to iOS or Android.
24
26
 
25
27
  ## What it captures
26
28
 
package/dist/index.d.ts CHANGED
@@ -26,6 +26,10 @@ export type OwlpaneBrowser = {
26
26
  flush(): Promise<void>;
27
27
  shutdown(): Promise<void>;
28
28
  captureException(error: unknown): void;
29
+ /** Stamps `owlpane.experiment.id` on spans that end after this call. */
30
+ setExperiment(id: string, variant?: string): void;
31
+ /** Stamps `feature_flag.key` on spans that end after this call. */
32
+ setFeatureFlag(key: string, variant?: string): void;
29
33
  };
30
34
  export declare const DEFAULT_ENDPOINT = "https://ingest.owlpane.com";
31
35
  /** Starts RUM collection. Safe to call once per page; never throws. */
package/dist/index.js CHANGED
@@ -8,7 +8,14 @@ import { VERSION, createTracer } from "./tracer.js";
8
8
  import { sanitizeUrl, urlPath } from "./url.js";
9
9
  export const DEFAULT_ENDPOINT = "https://ingest.owlpane.com";
10
10
  let active;
11
- const NOOP = { sessionId: "", flush: async () => undefined, shutdown: async () => undefined, captureException: () => undefined };
11
+ const NOOP = {
12
+ sessionId: "",
13
+ flush: async () => undefined,
14
+ shutdown: async () => undefined,
15
+ captureException: () => undefined,
16
+ setExperiment: () => undefined,
17
+ setFeatureFlag: () => undefined,
18
+ };
12
19
  function sessionIdFor(env, rand) {
13
20
  const K = "owlpane.sid";
14
21
  try {
@@ -51,6 +58,7 @@ export function init(options) {
51
58
  const originalFetch = env.fetch; // captured BEFORE patching: exports must not be instrumented
52
59
  const rand = env.randomBytes ?? defaultRandomBytes();
53
60
  const sessionId = sessionIdFor(env, rand);
61
+ const pageAttrs = {};
54
62
  const resource = {
55
63
  "service.name": opts.serviceName,
56
64
  "service.version": opts.release,
@@ -74,7 +82,7 @@ export function init(options) {
74
82
  const href = env.location?.href ?? "";
75
83
  return { url: sanitizeUrl(href, undefined, opts.keepQuery), path: urlPath(href, undefined) };
76
84
  };
77
- const tracer = createTracer(env, opts, (s) => exporter.enqueue(s), sessionId, pageUrl);
85
+ const tracer = createTracer(env, opts, (s) => exporter.enqueue(s), sessionId, pageUrl, pageAttrs);
78
86
  const isOwnUrl = (abs) => abs.startsWith(opts.endpoint + "/") || abs === opts.endpoint;
79
87
  // One trace per page view: 'documentLoad' is its root; vitals and errors hang off it.
80
88
  const page = tracer.start("documentLoad", 1, { traceId: newTraceId(rand), startMs: env.performance?.timeOrigin ?? env.now() });
@@ -110,6 +118,22 @@ export function init(options) {
110
118
  sessionId,
111
119
  flush: () => exporter.flush(),
112
120
  captureException: (e) => report(e, "manual"),
121
+ setExperiment(id, variant) {
122
+ const key = id.trim();
123
+ if (!key)
124
+ return;
125
+ pageAttrs["owlpane.experiment.id"] = key;
126
+ if (variant?.trim())
127
+ pageAttrs["owlpane.experiment.variant"] = variant.trim();
128
+ },
129
+ setFeatureFlag(key, variant) {
130
+ const name = key.trim();
131
+ if (!name)
132
+ return;
133
+ pageAttrs["feature_flag.key"] = name;
134
+ if (variant?.trim())
135
+ pageAttrs["feature_flag.result.variant"] = variant.trim();
136
+ },
113
137
  async shutdown() {
114
138
  stopDomReplay?.();
115
139
  undo.forEach((u) => u());
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.0" };
2
+ const REPLAY_SCOPE = { name: "@owlpane/browser-replay", version: "0.1.3" };
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({
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.0";
4
+ export declare const VERSION = "0.1.3";
5
5
  export type ResolvedOptions = {
6
6
  endpoint: string;
7
7
  projectKey: string;
@@ -29,7 +29,7 @@ export type Tracer = ReturnType<typeof createTracer>;
29
29
  export declare function createTracer(env: Env, opts: ResolvedOptions, emit: (s: SpanData) => void, sessionId: string, pageUrl: () => {
30
30
  url: string;
31
31
  path: string;
32
- }): {
32
+ }, pageAttrs?: Attrs): {
33
33
  start: (name: string, kind: 1 | 3, o?: {
34
34
  traceId?: string;
35
35
  parentSpanId?: string;
package/dist/tracer.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defaultRandomBytes, newSpanId, newTraceId } from "./ids.js";
2
- export const VERSION = "0.1.0";
3
- export function createTracer(env, opts, emit, sessionId, pageUrl) {
2
+ export const VERSION = "0.1.3";
3
+ export function createTracer(env, opts, emit, sessionId, pageUrl, pageAttrs = {}) {
4
4
  const rand = env.randomBytes ?? defaultRandomBytes();
5
5
  const nav = env.navigator;
6
6
  function common() {
@@ -14,6 +14,7 @@ export function createTracer(env, opts, emit, sessionId, pageUrl) {
14
14
  "browser.language": nav?.language,
15
15
  "browser.platform": nav?.userAgentData?.platform ?? nav?.platform,
16
16
  "browser.mobile": nav?.userAgentData?.mobile,
17
+ ...pageAttrs,
17
18
  };
18
19
  }
19
20
  function sample() {
@@ -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;IACxJ,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;SAC7C,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,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlpane/browser",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
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": {
@@ -9,7 +9,8 @@
9
9
  "directory": "packages/browser"
10
10
  },
11
11
  "publishConfig": {
12
- "access": "public"
12
+ "access": "public",
13
+ "registry": "https://registry.npmjs.org"
13
14
  },
14
15
  "type": "module",
15
16
  "main": "dist/index.js",