@buoy-gg/highlight-updates 2.1.2 → 2.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/lib/commonjs/highlight-updates/components/HighlightFilterView.js +1 -1
- package/lib/commonjs/highlight-updates/components/HighlightUpdatesModal.js +1 -1
- package/lib/commonjs/highlight-updates/utils/HighlightUpdatesController.js +1 -1
- package/lib/commonjs/highlight-updates/utils/RenderCauseDetector.js +1 -1
- package/lib/commonjs/highlight-updates/utils/RenderTracker.js +1 -1
- package/lib/commonjs/highlight-updates/utils/renderExportFormatter.js +1 -0
- package/lib/commonjs/index.js +1 -1
- package/lib/module/highlight-updates/components/HighlightFilterView.js +1 -1
- package/lib/module/highlight-updates/components/HighlightUpdatesModal.js +1 -1
- package/lib/module/highlight-updates/utils/HighlightUpdatesController.js +1 -1
- package/lib/module/highlight-updates/utils/RenderCauseDetector.js +1 -1
- package/lib/module/highlight-updates/utils/RenderTracker.js +1 -1
- package/lib/module/highlight-updates/utils/renderExportFormatter.js +1 -0
- package/lib/module/index.js +1 -1
- package/lib/typescript/highlight-updates/components/HighlightFilterView.d.ts +1 -1
- package/lib/typescript/highlight-updates/components/ModalHeaderContent.d.ts +1 -1
- package/lib/typescript/highlight-updates/utils/HighlightUpdatesController.d.ts +24 -0
- package/lib/typescript/highlight-updates/utils/RenderTracker.d.ts +54 -0
- package/lib/typescript/highlight-updates/utils/renderExportFormatter.d.ts +11 -0
- package/lib/typescript/index.d.ts +3 -1
- package/package.json +6 -6
|
@@ -42,6 +42,8 @@ export interface RenderCause {
|
|
|
42
42
|
timestamp: number;
|
|
43
43
|
componentCause?: ComponentCauseType;
|
|
44
44
|
componentName?: string;
|
|
45
|
+
/** Parent component that triggered this re-render (for cascade visualization) */
|
|
46
|
+
parentComponentName?: string;
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
49
|
* A single render event in the history
|
|
@@ -103,6 +105,8 @@ type StateListener = (state: {
|
|
|
103
105
|
}) => void;
|
|
104
106
|
type SettingsListener = (settings: RenderTrackerSettings) => void;
|
|
105
107
|
type FilterListener = (filters: FilterConfig) => void;
|
|
108
|
+
/** Callback for individual render events (for unified events integration) */
|
|
109
|
+
type RenderEventCallback = (event: RenderEvent, render: TrackedRender) => void;
|
|
106
110
|
export interface RenderTrackerSettings {
|
|
107
111
|
/**
|
|
108
112
|
* Maximum number of components to highlight per batch.
|
|
@@ -171,6 +175,17 @@ export interface RenderTrackerSettings {
|
|
|
171
175
|
* Default: "off"
|
|
172
176
|
*/
|
|
173
177
|
debugLogLevel: DebugLogLevel;
|
|
178
|
+
/**
|
|
179
|
+
* Whether to exclude other dev tools components from highlighting.
|
|
180
|
+
* When true (default), all Buoy dev tools components (floating menu, modals,
|
|
181
|
+
* settings, etc.) are excluded from highlighting.
|
|
182
|
+
* When false, only the Highlight Updates overlay itself is excluded
|
|
183
|
+
* (to prevent infinite loops), but other dev tools will show highlights.
|
|
184
|
+
*
|
|
185
|
+
* Use this to debug and optimize the dev tools themselves.
|
|
186
|
+
* Default: true
|
|
187
|
+
*/
|
|
188
|
+
excludeDevTools: boolean;
|
|
174
189
|
}
|
|
175
190
|
declare class RenderTrackerSingleton {
|
|
176
191
|
private renders;
|
|
@@ -178,6 +193,8 @@ declare class RenderTrackerSingleton {
|
|
|
178
193
|
private stateListeners;
|
|
179
194
|
private settingsListeners;
|
|
180
195
|
private filterListeners;
|
|
196
|
+
/** Callbacks for individual render events (unified events integration) */
|
|
197
|
+
private renderEventCallbacks;
|
|
181
198
|
private isTracking;
|
|
182
199
|
private isPaused;
|
|
183
200
|
private settings;
|
|
@@ -210,6 +227,31 @@ declare class RenderTrackerSingleton {
|
|
|
210
227
|
* Add a render event to a component's history (circular buffer)
|
|
211
228
|
*/
|
|
212
229
|
private addRenderEvent;
|
|
230
|
+
/**
|
|
231
|
+
* Notify all render event callbacks
|
|
232
|
+
*/
|
|
233
|
+
private notifyRenderEventCallbacks;
|
|
234
|
+
/**
|
|
235
|
+
* Emit a render event to callbacks only (without storing in the render list).
|
|
236
|
+
* Used by Events tool when visual highlights are off - we want events but not list updates.
|
|
237
|
+
*/
|
|
238
|
+
emitRenderEvent(data: {
|
|
239
|
+
nativeTag: number;
|
|
240
|
+
viewType: string;
|
|
241
|
+
testID?: string;
|
|
242
|
+
nativeID?: string;
|
|
243
|
+
accessibilityLabel?: string;
|
|
244
|
+
componentName?: string;
|
|
245
|
+
measurements?: {
|
|
246
|
+
x: number;
|
|
247
|
+
y: number;
|
|
248
|
+
width: number;
|
|
249
|
+
height: number;
|
|
250
|
+
};
|
|
251
|
+
color: string;
|
|
252
|
+
count: number;
|
|
253
|
+
renderCause?: RenderCause;
|
|
254
|
+
}): void;
|
|
213
255
|
/**
|
|
214
256
|
* Start batch mode - defers listener notifications until endBatch() is called.
|
|
215
257
|
* Use this when tracking multiple renders in a loop to avoid O(n²) notifications.
|
|
@@ -355,6 +397,18 @@ declare class RenderTrackerSingleton {
|
|
|
355
397
|
* Subscribe to filter changes
|
|
356
398
|
*/
|
|
357
399
|
subscribeToFilters(listener: FilterListener): () => void;
|
|
400
|
+
/**
|
|
401
|
+
* Subscribe to individual render events as they occur.
|
|
402
|
+
* Used by unified events system to integrate render events into the timeline.
|
|
403
|
+
*
|
|
404
|
+
* @param callback - Called for each render event with the event and component info
|
|
405
|
+
* @returns Unsubscribe function
|
|
406
|
+
*/
|
|
407
|
+
onRenderEvent(callback: RenderEventCallback): () => void;
|
|
408
|
+
/**
|
|
409
|
+
* Get the number of render event callbacks (for debugging)
|
|
410
|
+
*/
|
|
411
|
+
getRenderEventCallbackCount(): number;
|
|
358
412
|
/**
|
|
359
413
|
* Check if a render should be visible based on current filters
|
|
360
414
|
* Used by the overlay to filter frozen highlights
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render Export Formatter
|
|
3
|
+
*
|
|
4
|
+
* Simple JSON export for render tracking data.
|
|
5
|
+
*/
|
|
6
|
+
import type { TrackedRender } from "./RenderTracker";
|
|
7
|
+
/**
|
|
8
|
+
* Generate JSON export of all tracked renders
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateRendersJson(renders: TrackedRender[]): string;
|
|
11
|
+
//# sourceMappingURL=renderExportFormatter.d.ts.map
|
|
@@ -29,7 +29,8 @@ export { default as HighlightUpdatesController } from "./highlight-updates/utils
|
|
|
29
29
|
export { HighlightUpdatesOverlay } from "./highlight-updates/HighlightUpdatesOverlay";
|
|
30
30
|
export { installProfilerInterceptor, uninstallProfilerInterceptor, setComparisonCallback, isInterceptorInstalled, enableProfilerLogging, disableProfilerLogging, isLoggingEnabled, } from "./highlight-updates/utils/ProfilerInterceptor";
|
|
31
31
|
export { RenderTracker } from "./highlight-updates/utils/RenderTracker";
|
|
32
|
-
export type { TrackedRender, FilterConfig, RenderTrackerSettings, RenderCause, RenderCauseType, ComponentCauseType, RenderEvent, } from "./highlight-updates/utils/RenderTracker";
|
|
32
|
+
export type { TrackedRender, FilterConfig, RenderTrackerSettings, RenderCause, RenderCauseType, ComponentCauseType, RenderEvent, HookStateChange, } from "./highlight-updates/utils/RenderTracker";
|
|
33
|
+
export declare const onRenderEvent: (callback: (event: import("./highlight-updates/utils/RenderTracker").RenderEvent, render: import("./highlight-updates/utils/RenderTracker").TrackedRender) => void) => any;
|
|
33
34
|
export { detectRenderCause, clearRenderCauseState, removeRenderCauseState, getRenderCauseStats, safeCloneForHistory, capturePropsSnapshot, captureStateSnapshot, } from "./highlight-updates/utils/RenderCauseDetector";
|
|
34
35
|
export { PerformanceLogger } from "./highlight-updates/utils/PerformanceLogger";
|
|
35
36
|
export type { BatchMetrics, BatchTimer } from "./highlight-updates/utils/PerformanceLogger";
|
|
@@ -40,4 +41,5 @@ export { RenderDetailView } from "./highlight-updates/components/RenderDetailVie
|
|
|
40
41
|
export { HighlightFilterView } from "./highlight-updates/components/HighlightFilterView";
|
|
41
42
|
export { RenderCauseBadge, TwoLevelCauseBadge, CAUSE_CONFIG, COMPONENT_CAUSE_CONFIG, } from "./highlight-updates/components/RenderCauseBadge";
|
|
42
43
|
export { RenderHistoryViewer, RenderHistoryFooter, } from "./highlight-updates/components/RenderHistoryViewer";
|
|
44
|
+
export { generateRendersJson, } from "./highlight-updates/utils/renderExportFormatter";
|
|
43
45
|
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/highlight-updates",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Control React DevTools highlight updates feature from your app",
|
|
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": "2.1.
|
|
30
|
-
"@buoy-gg/floating-tools-core": "2.1.
|
|
29
|
+
"@buoy-gg/shared-ui": "2.1.3",
|
|
30
|
+
"@buoy-gg/floating-tools-core": "2.1.3"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@buoy-gg/license": "*",
|
|
34
34
|
"react": "*",
|
|
35
35
|
"react-native": "*",
|
|
36
|
-
"@buoy-gg/core": "2.1.
|
|
36
|
+
"@buoy-gg/core": "2.1.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": "2.1.
|
|
48
|
-
"@buoy-gg/license": "2.1.
|
|
47
|
+
"@buoy-gg/core": "2.1.3",
|
|
48
|
+
"@buoy-gg/license": "2.1.3"
|
|
49
49
|
},
|
|
50
50
|
"react-native-builder-bob": {
|
|
51
51
|
"source": "src",
|