@vitejs/devtools-kit 0.0.0-alpha.19 → 0.0.0-alpha.20

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,3 +1,2 @@
1
- import "./events-DDdYnct9.mjs";
2
- 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-CgOheNVD.mjs";
3
- export { ClientRpcReturn, DevToolsClientContext, DevToolsClientRpcHost, DevToolsRpcClient, DevToolsRpcClientOptions, DockClientScriptContext, DockClientType, DockEntryState, DockEntryStateEvents, DockPanelStorage, DocksContext, DocksEntriesContext, DocksPanelContext, getDevToolsRpcClient };
1
+ import { a as DockEntryState, c as DocksContext, d as RpcClientEvents, 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-DLPbKO1M.mjs";
2
+ export { DevToolsClientContext, DevToolsClientRpcHost, DevToolsRpcClient, DevToolsRpcClientOptions, DockClientScriptContext, DockClientType, DockEntryState, DockEntryStateEvents, DockPanelStorage, DocksContext, DocksEntriesContext, DocksPanelContext, RpcClientEvents, getDevToolsRpcClient };
package/dist/client.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { t as createEventEmitter } from "./events-AmnAXhnR.mjs";
1
2
  import { RpcFunctionsCollectorBase } from "birpc-x";
2
3
  import { createRpcClient } from "@vitejs/devtools-rpc";
3
4
  import { createWsRpcPreset } from "@vitejs/devtools-rpc/presets/ws/client";
@@ -10,9 +11,9 @@ function isNumeric(str) {
10
11
  }
11
12
  function findConnectionMetaFromWindows() {
12
13
  const getters = [
13
- () => window[CONNECTION_META_KEY],
14
- () => globalThis[CONNECTION_META_KEY],
15
- () => parent.window[CONNECTION_META_KEY]
14
+ () => window?.[CONNECTION_META_KEY],
15
+ () => globalThis?.[CONNECTION_META_KEY],
16
+ () => parent.window?.[CONNECTION_META_KEY]
16
17
  ];
17
18
  for (const getter of getters) try {
18
19
  const value = getter();
@@ -21,6 +22,7 @@ function findConnectionMetaFromWindows() {
21
22
  }
22
23
  async function getDevToolsRpcClient(options = {}) {
23
24
  const { baseURL = "/.devtools/", rpcOptions = {} } = options;
25
+ const events = createEventEmitter();
24
26
  const bases = Array.isArray(baseURL) ? baseURL : [baseURL];
25
27
  let connectionMeta = options.connectionMeta || findConnectionMetaFromWindows();
26
28
  if (!connectionMeta) {
@@ -37,19 +39,29 @@ async function getDevToolsRpcClient(options = {}) {
37
39
  const url = isNumeric(connectionMeta.websocket) ? `${location.protocol.replace("http", "ws")}//${location.hostname}:${connectionMeta.websocket}` : connectionMeta.websocket;
38
40
  const context = { rpc: void 0 };
39
41
  const clientRpc = new RpcFunctionsCollectorBase(context);
40
- const rpc = createRpcClient(clientRpc.functions, {
42
+ const serverRpc = createRpcClient(clientRpc.functions, {
41
43
  preset: createWsRpcPreset({
42
44
  url,
43
45
  ...options.wsOptions
44
46
  }),
45
47
  rpcOptions
46
48
  });
47
- context.rpc = rpc;
48
- return {
49
+ const rpc = {
50
+ events,
49
51
  connectionMeta,
50
- rpc,
51
- clientRpc
52
+ call: (...args) => {
53
+ return serverRpc.$call(...args);
54
+ },
55
+ callEvent: (...args) => {
56
+ return serverRpc.$callEvent(...args);
57
+ },
58
+ callOptional: (...args) => {
59
+ return serverRpc.$callOptional(...args);
60
+ },
61
+ client: clientRpc
52
62
  };
63
+ context.rpc = rpc;
64
+ return rpc;
53
65
  }
54
66
 
55
67
  //#endregion
@@ -0,0 +1,41 @@
1
+ //#region src/utils/events.ts
2
+ /**
3
+ * Create event emitter.
4
+ */
5
+ function createEventEmitter() {
6
+ const _listeners = {};
7
+ function emit(event, ...args) {
8
+ const callbacks = _listeners[event] || [];
9
+ for (let i = 0, length = callbacks.length; i < length; i++) {
10
+ const callback = callbacks[i];
11
+ if (callback) callback(...args);
12
+ }
13
+ }
14
+ function emitOnce(event, ...args) {
15
+ emit(event, ...args);
16
+ delete _listeners[event];
17
+ }
18
+ function on(event, cb) {
19
+ (_listeners[event] ||= []).push(cb);
20
+ return () => {
21
+ _listeners[event] = _listeners[event]?.filter((i) => cb !== i);
22
+ };
23
+ }
24
+ function once(event, cb) {
25
+ const unsubscribe = on(event, ((...args) => {
26
+ unsubscribe();
27
+ return cb(...args);
28
+ }));
29
+ return unsubscribe;
30
+ }
31
+ return {
32
+ _listeners,
33
+ emit,
34
+ emitOnce,
35
+ on,
36
+ once
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ export { createEventEmitter as t };
@@ -16,7 +16,14 @@ interface EventEmitter<Events extends EventsMap> {
16
16
  * @param event The event name.
17
17
  * @param args The arguments for listeners.
18
18
  */
19
- emit: <K extends keyof Events>(this: this, event: K, ...args: Parameters<Events[K]>) => void;
19
+ emit: <K extends keyof Events>(event: K, ...args: Parameters<Events[K]>) => void;
20
+ /**
21
+ * Calls the listeners for a given event once and then removes the listener.
22
+ *
23
+ * @param event The event name.
24
+ * @param args The arguments for listeners.
25
+ */
26
+ emitOnce: <K extends keyof Events>(event: K, ...args: Parameters<Events[K]>) => void;
20
27
  /**
21
28
  * Event names in keys and arrays with listeners in values.
22
29
  *
@@ -40,7 +47,25 @@ interface EventEmitter<Events extends EventsMap> {
40
47
  * @param cb The listener function.
41
48
  * @returns Unbind listener from event.
42
49
  */
43
- on: <K extends keyof Events>(this: this, event: K, cb: Events[K]) => EventUnsubscribe;
50
+ on: <K extends keyof Events>(event: K, cb: Events[K]) => EventUnsubscribe;
51
+ /**
52
+ * Add a listener for a given event once.
53
+ *
54
+ * ```js
55
+ * const unbind = ee.once('tick', (tickType, tickDuration) => {
56
+ * count += 1
57
+ * })
58
+ *
59
+ * disable () {
60
+ * unbind()
61
+ * }
62
+ * ```
63
+ *
64
+ * @param event The event name.
65
+ * @param cb The listener function.
66
+ * @returns Unbind listener from event.
67
+ */
68
+ once: <K extends keyof Events>(event: K, cb: Events[K]) => EventUnsubscribe;
44
69
  }
45
70
  //#endregion
46
71
  export { EventUnsubscribe as n, EventsMap as r, EventEmitter as t };
@@ -1,10 +1,9 @@
1
- import { t as EventEmitter } from "./events-DDdYnct9.mjs";
1
+ import { t as EventEmitter } from "./events-S6nCJ_5X.mjs";
2
2
  import { RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionsCollector, RpcFunctionsCollectorBase } from "birpc-x";
3
- import { WebSocketRpcClientOptions } from "@vitejs/devtools-rpc/presets/ws/client";
4
3
  import { Raw } from "vue";
5
- import { BirpcGroup, BirpcOptions, BirpcReturn } from "birpc";
6
4
  import { Plugin, ResolvedConfig, ViteDevServer } from "vite";
7
5
  import { ChildProcess } from "node:child_process";
6
+ import { BirpcOptions, BirpcReturn } from "birpc";
8
7
 
9
8
  //#region src/types/docks.d.ts
10
9
  interface DevToolsDockHost {
@@ -207,7 +206,7 @@ interface ConnectionMeta {
207
206
  //#endregion
208
207
  //#region src/types/rpc.d.ts
209
208
  type RpcFunctionsHost = RpcFunctionsCollectorBase<DevToolsRpcServerFunctions, DevToolsNodeContext> & {
210
- boardcast: BirpcGroup<DevToolsRpcClientFunctions, DevToolsRpcServerFunctions>['broadcast'];
209
+ boardcast: <T extends keyof DevToolsRpcClientFunctions, Args extends Parameters<DevToolsRpcClientFunctions[T]>>(name: T, ...args: Args) => Promise<(Awaited<ReturnType<DevToolsRpcClientFunctions[T]>> | undefined)[]>;
211
210
  };
212
211
  //#endregion
213
212
  //#region src/types/utils.d.ts
@@ -229,20 +228,48 @@ interface PluginWithDevTools extends Plugin {
229
228
  devtools?: DevToolsPluginOptions;
230
229
  }
231
230
  //#endregion
231
+ //#region ../rpc/src/presets/ws/client.d.ts
232
+ interface WebSocketRpcClientOptions {
233
+ url: string;
234
+ onConnected?: (e: Event) => void;
235
+ onError?: (e: Error) => void;
236
+ onDisconnected?: (e: CloseEvent) => void;
237
+ }
238
+ //#endregion
232
239
  //#region src/client/rpc.d.ts
233
240
  interface DevToolsRpcClientOptions {
234
241
  connectionMeta?: ConnectionMeta;
235
242
  baseURL?: string[];
236
243
  wsOptions?: Partial<WebSocketRpcClientOptions>;
237
- rpcOptions?: Partial<BirpcOptions<DevToolsRpcServerFunctions>>;
244
+ rpcOptions?: Partial<BirpcOptions<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions, boolean>>;
238
245
  }
239
- type DevToolsRpcClient = BirpcReturn<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions>;
240
- interface ClientRpcReturn {
241
- connectionMeta: ConnectionMeta;
242
- rpc: DevToolsRpcClient;
243
- clientRpc: DevToolsClientRpcHost;
246
+ interface DevToolsRpcClient {
247
+ /**
248
+ * The events of the client
249
+ */
250
+ events: EventEmitter<RpcClientEvents>;
251
+ /**
252
+ * The connection meta
253
+ */
254
+ readonly connectionMeta: ConnectionMeta;
255
+ /**
256
+ * Call a RPC function on the server
257
+ */
258
+ call: BirpcReturn<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions>['$call'];
259
+ /**
260
+ * Call a RPC event on the server, and does not expect a response
261
+ */
262
+ callEvent: BirpcReturn<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions>['$callEvent'];
263
+ /**
264
+ * Call a RPC optional function on the server
265
+ */
266
+ callOptional: BirpcReturn<DevToolsRpcServerFunctions, DevToolsRpcClientFunctions>['$callOptional'];
267
+ /**
268
+ * The client RPC host
269
+ */
270
+ client: DevToolsClientRpcHost;
244
271
  }
245
- declare function getDevToolsRpcClient(options?: DevToolsRpcClientOptions): Promise<ClientRpcReturn>;
272
+ declare function getDevToolsRpcClient(options?: DevToolsRpcClientOptions): Promise<DevToolsRpcClient>;
246
273
  //#endregion
247
274
  //#region src/client/docks.d.ts
248
275
  interface DockPanelStorage {
@@ -277,10 +304,6 @@ interface DocksContext extends DevToolsClientContext {
277
304
  * The docks entries context
278
305
  */
279
306
  readonly docks: DocksEntriesContext;
280
- /**
281
- * The client-side RPC functions to be called from the server
282
- */
283
- readonly clientRpc: DevToolsClientRpcHost;
284
307
  }
285
308
  type DevToolsClientRpcHost = RpcFunctionsCollector<DevToolsRpcClientFunctions, DevToolsClientContext>;
286
309
  interface DocksPanelContext {
@@ -321,6 +344,7 @@ interface DockEntryStateEvents {
321
344
  'dom:panel:mounted': (panel: HTMLDivElement) => void;
322
345
  'dom:iframe:mounted': (iframe: HTMLIFrameElement) => void;
323
346
  }
347
+ interface RpcClientEvents {}
324
348
  //#endregion
325
349
  //#region src/client/client-script.d.ts
326
350
  /**
@@ -333,4 +357,4 @@ interface DockClientScriptContext extends DocksContext {
333
357
  current: DockEntryState;
334
358
  }
335
359
  //#endregion
336
- export { DevToolsTerminalHost as A, DevToolsDockEntryCategory as B, DevToolsCapabilities as C, DevToolsViewHost as D, DevToolsPluginOptions as E, DevToolsRpcClientFunctions as F, DevToolsViewBuiltin as G, DevToolsDockHost as H, DevToolsRpcServerFunctions as I, DevToolsViewLauncher as J, DevToolsViewCustomRender as K, ClientScriptEntry as L, DevToolsTerminalSessionBase as M, DevToolsTerminalSessionStreamChunkEvent as N, DevToolsChildProcessExecuteOptions as O, DevToolsTerminalStatus as P, DevToolsDockEntry as R, ConnectionMeta as S, DevToolsNodeUtils as T, DevToolsDockUserEntry as U, DevToolsDockEntryIcon as V, DevToolsViewAction as W, DevToolsViewLauncherStatus as Y, PluginWithDevTools as _, DockEntryState as a, Thenable as b, DocksContext as c, ClientRpcReturn as d, DevToolsRpcClient as f, RpcDefinitionsToFunctions as g, RpcDefinitionsFilter as h, DockClientType as i, DevToolsTerminalSession as j, DevToolsChildProcessTerminalSession as k, DocksEntriesContext as l, getDevToolsRpcClient as m, DevToolsClientContext as n, DockEntryStateEvents as o, DevToolsRpcClientOptions as p, DevToolsViewIframe as q, DevToolsClientRpcHost as r, DockPanelStorage as s, DockClientScriptContext as t, DocksPanelContext as u, EntriesToObject as v, DevToolsNodeContext as w, RpcFunctionsHost as x, PartialWithoutId as y, DevToolsDockEntryBase as z };
360
+ export { DevToolsTerminalHost as A, DevToolsDockEntryCategory as B, DevToolsCapabilities as C, DevToolsViewHost as D, DevToolsPluginOptions as E, DevToolsRpcClientFunctions as F, DevToolsViewBuiltin as G, DevToolsDockHost as H, DevToolsRpcServerFunctions as I, DevToolsViewLauncher as J, DevToolsViewCustomRender as K, ClientScriptEntry as L, DevToolsTerminalSessionBase as M, DevToolsTerminalSessionStreamChunkEvent as N, DevToolsChildProcessExecuteOptions as O, DevToolsTerminalStatus as P, DevToolsDockEntry as R, ConnectionMeta as S, DevToolsNodeUtils as T, DevToolsDockUserEntry as U, DevToolsDockEntryIcon as V, DevToolsViewAction as W, DevToolsViewLauncherStatus as Y, PluginWithDevTools as _, DockEntryState as a, Thenable as b, DocksContext as c, RpcClientEvents as d, DevToolsRpcClient as f, RpcDefinitionsToFunctions as g, RpcDefinitionsFilter as h, DockClientType as i, DevToolsTerminalSession as j, DevToolsChildProcessTerminalSession as k, DocksEntriesContext as l, getDevToolsRpcClient as m, DevToolsClientContext as n, DockEntryStateEvents as o, DevToolsRpcClientOptions as p, DevToolsViewIframe as q, DevToolsClientRpcHost as r, DockPanelStorage as s, DockClientScriptContext as t, DocksPanelContext as u, EntriesToObject as v, DevToolsNodeContext as w, RpcFunctionsHost as x, PartialWithoutId as y, DevToolsDockEntryBase as z };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { n as EventUnsubscribe, r as EventsMap, t as EventEmitter } from "./events-DDdYnct9.mjs";
2
- import { A as DevToolsTerminalHost, B as DevToolsDockEntryCategory, C as DevToolsCapabilities, D as DevToolsViewHost, E as DevToolsPluginOptions, F as DevToolsRpcClientFunctions, G as DevToolsViewBuiltin, H as DevToolsDockHost, I as DevToolsRpcServerFunctions, J as DevToolsViewLauncher, K as DevToolsViewCustomRender, L as ClientScriptEntry, M as DevToolsTerminalSessionBase, N as DevToolsTerminalSessionStreamChunkEvent, O as DevToolsChildProcessExecuteOptions, P as DevToolsTerminalStatus, R as DevToolsDockEntry, S as ConnectionMeta, T as DevToolsNodeUtils, U as DevToolsDockUserEntry, V as DevToolsDockEntryIcon, W as DevToolsViewAction, Y as DevToolsViewLauncherStatus, _ as PluginWithDevTools, b as Thenable, g as RpcDefinitionsToFunctions, h as RpcDefinitionsFilter, j as DevToolsTerminalSession, k as DevToolsChildProcessTerminalSession, q as DevToolsViewIframe, v as EntriesToObject, w as DevToolsNodeContext, x as RpcFunctionsHost, y as PartialWithoutId, z as DevToolsDockEntryBase } from "./index-CgOheNVD.mjs";
1
+ import { n as EventUnsubscribe, r as EventsMap, t as EventEmitter } from "./events-S6nCJ_5X.mjs";
2
+ import { A as DevToolsTerminalHost, B as DevToolsDockEntryCategory, C as DevToolsCapabilities, D as DevToolsViewHost, E as DevToolsPluginOptions, F as DevToolsRpcClientFunctions, G as DevToolsViewBuiltin, H as DevToolsDockHost, I as DevToolsRpcServerFunctions, J as DevToolsViewLauncher, K as DevToolsViewCustomRender, L as ClientScriptEntry, M as DevToolsTerminalSessionBase, N as DevToolsTerminalSessionStreamChunkEvent, O as DevToolsChildProcessExecuteOptions, P as DevToolsTerminalStatus, R as DevToolsDockEntry, S as ConnectionMeta, T as DevToolsNodeUtils, U as DevToolsDockUserEntry, V as DevToolsDockEntryIcon, W as DevToolsViewAction, Y as DevToolsViewLauncherStatus, _ as PluginWithDevTools, b as Thenable, g as RpcDefinitionsToFunctions, h as RpcDefinitionsFilter, j as DevToolsTerminalSession, k as DevToolsChildProcessTerminalSession, q as DevToolsViewIframe, v as EntriesToObject, w as DevToolsNodeContext, x as RpcFunctionsHost, y as PartialWithoutId, z as DevToolsDockEntryBase } from "./index-DLPbKO1M.mjs";
3
3
  import * as birpc_x0 from "birpc-x";
4
4
 
5
5
  //#region src/utils/define.d.ts
@@ -1,4 +1,4 @@
1
- import { r as EventsMap, t as EventEmitter } from "../events-DDdYnct9.mjs";
1
+ import { r as EventsMap, t as EventEmitter } from "../events-S6nCJ_5X.mjs";
2
2
 
3
3
  //#region src/utils/events.d.ts
4
4
 
@@ -1,26 +1,3 @@
1
- //#region src/utils/events.ts
2
- /**
3
- * Create event emitter.
4
- */
5
- function createEventEmitter() {
6
- const _listeners = {};
7
- return {
8
- emit(event, ...args) {
9
- const callbacks = _listeners[event] || [];
10
- for (let i = 0, length = callbacks.length; i < length; i++) {
11
- const callback = callbacks[i];
12
- if (callback) callback(...args);
13
- }
14
- },
15
- _listeners,
16
- on(event, cb) {
17
- (_listeners[event] ||= []).push(cb);
18
- return () => {
19
- _listeners[event] = _listeners[event]?.filter((i) => cb !== i);
20
- };
21
- }
22
- };
23
- }
1
+ import { t as createEventEmitter } from "../events-AmnAXhnR.mjs";
24
2
 
25
- //#endregion
26
3
  export { createEventEmitter };
@@ -0,0 +1,4 @@
1
+ //#region src/utils/nanoid.d.ts
2
+ declare function nanoid(size?: number): string;
3
+ //#endregion
4
+ export { nanoid };
@@ -0,0 +1,11 @@
1
+ //#region src/utils/nanoid.ts
2
+ const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
3
+ function nanoid(size = 21) {
4
+ let id = "";
5
+ let i = size;
6
+ while (i--) id += urlAlphabet[Math.random() * 64 | 0];
7
+ return id;
8
+ }
9
+
10
+ //#endregion
11
+ export { nanoid };
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.19",
4
+ "version": "0.0.0-alpha.20",
5
5
  "description": "Vite DevTools Kit",
6
6
  "author": "VoidZero Inc.",
7
7
  "license": "MIT",
@@ -22,6 +22,7 @@
22
22
  ".": "./dist/index.mjs",
23
23
  "./client": "./dist/client.mjs",
24
24
  "./utils/events": "./dist/utils/events.mjs",
25
+ "./utils/nanoid": "./dist/utils/nanoid.mjs",
25
26
  "./package.json": "./package.json"
26
27
  },
27
28
  "main": "./dist/index.mjs",
@@ -34,13 +35,14 @@
34
35
  "vite": "*"
35
36
  },
36
37
  "dependencies": {
37
- "birpc": "^2.8.0",
38
- "birpc-x": "0.0.5",
39
- "@vitejs/devtools-rpc": "0.0.0-alpha.19"
38
+ "birpc": "^4.0.0",
39
+ "birpc-x": "0.0.6",
40
+ "@vitejs/devtools-rpc": "0.0.0-alpha.20"
40
41
  },
41
42
  "devDependencies": {
42
- "tsdown": "^0.16.1",
43
- "vite": "npm:rolldown-vite@^7.2.2"
43
+ "my-ua-parser": "^2.0.4",
44
+ "tsdown": "^0.17.4",
45
+ "vite": "^8.0.0-beta.2"
44
46
  },
45
47
  "scripts": {
46
48
  "build": "tsdown",