├── .gitignore ├── LICENSE ├── README.md ├── config.js ├── index.js ├── package-lock.json ├── package.json └── screens └── demo.gif /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | *.log 3 | 4 | .env 5 | .env.test 6 | .custom-env 7 | 8 | # cache files 9 | .yarn/cache 10 | .yarn/unplugged 11 | .yarn/install-state.gz 12 | .eslintcache 13 | .cache 14 | .parcel-cache 15 | .npm 16 | 17 | # vs editor related files 18 | .vscode-test 19 | .vscode 20 | config.js -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Mullwar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TeleShellBot 2 | 3 | A simple Telegram Bot to run shell commands remotely, so that you can maintain your server from mobile phones! 4 | ![demo](https://cdn.jsdelivr.net/gh/marknote/TeleShellBot/screens/demo.gif) 5 | 6 | ## Install 7 | Download or clone this repo, then 8 | ``` 9 | npm install 10 | ``` 11 | ## Config 12 | - Follow [Telegram instructions](https://telegram.org/blog/bot-revolution) to create a bot, and you will get bot token. 13 | - [Find you user ID](https://medium.com/@tabul8tor/how-to-find-your-telegram-user-id-6878d54acafa) 14 | - Then put your telegram user ID and bot token in `config.js`: 15 | ```javascript 16 | module.exports = { 17 | config:function(){ 18 | return ( 19 | { 20 | adminUsers:[ADMIN_ID], //admin users' telegram id, should be numbers 21 | botToken: 'YOUR_BOT_TOEKN', // bot token 22 | 23 | } 24 | ); 25 | } 26 | }; 27 | ``` 28 | ## Run 29 | ``` 30 | npm run start 31 | ``` 32 | or 33 | ``` 34 | node index.js 35 | ``` 36 | 37 | That is it! 38 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | config:function(){ 3 | return ( 4 | { 5 | adminUsers:[ADMIN_ID], //admin users' telegram id, should be numbers 6 | botToken: 'YOUR_BOT_TOEKN', // bot token 7 | 8 | } 9 | ); 10 | } 11 | }; -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const TeleBot = require('telebot'); 2 | const { spawn } = require('child_process'); 3 | 4 | const config = require('./config').config(); 5 | const { adminUsers } = config; 6 | 7 | const bot = new TeleBot(config.botToken); 8 | bot.on('text', (msg) => { 9 | const { id } = msg.from; 10 | msg.reply.text('$:' + msg.text); 11 | if (!adminUsers.includes(id)) { 12 | msg.reply.text('You are not admin!'); 13 | return; 14 | } 15 | const words = msg.text.split(' '); 16 | const len = words.length; 17 | let args = []; 18 | if (len > 1) { 19 | args = words.slice(1, len); 20 | } 21 | console.log('args:' + args); 22 | 23 | const shell = spawn(words[0], args).on('error', (err) => { 24 | msg.reply.text('error while executing:' + words[0]); 25 | msg.reply.text(err); 26 | }); 27 | 28 | if (shell) { 29 | shell.stdout.on('data', (data) => { 30 | msg.reply.text(`stdout:\n ${data}`); 31 | }); 32 | 33 | shell.stderr.on('data', (data) => { 34 | msg.reply.text(`stderr: ${data}`); 35 | }); 36 | 37 | shell.on('close', (code) => { 38 | msg.reply.text(`shell exited with code ${code}`); 39 | }); 40 | } 41 | }); 42 | 43 | bot.start(); 44 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "teleshellbot", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "teleshellbot", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "telebot": "^1.4.1" 13 | } 14 | }, 15 | "node_modules/ajv": { 16 | "version": "6.12.6", 17 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 18 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 19 | "dependencies": { 20 | "fast-deep-equal": "^3.1.1", 21 | "fast-json-stable-stringify": "^2.0.0", 22 | "json-schema-traverse": "^0.4.1", 23 | "uri-js": "^4.2.2" 24 | }, 25 | "funding": { 26 | "type": "github", 27 | "url": "https://github.com/sponsors/epoberezkin" 28 | } 29 | }, 30 | "node_modules/asn1": { 31 | "version": "0.2.6", 32 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", 33 | "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", 34 | "dependencies": { 35 | "safer-buffer": "~2.1.0" 36 | } 37 | }, 38 | "node_modules/assert-plus": { 39 | "version": "1.0.0", 40 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 41 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 42 | "engines": { 43 | "node": ">=0.8" 44 | } 45 | }, 46 | "node_modules/asynckit": { 47 | "version": "0.4.0", 48 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 49 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 50 | }, 51 | "node_modules/aws-sign2": { 52 | "version": "0.7.0", 53 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 54 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 55 | "engines": { 56 | "node": "*" 57 | } 58 | }, 59 | "node_modules/aws4": { 60 | "version": "1.11.0", 61 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 62 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 63 | }, 64 | "node_modules/bcrypt-pbkdf": { 65 | "version": "1.0.2", 66 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 67 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 68 | "dependencies": { 69 | "tweetnacl": "^0.14.3" 70 | } 71 | }, 72 | "node_modules/caseless": { 73 | "version": "0.12.0", 74 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 75 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 76 | }, 77 | "node_modules/combined-stream": { 78 | "version": "1.0.8", 79 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 80 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 81 | "dependencies": { 82 | "delayed-stream": "~1.0.0" 83 | }, 84 | "engines": { 85 | "node": ">= 0.8" 86 | } 87 | }, 88 | "node_modules/core-util-is": { 89 | "version": "1.0.2", 90 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 91 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 92 | }, 93 | "node_modules/dashdash": { 94 | "version": "1.14.1", 95 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 96 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 97 | "dependencies": { 98 | "assert-plus": "^1.0.0" 99 | }, 100 | "engines": { 101 | "node": ">=0.10" 102 | } 103 | }, 104 | "node_modules/delayed-stream": { 105 | "version": "1.0.0", 106 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 107 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 108 | "engines": { 109 | "node": ">=0.4.0" 110 | } 111 | }, 112 | "node_modules/ecc-jsbn": { 113 | "version": "0.1.2", 114 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 115 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 116 | "dependencies": { 117 | "jsbn": "~0.1.0", 118 | "safer-buffer": "^2.1.0" 119 | } 120 | }, 121 | "node_modules/extend": { 122 | "version": "3.0.2", 123 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 124 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 125 | }, 126 | "node_modules/extsprintf": { 127 | "version": "1.3.0", 128 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 129 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 130 | "engines": [ 131 | "node >=0.6.0" 132 | ] 133 | }, 134 | "node_modules/fast-deep-equal": { 135 | "version": "3.1.3", 136 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 137 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 138 | }, 139 | "node_modules/fast-json-stable-stringify": { 140 | "version": "2.1.0", 141 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 142 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 143 | }, 144 | "node_modules/forever-agent": { 145 | "version": "0.6.1", 146 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 147 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 148 | "engines": { 149 | "node": "*" 150 | } 151 | }, 152 | "node_modules/form-data": { 153 | "version": "2.3.3", 154 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 155 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 156 | "dependencies": { 157 | "asynckit": "^0.4.0", 158 | "combined-stream": "^1.0.6", 159 | "mime-types": "^2.1.12" 160 | }, 161 | "engines": { 162 | "node": ">= 0.12" 163 | } 164 | }, 165 | "node_modules/getpass": { 166 | "version": "0.1.7", 167 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 168 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 169 | "dependencies": { 170 | "assert-plus": "^1.0.0" 171 | } 172 | }, 173 | "node_modules/har-schema": { 174 | "version": "2.0.0", 175 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 176 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 177 | "engines": { 178 | "node": ">=4" 179 | } 180 | }, 181 | "node_modules/har-validator": { 182 | "version": "5.1.5", 183 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 184 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 185 | "deprecated": "this library is no longer supported", 186 | "dependencies": { 187 | "ajv": "^6.12.3", 188 | "har-schema": "^2.0.0" 189 | }, 190 | "engines": { 191 | "node": ">=6" 192 | } 193 | }, 194 | "node_modules/http-signature": { 195 | "version": "1.2.0", 196 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 197 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 198 | "dependencies": { 199 | "assert-plus": "^1.0.0", 200 | "jsprim": "^1.2.2", 201 | "sshpk": "^1.7.0" 202 | }, 203 | "engines": { 204 | "node": ">=0.8", 205 | "npm": ">=1.3.7" 206 | } 207 | }, 208 | "node_modules/is-typedarray": { 209 | "version": "1.0.0", 210 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 211 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 212 | }, 213 | "node_modules/isstream": { 214 | "version": "0.1.2", 215 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 216 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 217 | }, 218 | "node_modules/jsbn": { 219 | "version": "0.1.1", 220 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 221 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 222 | }, 223 | "node_modules/json-schema": { 224 | "version": "0.4.0", 225 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 226 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" 227 | }, 228 | "node_modules/json-schema-traverse": { 229 | "version": "0.4.1", 230 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 231 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 232 | }, 233 | "node_modules/json-stringify-safe": { 234 | "version": "5.0.1", 235 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 236 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 237 | }, 238 | "node_modules/jsprim": { 239 | "version": "1.4.2", 240 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", 241 | "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", 242 | "dependencies": { 243 | "assert-plus": "1.0.0", 244 | "extsprintf": "1.3.0", 245 | "json-schema": "0.4.0", 246 | "verror": "1.10.0" 247 | }, 248 | "engines": { 249 | "node": ">=0.6.0" 250 | } 251 | }, 252 | "node_modules/mime-db": { 253 | "version": "1.52.0", 254 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 255 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 256 | "engines": { 257 | "node": ">= 0.6" 258 | } 259 | }, 260 | "node_modules/mime-types": { 261 | "version": "2.1.35", 262 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 263 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 264 | "dependencies": { 265 | "mime-db": "1.52.0" 266 | }, 267 | "engines": { 268 | "node": ">= 0.6" 269 | } 270 | }, 271 | "node_modules/oauth-sign": { 272 | "version": "0.9.0", 273 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 274 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 275 | "engines": { 276 | "node": "*" 277 | } 278 | }, 279 | "node_modules/performance-now": { 280 | "version": "2.1.0", 281 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 282 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 283 | }, 284 | "node_modules/psl": { 285 | "version": "1.8.0", 286 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 287 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" 288 | }, 289 | "node_modules/punycode": { 290 | "version": "2.1.1", 291 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 292 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 293 | "engines": { 294 | "node": ">=6" 295 | } 296 | }, 297 | "node_modules/qs": { 298 | "version": "6.5.3", 299 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", 300 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", 301 | "engines": { 302 | "node": ">=0.6" 303 | } 304 | }, 305 | "node_modules/request": { 306 | "version": "2.88.2", 307 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 308 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 309 | "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", 310 | "dependencies": { 311 | "aws-sign2": "~0.7.0", 312 | "aws4": "^1.8.0", 313 | "caseless": "~0.12.0", 314 | "combined-stream": "~1.0.6", 315 | "extend": "~3.0.2", 316 | "forever-agent": "~0.6.1", 317 | "form-data": "~2.3.2", 318 | "har-validator": "~5.1.3", 319 | "http-signature": "~1.2.0", 320 | "is-typedarray": "~1.0.0", 321 | "isstream": "~0.1.2", 322 | "json-stringify-safe": "~5.0.1", 323 | "mime-types": "~2.1.19", 324 | "oauth-sign": "~0.9.0", 325 | "performance-now": "^2.1.0", 326 | "qs": "~6.5.2", 327 | "safe-buffer": "^5.1.2", 328 | "tough-cookie": "~2.5.0", 329 | "tunnel-agent": "^0.6.0", 330 | "uuid": "^3.3.2" 331 | }, 332 | "engines": { 333 | "node": ">= 6" 334 | } 335 | }, 336 | "node_modules/safe-buffer": { 337 | "version": "5.2.1", 338 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 339 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 340 | "funding": [ 341 | { 342 | "type": "github", 343 | "url": "https://github.com/sponsors/feross" 344 | }, 345 | { 346 | "type": "patreon", 347 | "url": "https://www.patreon.com/feross" 348 | }, 349 | { 350 | "type": "consulting", 351 | "url": "https://feross.org/support" 352 | } 353 | ] 354 | }, 355 | "node_modules/safer-buffer": { 356 | "version": "2.1.2", 357 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 358 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 359 | }, 360 | "node_modules/sshpk": { 361 | "version": "1.17.0", 362 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", 363 | "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", 364 | "dependencies": { 365 | "asn1": "~0.2.3", 366 | "assert-plus": "^1.0.0", 367 | "bcrypt-pbkdf": "^1.0.0", 368 | "dashdash": "^1.12.0", 369 | "ecc-jsbn": "~0.1.1", 370 | "getpass": "^0.1.1", 371 | "jsbn": "~0.1.0", 372 | "safer-buffer": "^2.0.2", 373 | "tweetnacl": "~0.14.0" 374 | }, 375 | "bin": { 376 | "sshpk-conv": "bin/sshpk-conv", 377 | "sshpk-sign": "bin/sshpk-sign", 378 | "sshpk-verify": "bin/sshpk-verify" 379 | }, 380 | "engines": { 381 | "node": ">=0.10.0" 382 | } 383 | }, 384 | "node_modules/telebot": { 385 | "version": "1.4.1", 386 | "resolved": "https://registry.npmjs.org/telebot/-/telebot-1.4.1.tgz", 387 | "integrity": "sha512-5EEwMWsWzdT5+d6eu1Zmm/2AQmEINeObciWHOa9/9rWa1aUZyokUH1WD0Ke0vv6nveY8dEIMoxyrcWS0z1lyAQ==", 388 | "dependencies": { 389 | "request": "^2.88.2" 390 | }, 391 | "engines": { 392 | "node": ">= 12.0.0" 393 | } 394 | }, 395 | "node_modules/tough-cookie": { 396 | "version": "2.5.0", 397 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 398 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 399 | "dependencies": { 400 | "psl": "^1.1.28", 401 | "punycode": "^2.1.1" 402 | }, 403 | "engines": { 404 | "node": ">=0.8" 405 | } 406 | }, 407 | "node_modules/tunnel-agent": { 408 | "version": "0.6.0", 409 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 410 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 411 | "dependencies": { 412 | "safe-buffer": "^5.0.1" 413 | }, 414 | "engines": { 415 | "node": "*" 416 | } 417 | }, 418 | "node_modules/tweetnacl": { 419 | "version": "0.14.5", 420 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 421 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 422 | }, 423 | "node_modules/uri-js": { 424 | "version": "4.4.1", 425 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 426 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 427 | "dependencies": { 428 | "punycode": "^2.1.0" 429 | } 430 | }, 431 | "node_modules/uuid": { 432 | "version": "3.4.0", 433 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 434 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", 435 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", 436 | "bin": { 437 | "uuid": "bin/uuid" 438 | } 439 | }, 440 | "node_modules/verror": { 441 | "version": "1.10.0", 442 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 443 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 444 | "engines": [ 445 | "node >=0.6.0" 446 | ], 447 | "dependencies": { 448 | "assert-plus": "^1.0.0", 449 | "core-util-is": "1.0.2", 450 | "extsprintf": "^1.2.0" 451 | } 452 | } 453 | }, 454 | "dependencies": { 455 | "ajv": { 456 | "version": "6.12.6", 457 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 458 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 459 | "requires": { 460 | "fast-deep-equal": "^3.1.1", 461 | "fast-json-stable-stringify": "^2.0.0", 462 | "json-schema-traverse": "^0.4.1", 463 | "uri-js": "^4.2.2" 464 | } 465 | }, 466 | "asn1": { 467 | "version": "0.2.6", 468 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", 469 | "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", 470 | "requires": { 471 | "safer-buffer": "~2.1.0" 472 | } 473 | }, 474 | "assert-plus": { 475 | "version": "1.0.0", 476 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 477 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 478 | }, 479 | "asynckit": { 480 | "version": "0.4.0", 481 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 482 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 483 | }, 484 | "aws-sign2": { 485 | "version": "0.7.0", 486 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 487 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 488 | }, 489 | "aws4": { 490 | "version": "1.11.0", 491 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 492 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 493 | }, 494 | "bcrypt-pbkdf": { 495 | "version": "1.0.2", 496 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 497 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 498 | "requires": { 499 | "tweetnacl": "^0.14.3" 500 | } 501 | }, 502 | "caseless": { 503 | "version": "0.12.0", 504 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 505 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 506 | }, 507 | "combined-stream": { 508 | "version": "1.0.8", 509 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 510 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 511 | "requires": { 512 | "delayed-stream": "~1.0.0" 513 | } 514 | }, 515 | "core-util-is": { 516 | "version": "1.0.2", 517 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 518 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 519 | }, 520 | "dashdash": { 521 | "version": "1.14.1", 522 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 523 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 524 | "requires": { 525 | "assert-plus": "^1.0.0" 526 | } 527 | }, 528 | "delayed-stream": { 529 | "version": "1.0.0", 530 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 531 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 532 | }, 533 | "ecc-jsbn": { 534 | "version": "0.1.2", 535 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 536 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 537 | "requires": { 538 | "jsbn": "~0.1.0", 539 | "safer-buffer": "^2.1.0" 540 | } 541 | }, 542 | "extend": { 543 | "version": "3.0.2", 544 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 545 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 546 | }, 547 | "extsprintf": { 548 | "version": "1.3.0", 549 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 550 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 551 | }, 552 | "fast-deep-equal": { 553 | "version": "3.1.3", 554 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 555 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 556 | }, 557 | "fast-json-stable-stringify": { 558 | "version": "2.1.0", 559 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 560 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 561 | }, 562 | "forever-agent": { 563 | "version": "0.6.1", 564 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 565 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 566 | }, 567 | "form-data": { 568 | "version": "2.3.3", 569 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 570 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 571 | "requires": { 572 | "asynckit": "^0.4.0", 573 | "combined-stream": "^1.0.6", 574 | "mime-types": "^2.1.12" 575 | } 576 | }, 577 | "getpass": { 578 | "version": "0.1.7", 579 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 580 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 581 | "requires": { 582 | "assert-plus": "^1.0.0" 583 | } 584 | }, 585 | "har-schema": { 586 | "version": "2.0.0", 587 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 588 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 589 | }, 590 | "har-validator": { 591 | "version": "5.1.5", 592 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 593 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 594 | "requires": { 595 | "ajv": "^6.12.3", 596 | "har-schema": "^2.0.0" 597 | } 598 | }, 599 | "http-signature": { 600 | "version": "1.2.0", 601 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 602 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 603 | "requires": { 604 | "assert-plus": "^1.0.0", 605 | "jsprim": "^1.2.2", 606 | "sshpk": "^1.7.0" 607 | } 608 | }, 609 | "is-typedarray": { 610 | "version": "1.0.0", 611 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 612 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 613 | }, 614 | "isstream": { 615 | "version": "0.1.2", 616 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 617 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 618 | }, 619 | "jsbn": { 620 | "version": "0.1.1", 621 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 622 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 623 | }, 624 | "json-schema": { 625 | "version": "0.4.0", 626 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 627 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" 628 | }, 629 | "json-schema-traverse": { 630 | "version": "0.4.1", 631 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 632 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 633 | }, 634 | "json-stringify-safe": { 635 | "version": "5.0.1", 636 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 637 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 638 | }, 639 | "jsprim": { 640 | "version": "1.4.2", 641 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", 642 | "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", 643 | "requires": { 644 | "assert-plus": "1.0.0", 645 | "extsprintf": "1.3.0", 646 | "json-schema": "0.4.0", 647 | "verror": "1.10.0" 648 | } 649 | }, 650 | "mime-db": { 651 | "version": "1.52.0", 652 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 653 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 654 | }, 655 | "mime-types": { 656 | "version": "2.1.35", 657 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 658 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 659 | "requires": { 660 | "mime-db": "1.52.0" 661 | } 662 | }, 663 | "oauth-sign": { 664 | "version": "0.9.0", 665 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 666 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 667 | }, 668 | "performance-now": { 669 | "version": "2.1.0", 670 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 671 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 672 | }, 673 | "psl": { 674 | "version": "1.8.0", 675 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 676 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" 677 | }, 678 | "punycode": { 679 | "version": "2.1.1", 680 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 681 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 682 | }, 683 | "qs": { 684 | "version": "6.5.3", 685 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", 686 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" 687 | }, 688 | "request": { 689 | "version": "2.88.2", 690 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 691 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 692 | "requires": { 693 | "aws-sign2": "~0.7.0", 694 | "aws4": "^1.8.0", 695 | "caseless": "~0.12.0", 696 | "combined-stream": "~1.0.6", 697 | "extend": "~3.0.2", 698 | "forever-agent": "~0.6.1", 699 | "form-data": "~2.3.2", 700 | "har-validator": "~5.1.3", 701 | "http-signature": "~1.2.0", 702 | "is-typedarray": "~1.0.0", 703 | "isstream": "~0.1.2", 704 | "json-stringify-safe": "~5.0.1", 705 | "mime-types": "~2.1.19", 706 | "oauth-sign": "~0.9.0", 707 | "performance-now": "^2.1.0", 708 | "qs": "~6.5.2", 709 | "safe-buffer": "^5.1.2", 710 | "tough-cookie": "~2.5.0", 711 | "tunnel-agent": "^0.6.0", 712 | "uuid": "^3.3.2" 713 | } 714 | }, 715 | "safe-buffer": { 716 | "version": "5.2.1", 717 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 718 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 719 | }, 720 | "safer-buffer": { 721 | "version": "2.1.2", 722 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 723 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 724 | }, 725 | "sshpk": { 726 | "version": "1.17.0", 727 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", 728 | "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", 729 | "requires": { 730 | "asn1": "~0.2.3", 731 | "assert-plus": "^1.0.0", 732 | "bcrypt-pbkdf": "^1.0.0", 733 | "dashdash": "^1.12.0", 734 | "ecc-jsbn": "~0.1.1", 735 | "getpass": "^0.1.1", 736 | "jsbn": "~0.1.0", 737 | "safer-buffer": "^2.0.2", 738 | "tweetnacl": "~0.14.0" 739 | } 740 | }, 741 | "telebot": { 742 | "version": "1.4.1", 743 | "resolved": "https://registry.npmjs.org/telebot/-/telebot-1.4.1.tgz", 744 | "integrity": "sha512-5EEwMWsWzdT5+d6eu1Zmm/2AQmEINeObciWHOa9/9rWa1aUZyokUH1WD0Ke0vv6nveY8dEIMoxyrcWS0z1lyAQ==", 745 | "requires": { 746 | "request": "^2.88.2" 747 | } 748 | }, 749 | "tough-cookie": { 750 | "version": "2.5.0", 751 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 752 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 753 | "requires": { 754 | "psl": "^1.1.28", 755 | "punycode": "^2.1.1" 756 | } 757 | }, 758 | "tunnel-agent": { 759 | "version": "0.6.0", 760 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 761 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 762 | "requires": { 763 | "safe-buffer": "^5.0.1" 764 | } 765 | }, 766 | "tweetnacl": { 767 | "version": "0.14.5", 768 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 769 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 770 | }, 771 | "uri-js": { 772 | "version": "4.4.1", 773 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 774 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 775 | "requires": { 776 | "punycode": "^2.1.0" 777 | } 778 | }, 779 | "uuid": { 780 | "version": "3.4.0", 781 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 782 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 783 | }, 784 | "verror": { 785 | "version": "1.10.0", 786 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 787 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 788 | "requires": { 789 | "assert-plus": "^1.0.0", 790 | "core-util-is": "1.0.2", 791 | "extsprintf": "^1.2.0" 792 | } 793 | } 794 | } 795 | } 796 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "teleshellbot", 3 | "version": "1.0.0", 4 | "description": "A simple Telegram Bot to run shell commands remotely", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/marknote/TeleShellBot.git" 8 | }, 9 | "main": "index.js", 10 | "scripts": { 11 | "start": "node index.js", 12 | "test": "test" 13 | }, 14 | "author": "marknote", 15 | "license": "MIT", 16 | "dependencies": { 17 | "telebot": "^1.4.1" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /screens/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marknote/TeleShellBot/9b3530cc9342d1a7b70e80611688748e7bb8b5db/screens/demo.gif --------------------------------------------------------------------------------