backdoor-vconsole 1.0.0-alpha.2 → 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.
@@ -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.0.0-alpha.2",
4
- "main": "index.js",
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
- "test": "echo \"Error: no test specified\" && exit 1"
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
- "author": "jackz3r",
13
- "license": "MIT",
14
- "description": "",
15
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 };