@devframes/hub 0.5.4 → 0.6.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,373 @@
1
+ import { ConnectionMeta, EventEmitter } from "devframe/types";
2
+
3
+ //#region src/types/json-render.d.ts
4
+ interface JsonRenderElement {
5
+ type: string;
6
+ props?: Record<string, unknown>;
7
+ children?: string[];
8
+ /** json-render event bindings (e.g. `{ press: { action: "my:action" } }`) */
9
+ on?: Record<string, unknown>;
10
+ /** json-render visibility condition */
11
+ visible?: unknown;
12
+ /** json-render repeat binding */
13
+ repeat?: unknown;
14
+ /** Allow additional json-render element fields */
15
+ [key: string]: unknown;
16
+ }
17
+ interface JsonRenderSpec {
18
+ root: string;
19
+ elements: Record<string, JsonRenderElement>;
20
+ /** Initial client-side state model for $state/$bindState expressions */
21
+ state?: Record<string, unknown>;
22
+ }
23
+ interface JsonRenderer {
24
+ /** Replace the entire spec */
25
+ updateSpec: (spec: JsonRenderSpec) => void | Promise<void>;
26
+ /** Update json-render state values (shallow merge into spec.state) */
27
+ updateState: (state: Record<string, unknown>) => void | Promise<void>;
28
+ /** Internal: shared state key used by the client to subscribe */
29
+ readonly _stateKey: string;
30
+ }
31
+ //#endregion
32
+ //#region src/types/docks.d.ts
33
+ interface DevframeDocksHost {
34
+ readonly views: Map<string, DevframeDockUserEntry>;
35
+ readonly events: EventEmitter<{
36
+ 'dock:entry:updated': (entry: DevframeDockUserEntry) => void;
37
+ }>;
38
+ register: <T extends DevframeDockUserEntry>(entry: T, force?: boolean) => {
39
+ update: (patch: Partial<T>) => void;
40
+ };
41
+ update: (entry: DevframeDockUserEntry) => void;
42
+ values: (options?: {
43
+ includeBuiltin?: boolean;
44
+ }) => DevframeDockEntry[];
45
+ }
46
+ /**
47
+ * Per-entry toggles for the hub's synthesized built-in dock entries.
48
+ *
49
+ * Each flag defaults to `true` (the entry is present). Set one to `false` to
50
+ * suppress that built-in everywhere it would otherwise appear — useful when a
51
+ * host mounts a plugin that supersedes the built-in tab (e.g.
52
+ * `@devframes/plugin-terminals` replacing the `~terminals` entry).
53
+ */
54
+ interface BuiltinDocksOptions {
55
+ /**
56
+ * Include the built-in `~terminals` dock entry.
57
+ * @default true
58
+ */
59
+ terminals?: boolean;
60
+ /**
61
+ * Include the built-in `~messages` dock entry.
62
+ * @default true
63
+ */
64
+ messages?: boolean;
65
+ /**
66
+ * Include the built-in `~settings` dock entry.
67
+ * @default true
68
+ */
69
+ settings?: boolean;
70
+ }
71
+ type DevframeDockEntryCategory = 'app' | 'framework' | 'web' | 'advanced' | 'default' | '~builtin' | (string & {});
72
+ type DevframeDockEntryIcon = string | {
73
+ light: string;
74
+ dark: string;
75
+ };
76
+ interface DevframeDockEntryBase {
77
+ id: string;
78
+ title: string;
79
+ icon: DevframeDockEntryIcon;
80
+ /**
81
+ * The default order of the entry in the dock.
82
+ * The higher the number the earlier it appears.
83
+ * @default 0
84
+ */
85
+ defaultOrder?: number;
86
+ /**
87
+ * The category of the entry
88
+ * @default 'default'
89
+ */
90
+ category?: DevframeDockEntryCategory;
91
+ /**
92
+ * Conditional visibility expression.
93
+ * When set, the dock entry is only visible when the expression evaluates to true.
94
+ * Uses the same syntax as command `when` clauses.
95
+ *
96
+ * Set to `'false'` to unconditionally hide the entry.
97
+ *
98
+ * @example 'clientType == embedded'
99
+ * @see {@link import('devframe/utils/when').evaluateWhen}
100
+ */
101
+ when?: string;
102
+ /**
103
+ * Badge text to display on the dock icon (e.g., unread count)
104
+ */
105
+ badge?: string;
106
+ /**
107
+ * Id of the group this entry belongs to. When set, hosts collapse this entry
108
+ * under the matching group's button instead of showing it directly on the
109
+ * dock bar.
110
+ *
111
+ * This is a flat pointer — membership, not containment. The entry stays an
112
+ * independently-registered, top-level entry; only its rendering is grouped
113
+ * downstream. If the referenced group is never registered, the entry renders
114
+ * as a normal top-level entry (orphan tolerance).
115
+ *
116
+ * @see {@link DevframeViewGroup}
117
+ */
118
+ groupId?: string;
119
+ }
120
+ interface ClientScriptEntry {
121
+ /**
122
+ * The filepath or module name to import from
123
+ */
124
+ importFrom: string;
125
+ /**
126
+ * The name to import the module as
127
+ *
128
+ * @default 'default'
129
+ */
130
+ importName?: string;
131
+ }
132
+ interface DevframeViewIframe extends DevframeDockEntryBase {
133
+ type: 'iframe';
134
+ url: string;
135
+ /**
136
+ * The id of the iframe, if multiple tabs is assigned with the same id, the iframe will be shared.
137
+ *
138
+ * When not provided, it would be treated as a unique frame.
139
+ */
140
+ frameId?: string;
141
+ /**
142
+ * Optional client script to import into the iframe
143
+ */
144
+ clientScript?: ClientScriptEntry;
145
+ /**
146
+ * Enable remote-UI mode: the hub injects a connection descriptor
147
+ * (WS URL + pre-approved auth token) into the iframe URL so a hosted
148
+ * page can connect back via `connectRemoteDevframe()` from
149
+ * `@devframes/hub/client` — without needing to ship a dist with the
150
+ * plugin.
151
+ *
152
+ * Requires dev mode (no effect in build mode — no WS server exists).
153
+ * When enabled, the dock is automatically hidden in build mode unless
154
+ * the author provides an explicit `when` clause.
155
+ */
156
+ remote?: boolean | RemoteDockOptions;
157
+ }
158
+ interface RemoteDockOptions {
159
+ /**
160
+ * How to pass the connection descriptor to the hosted page.
161
+ *
162
+ * - `'fragment'` (default): appended as a URL fragment.
163
+ * Not sent in HTTP requests or Referer headers — safest for auth tokens.
164
+ * - `'query'`: appended as a URL query parameter. Use when your hosting
165
+ * platform rewrites fragments or your SPA router repurposes the fragment
166
+ * for navigation. The token will appear in server access logs and
167
+ * outbound Referer headers.
168
+ *
169
+ * @default 'fragment'
170
+ */
171
+ transport?: 'fragment' | 'query';
172
+ /**
173
+ * Reject WS handshakes whose `Origin` header doesn't match the dock URL
174
+ * origin. Turn off when the same hosted app is served from multiple
175
+ * origins (e.g. preview deploys).
176
+ *
177
+ * @default true
178
+ */
179
+ originLock?: boolean;
180
+ }
181
+ interface RemoteConnectionInfo extends ConnectionMeta {
182
+ backend: 'websocket';
183
+ websocket: string;
184
+ v: 1;
185
+ authToken: string;
186
+ origin: string;
187
+ }
188
+ type DevframeViewLauncherStatus = 'idle' | 'loading' | 'success' | 'error';
189
+ interface DevframeViewLauncher extends DevframeDockEntryBase {
190
+ type: 'launcher';
191
+ launcher: {
192
+ icon?: DevframeDockEntryIcon;
193
+ title: string;
194
+ status?: DevframeViewLauncherStatus;
195
+ error?: string;
196
+ description?: string;
197
+ buttonStart?: string;
198
+ buttonLoading?: string;
199
+ onLaunch: () => Promise<void>;
200
+ };
201
+ }
202
+ interface DevframeViewAction extends DevframeDockEntryBase {
203
+ type: 'action';
204
+ action: ClientScriptEntry;
205
+ }
206
+ interface DevframeViewCustomRender extends DevframeDockEntryBase {
207
+ type: 'custom-render';
208
+ renderer: ClientScriptEntry;
209
+ }
210
+ interface DevframeViewBuiltin extends DevframeDockEntryBase {
211
+ type: '~builtin';
212
+ id: '~terminals' | '~messages' | '~client-auth-notice' | '~settings' | '~popup';
213
+ }
214
+ interface DevframeViewJsonRender extends DevframeDockEntryBase {
215
+ type: 'json-render';
216
+ /** JsonRenderer handle created by ctx.createJsonRenderer() */
217
+ ui: JsonRenderer;
218
+ }
219
+ /**
220
+ * A dock group: a single dock-bar button that collapses every entry whose
221
+ * {@link DevframeDockEntryBase.groupId} matches this group's `id`.
222
+ *
223
+ * A group carries its own `title`/`icon`/`category`/`defaultOrder`/`when`
224
+ * (inherited from {@link DevframeDockEntryBase}) and has no view payload of its
225
+ * own — hosts render its members in a popover / sub-navigation. It flows
226
+ * through the same `register`/`update`/`values` machinery as every other entry,
227
+ * keyed by `id`.
228
+ *
229
+ * Grouping is one level deep: a group entry must not itself set `groupId`.
230
+ */
231
+ interface DevframeViewGroup extends DevframeDockEntryBase {
232
+ type: 'group';
233
+ /**
234
+ * Member id auto-opened when the group button is activated. When unset,
235
+ * activating the group only reveals its members (popover-only); no view
236
+ * opens until a member is chosen.
237
+ */
238
+ defaultChildId?: string;
239
+ }
240
+ type DevframeDockUserEntry = DevframeViewIframe | DevframeViewAction | DevframeViewCustomRender | DevframeViewLauncher | DevframeViewJsonRender | DevframeViewGroup;
241
+ type DevframeDockEntry = DevframeDockUserEntry | DevframeViewBuiltin;
242
+ type DevframeDockEntriesGrouped = [category: string, entries: DevframeDockEntry[]][];
243
+ //#endregion
244
+ //#region src/types/commands.d.ts
245
+ interface DevframeCommandKeybinding {
246
+ /**
247
+ * Keyboard shortcut string.
248
+ * Use "Mod" for platform-aware modifier (Cmd on macOS, Ctrl elsewhere).
249
+ * Examples: "Mod+K", "Mod+Shift+P", "Alt+N"
250
+ */
251
+ key: string;
252
+ }
253
+ interface DevframeCommandBase {
254
+ /**
255
+ * Unique namespaced ID, e.g. "vite:open-in-editor"
256
+ */
257
+ id: string;
258
+ title: string;
259
+ description?: string;
260
+ /**
261
+ * Icon for the command. Either an Iconify icon string (e.g. "ph:pencil-duotone")
262
+ * or a theme-specific pair `{ light, dark }` — the same shape as dock icons.
263
+ */
264
+ icon?: DevframeDockEntryIcon;
265
+ category?: string;
266
+ /**
267
+ * Whether to show in command palette. Default: true
268
+ *
269
+ * - `true` — show the command and flatten its children into search results
270
+ * - `false` — hide the command entirely from the palette
271
+ * - `'without-children'` — show the command but don't flatten children into top-level search (children are still accessible via drill-down)
272
+ */
273
+ showInPalette?: boolean | 'without-children';
274
+ /**
275
+ * Optional context expression for conditional visibility.
276
+ * When set, the command is only shown in the palette and only executable
277
+ * when the expression evaluates to true.
278
+ */
279
+ when?: string;
280
+ /**
281
+ * Default keyboard shortcut(s) for this command
282
+ */
283
+ keybindings?: DevframeCommandKeybinding[];
284
+ }
285
+ /**
286
+ * Server command input — what plugins pass to `ctx.commands.register()`.
287
+ */
288
+ interface DevframeServerCommandInput extends DevframeCommandBase {
289
+ /**
290
+ * Handler for this command. Optional if the command only serves as a group for children.
291
+ */
292
+ handler?: (...args: any[]) => any | Promise<any>;
293
+ /**
294
+ * Static sub-commands. Two levels max (parent → children).
295
+ * Each child must have a globally unique `id`.
296
+ */
297
+ children?: DevframeServerCommandInput[];
298
+ }
299
+ /**
300
+ * Serializable server command entry — sent over RPC (no handler).
301
+ */
302
+ interface DevframeServerCommandEntry extends DevframeCommandBase {
303
+ source: 'server';
304
+ children?: DevframeServerCommandEntry[];
305
+ }
306
+ /**
307
+ * Client command — registered in the webcomponent context.
308
+ */
309
+ interface DevframeClientCommand extends DevframeCommandBase {
310
+ source: 'client';
311
+ /**
312
+ * Action for this command. Optional if the command only serves as a group for children.
313
+ * Return sub-commands for dynamic nested palette menus (runtime submenus).
314
+ */
315
+ action?: (...args: any[]) => void | DevframeClientCommand[] | Promise<void | DevframeClientCommand[]>;
316
+ /**
317
+ * Static sub-commands. Two levels max (parent → children).
318
+ */
319
+ children?: DevframeClientCommand[];
320
+ }
321
+ /**
322
+ * Union of command entries visible in the palette.
323
+ */
324
+ type DevframeCommandEntry = DevframeServerCommandEntry | DevframeClientCommand;
325
+ interface DevframeCommandHandle {
326
+ readonly id: string;
327
+ update: (patch: Partial<Omit<DevframeServerCommandInput, 'id'>>) => void;
328
+ unregister: () => void;
329
+ }
330
+ interface DevframeCommandsHostEvents {
331
+ 'command:registered': (command: DevframeServerCommandEntry) => void;
332
+ 'command:unregistered': (id: string) => void;
333
+ }
334
+ interface DevframeCommandsHost {
335
+ readonly commands: Map<string, DevframeServerCommandInput>;
336
+ readonly events: EventEmitter<DevframeCommandsHostEvents>;
337
+ /**
338
+ * Register a command (with optional children).
339
+ */
340
+ register: (command: DevframeServerCommandInput) => DevframeCommandHandle;
341
+ /**
342
+ * Unregister a command by ID (removes parent and all children).
343
+ */
344
+ unregister: (id: string) => boolean;
345
+ /**
346
+ * Execute a command by ID. Searches top-level and children.
347
+ * Throws if not found or if command has no handler.
348
+ */
349
+ execute: (id: string, ...args: any[]) => Promise<unknown>;
350
+ /**
351
+ * Returns serializable list (no handlers), preserving tree structure.
352
+ */
353
+ list: () => DevframeServerCommandEntry[];
354
+ }
355
+ interface DevframeCommandShortcutOverrides {
356
+ /**
357
+ * Command ID → keybinding overrides. Empty array = shortcut disabled.
358
+ */
359
+ [commandId: string]: DevframeCommandKeybinding[];
360
+ }
361
+ //#endregion
362
+ //#region src/types/settings.d.ts
363
+ interface DevframeDocksUserSettings {
364
+ docksHidden: string[];
365
+ docksCategoriesHidden: string[];
366
+ docksPinned: string[];
367
+ docksCustomOrder: Record<string, number>;
368
+ showIframeAddressBar: boolean;
369
+ closeOnOutsideClick: boolean;
370
+ commandShortcuts: DevframeCommandShortcutOverrides;
371
+ }
372
+ //#endregion
373
+ export { RemoteDockOptions as A, DevframeViewCustomRender as C, DevframeViewLauncher as D, DevframeViewJsonRender as E, JsonRenderSpec as M, JsonRenderer as N, DevframeViewLauncherStatus as O, DevframeViewBuiltin as S, DevframeViewIframe as T, DevframeDockEntryCategory as _, DevframeCommandHandle as a, DevframeDocksHost as b, DevframeCommandsHost as c, DevframeServerCommandInput as d, BuiltinDocksOptions as f, DevframeDockEntryBase as g, DevframeDockEntry as h, DevframeCommandEntry as i, JsonRenderElement as j, RemoteConnectionInfo as k, DevframeCommandsHostEvents as l, DevframeDockEntriesGrouped as m, DevframeClientCommand as n, DevframeCommandKeybinding as o, ClientScriptEntry as p, DevframeCommandBase as r, DevframeCommandShortcutOverrides as s, DevframeDocksUserSettings as t, DevframeServerCommandEntry as u, DevframeDockEntryIcon as v, DevframeViewGroup as w, DevframeViewAction as x, DevframeDockUserEntry as y };
@@ -1,4 +1,4 @@
1
- import { A as JsonRenderer, C as DevframeViewJsonRender, D as RemoteDockOptions, E as RemoteConnectionInfo, F as DevframeMessageFilePosition, I as DevframeMessageHandle, L as DevframeMessageLevel, M as DevframeMessageEntry, N as DevframeMessageEntryFrom, O as JsonRenderElement, P as DevframeMessageEntryInput, R as DevframeMessagesClient, S as DevframeViewIframe, T as DevframeViewLauncherStatus, _ as DevframeDocksHost, a as DevframeChildProcessTerminalSession, b as DevframeViewCustomRender, c as DevframeTerminalStatus, d as DevframeDockEntriesGrouped, f as DevframeDockEntry, g as DevframeDockUserEntry, h as DevframeDockEntryIcon, i as DevframeChildProcessExecuteOptions, j as DevframeMessageElementPosition, k as JsonRenderSpec, l as DevframeTerminalsHost, m as DevframeDockEntryCategory, n as DevframeHubContext, o as DevframeTerminalSession, p as DevframeDockEntryBase, s as DevframeTerminalSessionBase, t as CreateHubContextOptions, u as ClientScriptEntry, v as DevframeViewAction, w as DevframeViewLauncher, x as DevframeViewGroup, y as DevframeViewBuiltin, z as DevframeMessagesHost } from "../context-Dox-G9vt.mjs";
2
- import { a as DevframeCommandHandle, c as DevframeCommandsHost, d as DevframeServerCommandInput, i as DevframeCommandEntry, l as DevframeCommandsHostEvents, n as DevframeClientCommand, o as DevframeCommandKeybinding, r as DevframeCommandBase, s as DevframeCommandShortcutOverrides, t as DevframeDocksUserSettings, u as DevframeServerCommandEntry } from "../settings-Bp5Ax6Os.mjs";
3
- import { C as RpcStreamingChannel, E as Thenable, S as RpcSharedStateHost, T as RpcStreamingHost, _ as RpcBroadcastOptions, a as DevframeDiagnosticsLogger, b as RpcFunctionsHost, c as DevframeRpcClientFunctions, d as DevframeViewHost, f as EntriesToObject, g as PartialWithoutId, h as EventsMap, i as DevframeDiagnosticsHost, l as DevframeRpcServerFunctions, m as EventUnsubscribe, n as DevframeCapabilities, o as DevframeHost, p as EventEmitter, r as DevframeDiagnosticsDefinition, s as DevframeNodeRpcSession, t as ConnectionMeta, u as DevframeRpcSharedStates, v as RpcDefinitionsFilter, w as RpcStreamingChannelOptions, x as RpcSharedStateGetOptions, y as RpcDefinitionsToFunctions } from "../index-BWTfvdqa.mjs";
4
- export { ClientScriptEntry, ConnectionMeta, CreateHubContextOptions, DevframeCapabilities, DevframeChildProcessExecuteOptions, DevframeChildProcessTerminalSession, DevframeClientCommand, DevframeCommandBase, DevframeCommandEntry, DevframeCommandHandle, DevframeCommandKeybinding, DevframeCommandShortcutOverrides, DevframeCommandsHost, DevframeCommandsHostEvents, DevframeDiagnosticsDefinition, DevframeDiagnosticsHost, DevframeDiagnosticsLogger, DevframeDockEntriesGrouped, DevframeDockEntry, DevframeDockEntryBase, DevframeDockEntryCategory, DevframeDockEntryIcon, DevframeDockUserEntry, DevframeDocksHost, DevframeDocksUserSettings, DevframeHost, DevframeHubContext, DevframeMessageElementPosition, DevframeMessageEntry, DevframeMessageEntryFrom, DevframeMessageEntryInput, DevframeMessageFilePosition, DevframeMessageHandle, DevframeMessageLevel, DevframeMessagesClient, DevframeMessagesHost, DevframeNodeRpcSession, DevframeRpcClientFunctions, DevframeRpcServerFunctions, DevframeRpcSharedStates, DevframeServerCommandEntry, DevframeServerCommandInput, DevframeTerminalSession, DevframeTerminalSessionBase, DevframeTerminalStatus, DevframeTerminalsHost, DevframeViewAction, DevframeViewBuiltin, DevframeViewCustomRender, DevframeViewGroup, DevframeViewHost, DevframeViewIframe, DevframeViewJsonRender, DevframeViewLauncher, DevframeViewLauncherStatus, EntriesToObject, EventEmitter, EventUnsubscribe, EventsMap, JsonRenderElement, JsonRenderSpec, JsonRenderer, PartialWithoutId, RemoteConnectionInfo, RemoteDockOptions, RpcBroadcastOptions, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, RpcStreamingChannel, RpcStreamingChannelOptions, RpcStreamingHost, Thenable };
1
+ import { C as DevframeMessagesListDelta, S as DevframeMessagesLevelShortcuts, _ as DevframeMessageHandle, a as DevframeChildProcessTerminalSession, b as DevframeMessagesClient, c as DevframeTerminalSession, d as DevframeTerminalsHost, f as DevframeMessageElementPosition, g as DevframeMessageFilePosition, h as DevframeMessageEntryInput, i as DevframeChildProcessExecuteOptions, l as DevframeTerminalSessionBase, m as DevframeMessageEntryFrom, n as DevframeHubContext, o as DevframePtyExecuteOptions, p as DevframeMessageEntry, s as DevframePtyTerminalSession, t as CreateHubContextOptions, u as DevframeTerminalStatus, v as DevframeMessageLevel, x as DevframeMessagesHost, y as DevframeMessageShortcutInput } from "../context-CXN9eDXS.mjs";
2
+ import { A as RemoteDockOptions, C as DevframeViewCustomRender, D as DevframeViewLauncher, E as DevframeViewJsonRender, M as JsonRenderSpec, N as JsonRenderer, O as DevframeViewLauncherStatus, S as DevframeViewBuiltin, T as DevframeViewIframe, _ as DevframeDockEntryCategory, a as DevframeCommandHandle, b as DevframeDocksHost, c as DevframeCommandsHost, d as DevframeServerCommandInput, f as BuiltinDocksOptions, g as DevframeDockEntryBase, h as DevframeDockEntry, i as DevframeCommandEntry, j as JsonRenderElement, k as RemoteConnectionInfo, l as DevframeCommandsHostEvents, m as DevframeDockEntriesGrouped, n as DevframeClientCommand, o as DevframeCommandKeybinding, p as ClientScriptEntry, r as DevframeCommandBase, s as DevframeCommandShortcutOverrides, t as DevframeDocksUserSettings, u as DevframeServerCommandEntry, v as DevframeDockEntryIcon, w as DevframeViewGroup, x as DevframeViewAction, y as DevframeDockUserEntry } from "../settings-DJs3n2p1.mjs";
3
+ import { C as RpcStreamingChannel, E as Thenable, S as RpcSharedStateHost, T as RpcStreamingHost, _ as RpcBroadcastOptions, a as DevframeDiagnosticsLogger, b as RpcFunctionsHost, c as DevframeRpcClientFunctions, d as DevframeViewHost, f as EntriesToObject, g as PartialWithoutId, h as EventsMap, i as DevframeDiagnosticsHost, l as DevframeRpcServerFunctions, m as EventUnsubscribe, n as DevframeCapabilities, o as DevframeHost, p as EventEmitter, r as DevframeDiagnosticsDefinition, s as DevframeNodeRpcSession, t as ConnectionMeta, u as DevframeRpcSharedStates, v as RpcDefinitionsFilter, w as RpcStreamingChannelOptions, x as RpcSharedStateGetOptions, y as RpcDefinitionsToFunctions } from "../index-Dic9q4eN.mjs";
4
+ export { BuiltinDocksOptions, ClientScriptEntry, ConnectionMeta, CreateHubContextOptions, DevframeCapabilities, DevframeChildProcessExecuteOptions, DevframeChildProcessTerminalSession, DevframeClientCommand, DevframeCommandBase, DevframeCommandEntry, DevframeCommandHandle, DevframeCommandKeybinding, DevframeCommandShortcutOverrides, DevframeCommandsHost, DevframeCommandsHostEvents, DevframeDiagnosticsDefinition, DevframeDiagnosticsHost, DevframeDiagnosticsLogger, DevframeDockEntriesGrouped, DevframeDockEntry, DevframeDockEntryBase, DevframeDockEntryCategory, DevframeDockEntryIcon, DevframeDockUserEntry, DevframeDocksHost, DevframeDocksUserSettings, DevframeHost, DevframeHubContext, DevframeMessageElementPosition, DevframeMessageEntry, DevframeMessageEntryFrom, DevframeMessageEntryInput, DevframeMessageFilePosition, DevframeMessageHandle, DevframeMessageLevel, DevframeMessageShortcutInput, DevframeMessagesClient, DevframeMessagesHost, DevframeMessagesLevelShortcuts, DevframeMessagesListDelta, DevframeNodeRpcSession, DevframePtyExecuteOptions, DevframePtyTerminalSession, DevframeRpcClientFunctions, DevframeRpcServerFunctions, DevframeRpcSharedStates, DevframeServerCommandEntry, DevframeServerCommandInput, DevframeTerminalSession, DevframeTerminalSessionBase, DevframeTerminalStatus, DevframeTerminalsHost, DevframeViewAction, DevframeViewBuiltin, DevframeViewCustomRender, DevframeViewGroup, DevframeViewHost, DevframeViewIframe, DevframeViewJsonRender, DevframeViewLauncher, DevframeViewLauncherStatus, EntriesToObject, EventEmitter, EventUnsubscribe, EventsMap, JsonRenderElement, JsonRenderSpec, JsonRenderer, PartialWithoutId, RemoteConnectionInfo, RemoteDockOptions, RpcBroadcastOptions, RpcDefinitionsFilter, RpcDefinitionsToFunctions, RpcFunctionsHost, RpcSharedStateGetOptions, RpcSharedStateHost, RpcStreamingChannel, RpcStreamingChannelOptions, RpcStreamingHost, Thenable };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@devframes/hub",
3
3
  "type": "module",
