@vue/devtools-kit 7.2.1 → 7.3.0-beta.2

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/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
- import { App, ComponentInternalInstance, ComponentOptions, SuspenseBoundary, VNode } from 'vue';
2
- import { RouteLocationNormalizedLoaded, RouteRecordNormalized, Router } from 'vue-router';
1
+ import { App as App$1, ComponentInternalInstance, ComponentOptions, SuspenseBoundary, VNode } from 'vue';
2
+ import * as hookable from 'hookable';
3
+ import { Hookable, HookKeys } from 'hookable';
4
+ import { Router, RouteLocationNormalizedLoaded, RouteRecordNormalized } from 'vue-router';
3
5
  export { Router } from 'vue-router';
6
+ import { BirpcOptions, ChannelOptions, BirpcGroup, BirpcReturn } from 'birpc';
4
7
 
5
8
  interface ComponentInspector {
6
9
  enabled: boolean;
@@ -22,62 +25,494 @@ interface ComponentInspector {
22
25
  declare function toggleComponentInspectorEnabled(enabled: boolean): void;
23
26
  declare function getComponentInspector(): Promise<ComponentInspector>;
24
27
 
25
- interface TimelineEvent {
26
- event: {
27
- groupId: number;
28
- time: number;
29
- title: string;
30
- subtitle: string;
31
- data: Record<string, unknown>;
28
+ interface OpenInEditorOptions {
29
+ baseUrl?: string;
30
+ file?: string;
31
+ line?: number;
32
+ column?: number;
33
+ }
34
+ declare function setOpenInEditorBaseUrl(url: string): void;
35
+ declare function openInEditor(options?: OpenInEditorOptions): void;
36
+
37
+ type ComponentInstance = any;
38
+ interface ComponentTreeNode {
39
+ uid: string | number;
40
+ id: string;
41
+ name: string;
42
+ renderKey: string | number;
43
+ inactive: boolean;
44
+ isFragment: boolean;
45
+ hasChildren: boolean;
46
+ children: ComponentTreeNode[];
47
+ domOrder?: number[];
48
+ consoleId?: string;
49
+ isRouterView?: boolean;
50
+ macthedRouteSegment?: string;
51
+ tags: InspectorNodeTag[];
52
+ autoOpen: boolean;
53
+ meta?: any;
54
+ }
55
+ type ComponentBuiltinCustomStateTypes = 'function' | 'map' | 'set' | 'reference' | 'component' | 'component-definition' | 'router' | 'store';
56
+ interface ComponentCustomState extends ComponentStateBase {
57
+ value: CustomState;
58
+ }
59
+ interface StateBase {
60
+ key: string;
61
+ value: any;
62
+ editable?: boolean;
63
+ objectType?: 'ref' | 'reactive' | 'computed' | 'other';
64
+ raw?: string;
65
+ }
66
+ interface ComponentStateBase extends StateBase {
67
+ type: string;
68
+ }
69
+ interface ComponentPropState extends ComponentStateBase {
70
+ meta?: {
71
+ type: string;
72
+ required: boolean;
73
+ /** Vue 1 only */
74
+ mode?: 'default' | 'sync' | 'once';
75
+ };
76
+ }
77
+ interface CustomState {
78
+ _custom: {
79
+ type: ComponentBuiltinCustomStateTypes | string;
80
+ objectType?: string;
81
+ display?: string;
82
+ tooltip?: string;
83
+ value?: any;
84
+ abstract?: boolean;
85
+ file?: string;
86
+ uid?: number;
87
+ readOnly?: boolean;
88
+ /** Configure immediate child fields */
89
+ fields?: {
90
+ abstract?: boolean;
91
+ };
92
+ id?: any;
93
+ actions?: {
94
+ icon: string;
95
+ tooltip?: string;
96
+ action: () => void | Promise<void>;
97
+ }[];
98
+ /** internal */
99
+ _reviveId?: number;
32
100
  };
33
- layerId: string;
34
101
  }
35
- interface TimelineLayerItem {
102
+ type ComponentState = ComponentStateBase | ComponentPropState | ComponentCustomState;
103
+ interface InspectedComponentData {
36
104
  id: string;
37
- label: string;
38
- color: number;
105
+ name: string;
106
+ file: string;
107
+ state: ComponentState[];
108
+ functional?: boolean;
109
+ }
110
+ interface ComponentBounds {
111
+ left: number;
112
+ top: number;
113
+ width: number;
114
+ height: number;
39
115
  }
40
- declare function addTimelineLayer(payload: TimelineLayerItem): void;
41
- declare function getTimelineLayer(): TimelineLayerItem[];
42
116
 
43
- interface Inspector {
117
+ interface CustomInspectorOptions {
44
118
  id: string;
45
- nodeId: string;
46
- filter: string;
47
- treeFilterPlaceholder: string;
119
+ label: string;
120
+ icon?: string;
121
+ treeFilterPlaceholder?: string;
122
+ stateFilterPlaceholder?: string;
123
+ noSelectionText?: string;
48
124
  actions?: {
49
125
  icon: string;
50
- tooltip: string;
51
- action: (payload: unknown) => void;
126
+ tooltip?: string;
127
+ action: () => void | Promise<void>;
52
128
  }[];
53
129
  nodeActions?: {
54
130
  icon: string;
55
- tooltip: string;
56
- action: (payload: unknown) => void;
131
+ tooltip?: string;
132
+ action: (nodeId: string) => void | Promise<void>;
57
133
  }[];
58
134
  }
59
- interface InspectorApiPayload {
135
+ interface InspectorNodeTag {
136
+ label: string;
137
+ textColor: number;
138
+ backgroundColor: number;
139
+ tooltip?: string;
140
+ }
141
+ type EditStatePayload = {
142
+ value: any;
143
+ newKey?: string | null;
144
+ remove?: undefined | false;
145
+ } | {
146
+ value?: undefined;
147
+ newKey?: undefined;
148
+ remove: true;
149
+ };
150
+ interface CustomInspectorNode {
60
151
  id: string;
61
152
  label: string;
62
- icon?: string;
63
- treeFilterPlaceholder?: string;
64
- actions?: {
153
+ children?: CustomInspectorNode[];
154
+ tags?: InspectorNodeTag[];
155
+ name?: string;
156
+ file?: string;
157
+ }
158
+ interface CustomInspectorState {
159
+ [key: string]: (StateBase | Omit<ComponentState, 'type'>)[];
160
+ }
161
+
162
+ interface DevToolsAppRecords extends AppRecord {
163
+ }
164
+ interface DevToolsState {
165
+ connected: boolean;
166
+ clientConnected: boolean;
167
+ vitePluginDetected: boolean;
168
+ appRecords: DevToolsAppRecords[];
169
+ activeAppRecordId: string;
170
+ tabs: CustomTab[];
171
+ commands: CustomCommand[];
172
+ highPerfModeEnabled: boolean;
173
+ }
174
+ declare const callStateUpdatedHook: (state: DevToolsState) => Promise<void>;
175
+ declare const callConnectedUpdatedHook: (state: DevToolsState, oldState: DevToolsState) => Promise<void>;
176
+ declare const devtoolsAppRecords: DevToolsAppRecords[] & {
177
+ value: DevToolsAppRecords[];
178
+ };
179
+ declare const addDevToolsAppRecord: (app: AppRecord) => void;
180
+ declare const removeDevToolsAppRecord: (app: AppRecord['app']) => void;
181
+ declare const activeAppRecord: AppRecord & {
182
+ value: AppRecord;
183
+ id: string;
184
+ };
185
+ declare function setActiveAppRecord(app: AppRecord): void;
186
+ declare function setActiveAppRecordId(id: string): void;
187
+ declare const devtoolsState: DevToolsState;
188
+ declare function resetDevToolsState(): void;
189
+ declare function updateDevToolsState(state: Partial<DevToolsState>): void;
190
+ declare function onDevToolsConnected(fn: () => void): Promise<void>;
191
+ declare function addCustomTab(tab: CustomTab): void;
192
+ declare function addCustomCommand(action: CustomCommand): void;
193
+ declare function removeCustomCommand(actionId: string): void;
194
+ declare function toggleClientConnected(state: boolean): void;
195
+
196
+ declare enum DevToolsV6PluginAPIHookKeys {
197
+ VISIT_COMPONENT_TREE = "visitComponentTree",
198
+ INSPECT_COMPONENT = "inspectComponent",
199
+ EDIT_COMPONENT_STATE = "editComponentState",
200
+ GET_INSPECTOR_TREE = "getInspectorTree",
201
+ GET_INSPECTOR_STATE = "getInspectorState",
202
+ EDIT_INSPECTOR_STATE = "editInspectorState",
203
+ INSPECT_TIMELINE_EVENT = "inspectTimelineEvent",
204
+ TIMELINE_CLEARED = "timelineCleared",
205
+ SET_PLUGIN_SETTINGS = "setPluginSettings"
206
+ }
207
+ interface DevToolsV6PluginAPIHookPayloads {
208
+ [DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE]: {
209
+ app: App;
210
+ componentInstance: ComponentInstance;
211
+ treeNode: ComponentTreeNode;
212
+ filter: string;
213
+ };
214
+ [DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT]: {
215
+ app: App;
216
+ componentInstance: ComponentInstance;
217
+ instanceData: InspectedComponentData;
218
+ };
219
+ [DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE]: {
220
+ app: App;
221
+ inspectorId: string;
222
+ nodeId: string;
223
+ path: string[];
224
+ type: string;
225
+ state: EditStatePayload;
226
+ set: (object: any, path?: string | (string[]), value?: any, cb?: (object: any, field: string, value: any) => void) => void;
227
+ };
228
+ [DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE]: {
229
+ app: App;
230
+ inspectorId: string;
231
+ filter: string;
232
+ rootNodes: CustomInspectorNode[];
233
+ };
234
+ [DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE]: {
235
+ app: App;
236
+ inspectorId: string;
237
+ nodeId: string;
238
+ state: CustomInspectorState;
239
+ };
240
+ [DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]: {
241
+ app: App;
242
+ inspectorId: string;
243
+ nodeId: string;
244
+ path: string[];
245
+ type: string;
246
+ state: EditStatePayload;
247
+ set: (object: any, path?: string | (string[]), value?: any, cb?: (object: any, field: string, value: any) => void) => void;
248
+ };
249
+ [DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT]: {
250
+ app: App;
251
+ layerId: string;
252
+ event: TimelineEvent;
253
+ all?: boolean;
254
+ data: any;
255
+ };
256
+ [DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED]: Record<string, never>;
257
+ [DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS]: {
258
+ app: App;
259
+ pluginId: string;
260
+ key: string;
261
+ newValue: any;
262
+ oldValue: any;
263
+ settings: any;
264
+ };
265
+ }
266
+ interface DevToolsV6PluginAPIHooks {
267
+ [DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE]) => void;
268
+ [DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT]) => void;
269
+ [DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE]) => void;
270
+ [DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE]) => void;
271
+ [DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE]) => void;
272
+ [DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]) => void;
273
+ [DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT]) => void;
274
+ [DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED]) => void;
275
+ [DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS]: (payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS]) => void;
276
+ }
277
+ declare enum DevToolsContextHookKeys {
278
+ ADD_INSPECTOR = "addInspector",
279
+ SEND_INSPECTOR_TREE = "sendInspectorTree",
280
+ SEND_INSPECTOR_STATE = "sendInspectorState",
281
+ CUSTOM_INSPECTOR_SELECT_NODE = "customInspectorSelectNode",
282
+ TIMELINE_LAYER_ADDED = "timelineLayerAdded",
283
+ TIMELINE_EVENT_ADDED = "timelineEventAdded",
284
+ GET_COMPONENT_INSTANCES = "getComponentInstances",
285
+ GET_COMPONENT_BOUNDS = "getComponentBounds",
286
+ GET_COMPONENT_NAME = "getComponentName",
287
+ COMPONENT_HIGHLIGHT = "componentHighlight",
288
+ COMPONENT_UNHIGHLIGHT = "componentUnhighlight"
289
+ }
290
+ interface DevToolsContextHookPayloads {
291
+ [DevToolsContextHookKeys.ADD_INSPECTOR]: {
292
+ inspector: CustomInspectorOptions;
293
+ plugin: DevToolsPlugin;
294
+ };
295
+ [DevToolsContextHookKeys.SEND_INSPECTOR_TREE]: {
296
+ inspectorId: string;
297
+ plugin: DevToolsPlugin;
298
+ };
299
+ [DevToolsContextHookKeys.SEND_INSPECTOR_STATE]: {
300
+ inspectorId: string;
301
+ plugin: DevToolsPlugin;
302
+ };
303
+ [DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE]: {
304
+ inspectorId: string;
305
+ nodeId: string;
306
+ plugin: DevToolsPlugin;
307
+ };
308
+ [DevToolsContextHookKeys.TIMELINE_LAYER_ADDED]: {
309
+ options: TimelineLayerOptions;
310
+ plugin: DevToolsPlugin;
311
+ };
312
+ [DevToolsContextHookKeys.TIMELINE_EVENT_ADDED]: {
313
+ options: TimelineEventOptions;
314
+ plugin: DevToolsPlugin;
315
+ };
316
+ [DevToolsContextHookKeys.GET_COMPONENT_INSTANCES]: {
317
+ app: App;
318
+ };
319
+ [DevToolsContextHookKeys.GET_COMPONENT_BOUNDS]: {
320
+ instance: ComponentInstance;
321
+ };
322
+ [DevToolsContextHookKeys.GET_COMPONENT_NAME]: {
323
+ instance: ComponentInstance;
324
+ };
325
+ [DevToolsContextHookKeys.COMPONENT_HIGHLIGHT]: {
326
+ uid: string;
327
+ };
328
+ [DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT]: Record<string, never>;
329
+ }
330
+ declare enum DevToolsMessagingHookKeys {
331
+ SEND_INSPECTOR_TREE_TO_CLIENT = "sendInspectorTreeToClient",
332
+ SEND_INSPECTOR_STATE_TO_CLIENT = "sendInspectorStateToClient",
333
+ SEND_TIMELINE_EVENT_TO_CLIENT = "sendTimelineEventToClient",
334
+ SEND_INSPECTOR_TO_CLIENT = "sendInspectorToClient",
335
+ SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT = "sendActiveAppUpdatedToClient",
336
+ DEVTOOLS_STATE_UPDATED = "devtoolsStateUpdated",
337
+ DEVTOOLS_CONNECTED_UPDATED = "devtoolsConnectedUpdated",
338
+ ROUTER_INFO_UPDATED = "routerInfoUpdated"
339
+ }
340
+ interface DevToolsMessagingHookPayloads {
341
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT]: {
342
+ inspectorId: string;
343
+ rootNodes: CustomInspectorNode[];
344
+ };
345
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT]: {
346
+ inspectorId: string;
347
+ nodeId: string;
348
+ state: CustomInspectorState;
349
+ };
350
+ [DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT]: TimelineEventOptions;
351
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT]: {
352
+ id: string;
353
+ label: string;
354
+ logo: string;
65
355
  icon: string;
66
- tooltip: string;
67
- action: (payload: unknown) => void;
356
+ packageName: string | undefined;
357
+ homepage: string | undefined;
68
358
  }[];
