flusterduck 0.2.0 → 0.4.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 (34) hide show
  1. package/README.md +161 -0
  2. package/dist/d.global.js +1 -1
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.mjs +1 -1
  6. package/dist/posthog-trigger.d.ts +36 -0
  7. package/dist/queue.d.ts +5 -0
  8. package/dist/selector.d.ts +1 -0
  9. package/dist/signals/advanced-signals.d.ts +1 -0
  10. package/dist/signals/close-click-reversal.d.ts +3 -0
  11. package/dist/signals/close-click.d.ts +3 -0
  12. package/dist/signals/copy-frustration.d.ts +3 -0
  13. package/dist/signals/dead-click-trap-zone.d.ts +3 -0
  14. package/dist/signals/dead-click.d.ts +1 -0
  15. package/dist/signals/element-impression.d.ts +3 -0
  16. package/dist/signals/exit-intent.d.ts +3 -0
  17. package/dist/signals/filter-spiral.d.ts +3 -0
  18. package/dist/signals/form-validation-loop.d.ts +3 -0
  19. package/dist/signals/frustration-correlator.d.ts +4 -0
  20. package/dist/signals/help-hunt.d.ts +3 -0
  21. package/dist/signals/hover-dwell.d.ts +5 -0
  22. package/dist/signals/index.d.ts +21 -4
  23. package/dist/signals/input-correction.d.ts +3 -0
  24. package/dist/signals/keyboard-signals.d.ts +1 -1
  25. package/dist/signals/navigation-confusion.d.ts +4 -0
  26. package/dist/signals/paste-blocked.d.ts +2 -0
  27. package/dist/signals/performance-vitals.d.ts +3 -0
  28. package/dist/signals/rage-click.d.ts +1 -0
  29. package/dist/signals/scroll-hijack.d.ts +1 -0
  30. package/dist/signals/scroll-to-click-confusion.d.ts +3 -0
  31. package/dist/signals/speed-frustration.d.ts +1 -0
  32. package/dist/signals/text-select-frustration.d.ts +3 -0
  33. package/dist/types.d.ts +4 -0
  34. package/package.json +1 -1
@@ -1,2 +1,3 @@
1
1
  export declare function getSelector(el: Element): string;
2
+ export declare function getElementLabel(el: Element): string;
2
3
  export declare function isIgnored(el: Element, ignoreSelectors: string[]): boolean;
@@ -1,3 +1,4 @@
1
1
  export declare function initAdvancedSignals(): void;
2
2
  export declare function destroyAdvancedSignals(): void;
3
3
  export declare function resetAdvancedSignals(): void;
