devframe 0.1.16 → 0.1.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/adapters/build.d.mts +1 -1
- package/dist/adapters/build.mjs +13 -6
- package/dist/adapters/cli.d.mts +1 -1
- package/dist/adapters/cli.mjs +6 -6
- package/dist/adapters/embedded.d.mts +1 -1
- package/dist/adapters/kit.d.mts +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.mjs +2 -2
- package/dist/adapters/vite.d.mts +1 -1
- package/dist/adapters/vite.mjs +1 -1
- package/dist/client/index.d.mts +5 -4
- package/dist/client/index.mjs +1 -1
- package/dist/{client-4WrEozlH.mjs → client-CsR1_h3o.mjs} +14 -6
- package/dist/constants.d.mts +1 -1
- package/dist/{context-BrePWeyd.mjs → context-xQo1FcxX.mjs} +107 -56
- package/dist/{devtool-OJ3QW0ns.d.mts → devtool-CHT-4_OU.d.mts} +156 -48
- package/dist/helpers/nuxt/runtime/plugin.client.mjs +1 -1
- package/dist/index-Cei8vVcd.d.mts +140 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +1 -1
- package/dist/node/index.d.mts +38 -10
- package/dist/node/index.mjs +4 -4
- package/dist/recipes/open-helpers.d.mts +5 -1
- package/dist/recipes/open-helpers.mjs +2 -2
- package/dist/rpc/index.d.mts +3 -2
- package/dist/rpc/index.mjs +4 -3
- package/dist/rpc/transports/ws-client.d.mts +1 -1
- package/dist/rpc/transports/ws-client.mjs +19 -4
- package/dist/rpc/transports/ws-server.d.mts +1 -1
- package/dist/rpc/transports/ws-server.mjs +19 -4
- package/dist/{rpc-9FNa3Inb.mjs → rpc-hbRk8qtt.mjs} +15 -33
- package/dist/serialization-CWcWE7x7.mjs +112 -0
- package/dist/{src-BoIqXRc9.mjs → src-DIKqQIjp.mjs} +1 -1
- package/dist/{static-dump-CQUC1aIW.mjs → static-dump-DwFfj4U_.mjs} +21 -6
- package/dist/types/index.d.mts +4 -4
- package/dist/{index-DvKDO5H8.d.mts → types-BkyzI9r4.d.mts} +35 -95
- package/dist/utils/events.d.mts +1 -1
- package/dist/utils/shared-state.d.mts +1 -1
- package/dist/utils/shared-state.mjs +1 -1
- package/dist/utils/state.d.mts +1 -1
- package/dist/utils/state.mjs +1 -1
- package/dist/utils/when.d.mts +1 -1
- package/dist/ws-client-CDGmViwt.d.mts +26 -0
- package/dist/{ws-server--IuUAaGi.d.mts → ws-server-Cu8tmZcF.d.mts} +12 -0
- package/package.json +1 -1
- package/dist/ws-client-CklfxUHE.d.mts +0 -17
- /package/dist/{_shared-CU6dE-VX.mjs → _shared-Bxa2_kq7.mjs} +0 -0
- /package/dist/{define-Bb4zh-Dc.mjs → define-CW9gLnyG.mjs} +0 -0
- /package/dist/{immer-HjMAm3b6.mjs → immer-DEqg5kOd.mjs} +0 -0
- /package/dist/{main-DpINGndA.mjs → main-BJD9t8dk.mjs} +0 -0
- /package/dist/{open-BtOOEldu.mjs → open-BMO2_-wC.mjs} +0 -0
- /package/dist/{server-DrBxa6ZV.mjs → server-DkJ2-s0Y.mjs} +0 -0
- /package/dist/{transports-BPUzHhI2.mjs → transports-4bqw6Fqg.mjs} +0 -0
- /package/dist/{when-CGLewRtm.d.mts → when-aBBXAEh5.d.mts} +0 -0
package/dist/adapters/build.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as strictJsonStringify, o as structuredCloneStringify } from "../serialization-CWcWE7x7.mjs";
|
|
2
|
+
import { t as createHostContext } from "../context-xQo1FcxX.mjs";
|
|
2
3
|
import { DEVTOOLS_CONNECTION_META_FILENAME, DEVTOOLS_RPC_DUMP_DIRNAME, DEVTOOLS_RPC_DUMP_MANIFEST_FILENAME } from "../constants.mjs";
|
|
3
|
-
import { n as createH3DevToolsHost, t as collectStaticRpcDump } from "../static-dump-
|
|
4
|
-
import { t as resolveBasePath } from "../_shared-
|
|
4
|
+
import { n as createH3DevToolsHost, t as collectStaticRpcDump } from "../static-dump-DwFfj4U_.mjs";
|
|
5
|
+
import { t as resolveBasePath } from "../_shared-Bxa2_kq7.mjs";
|
|
5
6
|
import { existsSync } from "node:fs";
|
|
6
7
|
import { dirname, resolve } from "pathe";
|
|
7
8
|
import process from "node:process";
|
|
@@ -36,14 +37,20 @@ async function createBuild(d, options = {}) {
|
|
|
36
37
|
});
|
|
37
38
|
await d.setup(ctx);
|
|
38
39
|
await fs$1.mkdir(resolve(outDir, DEVTOOLS_RPC_DUMP_DIRNAME), { recursive: true });
|
|
39
|
-
|
|
40
|
+
const jsonSerializableMethods = [];
|
|
41
|
+
for (const def of ctx.rpc.definitions.values()) if (def.jsonSerializable === true) jsonSerializableMethods.push(def.name);
|
|
42
|
+
await fs$1.writeFile(resolve(outDir, DEVTOOLS_CONNECTION_META_FILENAME), JSON.stringify({
|
|
43
|
+
backend: "static",
|
|
44
|
+
jsonSerializableMethods
|
|
45
|
+
}, null, 2), "utf-8");
|
|
40
46
|
console.log(c.cyan`[devframe] writing RPC dump to ${resolve(outDir, DEVTOOLS_RPC_DUMP_MANIFEST_FILENAME)}`);
|
|
41
47
|
const dump = await collectStaticRpcDump(ctx.rpc.definitions.values(), ctx);
|
|
42
48
|
const indent = options.pretty ? 2 : void 0;
|
|
43
|
-
for (const [filepath,
|
|
49
|
+
for (const [filepath, file] of Object.entries(dump.files)) {
|
|
44
50
|
const fullpath = resolve(outDir, filepath);
|
|
45
51
|
await fs$1.mkdir(dirname(fullpath), { recursive: true });
|
|
46
|
-
|
|
52
|
+
const text = file.serialization === "structured-clone" ? structuredCloneStringify(file.data) : strictJsonStringify(file.data, file.fnName);
|
|
53
|
+
await fs$1.writeFile(fullpath, file.serialization === "json" && indent != null ? JSON.stringify(JSON.parse(text), null, indent) : text, "utf-8");
|
|
47
54
|
}
|
|
48
55
|
await fs$1.writeFile(resolve(outDir, DEVTOOLS_RPC_DUMP_MANIFEST_FILENAME), JSON.stringify(dump.manifest, null, 2), "utf-8");
|
|
49
56
|
if (d.spa) {
|
package/dist/adapters/cli.d.mts
CHANGED
package/dist/adapters/cli.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as flagKeyToOption, o as isBooleanFlag, s as parseCliFlags } from "../src-
|
|
2
|
-
import { t as createHostContext } from "../context-
|
|
1
|
+
import { a as flagKeyToOption, o as isBooleanFlag, s as parseCliFlags } from "../src-DIKqQIjp.mjs";
|
|
2
|
+
import { t as createHostContext } from "../context-xQo1FcxX.mjs";
|
|
3
3
|
import { DEVTOOLS_CONNECTION_META_FILENAME } from "../constants.mjs";
|
|
4
|
-
import { n as createH3DevToolsHost } from "../static-dump-
|
|
5
|
-
import { t as startHttpAndWs } from "../server-
|
|
6
|
-
import { t as resolveBasePath } from "../_shared-
|
|
4
|
+
import { n as createH3DevToolsHost } from "../static-dump-DwFfj4U_.mjs";
|
|
5
|
+
import { t as startHttpAndWs } from "../server-DkJ2-s0Y.mjs";
|
|
6
|
+
import { t as resolveBasePath } from "../_shared-Bxa2_kq7.mjs";
|
|
7
7
|
import { createBuild } from "./build.mjs";
|
|
8
8
|
import { resolve } from "pathe";
|
|
9
9
|
import process$1 from "node:process";
|
|
@@ -344,7 +344,7 @@ async function maybeOpenBrowser(d, flags, origin) {
|
|
|
344
344
|
if (!(flags.open ?? (cliOpen !== void 0 && cliOpen !== false))) return;
|
|
345
345
|
const target = typeof flags.open === "string" ? resolveOpenTarget(origin, flags.open) : typeof cliOpen === "string" ? resolveOpenTarget(origin, cliOpen) : origin;
|
|
346
346
|
try {
|
|
347
|
-
const { default: open } = await import("../open-
|
|
347
|
+
const { default: open } = await import("../open-BMO2_-wC.mjs");
|
|
348
348
|
await open(target);
|
|
349
349
|
} catch {}
|
|
350
350
|
}
|
package/dist/adapters/kit.d.mts
CHANGED
package/dist/adapters/mcp.d.mts
CHANGED
package/dist/adapters/mcp.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m as logger, t as createHostContext } from "../context-xQo1FcxX.mjs";
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
4
4
|
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
@@ -136,7 +136,7 @@ async function createMcpServer(definition, options = {}) {
|
|
|
136
136
|
serverVersion: options.serverVersion ?? definition.version ?? "0.0.0",
|
|
137
137
|
exposeSharedState: options.exposeSharedState ?? true
|
|
138
138
|
});
|
|
139
|
-
const { startStdioTransport } = await import("../transports-
|
|
139
|
+
const { startStdioTransport } = await import("../transports-4bqw6Fqg.mjs");
|
|
140
140
|
let stop;
|
|
141
141
|
try {
|
|
142
142
|
stop = await startStdioTransport(server);
|
package/dist/adapters/vite.d.mts
CHANGED
package/dist/adapters/vite.mjs
CHANGED
package/dist/client/index.d.mts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { H as DevToolsRpcClientFunctions,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
1
|
+
import { H as DevToolsRpcClientFunctions, It as DevToolsCommandKeybinding, Mt as DevToolsClientCommand, Pt as DevToolsCommandEntry, U as DevToolsRpcServerFunctions, V as DevToolsDocksUserSettings, Zt as EventEmitter, _t as DevToolsDockUserEntry, dt as DevToolsDockEntriesGrouped, ft as DevToolsDockEntry, l as ConnectionMeta, v as RpcSharedStateHost, w as SharedState } from "../devtool-CHT-4_OU.mjs";
|
|
2
|
+
import { _ as RpcCacheManager, v as RpcCacheOptions } from "../index-Cei8vVcd.mjs";
|
|
3
|
+
import { S as RpcFunctionsCollector } from "../types-BkyzI9r4.mjs";
|
|
4
|
+
import { t as WhenContext } from "../when-aBBXAEh5.mjs";
|
|
5
|
+
import { t as WsRpcChannelOptions } from "../ws-client-CDGmViwt.mjs";
|
|
5
6
|
import { BirpcOptions, BirpcReturn } from "birpc";
|
|
6
7
|
|
|
7
8
|
//#region src/client/rpc.d.ts
|
package/dist/client/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as CLIENT_CONTEXT_KEY, r as getDevToolsClientContext, t as getDevToolsRpcClient } from "../client-
|
|
1
|
+
import { n as CLIENT_CONTEXT_KEY, r as getDevToolsClientContext, t as getDevToolsRpcClient } from "../client-CsR1_h3o.mjs";
|
|
2
2
|
export { CLIENT_CONTEXT_KEY, getDevToolsRpcClient as connectDevtool, getDevToolsRpcClient, getDevToolsClientContext };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as import_dist } from "./human-id-CHS0s28X.mjs";
|
|
2
|
-
import { l as RpcCacheManager, o as RpcFunctionsCollectorBase } from "./rpc-
|
|
2
|
+
import { l as RpcCacheManager, o as RpcFunctionsCollectorBase } from "./rpc-hbRk8qtt.mjs";
|
|
3
|
+
import { r as structuredCloneDeserialize } from "./serialization-CWcWE7x7.mjs";
|
|
3
4
|
import { createRpcClient } from "./rpc/client.mjs";
|
|
4
5
|
import { createWsRpcChannel } from "./rpc/transports/ws-client.mjs";
|
|
5
6
|
import { createEventEmitter } from "./utils/events.mjs";
|
|
@@ -128,14 +129,18 @@ function resolveRecordOutput(record) {
|
|
|
128
129
|
function createStaticRpcCaller(manifest, fetchJson) {
|
|
129
130
|
const staticCache = /* @__PURE__ */ new Map();
|
|
130
131
|
const queryRecordCache = /* @__PURE__ */ new Map();
|
|
132
|
+
function reviveIfStructuredClone(value, serialization) {
|
|
133
|
+
if (serialization === "structured-clone") return structuredCloneDeserialize(value);
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
131
136
|
async function loadStatic(entry) {
|
|
132
|
-
if (!staticCache.has(entry.path)) staticCache.set(entry.path, fetchJson(entry.path));
|
|
137
|
+
if (!staticCache.has(entry.path)) staticCache.set(entry.path, fetchJson(entry.path).then((raw) => reviveIfStructuredClone(raw, entry.serialization)));
|
|
133
138
|
const data = await staticCache.get(entry.path);
|
|
134
139
|
if (isRecord(data)) return resolveRecordOutput(data);
|
|
135
140
|
return data;
|
|
136
141
|
}
|
|
137
|
-
async function loadQueryRecord(path) {
|
|
138
|
-
if (!queryRecordCache.has(path)) queryRecordCache.set(path, fetchJson(path));
|
|
142
|
+
async function loadQueryRecord(path, serialization) {
|
|
143
|
+
if (!queryRecordCache.has(path)) queryRecordCache.set(path, fetchJson(path).then((raw) => reviveIfStructuredClone(raw, serialization)));
|
|
139
144
|
return await queryRecordCache.get(path);
|
|
140
145
|
}
|
|
141
146
|
async function call(functionName, args) {
|
|
@@ -148,8 +153,8 @@ function createStaticRpcCaller(manifest, fetchJson) {
|
|
|
148
153
|
if (isQueryEntry(entry)) {
|
|
149
154
|
const argsHash = hash(args);
|
|
150
155
|
const recordPath = entry.records[argsHash];
|
|
151
|
-
if (recordPath) return resolveRecordOutput(await loadQueryRecord(recordPath));
|
|
152
|
-
if (entry.fallback) return resolveRecordOutput(await loadQueryRecord(entry.fallback));
|
|
156
|
+
if (recordPath) return resolveRecordOutput(await loadQueryRecord(recordPath, entry.serialization));
|
|
157
|
+
if (entry.fallback) return resolveRecordOutput(await loadQueryRecord(entry.fallback, entry.serialization));
|
|
153
158
|
throw new Error(`[devtools-rpc] No dump match for "${functionName}" with args: ${JSON.stringify(args)}`);
|
|
154
159
|
}
|
|
155
160
|
if (args.length === 0) return entry;
|
|
@@ -1351,10 +1356,13 @@ function createWsRpcClientMode(options) {
|
|
|
1351
1356
|
let isTrusted = false;
|
|
1352
1357
|
const trustedPromise = promiseWithResolver();
|
|
1353
1358
|
const url = isNumeric(connectionMeta.websocket) ? `${location.protocol.replace("http", "ws")}//${location.hostname}:${connectionMeta.websocket}` : connectionMeta.websocket;
|
|
1359
|
+
const definitions = /* @__PURE__ */ new Map();
|
|
1360
|
+
for (const name of connectionMeta.jsonSerializableMethods ?? []) definitions.set(name, { jsonSerializable: true });
|
|
1354
1361
|
const serverRpc = createRpcClient(clientRpc.functions, {
|
|
1355
1362
|
channel: createWsRpcChannel({
|
|
1356
1363
|
url,
|
|
1357
1364
|
authToken,
|
|
1365
|
+
definitions,
|
|
1358
1366
|
...wsOptions
|
|
1359
1367
|
}),
|
|
1360
1368
|
rpcOptions
|
package/dist/constants.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as import_dist } from "./human-id-CHS0s28X.mjs";
|
|
2
|
-
import { r as defineRpcFunction } from "./src-
|
|
3
|
-
import { o as RpcFunctionsCollectorBase } from "./rpc-
|
|
2
|
+
import { r as defineRpcFunction } from "./src-DIKqQIjp.mjs";
|
|
3
|
+
import { o as RpcFunctionsCollectorBase } from "./rpc-hbRk8qtt.mjs";
|
|
4
|
+
import { s as diagnostics$1 } from "./serialization-CWcWE7x7.mjs";
|
|
4
5
|
import { createEventEmitter } from "./utils/events.mjs";
|
|
5
6
|
import { DEFAULT_STATE_USER_SETTINGS, REMOTE_CONNECTION_KEY } from "./constants.mjs";
|
|
6
7
|
import { nanoid } from "./utils/nanoid.mjs";
|
|
@@ -5571,41 +5572,49 @@ const ContextUtils = { createSimpleClientScript(fn) {
|
|
|
5571
5572
|
importName: "default"
|
|
5572
5573
|
};
|
|
5573
5574
|
} };
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
|
|
5575
|
+
//#endregion
|
|
5576
|
+
//#region src/node/diagnostics.ts
|
|
5577
|
+
const diagnostics = defineDiagnostics({
|
|
5578
|
+
docsBase: "https://devtools.vite.dev/devframe/errors",
|
|
5579
|
+
codes: {
|
|
5580
|
+
DF0001: {
|
|
5581
|
+
message: (p) => `Dock with id "${p.id}" is already registered`,
|
|
5582
|
+
hint: "Use the `force` parameter to overwrite an existing registration."
|
|
5583
|
+
},
|
|
5584
|
+
DF0002: { message: "Cannot change the id of a dock. Use register() to add new docks." },
|
|
5585
|
+
DF0003: { message: (p) => `Dock with id "${p.id}" is not registered. Use register() to add new docks.` },
|
|
5586
|
+
DF0004: { message: (p) => `Terminal session with id "${p.id}" already registered` },
|
|
5587
|
+
DF0005: { message: (p) => `Terminal session with id "${p.id}" not registered` },
|
|
5588
|
+
DF0006: { message: (p) => `RPC function "${p.name}" is not registered` },
|
|
5589
|
+
DF0007: { message: "AsyncLocalStorage is not set, it likely to be an internal bug of the DevTools foundation" },
|
|
5590
|
+
DF0008: { message: (p) => `distDir ${p.distDir} does not exist` },
|
|
5591
|
+
DF0009: { message: (p) => `Command "${p.id}" is already registered` },
|
|
5592
|
+
DF0010: { message: "Cannot change the id of a command. Use register() to add new commands." },
|
|
5593
|
+
DF0011: { message: (p) => `Command "${p.id}" is not registered` },
|
|
5594
|
+
DF0012: {
|
|
5595
|
+
message: (p) => `Failed to parse storage file: ${p.filepath}, falling back to defaults.`,
|
|
5596
|
+
level: "warn"
|
|
5597
|
+
},
|
|
5598
|
+
DF0013: { message: (p) => `Shared state of "${p.key}" is not found, please provide an initial value for the first time` },
|
|
5599
|
+
DF0014: {
|
|
5600
|
+
message: (p) => `RPC function "${p.name}" has an invalid \`agent\` field — \`description\` must be a non-empty string.`,
|
|
5601
|
+
hint: "Provide a short description (~1–3 sentences) explaining what the tool does and when agents should invoke it."
|
|
5602
|
+
},
|
|
5603
|
+
DF0015: {
|
|
5604
|
+
message: (p) => `Agent tool "${p.id}" is already registered.`,
|
|
5605
|
+
hint: "Tool ids must be unique across RPC functions with an `agent` field and tools registered via `ctx.agent.registerTool()`."
|
|
5606
|
+
},
|
|
5607
|
+
DF0016: { message: (p) => `Agent resource "${p.id}" is already registered.` },
|
|
5608
|
+
DF0017: { message: (p) => `Failed to start MCP server (${p.transport}): ${p.reason}` },
|
|
5609
|
+
DF0018: {
|
|
5610
|
+
message: "`ctx.logs` is deprecated and will be removed in a future release. Use `ctx.messages` instead.",
|
|
5611
|
+
hint: "Replace any access to `ctx.logs` (or `context.logs`) with `ctx.messages`. The runtime behavior is identical.",
|
|
5612
|
+
level: "warn"
|
|
5607
5613
|
}
|
|
5608
|
-
}
|
|
5614
|
+
}
|
|
5615
|
+
});
|
|
5616
|
+
const logger = createLogger({
|
|
5617
|
+
diagnostics: [diagnostics],
|
|
5609
5618
|
formatter: ansiFormatter(c),
|
|
5610
5619
|
reporters: consoleReporter
|
|
5611
5620
|
});
|
|
@@ -5837,6 +5846,33 @@ var DevToolsCommandsHost = class {
|
|
|
5837
5846
|
}
|
|
5838
5847
|
};
|
|
5839
5848
|
//#endregion
|
|
5849
|
+
//#region src/node/host-diagnostics.ts
|
|
5850
|
+
var DevToolsDiagnosticsHost = class {
|
|
5851
|
+
_definitions = [];
|
|
5852
|
+
_logger;
|
|
5853
|
+
defineDiagnostics = defineDiagnostics;
|
|
5854
|
+
createLogger = createLogger;
|
|
5855
|
+
constructor(context, initialDefinitions = []) {
|
|
5856
|
+
this.context = context;
|
|
5857
|
+
this._definitions = [...initialDefinitions];
|
|
5858
|
+
this._rebuild();
|
|
5859
|
+
}
|
|
5860
|
+
get logger() {
|
|
5861
|
+
return this._logger;
|
|
5862
|
+
}
|
|
5863
|
+
register(definitions) {
|
|
5864
|
+
this._definitions.push(definitions);
|
|
5865
|
+
this._rebuild();
|
|
5866
|
+
}
|
|
5867
|
+
_rebuild() {
|
|
5868
|
+
this._logger = createLogger({
|
|
5869
|
+
diagnostics: this._definitions,
|
|
5870
|
+
formatter: ansiFormatter(c),
|
|
5871
|
+
reporters: consoleReporter
|
|
5872
|
+
});
|
|
5873
|
+
}
|
|
5874
|
+
};
|
|
5875
|
+
//#endregion
|
|
5840
5876
|
//#region src/node/storage.ts
|
|
5841
5877
|
function createStorage(options) {
|
|
5842
5878
|
const { mergeInitialValue = (initialValue, savedValue) => ({
|
|
@@ -5966,12 +6002,12 @@ var DevToolsDockHost = class {
|
|
|
5966
6002
|
},
|
|
5967
6003
|
{
|
|
5968
6004
|
type: "~builtin",
|
|
5969
|
-
id: "~
|
|
5970
|
-
title: "
|
|
6005
|
+
id: "~messages",
|
|
6006
|
+
title: "Messages & Notifications",
|
|
5971
6007
|
icon: "ph:notification-duotone",
|
|
5972
6008
|
category: "~builtin",
|
|
5973
6009
|
get badge() {
|
|
5974
|
-
const size = context.
|
|
6010
|
+
const size = context.messages.entries.size;
|
|
5975
6011
|
return size > 0 ? String(size) : void 0;
|
|
5976
6012
|
}
|
|
5977
6013
|
},
|
|
@@ -6400,9 +6436,9 @@ var RpcFunctionsHost = class extends RpcFunctionsCollectorBase {
|
|
|
6400
6436
|
}
|
|
6401
6437
|
};
|
|
6402
6438
|
//#endregion
|
|
6403
|
-
//#region src/node/host-
|
|
6439
|
+
//#region src/node/host-messages.ts
|
|
6404
6440
|
const MAX_ENTRIES = 1e3;
|
|
6405
|
-
var
|
|
6441
|
+
var DevToolsMessagesHost = class {
|
|
6406
6442
|
entries = /* @__PURE__ */ new Map();
|
|
6407
6443
|
events = createEventEmitter();
|
|
6408
6444
|
/** Tracks when each entry was last added or updated (monotonic) */
|
|
@@ -6434,7 +6470,7 @@ var DevToolsLogsHost = class {
|
|
|
6434
6470
|
}
|
|
6435
6471
|
this.entries.set(entry.id, entry);
|
|
6436
6472
|
this.lastModified.set(entry.id, this._tick());
|
|
6437
|
-
this.events.emit("
|
|
6473
|
+
this.events.emit("message:added", entry);
|
|
6438
6474
|
if (entry.autoDelete) this._autoDeleteTimers.set(entry.id, setTimeout(() => {
|
|
6439
6475
|
this.remove(entry.id);
|
|
6440
6476
|
}, entry.autoDelete));
|
|
@@ -6452,7 +6488,7 @@ var DevToolsLogsHost = class {
|
|
|
6452
6488
|
};
|
|
6453
6489
|
this.entries.set(id, updated);
|
|
6454
6490
|
this.lastModified.set(id, this._tick());
|
|
6455
|
-
this.events.emit("
|
|
6491
|
+
this.events.emit("message:updated", updated);
|
|
6456
6492
|
if (patch.autoDelete !== void 0) {
|
|
6457
6493
|
const timer = this._autoDeleteTimers.get(id);
|
|
6458
6494
|
if (timer) {
|
|
@@ -6477,7 +6513,7 @@ var DevToolsLogsHost = class {
|
|
|
6477
6513
|
id,
|
|
6478
6514
|
time: this._tick()
|
|
6479
6515
|
});
|
|
6480
|
-
this.events.emit("
|
|
6516
|
+
this.events.emit("message:removed", id);
|
|
6481
6517
|
}
|
|
6482
6518
|
async clear() {
|
|
6483
6519
|
for (const timer of this._autoDeleteTimers.values()) clearTimeout(timer);
|
|
@@ -6489,7 +6525,7 @@ var DevToolsLogsHost = class {
|
|
|
6489
6525
|
});
|
|
6490
6526
|
this.entries.clear();
|
|
6491
6527
|
this.lastModified.clear();
|
|
6492
|
-
this.events.emit("
|
|
6528
|
+
this.events.emit("message:cleared");
|
|
6493
6529
|
}
|
|
6494
6530
|
_createHandle(id) {
|
|
6495
6531
|
const host = this;
|
|
@@ -6560,7 +6596,7 @@ var DevToolsTerminalHost = class {
|
|
|
6560
6596
|
}
|
|
6561
6597
|
async startChildProcess(executeOptions, terminal) {
|
|
6562
6598
|
if (this.sessions.has(terminal.id)) throw logger.DF0004({ id: terminal.id }).throw();
|
|
6563
|
-
const { exec } = await import("./main-
|
|
6599
|
+
const { exec } = await import("./main-BJD9t8dk.mjs");
|
|
6564
6600
|
let controller;
|
|
6565
6601
|
const stream = new ReadableStream({ start(_controller) {
|
|
6566
6602
|
controller = _controller;
|
|
@@ -6695,7 +6731,8 @@ async function createHostContext(options) {
|
|
|
6695
6731
|
docks: void 0,
|
|
6696
6732
|
views: void 0,
|
|
6697
6733
|
terminals: void 0,
|
|
6698
|
-
|
|
6734
|
+
messages: void 0,
|
|
6735
|
+
diagnostics: void 0,
|
|
6699
6736
|
commands: void 0,
|
|
6700
6737
|
agent: void 0,
|
|
6701
6738
|
utils: ContextUtils,
|
|
@@ -6705,14 +6742,28 @@ async function createHostContext(options) {
|
|
|
6705
6742
|
const docksHost = new DevToolsDockHost(context);
|
|
6706
6743
|
const viewsHost = new DevToolsViewHost(context);
|
|
6707
6744
|
const terminalsHost = new DevToolsTerminalHost(context);
|
|
6708
|
-
const
|
|
6745
|
+
const messagesHost = new DevToolsMessagesHost(context);
|
|
6746
|
+
const diagnosticsHost = new DevToolsDiagnosticsHost(context, [diagnostics, diagnostics$1]);
|
|
6709
6747
|
const commandsHost = new DevToolsCommandsHost(context);
|
|
6710
6748
|
context.rpc = rpcHost;
|
|
6711
6749
|
context.docks = docksHost;
|
|
6712
6750
|
context.views = viewsHost;
|
|
6713
6751
|
context.terminals = terminalsHost;
|
|
6714
|
-
context.
|
|
6752
|
+
context.messages = messagesHost;
|
|
6753
|
+
context.diagnostics = diagnosticsHost;
|
|
6715
6754
|
context.commands = commandsHost;
|
|
6755
|
+
let _warnedLogs = false;
|
|
6756
|
+
Object.defineProperty(context, "logs", {
|
|
6757
|
+
get() {
|
|
6758
|
+
if (!_warnedLogs) {
|
|
6759
|
+
_warnedLogs = true;
|
|
6760
|
+
logger.DF0018().log();
|
|
6761
|
+
}
|
|
6762
|
+
return messagesHost;
|
|
6763
|
+
},
|
|
6764
|
+
enumerable: false,
|
|
6765
|
+
configurable: true
|
|
6766
|
+
});
|
|
6716
6767
|
context.agent = new DevToolsAgentHost(context);
|
|
6717
6768
|
let jrCounter = 0;
|
|
6718
6769
|
context.createJsonRenderer = (initialSpec) => {
|
|
@@ -6753,17 +6804,17 @@ async function createHostContext(options) {
|
|
|
6753
6804
|
args: [data]
|
|
6754
6805
|
});
|
|
6755
6806
|
});
|
|
6756
|
-
const
|
|
6807
|
+
const debouncedMessagesUpdate = debounce(() => {
|
|
6757
6808
|
rpcHost.broadcast({
|
|
6758
|
-
method: "devtoolskit:internal:
|
|
6809
|
+
method: "devtoolskit:internal:messages:updated",
|
|
6759
6810
|
args: []
|
|
6760
6811
|
});
|
|
6761
6812
|
docksSharedState.mutate(() => context.docks.values());
|
|
6762
6813
|
}, mode === "build" ? 0 : 10);
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
|
|
6766
|
-
|
|
6814
|
+
messagesHost.events.on("message:added", () => debouncedMessagesUpdate());
|
|
6815
|
+
messagesHost.events.on("message:updated", () => debouncedMessagesUpdate());
|
|
6816
|
+
messagesHost.events.on("message:removed", () => debouncedMessagesUpdate());
|
|
6817
|
+
messagesHost.events.on("message:cleared", () => debouncedMessagesUpdate());
|
|
6767
6818
|
const commandsSharedState = await rpcHost.sharedState.get("devtoolskit:internal:commands", { initialValue: [] });
|
|
6768
6819
|
const debouncedCommandsSync = debounce(() => {
|
|
6769
6820
|
commandsSharedState.mutate(() => commandsHost.list());
|
|
@@ -6773,4 +6824,4 @@ async function createHostContext(options) {
|
|
|
6773
6824
|
return context;
|
|
6774
6825
|
}
|
|
6775
6826
|
//#endregion
|
|
6776
|
-
export { RpcFunctionsHost as a, getInternalContext as c,
|
|
6827
|
+
export { revokeAuthToken as _, RpcFunctionsHost as a, getInternalContext as c, DevToolsDiagnosticsHost as d, DevToolsCommandsHost as f, revokeActiveConnectionsForToken as g, ContextUtils as h, DevToolsMessagesHost as i, internalContextMap as l, logger as m, DevToolsViewHost as n, createRpcSharedStateServerHost as o, DevToolsAgentHost as p, DevToolsTerminalHost as r, DevToolsDockHost as s, createHostContext as t, createStorage as u };
|