@molecule/app-analytics-mixpanel 1.0.3 → 1.0.6

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
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-10-16T23:32:44.808Z
6
+ Generated: 2026-11-08T06:03:30.209Z
7
7
  -->
8
8
 
9
9
  # @molecule/app-analytics-mixpanel
@@ -138,18 +138,21 @@ interface AnalyticsProvider {
138
138
  * @param user - User properties including userId and optional traits.
139
139
  */
140
140
  identify(user: AnalyticsUserProps): Promise<void>
141
+
141
142
  /**
142
143
  * Tracks a named event with optional properties.
143
144
  *
144
145
  * @param event - The event name and properties to track.
145
146
  */
146
147
  track(event: AnalyticsEvent): Promise<void>
148
+
147
149
  /**
148
150
  * Records a page view.
149
151
  *
150
152
  * @param pageView - Page view details (name, path, properties).
151
153
  */
152
154
  page(pageView: AnalyticsPageView): Promise<void>
155
+
153
156
  /**
154
157
  * Associates a user with a group (e.g. company, team).
155
158
  *
@@ -157,10 +160,12 @@ interface AnalyticsProvider {
157
160
  * @param traits - Arbitrary traits to associate with the group.
158
161
  */
159
162
  group?(groupId: string, traits?: Record<string, unknown>): Promise<void>
163
+
160
164
  /**
161
165
  * Resets the current user identity and generates a new anonymous ID.
162
166
  */
163
167
  reset?(): Promise<void>
168
+
164
169
  /**
165
170
  * Flushes any queued events to the analytics service immediately.
166
171
  */
@@ -184,6 +189,11 @@ VITE_MIXPANEL_TOKEN and returns a no-op provider, so bonding the lazy
184
189
  `provider` export without configuration degrades gracefully instead of
185
190
  becoming a silent event black hole.
186
191
 
192
+ SDK-added location/referrer properties are scrubbed at `before_send_events`,
193
+ `before_send_people` and `before_send_groups`. Skip-hooks identify/alias tuples are captured
194
+ at `on_track`; ordinary events walk only at their final event hook. Hooks are composed AFTER
195
+ init so a pre-initialized singleton keeps its existing hooks and the scrubber always runs last.
196
+
187
197
  ```typescript
188
198
  function createProvider(options?: MixpanelOptions): AnalyticsProvider
189
199
  ```
@@ -232,7 +242,7 @@ if (token) {
232
242
 
233
243
  Peer dependencies:
234
244
 
235
- - `@molecule/app-analytics` ^1.0.1
245
+ - `@molecule/app-analytics` ^1.1.1
236
246
 
237
247
  ### Environment Variables
238
248
 
@@ -20,6 +20,11 @@ import type { MixpanelOptions } from './types.js';
20
20
  * `provider` export without configuration degrades gracefully instead of
21
21
  * becoming a silent event black hole.
22
22
  *
23
+ * SDK-added location/referrer properties are scrubbed at `before_send_events`,
24
+ * `before_send_people` and `before_send_groups`. Skip-hooks identify/alias tuples are captured
25
+ * at `on_track`; ordinary events walk only at their final event hook. Hooks are composed AFTER
26
+ * init so a pre-initialized singleton keeps its existing hooks and the scrubber always runs last.
27
+ *
23
28
  * @param options - Mixpanel configuration including `token` and optional `debug` flag.
24
29
  * @returns An `AnalyticsProvider` backed by the Mixpanel browser SDK.
25
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAGV,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,eAAe,KAAG,iBAmE1D,CAAA;AAID,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,EAAE,iBAUrB,CAAA"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAGV,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AA6HjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,eAAe,KAAG,iBAgF1D,CAAA;AAID,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,EAAE,iBAUrB,CAAA"}
package/dist/provider.js CHANGED
@@ -6,6 +6,106 @@
6
6
  * @module
7
7
  */
8
8
  import mixpanel from 'mixpanel-browser';
9
+ import { snapshotAnalyticsSdkUrls } from '@molecule/app-analytics';
10
+ /** One inert final capture shared by event, person and group transport hooks. */
11
+ const scrubSdkPayload = (payload) => snapshotAnalyticsSdkUrls(payload);
12
+ /** The SDK accepts ordered hook arrays at runtime; append without duplicating on HMR/re-bonding. */
13
+ const appendHook = (configured, hook) => {
14
+ const previous = Array.isArray(configured) ? configured : configured ? [configured] : [];
15
+ return [...previous.filter((candidate) => candidate !== hook), hook];
16
+ };
17
+ const TRACK_HOOK_HISTORY = Symbol('molecule.mixpanelTrackHookHistory');
18
+ const REPLAY_FETCH_CAPTURE = Symbol.for('@molecule/app-analytics-mixpanel/replay-fetch-capture');
19
+ /** Identify only this Mixpanel instance's replay endpoint, never an application's /record route. */
20
+ const isReplayRequest = (input) => {
21
+ const raw = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
22
+ try {
23
+ const url = new URL(raw);
24
+ const instance = mixpanel;
25
+ const host = instance.get_api_host?.('record') ?? mixpanel.get_config('api_host');
26
+ return url.origin === new URL(host).origin && /\/record\/?$/.test(url.pathname);
27
+ }
28
+ catch (_error) {
29
+ return false;
30
+ }
31
+ };
32
+ /** Capture each decoded metadata value while retaining SDK identifiers and safe URL components. */
33
+ const scrubReplayUrl = (input) => {
34
+ const raw = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
35
+ const url = new URL(raw);
36
+ const entries = [];
37
+ url.searchParams.forEach((value, name) => entries.push([name, value]));
38
+ for (const [name, value] of entries) {
39
+ const captured = snapshotAnalyticsSdkUrls(value);
40
+ if (captured !== value)
41
+ url.searchParams.set(name, captured);
42
+ }
43
+ return url.toString();
44
+ };
45
+ /** Scrub the recorder's JSON before fetch, including its optional gzip representation. */
46
+ const scrubReplayBody = async (body, gzip) => {
47
+ if (typeof body === 'string')
48
+ return snapshotAnalyticsSdkUrls(body);
49
+ if (!gzip || typeof Blob === 'undefined' || !(body instanceof Blob))
50
+ return body;
51
+ if (typeof DecompressionStream === 'undefined' || typeof CompressionStream === 'undefined') {
52
+ throw new Error('Mixpanel replay transport capture is unavailable');
53
+ }
54
+ const text = await new Response(body.stream().pipeThrough(new DecompressionStream('gzip'))).text();
55
+ const captured = snapshotAnalyticsSdkUrls(text);
56
+ if (captured === text)
57
+ return body;
58
+ const compressed = new Blob([captured]).stream().pipeThrough(new CompressionStream('gzip'));
59
+ return new Response(compressed).blob();
60
+ };
61
+ /** Session replay bypasses Mixpanel hooks; make fetch its final data-only capture point. */
62
+ const installReplayTransportCapture = () => {
63
+ if (typeof window === 'undefined' || typeof window.fetch !== 'function')
64
+ return;
65
+ const original = window.fetch;
66
+ if (original[REPLAY_FETCH_CAPTURE])
67
+ return;
68
+ const captured = function (input, init) {
69
+ if (!isReplayRequest(input))
70
+ return Reflect.apply(original, this, [input, init]);
71
+ const gzip = new URL(typeof input === 'string' ? input : input instanceof URL ? input.href : input.url).searchParams.get('format') === 'gzip';
72
+ return scrubReplayBody(init?.body, gzip).then((body) => Reflect.apply(original, this, [scrubReplayUrl(input), { ...init, body }]));
73
+ };
74
+ Object.defineProperty(captured, REPLAY_FETCH_CAPTURE, { value: true });
75
+ window.fetch = captured;
76
+ };
77
+ /**
78
+ * Preserve the original event name to recognize skip-hooks identify/alias events after app hooks.
79
+ * Ordinary events return their original property object and walk only in before_send_events.
80
+ */
81
+ const composeTrackHook = (configured) => {
82
+ const configuredHooks = Array.isArray(configured) ? configured : configured ? [configured] : [];
83
+ const previous = configuredHooks.flatMap((candidate) => candidate[TRACK_HOOK_HISTORY] ?? [candidate]);
84
+ const hook = (eventName, properties) => {
85
+ let name = eventName;
86
+ let currentProperties = properties;
87
+ for (const previousHook of previous) {
88
+ const result = previousHook(name, currentProperties);
89
+ if (result === null)
90
+ return null;
91
+ if (typeof result === 'string')
92
+ name = result;
93
+ else if (Array.isArray(result)) {
94
+ if (typeof result[0] === 'string')
95
+ name = result[0];
96
+ if (result.length > 1)
97
+ currentProperties = result[1];
98
+ }
99
+ }
100
+ if (eventName !== '$identify' && eventName !== '$create_alias') {
101
+ return [name, currentProperties];
102
+ }
103
+ const captured = scrubSdkPayload({ event: name, properties: currentProperties });
104
+ return [captured.event, captured.properties];
105
+ };
106
+ Object.defineProperty(hook, TRACK_HOOK_HISTORY, { value: previous });
107
+ return hook;
108
+ };
9
109
  /**
10
110
  * Creates a Mixpanel analytics provider using `mixpanel-browser`. Initializes the SDK
11
111
  * with the provided token and returns an `AnalyticsProvider` that maps molecule events to
@@ -19,6 +119,11 @@ import mixpanel from 'mixpanel-browser';
19
119
  * `provider` export without configuration degrades gracefully instead of
20
120
  * becoming a silent event black hole.
21
121
  *
122
+ * SDK-added location/referrer properties are scrubbed at `before_send_events`,
123
+ * `before_send_people` and `before_send_groups`. Skip-hooks identify/alias tuples are captured
124
+ * at `on_track`; ordinary events walk only at their final event hook. Hooks are composed AFTER
125
+ * init so a pre-initialized singleton keeps its existing hooks and the scrubber always runs last.
126
+ *
22
127
  * @param options - Mixpanel configuration including `token` and optional `debug` flag.
23
128
  * @returns An `AnalyticsProvider` backed by the Mixpanel browser SDK.
24
129
  */
@@ -45,6 +150,18 @@ export const createProvider = (options) => {
45
150
  debug: options?.debug ?? false,
46
151
  track_pageview: false, // We handle page views manually via auto-tracking
47
152
  });
