mixpanel-browser 2.75.0 → 2.76.0

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.
Files changed (57) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/.github/workflows/integration-tests.yml +2 -2
  3. package/.github/workflows/unit-tests.yml +2 -2
  4. package/CHANGELOG.md +10 -0
  5. package/build.sh +10 -8
  6. package/dist/async-modules/mixpanel-recorder-bIS4LMGd.js +23595 -0
  7. package/dist/async-modules/mixpanel-recorder-hFoTniVR.min.js +2 -0
  8. package/dist/async-modules/mixpanel-recorder-hFoTniVR.min.js.map +1 -0
  9. package/dist/async-modules/mixpanel-targeting-BcAPS-Mz.js +2520 -0
  10. package/dist/async-modules/mixpanel-targeting-VOeN7RWY.min.js +2 -0
  11. package/dist/async-modules/mixpanel-targeting-VOeN7RWY.min.js.map +1 -0
  12. package/dist/mixpanel-core.cjs.d.ts +68 -0
  13. package/dist/mixpanel-core.cjs.js +550 -383
  14. package/dist/mixpanel-recorder.js +708 -32
  15. package/dist/mixpanel-recorder.min.js +1 -1
  16. package/dist/mixpanel-recorder.min.js.map +1 -1
  17. package/dist/mixpanel-targeting.js +6 -62
  18. package/dist/mixpanel-targeting.min.js +1 -1
  19. package/dist/mixpanel-targeting.min.js.map +1 -1
  20. package/dist/mixpanel-with-async-modules.cjs.d.ts +68 -0
  21. package/dist/mixpanel-with-async-modules.cjs.js +550 -383
  22. package/dist/mixpanel-with-async-recorder.cjs.d.ts +68 -0
  23. package/dist/mixpanel-with-async-recorder.cjs.js +550 -383
  24. package/dist/mixpanel-with-recorder.d.ts +68 -0
  25. package/dist/mixpanel-with-recorder.js +1036 -197
  26. package/dist/mixpanel-with-recorder.min.d.ts +68 -0
  27. package/dist/mixpanel-with-recorder.min.js +1 -1
  28. package/dist/mixpanel.amd.d.ts +68 -0
  29. package/dist/mixpanel.amd.js +1038 -251
  30. package/dist/mixpanel.cjs.d.ts +68 -0
  31. package/dist/mixpanel.cjs.js +1038 -251
  32. package/dist/mixpanel.globals.js +550 -383
  33. package/dist/mixpanel.min.js +184 -181
  34. package/dist/mixpanel.module.d.ts +68 -0
  35. package/dist/mixpanel.module.js +1038 -251
  36. package/dist/mixpanel.umd.d.ts +68 -0
  37. package/dist/mixpanel.umd.js +1038 -251
  38. package/logo.svg +5 -0
  39. package/package.json +2 -1
  40. package/rollup.config.mjs +163 -46
  41. package/src/autocapture/index.js +10 -27
  42. package/src/config.js +9 -3
  43. package/src/flags/index.js +1 -2
  44. package/src/index.d.ts +68 -0
  45. package/src/mixpanel-core.js +76 -111
  46. package/src/recorder/index.js +1 -1
  47. package/src/recorder/recorder.js +5 -1
  48. package/src/recorder/rrweb-network-plugin.js +649 -0
  49. package/src/recorder/session-recording.js +31 -11
  50. package/src/recorder-manager.js +216 -0
  51. package/src/request-batcher.js +1 -1
  52. package/src/targeting/event-matcher.js +2 -57
  53. package/src/targeting/index.js +1 -1
  54. package/src/targeting/loader.js +1 -1
  55. package/src/utils.js +13 -1
  56. package/testServer.js +55 -0
  57. package/src/globals.js +0 -14
@@ -1,3 +1,5 @@
1
+ import type { RulesLogic } from 'json-logic-js';
2
+
1
3
  export type Persistence = "cookie" | "localStorage";
2
4
 
3
5
  export type ApiPayloadFormat = "base64" | "json";
@@ -8,6 +10,16 @@ export type Query = string | Element | Element[];
8
10
 
9
11
  export type RemoteSettingType = "disabled" | "fallback" | "strict";
10
12
 
13
+
14
+ export interface EventTriggerProps {
15
+ percentage: number;
16
+ property_filters?: RulesLogic;
17
+ }
18
+
19
+ export interface RecordingEventTriggers {
20
+ [eventName: string]: EventTriggerProps;
21
+ }
22
+
11
23
  export interface Dict {
12
24
  [key: string]: any;
13
25
  }
@@ -225,6 +237,9 @@ export interface Config {
225
237
  recorder_src: string;
226
238
  record_block_class: string | RegExp;
227
239
  record_block_selector: string;
240
+ record_console: boolean;
241
+ record_network: boolean;
242
+ record_network_options: NetworkRecordOptions;
228
243
  record_collect_fonts: boolean;
229
244
  record_idle_timeout_ms: number;
230
245
  record_inline_images: boolean;
@@ -239,6 +254,7 @@ export interface Config {
239
254
  record_max_ms: number;
240
255
  record_sessions_percent: number;
241
256
  record_canvas: boolean;
257
+ recording_event_triggers: RecordingEventTriggers;
242
258
  record_heatmap_data: boolean;
243
259
  remote_settings_mode: RemoteSettingType;
244
260
  hooks: {
@@ -518,5 +534,57 @@ export function get_session_recording_properties():
518
534
  | { $mp_replay_id?: string }
519
535
  | {};
520
536
 
537
+ // Network Recording Plugin Types
538
+ export type InitiatorType =
539
+ | 'audio'
540
+ | 'beacon'
541
+ | 'body'
542
+ | 'css'
543
+ | 'early-hint'
544
+ | 'embed'
545
+ | 'fetch'
546
+ | 'frame'
547
+ | 'iframe'
548
+ | 'icon'
549
+ | 'image'
550
+ | 'img'
551
+ | 'input'
552
+ | 'link'
553
+ | 'navigation'
554
+ | 'object'
555
+ | 'ping'
556
+ | 'script'
557
+ | 'track'
558
+ | 'video'
559
+ | 'xmlhttprequest';
560
+
561
+ export interface NetworkRequest {
562
+ url: string;
563
+ method?: string;
564
+ initiatorType: InitiatorType;
565
+ status?: number;
566
+ startTime: number;
567
+ endTime: number;
568
+ timeOrigin: number;
569
+ requestHeaders?: Record<string, string>;
570
+ requestBody?: string;
571
+ responseHeaders?: Record<string, string>;
572
+ responseBody?: string;
573
+ }
574
+
575
+ export interface NetworkRecordOptions {
576
+ initiatorTypes?: InitiatorType[];
577
+ ignoreRequestUrls?: string[];
578
+ ignoreRequestFn?: (data: NetworkRequest) => boolean;
579
+ recordHeaders?: { request: string[]; response: string[] };
580
+ recordBodyUrls?: { request: string[]; response: string[] };
581
+ recordInitialRequests?: boolean;
582
+ }
583
+
584
+ export interface NetworkData {
585
+ requests: NetworkRequest[];
586
+ isInitial?: boolean;
587
+ }
588
+
521
589
  declare const mixpanel: OverridedMixpanel;
522
590
  export default mixpanel;