backdoor-vconsole 1.0.0 → 1.1.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/dist/index.cjs.js +120 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.cjs.min.js +1 -0
- package/dist/index.min.mjs +1 -0
- package/dist/index.mjs +116 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +53 -8
- package/index.js +0 -111
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
4
|
+
var VConsole = require('vconsole');
|
|
5
|
+
|
|
6
|
+
var DEFAULT_CONFIG = {
|
|
7
|
+
COUNT: 7,
|
|
8
|
+
INTERVAL: 300,
|
|
9
|
+
DURATION: 7 * 1000,
|
|
10
|
+
CLOSE_COUNT: 10,
|
|
11
|
+
CLOSE_DURATION: 10 * 1000
|
|
12
|
+
};
|
|
13
|
+
var vConsoleInstance = null;
|
|
14
|
+
var toggleVConsole = function toggleVConsole() {
|
|
15
|
+
if (vConsoleInstance) {
|
|
16
|
+
vConsoleInstance.destroy();
|
|
17
|
+
vConsoleInstance = null;
|
|
18
|
+
console.log("vConsole is closed");
|
|
19
|
+
} else {
|
|
20
|
+
vConsoleInstance = new VConsole();
|
|
21
|
+
console.log("vConsole is started", vConsoleInstance);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var isMobile = function isMobile() {
|
|
25
|
+
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
26
|
+
};
|
|
27
|
+
var getTarget = function getTarget(target) {
|
|
28
|
+
if (typeof target === "string") {
|
|
29
|
+
var t = document.querySelector(target);
|
|
30
|
+
if (t) {
|
|
31
|
+
return t;
|
|
32
|
+
} else {
|
|
33
|
+
throw new Error("can not find target");
|
|
34
|
+
}
|
|
35
|
+
} else if (target instanceof HTMLElement) {
|
|
36
|
+
return target;
|
|
37
|
+
} else {
|
|
38
|
+
throw new Error("target is required");
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭
|
|
43
|
+
var rapidClicks = function rapidClicks(_ref) {
|
|
44
|
+
var target = _ref.target,
|
|
45
|
+
_ref$openCount = _ref.openCount,
|
|
46
|
+
openCount = _ref$openCount === void 0 ? DEFAULT_CONFIG.COUNT : _ref$openCount,
|
|
47
|
+
_ref$closeCount = _ref.closeCount,
|
|
48
|
+
closeCount = _ref$closeCount === void 0 ? DEFAULT_CONFIG.CLOSE_COUNT : _ref$closeCount,
|
|
49
|
+
_ref$interval = _ref.interval,
|
|
50
|
+
interval = _ref$interval === void 0 ? DEFAULT_CONFIG.INTERVAL : _ref$interval;
|
|
51
|
+
var t = getTarget(target);
|
|
52
|
+
var clickTimer = null;
|
|
53
|
+
var clickCount = 0;
|
|
54
|
+
var handler = function handler() {
|
|
55
|
+
clearTimeout(clickTimer);
|
|
56
|
+
clickCount += 1;
|
|
57
|
+
var threshold = vConsoleInstance ? closeCount : openCount;
|
|
58
|
+
if (clickCount === threshold) {
|
|
59
|
+
toggleVConsole();
|
|
60
|
+
clickCount = 0;
|
|
61
|
+
}
|
|
62
|
+
clickTimer = setTimeout(function () {
|
|
63
|
+
clickCount = 0;
|
|
64
|
+
}, interval);
|
|
65
|
+
};
|
|
66
|
+
t.addEventListener("click", handler);
|
|
67
|
+
return function () {
|
|
68
|
+
t.removeEventListener("click", handler);
|
|
69
|
+
clearTimeout(clickTimer);
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭
|
|
74
|
+
var longPress = function longPress(_ref2) {
|
|
75
|
+
var target = _ref2.target,
|
|
76
|
+
_ref2$openDuration = _ref2.openDuration,
|
|
77
|
+
openDuration = _ref2$openDuration === void 0 ? DEFAULT_CONFIG.DURATION : _ref2$openDuration,
|
|
78
|
+
_ref2$closeDuration = _ref2.closeDuration,
|
|
79
|
+
closeDuration = _ref2$closeDuration === void 0 ? DEFAULT_CONFIG.CLOSE_DURATION : _ref2$closeDuration;
|
|
80
|
+
var t = getTarget(target);
|
|
81
|
+
var timer = null;
|
|
82
|
+
var onPress = function onPress() {
|
|
83
|
+
clearTimeout(timer);
|
|
84
|
+
var duration = vConsoleInstance ? closeDuration : openDuration;
|
|
85
|
+
timer = setTimeout(toggleVConsole, duration);
|
|
86
|
+
};
|
|
87
|
+
var clearTimer = function clearTimer() {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
timer = null;
|
|
90
|
+
};
|
|
91
|
+
var events = isMobile() ? {
|
|
92
|
+
touchstart: onPress,
|
|
93
|
+
touchend: clearTimer,
|
|
94
|
+
touchcancel: clearTimer
|
|
95
|
+
} : {
|
|
96
|
+
mousedown: onPress,
|
|
97
|
+
mouseup: clearTimer,
|
|
98
|
+
mouseleave: clearTimer
|
|
99
|
+
};
|
|
100
|
+
Object.entries(events).forEach(function (_ref3) {
|
|
101
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
102
|
+
event = _ref4[0],
|
|
103
|
+
handler = _ref4[1];
|
|
104
|
+
return t.addEventListener(event, handler);
|
|
105
|
+
});
|
|
106
|
+
return function () {
|
|
107
|
+
Object.entries(events).forEach(function (_ref5) {
|
|
108
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
109
|
+
event = _ref6[0],
|
|
110
|
+
handler = _ref6[1];
|
|
111
|
+
return t.removeEventListener(event, handler);
|
|
112
|
+
});
|
|
113
|
+
clearTimer();
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
exports.longPress = longPress;
|
|
118
|
+
exports.rapidClicks = rapidClicks;
|
|
119
|
+
exports.toggleVConsole = toggleVConsole;
|
|
120
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../index.js"],"sourcesContent":["import VConsole from \"vconsole\";\n\nconst DEFAULT_CONFIG = {\n COUNT: 7,\n INTERVAL: 300,\n DURATION: 7 * 1000,\n CLOSE_COUNT: 10,\n CLOSE_INTERVAL: 300,\n CLOSE_DURATION: 10 * 1000,\n};\n\nlet vConsoleInstance = null;\n\nconst toggleVConsole = () => {\n if (vConsoleInstance) {\n vConsoleInstance.destroy();\n vConsoleInstance = null;\n console.log(\"vConsole is closed\");\n } else {\n vConsoleInstance = new VConsole();\n console.log(\"vConsole is started\", vConsoleInstance);\n }\n};\n\nconst isMobile = () =>\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\nconst getTarget = (target) => {\n if (typeof target === \"string\") {\n const t = document.querySelector(target);\n if (t) {\n return t;\n } else {\n throw new Error(`can not find target`);\n }\n } else if (target instanceof HTMLElement) {\n return target;\n } else {\n throw new Error(\"target is required\");\n }\n};\n\n// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭\nconst rapidClicks = ({\n target,\n openCount = DEFAULT_CONFIG.COUNT,\n closeCount = DEFAULT_CONFIG.CLOSE_COUNT,\n interval = DEFAULT_CONFIG.INTERVAL,\n}) => {\n const t = getTarget(target);\n let clickTimer = null;\n let clickCount = 0;\n\n const handler = () => {\n clearTimeout(clickTimer);\n clickCount += 1;\n const threshold = vConsoleInstance ? closeCount : openCount;\n if (clickCount === threshold) {\n toggleVConsole();\n clickCount = 0;\n }\n clickTimer = setTimeout(() => {\n clickCount = 0;\n }, interval);\n };\n\n t.addEventListener(\"click\", handler);\n\n return () => {\n t.removeEventListener(\"click\", handler);\n clearTimeout(clickTimer);\n };\n};\n\n// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭\nconst longPress = ({\n target,\n openDuration = DEFAULT_CONFIG.DURATION,\n closeDuration = DEFAULT_CONFIG.CLOSE_DURATION,\n}) => {\n const t = getTarget(target);\n let timer = null;\n\n const onPress = () => {\n clearTimeout(timer);\n const duration = vConsoleInstance ? closeDuration : openDuration;\n timer = setTimeout(toggleVConsole, duration);\n };\n\n const clearTimer = () => {\n clearTimeout(timer);\n timer = null;\n };\n\n const events = isMobile()\n ? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }\n : { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };\n\n Object.entries(events).forEach(([event, handler]) =>\n t.addEventListener(event, handler)\n );\n\n return () => {\n Object.entries(events).forEach(([event, handler]) =>\n t.removeEventListener(event, handler)\n );\n clearTimer();\n };\n};\n\nexport { rapidClicks, longPress, toggleVConsole };\n"],"names":["DEFAULT_CONFIG","COUNT","INTERVAL","DURATION","CLOSE_COUNT","CLOSE_INTERVAL","CLOSE_DURATION","vConsoleInstance","toggleVConsole","destroy","console","log","VConsole","isMobile","test","navigator","userAgent","getTarget","target","t","document","querySelector","Error","HTMLElement","rapidClicks","_ref","_ref$openCount","openCount","_ref$closeCount","closeCount","_ref$interval","interval","clickTimer","clickCount","handler","clearTimeout","threshold","setTimeout","addEventListener","removeEventListener","longPress","_ref2","_ref2$openDuration","openDuration","_ref2$closeDuration","closeDuration","timer","onPress","duration","clearTimer","events","touchstart","touchend","touchcancel","mousedown","mouseup","mouseleave","Object","entries","forEach","_ref3","_ref4","_slicedToArray","event","_ref5","_ref6"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("@babel/runtime-corejs3/helpers/slicedToArray"),n=require("vconsole"),o={COUNT:7,INTERVAL:300,DURATION:7e3,CLOSE_COUNT:10,CLOSE_DURATION:1e4},t=null,r=function(){t?(t.destroy(),t=null,console.log("vConsole is closed")):(t=new n,console.log("vConsole is started",t))},i=function(e){if("string"==typeof e){var n=document.querySelector(e);if(n)return n;throw new Error("can not find target")}if(e instanceof HTMLElement)return e;throw new Error("target is required")};exports.longPress=function(n){var u=n.target,c=n.openDuration,s=void 0===c?o.DURATION:c,l=n.closeDuration,a=void 0===l?o.CLOSE_DURATION:l,d=i(u),v=null,f=function(){clearTimeout(v),v=setTimeout(r,t?a:s)},T=function(){clearTimeout(v),v=null},E=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?{touchstart:f,touchend:T,touchcancel:T}:{mousedown:f,mouseup:T,mouseleave:T};return Object.entries(E).forEach(function(n){var o=e(n,2),t=o[0],r=o[1];return d.addEventListener(t,r)}),function(){Object.entries(E).forEach(function(n){var o=e(n,2),t=o[0],r=o[1];return d.removeEventListener(t,r)}),T()}},exports.rapidClicks=function(e){var n=e.target,u=e.openCount,c=void 0===u?o.COUNT:u,s=e.closeCount,l=void 0===s?o.CLOSE_COUNT:s,a=e.interval,d=void 0===a?o.INTERVAL:a,v=i(n),f=null,T=0,E=function(){clearTimeout(f),(T+=1)===(t?l:c)&&(r(),T=0),f=setTimeout(function(){T=0},d)};return v.addEventListener("click",E),function(){v.removeEventListener("click",E),clearTimeout(f)}},exports.toggleVConsole=r;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"@babel/runtime-corejs3/helpers/slicedToArray";import n from"vconsole";var o={COUNT:7,INTERVAL:300,DURATION:7e3,CLOSE_COUNT:10,CLOSE_DURATION:1e4},t=null,r=function(){t?(t.destroy(),t=null,console.log("vConsole is closed")):(t=new n,console.log("vConsole is started",t))},i=function(e){if("string"==typeof e){var n=document.querySelector(e);if(n)return n;throw new Error("can not find target")}if(e instanceof HTMLElement)return e;throw new Error("target is required")},u=function(e){var n=e.target,u=e.openCount,c=void 0===u?o.COUNT:u,l=e.closeCount,a=void 0===l?o.CLOSE_COUNT:l,s=e.interval,v=void 0===s?o.INTERVAL:s,d=i(n),f=null,m=0,T=function(){clearTimeout(f),(m+=1)===(t?a:c)&&(r(),m=0),f=setTimeout(function(){m=0},v)};return d.addEventListener("click",T),function(){d.removeEventListener("click",T),clearTimeout(f)}},c=function(n){var u=n.target,c=n.openDuration,l=void 0===c?o.DURATION:c,a=n.closeDuration,s=void 0===a?o.CLOSE_DURATION:a,v=i(u),d=null,f=function(){clearTimeout(d),d=setTimeout(r,t?s:l)},m=function(){clearTimeout(d),d=null},T=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?{touchstart:f,touchend:m,touchcancel:m}:{mousedown:f,mouseup:m,mouseleave:m};return Object.entries(T).forEach(function(n){var o=e(n,2),t=o[0],r=o[1];return v.addEventListener(t,r)}),function(){Object.entries(T).forEach(function(n){var o=e(n,2),t=o[0],r=o[1];return v.removeEventListener(t,r)}),m()}};export{c as longPress,u as rapidClicks,r as toggleVConsole};
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
2
|
+
import VConsole from 'vconsole';
|
|
3
|
+
|
|
4
|
+
var DEFAULT_CONFIG = {
|
|
5
|
+
COUNT: 7,
|
|
6
|
+
INTERVAL: 300,
|
|
7
|
+
DURATION: 7 * 1000,
|
|
8
|
+
CLOSE_COUNT: 10,
|
|
9
|
+
CLOSE_DURATION: 10 * 1000
|
|
10
|
+
};
|
|
11
|
+
var vConsoleInstance = null;
|
|
12
|
+
var toggleVConsole = function toggleVConsole() {
|
|
13
|
+
if (vConsoleInstance) {
|
|
14
|
+
vConsoleInstance.destroy();
|
|
15
|
+
vConsoleInstance = null;
|
|
16
|
+
console.log("vConsole is closed");
|
|
17
|
+
} else {
|
|
18
|
+
vConsoleInstance = new VConsole();
|
|
19
|
+
console.log("vConsole is started", vConsoleInstance);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var isMobile = function isMobile() {
|
|
23
|
+
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
24
|
+
};
|
|
25
|
+
var getTarget = function getTarget(target) {
|
|
26
|
+
if (typeof target === "string") {
|
|
27
|
+
var t = document.querySelector(target);
|
|
28
|
+
if (t) {
|
|
29
|
+
return t;
|
|
30
|
+
} else {
|
|
31
|
+
throw new Error("can not find target");
|
|
32
|
+
}
|
|
33
|
+
} else if (target instanceof HTMLElement) {
|
|
34
|
+
return target;
|
|
35
|
+
} else {
|
|
36
|
+
throw new Error("target is required");
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭
|
|
41
|
+
var rapidClicks = function rapidClicks(_ref) {
|
|
42
|
+
var target = _ref.target,
|
|
43
|
+
_ref$openCount = _ref.openCount,
|
|
44
|
+
openCount = _ref$openCount === void 0 ? DEFAULT_CONFIG.COUNT : _ref$openCount,
|
|
45
|
+
_ref$closeCount = _ref.closeCount,
|
|
46
|
+
closeCount = _ref$closeCount === void 0 ? DEFAULT_CONFIG.CLOSE_COUNT : _ref$closeCount,
|
|
47
|
+
_ref$interval = _ref.interval,
|
|
48
|
+
interval = _ref$interval === void 0 ? DEFAULT_CONFIG.INTERVAL : _ref$interval;
|
|
49
|
+
var t = getTarget(target);
|
|
50
|
+
var clickTimer = null;
|
|
51
|
+
var clickCount = 0;
|
|
52
|
+
var handler = function handler() {
|
|
53
|
+
clearTimeout(clickTimer);
|
|
54
|
+
clickCount += 1;
|
|
55
|
+
var threshold = vConsoleInstance ? closeCount : openCount;
|
|
56
|
+
if (clickCount === threshold) {
|
|
57
|
+
toggleVConsole();
|
|
58
|
+
clickCount = 0;
|
|
59
|
+
}
|
|
60
|
+
clickTimer = setTimeout(function () {
|
|
61
|
+
clickCount = 0;
|
|
62
|
+
}, interval);
|
|
63
|
+
};
|
|
64
|
+
t.addEventListener("click", handler);
|
|
65
|
+
return function () {
|
|
66
|
+
t.removeEventListener("click", handler);
|
|
67
|
+
clearTimeout(clickTimer);
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭
|
|
72
|
+
var longPress = function longPress(_ref2) {
|
|
73
|
+
var target = _ref2.target,
|
|
74
|
+
_ref2$openDuration = _ref2.openDuration,
|
|
75
|
+
openDuration = _ref2$openDuration === void 0 ? DEFAULT_CONFIG.DURATION : _ref2$openDuration,
|
|
76
|
+
_ref2$closeDuration = _ref2.closeDuration,
|
|
77
|
+
closeDuration = _ref2$closeDuration === void 0 ? DEFAULT_CONFIG.CLOSE_DURATION : _ref2$closeDuration;
|
|
78
|
+
var t = getTarget(target);
|
|
79
|
+
var timer = null;
|
|
80
|
+
var onPress = function onPress() {
|
|
81
|
+
clearTimeout(timer);
|
|
82
|
+
var duration = vConsoleInstance ? closeDuration : openDuration;
|
|
83
|
+
timer = setTimeout(toggleVConsole, duration);
|
|
84
|
+
};
|
|
85
|
+
var clearTimer = function clearTimer() {
|
|
86
|
+
clearTimeout(timer);
|
|
87
|
+
timer = null;
|
|
88
|
+
};
|
|
89
|
+
var events = isMobile() ? {
|
|
90
|
+
touchstart: onPress,
|
|
91
|
+
touchend: clearTimer,
|
|
92
|
+
touchcancel: clearTimer
|
|
93
|
+
} : {
|
|
94
|
+
mousedown: onPress,
|
|
95
|
+
mouseup: clearTimer,
|
|
96
|
+
mouseleave: clearTimer
|
|
97
|
+
};
|
|
98
|
+
Object.entries(events).forEach(function (_ref3) {
|
|
99
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
100
|
+
event = _ref4[0],
|
|
101
|
+
handler = _ref4[1];
|
|
102
|
+
return t.addEventListener(event, handler);
|
|
103
|
+
});
|
|
104
|
+
return function () {
|
|
105
|
+
Object.entries(events).forEach(function (_ref5) {
|
|
106
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
107
|
+
event = _ref6[0],
|
|
108
|
+
handler = _ref6[1];
|
|
109
|
+
return t.removeEventListener(event, handler);
|
|
110
|
+
});
|
|
111
|
+
clearTimer();
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export { longPress, rapidClicks, toggleVConsole };
|
|
116
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../index.js"],"sourcesContent":["import VConsole from \"vconsole\";\n\nconst DEFAULT_CONFIG = {\n COUNT: 7,\n INTERVAL: 300,\n DURATION: 7 * 1000,\n CLOSE_COUNT: 10,\n CLOSE_INTERVAL: 300,\n CLOSE_DURATION: 10 * 1000,\n};\n\nlet vConsoleInstance = null;\n\nconst toggleVConsole = () => {\n if (vConsoleInstance) {\n vConsoleInstance.destroy();\n vConsoleInstance = null;\n console.log(\"vConsole is closed\");\n } else {\n vConsoleInstance = new VConsole();\n console.log(\"vConsole is started\", vConsoleInstance);\n }\n};\n\nconst isMobile = () =>\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\nconst getTarget = (target) => {\n if (typeof target === \"string\") {\n const t = document.querySelector(target);\n if (t) {\n return t;\n } else {\n throw new Error(`can not find target`);\n }\n } else if (target instanceof HTMLElement) {\n return target;\n } else {\n throw new Error(\"target is required\");\n }\n};\n\n// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭\nconst rapidClicks = ({\n target,\n openCount = DEFAULT_CONFIG.COUNT,\n closeCount = DEFAULT_CONFIG.CLOSE_COUNT,\n interval = DEFAULT_CONFIG.INTERVAL,\n}) => {\n const t = getTarget(target);\n let clickTimer = null;\n let clickCount = 0;\n\n const handler = () => {\n clearTimeout(clickTimer);\n clickCount += 1;\n const threshold = vConsoleInstance ? closeCount : openCount;\n if (clickCount === threshold) {\n toggleVConsole();\n clickCount = 0;\n }\n clickTimer = setTimeout(() => {\n clickCount = 0;\n }, interval);\n };\n\n t.addEventListener(\"click\", handler);\n\n return () => {\n t.removeEventListener(\"click\", handler);\n clearTimeout(clickTimer);\n };\n};\n\n// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭\nconst longPress = ({\n target,\n openDuration = DEFAULT_CONFIG.DURATION,\n closeDuration = DEFAULT_CONFIG.CLOSE_DURATION,\n}) => {\n const t = getTarget(target);\n let timer = null;\n\n const onPress = () => {\n clearTimeout(timer);\n const duration = vConsoleInstance ? closeDuration : openDuration;\n timer = setTimeout(toggleVConsole, duration);\n };\n\n const clearTimer = () => {\n clearTimeout(timer);\n timer = null;\n };\n\n const events = isMobile()\n ? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }\n : { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };\n\n Object.entries(events).forEach(([event, handler]) =>\n t.addEventListener(event, handler)\n );\n\n return () => {\n Object.entries(events).forEach(([event, handler]) =>\n t.removeEventListener(event, handler)\n );\n clearTimer();\n };\n};\n\nexport { rapidClicks, longPress, toggleVConsole };\n"],"names":["DEFAULT_CONFIG","COUNT","INTERVAL","DURATION","CLOSE_COUNT","CLOSE_INTERVAL","CLOSE_DURATION","vConsoleInstance","toggleVConsole","destroy","console","log","VConsole","isMobile","test","navigator","userAgent","getTarget","target","t","document","querySelector","Error","HTMLElement","rapidClicks","_ref","_ref$openCount","openCount","_ref$closeCount","closeCount","_ref$interval","interval","clickTimer","clickCount","handler","clearTimeout","threshold","setTimeout","addEventListener","removeEventListener","longPress","_ref2","_ref2$openDuration","openDuration","_ref2$closeDuration","closeDuration","timer","onPress","duration","clearTimer","events","touchstart","touchend","touchcancel","mousedown","mouseup","mouseleave","Object","entries","forEach","_ref3","_ref4","_slicedToArray","event","_ref5","_ref6"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,63 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backdoor-vconsole",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "programmer backdoor trigger incident",
|
|
5
|
+
"homepage": "https://github.com/jackzer666/backdoor-vconsole",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "jackz3r",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.cjs.js",
|
|
10
|
+
"module": "dist/index.esm.js",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/jackzer666/backdoor-vconsole.git"
|
|
17
|
+
},
|
|
5
18
|
"scripts": {
|
|
6
|
-
"
|
|
19
|
+
"clean": "rimraf dist",
|
|
20
|
+
"build": "rollup -c rollup.config.mjs",
|
|
21
|
+
"rebuild": "npm run clean && npm run build",
|
|
22
|
+
"buildAndPublish": "npm run rebuild && npm publish",
|
|
23
|
+
"dev:examples": "cd examples && vite"
|
|
7
24
|
},
|
|
8
25
|
"keywords": [
|
|
9
26
|
"backdoor",
|
|
10
|
-
"vconsole"
|
|
27
|
+
"vconsole",
|
|
28
|
+
"后门事件",
|
|
29
|
+
"生产环境"
|
|
11
30
|
],
|
|
12
|
-
"
|
|
13
|
-
"license": "MIT",
|
|
14
|
-
"description": "",
|
|
15
|
-
"devDependencies": {
|
|
31
|
+
"dependencies": {
|
|
16
32
|
"vconsole": "^3.15.1"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"registry": "https://registry.npmjs.org/",
|
|
36
|
+
"access": "public"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=14.0.0",
|
|
40
|
+
"npm": ">=6.0.0"
|
|
41
|
+
},
|
|
42
|
+
"browserslist": [
|
|
43
|
+
"> 1%",
|
|
44
|
+
"last 2 versions",
|
|
45
|
+
"not dead"
|
|
46
|
+
],
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@babel/core": "^7.26.10",
|
|
49
|
+
"@babel/plugin-transform-runtime": "^7.29.0",
|
|
50
|
+
"@babel/preset-env": "^7.26.9",
|
|
51
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
52
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
53
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
54
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
55
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
56
|
+
"core-js": "^3.41.0",
|
|
57
|
+
"rimraf": "^6.0.1",
|
|
58
|
+
"rollup": "^4.39.0",
|
|
59
|
+
"tslib": "^2.8.1",
|
|
60
|
+
"typescript": "^5.8.3",
|
|
61
|
+
"vite": "^6.2.0"
|
|
17
62
|
}
|
|
18
63
|
}
|
package/index.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import VConsole from "vconsole";
|
|
2
|
-
|
|
3
|
-
const DEFAULT_CONFIG = {
|
|
4
|
-
COUNT: 7,
|
|
5
|
-
INTERVAL: 300,
|
|
6
|
-
DURATION: 7 * 1000,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const startVConsole = () => {
|
|
10
|
-
const vConsole = new VConsole();
|
|
11
|
-
console.log("vConsole is started", vConsole);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const isMobile = () =>
|
|
15
|
-
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
|
|
16
|
-
navigator.userAgent
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
const getTarget = (target) => {
|
|
20
|
-
if (typeof target === "string") {
|
|
21
|
-
const t = document.querySelector(target);
|
|
22
|
-
if (t) {
|
|
23
|
-
return t;
|
|
24
|
-
} else {
|
|
25
|
-
throw new Error(`can not find target`);
|
|
26
|
-
}
|
|
27
|
-
} else if (target instanceof HTMLElement) {
|
|
28
|
-
return target;
|
|
29
|
-
} else {
|
|
30
|
-
throw new Error("can not find target");
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// 快速点击
|
|
35
|
-
const rapidClicks = ({
|
|
36
|
-
target,
|
|
37
|
-
count = DEFAULT_CONFIG.COUNT,
|
|
38
|
-
interval = DEFAULT_CONFIG.INTERVAL,
|
|
39
|
-
}) => {
|
|
40
|
-
const t = getTarget(target);
|
|
41
|
-
const clickInner = () => {
|
|
42
|
-
let clickTimer;
|
|
43
|
-
let clickCount = 0;
|
|
44
|
-
return () => {
|
|
45
|
-
if (clickTimer) {
|
|
46
|
-
clearTimeout(clickTimer);
|
|
47
|
-
}
|
|
48
|
-
clickCount += 1;
|
|
49
|
-
if (clickCount === count) {
|
|
50
|
-
startVConsole();
|
|
51
|
-
clickCount = 0;
|
|
52
|
-
} else {
|
|
53
|
-
clickTimer = setTimeout(() => {
|
|
54
|
-
clickCount = 0;
|
|
55
|
-
}, interval);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
t.addEventListener("click", clickInner());
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
// 长按
|
|
63
|
-
const longPress = ({ target, duration = DEFAULT_CONFIG.DURATION }) => {
|
|
64
|
-
const t = getTarget(target);
|
|
65
|
-
let longPressInner;
|
|
66
|
-
if (isMobile()) {
|
|
67
|
-
longPressInner = () => {
|
|
68
|
-
return () => {
|
|
69
|
-
let timer;
|
|
70
|
-
t.addEventListener("touchstart", () => {
|
|
71
|
-
timer = setTimeout(() => {
|
|
72
|
-
startVConsole();
|
|
73
|
-
}, duration);
|
|
74
|
-
});
|
|
75
|
-
t.addEventListener("touchend", () => {
|
|
76
|
-
if (timer) {
|
|
77
|
-
clearTimeout(timer);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
t.addEventListener("touchcancel", () => {
|
|
81
|
-
if (timer) {
|
|
82
|
-
clearTimeout(timer);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
};
|
|
87
|
-
} else {
|
|
88
|
-
longPressInner = () => {
|
|
89
|
-
return () => {
|
|
90
|
-
let timer;
|
|
91
|
-
t.addEventListener("mousedown", () => {
|
|
92
|
-
timer = setTimeout(() => {
|
|
93
|
-
startVConsole();
|
|
94
|
-
}, duration);
|
|
95
|
-
});
|
|
96
|
-
t.addEventListener("mouseup", () => {
|
|
97
|
-
if (timer) {
|
|
98
|
-
clearTimeout(timer);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
t.addEventListener("mouseleave", () => {
|
|
102
|
-
if (timer) {
|
|
103
|
-
clearTimeout(timer);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
};
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export { rapidClicks, longPress };
|