69
- nodeActions?: {
70
- icon: string;
71
- tooltip: string;
72
- action: (payload: unknown) => void;
359
+ [DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]: {
360
+ state: DevToolsState;
361
+ };
362
+ [DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]: {
363
+ state: DevToolsState;
364
+ oldState: DevToolsState;
365
+ };
366
+ [DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]: {
367
+ state: RouterInfo;
368
+ };
369
+ }
370
+ interface DevToolsMessagingHooks {
371
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT]) => void;
372
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT]) => void;
373
+ [DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT]) => void;
374
+ [DevToolsMessagingHookKeys.SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT]: () => void;
375
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT]) => void;
376
+ [DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]) => void;
377
+ [DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]) => void;
378
+ [DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]) => void;
379
+ }
380
+ interface DevToolsContextHooks extends DevToolsV6PluginAPIHooks {
381
+ [DevToolsContextHookKeys.ADD_INSPECTOR]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.ADD_INSPECTOR]) => void;
382
+ [DevToolsContextHookKeys.SEND_INSPECTOR_TREE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.SEND_INSPECTOR_TREE]) => void;
383
+ [DevToolsContextHookKeys.SEND_INSPECTOR_STATE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.SEND_INSPECTOR_STATE]) => void;
384
+ [DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE]) => void;
385
+ [DevToolsContextHookKeys.TIMELINE_LAYER_ADDED]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.TIMELINE_LAYER_ADDED]) => void;
386
+ [DevToolsContextHookKeys.TIMELINE_EVENT_ADDED]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.TIMELINE_EVENT_ADDED]) => void;
387
+ [DevToolsContextHookKeys.GET_COMPONENT_INSTANCES]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_INSTANCES]) => void;
388
+ [DevToolsContextHookKeys.GET_COMPONENT_BOUNDS]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_BOUNDS]) => void;
389
+ [DevToolsContextHookKeys.GET_COMPONENT_NAME]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_NAME]) => void;
390
+ [DevToolsContextHookKeys.COMPONENT_HIGHLIGHT]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.COMPONENT_HIGHLIGHT]) => void;
391
+ [DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT]: () => void;
392
+ }
393
+ declare function createDevToolsCtxHooks(): hookable.Hookable<DevToolsContextHooks & DevToolsMessagingHooks, hookable.HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>;
394
+
395
+ declare function createDevToolsApi(hooks: Hookable<DevToolsContextHooks & DevToolsMessagingHooks, HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>): {
396
+ getInspectorTree(payload: Pick<DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE], 'inspectorId' | 'filter'>): Promise<never[]>;
397
+ getInspectorState(payload: Pick<DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE], 'inspectorId' | 'nodeId'>): Promise<CustomInspectorState>;
398
+ editInspectorState(payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]): void;
399
+ sendInspectorState(inspectorId: string): void;
400
+ inspectComponentInspector(): Promise<string>;
401
+ cancelInspectComponentInspector(): void;
402
+ getComponentRenderCode(id: string): any;
403
+ scrollToComponent(id: string): void;
404
+ openInEditor: typeof openInEditor;
405
+ getVueInspector: typeof getComponentInspector;
406
+ toggleApp(id: string): void;
407
+ };
408
+ type DevToolsApiType = ReturnType<typeof createDevToolsApi>;
409
+
410
+ type DevToolsKitPluginBuffer = [PluginDescriptor, PluginSetupFunction];
411
+ declare const devtoolsPluginBuffer: DevToolsKitPluginBuffer[];
412
+ declare function addDevToolsPluginToBuffer(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
413
+
414
+ interface DevToolsKitInspector {
415
+ options: CustomInspectorOptions;
416
+ descriptor: PluginDescriptor;
417
+ treeFilter: string;
418
+ selectedNodeId: string;
419
+ appRecord: unknown;
420
+ }
421
+ declare const devtoolsInspector: DevToolsKitInspector[];
422
+ declare const callInspectorUpdatedHook: () => Promise<void>;
423
+ declare function addInspector(inspector: CustomInspectorOptions, descriptor: PluginDescriptor): void;
424
+ declare function getActiveInspectors(): {
425
+ id: string;
426
+ label: string;
427
+ logo: string;
428
+ icon: string;
429
+ packageName: string | undefined;
430
+ homepage: string | undefined;
431
+ }[];
432
+ declare function getInspectorInfo(id: string): {
433
+ id: string;
434
+ label: string;
435
+ logo: string | undefined;
436
+ packageName: string | undefined;
437
+ homepage: string | undefined;
438
+ timelineLayers: {
439
+ id: string;
440
+ label: string;
441
+ color: number;
73
442
  }[];
443
+ } | undefined;
444
+ declare function getInspector(id: string, app?: App$1): DevToolsKitInspector | undefined;
445
+ declare function getInspectorActions(id: string): {
446
+ icon: string;
447
+ tooltip?: string | undefined;
448
+ action: () => void | Promise<void>;
449
+ }[] | undefined;
450
+ declare function getInspectorNodeActions(id: string): {
451
+ icon: string;
452
+ tooltip?: string | undefined;
453
+ action: (nodeId: string) => void | Promise<void>;
454
+ }[] | undefined;
455
+
456
+ declare function getDevToolsEnv(): {
457
+ vitePluginDetected: boolean;
458
+ };
459
+ declare function setDevToolsEnv(env: Partial<any>): void;
460
+
461
+ declare const ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__";
462
+ declare const ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__";
463
+ declare const devtoolsRouterInfo: RouterInfo;
464
+ declare const devtoolsRouter: {
465
+ value: Router;
466
+ };
467
+
468
+ interface DevtoolsContext {
469
+ hooks: Hookable<DevToolsContextHooks & DevToolsMessagingHooks, HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>;
470
+ state: DevToolsState & {
471
+ activeAppRecordId: string;
472
+ activeAppRecord: DevToolsAppRecords;
473
+ appRecords: DevToolsAppRecords[];
474
+ };
475
+ api: DevToolsApiType;
74
476
  }
75
- declare function addInspector(payload: Inspector): void;
76
- declare function getInspector(inspectorId: string): Inspector | undefined;
77
- declare function updateInspector(inspectorId: string, payload: Partial<Inspector>): void;
477
+ declare const devtoolsContext: DevtoolsContext;
78
478
 
79
- type PluginApi = DevToolsPluginApi;
80
- declare type PluginSettingsItem = {
479
+ declare class DevToolsV6PluginAPI {
480
+ private plugin;
481
+ private hooks;
482
+ constructor({ plugin, ctx }: {
483
+ plugin: DevToolsPlugin;
484
+ ctx: DevtoolsContext;
485
+ });
486
+ get on(): {
487
+ visitComponentTree: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE]) => void;
488
+ inspectComponent: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT]) => void;
489
+ editComponentState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE]) => void;
490
+ getInspectorTree: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE]) => void;
491
+ getInspectorState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE]) => void;
492
+ editInspectorState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]) => void;
493
+ inspectTimelineEvent: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT]) => void;
494
+ timelineCleared: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED]) => void;
495
+ setPluginSettings: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS]) => void;
496
+ };
497
+ notifyComponentUpdate(instance?: ComponentInstance): void;
498
+ addInspector(options: CustomInspectorOptions): void;
499
+ sendInspectorTree(inspectorId: string): void;
500
+ sendInspectorState(inspectorId: string): void;
501
+ selectInspectorNode(inspectorId: string, nodeId: string): void;
502
+ now(): number;
503
+ addTimelineLayer(options: TimelineLayerOptions): void;
504
+ addTimelineEvent(options: TimelineEventOptions): void;
505
+ getSettings(pluginId?: string): {};
506
+ getComponentInstances(app: App): Promise<ComponentInstance[]>;
507
+ getComponentBounds(instance: ComponentInstance): Promise<ComponentBounds>;
508
+ getComponentName(instance: ComponentInstance): Promise<string>;
509
+ highlightElement(instance: ComponentInstance): Promise<any>;
510
+ unhighlightElement(): Promise<any>;
511
+ }
512
+
513
+ declare const DevToolsPluginAPI: typeof DevToolsV6PluginAPI;
514
+
515
+ type PluginSettingsItem = {
81
516
  label: string;
82
517
  description?: string;
83
518
  } & ({
@@ -95,10 +530,11 @@ declare type PluginSettingsItem = {
95
530
  type: 'text';
96
531
  defaultValue: string;
97
532
  });
533
+ type PluginSetupFunction = (api: InstanceType<typeof DevToolsPluginAPI>) => void;
98
534
  interface PluginDescriptor {
99
535
  id: string;
100
536
  label: string;
101
- app: App<any>;
537
+ app: App$1<any>;
102
538
  packageName?: string;
103
539
  homepage?: string;
104
540
  componentStateTypes?: string[];
@@ -112,7 +548,12 @@ interface PluginDescriptor {
112
548
  enableEarlyProxy?: boolean;
113
549
  settings?: Record<string, PluginSettingsItem>;
114
550
  }
115
- type PluginSetupFunction = (api: PluginApi) => void;
551
+ interface DevToolsPlugin {
552
+ descriptor: PluginDescriptor;
553
+ setupFn: PluginSetupFunction;
554
+ }
555
+
556
+ type App = any;
116
557
  type VueAppInstance = ComponentInternalInstance & {
117
558
  type: {
118
559
  _componentTag: string | undefined;
@@ -155,28 +596,56 @@ type VueAppInstance = ComponentInternalInstance & {
155
596
  setupState: Record<string, unknown>;
156
597
  provides: Record<string | symbol, unknown>;
157
598
  ctx: Record<string, unknown>;
158
- } & App<any>;
599
+ } & App;
159
600
  interface AppRecord {
160
- id: string | number;
601
+ id: string;
161
602
  name: string;
162
603
  app?: App;
163
604
  version?: string;
164
605
  types?: Record<string, string | symbol>;
165
606
  instanceMap: Map<string, VueAppInstance>;
166
607
  rootInstance: VueAppInstance;
167
- api?: PluginApi;
168
608
  routerId?: string;
169
- moduleDetectives?: {
170
- vueQuery: boolean;
171
- vueRouter: boolean;
172
- veeValidate: boolean;
173
- pinia: boolean;
174
- vuex: boolean;
175
- vueI18n: boolean;
176
- };
177
609
  }
178
610
 
179
- type HookAppInstance = App & VueAppInstance;
611
+ interface TimelineEvent<TData = any, TMeta = any> {
612
+ time: number;
613
+ data: TData;
614
+ logType?: 'default' | 'warning' | 'error';
615
+ meta?: TMeta;
616
+ groupId?: number | string;
617
+ title?: string;
618
+ subtitle?: string;
619
+ }
620
+ interface ScreenshotOverlayEvent {
621
+ layerId: string;
622
+ renderMeta: any;
623
+ }
624
+ interface ScreenshotOverlayRenderContext<TData = any, TMeta = any> {
625
+ screenshot: ScreenshotData;
626
+ events: (TimelineEvent<TData, TMeta> & ScreenshotOverlayEvent)[];
627
+ index: number;
628
+ }
629
+ type ScreenshotOverlayRenderResult = HTMLElement | string | false;
630
+ interface ScreenshotData {
631
+ time: number;
632
+ }
633
+ interface TimelineLayerOptions<TData = any, TMeta = any> {
634
+ id: string;
635
+ label: string;
636
+ color: number;
637
+ skipScreenshots?: boolean;
638
+ groupsOnly?: boolean;
639
+ ignoreNoDurationGroups?: boolean;
640
+ screenshotOverlayRender?: (event: TimelineEvent<TData, TMeta> & ScreenshotOverlayEvent, ctx: ScreenshotOverlayRenderContext) => ScreenshotOverlayRenderResult | Promise<ScreenshotOverlayRenderResult>;
641
+ }
642
+ interface TimelineEventOptions {
643
+ layerId: string;
644
+ event: TimelineEvent;
645
+ all?: boolean;
646
+ }
647
+
648
+ type HookAppInstance = App$1 & VueAppInstance;
180
649
  declare enum DevToolsHooks {
181
650
  APP_INIT = "app:init",
182
651
  APP_UNMOUNT = "app:unmount",
@@ -193,13 +662,13 @@ declare enum DevToolsHooks {
193
662
  APP_CONNECTED = "app:connected",
194
663
  SETUP_DEVTOOLS_PLUGIN = "devtools-plugin:setup"
195
664
  }
196
- interface DevToolsEvent$1 {
665
+ interface DevToolsEvent {
197
666
  [DevToolsHooks.APP_INIT]: (app: VueAppInstance['appContext']['app'], version: string) => void | Promise<void>;
198
667
  [DevToolsHooks.APP_CONNECTED]: () => void;
199
668
  [DevToolsHooks.APP_UNMOUNT]: (app: VueAppInstance['appContext']['app']) => void | Promise<void>;
200
669
  [DevToolsHooks.COMPONENT_ADDED]: (app: HookAppInstance, uid: number, parentUid: number, component: VueAppInstance) => void | Promise<void>;
201
- [DevToolsHooks.COMPONENT_UPDATED]: DevToolsEvent$1['component:added'];
202
- [DevToolsHooks.COMPONENT_REMOVED]: DevToolsEvent$1['component:added'];
670
+ [DevToolsHooks.COMPONENT_UPDATED]: DevToolsEvent['component:added'];
671
+ [DevToolsHooks.COMPONENT_REMOVED]: DevToolsEvent['component:added'];
203
672
  [DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction, options?: {
204
673
  target?: string;
205
674
  }) => void;
@@ -214,60 +683,22 @@ interface DevToolsHook {
214
683
  once: <T extends Function>(event: DevToolsHooks, handler: T) => void;
215
684
  off: <T extends Function>(event: DevToolsHooks, handler: T) => void;
216
685
  appRecords: AppRecord[];
217
- apps: Record<number, {
218
- componentCount: number;
219
- }>;
686
+ apps: any;
220
687
  cleanupBuffer?: (matchArg: unknown) => boolean;
221
688
  }
222
689
  interface VueHooks {
223
690
  on: {
224
- vueAppInit: (fn: DevToolsEvent$1[DevToolsHooks.APP_INIT]) => void;
225
- vueAppUnmount: (fn: DevToolsEvent$1[DevToolsHooks.APP_UNMOUNT]) => void;
226
- vueAppConnected: (fn: DevToolsEvent$1[DevToolsHooks.APP_CONNECTED]) => void;
227
- componentAdded: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_ADDED]) => () => void;
228
- componentUpdated: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_UPDATED]) => () => void;
229
- componentRemoved: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_REMOVED]) => () => void;
230
- setupDevtoolsPlugin: (fn: DevToolsEvent$1[DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]) => void;
691
+ vueAppInit: (fn: DevToolsEvent[DevToolsHooks.APP_INIT]) => void;
692
+ vueAppUnmount: (fn: DevToolsEvent[DevToolsHooks.APP_UNMOUNT]) => void;
693
+ vueAppConnected: (fn: DevToolsEvent[DevToolsHooks.APP_CONNECTED]) => void;
694
+ componentAdded: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_ADDED]) => () => void;
695
+ componentUpdated: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_UPDATED]) => () => void;
696
+ componentRemoved: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_REMOVED]) => () => void;
697
+ setupDevtoolsPlugin: (fn: DevToolsEvent[DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]) => void;
231
698
  };
