@buoy-gg/highlight-updates 7.0.2 → 7.0.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.
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.OTHER_DEV_TOOLS_PREFIXES = exports.OTHER_DEV_TOOLS_COMPONENTS = exports.HIGHLIGHT_OVERLAY_PREFIXES = exports.HIGHLIGHT_OVERLAY_COMPONENTS = void 0;
7
7
  exports.isCapturingBuoyToolRenders = isCapturingBuoyToolRenders;
8
8
  exports.isDevToolsComponentName = isDevToolsComponentName;
9
+ exports.isJsTopComponentName = isJsTopComponentName;
9
10
  exports.isPerfMonitorComponentName = isPerfMonitorComponentName;
10
11
  exports.setCaptureBuoyToolRenders = setCaptureBuoyToolRenders;
11
12
  // ============================================================================
@@ -60,7 +61,10 @@ const OTHER_DEV_TOOLS_COMPONENTS = exports.OTHER_DEV_TOOLS_COMPONENTS = new Set(
60
61
  // most 30 fiber levels from a flagged host view — the HUD's metric
61
62
  // TextInputs sit under deep TextInput/Animated wrappers, so the walk can
62
63
  // miss the PerfMonitorOverlay root; near names are what it actually hits.
63
- "PerfHudInlineInner", "PerfMonitorOverlayInner", "MiniMetric", "MetricRow", "MetricNumber", "MetricSparklineInner", "RecColumn", "PillBody", "FullBody", "TargetLine", "PagesSection", "ProbesSection"]);
64
+ "PerfHudInlineInner", "PerfMonitorOverlayInner", "MiniMetric", "MetricRow", "MetricNumber", "MetricSparklineInner", "RecColumn", "PillBody", "FullBody", "TargetLine", "PagesSection", "ProbesSection",
65
+ // JS TOP components without the "JsTop" prefix (which is matched
66
+ // separately). The modal/table re-render on every 250ms snapshot tick.
67
+ "TaskTable", "TaskRow", "BusySparkline"]);
64
68
 
65
69
  // Other dev tools prefixes - can be toggled via excludeDevTools setting
66
70
  const OTHER_DEV_TOOLS_PREFIXES = exports.OTHER_DEV_TOOLS_PREFIXES = ["JsModal", "TreeDiff", "DataViewer", "DiffView", "DiffSummary", "Virtualized",
@@ -68,7 +72,9 @@ const OTHER_DEV_TOOLS_PREFIXES = exports.OTHER_DEV_TOOLS_PREFIXES = ["JsModal",
68
72
  "Floating", "Minimized", "Dial", "Expandable", "Chevron", "Glitch", "Settings", "Onboarding", "DevTools", "ImageOverlay",
69
73
  // Perf-monitor prefixes (safe: user code is Perf*, buoy code is
70
74
  // PerfMonitor* / PerfHud*)
71
- "PerfMonitor", "PerfHud"];
75
+ "PerfMonitor", "PerfHud",
76
+ // JS TOP (js-top package)
77
+ "JsTop"];
72
78
 
73
79
  // ── Bench "profile our own tools" mode ──────────────────────────────────
74
80
  // When enabled (by a dedicated benchmark screen, e.g. the example app's
@@ -104,6 +110,19 @@ function isPerfMonitorComponentName(name) {
104
110
  return name.startsWith("PerfMonitor") || name.startsWith("PerfHud") || PERF_MONITOR_ALWAYS_EXCLUDED.has(name);
105
111
  }
106
112
 
