@sakana-y/vue-grab 0.1.1 → 0.1.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.
- package/CHANGELOG.md +55 -0
- package/README.md +122 -0
- package/dist/floating-button/index.d.ts.map +1 -1
- package/dist/index.cjs +33 -15
- package/dist/index.mjs +161 -158
- package/dist/{path-CdWdTgkn.js → path-BLtqSTdb.js} +5 -1
- package/dist/path-DFVWeR_p.cjs +1 -0
- package/dist/vite.cjs +1 -1
- package/dist/vite.mjs +1 -1
- package/package.json +27 -3
- package/dist/path-CBAqmzUk.cjs +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# @sakana-y/vue-grab
|
|
2
|
+
|
|
3
|
+
## 0.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#38](https://github.com/SaKaNa-Y/vue-grab/pull/38) [`a90677f`](https://github.com/SaKaNa-Y/vue-grab/commit/a90677f19389bb7875ca54164e4554830f80a2d7) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Hide beta toolbar entries by default and label Magnifier, Logs, and Network as Beta in Dock settings.
|
|
8
|
+
|
|
9
|
+
- [#38](https://github.com/SaKaNa-Y/vue-grab/pull/38) [`a90677f`](https://github.com/SaKaNa-Y/vue-grab/commit/a90677f19389bb7875ca54164e4554830f80a2d7) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Add package README, license, and npm metadata so published package pages show documentation and project links.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`a90677f`](https://github.com/SaKaNa-Y/vue-grab/commit/a90677f19389bb7875ca54164e4554830f80a2d7), [`a90677f`](https://github.com/SaKaNa-Y/vue-grab/commit/a90677f19389bb7875ca54164e4554830f80a2d7)]:
|
|
12
|
+
- @sakana-y/vue-grab-shared@0.1.2
|
|
13
|
+
|
|
14
|
+
## 0.1.1
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#35](https://github.com/SaKaNa-Y/vue-grab/pull/35) [`56d9d44`](https://github.com/SaKaNa-Y/vue-grab/commit/56d9d448c62ce2f11607fe7bf5b570ce4ecad40a) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Add floating-button toolbar entry visibility and ordering preferences with a locked Settings entry, grouped shortcut settings, and drag reordering within Dock feature groups.
|
|
19
|
+
|
|
20
|
+
- [#31](https://github.com/SaKaNa-Y/vue-grab/pull/31) [`151ffdb`](https://github.com/SaKaNa-Y/vue-grab/commit/151ffdbd6b8b56ecff1437debd3a38cfbc57b618) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Expose shared protocol constants and request types for advanced integrations.
|
|
21
|
+
|
|
22
|
+
- [#32](https://github.com/SaKaNa-Y/vue-grab/pull/32) [`14163a0`](https://github.com/SaKaNa-Y/vue-grab/commit/14163a075eeb8783a490b7997e8b8ce1b048b9c7) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Add floating-button dock modes with persisted Float and Edge panel behavior plus outside-click panel closing.
|
|
23
|
+
|
|
24
|
+
- [#36](https://github.com/SaKaNa-Y/vue-grab/pull/36) [`0cdf6ae`](https://github.com/SaKaNa-Y/vue-grab/commit/0cdf6ae870fa9da9b4a66de45679365dff85a978) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Add persisted, user-configurable shortcuts for every floating-bar feature.
|
|
25
|
+
|
|
26
|
+
- [#28](https://github.com/SaKaNa-Y/vue-grab/pull/28) [`4ad57b5`](https://github.com/SaKaNa-Y/vue-grab/commit/4ad57b57e86a4c3c3f37d1d951ab69b8c5151a97) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Harden the Vite open-in-editor endpoint and make network body capture opt-in by default.
|
|
27
|
+
|
|
28
|
+
- [#36](https://github.com/SaKaNa-Y/vue-grab/pull/36) [`0cdf6ae`](https://github.com/SaKaNa-Y/vue-grab/commit/0cdf6ae870fa9da9b4a66de45679365dff85a978) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Redesign the settings shortcuts UI and merge editor and magnifier controls into a Tools tab.
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [[`56d9d44`](https://github.com/SaKaNa-Y/vue-grab/commit/56d9d448c62ce2f11607fe7bf5b570ce4ecad40a), [`151ffdb`](https://github.com/SaKaNa-Y/vue-grab/commit/151ffdbd6b8b56ecff1437debd3a38cfbc57b618), [`14163a0`](https://github.com/SaKaNa-Y/vue-grab/commit/14163a075eeb8783a490b7997e8b8ce1b048b9c7), [`0cdf6ae`](https://github.com/SaKaNa-Y/vue-grab/commit/0cdf6ae870fa9da9b4a66de45679365dff85a978), [`4ad57b5`](https://github.com/SaKaNa-Y/vue-grab/commit/4ad57b57e86a4c3c3f37d1d951ab69b8c5151a97)]:
|
|
31
|
+
- @sakana-y/vue-grab-shared@0.1.1
|
|
32
|
+
|
|
33
|
+
## 0.1.0
|
|
34
|
+
|
|
35
|
+
### Minor Changes
|
|
36
|
+
|
|
37
|
+
- [#21](https://github.com/SaKaNa-Y/vue-grab/pull/21) [`6df5750`](https://github.com/SaKaNa-Y/vue-grab/commit/6df5750f22dc975340180c22a656294a4d85291d) Thanks [@SaKaNa-Y](https://github.com/SaKaNa-Y)! - Rename `errorCapture` → `consoleCapture` and broaden capture from `console.error` only to all five console levels (`log`, `info`, `warn`, `error`, `debug`). The FloatingButton panel now surfaces every captured entry with per-level filter pills and a message search input; the badge counts only `warn` + `error` entries to keep it actionable.
|
|
38
|
+
|
|
39
|
+
Breaking changes — no backwards-compatible aliases:
|
|
40
|
+
- Config key `errorCapture` → `consoleCapture`.
|
|
41
|
+
- Type `ErrorCaptureConfig` → `ConsoleCaptureConfig`:
|
|
42
|
+
- `maxErrors` (default 50) → `maxEntries` (default 200).
|
|
43
|
+
- `captureConsoleError: boolean` replaced by `levels: LogLevel[]` (default is all five levels enabled). The levels array is replaced wholesale by `mergeConfig`, not element-merged.
|
|
44
|
+
- `captureUnhandled` and `captureVueErrors` retained with identical semantics.
|
|
45
|
+
- Type `CapturedError` → `CapturedLog`. The single `type` field is replaced with two axes: `level: "log" | "info" | "warn" | "error" | "debug"` and `source: "console" | "runtime" | "promise" | "vue"`. Runtime/promise/Vue entries always carry `level: "error"`.
|
|
46
|
+
- Constant `VUE_ERROR_EVENT` retained (the underlying window-event string `"vue-grab:vue-error"` is unchanged).
|
|
47
|
+
- Standalone `init()` API: `onError` / `clearErrors` → `onLog` / `clearLogs`.
|
|
48
|
+
- FloatingButton methods: `setErrors` / `onErrorsClear` → `setLogs` / `onLogsClear` (internal, only affects code that imports `FloatingButton` directly).
|
|
49
|
+
- Dedup fingerprint now includes `source` and `level`, so the same message at different levels or from different sources produces distinct entries.
|
|
50
|
+
- Arguments passed to `console.*` are now stringified at capture time via a safe stringifier that handles circular references, Error instances (preserving `.stack`), and truncates very long values.
|
|
51
|
+
|
|
52
|
+
### Patch Changes
|
|
53
|
+
|
|
54
|
+
- Updated dependencies [[`6df5750`](https://github.com/SaKaNa-Y/vue-grab/commit/6df5750f22dc975340180c22a656294a4d85291d)]:
|
|
55
|
+
- @sakana-y/vue-grab-shared@0.1.0
|
package/README.md
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Vue Grab
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@sakana-y/vue-grab)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
|
|
6
|
+
Grab UI context from Vue apps for AI coding agents.
|
|
7
|
+
|
|
8
|
+
Point at any element, click, and capture its HTML, CSS selector, Vue component hierarchy, accessibility context, console output, and recent network activity so you can hand useful UI evidence to Cursor, Claude Code, or any AI chat.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- Interactive element selection with hover highlighting.
|
|
13
|
+
- Vue component stack extraction when Vue exposes file and line metadata.
|
|
14
|
+
- CSS selector and HTML capture with configurable limits.
|
|
15
|
+
- Accessibility attributes and page-wide audit helpers.
|
|
16
|
+
- Console capture for logs, warnings, errors, unhandled rejections, and Vue errors.
|
|
17
|
+
- Network capture for `fetch` and XHR metadata with header redaction and optional body capture.
|
|
18
|
+
- Floating action button with settings, logs, network, a11y, magnifier, and measurer tools.
|
|
19
|
+
- Vite editor integration through the `@sakana-y/vue-grab/vite` entry point.
|
|
20
|
+
- Shadow DOM isolation for Vue Grab overlays and toolbar styles.
|
|
21
|
+
- Vue plugin and standalone runtime APIs.
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pnpm add -D @sakana-y/vue-grab
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You can also use the setup CLI:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx @sakana-y/vue-grab-cli init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Vue Plugin Setup
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import { createApp } from "vue";
|
|
39
|
+
import { createVueGrab } from "@sakana-y/vue-grab";
|
|
40
|
+
import App from "./App.vue";
|
|
41
|
+
|
|
42
|
+
const app = createApp(App);
|
|
43
|
+
|
|
44
|
+
app.use(
|
|
45
|
+
createVueGrab({
|
|
46
|
+
floatingButton: { enabled: true },
|
|
47
|
+
}),
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
app.mount("#app");
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Use the composable anywhere in your Vue app:
|
|
54
|
+
|
|
55
|
+
```vue
|
|
56
|
+
<script setup lang="ts">
|
|
57
|
+
import { useGrab } from "@sakana-y/vue-grab";
|
|
58
|
+
|
|
59
|
+
const { isActive, lastResult, toggle } = useGrab();
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<template>
|
|
63
|
+
<button @click="toggle">
|
|
64
|
+
{{ isActive ? "Grabbing..." : "Grab" }}
|
|
65
|
+
</button>
|
|
66
|
+
<pre v-if="lastResult">{{ lastResult.selector }}</pre>
|
|
67
|
+
</template>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Vite Editor Integration
|
|
71
|
+
|
|
72
|
+
Add the companion Vite plugin when you want captured source paths to open in your editor during development:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { defineConfig } from "vite";
|
|
76
|
+
import vue from "@vitejs/plugin-vue";
|
|
77
|
+
import { vueGrabPlugin } from "@sakana-y/vue-grab/vite";
|
|
78
|
+
|
|
79
|
+
export default defineConfig({
|
|
80
|
+
plugins: [vue(), vueGrabPlugin({ editor: "code" })],
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The plugin adds a development-only endpoint for same-origin editor requests. It rejects paths outside the project root and unsupported editor commands.
|
|
85
|
+
|
|
86
|
+
## Standalone Usage
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
import { init } from "@sakana-y/vue-grab";
|
|
90
|
+
|
|
91
|
+
const grabber = init({ floatingButton: { enabled: true } });
|
|
92
|
+
|
|
93
|
+
grabber.onGrab((result) => {
|
|
94
|
+
console.log(result.selector);
|
|
95
|
+
console.log(result.html);
|
|
96
|
+
console.log(result.componentStack);
|
|
97
|
+
console.log(result.a11y);
|
|
98
|
+
console.log(result.network);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
grabber.onLog((entries) => console.table(entries));
|
|
102
|
+
grabber.onNetwork((entries) => console.table(entries));
|
|
103
|
+
|
|
104
|
+
grabber.destroy();
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Core APIs
|
|
108
|
+
|
|
109
|
+
- `createVueGrab(config?)`: Vue plugin factory.
|
|
110
|
+
- `useGrab()`: composable for grab state, results, and controls.
|
|
111
|
+
- `init(config?)`: standalone runtime initializer.
|
|
112
|
+
- `openInEditor(request)`: sends a dev-server editor request.
|
|
113
|
+
- `@sakana-y/vue-grab/vite`: Vite dev-server plugin entry point.
|
|
114
|
+
|
|
115
|
+
Configuration objects are deep-merged with the default config by `mergeConfig()` from `@sakana-y/vue-grab-shared`. Array fields such as `consoleCapture.levels`, `networkCapture.redactHeaders`, and `networkCapture.urlDenyList` are replaced wholesale.
|
|
116
|
+
|
|
117
|
+
## Links
|
|
118
|
+
|
|
119
|
+
- Repository: https://github.com/SaKaNa-Y/vue-grab
|
|
120
|
+
- Issues: https://github.com/SaKaNa-Y/vue-grab/issues
|
|
121
|
+
- Changelog: ./CHANGELOG.md
|
|
122
|
+
- License: ./LICENSE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floating-button/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,oBAAoB,EAIpB,+BAA+B,EAC/B,6BAA6B,EAC7B,UAAU,EAGX,MAAM,2BAA2B,CAAC;AA2BnC,eAAO,MAAM,WAAW,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floating-button/index.ts"],"names":[],"mappings":"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"}
|