153
+ const configuredHooks = mixpanel.get_config('hooks');
154
+ const hooks = {
155
+ ...configuredHooks,
156
+ before_send_events: appendHook(configuredHooks?.before_send_events, scrubSdkPayload),
157
+ before_send_people: appendHook(configuredHooks?.before_send_people, scrubSdkPayload),
158
+ before_send_groups: appendHook(configuredHooks?.before_send_groups, scrubSdkPayload),
159
+ on_track: composeTrackHook(configuredHooks?.on_track),
160
+ };
161
+ // mixpanel-browser 2.84.0 accepts hook arrays and before_send_people at runtime,
162
+ // although its published Config declaration omits both.
163
+ mixpanel.set_config({ hooks });
164
+ installReplayTransportCapture();
48
165
  return {
49
166
  async identify(user) {
50
167
  mixpanel.identify(user.userId);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/app-analytics-mixpanel",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
4
4
  "description": "Mixpanel analytics provider for molecule.dev frontend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,10 +30,10 @@
30
30
  "mixpanel-browser": "2.84.0"
31
31
  },
32
32
  "peerDependencies": {
33
- "@molecule/app-analytics": "^1.0.1"
33
+ "@molecule/app-analytics": "^1.1.1"
34
34
  },
35
35
  "devDependencies": {
36
- "@molecule/app-analytics": "1.0.3",
36
+ "@molecule/app-analytics": "1.1.3",
37
37
  "@types/node": "26.6.5",
38
38
  "typescript": "6.0.3",
39
39
  "vitest": "4.1.12"