113
+ // JS TOP components without the "JsTop" prefix. Mirrors the js-top entries
114
+ // in OTHER_DEV_TOOLS_COMPONENTS.
115
+ const JS_TOP_ALWAYS_EXCLUDED = new Set(["TaskTable", "TaskRow", "BusySparkline"]);
116
+
117
+ /**
118
+ * True when a name belongs to the JS TOP UI. Stays excluded even in bench
119
+ * "profile our own tools" mode for the same reason as the perf HUD: the
120
+ * task table re-renders on every 250ms snapshot tick while open.
121
+ */
122
+ function isJsTopComponentName(name) {
123
+ return name.startsWith("JsTop") || JS_TOP_ALWAYS_EXCLUDED.has(name);
124
+ }
125
+
107
126
  /**
108
127
  * True when a component display name belongs to Buoy's own devtools UI (or
109
128
  * RN's LogBox). Sets are checked first (O(1)), then prefixes.
@@ -116,8 +135,9 @@ function isDevToolsComponentName(name) {
116
135
  }
117
136
  if (captureBuoyToolRenders) {
118
137
  // Benchmarking our own tools: capture everything except the
119
- // perf-monitor UI (its 250ms HUD churn would drown the result).
120
- return isPerfMonitorComponentName(name);
138
+ // perf-monitor and JS TOP UIs (their 250ms tick churn would drown
139
+ // the result).
140
+ return isPerfMonitorComponentName(name) || isJsTopComponentName(name);
121
141
  }
122
142
  if (OTHER_DEV_TOOLS_COMPONENTS.has(name)) return true;
123
143
  for (let i = 0; i < OTHER_DEV_TOOLS_PREFIXES.length; i++) {
@@ -52,7 +52,10 @@ export const OTHER_DEV_TOOLS_COMPONENTS = new Set([
52
52
  // most 30 fiber levels from a flagged host view — the HUD's metric
53
53
  // TextInputs sit under deep TextInput/Animated wrappers, so the walk can
54
54
  // miss the PerfMonitorOverlay root; near names are what it actually hits.
55
- "PerfHudInlineInner", "PerfMonitorOverlayInner", "MiniMetric", "MetricRow", "MetricNumber", "MetricSparklineInner", "RecColumn", "PillBody", "FullBody", "TargetLine", "PagesSection", "ProbesSection"]);
55
+ "PerfHudInlineInner", "PerfMonitorOverlayInner", "MiniMetric", "MetricRow", "MetricNumber", "MetricSparklineInner", "RecColumn", "PillBody", "FullBody", "TargetLine", "PagesSection", "ProbesSection",
56
+ // JS TOP components without the "JsTop" prefix (which is matched
57
+ // separately). The modal/table re-render on every 250ms snapshot tick.
58
+ "TaskTable", "TaskRow", "BusySparkline"]);
56
59
 
57
60
  // Other dev tools prefixes - can be toggled via excludeDevTools setting
58
61
  export const OTHER_DEV_TOOLS_PREFIXES = ["JsModal", "TreeDiff", "DataViewer", "DiffView", "DiffSummary", "Virtualized",
@@ -60,7 +63,9 @@ export const OTHER_DEV_TOOLS_PREFIXES = ["JsModal", "TreeDiff", "DataViewer", "D
60
63
  "Floating", "Minimized", "Dial", "Expandable", "Chevron", "Glitch", "Settings", "Onboarding", "DevTools", "ImageOverlay",
61
64
  // Perf-monitor prefixes (safe: user code is Perf*, buoy code is
62
65
  // PerfMonitor* / PerfHud*)
63
- "PerfMonitor", "PerfHud"];
66
+ "PerfMonitor", "PerfHud",
67
+ // JS TOP (js-top package)
68
+ "JsTop"];
64
69
 
65
70
  // ── Bench "profile our own tools" mode ──────────────────────────────────
66
71
  // When enabled (by a dedicated benchmark screen, e.g. the example app's
@@ -96,6 +101,19 @@ export function isPerfMonitorComponentName(name) {
96
101
  return name.startsWith("PerfMonitor") || name.startsWith("PerfHud") || PERF_MONITOR_ALWAYS_EXCLUDED.has(name);
97
102
  }
98
103
 
104
+ // JS TOP components without the "JsTop" prefix. Mirrors the js-top entries
105
+ // in OTHER_DEV_TOOLS_COMPONENTS.
106
+ const JS_TOP_ALWAYS_EXCLUDED = new Set(["TaskTable", "TaskRow", "BusySparkline"]);
107
+
108
+ /**
109
+ * True when a name belongs to the JS TOP UI. Stays excluded even in bench
110
+ * "profile our own tools" mode for the same reason as the perf HUD: the
111
+ * task table re-renders on every 250ms snapshot tick while open.
112
+ */
113
+ export function isJsTopComponentName(name) {
114
+ return name.startsWith("JsTop") || JS_TOP_ALWAYS_EXCLUDED.has(name);
115
+ }
116
+
99
117
  /**
100
118
  * True when a component display name belongs to Buoy's own devtools UI (or
101
119
  * RN's LogBox). Sets are checked first (O(1)), then prefixes.
@@ -108,8 +126,9 @@ export function isDevToolsComponentName(name) {
108
126
  }
109
127
  if (captureBuoyToolRenders) {
110
128
  // Benchmarking our own tools: capture everything except the
111
- // perf-monitor UI (its 250ms HUD churn would drown the result).
112
- return isPerfMonitorComponentName(name);
129
+ // perf-monitor and JS TOP UIs (their 250ms tick churn would drown
130
+ // the result).
131
+ return isPerfMonitorComponentName(name) || isJsTopComponentName(name);
113
132
  }
114
133
  if (OTHER_DEV_TOOLS_COMPONENTS.has(name)) return true;
115
134
  for (let i = 0; i < OTHER_DEV_TOOLS_PREFIXES.length; i++) {
@@ -11,6 +11,12 @@ export declare function isCapturingBuoyToolRenders(): boolean;
11
11
  * live highlight boxes would be dominated by it.
12
12
  */