4
- "version": "0.5.4",
4
+ "version": "0.6.0-beta.2",
5
5
  "description": "Framework-neutral hub layer for devframe — docks, terminals, messages, commands.",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -33,22 +33,26 @@
33
33
  "dist"
34
34
  ],
35
35
  "peerDependencies": {
36
- "devframe": "0.5.4"
36
+ "devframe": "0.6.0-beta.2"
37
37
  },
38
38
  "dependencies": {
39
39
  "birpc": "^4.0.0",
40
- "nostics": "^0.2.0",
40
+ "destr": "^2.0.5",
41
+ "nostics": "^1.1.4",
41
42
  "pathe": "^2.0.3",
42
43
  "perfect-debounce": "^2.1.0",
43
- "tinyexec": "^1.2.2"
44
+ "tinyexec": "^1.2.2",
45
+ "zigpty": "^0.2.1"
44
46
  },
45
47
  "devDependencies": {
48
+ "@types/node": "^25.9.1",
46
49
  "mlly": "^1.8.2",
47
50
  "tsdown": "^0.22.0",
48
- "devframe": "0.5.4"
51
+ "devframe": "0.6.0-beta.2"
49
52
  },
50
53
  "scripts": {
51
54
  "build": "tsdown",
52
- "watch": "tsdown --watch"
55
+ "watch": "tsdown --watch",
56
+ "typecheck": "tsc --noEmit"
53
57
  }
54
58
  }