4
+ export declare function resetAdvancedCycle(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initCloseClickReversal(ignore?: string[]): void;
2
+ export declare function destroyCloseClickReversal(): void;
3
+ export declare function resetCloseClickReversal(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initCloseClick(ignore?: string[]): void;
2
+ export declare function destroyCloseClick(): void;
3
+ export declare function resetCloseClick(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initCopyFrustration(): void;
2
+ export declare function destroyCopyFrustration(): void;
3
+ export declare function resetCopyFrustration(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initDeadClickTrapZone(ignore?: string[]): void;
2
+ export declare function destroyDeadClickTrapZone(): void;
3
+ export declare function resetDeadClickTrapZone(): void;
@@ -1,2 +1,3 @@
1
1
  export declare function initDeadClick(ignore?: string[]): void;
2
2
  export declare function destroyDeadClick(): void;
3
+ export declare function resetDeadClick(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initElementImpression(selectors?: string[]): void;
2
+ export declare function destroyElementImpression(): void;
3
+ export declare function resetElementImpression(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initExitIntent(): void;
2
+ export declare function destroyExitIntent(): void;
3
+ export declare function resetExitIntent(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initFilterSpiral(ignore?: string[]): void;
2
+ export declare function destroyFilterSpiral(): void;
3
+ export declare function resetFilterSpiral(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initFormValidationLoop(ignore?: string[]): void;
2
+ export declare function destroyFormValidationLoop(): void;
3
+ export declare function resetFormValidationLoop(): void;
@@ -0,0 +1,4 @@
1
+ export declare function onSignal(type: string): void;
2
+ export declare function setFrustrationCorrelatorPage(page: string): void;
3
+ export declare function initFrustrationCorrelator(page?: string): void;
4
+ export declare function destroyFrustrationCorrelator(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initHelpHunt(ignore?: string[]): void;
2
+ export declare function destroyHelpHunt(): void;
3
+ export declare function resetHelpHunt(): void;
@@ -0,0 +1,5 @@
1
+ export declare function initHoverDwell(opts?: {
2
+ dwellMs?: number;
3
+ }, ignore?: string[]): void;
4
+ export declare function destroyHoverDwell(): void;
5
+ export declare function resetHoverDwell(): void;
@@ -1,6 +1,6 @@
1
1
  export { initRageClick, destroyRageClick } from './rage-click';
2
- export { initDeadClick, destroyDeadClick } from './dead-click';
3
- export { initSpeedFrustration, destroySpeedFrustration } from './speed-frustration';
2
+ export { initDeadClick, destroyDeadClick, resetDeadClick } from './dead-click';
3
+ export { initSpeedFrustration, destroySpeedFrustration, resetSpeedFrustration } from './speed-frustration';
4
4
  export { initThrashCursor, destroyThrashCursor } from './thrash-cursor';
5
5
  export { initLoopNav, destroyLoopNav, recordNavigation } from './loop-nav';
6
6
  export { initScrollBounce, destroyScrollBounce, resetScrollBounce, } from './scroll-bounce';
@@ -8,6 +8,23 @@ export { initFormSignals, destroyFormSignals, resetFormSignals, } from './form-s
8
8
  export { initErrorEncounter, destroyErrorEncounter } from './error-encounter';
9
9
  export { initMobileSignals, destroyMobileSignals } from './mobile-signals';
10
10
  export { initKeyboardSignals, destroyKeyboardSignals, } from './keyboard-signals';
11
- export { initScrollHijack, destroyScrollHijack } from './scroll-hijack';
11
+ export { initScrollHijack, destroyScrollHijack, resetScrollHijack } from './scroll-hijack';
12
12
  export { initScrollDepthAbandon, destroyScrollDepthAbandon, resetScrollDepthAbandon, } from './scroll-depth-abandon';
13
- export { initAdvancedSignals, destroyAdvancedSignals, resetAdvancedSignals, } from './advanced-signals';
13
+ export { initAdvancedSignals, destroyAdvancedSignals, resetAdvancedSignals, resetAdvancedCycle, } from './advanced-signals';
14
+ export { initHelpHunt, destroyHelpHunt, resetHelpHunt } from './help-hunt';
15
+ export { initCloseClick, destroyCloseClick, resetCloseClick } from './close-click';
16
+ export { initCloseClickReversal, destroyCloseClickReversal, resetCloseClickReversal, } from './close-click-reversal';
17
+ export { initFilterSpiral, destroyFilterSpiral, resetFilterSpiral } from './filter-spiral';
18
+ export { initCopyFrustration, destroyCopyFrustration, resetCopyFrustration } from './copy-frustration';
19
+ export { initTextSelectFrustration, destroyTextSelectFrustration, resetTextSelectFrustration, } from './text-select-frustration';
20
+ export { initFrustrationCorrelator, destroyFrustrationCorrelator, setFrustrationCorrelatorPage, } from './frustration-correlator';
21
+ export { initNavigationConfusion, destroyNavigationConfusion, resetNavigationConfusion, recordPageVisit, } from './navigation-confusion';
22
+ export { initScrollToClickConfusion, destroyScrollToClickConfusion, resetScrollToClickConfusion, } from './scroll-to-click-confusion';
23
+ export { initDeadClickTrapZone, destroyDeadClickTrapZone, resetDeadClickTrapZone, } from './dead-click-trap-zone';
24
+ export { initFormValidationLoop, destroyFormValidationLoop, resetFormValidationLoop, } from './form-validation-loop';
25
+ export { initElementImpression, destroyElementImpression, resetElementImpression, } from './element-impression';
26
+ export { initInputCorrection, destroyInputCorrection, resetInputCorrection, } from './input-correction';
27
+ export { initHoverDwell, destroyHoverDwell, resetHoverDwell, } from './hover-dwell';
28
+ export { initExitIntent, destroyExitIntent, resetExitIntent } from './exit-intent';
29
+ export { initPerformanceVitals, destroyPerformanceVitals, resetPerformanceVitals, } from './performance-vitals';
30
+ export { initPasteBlocked, destroyPasteBlocked } from './paste-blocked';
@@ -0,0 +1,3 @@
1
+ export declare function initInputCorrection(ignore?: string[]): void;
2
+ export declare function destroyInputCorrection(): void;
3
+ export declare function resetInputCorrection(): void;
@@ -1,2 +1,2 @@
1
- export declare function initKeyboardSignals(): void;
1
+ export declare function initKeyboardSignals(ignore?: string[]): void;
2
2
  export declare function destroyKeyboardSignals(): void;
@@ -0,0 +1,4 @@
1
+ export declare function initNavigationConfusion(): void;
2
+ export declare function destroyNavigationConfusion(): void;
3
+ export declare function resetNavigationConfusion(): void;
4
+ export declare function recordPageVisit(path: string): void;
@@ -0,0 +1,2 @@
1
+ export declare function initPasteBlocked(ignore?: string[]): void;
2
+ export declare function destroyPasteBlocked(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initPerformanceVitals(): void;
2
+ export declare function destroyPerformanceVitals(): void;
3
+ export declare function resetPerformanceVitals(): void;
@@ -1,5 +1,6 @@
1
1
  export declare function initRageClick(opts?: {
2
2
  threshold?: number;
3
3
  windowMs?: number;
4
+ radius?: number;
4
5
  }, ignore?: string[]): void;
5
6
  export declare function destroyRageClick(): void;
@@ -1,2 +1,3 @@
1
1
  export declare function initScrollHijack(): void;
2
2
  export declare function destroyScrollHijack(): void;
3
+ export declare function resetScrollHijack(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initScrollToClickConfusion(): void;
2
+ export declare function destroyScrollToClickConfusion(): void;
3
+ export declare function resetScrollToClickConfusion(): void;
@@ -2,3 +2,4 @@ export declare function initSpeedFrustration(opts?: {
2
2
  delayMs?: number;
3
3
  }, ignore?: string[]): void;
4
4
  export declare function destroySpeedFrustration(): void;
5
+ export declare function resetSpeedFrustration(): void;
@@ -0,0 +1,3 @@
1
+ export declare function initTextSelectFrustration(): void;
2
+ export declare function destroyTextSelectFrustration(): void;
3
+ export declare function resetTextSelectFrustration(): void;
package/dist/types.d.ts CHANGED
@@ -20,11 +20,14 @@ export interface Config {
20
20
  compression?: CompressionMode;
21
21
  ignoreElements?: string[];
22
22
  ignorePages?: string[];
23
+ elementImpressionSelectors?: string[];
23
24
  }
24
25
  export interface SignalOpts {
25
26
  enabled?: boolean;
26
27
  threshold?: number;
27
28
  windowMs?: number;
29
+ /** Max pairwise click distance in px for rage click clustering. Default 24. */
30
+ radius?: number;
28
31
  }
29
32
  export interface SDKEvent {
30
33
  t: string;
@@ -44,6 +47,7 @@ export interface Batch {
44
47
  vw: number;
45
48
  vh: number;
46
49
  environment?: string;
50
+ segment?: Record<string, string>;
47
51
  dom_mode: DOMMode;
48
52
  events: IngestEvent[];
49
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flusterduck",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Lightweight UX confusion monitoring SDK",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",