@oddsquad/vite-plugin-lit 0.5.0 → 0.6.0
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/CHANGELOG.md +15 -0
- package/dist/client/assets/{browser-agent-rpc-BXhoSh1z-CRHFLjFo.js → browser-agent-rpc-BXhoSh1z-DXAVFObe.js} +2 -2
- package/dist/client/assets/{browser-agent-rpc-BXhoSh1z-CRHFLjFo.js.map → browser-agent-rpc-BXhoSh1z-DXAVFObe.js.map} +1 -1
- package/dist/client/assets/{index-Gn4Hk_9s.js → index-DVr5EnyB.js} +29 -3
- package/dist/client/assets/index-DVr5EnyB.js.map +1 -0
- package/dist/client/index.html +1 -1
- package/lib/runtime/timeline/chrome-tracks.d.ts +22 -0
- package/lib/runtime/timeline/chrome-tracks.d.ts.map +1 -0
- package/lib/runtime/timeline/chrome-tracks.js +74 -0
- package/lib/runtime/timeline/chrome-tracks.js.map +1 -0
- package/lib/runtime/timeline/clock.d.ts +6 -0
- package/lib/runtime/timeline/clock.d.ts.map +1 -1
- package/lib/runtime/timeline/clock.js +6 -0
- package/lib/runtime/timeline/clock.js.map +1 -1
- package/lib/runtime/timeline/install.js +27 -9
- package/lib/runtime/timeline/install.js.map +1 -1
- package/package.json +1 -1
- package/types/timeline.d.ts +6 -0
- package/types/timeline.d.ts.map +1 -1
- package/types/timeline.js.map +1 -1
- package/dist/client/assets/index-Gn4Hk_9s.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
Notable changes per release. Versions before 0.3.0 predate this file; see the
|
|
4
4
|
git history for those.
|
|
5
5
|
|
|
6
|
+
## 0.6.0 — 2026-09-29
|
|
7
|
+
|
|
8
|
+
A small release with one feature. The Lit timeline can now appear in Chrome
|
|
9
|
+
DevTools' own Performance panel, so an update tick sits on the same time axis
|
|
10
|
+
as the layout, paint and long tasks it caused.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Lit updates in Chrome's Performance panel.** Turn on **chrome performance
|
|
15
|
+
tracks** under Timeline in the Settings tab and a Chrome Performance
|
|
16
|
+
recording gets a Lit track group, with each update tick nested as
|
|
17
|
+
`<my-element> performUpdate` over its phases, next to layout, paint and
|
|
18
|
+
long tasks. It works without the Lit panel recording, and traces taken
|
|
19
|
+
through chrome-devtools-mcp include it.
|
|
20
|
+
|
|
6
21
|
## 0.5.0 — 2026-09-29
|
|
7
22
|
|
|
8
23
|
The timeline gets a second view: Tracks, one lane per layer on a shared time
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as onBrowserAgentToolsChanged, r as nanoid, t as listBrowserAgentTools } from "./index-
|
|
1
|
+
import { n as onBrowserAgentToolsChanged, r as nanoid, t as listBrowserAgentTools } from "./index-DVr5EnyB.js";
|
|
2
2
|
//#region node_modules/.pnpm/devframe@1.0.0_@devframes+agentic@1.0.0_cac@7.0.0_srvx@1.0.5/node_modules/devframe/dist/browser-agent-rpc-BXhoSh1z.mjs
|
|
3
3
|
var CLIENT_ID_STORAGE_KEY = "devframe:client-id";
|
|
4
4
|
var memoryClientId;
|
|
@@ -66,4 +66,4 @@ function setupBrowserAgentRpcBridge(rpc) {
|
|
|
66
66
|
//#endregion
|
|
67
67
|
export { setupBrowserAgentRpcBridge };
|
|
68
68
|
|
|
69
|
-
//# sourceMappingURL=browser-agent-rpc-BXhoSh1z-
|
|
69
|
+
//# sourceMappingURL=browser-agent-rpc-BXhoSh1z-DXAVFObe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-agent-rpc-BXhoSh1z-
|
|
1
|
+
{"version":3,"file":"browser-agent-rpc-BXhoSh1z-DXAVFObe.js","names":[],"sources":["../../../node_modules/.pnpm/devframe@1.0.0_@devframes+agentic@1.0.0_cac@7.0.0_srvx@1.0.5/node_modules/devframe/dist/browser-agent-rpc-BXhoSh1z.mjs"],"sourcesContent":["import { nanoid } from \"./utils/nanoid.mjs\";\nimport { n as onBrowserAgentToolsChanged, t as listBrowserAgentTools } from \"./browser-agent-Pu-FLk6I.mjs\";\n//#region src/client/client-id.ts\nconst CLIENT_ID_STORAGE_KEY = \"devframe:client-id\";\nlet memoryClientId;\n/**\n* This browser tab's stable client id: one nanoid per tab, persisted in\n* `sessionStorage` so it survives page reloads and RPC reconnects. The node\n* side uses it to tell connected tabs apart across reconnects (see #394).\n*\n* Tab duplication copies `sessionStorage`, so two tabs can briefly share an id\n* until per-tab disambiguation lands with the wider tab-metadata work.\n*/\nfunction resolveClientId(win = globalThis.window) {\n\ttry {\n\t\tconst storage = win?.sessionStorage;\n\t\tif (storage) {\n\t\t\tlet id = storage.getItem(CLIENT_ID_STORAGE_KEY);\n\t\t\tif (!id) {\n\t\t\t\tid = nanoid();\n\t\t\t\tstorage.setItem(CLIENT_ID_STORAGE_KEY, id);\n\t\t\t}\n\t\t\treturn id;\n\t\t}\n\t} catch {}\n\tmemoryClientId ??= nanoid();\n\treturn memoryClientId;\n}\n//#endregion\n//#region src/client/browser-agent-rpc.ts\n/** Mirror this document's browser-agent registry over its existing RPC connection. */\nfunction setupBrowserAgentRpcBridge(rpc) {\n\trpc.client.register({\n\t\tname: \"devframe:agent:invoke-client-tool\",\n\t\ttype: \"action\",\n\t\tjsonSerializable: true,\n\t\thandler: async (id, args) => {\n\t\t\tconst tool = listBrowserAgentTools().find((tool) => tool.id === id);\n\t\t\tif (!tool) throw new Error(`[devframe/agent] browser tool \"${id}\" not found`);\n\t\t\treturn await tool.invoke(args);\n\t\t}\n\t});\n\tlet queued = false;\n\tlet disposed = false;\n\tlet lastSyncedCount = 0;\n\tconst sync = () => {\n\t\tif (queued || disposed) return;\n\t\tqueued = true;\n\t\tqueueMicrotask(async () => {\n\t\t\tqueued = false;\n\t\t\tif (disposed) return;\n\t\t\tconst manifests = listBrowserAgentTools().map(({ invoke: _, ...manifest }) => manifest);\n\t\t\tif (manifests.length === 0 && lastSyncedCount === 0) return;\n\t\t\tlastSyncedCount = manifests.length;\n\t\t\tawait rpc.callOptional(\"devframe:agent:sync-client-tools\", resolveClientId(), manifests).catch(() => {});\n\t\t});\n\t};\n\tconst stopTools = onBrowserAgentToolsChanged(sync);\n\tconst stopConnection = rpc.events.on(\"connection:status\", (status) => {\n\t\tif (status === \"connected\") sync();\n\t});\n\tsync();\n\treturn () => {\n\t\tdisposed = true;\n\t\tstopTools();\n\t\tstopConnection();\n\t};\n}\n//#endregion\nexport { setupBrowserAgentRpcBridge };\n"],"x_google_ignoreList":[0],"mappings":";;AAGA,IAAM,wBAAwB;AAC9B,IAAI;;;;;;;;;AASJ,SAAS,gBAAgB,MAAM,WAAW,QAAQ;CACjD,IAAI;EACH,MAAM,UAAU,KAAK;EACrB,IAAI,SAAS;GACZ,IAAI,KAAK,QAAQ,QAAQ,qBAAqB;GAC9C,IAAI,CAAC,IAAI;IACR,KAAK,OAAO;IACZ,QAAQ,QAAQ,uBAAuB,EAAE;GAC1C;GACA,OAAO;EACR;CACD,QAAQ,CAAC;CACT,mBAAmB,OAAO;CAC1B,OAAO;AACR;;AAIA,SAAS,2BAA2B,KAAK;CACxC,IAAI,OAAO,SAAS;EACnB,MAAM;EACN,MAAM;EACN,kBAAkB;EAClB,SAAS,OAAO,IAAI,SAAS;GAC5B,MAAM,OAAO,sBAAsB,CAAC,CAAC,MAAM,SAAS,KAAK,OAAO,EAAE;GAClE,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,kCAAkC,GAAG,YAAY;GAC5E,OAAO,MAAM,KAAK,OAAO,IAAI;EAC9B;CACD,CAAC;CACD,IAAI,SAAS;CACb,IAAI,WAAW;CACf,IAAI,kBAAkB;CACtB,MAAM,aAAa;EAClB,IAAI,UAAU,UAAU;EACxB,SAAS;EACT,eAAe,YAAY;GAC1B,SAAS;GACT,IAAI,UAAU;GACd,MAAM,YAAY,sBAAsB,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,eAAe,QAAQ;GACtF,IAAI,UAAU,WAAW,KAAK,oBAAoB,GAAG;GACrD,kBAAkB,UAAU;GAC5B,MAAM,IAAI,aAAa,oCAAoC,gBAAgB,GAAG,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;EACxG,CAAC;CACF;CACA,MAAM,YAAY,2BAA2B,IAAI;CACjD,MAAM,iBAAiB,IAAI,OAAO,GAAG,sBAAsB,WAAW;EACrE,IAAI,WAAW,aAAa,KAAK;CAClC,CAAC;CACD,KAAK;CACL,aAAa;EACZ,WAAW;EACX,UAAU;EACV,eAAe;CAChB;AACD"}
|
|
@@ -7009,7 +7009,7 @@ async function getDevframeRpcClient(options = {}) {
|
|
|
7009
7009
|
bootstrapAuthSettled = true;
|
|
7010
7010
|
});
|
|
7011
7011
|
if (connectionMeta.mcp) __vitePreload(async () => {
|
|
7012
|
-
const { setupBrowserAgentRpcBridge } = await import("./browser-agent-rpc-BXhoSh1z-
|
|
7012
|
+
const { setupBrowserAgentRpcBridge } = await import("./browser-agent-rpc-BXhoSh1z-DXAVFObe.js");
|
|
7013
7013
|
return { setupBrowserAgentRpcBridge };
|
|
7014
7014
|
}, [], import.meta.url).then(({ setupBrowserAgentRpcBridge }) => {
|
|
7015
7015
|
if (!closed) disposeBrowserAgentBridge = setupBrowserAgentRpcBridge(rpc);
|
|
@@ -11133,7 +11133,8 @@ var DevtoolsSettings = class DevtoolsSettings extends i$2 {
|
|
|
11133
11133
|
resetOverride(s === null ? void 0 : {
|
|
11134
11134
|
...this._baselines(s),
|
|
11135
11135
|
flashUpdates: false,
|
|
11136
|
-
flashUpdatesRamp: false
|
|
11136
|
+
flashUpdatesRamp: false,
|
|
11137
|
+
chromeTracks: false
|
|
11137
11138
|
});
|
|
11138
11139
|
}
|
|
11139
11140
|
/** Drop one overridden setting, reverting it (live) to its baseline. */
|
|
@@ -11370,6 +11371,30 @@ var DevtoolsSettings = class DevtoolsSettings extends i$2 {
|
|
|
11370
11371
|
</td>
|
|
11371
11372
|
</tr>
|
|
11372
11373
|
</table>
|
|
11374
|
+
`;
|
|
11375
|
+
}
|
|
11376
|
+
/**
|
|
11377
|
+
* Timeline preferences. Pure preference, no config-time baseline, so an
|
|
11378
|
+
* unset value means off.
|
|
11379
|
+
*/
|
|
11380
|
+
_renderTimelinePrefs() {
|
|
11381
|
+
const chrome = this._override.chromeTracks ?? false;
|
|
11382
|
+
return b`
|
|
11383
|
+
<table>
|
|
11384
|
+
<tr>
|
|
11385
|
+
<td class="key">chrome performance tracks</td>
|
|
11386
|
+
<td class="val">
|
|
11387
|
+
<label class="toggle">
|
|
11388
|
+
<input
|
|
11389
|
+
type="checkbox"
|
|
11390
|
+
.checked=${chrome}
|
|
11391
|
+
@change=${(e) => this._set("chromeTracks", e.target.checked)}
|
|
11392
|
+
/>
|
|
11393
|
+
${chrome ? "on" : "off"}
|
|
11394
|
+
</label>
|
|
11395
|
+
</td>
|
|
11396
|
+
</tr>
|
|
11397
|
+
</table>
|
|
11373
11398
|
`;
|
|
11374
11399
|
}
|
|
11375
11400
|
render() {
|
|
@@ -11422,6 +11447,7 @@ var DevtoolsSettings = class DevtoolsSettings extends i$2 {
|
|
|
11422
11447
|
<p class="empty">
|
|
11423
11448
|
Layers and recording are controlled in the Timeline tab.
|
|
11424
11449
|
</p>
|
|
11450
|
+
${s.timeline ? this._renderTimelinePrefs() : A}
|
|
11425
11451
|
</section>
|
|
11426
11452
|
`;
|
|
11427
11453
|
}
|
|
@@ -11693,4 +11719,4 @@ LitDevtoolsPanel = __decorate([t$2("lit-devtools-panel")], LitDevtoolsPanel);
|
|
|
11693
11719
|
//#endregion
|
|
11694
11720
|
export { onBrowserAgentToolsChanged as n, nanoid as r, listBrowserAgentTools as t };
|
|
11695
11721
|
|
|
11696
|
-
//# sourceMappingURL=index-
|
|
11722
|
+
//# sourceMappingURL=index-DVr5EnyB.js.map
|