@vitejs/devtools-kit 0.0.0-alpha.15 → 0.0.0-alpha.17

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/client.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as DockPanelStorage, c as DocksPanelContext, d as getDevToolsRpcClient, i as DockEntryState, l as DevToolsRpcClient, n as DockClientScriptCurrent, o as DocksContext, r as DockClientType, s as DocksEntriesContext, t as DockClientScriptContext, u as DevToolsRpcClientOptions } from "./index-D9rmGPF1.mjs";
2
- export { DevToolsRpcClient, DevToolsRpcClientOptions, DockClientScriptContext, DockClientScriptCurrent, DockClientType, DockEntryState, DockPanelStorage, DocksContext, DocksEntriesContext, DocksPanelContext, getDevToolsRpcClient };
1
+ import { a as DockEntryState, c as DocksContext, d as ClientRpcReturn, f as DevToolsRpcClient, i as DockClientType, l as DocksEntriesContext, m as getDevToolsRpcClient, n as DevToolsClientContext, o as DockEntryStateEvents, p as DevToolsRpcClientOptions, r as DevToolsClientRpcHost, s as DockPanelStorage, t as DockClientScriptContext, u as DocksPanelContext } from "./index-C-bl_jKJ.mjs";
2
+ export { ClientRpcReturn, DevToolsClientContext, DevToolsClientRpcHost, DevToolsRpcClient, DevToolsRpcClientOptions, DockClientScriptContext, DockClientType, DockEntryState, DockEntryStateEvents, DockPanelStorage, DocksContext, DocksEntriesContext, DocksPanelContext, getDevToolsRpcClient };
package/dist/client.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { RpcFunctionsCollectorBase } from "birpc-x";
1
2
  import { createRpcClient } from "@vitejs/devtools-rpc";
2
3
  import { createWsRpcPreset } from "@vitejs/devtools-rpc/presets/ws/client";
3
4
 
