keyspy 1.0.7 → 1.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.
Files changed (103) hide show
  1. package/README.md +110 -3
  2. package/bin/keyspy +24 -0
  3. package/dist/cli.d.ts +9 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +359 -0
  6. package/{build → dist}/index.d.ts +10 -10
  7. package/{build → dist}/index.d.ts.map +1 -1
  8. package/dist/index.js +156 -0
  9. package/{build/ts/X11KeyServer.d.ts → dist/platforms/linux/index.d.ts} +5 -5
  10. package/dist/platforms/linux/index.d.ts.map +1 -0
  11. package/dist/platforms/linux/index.js +181 -0
  12. package/dist/platforms/linux/keymap.d.ts +3 -0
  13. package/dist/platforms/linux/keymap.d.ts.map +1 -0
  14. package/dist/platforms/linux/keymap.js +144 -0
  15. package/{build/ts/MacKeyServer.d.ts → dist/platforms/mac/index.d.ts} +5 -5
  16. package/dist/platforms/mac/index.d.ts.map +1 -0
  17. package/dist/platforms/mac/index.js +181 -0
  18. package/dist/platforms/mac/keymap.d.ts +3 -0
  19. package/dist/platforms/mac/keymap.d.ts.map +1 -0
  20. package/dist/platforms/mac/keymap.js +155 -0
  21. package/{build/ts/WinKeyServer.d.ts → dist/platforms/windows/index.d.ts} +5 -5
  22. package/dist/platforms/windows/index.d.ts.map +1 -0
  23. package/dist/platforms/windows/index.js +110 -0
  24. package/{build/ts/_data/WinGlobalKeyLookup.d.ts → dist/platforms/windows/keymap.d.ts} +2 -2
  25. package/dist/platforms/windows/keymap.d.ts.map +1 -0
  26. package/{build/ts/_data/WinGlobalKeyLookup.js → dist/platforms/windows/keymap.js} +1 -1
  27. package/{build/ts/_types → dist/types}/IConfig.d.ts +2 -0
  28. package/dist/types/IConfig.d.ts.map +1 -0
  29. package/{build/ts/_types → dist/types}/IConfig.js +1 -1
  30. package/{build/ts/_types → dist/types}/IGlobalKey.d.ts +1 -1
  31. package/dist/types/IGlobalKey.d.ts.map +1 -0
  32. package/{build/ts/_types → dist/types}/IGlobalKey.js +1 -1
  33. package/dist/types/IGlobalKeyDownMap.d.ts.map +1 -0
  34. package/{build/ts/_types → dist/types}/IGlobalKeyDownMap.js +1 -1
  35. package/dist/types/IGlobalKeyEvent.d.ts.map +1 -0
  36. package/{build/ts/_types → dist/types}/IGlobalKeyEvent.js +1 -1
  37. package/dist/types/IGlobalKeyListener.d.ts.map +1 -0
  38. package/{build/ts/_types → dist/types}/IGlobalKeyListener.js +1 -1
  39. package/dist/types/IGlobalKeyListenerRaw.d.ts.map +1 -0
  40. package/{build/ts/_types → dist/types}/IGlobalKeyListenerRaw.js +1 -1
  41. package/dist/types/IGlobalKeyLookup.d.ts.map +1 -0
  42. package/{build/ts/_types → dist/types}/IGlobalKeyLookup.js +1 -1
  43. package/dist/types/IGlobalKeyResult.d.ts.map +1 -0
  44. package/{build/ts/_types → dist/types}/IGlobalKeyResult.js +1 -1
  45. package/dist/types/IGlobalKeyServer.d.ts.map +1 -0
  46. package/{build/ts/_types → dist/types}/IGlobalKeyServer.js +1 -1
  47. package/{build/ts/_types → dist/types}/IMacConfig.d.ts +2 -0
  48. package/dist/types/IMacConfig.d.ts.map +1 -0
  49. package/{build/ts/_types → dist/types}/IMacConfig.js +1 -1
  50. package/dist/types/IWindowsConfig.d.ts.map +1 -0
  51. package/{build/ts/_types → dist/types}/IWindowsConfig.js +1 -1
  52. package/{build/ts/_types → dist/types}/IX11Config.d.ts +2 -0
  53. package/dist/types/IX11Config.d.ts.map +1 -0
  54. package/{build/ts/_types → dist/types}/IX11Config.js +1 -1
  55. package/dist/utils/permissions.d.ts +10 -0
  56. package/dist/utils/permissions.d.ts.map +1 -0
  57. package/dist/utils/permissions.js +115 -0
  58. package/dist/utils.d.ts +22 -0
  59. package/dist/utils.d.ts.map +1 -0
  60. package/dist/utils.js +39 -0
  61. package/native/MacKeyServer/main.swift +326 -0
  62. package/native/WinKeyServer/main.cpp +402 -0
  63. package/native/X11KeyServer/main.cpp +118 -0
  64. package/package.json +50 -33
  65. package/runtime/MacKeyServer +0 -0
  66. package/scripts/download-binaries.js +7 -7
  67. package/build/index.js +0 -149
  68. package/build/ts/MacKeyServer.d.ts.map +0 -1
  69. package/build/ts/MacKeyServer.js +0 -159
  70. package/build/ts/WinKeyServer.d.ts.map +0 -1
  71. package/build/ts/WinKeyServer.js +0 -88
  72. package/build/ts/X11KeyServer.d.ts.map +0 -1
  73. package/build/ts/X11KeyServer.js +0 -159
  74. package/build/ts/_data/MacGlobalKeyLookup.d.ts +0 -3
  75. package/build/ts/_data/MacGlobalKeyLookup.d.ts.map +0 -1
  76. package/build/ts/_data/MacGlobalKeyLookup.js +0 -155
  77. package/build/ts/_data/WinGlobalKeyLookup.d.ts.map +0 -1
  78. package/build/ts/_data/X11GlobalKeyLookup.d.ts +0 -3
  79. package/build/ts/_data/X11GlobalKeyLookup.d.ts.map +0 -1
  80. package/build/ts/_data/X11GlobalKeyLookup.js +0 -144
  81. package/build/ts/_types/IConfig.d.ts.map +0 -1
  82. package/build/ts/_types/IGlobalKey.d.ts.map +0 -1
  83. package/build/ts/_types/IGlobalKeyDownMap.d.ts.map +0 -1
  84. package/build/ts/_types/IGlobalKeyEvent.d.ts.map +0 -1
  85. package/build/ts/_types/IGlobalKeyListener.d.ts.map +0 -1
  86. package/build/ts/_types/IGlobalKeyListenerRaw.d.ts.map +0 -1
  87. package/build/ts/_types/IGlobalKeyLookup.d.ts.map +0 -1
  88. package/build/ts/_types/IGlobalKeyResult.d.ts.map +0 -1
  89. package/build/ts/_types/IGlobalKeyServer.d.ts.map +0 -1
  90. package/build/ts/_types/IMacConfig.d.ts.map +0 -1
  91. package/build/ts/_types/IWindowsConfig.d.ts.map +0 -1
  92. package/build/ts/_types/IX11Config.d.ts.map +0 -1
  93. package/build/ts/isSpawnEventSupported.d.ts +0 -6
  94. package/build/ts/isSpawnEventSupported.d.ts.map +0 -1
  95. package/build/ts/isSpawnEventSupported.js +0 -18
  96. /package/{build/ts/_types → dist/types}/IGlobalKeyDownMap.d.ts +0 -0
  97. /package/{build/ts/_types → dist/types}/IGlobalKeyEvent.d.ts +0 -0
  98. /package/{build/ts/_types → dist/types}/IGlobalKeyListener.d.ts +0 -0
  99. /package/{build/ts/_types → dist/types}/IGlobalKeyListenerRaw.d.ts +0 -0
  100. /package/{build/ts/_types → dist/types}/IGlobalKeyLookup.d.ts +0 -0
  101. /package/{build/ts/_types → dist/types}/IGlobalKeyResult.d.ts +0 -0
  102. /package/{build/ts/_types → dist/types}/IGlobalKeyServer.d.ts +0 -0
  103. /package/{build/ts/_types → dist/types}/IWindowsConfig.d.ts +0 -0
