@sakana-y/vue-grab-shared 0.1.0 → 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 ADDED
@@ -0,0 +1,42 @@
1
+ # @sakana-y/vue-grab-shared
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
+ ## 0.1.1
12
+
13
+ ### Patch Changes
14
+
15
+ - [#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.
16
+
17
+ - [#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.
18
+
19
+ - [#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.
20
+
21
+ - [#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.
22
+
23
+ - [#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.
24
+
25
+ ## 0.1.0
26
+
27
+ ### Minor Changes
28
+
29
+ - [#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.
30
+
31
+ Breaking changes — no backwards-compatible aliases:
32
+ - Config key `errorCapture` → `consoleCapture`.
33
+ - Type `ErrorCaptureConfig` → `ConsoleCaptureConfig`:
34
+ - `maxErrors` (default 50) → `maxEntries` (default 200).
35
+ - `captureConsoleError: boolean` replaced by `levels: LogLevel[]` (default is all five levels enabled). The levels array is replaced wholesale by `mergeConfig`, not element-merged.
36
+ - `captureUnhandled` and `captureVueErrors` retained with identical semantics.
37
+ - 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"`.
38
+ - Constant `VUE_ERROR_EVENT` retained (the underlying window-event string `"vue-grab:vue-error"` is unchanged).
39
+ - Standalone `init()` API: `onError` / `clearErrors` → `onLog` / `clearLogs`.
40
+ - FloatingButton methods: `setErrors` / `onErrorsClear` → `setLogs` / `onLogsClear` (internal, only affects code that imports `FloatingButton` directly).
41
+ - Dedup fingerprint now includes `source` and `level`, so the same message at different levels or from different sources produces distinct entries.
42
+ - 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.
package/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # Vue Grab Shared
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@sakana-y/vue-grab-shared)](https://www.npmjs.com/package/@sakana-y/vue-grab-shared)
4
+ [![license](https://img.shields.io/npm/l/@sakana-y/vue-grab-shared)](./LICENSE)
5
+
6
+ Shared types, defaults, config merging, and protocol constants for Vue Grab integrations.
7
+
8
+ Most applications should import from `@sakana-y/vue-grab`. Use this package when you are building tooling, tests, or integrations that need stable Vue Grab contracts without importing the Vue runtime.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ pnpm add -D @sakana-y/vue-grab-shared
14
+ ```
15
+
16
+ ## Exports
17
+
18
+ ```ts
19
+ import {
20
+ DEFAULT_CONFIG,
21
+ DEFAULT_FLOATING_BUTTON,
22
+ OPEN_IN_EDITOR_CONTENT_TYPE,
23
+ OPEN_IN_EDITOR_ENDPOINT,
24
+ VUE_ERROR_EVENT,
25
+ mergeConfig,
26
+ } from "@sakana-y/vue-grab-shared";
27
+
28
+ import type {
29
+ CapturedLog,
30
+ CapturedRequest,
31
+ ComponentInfo,
32
+ GrabConfig,
33
+ GrabResult,
34
+ GrabUserConfig,
35
+ OpenInEditorRequest,
36
+ } from "@sakana-y/vue-grab-shared";
37
+ ```
38
+
39
+ ## Configuration Merging
40
+
41
+ Use `mergeConfig()` whenever you combine user config with defaults:
42
+
43
+ ```ts
44
+ import { DEFAULT_CONFIG, mergeConfig } from "@sakana-y/vue-grab-shared";
45
+
46
+ const config = mergeConfig(DEFAULT_CONFIG, {
47
+ floatingButton: { enabled: true },
48
+ networkCapture: {
49
+ redactHeaders: ["authorization", "x-api-key"],
50
+ },
51
+ });
52
+ ```
53
+
54
+ `GrabConfig` contains nested objects, so object spread is not enough for safe overrides. Array fields such as `consoleCapture.levels`, `networkCapture.redactHeaders`, and `networkCapture.urlDenyList` are replaced wholesale.
55
+
56
+ ## Related Packages
57
+
58
+ - `@sakana-y/vue-grab`: Vue plugin, runtime APIs, and Vite integration.
59
+ - `@sakana-y/vue-grab-cli`: CLI setup tool for Vite and Vue projects.
60
+
61
+ ## Links
62
+
63
+ - Repository: https://github.com/SaKaNa-Y/vue-grab
64
+ - Issues: https://github.com/SaKaNa-Y/vue-grab/issues
65
+ - Changelog: ./CHANGELOG.md
66
+ - License: ./LICENSE
@@ -1,16 +1,23 @@
1
- import { ConsoleCaptureConfig, FloatingButtonConfig, GrabConfig, LogLevel, MagnifierConfig, MeasurerConfig } from './types';
1
+ import { ConsoleCaptureConfig, FloatingButtonConfig, FloatingButtonDockEntryId, GrabConfig, GrabUserConfig, LogLevel, MagnifierConfig, MeasurerConfig, NetworkCaptureConfig, NetworkStatusClass } from './types';
2
2
  export declare const DEFAULT_HIGHLIGHT_COLOR = "#4f46e5";
3
3
  export declare const DEFAULT_LABEL_TEXT_COLOR = "#ffffff";
4
4
  export declare const DEFAULT_HOTKEY = "Alt+Shift+G";
5
+ export declare const DEFAULT_FLOATING_BUTTON_DOCK_ENTRY_ORDER: readonly FloatingButtonDockEntryId[];
5
6
  export declare const DEFAULT_FLOATING_BUTTON: FloatingButtonConfig;
6
7
  export declare const VUE_ERROR_EVENT = "vue-grab:vue-error";
7
8
  export declare const ALL_LOG_LEVELS: readonly LogLevel[];
8
9
  export declare const DEFAULT_CONSOLE_CAPTURE: ConsoleCaptureConfig;
10
+ export declare const ALL_NETWORK_STATUS_CLASSES: readonly NetworkStatusClass[];
11
+ export declare const NETWORK_ERROR_CLASSES: ReadonlySet<NetworkStatusClass>;
12
+ export declare const NETWORK_WARN_CLASSES: ReadonlySet<NetworkStatusClass>;
13
+ export declare const DEFAULT_REDACT_HEADERS: readonly string[];
14
+ export declare const DEFAULT_URL_DENY_LIST: readonly string[];
15
+ export declare const DEFAULT_NETWORK_CAPTURE: NetworkCaptureConfig;
9
16
  export declare const DEFAULT_MAGNIFIER: MagnifierConfig;
10
17
  export declare const DEFAULT_MEASURER: MeasurerConfig;
11
18
  export declare const DEFAULT_CONFIG: GrabConfig;
12
19
  /**
13
20
  * Deep-merge user config with defaults, properly handling nested objects.
14
21
  */
15
- export declare function mergeConfig(defaults: GrabConfig, options: Partial<GrabConfig>): GrabConfig;
22
+ export declare function mergeConfig(defaults: GrabConfig, options: GrabUserConfig): GrabConfig;
16
23
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAE5C,eAAO,MAAM,uBAAuB,EAAE,oBAOrC,CAAC;AAEF,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EAA8C,CAAC;AAE7F,eAAO,MAAM,uBAAuB,EAAE,oBAMrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,eAM/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAO9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAc5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CA2B1F"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAE5C,eAAO,MAAM,wCAAwC,EAAE,SAAS,yBAAyB,EAQxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAqBrC,CAAC;AAEF,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EAA8C,CAAC;AAE7F,eAAO,MAAM,uBAAuB,EAAE,oBAMrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,SAAS,kBAAkB,EAMnE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,kBAAkB,CAA8B,CAAC;AACjG,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,kBAAkB,CAAoB,CAAC;AAEtF,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAKnD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA8B,CAAC;AAElF,eAAO,MAAM,uBAAuB,EAAE,oBAcrC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,eAM/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,cAO9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAe5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,CAsDrF"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=`#4f46e5`,t=`#ffffff`,n=`Alt+Shift+G`,r={enabled:!1,initialPosition:`top-center`,storageKey:`vue-grab-fab-pos`,hotkeyStorageKey:`vue-grab-hotkey`,editorStorageKey:`vue-grab-editor`,measurerHotkeyStorageKey:`vue-grab-measurer-hotkey`},i=`vue-grab:vue-error`,a=[`log`,`info`,`warn`,`error`,`debug`],o={enabled:!0,maxEntries:200,levels:[...a],captureUnhandled:!0,captureVueErrors:!0},s={enabled:!0,loupeSize:400,zoomLevel:3,showHtmlOverlay:!0,maxOverlayHtmlLength:200},c={enabled:!0,lineColor:`#06b6d4`,guideColor:`#a855f7`,lineWidth:1,showAlignmentGuides:!0,alignmentTolerance:3},l={highlightColor:e,labelTextColor:t,showTagHint:!0,maxHtmlLength:1e4,filter:{ignoreSelectors:[],ignoreTags:[],skipCommonComponents:!1},floatingButton:r,consoleCapture:o,magnifier:s,measurer:c};function u(e,t){let{filter:n,floatingButton:r,consoleCapture:i,magnifier:a,measurer:o,...s}=t;return{...e,...s,filter:{...e.filter,...n},floatingButton:{...e.floatingButton,...r},consoleCapture:{...e.consoleCapture,...i,levels:[...i?.levels??e.consoleCapture.levels]},magnifier:{...e.magnifier,...a},measurer:{...e.measurer,...o}}}exports.ALL_LOG_LEVELS=a,exports.DEFAULT_CONFIG=l,exports.DEFAULT_CONSOLE_CAPTURE=o,exports.DEFAULT_FLOATING_BUTTON=r,exports.DEFAULT_HIGHLIGHT_COLOR=e,exports.DEFAULT_HOTKEY=n,exports.DEFAULT_LABEL_TEXT_COLOR=t,exports.DEFAULT_MAGNIFIER=s,exports.DEFAULT_MEASURER=c,exports.VUE_ERROR_EVENT=i,exports.mergeConfig=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=`/__open-in-editor`,t=`application/json`,n=8192,r=`__VUE_GRAB_ROOT__`,i=[`atom`,`code`,`cursor`,`emacs`,`idea`,`nvim`,`phpstorm`,`sublime`,`vim`,`visualstudio`,`webstorm`];function a(e){return typeof e==`string`&&i.includes(e)}var o=`#4f46e5`,s=`#ffffff`,c=`Alt+Shift+G`,l=[`grab`,`settings`,`magnifier`,`measurer`,`accessibility`,`logs`,`network`],u={enabled:!1,initialPosition:`top-center`,dockMode:`float`,dockEntries:{order:[...l],hidden:[`magnifier`,`logs`,`network`]},shortcuts:{grab:[c],measurer:[`Alt+Shift+M`]},storageKey:`vue-grab-fab-pos`,dockModeStorageKey:`vue-grab-dock-mode`,dockEntriesStorageKey:`vue-grab-dock-entries`,shortcutsStorageKey:`vue-grab-shortcuts`,hotkeyStorageKey:`vue-grab-hotkey`,editorStorageKey:`vue-grab-editor`,measurerHotkeyStorageKey:`vue-grab-measurer-hotkey`,closeOnOutsideClick:!0,closeOnOutsideClickStorageKey:`vue-grab-close-on-outside-click`},d=`vue-grab:vue-error`,f=[`log`,`info`,`warn`,`error`,`debug`],p={enabled:!0,maxEntries:200,levels:[...f],captureUnhandled:!0,captureVueErrors:!0},m=[`2xx`,`3xx`,`4xx`,`5xx`,`failed`],h=new Set([`5xx`,`failed`]),g=new Set([`4xx`]),_=[`authorization`,`cookie`,`set-cookie`,`x-api-key`],v=[e],y={enabled:!0,maxEntries:100,captureFetch:!0,captureXhr:!0,captureBodies:!1,bodyMaxBytes:2048,redactHeaders:[..._],urlDenyList:[...v],grabSnapshot:{enabled:!0,maxEntries:20,windowMs:1e4}},b={enabled:!0,loupeSize:400,zoomLevel:3,showHtmlOverlay:!0,maxOverlayHtmlLength:200},x={enabled:!0,lineColor:`#06b6d4`,guideColor:`#a855f7`,lineWidth:1,showAlignmentGuides:!0,alignmentTolerance:3},S={highlightColor:o,labelTextColor:s,showTagHint:!0,maxHtmlLength:1e4,filter:{ignoreSelectors:[],ignoreTags:[],skipCommonComponents:!1},floatingButton:u,consoleCapture:p,networkCapture:y,magnifier:b,measurer:x};function C(e,t){let{filter:n,floatingButton:r,consoleCapture:i,networkCapture:a,magnifier:o,measurer:s,...c}=t;return{...e,...c,filter:{...e.filter,...n},floatingButton:{...e.floatingButton,...r,dockEntries:{...e.floatingButton.dockEntries,...r?.dockEntries,order:[...r?.dockEntries?.order??e.floatingButton.dockEntries.order],hidden:[...r?.dockEntries?.hidden??e.floatingButton.dockEntries.hidden]},shortcuts:Object.fromEntries(Object.entries({...e.floatingButton.shortcuts,...r?.shortcuts}).map(([e,t])=>[e,[...t??[]]]))},consoleCapture:{...e.consoleCapture,...i,levels:[...i?.levels??e.consoleCapture.levels]},networkCapture:{...e.networkCapture,...a,redactHeaders:[...a?.redactHeaders??e.networkCapture.redactHeaders],urlDenyList:[...a?.urlDenyList??e.networkCapture.urlDenyList],grabSnapshot:{...e.networkCapture.grabSnapshot,...a?.grabSnapshot}},magnifier:{...e.magnifier,...o},measurer:{...e.measurer,...s}}}exports.ALL_LOG_LEVELS=f,exports.ALL_NETWORK_STATUS_CLASSES=m,exports.DEFAULT_CONFIG=S,exports.DEFAULT_CONSOLE_CAPTURE=p,exports.DEFAULT_FLOATING_BUTTON=u,exports.DEFAULT_FLOATING_BUTTON_DOCK_ENTRY_ORDER=l,exports.DEFAULT_HIGHLIGHT_COLOR=o,exports.DEFAULT_HOTKEY=c,exports.DEFAULT_LABEL_TEXT_COLOR=s,exports.DEFAULT_MAGNIFIER=b,exports.DEFAULT_MEASURER=x,exports.DEFAULT_NETWORK_CAPTURE=y,exports.DEFAULT_REDACT_HEADERS=_,exports.DEFAULT_URL_DENY_LIST=v,exports.NETWORK_ERROR_CLASSES=h,exports.NETWORK_WARN_CLASSES=g,exports.OPEN_IN_EDITOR_ALLOWED_EDITORS=i,exports.OPEN_IN_EDITOR_CONTENT_TYPE=t,exports.OPEN_IN_EDITOR_ENDPOINT=e,exports.OPEN_IN_EDITOR_REQUEST_MAX_BYTES=n,exports.VUE_ERROR_EVENT=d,exports.VUE_GRAB_ROOT_GLOBAL=r,exports.isOpenInEditorAllowedEditor=a,exports.mergeConfig=C;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './types';
2
+ export * from './protocol';
2
3
  export * from './constants';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,39 +1,108 @@
1
+ //#region src/protocol.ts
2
+ var e = "/__open-in-editor", t = "application/json", n = 8192, r = "__VUE_GRAB_ROOT__", i = [
3
+ "atom",
4
+ "code",
5
+ "cursor",
6
+ "emacs",
7
+ "idea",
8
+ "nvim",
9
+ "phpstorm",
10
+ "sublime",
11
+ "vim",
12
+ "visualstudio",
13
+ "webstorm"
14
+ ];
15
+ function a(e) {
16
+ return typeof e == "string" && i.includes(e);
17
+ }
18
+ //#endregion
1
19
  //#region src/constants.ts
2
- var e = "#4f46e5", t = "#ffffff", n = "Alt+Shift+G", r = {
20
+ var o = "#4f46e5", s = "#ffffff", c = "Alt+Shift+G", l = [
21
+ "grab",
22
+ "settings",
23
+ "magnifier",
24
+ "measurer",
25
+ "accessibility",
26
+ "logs",
27
+ "network"
28
+ ], u = {
3
29
  enabled: !1,
4
30
  initialPosition: "top-center",
31
+ dockMode: "float",
32
+ dockEntries: {
33
+ order: [...l],
34
+ hidden: [
35
+ "magnifier",
36
+ "logs",
37
+ "network"
38
+ ]
39
+ },
40
+ shortcuts: {
41
+ grab: [c],
42
+ measurer: ["Alt+Shift+M"]
43
+ },
5
44
  storageKey: "vue-grab-fab-pos",
45
+ dockModeStorageKey: "vue-grab-dock-mode",
46
+ dockEntriesStorageKey: "vue-grab-dock-entries",
47
+ shortcutsStorageKey: "vue-grab-shortcuts",
6
48
  hotkeyStorageKey: "vue-grab-hotkey",
7
49
  editorStorageKey: "vue-grab-editor",
8
- measurerHotkeyStorageKey: "vue-grab-measurer-hotkey"
9
- }, i = "vue-grab:vue-error", a = [
50
+ measurerHotkeyStorageKey: "vue-grab-measurer-hotkey",
51
+ closeOnOutsideClick: !0,
52
+ closeOnOutsideClickStorageKey: "vue-grab-close-on-outside-click"
53
+ }, d = "vue-grab:vue-error", f = [
10
54
  "log",
11
55
  "info",
12
56
  "warn",
13
57
  "error",
14
58
  "debug"
15
- ], o = {
59
+ ], p = {
16
60
  enabled: !0,
17
61
  maxEntries: 200,
18
- levels: [...a],
62
+ levels: [...f],
19
63
  captureUnhandled: !0,
20
64
  captureVueErrors: !0
21
- }, s = {
65
+ }, m = [
66
+ "2xx",
67
+ "3xx",
68
+ "4xx",
69
+ "5xx",
70
+ "failed"
71
+ ], h = new Set(["5xx", "failed"]), g = new Set(["4xx"]), _ = [
72
+ "authorization",
73
+ "cookie",
74
+ "set-cookie",
75
+ "x-api-key"
76
+ ], v = [e], y = {
77
+ enabled: !0,
78
+ maxEntries: 100,
79
+ captureFetch: !0,
80
+ captureXhr: !0,
81
+ captureBodies: !1,
82
+ bodyMaxBytes: 2048,
83
+ redactHeaders: [..._],
84
+ urlDenyList: [...v],
85
+ grabSnapshot: {
86
+ enabled: !0,
87
+ maxEntries: 20,
88
+ windowMs: 1e4
89
+ }
90
+ }, b = {
22
91
  enabled: !0,
23
92
  loupeSize: 400,
24
93
  zoomLevel: 3,
25
94
  showHtmlOverlay: !0,
26
95
  maxOverlayHtmlLength: 200
27
- }, c = {
96
+ }, x = {
28
97
  enabled: !0,
29
98
  lineColor: "#06b6d4",
30
99
  guideColor: "#a855f7",
31
100
  lineWidth: 1,
32
101
  showAlignmentGuides: !0,
33
102
  alignmentTolerance: 3
34
- }, l = {
35
- highlightColor: e,
36
- labelTextColor: t,
103
+ }, S = {
104
+ highlightColor: o,
105
+ labelTextColor: s,
37
106
  showTagHint: !0,
38
107
  maxHtmlLength: 1e4,
39
108
  filter: {
@@ -41,38 +110,59 @@ var e = "#4f46e5", t = "#ffffff", n = "Alt+Shift+G", r = {
41
110
  ignoreTags: [],
42
111
  skipCommonComponents: !1
43
112
  },
44
- floatingButton: r,
45
- consoleCapture: o,
46
- magnifier: s,
47
- measurer: c
113
+ floatingButton: u,
114
+ consoleCapture: p,
115
+ networkCapture: y,
116
+ magnifier: b,
117
+ measurer: x
48
118
  };
49
- function u(e, t) {
50
- let { filter: n, floatingButton: r, consoleCapture: i, magnifier: a, measurer: o, ...s } = t;
119
+ function C(e, t) {
120
+ let { filter: n, floatingButton: r, consoleCapture: i, networkCapture: a, magnifier: o, measurer: s, ...c } = t;
51
121
  return {
52
122
  ...e,
53
- ...s,
123
+ ...c,
54
124
  filter: {
55
125
  ...e.filter,
56
126
  ...n
57
127
  },
58
128
  floatingButton: {
59
129
  ...e.floatingButton,
60
- ...r
130
+ ...r,
131
+ dockEntries: {
132
+ ...e.floatingButton.dockEntries,
133
+ ...r?.dockEntries,
134
+ order: [...r?.dockEntries?.order ?? e.floatingButton.dockEntries.order],
135
+ hidden: [...r?.dockEntries?.hidden ?? e.floatingButton.dockEntries.hidden]
136
+ },
137
+ shortcuts: Object.fromEntries(Object.entries({
138
+ ...e.floatingButton.shortcuts,
139
+ ...r?.shortcuts
140
+ }).map(([e, t]) => [e, [...t ?? []]]))
61
141
  },
62
142
  consoleCapture: {
63
143
  ...e.consoleCapture,
64
144
  ...i,
65
145
  levels: [...i?.levels ?? e.consoleCapture.levels]
66
146
  },
147
+ networkCapture: {
148
+ ...e.networkCapture,
149
+ ...a,
150
+ redactHeaders: [...a?.redactHeaders ?? e.networkCapture.redactHeaders],
151
+ urlDenyList: [...a?.urlDenyList ?? e.networkCapture.urlDenyList],
152
+ grabSnapshot: {
153
+ ...e.networkCapture.grabSnapshot,
154
+ ...a?.grabSnapshot
155
+ }
156
+ },
67
157
  magnifier: {
68
158
  ...e.magnifier,
69
- ...a
159
+ ...o
70
160
  },
71
161
  measurer: {
72
162
  ...e.measurer,
73
- ...o
163
+ ...s
74
164
  }
75
165
  };
76
166
  }
77
167
  //#endregion
78
- export { a as ALL_LOG_LEVELS, l as DEFAULT_CONFIG, o as DEFAULT_CONSOLE_CAPTURE, r as DEFAULT_FLOATING_BUTTON, e as DEFAULT_HIGHLIGHT_COLOR, n as DEFAULT_HOTKEY, t as DEFAULT_LABEL_TEXT_COLOR, s as DEFAULT_MAGNIFIER, c as DEFAULT_MEASURER, i as VUE_ERROR_EVENT, u as mergeConfig };
168
+ export { f as ALL_LOG_LEVELS, m as ALL_NETWORK_STATUS_CLASSES, S as DEFAULT_CONFIG, p as DEFAULT_CONSOLE_CAPTURE, u as DEFAULT_FLOATING_BUTTON, l as DEFAULT_FLOATING_BUTTON_DOCK_ENTRY_ORDER, o as DEFAULT_HIGHLIGHT_COLOR, c as DEFAULT_HOTKEY, s as DEFAULT_LABEL_TEXT_COLOR, b as DEFAULT_MAGNIFIER, x as DEFAULT_MEASURER, y as DEFAULT_NETWORK_CAPTURE, _ as DEFAULT_REDACT_HEADERS, v as DEFAULT_URL_DENY_LIST, h as NETWORK_ERROR_CLASSES, g as NETWORK_WARN_CLASSES, i as OPEN_IN_EDITOR_ALLOWED_EDITORS, t as OPEN_IN_EDITOR_CONTENT_TYPE, e as OPEN_IN_EDITOR_ENDPOINT, n as OPEN_IN_EDITOR_REQUEST_MAX_BYTES, d as VUE_ERROR_EVENT, r as VUE_GRAB_ROOT_GLOBAL, a as isOpenInEditorAllowedEditor, C as mergeConfig };
@@ -0,0 +1,13 @@
1
+ export declare const OPEN_IN_EDITOR_ENDPOINT = "/__open-in-editor";
2
+ export declare const OPEN_IN_EDITOR_CONTENT_TYPE = "application/json";
3
+ export declare const OPEN_IN_EDITOR_REQUEST_MAX_BYTES = 8192;
4
+ export declare const VUE_GRAB_ROOT_GLOBAL = "__VUE_GRAB_ROOT__";
5
+ export declare const OPEN_IN_EDITOR_ALLOWED_EDITORS: readonly ["atom", "code", "cursor", "emacs", "idea", "nvim", "phpstorm", "sublime", "vim", "visualstudio", "webstorm"];
6
+ export type OpenInEditorAllowedEditor = (typeof OPEN_IN_EDITOR_ALLOWED_EDITORS)[number];
7
+ export interface OpenInEditorRequest {
8
+ file: string;
9
+ line?: number;
10
+ editor?: string;
11
+ }
12
+ export declare function isOpenInEditorAllowedEditor(value: unknown): value is OpenInEditorAllowedEditor;
13
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,2BAA2B,qBAAqB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,eAAO,MAAM,8BAA8B,wHAYjC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAK9F"}
package/dist/types.d.ts CHANGED
@@ -1,16 +1,42 @@
1
+ export type FloatingButtonDockMode = "float" | "edge";
2
+ export type FloatingButtonDockEntryId = "grab" | "settings" | "magnifier" | "measurer" | "accessibility" | "logs" | "network";
3
+ export interface FloatingButtonDockEntriesConfig {
4
+ /** Preferred toolbar entry order. Unknown or missing ids are normalized at runtime. */
5
+ order: FloatingButtonDockEntryId[];
6
+ /** Toolbar entries to hide. Settings is always forced visible. */
7
+ hidden: FloatingButtonDockEntryId[];
8
+ }
9
+ export type FloatingButtonShortcutCommandId = FloatingButtonDockEntryId;
10
+ export type FloatingButtonShortcutsConfig = Partial<Record<FloatingButtonShortcutCommandId, string[]>>;
1
11
  export interface FloatingButtonConfig {
2
12
  /** Show the floating button. Default: false (opt-in). */
3
13
  enabled: boolean;
4
14
  /** Initial position before any localStorage override. */
5
15
  initialPosition: "bottom-right" | "bottom-left" | "top-right" | "top-left" | "top-center";
16
+ /** Preferred panel display mode. Default: "float". */
17
+ dockMode: FloatingButtonDockMode;
18
+ /** Visibility and order preferences for toolbar entries. */
19
+ dockEntries: FloatingButtonDockEntriesConfig;
20
+ /** Keyboard shortcuts for floating bar feature commands. */
21
+ shortcuts: FloatingButtonShortcutsConfig;
6
22
  /** localStorage key for persisting position. Set to "" to disable persistence. */
7
23
  storageKey: string;
24
+ /** localStorage key for persisting dock mode. Set to "" to disable persistence. */
25
+ dockModeStorageKey: string;
26
+ /** localStorage key for persisting toolbar entry visibility/order. Set to "" to disable. */
27
+ dockEntriesStorageKey: string;
28
+ /** localStorage key for persisting feature shortcuts. Set to "" to disable. */
29
+ shortcutsStorageKey: string;
8
30
  /** localStorage key for persisting hotkey. Set to "" to disable persistence. */
9
31
  hotkeyStorageKey: string;
10
32
  /** localStorage key for persisting editor choice. Set to "" to disable persistence. */
11
33
  editorStorageKey: string;
12
34
  /** localStorage key for persisting measurer hotkey. Set to "" to disable persistence. */
13
35
  measurerHotkeyStorageKey: string;
36
+ /** Close the active panel when clicking outside it. Default: true. */
37
+ closeOnOutsideClick: boolean;
38
+ /** localStorage key for persisting outside-click close behavior. Set to "" to disable persistence. */
39
+ closeOnOutsideClickStorageKey: string;
14
40
  }
15
41
  export interface GrabConfig {
16
42
  /** Highlight border color */
@@ -27,11 +53,17 @@ export interface GrabConfig {
27
53
  floatingButton: FloatingButtonConfig;
28
54
  /** Console capture configuration */
29
55
  consoleCapture: ConsoleCaptureConfig;
56
+ /** Network capture configuration */
57
+ networkCapture: NetworkCaptureConfig;
30
58
  /** Magnifier loupe configuration */
31
59
  magnifier: MagnifierConfig;
32
60
  /** Measurer configuration */
33
61
  measurer: MeasurerConfig;
34
62
  }
63
+ export type DeepPartial<T> = {
64
+ [K in keyof T]?: T[K] extends (infer U)[] ? U[] : T[K] extends readonly (infer U)[] ? readonly U[] : T[K] extends object ? DeepPartial<T[K]> : T[K];
65
+ };
66
+ export type GrabUserConfig = DeepPartial<GrabConfig>;
35
67
  export interface GrabFilterConfig {
36
68
  /** CSS selectors to ignore */
37
69
  ignoreSelectors: string[];
@@ -51,6 +83,8 @@ export interface GrabResult {
51
83
  selector: string;
52
84
  /** Accessibility information for the element */
53
85
  a11y: A11yInfo;
86
+ /** Recent network activity snapshot, when networkCapture.grabSnapshot.enabled */
87
+ network?: CapturedRequest[];
54
88
  }
55
89
  export interface ComponentInfo {
56
90
  /** Component name */
@@ -139,6 +173,73 @@ export interface MagnifierConfig {
139
173
  /** Maximum characters of HTML to show in overlay. Default: 200 */
140
174
  maxOverlayHtmlLength: number;
141
175
  }
176
+ export type NetworkStatusClass = "2xx" | "3xx" | "4xx" | "5xx" | "failed";
177
+ export type NetworkInitiator = "fetch" | "xhr";
178
+ export interface CapturedRequest {
179
+ id: number;
180
+ /** HTTP method, uppercased (GET/POST/...). */
181
+ method: string;
182
+ /** Request URL as originally supplied. */
183
+ url: string;
184
+ /** Which API produced this entry. */
185
+ initiator: NetworkInitiator;
186
+ /** HTTP status code — undefined until response received; stays undefined on failure. */
187
+ status?: number;
188
+ statusText?: string;
189
+ /** Classification for FAB pills + badge. */
190
+ statusClass: NetworkStatusClass;
191
+ /** performance.now() at request start */
192
+ startTime: number;
193
+ /** Milliseconds; undefined until settled */
194
+ duration?: number;
195
+ /** Redacted request headers */
196
+ requestHeaders?: Record<string, string>;
197
+ /** Truncated request body, if captureBodies */
198
+ requestBody?: string;
199
+ /** Redacted response headers */
200
+ responseHeaders?: Record<string, string>;
201
+ /** Truncated response body — only captured for text/JSON content types */
202
+ responseBody?: string;
203
+ /** Bytes, from Content-Length when available */
204
+ responseSize?: number;
205
+ /** Failure reason (network error, abort, CORS) when no response arrived */
206
+ error?: string;
207
+ /** Date.now() for display */
208
+ timestamp: number;
209
+ /** Dedup count — incremented for repeat occurrences */
210
+ count: number;
211
+ /** Source file extracted from initiator stack */
212
+ sourceFile?: string;
213
+ sourceLine?: number;
214
+ }
215
+ export interface NetworkGrabSnapshotConfig {
216
+ /** Attach recent network entries to GrabResult.network. Default: true */
217
+ enabled: boolean;
218
+ /** Max entries in the snapshot. Default: 20 */
219
+ maxEntries: number;
220
+ /** Only entries newer than this (ms) are included. Default: 10_000 */
221
+ windowMs: number;
222
+ }
223
+ export interface NetworkCaptureConfig {
224
+ /** Enable network capture. Default: true */
225
+ enabled: boolean;
226
+ /** Max entries to keep in ring buffer. Default: 100 */
227
+ maxEntries: number;
228
+ /** Intercept window.fetch. Default: true */
229
+ captureFetch: boolean;
230
+ /** Intercept XMLHttpRequest. Default: true */
231
+ captureXhr: boolean;
232
+ /** Capture request + response bodies (subject to size + content-type). Default: false */
233
+ captureBodies: boolean;
234
+ /** Max bytes retained per body. Default: 2048 */
235
+ bodyMaxBytes: number;
236
+ /** Lowercase header names to redact. Default: auth/cookie/set-cookie/x-api-key. */
237
+ redactHeaders: readonly string[];
238
+ /** URL substrings to skip entirely. Default includes vue-grab's own /__open-in-editor. */
239
+ urlDenyList: readonly string[];
240
+ /** Snapshot attached to GrabResult at grab time. */
241
+ grabSnapshot: NetworkGrabSnapshotConfig;
242
+ }
142
243
  export interface MeasurerConfig {
143
244
  /** Enable measurer feature. Default: true */
144
245
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,32 @@
1
1
  {
2
2
  "name": "@sakana-y/vue-grab-shared",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
+ "description": "Shared types, defaults, config merging, and protocol constants for Vue Grab integrations.",
6
+ "keywords": [
7
+ "ai",
8
+ "configuration",
9
+ "devtools",
10
+ "protocol",
11
+ "types",
12
+ "vite",
13
+ "vue"
14
+ ],
15
+ "bugs": {
16
+ "url": "https://github.com/SaKaNa-Y/vue-grab/issues"
17
+ },
18
+ "license": "MIT",
19
+ "author": "SaKaNa-Y",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/SaKaNa-Y/vue-grab.git",
23
+ "directory": "packages/shared"
24
+ },
5
25
  "files": [
6
- "dist"
26
+ "dist",
27
+ "README.md",
28
+ "LICENSE",
29
+ "CHANGELOG.md"
7
30
  ],
8
31
  "type": "module",
9
32
  "main": "./dist/index.cjs",