232
699
  setupDevToolsPlugin: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction) => void;
233
700
  }
234
701
 
235
- interface CustomCommandAction {
236
- type: 'url';
237
- /**
238
- * Url of the action, if set, execute the action will open the url
239
- */
240
- src: string;
241
- }
242
- interface CustomCommand {
243
- /**
244
- * The id of the command, should be unique
245
- */
246
- id: string;
247
- title: string;
248
- description?: string;
249
- /**
250
- * Order of the command, bigger number will be shown first
251
- * @default 0
252
- */
253
- order?: number;
254
- /**
255
- * Icon of the tab, support any Iconify icons, or a url to an image
256
- */
257
- icon?: string;
258
- /**
259
- * - action of the command
260
- * - __NOTE__: This will be ignored if `children` is set
261
- */
262
- action?: CustomCommandAction;
263
- /**
264
- * - children of action, if set, execute the action will show the children
265
- */
266
- children?: Omit<CustomCommand, 'children'>[];
267
- }
268
- declare function addCustomCommand(action: CustomCommand): void;
269
- declare function removeCustomCommand(actionId: string): void;
270
-
271
702
  type TabCategory = 'pinned' | 'app' | 'modules' | 'advanced';
272
703
  type ModuleView = ModuleIframeView | ModuleVNodeView;
