diff options
Diffstat (limited to 'deps/npm/node_modules/term-size')
-rw-r--r-- | deps/npm/node_modules/term-size/index.js | 70 | ||||
-rw-r--r-- | deps/npm/node_modules/term-size/license | 21 | ||||
-rw-r--r-- | deps/npm/node_modules/term-size/package.json | 75 | ||||
-rw-r--r-- | deps/npm/node_modules/term-size/readme.md | 41 | ||||
-rwxr-xr-x | deps/npm/node_modules/term-size/vendor/macos/term-size | bin | 0 -> 8760 bytes | |||
-rw-r--r-- | deps/npm/node_modules/term-size/vendor/windows/term-size.exe | bin | 0 -> 17408 bytes |
6 files changed, 207 insertions, 0 deletions
diff --git a/deps/npm/node_modules/term-size/index.js b/deps/npm/node_modules/term-size/index.js new file mode 100644 index 0000000000..95e410df26 --- /dev/null +++ b/deps/npm/node_modules/term-size/index.js @@ -0,0 +1,70 @@ +'use strict'; +const path = require('path'); +const execa = require('execa'); + +const create = (columns, rows) => ({ + columns: parseInt(columns, 10), + rows: parseInt(rows, 10) +}); + +module.exports = () => { + const env = process.env; + const stdout = process.stdout; + const stderr = process.stderr; + + if (stdout && stdout.columns && stdout.rows) { + return create(stdout.columns, stdout.rows); + } + + if (stderr && stderr.columns && stderr.rows) { + return create(stderr.columns, stderr.rows); + } + + // These values are static, so not the first choice + if (env.COLUMNS && env.LINES) { + return create(env.COLUMNS, env.LINES); + } + + if (process.platform === 'win32') { + try { + // Binary: https://github.com/sindresorhus/win-term-size + const size = execa.sync(path.join(__dirname, 'vendor/windows/term-size.exe')).stdout.split(/\r?\n/); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (err) {} + } else { + if (process.platform === 'darwin') { + try { + // Binary: https://github.com/sindresorhus/macos-term-size + const size = execa.shellSync(path.join(__dirname, 'vendor/macos/term-size')).stdout.split(/\r?\n/); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (err) {} + } + + // `resize` is preferred as it works even when all file descriptors are redirected + // https://linux.die.net/man/1/resize + try { + const size = execa.sync('resize', ['-u']).stdout.match(/\d+/g); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (err) {} + + try { + const columns = execa.sync('tput', ['cols']).stdout; + const rows = execa.sync('tput', ['lines']).stdout; + + if (columns && rows) { + return create(columns, rows); + } + } catch (err) {} + } + + return create(80, 24); +}; diff --git a/deps/npm/node_modules/term-size/license b/deps/npm/node_modules/term-size/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/deps/npm/node_modules/term-size/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/deps/npm/node_modules/term-size/package.json b/deps/npm/node_modules/term-size/package.json new file mode 100644 index 0000000000..8f2eb54c02 --- /dev/null +++ b/deps/npm/node_modules/term-size/package.json @@ -0,0 +1,75 @@ +{ + "_from": "term-size@^1.2.0", + "_id": "term-size@1.2.0", + "_inBundle": false, + "_integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "_location": "/term-size", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "term-size@^1.2.0", + "name": "term-size", + "escapedName": "term-size", + "rawSpec": "^1.2.0", + "saveSpec": null, + "fetchSpec": "^1.2.0" + }, + "_requiredBy": [ + "/boxen" + ], + "_resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "_shasum": "458b83887f288fc56d6fffbfad262e26638efa69", + "_spec": "term-size@^1.2.0", + "_where": "/Users/rebecca/code/npm/node_modules/boxen", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/term-size/issues" + }, + "bundleDependencies": false, + "dependencies": { + "execa": "^0.7.0" + }, + "deprecated": false, + "description": "Reliably get the terminal window size (columns & rows)", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js", + "vendor" + ], + "homepage": "https://github.com/sindresorhus/term-size#readme", + "keywords": [ + "term", + "terminal", + "size", + "console", + "window", + "width", + "height", + "columns", + "rows", + "lines", + "tty", + "redirected" + ], + "license": "MIT", + "name": "term-size", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/term-size.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.2.0" +} diff --git a/deps/npm/node_modules/term-size/readme.md b/deps/npm/node_modules/term-size/readme.md new file mode 100644 index 0000000000..dd642cadc2 --- /dev/null +++ b/deps/npm/node_modules/term-size/readme.md @@ -0,0 +1,41 @@ +# term-size [![Build Status: Linux & macOS](https://travis-ci.org/sindresorhus/term-size.svg?branch=master)](https://travis-ci.org/sindresorhus/term-size) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/c3tydg6uedsk0bob/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/term-size/branch/master) + +> Reliably get the terminal window size + +Because [`process.stdout.columns`](https://nodejs.org/api/tty.html#tty_writestream_columns) doesn't exist when run [non-interactively](http://www.tldp.org/LDP/abs/html/intandnonint.html), for example, in a child process or when piped. This module even works when all the TTY file descriptors are redirected! + +Confirmed working on macOS, Linux, and Windows. + + +## Install + +``` +$ npm install --save term-size +``` + + +## Usage + +```js +const termSize = require('term-size'); + +termSize(); +//=> {columns: 143, rows: 24} +``` + + +## API + +### termSize() + +Returns an `Object` with `columns` and `rows` properties. + + +## Related + +- [term-size-cli](https://github.com/sindresorhus/term-size-cli) - CLI for this module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/deps/npm/node_modules/term-size/vendor/macos/term-size b/deps/npm/node_modules/term-size/vendor/macos/term-size Binary files differnew file mode 100755 index 0000000000..e383cc737f --- /dev/null +++ b/deps/npm/node_modules/term-size/vendor/macos/term-size diff --git a/deps/npm/node_modules/term-size/vendor/windows/term-size.exe b/deps/npm/node_modules/term-size/vendor/windows/term-size.exe Binary files differnew file mode 100644 index 0000000000..c7a170c964 --- /dev/null +++ b/deps/npm/node_modules/term-size/vendor/windows/term-size.exe |