@weasel-js/devtools 0.0.0-stage → 1.11.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.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -2
  3. package/dist/DevtoolsPanel.d.ts +20 -0
  4. package/dist/DevtoolsPanel.d.ts.map +1 -0
  5. package/dist/RootPicker.d.ts +10 -0
  6. package/dist/RootPicker.d.ts.map +1 -0
  7. package/dist/client.d.ts +50 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/history.d.ts +13 -0
  10. package/dist/history.d.ts.map +1 -0
  11. package/dist/hooks.d.ts +22 -0
  12. package/dist/hooks.d.ts.map +1 -0
  13. package/dist/inPageTransport.d.ts +9 -0
  14. package/dist/inPageTransport.d.ts.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +2006 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/style.css +632 -0
  20. package/dist/tabs.d.ts +17 -0
  21. package/dist/tabs.d.ts.map +1 -0
  22. package/dist/trace.d.ts +19 -0
  23. package/dist/trace.d.ts.map +1 -0
  24. package/dist/views/Bindings.d.ts +7 -0
  25. package/dist/views/Bindings.d.ts.map +1 -0
  26. package/dist/views/CoordTable.d.ts +24 -0
  27. package/dist/views/CoordTable.d.ts.map +1 -0
  28. package/dist/views/DecisionPath.d.ts +7 -0
  29. package/dist/views/DecisionPath.d.ts.map +1 -0
  30. package/dist/views/DispatchView.d.ts +11 -0
  31. package/dist/views/DispatchView.d.ts.map +1 -0
  32. package/dist/views/FrameView.d.ts +9 -0
  33. package/dist/views/FrameView.d.ts.map +1 -0
  34. package/dist/views/HistoryTable.d.ts +8 -0
  35. package/dist/views/HistoryTable.d.ts.map +1 -0
  36. package/dist/views/HistoryView.d.ts +9 -0
  37. package/dist/views/HistoryView.d.ts.map +1 -0
  38. package/dist/views/NodeDetail.d.ts +12 -0
  39. package/dist/views/NodeDetail.d.ts.map +1 -0
  40. package/dist/views/RegistryEntryDetail.d.ts +12 -0
  41. package/dist/views/RegistryEntryDetail.d.ts.map +1 -0
  42. package/dist/views/RegistryView.d.ts +10 -0
  43. package/dist/views/RegistryView.d.ts.map +1 -0
  44. package/dist/views/SceneView.d.ts +5 -0
  45. package/dist/views/SceneView.d.ts.map +1 -0
  46. package/dist/views/StateView.d.ts +5 -0
  47. package/dist/views/StateView.d.ts.map +1 -0
  48. package/dist/views/TraceTable.d.ts +17 -0
  49. package/dist/views/TraceTable.d.ts.map +1 -0
  50. package/dist/views/ValueView.d.ts +11 -0
  51. package/dist/views/ValueView.d.ts.map +1 -0
  52. package/dist/views/formatAge.d.ts +3 -0
  53. package/dist/views/formatAge.d.ts.map +1 -0
  54. package/dist/views/useSceneTree.d.ts +12 -0
  55. package/dist/views/useSceneTree.d.ts.map +1 -0
  56. package/package.json +53 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 orochi235
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,50 @@
1
- # Temporary Holding Version
1
+ # @weasel-js/devtools
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A devtools panel for weasel canvases. It connects to the devtools hook every
4
+ `<SceneCanvas>` registers with (`@weasel-js/core/devtools`), and reads and
5
+ steers each canvas on the page: it never edits a scene.
6
+
7
+ Part of [weasel](https://github.com/orochi235/weasel), a domain-agnostic 2D
8
+ scene-graph canvas kit for React. See the
9
+ [API reference](https://orochi235.github.io/weasel/#pkg/devtools).
10
+
11
+ ```sh
12
+ npm install @weasel-js/devtools
13
+ ```
14
+
15
+ ```tsx
16
+ import { DevtoolsPanel, createInPagePanelTransport } from '@weasel-js/devtools';
17
+ import '@weasel-js/devtools/style.css';
18
+
19
+ const transport = createInPagePanelTransport();
20
+
21
+ <div className="devtools-dock">
22
+ <DevtoolsPanel transport={transport} />
23
+ </div>;
24
+ ```
25
+
26
+ The panel fills its container, so give the container a size.
27
+
28
+ | Tab | Shows | Steers |
29
+ |---|---|---|
30
+ | Scene | the node tree, loaded a level at a time; a node's parent, pose and data | `select` the picked node; hovering a row outlines it on the canvas |
31
+ | State | selection, view, active tool, overlay flags, probes | the active tool; each debug overlay flag |
32
+ | Dispatch | every resolved input and mode switch, newest first, under what a press at the pointer would do; coord records behind a toggle | — |
33
+ | Frame | the last paint's CPU time and draw calls, per render layer, while the `fps` overlay is on | the `fps` overlay |
34
+
35
+ `tabs={['dispatch']}` shows only the tabs named, and drops the tab bar when
36
+ one is left.
37
+
38
+ ## Transports
39
+
40
+ `DevtoolsPanel` takes any `PanelTransport` (`{ send, onMessage }`).
41
+ `createInPagePanelTransport()` reaches this page's own hook, opening a fresh
42
+ session on each `yo`, so a panel that remounts reconnects. An extension passes
43
+ the panel end of whatever bridge carries messages to the page.
44
+
45
+ ## Without React
46
+
47
+ `connectDevtools(transport)` is the protocol client the panel is built on: the
48
+ handshake, numbered requests and their replies, the roots the page reports, and
49
+ its change notices. `followTrace(client, rootId)` reads a canvas's dispatch
50
+ trace a slice at a time through its cursors.
@@ -0,0 +1,20 @@
1
+ import { type ReactElement } from 'react';
2
+ import type { PanelTransport } from '@weasel-js/core/devtools-protocol';
3
+ import { type DevtoolsTabId } from './tabs';
4
+ /** Props for {@link DevtoolsPanel}. */
5
+ export interface DevtoolsPanelProps {
6
+ /** The panel's end of a connection to a page's devtools hook. */
7
+ transport: PanelTransport;
8
+ /** The tabs to show, in the panel's own order. Default: every tab. With one, the tab bar is left out. */
9
+ tabs?: readonly DevtoolsTabId[];
10
+ /** The tab open first. Default: the first shown. */
11
+ defaultTab?: DevtoolsTabId;
12
+ className?: string;
13
+ }
14
+ /**
15
+ * Reads and steers the canvases of the page `transport` reaches: pick a canvas,
16
+ * then walk its scene, read its state, follow its dispatch trace, or watch its
17
+ * frame stats. It fills its container; give that a size.
18
+ */
19
+ export declare function DevtoolsPanel({ transport, tabs, defaultTab, className }: DevtoolsPanelProps): ReactElement;
20
+ //# sourceMappingURL=DevtoolsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevtoolsPanel.d.ts","sourceRoot":"","sources":["../src/DevtoolsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAKxE,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG7E,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,SAAS,EAAE,cAAc,CAAC;IAC1B,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAChC,oDAAoD;IACpD,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,YAAY,CA+B1G"}
@@ -0,0 +1,10 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { DevtoolsRootInfo } from '@weasel-js/core/devtools-protocol';
3
+ export interface RootPickerProps {
4
+ roots: readonly DevtoolsRootInfo[];
5
+ value: string | null;
6
+ onChange(rootId: string): void;
7
+ }
8
+ /** Which canvas the panel reads, each named by its label and dimension. */
9
+ export declare function RootPicker({ roots, value, onChange }: RootPickerProps): ReactElement;
10
+ //# sourceMappingURL=RootPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootPicker.d.ts","sourceRoot":"","sources":["../src/RootPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,YAAY,CAiBpF"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The panel's side of the devtools protocol, free of any framework: the
3
+ * handshake, request ids and their replies, the roots the page reports, and
4
+ * its change notices. The views, the extension and tests all drive this.
5
+ */
6
+ import { type DevtoolsArea, type DevtoolsHistorySlice, type DevtoolsNodeDetail, type DevtoolsNodeSummary, type DevtoolsRegistry, type DevtoolsRequest, type DevtoolsRootInfo, type DevtoolsRootState, type DevtoolsTraceSlice, type PanelTransport, type SerializedValue } from '@weasel-js/core/devtools-protocol';
7
+ type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
8
+ /** A request as a caller writes it: the client adds the protocol, the request id and the root. */
9
+ export type DevtoolsRequestBody = DistributiveOmit<DevtoolsRequest, 'protocol' | 'requestId' | 'rootId'>;
10
+ /** What each request resolves to. */
11
+ export interface DevtoolsResultMap {
12
+ 'get-children': DevtoolsNodeSummary[];
13
+ 'get-node': DevtoolsNodeDetail;
14
+ 'get-state': DevtoolsRootState;
15
+ 'get-trace': DevtoolsTraceSlice;
16
+ 'get-frame': SerializedValue;
17
+ 'get-registry': DevtoolsRegistry;
18
+ 'get-history': DevtoolsHistorySlice;
19
+ select: null;
20
+ highlight: null;
21
+ 'set-tool': null;
22
+ 'set-overlays': null;
23
+ }
24
+ /** Where a connection stands. `error` holds a message the page sent about no request, such as a protocol mismatch. */
25
+ export interface DevtoolsClientState {
26
+ status: 'connecting' | 'connected' | 'error' | 'closed';
27
+ kitVersion: string | null;
28
+ roots: readonly DevtoolsRootInfo[];
29
+ error: string | null;
30
+ }
31
+ /** One open connection to a page's devtools hook, from the panel's side. */
32
+ export interface DevtoolsClient {
33
+ state(): DevtoolsClientState;
34
+ /** Hear every change to {@link DevtoolsClient.state}. Returns the unsubscribe. */
35
+ subscribe(listener: () => void): () => void;
36
+ /** Hear a root's `changed` notices, with the areas each names. Returns the unsubscribe. */
37
+ onChanged(listener: (rootId: string, areas: DevtoolsArea[]) => void): () => void;
38
+ /** Send `body` about `rootId`. Rejects with the page's message when it refuses. */
39
+ request<B extends DevtoolsRequestBody>(rootId: string, body: B): Promise<DevtoolsResultMap[B['type']]>;
40
+ /** Say `yo` and start listening. Called again after {@link DevtoolsClient.close}, it reconnects. */
41
+ open(): void;
42
+ /** Say `bye` and stop listening. Pending requests reject. */
43
+ close(): void;
44
+ }
45
+ /** A connection over `transport`, sending nothing until it is opened. It is connected once the page says `sup`. */
46
+ export declare function createDevtoolsClient(transport: PanelTransport): DevtoolsClient;
47
+ /** {@link createDevtoolsClient}, opened: it says `yo` at once. */
48
+ export declare function connectDevtools(transport: PanelTransport): DevtoolsClient;
49
+ export {};
50
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACc,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAClH,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EACjG,KAAK,cAAc,EAAE,KAAK,eAAe,EAC5D,MAAM,mCAAmC,CAAC;AAE3C,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAEzF,kGAAkG;AAClG,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,eAAe,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC;AAEzG,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,EAAE,gBAAgB,CAAC;IACjC,aAAa,EAAE,oBAAoB,CAAC;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC;CACtB;AAED,sHAAsH;AACtH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,KAAK,IAAI,mBAAmB,CAAC;IAC7B,kFAAkF;IAClF,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,2FAA2F;IAC3F,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACjF,mFAAmF;IACnF,OAAO,CAAC,CAAC,SAAS,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvG,oGAAoG;IACpG,IAAI,IAAI,IAAI,CAAC;IACb,6DAA6D;IAC7D,KAAK,IAAI,IAAI,CAAC;CACf;AAOD,mHAAmH;AACnH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAiF9E;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAIzE"}
@@ -0,0 +1,13 @@
1
+ /** A root's history steps read a slice at a time through their cursor, the stack's entries along with them on request. */
2
+ import type { DevtoolsHistorySlice } from '@weasel-js/core/devtools-protocol';
3
+ import type { DevtoolsClient } from './client';
4
+ /** A cursor over one root's history steps. */
5
+ export interface HistoryFollower {
6
+ /** The steps recorded since the last read, and where the history stands now. Reads run one after another. */
7
+ read(): Promise<DevtoolsHistorySlice>;
8
+ /** Ask for the stack's entries with every read from the next on. */
9
+ setCheckpoints(on: boolean): void;
10
+ }
11
+ /** Follow `rootId`'s history steps through `client`, from the oldest step the canvas still holds. */
12
+ export declare function followHistory(client: DevtoolsClient, rootId: string): HistoryFollower;
13
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,6GAA6G;IAC7G,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtC,oEAAoE;IACpE,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAqBrF"}
@@ -0,0 +1,22 @@
1
+ import type { DevtoolsArea, PanelTransport } from '@weasel-js/core/devtools-protocol';
2
+ import { type DevtoolsClient, type DevtoolsClientState } from './client';
3
+ /** A connection over `transport` for as long as the component is mounted: `yo` on mount, `bye` on unmount. */
4
+ export declare function useDevtoolsClient(transport: PanelTransport): {
5
+ client: DevtoolsClient;
6
+ state: DevtoolsClientState;
7
+ };
8
+ /** What a view reads about one root: the last answer, or the page's refusal. */
9
+ export interface RootQuery<T> {
10
+ data: T | undefined;
11
+ error: string | null;
12
+ /** Ask again now, as after a steering request whose effect no notice reports. */
13
+ refresh(): void;
14
+ }
15
+ /**
16
+ * `read`'s answer about `rootId`, asked again whenever a `changed` notice for
17
+ * that root names one of `areas`, or a dependency in `deps` changes.
18
+ */
19
+ export declare function useRootQuery<T>(client: DevtoolsClient, rootId: string, areas: readonly DevtoolsArea[], read: () => Promise<T>, deps?: readonly unknown[]): RootQuery<T>;
20
+ /** Call `tick` every `ms` while `enabled` and the page is visible, and once at the start. */
21
+ export declare function usePoll(tick: () => void, ms: number, enabled: boolean): void;
22
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEtF,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/F,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,cAAc,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAQnH;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,IAAI,GAAE,SAAS,OAAO,EAAO,GAC5B,SAAS,CAAC,CAAC,CAAC,CAuBd;AAED,6FAA6F;AAC7F,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB5E"}
@@ -0,0 +1,9 @@
1
+ import { type PanelTransport, type WeaselDevtoolsHook } from '@weasel-js/core/devtools-protocol';
2
+ /**
3
+ * A panel's end of a connection to this page's own hook. Each `yo` opens a
4
+ * fresh session and each `bye` ends it, the way a `yo` posted to the window
5
+ * does, so a panel that unmounts and mounts again reconnects. Installs the
6
+ * hook when the page has none.
7
+ */
8
+ export declare function createInPagePanelTransport(hook?: WeaselDevtoolsHook | null): PanelTransport;
9
+ //# sourceMappingURL=inPageTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inPageTransport.d.ts","sourceRoot":"","sources":["../src/inPageTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EACwC,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAC1F,MAAM,mCAAmC,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,kBAAkB,GAAG,IAA4B,GAAG,cAAc,CAiBlH"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @weasel-js/devtools — a panel that reads and steers every `<SceneCanvas>` on
3
+ * a page through the devtools hook (`@weasel-js/core/devtools`). Mount
4
+ * `DevtoolsPanel` over any transport; `connectDevtools` is the same protocol
5
+ * client without React.
6
+ */
7
+ export { connectDevtools, createDevtoolsClient } from './client';
8
+ export type { DevtoolsClient, DevtoolsClientState, DevtoolsRequestBody, DevtoolsResultMap } from './client';
9
+ export { followTrace } from './trace';
10
+ export type { TraceFollower, TraceRead } from './trace';
11
+ export { followHistory } from './history';
12
+ export type { HistoryFollower } from './history';
13
+ export { DevtoolsPanel } from './DevtoolsPanel';
14
+ export type { DevtoolsPanelProps } from './DevtoolsPanel';
15
+ export type { DevtoolsTabId } from './tabs';
16
+ export { createInPagePanelTransport } from './inPageTransport';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5G,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC"}