273
704
  interface ModuleIframeView {
@@ -320,20 +751,38 @@ interface CustomTab {
320
751
  category?: TabCategory;
321
752
  }
322
753
 
323
- declare function addCustomTab(tab: CustomTab): void;
324
-
325
- interface DevToolsState {
326
- connected: boolean;
327
- clientConnected: boolean;
328
- vitePluginDetected: boolean;
329
- appRecords: AppRecord[];
330
- activeAppRecord: AppRecord | null;
331
- selectedComponentId: string | null;
332
- pluginBuffer: [PluginDescriptor, PluginSetupFunction][];
333
- tabs: CustomTab[];
334
- commands: CustomCommand[];
335
- activeAppRecordId: string | null;
336
- highPerfModeEnabled: boolean;
754
+ interface CustomCommandAction {
755
+ type: 'url';
756
+ /**
757
+ * Url of the action, if set, execute the action will open the url
758
+ */
759
+ src: string;
760
+ }
761
+ interface CustomCommand {
762
+ /**
763
+ * The id of the command, should be unique
764
+ */
765
+ id: string;
766
+ title: string;
767
+ description?: string;
768
+ /**
769
+ * Order of the command, bigger number will be shown first
770
+ * @default 0
771
+ */
772
+ order?: number;
773
+ /**
774
+ * Icon of the tab, support any Iconify icons, or a url to an image
775
+ */
776
+ icon?: string;
777
+ /**
778
+ * - action of the command
779
+ * - __NOTE__: This will be ignored if `children` is set
780
+ */
781
+ action?: CustomCommandAction;
782
+ /**
783
+ * - children of action, if set, execute the action will show the children
784
+ */
785
+ children?: Omit<CustomCommand, 'children'>[];
337
786
  }
338
787
 
339
788
  interface RouterInfo {
@@ -341,41 +790,81 @@ interface RouterInfo {
341
790
  routes: RouteRecordNormalized[];
342
791
  }
343
792
 
344
- interface DevToolsContext {
345
- appRecord: AppRecord | null;
346
- api: DevToolsPluginApi;
347
- inspector: Inspector[];
348
- timelineLayer: TimelineLayerItem[];
349
- routerInfo: RouterInfo;
350
- router: Router | null;
351
- activeInspectorTreeId: string;
352
- componentPluginHookBuffer: (() => void)[];
353
- clear: () => void;
793
+ declare function initDevTools(): void;
794
+ declare function onDevToolsClientConnected(fn: () => void): Promise<void>;
795
+
796
+ declare function createComponentsDevToolsPlugin(app: App): [PluginDescriptor, PluginSetupFunction];
797
+
798
+ declare function setupDevToolsPlugin(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
799
+ declare function callDevToolsPluginSetupFn(plugin: [PluginDescriptor, PluginSetupFunction], app: App): void;
800
+ declare function registerDevToolsPlugin(app: App): void;
801
+
802
+ declare function toggleHighPerfMode(state?: boolean): void;
803
+
804
+ declare function setIframeServerContext(context: HTMLIFrameElement): void;
805
+
806
+ interface EventEmitter$2 {
807
+ on: (name: string, handler: (data: any) => void) => void;
808
+ send: (name: string, ...args: any[]) => void;
809
+ }
810
+ interface ViteClientContext extends EventEmitter$2 {
354
811
  }
812
+ interface ViteDevServer {
813
+ hot?: EventEmitter$2;
814
+ ws?: EventEmitter$2;
815
+ }
816
+ declare function setViteClientContext(context: ViteClientContext): void;
817
+ declare function setViteServerContext(context: ViteDevServer): void;
355
818
 
356
- interface DevToolsEnv {
357
- vitePluginDetected: boolean;
819
+ interface EventEmitter$1 {
820
+ on: (name: string, handler: (data: any) => void) => void;
821
+ send: (name: string, ...args: any[]) => void;
822
+ emit: (name: string, ...args: any[]) => void;
823
+ }
824
+ interface ElectronClientContext extends EventEmitter$1 {
358
825
  }
826
+ interface ElectronProxyContext extends EventEmitter$1 {
827
+ }
828
+ interface ElectronServerContext extends EventEmitter$1 {
829
+ }
830
+ declare function setElectronClientContext(context: ElectronClientContext): void;
831
+ declare function setElectronProxyContext(context: ElectronProxyContext): void;
832
+ declare function setElectronServerContext(context: ElectronServerContext): void;
359
833
 
360
- interface InspectorNodeTag {
361
- label: string;
362
- textColor: number;
363
- backgroundColor: number;
364
- tooltip?: string;
834
+ interface EventEmitter {
835
+ onMessage: {
836
+ addListener: (listener: (name: string, ...args: any[]) => void) => void;
837
+ };
838
+ postMessage: (name: string, ...args: any[]) => void;
365
839
  }
366
- interface ComponentTreeNode {
367
- uid: number | string;
368
- id: string;
369
- name: string;
370
- renderKey: string | number;
371
- inactive: boolean;
372
- isFragment: boolean;
373
- children: ComponentTreeNode[];
374
- domOrder?: number[];
375
- tags: InspectorNodeTag[];
376
- autoOpen: boolean;
377
- file: string;
840
+ interface ExtensionClientContext extends EventEmitter {
378
841
  }
842
+ declare function getExtensionClientContext(): ExtensionClientContext;
843
+ declare function setExtensionClientContext(context: ExtensionClientContext): void;
844
+
845
+ type Presets = 'iframe' | 'electron' | 'vite' | 'broadcast' | 'extension';
846
+
847
+ interface CreateRpcClientOptions<RemoteFunctions> {
848
+ options?: BirpcOptions<RemoteFunctions>;
849
+ preset?: Presets;
850
+ channel?: ChannelOptions;
851
+ }
852
+ interface CreateRpcServerOptions<RemoteFunctions> {
853
+ options?: BirpcOptions<RemoteFunctions>;
854
+ preset?: Presets;
855
+ channel?: ChannelOptions;
856
+ }
857
+ declare function setRpcServerToGlobal<R, L>(rpc: BirpcGroup<R, L>): void;
858
+ declare function getRpcClient<R, L extends object = Record<string, never>>(): BirpcReturn<R, L>;
859
+ declare function getRpcServer<R, L extends object = Record<string, never>>(): BirpcGroup<R, L>;
860
+ declare function setViteRpcClientToGlobal<R, L>(rpc: BirpcReturn<R, L>): void;
861
+ declare function setViteRpcServerToGlobal<R, L>(rpc: BirpcGroup<R, L>): void;
862
+ declare function getViteRpcClient<R, L extends object = Record<string, never>>(): BirpcReturn<R, L>;
863
+ declare function getViteRpcServer<R, L extends object = Record<string, never>>(): BirpcGroup<R, L>;
864
+ declare function createRpcClient<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(functions: LocalFunctions, options?: CreateRpcClientOptions<RemoteFunctions>): BirpcReturn<RemoteFunctions, LocalFunctions> | undefined;
865
+ declare function createRpcServer<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(functions: LocalFunctions, options?: CreateRpcServerOptions<RemoteFunctions>): void;
866
+ declare function createRpcProxy<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(options?: CreateRpcClientOptions<RemoteFunctions>): BirpcReturn<RemoteFunctions, LocalFunctions>;
867
+
379
868
  interface InspectorTreeApiPayload {
380
869
  app?: VueAppInstance;
381
870
  inspectorId?: string;
@@ -477,15 +966,6 @@ interface InspectorStateEditorPayload {
477
966
 
478
967
  type customTypeEnums = 'function' | 'bigint' | 'map' | 'set' | 'store' | 'router' | 'component' | 'component-definition' | 'HTMLElement' | 'component-definition' | 'date';
479
968
 
480
- interface OpenInEditorOptions {
481
- baseUrl?: string;
482
- file?: string;
483
- line?: number;
484
- column?: number;
485
- }
486
- declare function setOpenInEditorBaseUrl(url: string): void;
487
- declare function openInEditor(options?: OpenInEditorOptions): void;
488
-
489
969
  interface ComponentHighLighterOptions {
490
970
  bounds: ComponentBoundingRect;
491
971
  name?: string;
@@ -503,146 +983,10 @@ declare function cancelInspectComponentHighLighter(): void;
503
983
  declare function inspectComponentHighLighter(): Promise<string>;
504
984
  declare function scrollToComponent(options: ScrollToComponentOptions): void;
505
985
 
506
- declare enum DevToolsEvents {
507
- DEVTOOLS_STATE_UPDATED = "devtools:state-updated",
508
- DEVTOOLS_CONNECTED_UPDATED = "devtools:connected-updated",
509
- ROUTER_INFO_UPDATED = "router-info:updated",
510
- COMPONENT_STATE_INSPECT = "component-state:inspect",
511
- COMPONENT_UPDATED = "component:updated",
512
- TOGGLE_COMPONENT_HIGHLIGHTER = "component-highlighter:toggle",
513
- GET_COMPONENT_BOUNDING_RECT = "component-bounding-rect:get",
514
- SCROLL_TO_COMPONENT = "scroll-to-component",
515
- GET_COMPONENT_RENDER_CODE = "component-render-code:get",
516
- GET_INSPECTOR_TREE = "inspector-tree:get",
517
- SEND_INSPECTOR_TREE = "inspector-tree:send",
518
- GET_INSPECTOR_STATE = "inspector-state:get",
519
- EDIT_INSPECTOR_STATE = "inspector-state:edit",
520
- SEND_INSPECTOR_STATE = "inspector-state:send",
521
- VISIT_COMPONENT_TREE = "component-tree:visit",
522
- ADD_TIMELINE_EVENT = "timeline:add-event",
523
- CUSTOM_TABS_UPDATED = "custom-tabs:updated",
524
- CUSTOM_COMMANDS_UPDATED = "custom-commands:updated"
525
- }
526
- interface DevToolsEvent {
527
- [DevToolsEvents.ADD_TIMELINE_EVENT]: (payload: TimelineEvent) => void;
528
- [DevToolsEvents.ROUTER_INFO_UPDATED]: (routerInfo: RouterInfo) => void;
529
- [DevToolsEvents.TOGGLE_COMPONENT_HIGHLIGHTER]: (payload: ComponentHighLighterOptions) => void;
530
- [DevToolsEvents.SCROLL_TO_COMPONENT]: (payload: ScrollToComponentOptions) => void;
531
- [DevToolsEvents.GET_COMPONENT_RENDER_CODE]: (id: string) => void;
532
- [DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]: (payload: ComponentBoundingRectApiPayload) => void;
533
- [DevToolsEvents.DEVTOOLS_STATE_UPDATED]: (state: DevToolsState, oldState: DevToolsState) => void;
534
- [DevToolsEvents.DEVTOOLS_CONNECTED_UPDATED]: (state: DevToolsState, oldState: DevToolsState) => void;
535
- [DevToolsEvents.COMPONENT_STATE_INSPECT]: (payload: {
536
- componentInstance: VueAppInstance | undefined;
537
- app: VueAppInstance | undefined;
538
- instanceData: InspectorStateApiPayload['state'];
539
- }) => void;
540
- [DevToolsEvents.GET_INSPECTOR_TREE]: (payload: InspectorTreeApiPayload) => Promise<void>;
541
- [DevToolsEvents.SEND_INSPECTOR_TREE]: (payload: {
542
- inspectorId: string;
543
- data: InspectorTreeApiPayload['rootNodes'];
544
- }) => void;
545
- [DevToolsEvents.GET_INSPECTOR_STATE]: (payload: InspectorStateApiPayload, ctx: {
546
- currentTab: string;
547
- }) => Promise<void>;
548
- [DevToolsEvents.EDIT_INSPECTOR_STATE]: (payload: InspectorStateEditorPayload) => Promise<void>;
549
- [DevToolsEvents.SEND_INSPECTOR_STATE]: (payload: string) => void;
550
- [DevToolsEvents.VISIT_COMPONENT_TREE]: (payload: {
551
- componentInstance: VueAppInstance | undefined;
552
- app: VueAppInstance | undefined;
553
- treeNode: ComponentTreeNode;
554
- filter: string;
555
- }) => void;
556
- [DevToolsEvents.CUSTOM_TABS_UPDATED]: (payload: CustomTab[]) => void;
557
- [DevToolsEvents.CUSTOM_COMMANDS_UPDATED]: (payload: CustomCommand[]) => void;
558
- [DevToolsEvents.COMPONENT_UPDATED]: () => void;
559
- }
560
- type DevToolsEventParams<T extends keyof DevToolsEvent> = Parameters<DevToolsEvent[T]>;
561
-
562
- declare const on: {
563
- readonly addTimelineEvent: (fn: DevToolsEvent[DevToolsEvents.ADD_TIMELINE_EVENT]) => void;
564
- readonly inspectComponent: (fn: DevToolsEvent[DevToolsEvents.COMPONENT_STATE_INSPECT]) => void;
565
- readonly visitComponentTree: (fn: DevToolsEvent[DevToolsEvents.VISIT_COMPONENT_TREE]) => void;
566
- readonly setPluginSettings: () => void;
567
- readonly getInspectorTree: (fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_TREE]) => void;
568
- readonly getInspectorState: (fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_STATE]) => void;
569
- readonly sendInspectorTree: (fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_TREE]) => void;
570
- readonly sendInspectorState: (fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_STATE]) => void;
571
- readonly editInspectorState: (fn: DevToolsEvent[DevToolsEvents.EDIT_INSPECTOR_STATE]) => void;
572
- readonly editComponentState: () => void;
573
- readonly componentUpdated: (fn: DevToolsEvent[DevToolsEvents.COMPONENT_UPDATED]) => void;
574
- readonly routerInfoUpdated: (fn: DevToolsEvent[DevToolsEvents.ROUTER_INFO_UPDATED]) => void;
575
- readonly getComponentBoundingRect: (fn: DevToolsEvent[DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]) => void;
576
- readonly customTabsUpdated: (fn: DevToolsEvent[DevToolsEvents.CUSTOM_TABS_UPDATED]) => void;
577
- readonly customCommandsUpdated: (fn: DevToolsEvent[DevToolsEvents.CUSTOM_COMMANDS_UPDATED]) => void;
578
- readonly devtoolsStateUpdated: (fn: DevToolsEvent[DevToolsEvents.DEVTOOLS_STATE_UPDATED]) => void;
579
- };
580
-
581
- declare function remove(): void;
582
-
583
- declare function setupDevToolsPlugin(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
584
-
585
- declare class DevToolsPluginApi {
586
- on: typeof on;
587
- clear: typeof remove;
588
- constructor();
589
- addTimelineLayer(payload: TimelineLayerItem): void;
590
- addTimelineEvent(...params: DevToolsEventParams<DevToolsEvents.ADD_TIMELINE_EVENT>): void;
591
- addInspector(payload: InspectorApiPayload): void;
592
- getInspectorNodeActions(inspectorId: string): {
593
- icon: string;
594
- tooltip: string;
595
- }[];
596
- callInspectorNodeAction(inspectorId: string, actionIndex: number, nodeId: string): void;
597
- getInspectorActions(inspectorId: string): {
598
- icon: string;
599
- tooltip: string;
600
- }[];
601
- callInspectorAction(inspectorId: string, actionIndex: number, nodeId: string): void;
602
- highlightElement(instance: VueAppInstance): void;
603
- unhighlightElement(): void;
604
- getInspectorTree(payload?: DevToolsEventParams<DevToolsEvents.GET_INSPECTOR_TREE>[0]): Promise<ComponentTreeNode[]>;
605
- getInspectorState(payload?: {
606
- inspectorId?: string;
607
- nodeId?: string;
608
- }): any;
609
- editInspectorState(payload: InspectorStateEditorPayload): Promise<void>;
610
- sendInspectorTree(inspectorId: string): Promise<void>;
611
- sendInspectorState(inspectorId: string): Promise<void>;
612
- getComponentInstances(app: VueAppInstance): Promise<VueAppInstance[]>;
613
- visitComponentTree(...params: DevToolsEventParams<DevToolsEvents.VISIT_COMPONENT_TREE>): void;
614
- notifyComponentUpdate(): void;
615
- now(): number;
616
- toggleComponentInspector(...params: DevToolsEventParams<DevToolsEvents.TOGGLE_COMPONENT_HIGHLIGHTER>): void;
617
- inspectComponentInspector(): Promise<string>;
618
- cancelInspectComponentInspector(): void;
619
- scrollToComponent(...params: DevToolsEventParams<DevToolsEvents.SCROLL_TO_COMPONENT>): void;
620
- getComponentRenderCode(id: string): any;
621
- getComponentBoundingRect(...params: DevToolsEventParams<DevToolsEvents.GET_COMPONENT_BOUNDING_RECT>): string;
622
- toggleApp(id: string): Promise<void>;
623
- addCustomTab(tab: CustomTab): void;
624
- addCustomCommand(action: CustomCommand): void;
625
- removeCustomCommand(actionId: CustomCommand['id']): void;
626
- openInEditor(payload: OpenInEditorOptions): void;
627
- getVueInspector(): Promise<ComponentInspector>;
628
- }
629
-
630
- declare const hook: VueHooks;
631
-
632
- declare const devtoolsState: DevToolsState;
633
-
634
- declare const devtoolsContext: DevToolsContext;
635
-
636
- declare function setDevToolsEnv(env: Partial<DevToolsEnv>): void;
637
-
638
- declare function initDevTools(): void;
639
- declare function onDevToolsConnected(fn: () => void): Promise<void>;
640
- declare function onDevToolsClientConnected(fn: () => void): Promise<void>;
641
-
642
- declare function toggleHighPerfMode(state?: boolean): void;
643
-
644
986
  declare function getInspectorStateValueType(value: any, raw?: boolean): string;
645
- declare function formatInspectorStateValue(value: any, quotes?: boolean): any;
987
+ declare function formatInspectorStateValue(value: any, quotes?: boolean, options?: {
988
+ customClass?: Partial<Record<'string', string>>;
989
+ }): any;
646
990
  declare function getRaw(value: InspectorState['value']): {
647
991
  value: object | string | number | boolean | null;
648
992
  inherit: {} | {
@@ -663,20 +1007,41 @@ declare const NAN = "__vue_devtool_nan__";
663
1007
 
664
1008
  declare function isPlainObject(obj: unknown): boolean;
665
1009
 
666
- interface DevToolsType {
667
- state: typeof devtoolsState;
668
- context: typeof devtoolsContext;
669
- hook: typeof hook;
670
- init: typeof initDevTools;
671
- get api(): typeof devtoolsContext.api;
672
- }
673
-
674
1010
  declare const devtools: {
675
- state: DevToolsState;
676
- context: DevToolsContext;
677
1011
  hook: VueHooks;
678
- init: typeof initDevTools;
679
- readonly api: DevToolsPluginApi;
1012
+ init: () => void;
1013
+ readonly ctx: DevtoolsContext;
1014
+ readonly api: {
1015
+ getInspectorTree(payload: Pick<{
1016
+ app: any;
1017
+ inspectorId: string;
1018
+ filter: string;
1019
+ rootNodes: CustomInspectorNode[];
1020
+ }, "inspectorId" | "filter">): Promise<never[]>;
1021
+ getInspectorState(payload: Pick<{
1022
+ app: any;
1023
+ inspectorId: string;
1024
+ nodeId: string;
1025
+ state: CustomInspectorState;
1026
+ }, "inspectorId" | "nodeId">): Promise<CustomInspectorState>;
1027
+ editInspectorState(payload: {
1028
+ app: any;
1029
+ inspectorId: string;
1030
+ nodeId: string;
1031
+ path: string[];
1032
+ type: string;
1033
+ state: EditStatePayload;
1034
+ set: (object: any, path?: string | string[] | undefined, value?: any, cb?: ((object: any, field: string, value: any) => void) | undefined) => void;
1035
+ }): void;
1036
+ sendInspectorState(inspectorId: string): void;
1037
+ inspectComponentInspector(): Promise<string>;
1038
+ cancelInspectComponentInspector(): void;
1039
+ getComponentRenderCode(id: string): any;
1040
+ scrollToComponent(id: string): void;
1041
+ openInEditor: typeof openInEditor;
1042
+ getVueInspector: typeof getComponentInspector;
1043
+ toggleApp(id: string): void;
1044
+ };
680
1045
  };
681
1046
 
682
- export { type AddInspectorApiPayload, type AppRecord, type ComponentBoundingRect, type ComponentBoundingRectApiPayload, type ComponentHighLighterOptions, type ComponentInspector, type ComponentTreeNode, type CustomCommand, type CustomCommandAction, type CustomTab, type DevToolsContext, type DevToolsEnv, type DevToolsEvent$1 as DevToolsEvent, type DevToolsHook, DevToolsHooks, type DevToolsState, type DevToolsType, INFINITY, type Inspector, type InspectorApiPayload, type InspectorCustomState, type InspectorNodeTag, type InspectorState, type InspectorStateApiPayload, type InspectorStateEditorPayload, type InspectorTree, type InspectorTreeApiPayload, NAN, NEGATIVE_INFINITY, type OpenInEditorOptions, type PluginApi, type PluginDescriptor, type PluginSettingsItem, type PluginSetupFunction, type PropPath, type RouterInfo, type ScrollToComponentOptions, type TimelineEvent, type TimelineLayerItem, UNDEFINED, type VueAppInstance, type VueHooks, addCustomCommand, addCustomTab, addInspector, addTimelineLayer, cancelInspectComponentHighLighter, type customTypeEnums, devtools, formatInspectorStateValue, getComponentInspector, getInspector, getInspectorStateValueType, getRaw, getTimelineLayer, highlight, inspectComponentHighLighter, isPlainObject, onDevToolsClientConnected, onDevToolsConnected, openInEditor, parse, removeCustomCommand, scrollToComponent, setDevToolsEnv, setOpenInEditorBaseUrl, setupDevToolsPlugin, stringify, toEdit, toSubmit, toggleComponentHighLighter, toggleComponentInspectorEnabled, toggleHighPerfMode, unhighlight, updateInspector };
1047
+ export { type AddInspectorApiPayload, type App, type AppRecord, type ComponentBoundingRect, type ComponentBoundingRectApiPayload, type ComponentBounds, type ComponentHighLighterOptions, type ComponentInspector, type ComponentInstance, type ComponentState, type ComponentTreeNode, type CreateRpcClientOptions, type CreateRpcServerOptions, type CustomCommand, type CustomCommandAction, type CustomInspectorNode, type CustomInspectorOptions, type CustomInspectorState, type CustomTab, type DevToolsApiType, type DevToolsAppRecords, DevToolsContextHookKeys, type DevToolsContextHookPayloads, type DevToolsContextHooks, type DevToolsEvent, type DevToolsHook, DevToolsHooks, DevToolsMessagingHookKeys, type DevToolsMessagingHookPayloads, type DevToolsMessagingHooks, type DevToolsPlugin, type DevToolsState, DevToolsV6PluginAPIHookKeys, type DevToolsV6PluginAPIHookPayloads, type DevToolsV6PluginAPIHooks, type DevtoolsContext, type EditStatePayload, INFINITY, type InspectedComponentData, type InspectorCustomState, type InspectorNodeTag, type InspectorState, type InspectorStateApiPayload, type InspectorStateEditorPayload, type InspectorTree, type InspectorTreeApiPayload, type ModuleIframeView, type ModuleVNodeView, type ModuleView, NAN, NEGATIVE_INFINITY, type OpenInEditorOptions, type PluginDescriptor, type PluginSetupFunction, type Presets, type PropPath, ROUTER_INFO_KEY, ROUTER_KEY, type RouterInfo, type ScreenshotData, type ScreenshotOverlayEvent, type ScreenshotOverlayRenderContext, type ScreenshotOverlayRenderResult, type ScrollToComponentOptions, type StateBase, type TimelineEvent, type TimelineEventOptions, type TimelineLayerOptions, UNDEFINED, type VueAppInstance, type VueHooks, activeAppRecord, addCustomCommand, addCustomTab, addDevToolsAppRecord, addDevToolsPluginToBuffer, addInspector, callConnectedUpdatedHook, callDevToolsPluginSetupFn, callInspectorUpdatedHook, callStateUpdatedHook, cancelInspectComponentHighLighter, createComponentsDevToolsPlugin, createDevToolsApi, createDevToolsCtxHooks, createRpcClient, createRpcProxy, createRpcServer, type customTypeEnums, devtools, devtoolsAppRecords, devtoolsContext, devtoolsInspector, devtoolsPluginBuffer, devtoolsRouter, devtoolsRouterInfo, devtoolsState, formatInspectorStateValue, getActiveInspectors, getComponentInspector, getDevToolsEnv, getExtensionClientContext, getInspector, getInspectorActions, getInspectorInfo, getInspectorNodeActions, getInspectorStateValueType, getRaw, getRpcClient, getRpcServer, getViteRpcClient, getViteRpcServer, highlight, initDevTools, inspectComponentHighLighter, isPlainObject, onDevToolsClientConnected, onDevToolsConnected, openInEditor, parse, registerDevToolsPlugin, removeCustomCommand, removeDevToolsAppRecord, resetDevToolsState, scrollToComponent, setActiveAppRecord, setActiveAppRecordId, setDevToolsEnv, setElectronClientContext, setElectronProxyContext, setElectronServerContext, setExtensionClientContext, setIframeServerContext, setOpenInEditorBaseUrl, setRpcServerToGlobal, setViteClientContext, setViteRpcClientToGlobal, setViteRpcServerToGlobal, setViteServerContext, setupDevToolsPlugin, stringify, toEdit, toSubmit, toggleClientConnected, toggleComponentHighLighter, toggleComponentInspectorEnabled, toggleHighPerfMode, unhighlight, updateDevToolsState };