@vue/devtools-kit 7.0.13 → 7.0.15

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.cts CHANGED
@@ -1,24 +1,8 @@
1
- import * as vue from 'vue';
2
- import { VNode } from 'vue';
3
- import * as vue_router from 'vue-router';
1
+ import { App, ComponentInternalInstance, ComponentOptions, SuspenseBoundary, VNode } from 'vue';
4
2
  import { RouteLocationNormalizedLoaded, RouteRecordNormalized, Router } from 'vue-router';
5
3
  export { Router } from 'vue-router';
6
- import { AppRecord, VueAppInstance, DevToolsState, PluginDescriptor, PluginSetupFunction } from '@vue/devtools-schema';
7
- import * as _vue_devtools_schema_dist from '@vue/devtools-schema/dist';
8
- import * as _vue_devtools_schema_src_types_vue from '@vue/devtools-schema/src/types/vue';
9
4
 
10
- declare const RouterKey = "__VUE_DEVTOOLS_ROUTER__";
11
-
12
- interface RouterInfo {
13
- currentRoute: RouteLocationNormalizedLoaded | null;
14
- routes: RouteRecordNormalized[];
15
- router: Router | null;
16
- }
17
- declare const devtoolsRouterInfo: RouterInfo;
18
- declare function normalizeRouterInfo(appRecord: AppRecord): void;
19
- declare function getRouterDevToolsId(id: string): string;
20
-
21
- interface VueInspector {
5
+ interface ComponentInspector {
22
6
  enabled: boolean;
23
7
  position: {
24
8
  x: number;
@@ -35,41 +19,34 @@ interface VueInspector {
35
19
  openInEditor: (baseUrl: string, file: string, line: number, column: number) => void;
36
20
  onUpdated: () => void;
37
21
  }
38
- declare function getVueInspector(): Promise<VueInspector>;
22
+ declare function toggleComponentInspectorEnabled(enabled: boolean): void;
23
+ declare function getComponentInspector(): Promise<ComponentInspector>;
39
24
 
40
- interface InspectorCustomState {
41
- _custom?: {
42
- type?: string;
43
- displayText?: string;
44
- tooltipText?: string;
45
- value?: string | InspectorCustomState;
46
- stateTypeName?: string;
47
- fields?: {
48
- abstract?: boolean;
49
- };
25
+ interface TimelineEvent {
26
+ event: {
27
+ groupId: number;
28
+ time: number;
29
+ title: string;
30
+ subtitle: string;
31
+ data: Record<string, unknown>;
50
32
  };
33
+ layerId: string;
51
34
  }
52
- interface InspectorState {
53
- key: string;
54
- value: string | number | boolean | null | Record<string, unknown> | InspectorCustomState | Array<unknown>;
55
- type: string;
56
- stateType?: string;
57
- stateTypeName?: string;
58
- meta?: Record<string, boolean | string>;
59
- raw?: string;
60
- editable?: boolean;
61
- children?: {
62
- key: string;
63
- value: string | number;
64
- type: string;
65
- }[];
35
+ interface TimelineLayerItem {
36
+ id: string;
37
+ label: string;
38
+ color: number;
66
39
  }
67
- interface InspectorStateApiPayload {
68
- app: VueAppInstance;
69
- inspectorId: string;
40
+ declare function addTimelineLayer(payload: TimelineLayerItem): void;
41
+ declare function getTimelineLayer(): TimelineLayerItem[];
42
+
43
+ interface Inspector {
44
+ id: string;
70
45
  nodeId: string;
46
+ filter: string;
47
+ treeFilterPlaceholder: string;
71
48
  }
72
- interface AddInspectorApiPayload {
49
+ interface InspectorApiPayload {
73
50
  id: string;
74
51
  label: string;
75
52
  icon?: string;
@@ -80,87 +57,193 @@ interface AddInspectorApiPayload {
80
57
  action: (payload: unknown) => void;
81
58
  }[];
82
59
  }
60
+ declare function addInspector(payload: Inspector): void;
61
+ declare function getInspector(inspectorId: string): Inspector | undefined;
62
+ declare function updateInspector(inspectorId: string, payload: Partial<Inspector>): void;
83
63
 
84
- interface InspectorNodeTag {
64
+ type PluginApi = DevToolsPluginApi;
65
+ declare type PluginSettingsItem = {
85
66
  label: string;
86
- textColor: number;
87
- backgroundColor: number;
88
- tooltip?: string;
89
- }
90
- interface ComponentTreeNode {
91
- uid: number | string;
67
+ description?: string;
68
+ } & ({
69
+ type: 'boolean';
70
+ defaultValue: boolean;
71
+ } | {
72
+ type: 'choice';
73
+ defaultValue: string | number;
74
+ options: {
75
+ value: string | number;
76
+ label: string;
77
+ }[];
78
+ component?: 'select' | 'button-group';
79
+ } | {
80
+ type: 'text';
81
+ defaultValue: string;
82
+ });
83
+ interface PluginDescriptor {
92
84
  id: string;
93
- name: string;
94
- renderKey: string | number;
95
- inactive: boolean;
96
- isFragment: boolean;
97
- children: ComponentTreeNode[];
98
- domOrder?: number[];
99
- tags: InspectorNodeTag[];
100
- autoOpen: boolean;
101
- file: string;
102
- }
103
- interface InspectorTreeApiPayload {
104
- app?: VueAppInstance;
105
- inspectorId?: string;
106
- filter?: string;
107
- instanceId?: string;
108
- rootNodes?: ComponentTreeNode[];
85
+ label: string;
86
+ app: App<any>;
87
+ packageName?: string;
88
+ homepage?: string;
89
+ componentStateTypes?: string[];
90
+ logo?: string;
91
+ disableAppScope?: boolean;
92
+ disablePluginScope?: boolean;
93
+ /**
94
+ * Run the plugin setup and expose the api even if the devtools is not opened yet.
95
+ * Useful to record timeline events early.
96
+ */
97
+ enableEarlyProxy?: boolean;
98
+ settings?: Record<string, PluginSettingsItem>;
109
99
  }
110
-
111
- type Recordable = Record<PropertyKey, any>;
112
-
113
- type PropPath = string | string[];
114
- interface InspectorStateEditorPayload {
115
- app?: AppRecord['app'];
116
- inspectorId: string;
117
- nodeId: string;
118
- type: string;
119
- path: PropPath;
120
- state: {
121
- value: unknown;
122
- newKey: string;
123
- remove?: boolean;
124
- type: string;
100
+ type PluginSetupFunction = (api: PluginApi) => void;
101
+ type VueAppInstance = ComponentInternalInstance & {
102
+ type: {
103
+ _componentTag: string | undefined;
104
+ components: Record<string, ComponentInternalInstance['type']>;
105
+ __VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__: string;
106
+ __isKeepAlive: boolean;
107
+ devtools: {
108
+ hide: boolean;
109
+ };
110
+ mixins: ComponentOptions[];
111
+ extends: ComponentOptions;
112
+ vuex: {
113
+ getters: Record<string, unknown>;
114
+ };
115
+ computed: Record<string, unknown>;
116
+ };
117
+ __v_cache: Cache;
118
+ __VUE_DEVTOOLS_UID__: string;
119
+ _isBeingDestroyed: boolean;
120
+ _instance: VueAppInstance;
121
+ _container: {
122
+ _vnode: {
123
+ component: VueAppInstance;
124
+ };
125
+ };
126
+ isUnmounted: boolean;
127
+ parent: VueAppInstance;
128
+ appContext: {
129
+ app: VueAppInstance & App & {
130
+ __VUE_DEVTOOLS_APP_RECORD_ID__: string;
131
+ __VUE_DEVTOOLS_APP_RECORD__: AppRecord;
132
+ };
133
+ };
134
+ __VUE_DEVTOOLS_APP_RECORD__: AppRecord;
135
+ suspense: SuspenseBoundary & {
136
+ suspenseKey: string;
137
+ };
138
+ renderContext: Record<string, unknown>;
139
+ devtoolsRawSetupState: Record<string, unknown>;
140
+ setupState: Record<string, unknown>;
141
+ provides: Record<string | symbol, unknown>;
142
+ ctx: Record<string, unknown>;
143
+ } & App<any>;
144
+ interface AppRecord {
145
+ id: string | number;
146
+ name: string;
147
+ app?: App;
148
+ version?: string;
149
+ types?: Record<string, string | symbol>;
150
+ instanceMap: Map<string, VueAppInstance>;
151
+ rootInstance: VueAppInstance;
152
+ api?: PluginApi;
153
+ routerId?: string;
154
+ moduleDetectives?: {
155
+ vueRouter: boolean;
156
+ pinia: boolean;
157
+ vueI18n: boolean;
125
158
  };
126
- set?: (obj: Recordable, path: PropPath, value: unknown, cb?: (object: Recordable, field: string, value: unknown) => void) => unknown;
127
159
  }
128
160
 
129
- interface ComponentBoundingRect {
130
- left: number;
131
- top: number;
132
- right: number;
133
- bottom: number;
134
- width: number;
135
- height: number;
161
+ type HookAppInstance = App & VueAppInstance;
162
+ declare enum DevToolsHooks {
163
+ APP_INIT = "app:init",
164
+ APP_UNMOUNT = "app:unmount",
165
+ COMPONENT_UPDATED = "component:updated",
166
+ COMPONENT_ADDED = "component:added",
167
+ COMPONENT_REMOVED = "component:removed",
168
+ COMPONENT_EMIT = "component:emit",
169
+ PERFORMANCE_START = "perf:start",
170
+ PERFORMANCE_END = "perf:end",
171
+ ADD_ROUTE = "router:add-route",
172
+ REMOVE_ROUTE = "router:remove-route",
173
+ RENDER_TRACKED = "render:tracked",
174
+ RENDER_TRIGGERED = "render:triggered",
175
+ APP_CONNECTED = "app:connected",
176
+ SETUP_DEVTOOLS_PLUGIN = "devtools-plugin:setup"
136
177
  }
137
- interface ComponentBoundingRectApiPayload {
138
- app?: VueAppInstance;
139
- inspectorId?: string;
140
- instanceId?: string;
141
- rect?: ComponentBoundingRect;
178
+ interface DevToolsEvent$1 {
179
+ [DevToolsHooks.APP_INIT]: (app: VueAppInstance['appContext']['app'], version: string) => void;
180
+ [DevToolsHooks.APP_CONNECTED]: () => void;
181
+ [DevToolsHooks.COMPONENT_ADDED]: (app: HookAppInstance, uid: number, parentUid: number, component: VueAppInstance) => void;
182
+ [DevToolsHooks.COMPONENT_UPDATED]: DevToolsEvent$1['component:added'];
183
+ [DevToolsHooks.COMPONENT_REMOVED]: DevToolsEvent$1['component:added'];
184
+ [DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction) => void;
142
185
  }
143
-
144
- interface TimelineEventData {
145
- data: Record<string, InspectorCustomState>;
186
+ interface DevToolsHook {
187
+ id: string;
188
+ enabled?: boolean;
189
+ events: Map<DevToolsHooks, Function[]>;
190
+ emit: (event: DevToolsHooks, ...payload: any[]) => void;
191
+ on: <T extends Function>(event: DevToolsHooks, handler: T) => () => void;
192
+ once: <T extends Function>(event: DevToolsHooks, handler: T) => void;
193
+ off: <T extends Function>(event: DevToolsHooks, handler: T) => void;
194
+ appRecords: AppRecord[];
195
+ apps: Record<number, {
196
+ componentCount: number;
197
+ }>;
198
+ cleanupBuffer?: (matchArg: unknown) => boolean;
146
199
  }
147
- interface TimelineEvent {
148
- event: {
149
- groupId: number;
150
- time: number;
151
- title: string;
152
- subtitle: string;
153
- data: TimelineEventData;
200
+ interface VueHooks {
201
+ on: {
202
+ vueAppInit: (fn: DevToolsEvent$1[DevToolsHooks.APP_INIT]) => void;
203
+ vueAppConnected: (fn: DevToolsEvent$1[DevToolsHooks.APP_CONNECTED]) => void;
204
+ componentAdded: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_ADDED]) => () => void;
205
+ componentUpdated: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_UPDATED]) => () => void;
206
+ componentRemoved: (fn: DevToolsEvent$1[DevToolsHooks.COMPONENT_REMOVED]) => () => void;
207
+ setupDevtoolsPlugin: (fn: DevToolsEvent$1[DevToolsHooks.SETUP_DEVTOOLS_PLUGIN]) => void;
154
208
  };
155
- layerId: string;
209
+ setupDevToolsPlugin: (pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction) => void;
156
210
  }
157
211
 
158
- interface OpenInEditorOptions {
159
- file?: string;
160
- line?: number;
161
- column?: number;
212
+ interface CustomCommandAction {
213
+ type: 'url';
214
+ /**
215
+ * Url of the action, if set, execute the action will open the url
216
+ */
217
+ src: string;
162
218
  }
163
- declare function openInEditor(options?: OpenInEditorOptions): void;
219
+ interface CustomCommand {
220
+ /**
221
+ * The id of the command, should be unique
222
+ */
223
+ id: string;
224
+ title: string;
225
+ description?: string;
226
+ /**
227
+ * Order of the command, bigger number will be shown first
228
+ * @default 0
229
+ */
230
+ order?: number;
231
+ /**
232
+ * Icon of the tab, support any Iconify icons, or a url to an image
233
+ */
234
+ icon?: string;
235
+ /**
236
+ * - action of the command
237
+ * - __NOTE__: This will be ignored if `children` is set
238
+ */
239
+ action?: CustomCommandAction;
240
+ /**
241
+ * - children of action, if set, execute the action will show the children
242
+ */
243
+ children?: Omit<CustomCommand, 'children'>[];
244
+ }
245
+ declare function addCustomCommand(action: CustomCommand): void;
246
+ declare function removeCustomCommand(actionId: string): void;
164
247
 
165
248
  type TabCategory = 'pinned' | 'app' | 'modules' | 'advanced';
166
249
  type ModuleView = ModuleIframeView | ModuleVNodeView;
@@ -214,45 +297,163 @@ interface CustomTab {
214
297
  category?: TabCategory;
215
298
  }
216
299
 
217
- interface CustomCommandAction {
218
- type: 'url';
219
- /**
220
- * Url of the action, if set, execute the action will open the url
221
- */
222
- src: string;
300
+ declare function addCustomTab(tab: CustomTab): void;
301
+
302
+ interface DevToolsState {
303
+ connected: boolean;
304
+ clientConnected: boolean;
305
+ vitePluginDetected: boolean;
306
+ appRecords: AppRecord[];
307
+ activeAppRecord: AppRecord | null;
308
+ selectedComponentId: string | null;
309
+ pluginBuffer: [PluginDescriptor, PluginSetupFunction][];
310
+ tabs: CustomTab[];
311
+ commands: CustomCommand[];
312
+ activeAppRecordId: string | null;
223
313
  }
224
- interface CustomCommand {
225
- /**
226
- * The id of the command, should be unique
227
- */
314
+
315
+ interface RouterInfo {
316
+ currentRoute: RouteLocationNormalizedLoaded | null | {};
317
+ routes: RouteRecordNormalized[];
318
+ }
319
+
320
+ interface DevToolsContext {
321
+ appRecord: AppRecord | null;
322
+ api: DevToolsPluginApi;
323
+ inspector: Inspector[];
324
+ timelineLayer: TimelineLayerItem[];
325
+ routerInfo: RouterInfo;
326
+ router: Router | null;
327
+ activeInspectorTreeId: string;
328
+ componentPluginHookBuffer: (() => void)[];
329
+ clear: () => void;
330
+ }
331
+
332
+ interface DevToolsEnv {
333
+ vitePluginDetected: boolean;
334
+ }
335
+
336
+ interface InspectorNodeTag {
337
+ label: string;
338
+ textColor: number;
339
+ backgroundColor: number;
340
+ tooltip?: string;
341
+ }
342
+ interface ComponentTreeNode {
343
+ uid: number | string;
228
344
  id: string;
229
- title: string;
230
- description?: string;
231
- /**
232
- * Order of the command, bigger number will be shown first
233
- * @default 0
234
- */
235
- order?: number;
236
- /**
237
- * Icon of the tab, support any Iconify icons, or a url to an image
238
- */
345
+ name: string;
346
+ renderKey: string | number;
347
+ inactive: boolean;
348
+ isFragment: boolean;
349
+ children: ComponentTreeNode[];
350
+ domOrder?: number[];
351
+ tags: InspectorNodeTag[];
352
+ autoOpen: boolean;
353
+ file: string;
354
+ }
355
+ interface InspectorTreeApiPayload {
356
+ app?: VueAppInstance;
357
+ inspectorId?: string;
358
+ filter?: string;
359
+ instanceId?: string;
360
+ rootNodes?: ComponentTreeNode[];
361
+ }
362
+
363
+ interface ComponentBoundingRect {
364
+ left: number;
365
+ top: number;
366
+ right: number;
367
+ bottom: number;
368
+ width: number;
369
+ height: number;
370
+ }
371
+ interface ComponentBoundingRectApiPayload {
372
+ app?: VueAppInstance;
373
+ inspectorId?: string;
374
+ instanceId?: string;
375
+ rect?: ComponentBoundingRect;
376
+ }
377
+
378
+ interface InspectorCustomState {
379
+ _custom?: {
380
+ type?: string;
381
+ displayText?: string;
382
+ tooltipText?: string;
383
+ value?: string | InspectorCustomState;
384
+ stateTypeName?: string;
385
+ fields?: {
386
+ abstract?: boolean;
387
+ };
388
+ };
389
+ }
390
+ interface InspectorState {
391
+ key: string;
392
+ value: string | number | boolean | null | Record<string, unknown> | InspectorCustomState | Array<unknown>;
393
+ type: string;
394
+ stateType?: string;
395
+ stateTypeName?: string;
396
+ meta?: Record<string, boolean | string>;
397
+ raw?: string;
398
+ editable?: boolean;
399
+ children?: {
400
+ key: string;
401
+ value: string | number;
402
+ type: string;
403
+ }[];
404
+ }
405
+ interface InspectorStateApiPayload {
406
+ app: VueAppInstance;
407
+ inspectorId: string;
408
+ nodeId: string;
409
+ state: {
410
+ id: string;
411
+ name: string;
412
+ file: string | undefined;
413
+ state: InspectorState[];
414
+ instance: VueAppInstance | undefined;
415
+ };
416
+ }
417
+ interface AddInspectorApiPayload {
418
+ id: string;
419
+ label: string;
239
420
  icon?: string;
240
- /**
241
- * - action of the command
242
- * - __NOTE__: This will be ignored if `children` is set
243
- */
244
- action?: CustomCommandAction;
245
- /**
246
- * - children of action, if set, execute the action will show the children
247
- */
248
- children?: Omit<CustomCommand, 'children'>[];
421
+ treeFilterPlaceholder?: string;
422
+ actions?: {
423
+ icon: string;
424
+ tooltip: string;
425
+ action: (payload: unknown) => void;
426
+ }[];
427
+ }
428
+
429
+ type Recordable = Record<PropertyKey, any>;
430
+
431
+ type PropPath = string | string[];
432
+ interface InspectorStateEditorPayload {
433
+ app?: AppRecord['app'];
434
+ inspectorId: string;
435
+ nodeId: string;
436
+ type: string;
437
+ path: PropPath;
438
+ state: {
439
+ value: unknown;
440
+ newKey: string;
441
+ remove?: boolean;
442
+ type: string;
443
+ };
444
+ set?: (obj: Recordable, path: PropPath, value: unknown, cb?: (object: Recordable, field: string, value: unknown) => void) => unknown;
249
445
  }
250
- declare function addCustomCommand(action: CustomCommand): void;
251
- declare function removeCustomCommand(actionId: CustomCommand['id']): void;
252
446
 
253
- declare function clear(): void;
447
+ type customTypeEnums = 'function' | 'bigint' | 'map' | 'set' | 'store' | 'router' | 'component' | 'component-definition' | 'HTMLElement' | 'component-definition';
254
448
 
255
- interface ToggleComponentInspectorOptions {
449
+ interface OpenInEditorOptions {
450
+ file?: string;
451
+ line?: number;
452
+ column?: number;
453
+ }
454
+ declare function openInEditor(options?: OpenInEditorOptions): void;
455
+
456
+ interface ComponentHighLighterOptions {
256
457
  bounds: ComponentBoundingRect;
257
458
  name?: string;
258
459
  id?: string;
@@ -262,12 +463,18 @@ interface ScrollToComponentOptions {
262
463
  id?: string;
263
464
  }
264
465
 
466
+ declare function toggleComponentHighLighter(options: ComponentHighLighterOptions): void;
467
+ declare function highlight(instance: VueAppInstance): void;
468
+ declare function unhighlight(): void;
469
+ declare function inspectComponentHighLighter(): Promise<string>;
470
+ declare function scrollToComponent(options: ScrollToComponentOptions): void;
471
+
265
472
  declare enum DevToolsEvents {
266
473
  DEVTOOLS_STATE_UPDATED = "devtools:state-updated",
267
474
  DEVTOOLS_CONNECTED_UPDATED = "devtools:connected-updated",
268
475
  ROUTER_INFO_UPDATED = "router-info:updated",
269
476
  COMPONENT_STATE_INSPECT = "component-state:inspect",
270
- TOGGLE_COMPONENT_INSPECTOR = "component-inspector:toggle",
477
+ TOGGLE_COMPONENT_HIGHLIGHTER = "component-highlighter:toggle",
271
478
  GET_COMPONENT_BOUNDING_RECT = "component-bounding-rect:get",
272
479
  SCROLL_TO_COMPONENT = "scroll-to-component",
273
480
  GET_INSPECTOR_TREE = "inspector-tree:get",
@@ -281,23 +488,18 @@ declare enum DevToolsEvents {
281
488
  CUSTOM_COMMANDS_UPDATED = "custom-commands:updated"
282
489
  }
283
490
  interface DevToolsEvent {
491
+ [DevToolsEvents.ADD_TIMELINE_EVENT]: (payload: TimelineEvent) => void;
492
+ [DevToolsEvents.ROUTER_INFO_UPDATED]: (routerInfo: RouterInfo) => void;
493
+ [DevToolsEvents.TOGGLE_COMPONENT_HIGHLIGHTER]: (payload: ComponentHighLighterOptions) => void;
494
+ [DevToolsEvents.SCROLL_TO_COMPONENT]: (payload: ScrollToComponentOptions) => void;
495
+ [DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]: (payload: ComponentBoundingRectApiPayload) => void;
284
496
  [DevToolsEvents.DEVTOOLS_STATE_UPDATED]: (state: DevToolsState, oldState: DevToolsState) => void;
285
497
  [DevToolsEvents.DEVTOOLS_CONNECTED_UPDATED]: (state: DevToolsState, oldState: DevToolsState) => void;
286
- [DevToolsEvents.ROUTER_INFO_UPDATED]: (routerInfo: RouterInfo) => void;
287
498
  [DevToolsEvents.COMPONENT_STATE_INSPECT]: (payload: {
288
499
  componentInstance: VueAppInstance | undefined;
289
500
  app: VueAppInstance | undefined;
290
- instanceData: {
291
- id: string;
292
- name: string;
293
- file: string | undefined;
294
- state: InspectorState[];
295
- instance: VueAppInstance | undefined;
296
- };
501
+ instanceData: InspectorStateApiPayload['state'];
297
502
  }) => void;
298
- [DevToolsEvents.TOGGLE_COMPONENT_INSPECTOR]: (payload: ToggleComponentInspectorOptions) => void;
299
- [DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]: (payload: ComponentBoundingRectApiPayload) => void;
300
- [DevToolsEvents.SCROLL_TO_COMPONENT]: (payload: ScrollToComponentOptions) => void;
301
503
  [DevToolsEvents.GET_INSPECTOR_TREE]: (payload: InspectorTreeApiPayload) => void;
302
504
  [DevToolsEvents.SEND_INSPECTOR_TREE]: (payload: string) => void;
303
505
  [DevToolsEvents.GET_INSPECTOR_STATE]: (payload: InspectorStateApiPayload) => void;
@@ -309,40 +511,42 @@ interface DevToolsEvent {
309
511
  treeNode: ComponentTreeNode;
310
512
  filter: string;
311
513
  }) => void;
312
- [DevToolsEvents.ADD_TIMELINE_EVENT]: (payload: TimelineEvent) => void;
313
514
  [DevToolsEvents.CUSTOM_TABS_UPDATED]: (payload: CustomTab[]) => void;
314
515
  [DevToolsEvents.CUSTOM_COMMANDS_UPDATED]: (payload: CustomCommand[]) => void;
315
516
  }
517
+ type DevToolsEventParams<T extends keyof DevToolsEvent> = Parameters<DevToolsEvent[T]>;
518
+
316
519
  declare const on: {
317
- devtoolsStateUpdated(fn: DevToolsEvent[DevToolsEvents.DEVTOOLS_STATE_UPDATED]): void;
318
- routerInfoUpdated(fn: DevToolsEvent[DevToolsEvents.ROUTER_INFO_UPDATED]): void;
319
- getComponentBoundingRect(fn: DevToolsEvent[DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]): void;
320
- inspectComponent(fn: DevToolsEvent[DevToolsEvents.COMPONENT_STATE_INSPECT]): void;
321
- visitComponentTree(fn: DevToolsEvent[DevToolsEvents.VISIT_COMPONENT_TREE]): void;
322
- getInspectorTree(fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_TREE]): void;
323
- getInspectorState(fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_STATE]): void;
324
- sendInspectorTree(fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_TREE]): void;
325
- sendInspectorState(fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_STATE]): void;
326
- addTimelineEvent(fn: DevToolsEvent[DevToolsEvents.ADD_TIMELINE_EVENT]): void;
327
- editInspectorState(fn: DevToolsEvent[DevToolsEvents.EDIT_INSPECTOR_STATE]): void;
328
- editComponentState(): void;
329
- customTabsUpdated(fn: DevToolsEvent[DevToolsEvents.CUSTOM_TABS_UPDATED]): void;
330
- customCommandsUpdated(fn: DevToolsEvent[DevToolsEvents.CUSTOM_COMMANDS_UPDATED]): void;
520
+ readonly addTimelineEvent: (fn: DevToolsEvent[DevToolsEvents.ADD_TIMELINE_EVENT]) => void;
521
+ readonly inspectComponent: (fn: DevToolsEvent[DevToolsEvents.COMPONENT_STATE_INSPECT]) => void;
522
+ readonly visitComponentTree: (fn: DevToolsEvent[DevToolsEvents.VISIT_COMPONENT_TREE]) => void;
523
+ readonly getInspectorTree: (fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_TREE]) => void;
524
+ readonly getInspectorState: (fn: DevToolsEvent[DevToolsEvents.GET_INSPECTOR_STATE]) => void;
525
+ readonly sendInspectorTree: (fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_TREE]) => void;
526
+ readonly sendInspectorState: (fn: DevToolsEvent[DevToolsEvents.SEND_INSPECTOR_STATE]) => void;
527
+ readonly editInspectorState: (fn: DevToolsEvent[DevToolsEvents.EDIT_INSPECTOR_STATE]) => void;
528
+ readonly editComponentState: () => void;
529
+ readonly routerInfoUpdated: (fn: DevToolsEvent[DevToolsEvents.ROUTER_INFO_UPDATED]) => void;
530
+ readonly getComponentBoundingRect: (fn: DevToolsEvent[DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]) => void;
531
+ readonly customTabsUpdated: (fn: DevToolsEvent[DevToolsEvents.CUSTOM_TABS_UPDATED]) => void;
532
+ readonly customCommandsUpdated: (fn: DevToolsEvent[DevToolsEvents.CUSTOM_COMMANDS_UPDATED]) => void;
533
+ readonly devtoolsStateUpdated: (fn: DevToolsEvent[DevToolsEvents.DEVTOOLS_STATE_UPDATED]) => void;
331
534
  };
332
535
 
333
- declare function setupDevToolsPlugin(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): Promise<any>;
536
+ declare function remove(): void;
537
+
538
+ declare function setupDevToolsPlugin(pluginDescriptor: PluginDescriptor, setupFn: PluginSetupFunction): void;
334
539
 
335
540
  declare class DevToolsPluginApi {
336
541
  on: typeof on;
337
- clear: typeof clear;
542
+ clear: typeof remove;
338
543
  constructor();
339
- toggleApp(id: string): Promise<void>;
340
- addTimelineEvent(payload: TimelineEvent): void;
341
- toggleComponentInspector(payload: Parameters<DevToolsEvent[DevToolsEvents.TOGGLE_COMPONENT_INSPECTOR]>[0]): void;
342
- inspectComponentInspector(): Promise<string>;
343
- scrollToComponent(payload: Parameters<DevToolsEvent[DevToolsEvents.SCROLL_TO_COMPONENT]>[0]): void;
344
- getComponentBoundingRect(payload: Parameters<DevToolsEvent[DevToolsEvents.GET_COMPONENT_BOUNDING_RECT]>[0]): string;
345
- getInspectorTree(payload?: Parameters<DevToolsEvent[DevToolsEvents.GET_INSPECTOR_TREE]>[0]): Promise<string>;
544
+ addTimelineLayer(payload: TimelineLayerItem): void;
545
+ addTimelineEvent(...params: DevToolsEventParams<DevToolsEvents.ADD_TIMELINE_EVENT>): void;
546
+ addInspector(payload: InspectorApiPayload): void;
547
+ highlightElement(instance: VueAppInstance): void;
548
+ unhighlightElement(): void;
549
+ getInspectorTree(payload?: DevToolsEventParams<DevToolsEvents.GET_INSPECTOR_TREE>[0]): Promise<string>;
346
550
  getInspectorState(payload?: {
347
551
  inspectorId?: string;
348
552
  nodeId?: string;
@@ -350,276 +554,54 @@ declare class DevToolsPluginApi {
350
554
  editInspectorState(payload: InspectorStateEditorPayload): Promise<void>;
351
555
  sendInspectorTree(inspectorId: string): Promise<void>;
352
556
  sendInspectorState(inspectorId: string): Promise<void>;
353
- addCustomTab(tab: CustomTab): void;
354
- addCustomCommand(action: CustomCommand): void;
355
- removeCustomCommand(actionId: CustomCommand['id']): void;
356
- addInspector(payload: AddInspectorApiPayload): void;
357
- openInEditor(payload: OpenInEditorOptions): void;
358
- highlightElement(instance: any): void;
359
- unhighlightElement(): void;
360
- getComponentInstances(app: any): Promise<any[]>;
361
- getVueInspector(): Promise<VueInspector>;
362
- visitComponentTree(payload: Parameters<DevToolsEvent[DevToolsEvents.VISIT_COMPONENT_TREE]>[0]): void;
363
- addTimelineLayer(payload: {
364
- id: string;
365
- label: string;
366
- color: number;
367
- }): void;
557
+ getComponentInstances(app: VueAppInstance): Promise<VueAppInstance[]>;
558
+ visitComponentTree(...params: DevToolsEventParams<DevToolsEvents.VISIT_COMPONENT_TREE>): void;
368
559
  notifyComponentUpdate(): void;
369
560
  now(): number;
370
561
  getSettings(): {
371
562
  logStoreChanges: null;
372
563
  };
564
+ toggleComponentInspector(...params: DevToolsEventParams<DevToolsEvents.TOGGLE_COMPONENT_HIGHLIGHTER>): void;
565
+ inspectComponentInspector(): Promise<string>;
566
+ scrollToComponent(...params: DevToolsEventParams<DevToolsEvents.SCROLL_TO_COMPONENT>): void;
567
+ getComponentBoundingRect(...params: DevToolsEventParams<DevToolsEvents.GET_COMPONENT_BOUNDING_RECT>): string;
568
+ toggleApp(id: string): Promise<void>;
569
+ addCustomTab(tab: CustomTab): void;
570
+ addCustomCommand(action: CustomCommand): void;
571
+ removeCustomCommand(actionId: CustomCommand['id']): void;
572
+ openInEditor(payload: OpenInEditorOptions): void;
573
+ getVueInspector(): Promise<ComponentInspector>;
373
574
  }
374
575
 
576
+ declare function setDevToolsEnv(env: Partial<DevToolsEnv>): void;
577
+
375
578
  declare function initDevTools(): void;
376
579
  declare function onDevToolsConnected(fn: () => void): Promise<void>;
377
580
  declare function onDevToolsClientConnected(fn: () => void): Promise<void>;
378
581
 
379
- declare function addCustomTab(tab: CustomTab): void;
380
-
381
582
  declare function getInspectorStateValueType(value: any, raw?: boolean): string;
382
583
  declare function formatInspectorStateValue(value: any, quotes?: boolean): any;
383
- declare function getRawValue(value: InspectorState['value']): any;
384
- declare function toEdit(value: unknown): string;
385
- declare function toSubmit(value: string): any;
584
+ declare function getRaw(value: InspectorState['value']): {
585
+ value: object | string | number | boolean | null;
586
+ inherit: {} | {
587
+ abstract: true;
588
+ };
589
+ customType?: customTypeEnums;
590
+ };
591
+ declare function toEdit(value: unknown, customType?: customTypeEnums): string;
592
+ declare function toSubmit(value: string, customType?: customTypeEnums): any;
386
593
 
387
594
  declare function stringify<T extends object = Record<string, unknown>>(data: T): string | string[];
388
595
  declare function parse(data: string, revive?: boolean): any;
389
596
 
390
- declare function now(): number;
391
-
392
- declare const vueBuiltins: Set<string>;
393
- declare const symbolRE: RegExp;
394
- declare const rawTypeRE: RegExp;
395
- declare const specialTypeRE: RegExp;
396
- declare const fnTypeRE: RegExp;
397
- declare const MAX_STRING_SIZE = 10000;
398
- declare const MAX_ARRAY_SIZE = 5000;
399
597
  declare const UNDEFINED = "__vue_devtool_undefined__";
400
- declare const INFINITY = "__vue_devtool_infinity__";
401
- declare const NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__";
402
- declare const NAN = "__vue_devtool_nan__";
403
- declare const ESC: {
404
- '<': string;
405
- '>': string;
406
- '"': string;
407
- '&': string;
408
- };
409
598
 
410
599
  declare const devtools: {
411
- state: _vue_devtools_schema_src_types_vue.DevToolsState;
412
- context: {
413
- appRecord: _vue_devtools_schema_dist.AppRecord;
414
- api: DevToolsPluginApi;
415
- inspector: {
416
- id: string;
417
- nodeId: string;
418
- filter: string;
419
- treeFilterPlaceholder: string;
420
- }[];
421
- timelineLayer: {
422
- id: string;
423
- label: string;
424
- color: number;
425
- }[];
426
- routerInfo: RouterInfo;
427
- router: vue_router.Router;
428
- activeInspectorTreeId: string;
429
- componentPluginHookBuffer: (() => void)[];
430
- clear: () => void;
431
- };
600
+ state: DevToolsState;
601
+ context: DevToolsContext;
602
+ hook: VueHooks;
432
603
  init: typeof initDevTools;
433
- hook: {
434
- on: {
435
- vueAppInit(fn: (app: vue.App<any> & vue.ComponentInternalInstance & {
436
- type: {
437
- _componentTag: string | undefined;
438
- components: Record<string, vue.ConcreteComponent<{}, any, any, vue.ComputedOptions, vue.MethodOptions, {}, any>>;
439
- __VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__: string;
440
- __isKeepAlive: boolean;
441
- devtools: {
442
- hide: boolean;
443
- };
444
- mixins: vue.ComponentOptions[];
445
- extends: vue.ComponentOptions;
446
- vuex: {
447
- getters: Record<string, unknown>;
448
- };
449
- computed: Record<string, unknown>;
450
- };
451
- __v_cache: Map<string | number | symbol | vue.ConcreteComponent, globalThis.VNode<vue.RendererNode, vue.RendererElement, {
452
- [key: string]: any;
453
- }>>;
454
- __VUE_DEVTOOLS_UID__: string;
455
- _isBeingDestroyed: boolean;
456
- _instance: _vue_devtools_schema_dist.VueAppInstance;
457
- _container: {
458
- _vnode: {
459
- component: _vue_devtools_schema_dist.VueAppInstance;
460
- };
461
- };
462
- isUnmounted: boolean;
463
- parent: _vue_devtools_schema_dist.VueAppInstance;
464
- appContext: {
465
- app: vue.ComponentInternalInstance & any & vue.App<any> & {
466
- __VUE_DEVTOOLS_APP_RECORD_ID__: string;
467
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
468
- };
469
- };
470
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
471
- suspense: vue.SuspenseBoundary & {
472
- suspenseKey: string;
473
- };
474
- renderContext: Record<string, unknown>;
475
- devtoolsRawSetupState: Record<string, unknown>;
476
- setupState: Record<string, unknown>;
477
- provides: Record<string | symbol, unknown>;
478
- ctx: Record<string, unknown>;
479
- } & {
480
- __VUE_DEVTOOLS_APP_RECORD_ID__: string;
481
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
482
- }, version: string) => void): void;
483
- vueAppConnected(fn: () => void): void;
484
- componentAdded(fn: (app: vue.App<any> & vue.ComponentInternalInstance & {
485
- type: {
486
- _componentTag: string | undefined;
487
- components: Record<string, vue.ConcreteComponent<{}, any, any, vue.ComputedOptions, vue.MethodOptions, {}, any>>;
488
- __VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__: string;
489
- __isKeepAlive: boolean;
490
- devtools: {
491
- hide: boolean;
492
- };
493
- mixins: vue.ComponentOptions[];
494
- extends: vue.ComponentOptions;
495
- vuex: {
496
- getters: Record<string, unknown>;
497
- };
498
- computed: Record<string, unknown>;
499
- };
500
- __v_cache: Map<string | number | symbol | vue.ConcreteComponent, globalThis.VNode<vue.RendererNode, vue.RendererElement, {
501
- [key: string]: any;
502
- }>>;
503
- __VUE_DEVTOOLS_UID__: string;
504
- _isBeingDestroyed: boolean;
505
- _instance: _vue_devtools_schema_dist.VueAppInstance;
506
- _container: {
507
- _vnode: {
508
- component: _vue_devtools_schema_dist.VueAppInstance;
509
- };
510
- };
511
- isUnmounted: boolean;
512
- parent: _vue_devtools_schema_dist.VueAppInstance;
513
- appContext: {
514
- app: vue.ComponentInternalInstance & any & vue.App<any> & {
515
- __VUE_DEVTOOLS_APP_RECORD_ID__: string;
516
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
517
- };
518
- };
519
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
520
- suspense: vue.SuspenseBoundary & {
521
- suspenseKey: string;
522
- };
523
- renderContext: Record<string, unknown>;
524
- devtoolsRawSetupState: Record<string, unknown>;
525
- setupState: Record<string, unknown>;
526
- provides: Record<string | symbol, unknown>;
527
- ctx: Record<string, unknown>;
528
- }, uid: number, parentUid: number, component: _vue_devtools_schema_dist.VueAppInstance) => void): () => void;
529
- componentUpdated(fn: (app: vue.App<any> & vue.ComponentInternalInstance & {
530
- type: {
531
- _componentTag: string | undefined;
532
- components: Record<string, vue.ConcreteComponent<{}, any, any, vue.ComputedOptions, vue.MethodOptions, {}, any>>;
533
- __VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__: string;
534
- __isKeepAlive: boolean;
535
- devtools: {
536
- hide: boolean;
537
- };
538
- mixins: vue.ComponentOptions[];
539
- extends: vue.ComponentOptions;
540
- vuex: {
541
- getters: Record<string, unknown>;
542
- };
543
- computed: Record<string, unknown>;
544
- };
545
- __v_cache: Map<string | number | symbol | vue.ConcreteComponent, globalThis.VNode<vue.RendererNode, vue.RendererElement, {
546
- [key: string]: any;
547
- }>>;
548
- __VUE_DEVTOOLS_UID__: string;
549
- _isBeingDestroyed: boolean;
550
- _instance: _vue_devtools_schema_dist.VueAppInstance;
551
- _container: {
552
- _vnode: {
553
- component: _vue_devtools_schema_dist.VueAppInstance;
554
- };
555
- };
556
- isUnmounted: boolean;
557
- parent: _vue_devtools_schema_dist.VueAppInstance;
558
- appContext: {
559
- app: vue.ComponentInternalInstance & any & vue.App<any> & {
560
- __VUE_DEVTOOLS_APP_RECORD_ID__: string;
561
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
562
- };
563
- };
564
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
565
- suspense: vue.SuspenseBoundary & {
566
- suspenseKey: string;
567
- };
568
- renderContext: Record<string, unknown>;
569
- devtoolsRawSetupState: Record<string, unknown>;
570
- setupState: Record<string, unknown>;
571
- provides: Record<string | symbol, unknown>;
572
- ctx: Record<string, unknown>;
573
- }, uid: number, parentUid: number, component: _vue_devtools_schema_dist.VueAppInstance) => void): () => void;
574
- componentRemoved(fn: (app: vue.App<any> & vue.ComponentInternalInstance & {
575
- type: {
576
- _componentTag: string | undefined;
577
- components: Record<string, vue.ConcreteComponent<{}, any, any, vue.ComputedOptions, vue.MethodOptions, {}, any>>;
578
- __VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__: string;
579
- __isKeepAlive: boolean;
580
- devtools: {
581
- hide: boolean;
582
- };
583
- mixins: vue.ComponentOptions[];
584
- extends: vue.ComponentOptions;
585
- vuex: {
586
- getters: Record<string, unknown>;
587
- };
588
- computed: Record<string, unknown>;
589
- };
590
- __v_cache: Map<string | number | symbol | vue.ConcreteComponent, globalThis.VNode<vue.RendererNode, vue.RendererElement, {
591
- [key: string]: any;
592
- }>>;
593
- __VUE_DEVTOOLS_UID__: string;
594
- _isBeingDestroyed: boolean;
595
- _instance: _vue_devtools_schema_dist.VueAppInstance;
596
- _container: {
597
- _vnode: {
598
- component: _vue_devtools_schema_dist.VueAppInstance;
599
- };
600
- };
601
- isUnmounted: boolean;
602
- parent: _vue_devtools_schema_dist.VueAppInstance;
603
- appContext: {
604
- app: vue.ComponentInternalInstance & any & vue.App<any> & {
605
- __VUE_DEVTOOLS_APP_RECORD_ID__: string;
606
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
607
- };
608
- };
609
- __VUE_DEVTOOLS_APP_RECORD__: _vue_devtools_schema_dist.AppRecord;
610
- suspense: vue.SuspenseBoundary & {
611
- suspenseKey: string;
612
- };
613
- renderContext: Record<string, unknown>;
614
- devtoolsRawSetupState: Record<string, unknown>;
615
- setupState: Record<string, unknown>;
616
- provides: Record<string | symbol, unknown>;
617
- ctx: Record<string, unknown>;
618
- }, uid: number, parentUid: number, component: _vue_devtools_schema_dist.VueAppInstance) => void): () => void;
619
- setupDevtoolsPlugin(fn: (pluginDescriptor: _vue_devtools_schema_dist.PluginDescriptor, setupFn: _vue_devtools_schema_dist.PluginSetupFunction) => void): void;
620
- };
621
- };
622
604
  readonly api: DevToolsPluginApi;
623
605
  };
624
606
 
625
- export { type AddInspectorApiPayload, type ComponentBoundingRect, type ComponentBoundingRectApiPayload, type ComponentTreeNode, type CustomCommand, type CustomCommandAction, type CustomTab, ESC, INFINITY, type InspectorCustomState, type InspectorNodeTag, type InspectorState, type InspectorStateApiPayload, type InspectorStateEditorPayload, type InspectorTreeApiPayload, MAX_ARRAY_SIZE, MAX_STRING_SIZE, type ModuleIframeView, type ModuleVNodeView, type ModuleView, NAN, NEGATIVE_INFINITY, type OpenInEditorOptions, type PropPath, type RouterInfo, RouterKey, type ScrollToComponentOptions, type TimelineEvent, type TimelineEventData, type ToggleComponentInspectorOptions, UNDEFINED, type VueInspector, addCustomCommand, addCustomTab, devtools, devtoolsRouterInfo, fnTypeRE, formatInspectorStateValue, getInspectorStateValueType, getRawValue, getRouterDevToolsId, getVueInspector, normalizeRouterInfo, now, onDevToolsClientConnected, onDevToolsConnected, openInEditor, parse, rawTypeRE, removeCustomCommand, setupDevToolsPlugin, specialTypeRE, stringify, symbolRE, toEdit, toSubmit, vueBuiltins };
607
+ 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 Inspector, type InspectorApiPayload, type InspectorCustomState, type InspectorNodeTag, type InspectorState, type InspectorStateApiPayload, type InspectorStateEditorPayload, type InspectorTreeApiPayload, 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, type customTypeEnums, devtools, formatInspectorStateValue, getComponentInspector, getInspector, getInspectorStateValueType, getRaw, getTimelineLayer, highlight, inspectComponentHighLighter, onDevToolsClientConnected, onDevToolsConnected, openInEditor, parse, removeCustomCommand, scrollToComponent, setDevToolsEnv, setupDevToolsPlugin, stringify, toEdit, toSubmit, toggleComponentHighLighter, toggleComponentInspectorEnabled, unhighlight, updateInspector };