package/build/index.js DELETED
@@ -1,149 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.GlobalKeyboardListener = void 0;
21
- const node_os_1 = __importDefault(require("node:os"));
22
- const MacKeyServer_1 = require("./ts/MacKeyServer");
23
- const WinKeyServer_1 = require("./ts/WinKeyServer");
24
- const X11KeyServer_1 = require("./ts/X11KeyServer");
25
- __exportStar(require("./ts/_types/IGlobalKeyListener"), exports);
26
- __exportStar(require("./ts/_types/IGlobalKeyEvent"), exports);
27
- __exportStar(require("./ts/_types/IGlobalKey"), exports);
28
- __exportStar(require("./ts/_types/IGlobalKeyDownMap"), exports);
29
- __exportStar(require("./ts/_types/IWindowsConfig"), exports);
30
- __exportStar(require("./ts/_types/IConfig"), exports);
31
- __exportStar(require("./ts/_types/IGlobalKeyResult"), exports);
32
- /**
33
- * A cross-platform global keyboard listener. Ideal for setting up global keyboard shortcuts
34
- * and key-loggers (usually for automation).
35
- * This keyserver uses low-level hooks on Windows OS and Event Taps on Mac OS, which allows
36
- * event propagation to be halted to the rest of the operating system as well as allowing
37
- * any key to be used for shortcuts.
38
- */
39
- class GlobalKeyboardListener {
40
- /**
41
- * Creates a new keyboard listener
42
- * @param config The optional configuration for the key listener
43
- */
44
- constructor(config = {}) {
45
- /** Whether the server is currently running */
46
- this.isRunning = false;
47
- this.stopTimeoutID = 0;
48
- /** The following listener is used to monitor which keys are being held down */
49
- this.baseListener = (event) => {
50
- if (event.name) {
51
- switch (event.state) {
52
- case "DOWN":
53
- this.isDown[event.name] = true;
54
- break;
55
- case "UP":
56
- this.isDown[event.name] = false;
57
- break;
58
- }
59
- }
60
- let stopPropagation = false;
61
- for (const onKey of this.listeners) {
62
- //Forward event
63
- try {
64
- const res = onKey(event, this.isDown);
65
- //Handle catch data
66
- if (res instanceof Object) {
67
- if (res.stopPropagation)
68
- stopPropagation = true;
69
- if (res.stopImmediatePropagation)
70
- break;
71
- }
72
- else if (res) {
73
- stopPropagation = true;
74
- }
75
- }
76
- catch (e) {
77
- console.error(e);
78
- }
79
- }
80
- return stopPropagation;
81
- };
82
- this.listeners = [];
83
- this.isDown = {};
84
- this.config = config;
85
- switch (node_os_1.default.platform()) {
86
- case "win32":
87
- this.keyServer = new WinKeyServer_1.WinKeyServer(this.baseListener, config.windows);
88
- break;
89
- case "darwin":
90
- this.keyServer = new MacKeyServer_1.MacKeyServer(this.baseListener, config.mac);
91
- break;
92
- case "linux":
93
- this.keyServer = new X11KeyServer_1.X11KeyServer(this.baseListener, config.x11);
94
- break;
95
- default:
96
- throw Error("This OS is not supported");
97
- }
98
- }
99
- /**
100
- * Add a global keyboard listener to the global keyboard listener server.
101
- * @param listener The listener to add to the global keyboard listener
102
- * @throws An exception if the process could not be started
103
- */
104
- async addListener(listener) {
105
- this.listeners.push(listener);
106
- if (this.listeners.length === 1) {
107
- clearTimeout(this.stopTimeoutID);
108
- await this.start();
109
- }
110
- }
111
- /**
112
- * Remove a global keyboard listener from the global keyboard listener server.
113
- * @param listener The listener to remove from the global keyboard listener
114
- */
115
- removeListener(listener) {
116
- var _a;
117
- const index = this.listeners.indexOf(listener);
118
- if (index !== -1) {
119
- this.listeners.splice(index, 1);
120
- if (this.listeners.length === 0) {
121
- if (this.config.disposeDelay === -1)
122
- this.stop();
123
- else
124
- this.stopTimeoutID = setTimeout(() => this.stop(), (_a = this.config.disposeDelay) !== null && _a !== void 0 ? _a : 100);
125
- }
126
- }
127
- }
128
- /** Removes all listeners and destroys the key server */
129
- kill() {
130
- this.listeners = [];
131
- this.stop();
132
- }
133
- /** Start the key server */
134
- start() {
135
- let promise = Promise.resolve();
136
- if (!this.isRunning)
137
- promise = this.keyServer.start();
138
- this.isRunning = true;
139
- return promise;
140
- }
141
- /** Stop the key server */
142
- stop() {
143
- if (this.isRunning)
144
- this.keyServer.stop();
145
- this.isRunning = false;
146
- }
147
- }
148
- exports.GlobalKeyboardListener = GlobalKeyboardListener;
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBeUI7QUFDekIsb0RBQWlEO0FBQ2pELG9EQUFpRDtBQUNqRCxvREFBaUQ7QUFPakQsaUVBQStDO0FBQy9DLDhEQUE0QztBQUM1Qyx5REFBdUM7QUFDdkMsZ0VBQThDO0FBQzlDLDZEQUEyQztBQUMzQyxzREFBb0M7QUFDcEMsK0RBQTZDO0FBRTdDOzs7Ozs7R0FNRztBQUNILE1BQWEsc0JBQXNCO0lBYWpDOzs7T0FHRztJQUNILFlBQW1CLFNBQWtCLEVBQUU7UUFYdkMsOENBQThDO1FBQ3BDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsa0JBQWEsR0FBNEIsQ0FBQyxDQUFDO1FBNEVyRCwrRUFBK0U7UUFDdkUsaUJBQVksR0FBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixRQUFRLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxNQUFNO3dCQUNULElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFDL0IsTUFBTTtvQkFDUixLQUFLLElBQUk7d0JBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO3dCQUNoQyxNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQyxlQUFlO2dCQUNmLElBQUksQ0FBQztvQkFDSCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFF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
@@ -1 +0,0 @@
1
- {"version":3,"file":"MacKeyServer.d.ts","sourceRoot":"","sources":["../../src/ts/MacKeyServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,uDAAuD;AACvD,qBAAa,YAAa,YAAW,gBAAgB;IACnD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;OAIG;gBACS,QAAQ,EAAE,qBAAqB,EAAE,MAAM,GAAE,UAAe;IAKpE;;;OAGG;IACI,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,0BAA0B;IACnB,IAAI;IAMX;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;CAiCrF"}
@@ -1,159 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MacKeyServer = void 0;
7
- const node_child_process_1 = require("node:child_process");
8
- const MacGlobalKeyLookup_1 = require("./_data/MacGlobalKeyLookup");
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const sudo_prompt_1 = __importDefault(require("@expo/sudo-prompt"));
11
- const isSpawnEventSupported_1 = require("./isSpawnEventSupported");
12
- const sPath = "../../bin/MacKeyServer";
13
- /** Use this class to listen to key events on Mac OS */
14
- class MacKeyServer {
15
- /**
16
- * Creates a new key server for mac
17
- * @param listener The callback to report key events to
18
- * @param config Additional optional configuration for the server
19
- */
20
- constructor(listener, config = {}) {
21
- this.running = false;
22
- this.restarting = false;
23
- this.listener = listener;
24
- this.config = config;
25
- }
26
- /**
27
- * Start the Key server and listen for keypresses
28
- * @param skipPerms Whether to skip attempting to add permissions
29
- */
30
- start(skipPerms) {
31
- var _a, _b;
32
- this.running = true;
33
- const serverPath = this.config.serverPath || node_path_1.default.join(__dirname, sPath);
34
- this.proc = (0, node_child_process_1.execFile)(serverPath);
35
- if (this.config.onInfo)
36
- (_a = this.proc.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (data) => { var _a, _b; return (_b = (_a = this.config).onInfo) === null || _b === void 0 ? void 0 : _b.call(_a, data.toString()); });
37
- const onError = this.config.onError;
38
- if (onError)
39
- this.proc.on("close", (code) => {
40
- if (!this.restarting && this.running)
41
- onError(code);
42
- });
43
- (_b = this.proc.stdout) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
44
- var _a;
45
- const events = this._getEventData(data);
46
- for (const { event, eventId } of events) {
47
- const stopPropagation = !!this.listener(event);
48
- (_a = this.proc.stdin) === null || _a === void 0 ? void 0 : _a.write(`${stopPropagation ? "1" : "0"},${eventId}\n`);
49
- }
50
- });
51
- return this.handleStartup(skipPerms !== null && skipPerms !== void 0 ? skipPerms : false);
52
- }
53
- /**
54
- * Deals with the startup process of the server, possibly adding perms if required and restarting
55
- * @param skipPerms Whether to skip attempting to add permissions
56
- */
57
- handleStartup(skipPerms) {
58
- return new Promise((res, rej) => {
59
- let errored = false;
60
- const serverPath = this.config.serverPath || node_path_1.default.join(__dirname, sPath);
61
- // If setup fails, try adding permissions
62
- this.proc.on("error", async (err) => {
63
- errored = true;
64
- if (skipPerms) {
65
- rej(err);
66
- }
67
- else {
68
- try {
69
- this.restarting = true;
70
- this.proc.kill();
71
- await this.addPerms(serverPath);
72
- // If the server was stopped in between, just act as if it was started successfully
73
- if (!this.running) {
74
- res();
75
- return;
76
- }
77
- res(this.start(true));
78
- }
79
- catch (e) {
80
- rej(e);
81
- }
82
- finally {
83
- this.restarting = false;
84
- }
85
- }
86
- });
87
- if ((0, isSpawnEventSupported_1.isSpawnEventSupported)())
88
- this.proc.on("spawn", res);
89
- // A timed fallback if the spawn event is not supported
90
- else
91
- setTimeout(() => {
92
- if (!errored)
93
- res();
94
- }, 200);
95
- });
96
- }
97
- /**
98
- * Makes sure that the given path is executable
99
- * @param path The path to add the perms to
100
- */
101
- addPerms(path) {
102
- const options = {
103
- name: "Global key listener",
104
- };
105
- return new Promise((res, err) => {
106
- sudo_prompt_1.default.exec(`chmod +x "${path}"`, options, (error, _stdout, stderr) => {
107
- if (error) {
108
- err(error);
109
- return;
110
- }
111
- if (stderr) {
112
- err(stderr);
113
- return;
114
- }
115
- res();
116
- });
117
- });
118
- }
119
- /** Stop the Key server */
120
- stop() {
121
- var _a;
122
- this.running = false;
123
- (_a = this.proc.stdout) === null || _a === void 0 ? void 0 : _a.pause();
124
- this.proc.kill();
125
- }
126
- /**
127
- * Obtains a IGlobalKeyEvent from stdout buffer data
128
- * @param data Data from stdout
129
- * @returns The standardized key event data
130
- */
131
- _getEventData(data) {
132
- const sData = data.toString();
133
- const lines = sData.trim().split(/\n/);
134
- return lines.map((line) => {
135
- const lineData = line.replace(/\s+/, "");
136
- const [mouseKeyboard, downUp, sKeyCode, sLocationX, sLocationY, eventId] = lineData.split(",");
137
- const isMouse = mouseKeyboard === "MOUSE";
138
- const isDown = downUp === "DOWN";
139
- const keyCode = Number.parseInt(sKeyCode, 10);
140
- const locationX = Number.parseFloat(sLocationX);
141
- const locationY = Number.parseFloat(sLocationY);
142
- const key = MacGlobalKeyLookup_1.MacGlobalKeyLookup[isMouse ? 0xffff0000 + keyCode : keyCode];
143
- return {
144
- event: {
145
- vKey: keyCode,
146
- rawKey: key,
147
- name: key === null || key === void 0 ? void 0 : key.standardName,
148
- state: isDown ? "DOWN" : "UP",
149
- scanCode: keyCode,
150
- location: [locationX, locationY],
151
- _raw: sData,
152
- },
153
- eventId,
154
- };
155
- });
156
- }
157
- }
158
- exports.MacKeyServer = MacKeyServer;
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFjS2V5U2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RzL01hY0tleVNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyREFBaUU7QUFHakUsbUVBQWdFO0FBQ2hFLDBEQUE2QjtBQUU3QixvRUFBcUM7QUFDckMsbUVBQWdFO0FBQ2hFLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDO0FBRXZDLHVEQUF1RDtBQUN2RCxNQUFhLFlBQVk7SUFRdkI7Ozs7T0FJRztJQUNILFlBQVksUUFBK0IsRUFBRSxTQUFxQixFQUFFO1FBUjVELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVF6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFNBQW1COztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLDZCQUFRLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDcEIsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLGVBQUMsT0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sRUFBQyxNQUFNLG1EQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEVBQUEsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"WinKeyServer.d.ts","sourceRoot":"","sources":["../../src/ts/WinKeyServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAG5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D,2DAA2D;AAC3D,qBAAa,YAAa,YAAW,gBAAgB;IACnD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAe;IAE3B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IAEjC;;;;OAIG;gBACgB,QAAQ,EAAE,qBAAqB,EAAE,MAAM,GAAE,cAAmB;IAK/E,qDAAqD;IACxC,KAAK;IAyBlB,0BAA0B;IACnB,IAAI;IAKX;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;CAiC9F"}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.WinKeyServer = void 0;
7
- const node_child_process_1 = require("node:child_process");
8
- const WinGlobalKeyLookup_1 = require("./_data/WinGlobalKeyLookup");
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const isSpawnEventSupported_1 = require("./isSpawnEventSupported");
11
- const sPath = "../../bin/WinKeyServer.exe";
12
- /** Use this class to listen to key events on Windows OS */
13
- class WinKeyServer {
14
- /**
15
- * Creates a new key server for windows
16
- * @param listener The callback to report key events to
17
- * @param windowsConfig The optional windows configuration
18
- */
19
- constructor(listener, config = {}) {
20
- this.listener = listener;
21
- this.config = config;
22
- }
23
- /** Start the Key server and listen for keypresses */
24
- async start() {
25
- var _a, _b;
26
- const serverPath = this.config.serverPath || node_path_1.default.join(__dirname, sPath);
27
- this.proc = (0, node_child_process_1.execFile)(serverPath, { maxBuffer: Number.POSITIVE_INFINITY });
28
- if (this.config.onInfo)
29
- (_a = this.proc.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (data) => { var _a, _b; return (_b = (_a = this.config).onInfo) === null || _b === void 0 ? void 0 : _b.call(_a, data.toString()); });
30
- if (this.config.onError)
31
- this.proc.on("close", this.config.onError);
32
- (_b = this.proc.stdout) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
33
- var _a;
34
- const events = this._getEventData(data);
35
- for (const { event, eventId } of events) {
36
- const stopPropagation = !!this.listener(event);
37
- (_a = this.proc.stdin) === null || _a === void 0 ? void 0 : _a.write(`${stopPropagation ? "1" : "0"},${eventId}\n`);
38
- }
39
- });
40
- return new Promise((res, err) => {
41
- this.proc.on("error", err);
42
- if ((0, isSpawnEventSupported_1.isSpawnEventSupported)())
43
- this.proc.on("spawn", res);
44
- // A timed fallback if the spawn event is not supported
45
- else
46
- setTimeout(res, 200);
47
- });
48
- }
49
- /** Stop the Key server */
50
- stop() {
51
- var _a;
52
- (_a = this.proc.stdout) === null || _a === void 0 ? void 0 : _a.pause();
53
- this.proc.kill();
54
- }
55
- /**
56
- * Obtains a IGlobalKeyEvent from stdout buffer data
57
- * @param data Data from stdout
58
- * @returns The standardized key event data
59
- */
60
- _getEventData(data) {
61
- const sData = data.toString();
62
- const lines = sData.trim().split(/\n/);
63
- return lines.map((line) => {
64
- const lineData = line.replace(/\s+/, "");
65
- const [_mouseKeyboard, downUp, sKeyCode, sScanCode, sLocationX, sLocationY, eventId] = lineData.split(",");
66
- const isDown = downUp === "DOWN";
67
- const keyCode = Number.parseInt(sKeyCode, 10);
68
- const scanCode = Number.parseInt(sScanCode, 10);
69
- const locationX = Number.parseFloat(sLocationX);
70
- const locationY = Number.parseFloat(sLocationY);
71
- const key = WinGlobalKeyLookup_1.WinGlobalKeyLookup[keyCode];
72
- return {
73
- event: {
74
- vKey: keyCode,
75
- rawKey: key,
76
- name: key === null || key === void 0 ? void 0 : key.standardName,
77
- state: isDown ? "DOWN" : "UP",
78
- scanCode: scanCode,
79
- location: [locationX, locationY],
80
- _raw: sData,
81
- },
82
- eventId,
83
- };
84
- });
85
- }
86
- }
87
- exports.WinKeyServer = WinKeyServer;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luS2V5U2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RzL1dpbktleVNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyREFBaUU7QUFHakUsbUVBQWdFO0FBQ2hFLDBEQUE2QjtBQUU3QixtRUFBZ0U7QUFDaEUsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUM7QUFFM0MsMkRBQTJEO0FBQzNELE1BQWEsWUFBWTtJQU12Qjs7OztPQUlHO0lBQ0gsWUFBbUIsUUFBK0IsRUFBRSxTQUF5QixFQUFFO1FBQzdFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxxREFBcUQ7SUFDOUMsS0FBSyxDQUFDLEtBQUs7O1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLG1CQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUEsNkJBQVEsRUFBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUNwQixNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSwwQ0FBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsZUFBQyxPQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSxFQUFDLE1BQU0sbURBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUEsRUFBQSxDQUFDLENBQUM7UUFDaEYsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxD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
@@ -1 +0,0 @@
1
- {"version":3,"file":"X11KeyServer.d.ts","sourceRoot":"","sources":["../../src/ts/X11KeyServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD,oDAAoD;AACpD,qBAAa,YAAa,YAAW,gBAAgB;IACnD,SAAS,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;OAIG;gBACS,QAAQ,EAAE,qBAAqB,EAAE,MAAM,GAAE,UAAe;IAKpE;;;OAGG;IACI,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD;;;OAGG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC1D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,0BAA0B;IACnB,IAAI;IAMX;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;CAiCrF"}
@@ -1,159 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.X11KeyServer = void 0;
7
- const node_child_process_1 = require("node:child_process");
8
- const X11GlobalKeyLookup_1 = require("./_data/X11GlobalKeyLookup");
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const sudo_prompt_1 = __importDefault(require("@expo/sudo-prompt"));
11
- const isSpawnEventSupported_1 = require("./isSpawnEventSupported");
12
- const sPath = "../../bin/X11KeyServer";
13
- /** Use this class to listen to key events on X11 */
14
- class X11KeyServer {
15
- /**
16
- * Creates a new key server for x11
17
- * @param listener The callback to report key events to
18
- * @param config Additional optional configuration for the server
19
- */
20
- constructor(listener, config = {}) {
21
- this.running = false;
22
- this.restarting = false;
23
- this.listener = listener;
24
- this.config = config;
25
- }
26
- /**
27
- * Start the Key server and listen for keypresses
28
- * @param skipPerms Whether to skip attempting to add permissions
29
- */
30
- start(skipPerms) {
31
- var _a, _b;
32
- this.running = true;
33
- const serverPath = this.config.serverPath || node_path_1.default.join(__dirname, sPath);
34
- this.proc = (0, node_child_process_1.execFile)(serverPath);
35
- if (this.config.onInfo)
36
- (_a = this.proc.stderr) === null || _a === void 0 ? void 0 : _a.on("data", (data) => { var _a, _b; return (_b = (_a = this.config).onInfo) === null || _b === void 0 ? void 0 : _b.call(_a, data.toString()); });
37
- const onError = this.config.onError;
38
- if (onError)
39
- this.proc.on("close", (code) => {
40
- if (!this.restarting && this.running)
41
- onError(code);
42
- });
43
- (_b = this.proc.stdout) === null || _b === void 0 ? void 0 : _b.on("data", (data) => {
44
- var _a;
45
- const events = this._getEventData(data);
46
- for (const { event, eventId } of events) {
47
- const stopPropagation = !!this.listener(event);
48
- (_a = this.proc.stdin) === null || _a === void 0 ? void 0 : _a.write(`${stopPropagation ? "1" : "0"},${eventId}\n`);
49
- }
50
- });
51
- return this.handleStartup(skipPerms !== null && skipPerms !== void 0 ? skipPerms : false);
52
- }
53
- /**
54
- * Deals with the startup process of the server, possibly adding perms if required and restarting
55
- * @param skipPerms Whether to skip attempting to add permissions
56
- */
57
- handleStartup(skipPerms) {
58
- return new Promise((res, rej) => {
59
- let errored = false;
60
- const serverPath = this.config.serverPath || node_path_1.default.join(__dirname, sPath);
61
- // If setup fails, try adding permissions
62
- this.proc.on("error", async (err) => {
63
- errored = true;
64
- if (skipPerms) {
65
- rej(err);
66
- }
67
- else {
68
- try {
69
- this.restarting = true;
70
- this.proc.kill();
71
- await this.addPerms(serverPath);
72
- // If the server was stopped in between, just act as if it was started successfully
73
- if (!this.running) {
74
- res();
75
- return;
76
- }
77
- res(this.start(true));
78
- }
79
- catch (e) {
80
- rej(e);
81
- }
82
- finally {
83
- this.restarting = false;
84
- }
85
- }
86
- });
87
- if ((0, isSpawnEventSupported_1.isSpawnEventSupported)())
88
- this.proc.on("spawn", res);
89
- // A timed fallback if the spawn event is not supported
90
- else
91
- setTimeout(() => {
92
- if (!errored)
93
- res();
94
- }, 200);
95
- });
96
- }
97
- /**
98
- * Makes sure that the given path is executable
99
- * @param path The path to add the perms to
100
- */
101
- addPerms(path) {
102
- const options = {
103
- name: "Global key listener",
104
- };
105
- return new Promise((res, err) => {
106
- sudo_prompt_1.default.exec(`chmod +x "${path}"`, options, (error, _stdout, stderr) => {
107
- if (error) {
108
- err(error);
109
- return;
110
- }
111
- if (stderr) {
112
- err(stderr);
113
- return;
114
- }
115
- res();
116
- });
117
- });
118
- }
119
- /** Stop the Key server */
120
- stop() {
121
- var _a;
122
- this.running = false;
123
- (_a = this.proc.stdout) === null || _a === void 0 ? void 0 : _a.pause();
124
- this.proc.kill();
125
- }
126
- /**
127
- * Obtains a IGlobalKeyEvent from stdout buffer data
128
- * @param data Data from stdout
129
- * @returns The standardized key event data
130
- */
131
- _getEventData(data) {
132
- const sData = data.toString();
133
- const lines = sData.trim().split(/\n/);
134
- return lines.map((line) => {
135
- const lineData = line.replace(/\s+/, "");
136
- const [mouseKeyboard, downUp, sKeyCode, sLocationX, sLocationY, eventId] = lineData.split(",");
137
- const isMouse = mouseKeyboard === "MOUSE";
138
- const isDown = downUp === "DOWN";
139
- const keyCode = Number.parseInt(sKeyCode, 10);
140
- const locationX = Number.parseFloat(sLocationX);
141
- const locationY = Number.parseFloat(sLocationY);
142
- const key = X11GlobalKeyLookup_1.X11GlobalKeyLookup[isMouse ? 0xffff0000 + keyCode : keyCode - 8];
143
- return {
144
- event: {
145
- vKey: keyCode,
146
- rawKey: key,
147
- name: key === null || key === void 0 ? void 0 : key.standardName,
148
- state: isDown ? "DOWN" : "UP",
149
- scanCode: keyCode,
150
- location: [locationX, locationY],
151
- _raw: sData,
152
- },
153
- eventId,
154
- };
155
- });
156
- }
157
- }
158
- exports.X11KeyServer = X11KeyServer;
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWDExS2V5U2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RzL1gxMUtleVNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyREFBaUU7QUFHakUsbUVBQWdFO0FBQ2hFLDBEQUE2QjtBQUU3QixvRUFBcUM7QUFDckMsbUVBQWdFO0FBQ2hFLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDO0FBRXZDLG9EQUFvRDtBQUNwRCxNQUFhLFlBQVk7SUFRdkI7Ozs7T0FJRztJQUNILFlBQVksUUFBK0IsRUFBRSxTQUFxQixFQUFFO1FBUjVELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVF6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFNBQW1COztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxtQkFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLDZCQUFRLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDcEIsTUFBQSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sMENBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLGVBQUMsT0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sRUFBQyxNQUFNLG1EQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBLEVBQUEsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FB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
@@ -1,3 +0,0 @@
1
- import type { IGlobalKeyLookup } from "../_types/IGlobalKeyLookup";
2
- export declare const MacGlobalKeyLookup: IGlobalKeyLookup;
3
- //# sourceMappingURL=MacGlobalKeyLookup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MacGlobalKeyLookup.d.ts","sourceRoot":"","sources":["../../../src/ts/_data/MacGlobalKeyLookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAcnE,eAAO,MAAM,kBAAkB,EAAE,gBA4IhC,CAAC"}