13
13
  export declare function isPerfMonitorComponentName(name: string): boolean;
14
+ /**
15
+ * True when a name belongs to the JS TOP UI. Stays excluded even in bench
16
+ * "profile our own tools" mode for the same reason as the perf HUD: the
17
+ * task table re-renders on every 250ms snapshot tick while open.
18
+ */
19
+ export declare function isJsTopComponentName(name: string): boolean;
14
20
  /**
15
21
  * True when a component display name belongs to Buoy's own devtools UI (or
16
22
  * RN's LogBox). Sets are checked first (O(1)), then prefixes.
@@ -1 +1 @@
1
- {"version":3,"file":"devtoolsComponentNames.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/devtoolsComponentNames.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,4BAA4B,aA4BvC,CAAC;AAGH,eAAO,MAAM,0BAA0B,UAWtC,CAAC;AAGF,eAAO,MAAM,0BAA0B,aAmIrC,CAAC;AAGH,eAAO,MAAM,wBAAwB,UAsBpC,CAAC;AAcF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhE;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AA8BD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgB7D"}
1
+ {"version":3,"file":"devtoolsComponentNames.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/devtoolsComponentNames.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,4BAA4B,aA4BvC,CAAC;AAGH,eAAO,MAAM,0BAA0B,UAWtC,CAAC;AAGF,eAAO,MAAM,0BAA0B,aAwIrC,CAAC;AAGH,eAAO,MAAM,wBAAwB,UAwBpC,CAAC;AAcF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhE;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AA8BD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMhE;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiB7D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/highlight-updates",
3
- "version": "7.0.2",
3
+ "version": "7.0.3",
4
4
  "description": "Render highlighter for React Native — see every render with its cause: mount, state, props, or parent. Part of Buoy devtools.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -26,14 +26,14 @@
26
26
  ],
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@buoy-gg/shared-ui": "7.0.2",
30
- "@buoy-gg/floating-tools-core": "7.0.2"
29
+ "@buoy-gg/floating-tools-core": "7.0.3",
30
+ "@buoy-gg/shared-ui": "7.0.3"
31
31
  },
32
32
  "peerDependencies": {
33
- "@buoy-gg/license": "7.0.2",
33
+ "@buoy-gg/license": "7.0.3",
34
34
  "react": "*",
35
35
  "react-native": "*",
36
- "@buoy-gg/core": "7.0.2"
36
+ "@buoy-gg/core": "7.0.3"
37
37
  },
38
38
  "peerDependenciesMeta": {
39
39
  "@buoy-gg/core": {
@@ -44,8 +44,8 @@
44
44
  "@types/react": "^19.1.0",
45
45
  "@types/react-native": "^0.73.0",
46
46
  "typescript": "~5.8.3",
47
- "@buoy-gg/core": "7.0.2",
48
- "@buoy-gg/license": "7.0.2"
47
+ "@buoy-gg/core": "7.0.3",
48
+ "@buoy-gg/license": "7.0.3"
49
49
  },
50
50
  "react-native-builder-bob": {
51
51
  "source": "src",