@@ -12,24 +13,29 @@ async function getDevToolsRpcClient(options = {}) {
12
13
  let connectionMeta = options.connectionMeta;
13
14
  if (!connectionMeta) {
14
15
  const errors = [];
15
- for (const url of urls) try {
16
- connectionMeta = await fetch(`${url}.vdt-connection.json`).then((r) => r.json());
16
+ for (const url$1 of urls) try {
17
+ connectionMeta = await fetch(`${url$1}.vdt-connection.json`).then((r) => r.json());
17
18
  break;
18
19
  } catch (e) {
19
20
  errors.push(e);
20
21
  }
21
22
  if (!connectionMeta) throw new Error(`Failed to get connection meta from ${urls.join(", ")}`, { cause: errors });
22
23
  }
23
- const rpc = createRpcClient({}, {
24
+ const url = isNumeric(connectionMeta.websocket) ? `${location.protocol.replace("http", "ws")}//${location.hostname}:${connectionMeta.websocket}` : connectionMeta.websocket;
25
+ const context = { rpc: void 0 };
26
+ const clientRpc = new RpcFunctionsCollectorBase(context);
27
+ const rpc = createRpcClient(clientRpc.functions, {
24
28
  preset: createWsRpcPreset({
25
- url: isNumeric(connectionMeta.websocket) ? `${location.protocol.replace("http", "ws")}//${location.hostname}:${connectionMeta.websocket}` : connectionMeta.websocket,
29
+ url,
26
30
  ...options.wsOptions
27
31
  }),
28
32
  rpcOptions
29
33
  });
34
+ context.rpc = rpc;
30
35
  return {
31
36
  connectionMeta,
32
- rpc
37
+ rpc,
38
+ clientRpc
33
39
  };
34
40
  }
35
41
 
@@ -1,7 +1,9 @@
1
- import { RpcFunctionsCollectorBase } from "birpc-x";
1
+ import { RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionsCollector, RpcFunctionsCollectorBase } from "birpc-x";
2
2
  import { WebSocketRpcClientOptions } from "@vitejs/devtools-rpc/presets/ws/client";
3
+ import { Emitter } from "nanoevents";
4
+ import { Raw } from "vue";
5
+ import { BirpcGroup, BirpcOptions, BirpcReturn } from "birpc";
3
6
  import { Plugin, ResolvedConfig, ViteDevServer } from "vite";
4
- import { BirpcFn, BirpcOptions, BirpcReturn, BirpcReturn as BirpcReturn$1 } from "birpc";
5
7
 
6
8
  //#region src/types/rpc-augments.d.ts
7
9
  /**
@@ -13,10 +15,6 @@ interface DevToolsRpcClientFunctions {}
13
15
  */
14
16
  interface DevToolsRpcServerFunctions {}
15
17
  //#endregion
16
- //#region src/types/utils.d.ts
17
- type Thenable<T> = T | Promise<T>;
18
- type EntriesToObject<T extends readonly [string, any][]> = { [K in T[number] as K[0]]: K[1] };
19
- //#endregion
20
18
  //#region src/types/views.d.ts
21
19
  interface DevToolsDockHost {
22
20
  views: Map<string, DevToolsDockEntry>;
@@ -132,29 +130,13 @@ interface ConnectionMeta {
132
130
  }
133
131
  //#endregion
134
132
  //#region src/types/rpc.d.ts
135
- /**
136
- * Type of the RPC function,
137
- * - static: A function that returns a static data (can be cached and dumped)
138
- * - action: A function that performs an action (no data returned)
139
- * - query: A function that queries a resource
140
- */
141
- type RpcFunctionType = 'static' | 'action' | 'query';
142
- type RpcFunctionsHost = RpcFunctionsCollectorBase<DevToolsRpcServerFunctions, DevToolsNodeContext>;
143
- interface RpcFunctionSetupResult<ARGS extends any[], RETURN = void> {
144
- handler: (...args: ARGS) => RETURN;
145
- }
146
- interface RpcFunctionDefinition<NAME extends string, TYPE extends RpcFunctionType, ARGS extends any[] = [], RETURN = void> {
147
- name: NAME;
148
- type: TYPE;
149
- setup: (context: DevToolsNodeContext) => Thenable<RpcFunctionSetupResult<ARGS, RETURN>>;
150
- handler?: (...args: ARGS) => RETURN;
151
- __resolved?: RpcFunctionSetupResult<ARGS, RETURN>;
152
- __promise?: Thenable<RpcFunctionSetupResult<ARGS, RETURN>>;
153
- }
154
- type RpcDefinitionsToFunctions<T extends readonly RpcFunctionDefinition<any, any, any>[]> = EntriesToObject<{ [K in keyof T]: [T[K]['name'], Awaited<ReturnType<T[K]['setup']>>['handler']] }>;
155
- type RpcDefinitionsFilter<T extends readonly RpcFunctionDefinition<any, any, any>[], Type extends RpcFunctionType> = { [K in keyof T]: T[K] extends {
156
- type: Type;
157
- } ? T[K] : never };
133
+ type RpcFunctionsHost = RpcFunctionsCollectorBase<DevToolsRpcServerFunctions, DevToolsNodeContext> & {
134
+ boardcast: BirpcGroup<DevToolsRpcClientFunctions, DevToolsRpcServerFunctions>['broadcast'];
135
+ };
136
+ //#endregion
137
+ //#region src/types/utils.d.ts
138
+ type Thenable<T> = T | Promise<T>;
139
+ type EntriesToObject<T extends readonly [string, any][]> = { [K in T[number] as K[0]]: K[1] };
158
140
  //#endregion
159
141
  //#region src/types/vite-augment.d.ts
160
142
  declare module 'vite' {
@@ -174,10 +156,12 @@ interface DevToolsRpcClientOptions {
174
156
  rpcOptions?: Partial<BirpcOptions<DevToolsRpcServerFunctions>>;
175
157
  }
176
158
  type DevToolsRpcClient = BirpcReturn<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions>;
177
- declare function getDevToolsRpcClient(options?: DevToolsRpcClientOptions): Promise<{
159
+ interface ClientRpcReturn {
178
160
  connectionMeta: ConnectionMeta;
179
161
  rpc: DevToolsRpcClient;
180
- }>;
162
+ clientRpc: DevToolsClientRpcHost;
163
+ }
164
+ declare function getDevToolsRpcClient(options?: DevToolsRpcClientOptions): Promise<ClientRpcReturn>;
181
165
  //#endregion
182
166
  //#region src/client/docks.d.ts
183
167
  interface DockPanelStorage {
@@ -190,7 +174,13 @@ interface DockPanelStorage {
190
174
  inactiveTimeout: number;
191
175
  }
192
176
  type DockClientType = 'embedded' | 'standalone';
193
- interface DocksContext {
177
+ interface DevToolsClientContext {
178
+ /**
179
+ * The RPC client to interact with the server
180
+ */
181
+ readonly rpc: DevToolsRpcClient;
182
+ }
183
+ interface DocksContext extends DevToolsClientContext {
194
184
  /**
195
185
  * Type of the client environment
196
186
  *
@@ -198,19 +188,20 @@ interface DocksContext {
198
188
  * 'standalone' - running inside a standlone window (no user app)
199
189
  */
200
190
  readonly clientType: 'embedded' | 'standalone';
201
- /**
202
- * The RPC client to interact with the server
203
- */
204
- readonly rpc: DevToolsRpcClient;
205
191
  /**
206
192
  * The panel context
207
193
  */
208
- panel: DocksPanelContext;
194
+ readonly panel: DocksPanelContext;
209
195
  /**
210
196
  * The docks entries context
211
197
  */
212
- docks: DocksEntriesContext;
198
+ readonly docks: DocksEntriesContext;
199
+ /**
200
+ * The client-side RPC functions to be called from the server
201
+ */
202
+ readonly clientRpc: DevToolsClientRpcHost;
213
203
  }
204
+ type DevToolsClientRpcHost = RpcFunctionsCollector<DevToolsRpcClientFunctions, DevToolsClientContext>;
214
205
  interface DocksPanelContext {
215
206
  store: DockPanelStorage;
216
207
  isDragging: boolean;
@@ -239,6 +230,14 @@ interface DockEntryState {
239
230
  iframe?: HTMLIFrameElement | null;
240
231
  panel?: HTMLDivElement | null;
241
232
  };
233
+ events: Raw<Emitter<DockEntryStateEvents>>;
234
+ }
235
+ interface DockEntryStateEvents {
236
+ 'entry:activated': () => void;
237
+ 'entry:deactivated': () => void;
238
+ 'entry:updated': (newMeta: DevToolsDockEntry) => void;
239
+ 'dom:panel:mounted': (panel: HTMLDivElement) => void;
240
+ 'dom:iframe:mounted': (iframe: HTMLIFrameElement) => void;
242
241
  }
243
242
  //#endregion
244
243
  //#region src/client/client-script.d.ts
@@ -247,31 +246,9 @@ interface DockEntryState {
247
246
  */
248
247
  interface DockClientScriptContext extends DocksContext {
249
248
  /**
250
- * The state if the current dock entry
249
+ * The state of the current dock entry
251
250
  */
252
251
  current: DockEntryState;
253
252
  }
254
- interface DockClientScriptCurrent {
255
- /**
256
- * The dock entry info of the current dock item
257
- */
258
- entryMeta: DevToolsDockEntry;
259
- /**
260
- * The current state of the dock
261
- */
262
- state: 'active' | 'inactive';
263
- /**
264
- * The panel element to mount into, when the entry type is `custom-render`
265
- */
266
- elPanel?: HTMLDivElement | null;
267
- /**
268
- * The iframe element to mount into, when the entry type is `iframe`
269
- */
270
- elIframe?: HTMLIFrameElement | null;
271
- /**
272
- * The dock icon element
273
- */
274
- elDockIcon?: HTMLDivElement | null;
275
- }
276
253
  //#endregion
277
- export { DevToolsDockHost as A, DevToolsNodeContext as C, DevToolsDockEntry as D, ClientScriptEntry as E, EntriesToObject as F, Thenable as I, DevToolsRpcClientFunctions as L, DevToolsViewCustomRender as M, DevToolsViewHost as N, DevToolsDockEntryBase as O, DevToolsViewIframe as P, DevToolsRpcServerFunctions as R, DevToolsCapabilities as S, DevToolsPluginOptions as T, RpcFunctionDefinition as _, DockPanelStorage as a, RpcFunctionsHost as b, DocksPanelContext as c, getDevToolsRpcClient as d, PluginWithDevTools as f, RpcDefinitionsToFunctions as g, RpcDefinitionsFilter as h, DockEntryState as i, DevToolsViewAction as j, DevToolsDockEntryCategory as k, DevToolsRpcClient as l, BirpcReturn$1 as m, DockClientScriptCurrent as n, DocksContext as o, BirpcFn as p, DockClientType as r, DocksEntriesContext as s, DockClientScriptContext as t, DevToolsRpcClientOptions as u, RpcFunctionSetupResult as v, DevToolsNodeUtils as w, ConnectionMeta as x, RpcFunctionType as y };
254
+ export { DevToolsDockHost as A, DevToolsNodeContext as C, DevToolsDockEntry as D, ClientScriptEntry as E, DevToolsRpcClientFunctions as F, DevToolsRpcServerFunctions as I, DevToolsViewCustomRender as M, DevToolsViewHost as N, DevToolsDockEntryBase as O, DevToolsViewIframe as P, DevToolsCapabilities as S, DevToolsPluginOptions as T, PluginWithDevTools as _, DockEntryState as a, RpcFunctionsHost as b, DocksContext as c, ClientRpcReturn as d, DevToolsRpcClient as f, RpcDefinitionsToFunctions as g, RpcDefinitionsFilter as h, DockClientType as i, DevToolsViewAction as j, DevToolsDockEntryCategory as k, DocksEntriesContext as l, getDevToolsRpcClient as m, DevToolsClientContext as n, DockEntryStateEvents as o, DevToolsRpcClientOptions as p, DevToolsClientRpcHost as r, DockPanelStorage as s, DockClientScriptContext as t, DocksPanelContext as u, EntriesToObject as v, DevToolsNodeUtils as w, ConnectionMeta as x, Thenable as y };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
- import { A as DevToolsDockHost, C as DevToolsNodeContext, D as DevToolsDockEntry, E as ClientScriptEntry, F as EntriesToObject, I as Thenable, L as DevToolsRpcClientFunctions, M as DevToolsViewCustomRender, N as DevToolsViewHost, O as DevToolsDockEntryBase, P as DevToolsViewIframe, R as DevToolsRpcServerFunctions, S as DevToolsCapabilities, T as DevToolsPluginOptions, _ as RpcFunctionDefinition, b as RpcFunctionsHost, f as PluginWithDevTools, g as RpcDefinitionsToFunctions, h as RpcDefinitionsFilter, j as DevToolsViewAction, k as DevToolsDockEntryCategory, m as BirpcReturn, p as BirpcFn, v as RpcFunctionSetupResult, w as DevToolsNodeUtils, x as ConnectionMeta, y as RpcFunctionType } from "./index-D9rmGPF1.mjs";
1
+ import { A as DevToolsDockHost, C as DevToolsNodeContext, D as DevToolsDockEntry, E as ClientScriptEntry, F as DevToolsRpcClientFunctions, I as DevToolsRpcServerFunctions, M as DevToolsViewCustomRender, N as DevToolsViewHost, O as DevToolsDockEntryBase, P as DevToolsViewIframe, S as DevToolsCapabilities, T as DevToolsPluginOptions, _ as PluginWithDevTools, b as RpcFunctionsHost, g as RpcDefinitionsToFunctions, h as RpcDefinitionsFilter, j as DevToolsViewAction, k as DevToolsDockEntryCategory, v as EntriesToObject, w as DevToolsNodeUtils, x as ConnectionMeta, y as Thenable } from "./index-C-bl_jKJ.mjs";
2
2
  import * as birpc_x0 from "birpc-x";
3
3
 
4
4
  //#region src/utils/rpc.d.ts
5
- declare const defineRpcFunction: <NAME extends string, TYPE extends birpc_x0.RpcFunctionType, ARGS extends any[], RETURN = void>(definition: birpc_x0.RpcFunctionDefinition<NAME, TYPE, ARGS, RETURN, DevToolsNodeContext>) => birpc_x0.RpcFunctionDefinition<NAME, TYPE, ARGS, RETURN, DevToolsNodeContext>;
5
+ declare const defineRpcFunction: <NAME extends string, TYPE extends birpc_x0.RpcFunctionType, ARGS$1 extends any[], RETURN$1 = void>(definition: birpc_x0.RpcFunctionDefinition<NAME, TYPE, ARGS$1, RETURN$1, DevToolsNodeContext>) => birpc_x0.RpcFunctionDefinition<NAME, TYPE, ARGS$1, RETURN$1, DevToolsNodeContext>;
6
6
  //#endregion
7
- export { BirpcFn, BirpcReturn, ClientScriptEntry, ConnectionMeta, DevToolsCapabilities, DevToolsDockEntry, DevToolsDockEntryBase, DevToolsDockEntryCategory, DevToolsDockHost, DevToolsNodeContext, DevToolsNodeUtils, DevToolsPluginOptions, DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, DevToolsViewAction, DevToolsViewCustomRender, DevToolsViewHost, DevToolsViewIframe, EntriesToObject, PluginWithDevTools, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionDefinition, RpcFunctionSetupResult, RpcFunctionType, RpcFunctionsHost, Thenable, defineRpcFunction };
7
+ export { ClientScriptEntry, ConnectionMeta, DevToolsCapabilities, DevToolsDockEntry, DevToolsDockEntryBase, DevToolsDockEntryCategory, DevToolsDockHost, DevToolsNodeContext, DevToolsNodeUtils, DevToolsPluginOptions, DevToolsRpcClientFunctions, DevToolsRpcServerFunctions, DevToolsViewAction, DevToolsViewCustomRender, DevToolsViewHost, DevToolsViewIframe, EntriesToObject, PluginWithDevTools, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionsHost, Thenable, defineRpcFunction };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitejs/devtools-kit",
3
3
  "type": "module",
4
- "version": "0.0.0-alpha.15",
4
+ "version": "0.0.0-alpha.17",
5
5
  "description": "Vite DevTools Kit",
6
6
  "author": "VoidZero Inc.",
7
7
  "license": "MIT",
@@ -33,9 +33,10 @@
33
33
  "vite": "*"
34
34
  },
35
35
  "dependencies": {
36
- "birpc": "^2.7.0",
37
- "birpc-x": "0.0.1",
38
- "@vitejs/devtools-rpc": "0.0.0-alpha.15"
36
+ "birpc": "^2.8.0",
37
+ "birpc-x": "0.0.5",
38
+ "nanoevents": "^9.1.0",
39
+ "@vitejs/devtools-rpc": "0.0.0-alpha.17"
39
40
  },
40
41
  "devDependencies": {
41
42
  "tsdown": "^0.16.1",