@vue/devtools-kit 7.2.0 → 7.3.0-beta.1

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,491 @@ 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?: {
65
- icon: string;
66
- tooltip: string;
67
- action: (payload: unknown) => void;
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;
355
+ packageName: string | undefined;
356
+ homepage: string | undefined;
68
357
  }[];
69
- nodeActions?: {
70
- icon: string;
71
- tooltip: string;
72
- action: (payload: unknown) => void;
358
+ [DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]: {
359
+ state: DevToolsState;
360
+ };
361
+ [DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]: {
362
+ state: DevToolsState;
363
+ oldState: DevToolsState;
364
+ };
365
+ [DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]: {
366
+ state: RouterInfo;
367
+ };
368
+ }
369
+ interface DevToolsMessagingHooks {
370
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT]) => void;
371
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT]) => void;
372
+ [DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT]) => void;
373
+ [DevToolsMessagingHookKeys.SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT]: () => void;
374
+ [DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT]) => void;
375
+ [DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED]) => void;
376
+ [DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED]) => void;
377
+ [DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]: (payload: DevToolsMessagingHookPayloads[DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED]) => void;
378
+ }
379
+ interface DevToolsContextHooks extends DevToolsV6PluginAPIHooks {
380
+ [DevToolsContextHookKeys.ADD_INSPECTOR]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.ADD_INSPECTOR]) => void;
381
+ [DevToolsContextHookKeys.SEND_INSPECTOR_TREE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.SEND_INSPECTOR_TREE]) => void;
382
+ [DevToolsContextHookKeys.SEND_INSPECTOR_STATE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.SEND_INSPECTOR_STATE]) => void;
383
+ [DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE]) => void;
384
+ [DevToolsContextHookKeys.TIMELINE_LAYER_ADDED]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.TIMELINE_LAYER_ADDED]) => void;
385
+ [DevToolsContextHookKeys.TIMELINE_EVENT_ADDED]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.TIMELINE_EVENT_ADDED]) => void;
386
+ [DevToolsContextHookKeys.GET_COMPONENT_INSTANCES]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_INSTANCES]) => void;
387
+ [DevToolsContextHookKeys.GET_COMPONENT_BOUNDS]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_BOUNDS]) => void;
388
+ [DevToolsContextHookKeys.GET_COMPONENT_NAME]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.GET_COMPONENT_NAME]) => void;
389
+ [DevToolsContextHookKeys.COMPONENT_HIGHLIGHT]: (payload: DevToolsContextHookPayloads[DevToolsContextHookKeys.COMPONENT_HIGHLIGHT]) => void;
390
+ [DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT]: () => void;
391
+ }
392
+ declare function createDevToolsCtxHooks(): hookable.Hookable<DevToolsContextHooks & DevToolsMessagingHooks, hookable.HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>;
393
+
394
+ declare function createDevToolsApi(hooks: Hookable<DevToolsContextHooks & DevToolsMessagingHooks, HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>): {
395
+ getInspectorTree(payload: Pick<DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE], 'inspectorId' | 'filter'>): Promise<never[]>;
396
+ getInspectorState(payload: Pick<DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE], 'inspectorId' | 'nodeId'>): Promise<CustomInspectorState>;
397
+ editInspectorState(payload: DevToolsV6PluginAPIHookPayloads[DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]): void;
398
+ inspectComponentInspector(): Promise<string>;
399
+ cancelInspectComponentInspector(): void;
400
+ getComponentRenderCode(id: string): any;
401
+ scrollToComponent(id: string): void;
402
+ openInEditor: typeof openInEditor;
403
+ getVueInspector: typeof getComponentInspector;
404
+ toggleApp(id: string): void;
405
+ };
406
+ type DevToolsApiType = ReturnType<typeof createDevToolsApi>;
407
+
408
+ type DevToolsKitPluginBuffer = [PluginDescriptor, PluginSetupFunction];
409
+ declare const devtoolsPluginBuffer: DevToolsKitPluginBuffer[];
410
+ declare function addDevToolsPluginToBuffer(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
411
+
412
+ interface DevToolsKitInspector {
413
+ options: CustomInspectorOptions;
414
+ descriptor: PluginDescriptor;
415
+ treeFilter: string;
416
+ selectedNodeId: string;
417
+ appRecord: unknown;
418
+ }
419
+ declare const devtoolsInspector: DevToolsKitInspector[];
420
+ declare const callInspectorUpdatedHook: () => Promise<void>;
421
+ declare function addInspector(inspector: CustomInspectorOptions, descriptor: PluginDescriptor): void;
422
+ declare function getActiveInspectors(): {
423
+ id: string;
424
+ label: string;
425
+ logo: string;
426
+ packageName: string | undefined;
427
+ homepage: string | undefined;
428
+ }[];
429
+ declare function getInspectorInfo(id: string): {
430
+ id: string;
431
+ label: string;
432
+ logo: string | undefined;
433
+ packageName: string | undefined;
434
+ homepage: string | undefined;
435
+ timelineLayers: {
436
+ id: string;
437
+ label: string;
438
+ color: number;
73
439
  }[];
440
+ } | undefined;
441
+ declare function getInspector(id: string, app?: App$1): DevToolsKitInspector | undefined;
442
+ declare function getInspectorActions(id: string): {
443
+ icon: string;
444
+ tooltip?: string | undefined;
445
+ action: () => void | Promise<void>;
446
+ }[] | undefined;
447
+ declare function getInspectorNodeActions(id: string): {
448
+ icon: string;
449
+ tooltip?: string | undefined;
450
+ action: (nodeId: string) => void | Promise<void>;
451
+ }[] | undefined;
452
+
453
+ declare function getDevToolsEnv(): {
454
+ vitePluginDetected: boolean;
455
+ };
456
+ declare function setDevToolsEnv(env: Partial<any>): void;
457
+
458
+ declare const ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__";
459
+ declare const ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__";
460
+ declare const devtoolsRouterInfo: RouterInfo;
461
+ declare const devtoolsRouter: {
462
+ value: Router;
463
+ };
464
+
465
+ interface DevtoolsContext {
466
+ hooks: Hookable<DevToolsContextHooks & DevToolsMessagingHooks, HookKeys<DevToolsContextHooks & DevToolsMessagingHooks>>;
467
+ state: DevToolsState & {
468
+ activeAppRecordId: string;
469
+ activeAppRecord: DevToolsAppRecords;
470
+ appRecords: DevToolsAppRecords[];
471
+ };
472
+ api: DevToolsApiType;
74
473
  }
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;
474
+ declare const devtoolsContext: DevtoolsContext;
78
475
 
79
- type PluginApi = DevToolsPluginApi;
80
- declare type PluginSettingsItem = {
476
+ declare class DevToolsV6PluginAPI {
477
+ private plugin;
478
+ private hooks;
479
+ constructor({ plugin, ctx }: {
480
+ plugin: DevToolsPlugin;
481
+ ctx: DevtoolsContext;
482
+ });
483
+ get on(): {
484
+ visitComponentTree: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE]) => void;
485
+ inspectComponent: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT]) => void;
486
+ editComponentState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE]) => void;
487
+ getInspectorTree: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE]) => void;
488
+ getInspectorState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE]) => void;
489
+ editInspectorState: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE]) => void;
490
+ inspectTimelineEvent: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT]) => void;
491
+ timelineCleared: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED]) => void;
492
+ setPluginSettings: (handler: DevToolsV6PluginAPIHooks[DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS]) => void;
493
+ };
494
+ notifyComponentUpdate(instance?: ComponentInstance): void;
495
+ addInspector(options: CustomInspectorOptions): void;
496
+ sendInspectorTree(inspectorId: string): void;
497
+ sendInspectorState(inspectorId: string): void;
498
+ selectInspectorNode(inspectorId: string, nodeId: string): void;
499
+ now(): number;
500
+ addTimelineLayer(options: TimelineLayerOptions): void;
501
+ addTimelineEvent(options: TimelineEventOptions): void;
502
+ getSettings(pluginId?: string): {};
503
+ getComponentInstances(app: App): Promise<ComponentInstance[]>;
504
+ getComponentBounds(instance: ComponentInstance): Promise<ComponentBounds>;
505
+ getComponentName(instance: ComponentInstance): Promise<string>;
506
+ highlightElement(instance: ComponentInstance): Promise<any>;
507
+ unhighlightElement(): Promise<any>;
508
+ }
509
+
510
+ declare const DevToolsPluginAPI: typeof DevToolsV6PluginAPI;
511
+
512
+ type PluginSettingsItem = {
81
513
  label: string;
82
514
  description?: string;
83
515
  } & ({
@@ -95,10 +527,11 @@ declare type PluginSettingsItem = {
95
527
  type: 'text';
96
528
  defaultValue: string;
97
529
  });
530
+ type PluginSetupFunction = (api: InstanceType<typeof DevToolsPluginAPI>) => void;
98
531
  interface PluginDescriptor {
99
532
  id: string;
100
533
  label: string;
101
- app: App<any>;
534
+ app: App$1<any>;
102
535
  packageName?: string;
103
536
  homepage?: string;
104
537
  componentStateTypes?: string[];
@@ -112,7 +545,12 @@ interface PluginDescriptor {
112
545
  enableEarlyProxy?: boolean;
113
546
  settings?: Record<string, PluginSettingsItem>;
114
547
  }
115
- type PluginSetupFunction = (api: PluginApi) => void;
548
+ interface DevToolsPlugin {
549
+ descriptor: PluginDescriptor;
550
+ setupFn: PluginSetupFunction;
551
+ }
552
+
553
+ type App = any;
116
554
  type VueAppInstance = ComponentInternalInstance & {
117
555
  type: {
118
556
  _componentTag: string | undefined;
@@ -155,28 +593,56 @@ type VueAppInstance = ComponentInternalInstance & {
155
593
  setupState: Record<string, unknown>;
156
594
  provides: Record<string | symbol, unknown>;
157
595
  ctx: Record<string, unknown>;
158
- } & App<any>;
596
+ } & App;
159
597
  interface AppRecord {
160
- id: string | number;
598
+ id: string;
161
599
  name: string;
162
600
  app?: App;
163
601
  version?: string;
164
602
  types?: Record<string, string | symbol>;
165
603
  instanceMap: Map<string, VueAppInstance>;
166
604
  rootInstance: VueAppInstance;
167
- api?: PluginApi;
168
605
  routerId?: string;
169
- moduleDetectives?: {
170
- vueQuery: boolean;
171
- vueRouter: boolean;
172
- veeValidate: boolean;
173
- pinia: boolean;
174
- vuex: boolean;
175
- vueI18n: boolean;
176
- };
177
606
  }
178
607
 
179
- type HookAppInstance = App & VueAppInstance;
608
+ interface TimelineEvent<TData = any, TMeta = any> {
609
+ time: number;
610
+ data: TData;
611
+ logType?: 'default' | 'warning' | 'error';
612
+ meta?: TMeta;
613
+ groupId?: number | string;
614
+ title?: string;
615
+ subtitle?: string;
616
+ }
617
+ interface ScreenshotOverlayEvent {
618
+ layerId: string;
619
+ renderMeta: any;
620
+ }
621
+ interface ScreenshotOverlayRenderContext<TData = any, TMeta = any> {
622
+ screenshot: ScreenshotData;
623
+ events: (TimelineEvent<TData, TMeta> & ScreenshotOverlayEvent)[];
624
+ index: number;
625
+ }
626
+ type ScreenshotOverlayRenderResult = HTMLElement | string | false;
627
+ interface ScreenshotData {
628
+ time: number;
629
+ }
630
+ interface TimelineLayerOptions<TData = any, TMeta = any> {
631
+ id: string;
632
+ label: string;
633
+ color: number;
634
+ skipScreenshots?: boolean;
635
+ groupsOnly?: boolean;
636
+ ignoreNoDurationGroups?: boolean;
637
+ screenshotOverlayRender?: (event: TimelineEvent<TData, TMeta> & ScreenshotOverlayEvent, ctx: ScreenshotOverlayRenderContext) => ScreenshotOverlayRenderResult | Promise<ScreenshotOverlayRenderResult>;
638
+ }
639
+ interface TimelineEventOptions {
640
+ layerId: string;
641
+ event: TimelineEvent;
642
+ all?: boolean;
643
+ }
644
+
645
+ type HookAppInstance = App$1 & VueAppInstance;
180
646
  declare enum DevToolsHooks {
181
647
  APP_INIT = "app:init",
182
648
  APP_UNMOUNT = "app:unmount",
@@ -193,13 +659,13 @@ declare enum DevToolsHooks {
193
659
  APP_CONNECTED = "app:connected",
194
660
  SETUP_DEVTOOLS_PLUGIN = "devtools-plugin:setup"
195
661
  }
196
- interface DevToolsEvent$1 {
662
+ interface DevToolsEvent {
197
663
  [DevToolsHooks.APP_INIT]: (app: VueAppInstance['appContext']['app'], version: string) => void | Promise<void>;
198
664
  [DevToolsHooks.APP_CONNECTED]: () => void;
199
665
  [DevToolsHooks.APP_UNMOUNT]: (app: VueAppInstance['appContext']['app']) => void | Promise<void>;
200
666
  [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'];
667
+ [DevToolsHooks.COMPONENT_UPDATED]: DevToolsEvent['component:added'];
668
+ [DevToolsHooks.COMPONENT_REMOVED]: DevToolsEvent['component:added'];
203
669
  [DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction, options?: {
204
670
  target?: string;
205
671
  }) => void;
@@ -214,60 +680,22 @@ interface DevToolsHook {
214
680
  once: <T extends Function>(event: DevToolsHooks, handler: T) => void;
215
681
  off: <T extends Function>(event: DevToolsHooks, handler: T) => void;
216
682
  appRecords: AppRecord[];
217
- apps: Record<number, {
218
- componentCount: number;
219
- }>;
683
+ apps: any;
220
684
  cleanupBuffer?: (matchArg: unknown) => boolean;
221
685
  }
222
686
  interface VueHooks {
223
687
  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;
688
+ vueAppInit: (fn: DevToolsEvent[DevToolsHooks.APP_INIT]) => void;
689
+ vueAppUnmount: (fn: DevToolsEvent[DevToolsHooks.APP_UNMOUNT]) => void;
690
+ vueAppConnected: (fn: DevToolsEvent[DevToolsHooks.APP_CONNECTED]) => void;
691
+ componentAdded: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_ADDED]) => () => void;
692
+ componentUpdated: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_UPDATED]) => () => void;
693
+ componentRemoved: (fn: DevToolsEvent[DevToolsHooks.COMPONENT_REMOVED]) => () => void;
694
+ setupDevtoolsPlugin: (fn: DevToolsEvent[DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]) => void;
231
695
  };
232
696
  setupDevToolsPlugin: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction) => void;
233
697
  }
234
698
 
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
699
  type TabCategory = 'pinned' | 'app' | 'modules' | 'advanced';
272
700
  type ModuleView = ModuleIframeView | ModuleVNodeView;
273
701
  interface ModuleIframeView {
@@ -320,20 +748,38 @@ interface CustomTab {
320
748
  category?: TabCategory;
321
749
  }
322
750
 
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;
751
+ interface CustomCommandAction {
752
+ type: 'url';
753
+ /**
754
+ * Url of the action, if set, execute the action will open the url
755
+ */
756
+ src: string;
757
+ }
758
+ interface CustomCommand {
759
+ /**
760
+ * The id of the command, should be unique
761
+ */
762
+ id: string;
763
+ title: string;
764
+ description?: string;
765
+ /**
766
+ * Order of the command, bigger number will be shown first
767
+ * @default 0
768
+ */
769
+ order?: number;
770
+ /**
771
+ * Icon of the tab, support any Iconify icons, or a url to an image
772
+ */
773
+ icon?: string;
774
+ /**
775
+ * - action of the command
776
+ * - __NOTE__: This will be ignored if `children` is set
777
+ */
778
+ action?: CustomCommandAction;
779
+ /**
780
+ * - children of action, if set, execute the action will show the children
781
+ */
782
+ children?: Omit<CustomCommand, 'children'>[];
337
783
  }
338
784
 
339
785
  interface RouterInfo {
@@ -341,41 +787,81 @@ interface RouterInfo {
341
787
  routes: RouteRecordNormalized[];
342
788
  }
343
789
 
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;
790
+ declare function initDevTools(): void;
791
+ declare function onDevToolsClientConnected(fn: () => void): Promise<void>;
792
+
793
+ declare function createComponentsDevToolsPlugin(app: App): [PluginDescriptor, PluginSetupFunction];
794
+
795
+ declare function setupDevToolsPlugin(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
796
+ declare function callDevToolsPluginSetupFn(plugin: [PluginDescriptor, PluginSetupFunction], app: App): void;
797
+ declare function registerDevToolsPlugin(app: App): void;
798
+
799
+ declare function toggleHighPerfMode(state?: boolean): void;
800
+
801
+ declare function setIframeServerContext(context: HTMLIFrameElement): void;
802
+
803
+ interface EventEmitter$2 {
804
+ on: (name: string, handler: (data: any) => void) => void;
805
+ send: (name: string, ...args: any[]) => void;
806
+ }
807
+ interface ViteClientContext extends EventEmitter$2 {
354
808
  }
809
+ interface ViteDevServer {
810
+ hot?: EventEmitter$2;
811
+ ws?: EventEmitter$2;
812
+ }
813
+ declare function setViteClientContext(context: ViteClientContext): void;
814
+ declare function setViteServerContext(context: ViteDevServer): void;
355
815
 
356
- interface DevToolsEnv {
357
- vitePluginDetected: boolean;
816
+ interface EventEmitter$1 {
817
+ on: (name: string, handler: (data: any) => void) => void;
818
+ send: (name: string, ...args: any[]) => void;
819
+ emit: (name: string, ...args: any[]) => void;
820
+ }
821
+ interface ElectronClientContext extends EventEmitter$1 {
358
822
  }
823
+ interface ElectronProxyContext extends EventEmitter$1 {
824
+ }
825
+ interface ElectronServerContext extends EventEmitter$1 {
826
+ }
827
+ declare function setElectronClientContext(context: ElectronClientContext): void;
828
+ declare function setElectronProxyContext(context: ElectronProxyContext): void;
829
+ declare function setElectronServerContext(context: ElectronServerContext): void;
359
830
 
360
- interface InspectorNodeTag {
361
- label: string;
362
- textColor: number;
363
- backgroundColor: number;
364
- tooltip?: string;
831
+ interface EventEmitter {
832
+ onMessage: {
833
+ addListener: (listener: (name: string, ...args: any[]) => void) => void;
834
+ };
835
+ postMessage: (name: string, ...args: any[]) => void;
365
836
  }
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;
837
+ interface ExtensionClientContext extends EventEmitter {
378
838
  }
839
+ declare function getExtensionClientContext(): ExtensionClientContext;
840
+ declare function setExtensionClientContext(context: ExtensionClientContext): void;
841
+
842
+ type Presets = 'iframe' | 'electron' | 'vite' | 'broadcast' | 'extension';
843
+
844
+ interface CreateRpcClientOptions<RemoteFunctions> {
845
+ options?: BirpcOptions<RemoteFunctions>;
846
+ preset?: Presets;
847
+ channel?: ChannelOptions;
848
+ }
849
+ interface CreateRpcServerOptions<RemoteFunctions> {
850
+ options?: BirpcOptions<RemoteFunctions>;
851
+ preset?: Presets;
852
+ channel?: ChannelOptions;
853
+ }
854
+ declare function setRpcServerToGlobal<R, L>(rpc: BirpcGroup<R, L>): void;
855
+ declare function getRpcClient<R, L extends object = Record<string, never>>(): BirpcReturn<R, L>;
856
+ declare function getRpcServer<R, L extends object = Record<string, never>>(): BirpcGroup<R, L>;
857
+ declare function setViteRpcClientToGlobal<R, L>(rpc: BirpcReturn<R, L>): void;
858
+ declare function setViteRpcServerToGlobal<R, L>(rpc: BirpcGroup<R, L>): void;
859
+ declare function getViteRpcClient<R, L extends object = Record<string, never>>(): BirpcReturn<R, L>;
860
+ declare function getViteRpcServer<R, L extends object = Record<string, never>>(): BirpcGroup<R, L>;
861
+ declare function createRpcClient<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(functions: LocalFunctions, options?: CreateRpcClientOptions<RemoteFunctions>): BirpcReturn<RemoteFunctions, LocalFunctions> | undefined;
862
+ declare function createRpcServer<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(functions: LocalFunctions, options?: CreateRpcServerOptions<RemoteFunctions>): void;
863
+ declare function createRpcProxy<RemoteFunctions = Record<string, never>, LocalFunctions extends object = Record<string, never>>(options?: CreateRpcClientOptions<RemoteFunctions>): BirpcReturn<RemoteFunctions, LocalFunctions>;
864
+
379
865
  interface InspectorTreeApiPayload {
380
866
  app?: VueAppInstance;
381
867
  inspectorId?: string;
@@ -477,15 +963,6 @@ interface InspectorStateEditorPayload {
477
963
 
478
964
  type customTypeEnums = 'function' | 'bigint' | 'map' | 'set' | 'store' | 'router' | 'component' | 'component-definition' | 'HTMLElement' | 'component-definition' | 'date';
479
965
 
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
966
  interface ComponentHighLighterOptions {
490
967
  bounds: ComponentBoundingRect;
491
968
  name?: string;
@@ -503,146 +980,10 @@ declare function cancelInspectComponentHighLighter(): void;
503
980
  declare function inspectComponentHighLighter(): Promise<string>;
504
981
  declare function scrollToComponent(options: ScrollToComponentOptions): void;
505
982
 
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
983
  declare function getInspectorStateValueType(value: any, raw?: boolean): string;
645
- declare function formatInspectorStateValue(value: any, quotes?: boolean): any;
984
+ declare function formatInspectorStateValue(value: any, quotes?: boolean, options?: {
985
+ customClass?: Partial<Record<'string', string>>;
986
+ }): any;
646
987
  declare function getRaw(value: InspectorState['value']): {
647
988
  value: object | string | number | boolean | null;
648
989
  inherit: {} | {
@@ -663,20 +1004,40 @@ declare const NAN = "__vue_devtool_nan__";
663
1004
 
664
1005
  declare function isPlainObject(obj: unknown): boolean;
665
1006
 
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
1007
  declare const devtools: {
675
- state: DevToolsState;
676
- context: DevToolsContext;
677
1008
  hook: VueHooks;
678
- init: typeof initDevTools;
679
- readonly api: DevToolsPluginApi;
1009
+ init: () => void;
1010
+ readonly ctx: DevtoolsContext;
1011
+ readonly api: {
1012
+ getInspectorTree(payload: Pick<{
1013
+ app: any;
1014
+ inspectorId: string;
1015
+ filter: string;
1016
+ rootNodes: CustomInspectorNode[];
1017
+ }, "inspectorId" | "filter">): Promise<never[]>;
1018
+ getInspectorState(payload: Pick<{
1019
+ app: any;
1020
+ inspectorId: string;
1021
+ nodeId: string;
1022
+ state: CustomInspectorState;
1023
+ }, "inspectorId" | "nodeId">): Promise<CustomInspectorState>;
1024
+ editInspectorState(payload: {
1025
+ app: any;
1026
+ inspectorId: string;
1027
+ nodeId: string;
1028
+ path: string[];
1029
+ type: string;
1030
+ state: EditStatePayload;
1031
+ set: (object: any, path?: string | string[] | undefined, value?: any, cb?: ((object: any, field: string, value: any) => void) | undefined) => void;
1032
+ }): void;
1033
+ inspectComponentInspector(): Promise<string>;
1034
+ cancelInspectComponentInspector(): void;
1035
+ getComponentRenderCode(id: string): any;
1036
+ scrollToComponent(id: string): void;
1037
+ openInEditor: typeof openInEditor;
1038
+ getVueInspector: typeof getComponentInspector;
1039
+ toggleApp(id: string): void;
1040
+ };
680
1041
  };
681
1042
 
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 };
1043
+ 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 };