@sakana-y/vue-grab-shared 0.1.0 → 0.1.1
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/constants.d.ts +9 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +107 -21
- package/dist/protocol.d.ts +13 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/types.d.ts +101 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -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:
|
|
22
|
+
export declare function mergeConfig(defaults: GrabConfig, options: GrabUserConfig): GrabConfig;
|
|
16
23
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -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,
|
|
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`,
|
|
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:[]},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
package/dist/index.d.ts.map
CHANGED
|
@@ -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,104 @@
|
|
|
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
|
|
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
|
+
},
|
|
36
|
+
shortcuts: {
|
|
37
|
+
grab: [c],
|
|
38
|
+
measurer: ["Alt+Shift+M"]
|
|
39
|
+
},
|
|
5
40
|
storageKey: "vue-grab-fab-pos",
|
|
41
|
+
dockModeStorageKey: "vue-grab-dock-mode",
|
|
42
|
+
dockEntriesStorageKey: "vue-grab-dock-entries",
|
|
43
|
+
shortcutsStorageKey: "vue-grab-shortcuts",
|
|
6
44
|
hotkeyStorageKey: "vue-grab-hotkey",
|
|
7
45
|
editorStorageKey: "vue-grab-editor",
|
|
8
|
-
measurerHotkeyStorageKey: "vue-grab-measurer-hotkey"
|
|
9
|
-
|
|
46
|
+
measurerHotkeyStorageKey: "vue-grab-measurer-hotkey",
|
|
47
|
+
closeOnOutsideClick: !0,
|
|
48
|
+
closeOnOutsideClickStorageKey: "vue-grab-close-on-outside-click"
|
|
49
|
+
}, d = "vue-grab:vue-error", f = [
|
|
10
50
|
"log",
|
|
11
51
|
"info",
|
|
12
52
|
"warn",
|
|
13
53
|
"error",
|
|
14
54
|
"debug"
|
|
15
|
-
],
|
|
55
|
+
], p = {
|
|
16
56
|
enabled: !0,
|
|
17
57
|
maxEntries: 200,
|
|
18
|
-
levels: [...
|
|
58
|
+
levels: [...f],
|
|
19
59
|
captureUnhandled: !0,
|
|
20
60
|
captureVueErrors: !0
|
|
21
|
-
},
|
|
61
|
+
}, m = [
|
|
62
|
+
"2xx",
|
|
63
|
+
"3xx",
|
|
64
|
+
"4xx",
|
|
65
|
+
"5xx",
|
|
66
|
+
"failed"
|
|
67
|
+
], h = new Set(["5xx", "failed"]), g = new Set(["4xx"]), _ = [
|
|
68
|
+
"authorization",
|
|
69
|
+
"cookie",
|
|
70
|
+
"set-cookie",
|
|
71
|
+
"x-api-key"
|
|
72
|
+
], v = [e], y = {
|
|
73
|
+
enabled: !0,
|
|
74
|
+
maxEntries: 100,
|
|
75
|
+
captureFetch: !0,
|
|
76
|
+
captureXhr: !0,
|
|
77
|
+
captureBodies: !1,
|
|
78
|
+
bodyMaxBytes: 2048,
|
|
79
|
+
redactHeaders: [..._],
|
|
80
|
+
urlDenyList: [...v],
|
|
81
|
+
grabSnapshot: {
|
|
82
|
+
enabled: !0,
|
|
83
|
+
maxEntries: 20,
|
|
84
|
+
windowMs: 1e4
|
|
85
|
+
}
|
|
86
|
+
}, b = {
|
|
22
87
|
enabled: !0,
|
|
23
88
|
loupeSize: 400,
|
|
24
89
|
zoomLevel: 3,
|
|
25
90
|
showHtmlOverlay: !0,
|
|
26
91
|
maxOverlayHtmlLength: 200
|
|
27
|
-
},
|
|
92
|
+
}, x = {
|
|
28
93
|
enabled: !0,
|
|
29
94
|
lineColor: "#06b6d4",
|
|
30
95
|
guideColor: "#a855f7",
|
|
31
96
|
lineWidth: 1,
|
|
32
97
|
showAlignmentGuides: !0,
|
|
33
98
|
alignmentTolerance: 3
|
|
34
|
-
},
|
|
35
|
-
highlightColor:
|
|
36
|
-
labelTextColor:
|
|
99
|
+
}, S = {
|
|
100
|
+
highlightColor: o,
|
|
101
|
+
labelTextColor: s,
|
|
37
102
|
showTagHint: !0,
|
|
38
103
|
maxHtmlLength: 1e4,
|
|
39
104
|
filter: {
|
|
@@ -41,38 +106,59 @@ var e = "#4f46e5", t = "#ffffff", n = "Alt+Shift+G", r = {
|
|
|
41
106
|
ignoreTags: [],
|
|
42
107
|
skipCommonComponents: !1
|
|
43
108
|
},
|
|
44
|
-
floatingButton:
|
|
45
|
-
consoleCapture:
|
|
46
|
-
|
|
47
|
-
|
|
109
|
+
floatingButton: u,
|
|
110
|
+
consoleCapture: p,
|
|
111
|
+
networkCapture: y,
|
|
112
|
+
magnifier: b,
|
|
113
|
+
measurer: x
|
|
48
114
|
};
|
|
49
|
-
function
|
|
50
|
-
let { filter: n, floatingButton: r, consoleCapture: i,
|
|
115
|
+
function C(e, t) {
|
|
116
|
+
let { filter: n, floatingButton: r, consoleCapture: i, networkCapture: a, magnifier: o, measurer: s, ...c } = t;
|
|
51
117
|
return {
|
|
52
118
|
...e,
|
|
53
|
-
...
|
|
119
|
+
...c,
|
|
54
120
|
filter: {
|
|
55
121
|
...e.filter,
|
|
56
122
|
...n
|
|
57
123
|
},
|
|
58
124
|
floatingButton: {
|
|
59
125
|
...e.floatingButton,
|
|
60
|
-
...r
|
|
126
|
+
...r,
|
|
127
|
+
dockEntries: {
|
|
128
|
+
...e.floatingButton.dockEntries,
|
|
129
|
+
...r?.dockEntries,
|
|
130
|
+
order: [...r?.dockEntries?.order ?? e.floatingButton.dockEntries.order],
|
|
131
|
+
hidden: [...r?.dockEntries?.hidden ?? e.floatingButton.dockEntries.hidden]
|
|
132
|
+
},
|
|
133
|
+
shortcuts: Object.fromEntries(Object.entries({
|
|
134
|
+
...e.floatingButton.shortcuts,
|
|
135
|
+
...r?.shortcuts
|
|
136
|
+
}).map(([e, t]) => [e, [...t ?? []]]))
|
|
61
137
|
},
|
|
62
138
|
consoleCapture: {
|
|
63
139
|
...e.consoleCapture,
|
|
64
140
|
...i,
|
|
65
141
|
levels: [...i?.levels ?? e.consoleCapture.levels]
|
|
66
142
|
},
|
|
143
|
+
networkCapture: {
|
|
144
|
+
...e.networkCapture,
|
|
145
|
+
...a,
|
|
146
|
+
redactHeaders: [...a?.redactHeaders ?? e.networkCapture.redactHeaders],
|
|
147
|
+
urlDenyList: [...a?.urlDenyList ?? e.networkCapture.urlDenyList],
|
|
148
|
+
grabSnapshot: {
|
|
149
|
+
...e.networkCapture.grabSnapshot,
|
|
150
|
+
...a?.grabSnapshot
|
|
151
|
+
}
|
|
152
|
+
},
|
|
67
153
|
magnifier: {
|
|
68
154
|
...e.magnifier,
|
|
69
|
-
...
|
|
155
|
+
...o
|
|
70
156
|
},
|
|
71
157
|
measurer: {
|
|
72
158
|
...e.measurer,
|
|
73
|
-
...
|
|
159
|
+
...s
|
|
74
160
|
}
|
|
75
161
|
};
|
|
76
162
|
}
|
|
77
163
|
//#endregion
|
|
78
|
-
export {
|
|
164
|
+
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;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,eAAe,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;IAC1F,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,gBAAgB,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,wBAAwB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|