update
This commit is contained in:
15
package/node_modules/mute-stream/LICENSE
generated
vendored
Normal file
15
package/node_modules/mute-stream/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
142
package/node_modules/mute-stream/lib/index.js
generated
vendored
Normal file
142
package/node_modules/mute-stream/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
const Stream = require('stream')
|
||||
|
||||
class MuteStream extends Stream {
|
||||
#isTTY = null
|
||||
|
||||
constructor (opts = {}) {
|
||||
super(opts)
|
||||
this.writable = this.readable = true
|
||||
this.muted = false
|
||||
this.on('pipe', this._onpipe)
|
||||
this.replace = opts.replace
|
||||
|
||||
// For readline-type situations
|
||||
// This much at the start of a line being redrawn after a ctrl char
|
||||
// is seen (such as backspace) won't be redrawn as the replacement
|
||||
this._prompt = opts.prompt || null
|
||||
this._hadControl = false
|
||||
}
|
||||
|
||||
#destSrc (key, def) {
|
||||
if (this._dest) {
|
||||
return this._dest[key]
|
||||
}
|
||||
if (this._src) {
|
||||
return this._src[key]
|
||||
}
|
||||
return def
|
||||
}
|
||||
|
||||
#proxy (method, ...args) {
|
||||
if (typeof this._dest?.[method] === 'function') {
|
||||
this._dest[method](...args)
|
||||
}
|
||||
if (typeof this._src?.[method] === 'function') {
|
||||
this._src[method](...args)
|
||||
}
|
||||
}
|
||||
|
||||
get isTTY () {
|
||||
if (this.#isTTY !== null) {
|
||||
return this.#isTTY
|
||||
}
|
||||
return this.#destSrc('isTTY', false)
|
||||
}
|
||||
|
||||
// basically just get replace the getter/setter with a regular value
|
||||
set isTTY (val) {
|
||||
this.#isTTY = val
|
||||
}
|
||||
|
||||
get rows () {
|
||||
return this.#destSrc('rows')
|
||||
}
|
||||
|
||||
get columns () {
|
||||
return this.#destSrc('columns')
|
||||
}
|
||||
|
||||
mute () {
|
||||
this.muted = true
|
||||
}
|
||||
|
||||
unmute () {
|
||||
this.muted = false
|
||||
}
|
||||
|
||||
_onpipe (src) {
|
||||
this._src = src
|
||||
}
|
||||
|
||||
pipe (dest, options) {
|
||||
this._dest = dest
|
||||
return super.pipe(dest, options)
|
||||
}
|
||||
|
||||
pause () {
|
||||
if (this._src) {
|
||||
return this._src.pause()
|
||||
}
|
||||
}
|
||||
|
||||
resume () {
|
||||
if (this._src) {
|
||||
return this._src.resume()
|
||||
}
|
||||
}
|
||||
|
||||
write (c) {
|
||||
if (this.muted) {
|
||||
if (!this.replace) {
|
||||
return true
|
||||
}
|
||||
// eslint-disable-next-line no-control-regex
|
||||
if (c.match(/^\u001b/)) {
|
||||
if (c.indexOf(this._prompt) === 0) {
|
||||
c = c.slice(this._prompt.length)
|
||||
c = c.replace(/./g, this.replace)
|
||||
c = this._prompt + c
|
||||
}
|
||||
this._hadControl = true
|
||||
return this.emit('data', c)
|
||||
} else {
|
||||
if (this._prompt && this._hadControl &&
|
||||
c.indexOf(this._prompt) === 0) {
|
||||
this._hadControl = false
|
||||
this.emit('data', this._prompt)
|
||||
c = c.slice(this._prompt.length)
|
||||
}
|
||||
c = c.toString().replace(/./g, this.replace)
|
||||
}
|
||||
}
|
||||
this.emit('data', c)
|
||||
}
|
||||
|
||||
end (c) {
|
||||
if (this.muted) {
|
||||
if (c && this.replace) {
|
||||
c = c.toString().replace(/./g, this.replace)
|
||||
} else {
|
||||
c = null
|
||||
}
|
||||
}
|
||||
if (c) {
|
||||
this.emit('data', c)
|
||||
}
|
||||
this.emit('end')
|
||||
}
|
||||
|
||||
destroy (...args) {
|
||||
return this.#proxy('destroy', ...args)
|
||||
}
|
||||
|
||||
destroySoon (...args) {
|
||||
return this.#proxy('destroySoon', ...args)
|
||||
}
|
||||
|
||||
close (...args) {
|
||||
return this.#proxy('close', ...args)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = MuteStream
|
52
package/node_modules/mute-stream/package.json
generated
vendored
Normal file
52
package/node_modules/mute-stream/package.json
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"name": "mute-stream",
|
||||
"version": "1.0.0",
|
||||
"main": "lib/index.js",
|
||||
"devDependencies": {
|
||||
"@npmcli/eslint-config": "^4.0.0",
|
||||
"@npmcli/template-oss": "4.11.0",
|
||||
"tap": "^16.3.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "tap",
|
||||
"lint": "eslint \"**/*.js\"",
|
||||
"postlint": "template-oss-check",
|
||||
"template-oss-apply": "template-oss-apply --force",
|
||||
"lintfix": "npm run lint -- --fix",
|
||||
"snap": "tap",
|
||||
"posttest": "npm run lint"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/npm/mute-stream.git"
|
||||
},
|
||||
"keywords": [
|
||||
"mute",
|
||||
"stream",
|
||||
"pipe"
|
||||
],
|
||||
"author": "GitHub Inc.",
|
||||
"license": "ISC",
|
||||
"description": "Bytes go in, but they don't come out (when muted).",
|
||||
"files": [
|
||||
"bin/",
|
||||
"lib/"
|
||||
],
|
||||
"tap": {
|
||||
"statements": 70,
|
||||
"branches": 60,
|
||||
"functions": 81,
|
||||
"lines": 70,
|
||||
"nyc-arg": [
|
||||
"--exclude",
|
||||
"tap-snapshots/**"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
||||
},
|
||||
"templateOSS": {
|
||||
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
|
||||
"version": "4.11.0"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user