.
This commit is contained in:
		
							
								
								
									
										24
									
								
								qwen/nodejs/node_modules/concat-stream/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								qwen/nodejs/node_modules/concat-stream/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
The MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2013 Max Ogden
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										144
									
								
								qwen/nodejs/node_modules/concat-stream/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								qwen/nodejs/node_modules/concat-stream/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
			
		||||
var Writable = require('readable-stream').Writable
 | 
			
		||||
var inherits = require('inherits')
 | 
			
		||||
var bufferFrom = require('buffer-from')
 | 
			
		||||
 | 
			
		||||
if (typeof Uint8Array === 'undefined') {
 | 
			
		||||
  var U8 = require('typedarray').Uint8Array
 | 
			
		||||
} else {
 | 
			
		||||
  var U8 = Uint8Array
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function ConcatStream(opts, cb) {
 | 
			
		||||
  if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb)
 | 
			
		||||
 | 
			
		||||
  if (typeof opts === 'function') {
 | 
			
		||||
    cb = opts
 | 
			
		||||
    opts = {}
 | 
			
		||||
  }
 | 
			
		||||
  if (!opts) opts = {}
 | 
			
		||||
 | 
			
		||||
  var encoding = opts.encoding
 | 
			
		||||
  var shouldInferEncoding = false
 | 
			
		||||
 | 
			
		||||
  if (!encoding) {
 | 
			
		||||
    shouldInferEncoding = true
 | 
			
		||||
  } else {
 | 
			
		||||
    encoding =  String(encoding).toLowerCase()
 | 
			
		||||
    if (encoding === 'u8' || encoding === 'uint8') {
 | 
			
		||||
      encoding = 'uint8array'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Writable.call(this, { objectMode: true })
 | 
			
		||||
 | 
			
		||||
  this.encoding = encoding
 | 
			
		||||
  this.shouldInferEncoding = shouldInferEncoding
 | 
			
		||||
 | 
			
		||||
  if (cb) this.on('finish', function () { cb(this.getBody()) })
 | 
			
		||||
  this.body = []
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports = ConcatStream
 | 
			
		||||
inherits(ConcatStream, Writable)
 | 
			
		||||
 | 
			
		||||
ConcatStream.prototype._write = function(chunk, enc, next) {
 | 
			
		||||
  this.body.push(chunk)
 | 
			
		||||
  next()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ConcatStream.prototype.inferEncoding = function (buff) {
 | 
			
		||||
  var firstBuffer = buff === undefined ? this.body[0] : buff;
 | 
			
		||||
  if (Buffer.isBuffer(firstBuffer)) return 'buffer'
 | 
			
		||||
  if (typeof Uint8Array !== 'undefined' && firstBuffer instanceof Uint8Array) return 'uint8array'
 | 
			
		||||
  if (Array.isArray(firstBuffer)) return 'array'
 | 
			
		||||
  if (typeof firstBuffer === 'string') return 'string'
 | 
			
		||||
  if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return 'object'
 | 
			
		||||
  return 'buffer'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ConcatStream.prototype.getBody = function () {
 | 
			
		||||
  if (!this.encoding && this.body.length === 0) return []
 | 
			
		||||
  if (this.shouldInferEncoding) this.encoding = this.inferEncoding()
 | 
			
		||||
  if (this.encoding === 'array') return arrayConcat(this.body)
 | 
			
		||||
  if (this.encoding === 'string') return stringConcat(this.body)
 | 
			
		||||
  if (this.encoding === 'buffer') return bufferConcat(this.body)
 | 
			
		||||
  if (this.encoding === 'uint8array') return u8Concat(this.body)
 | 
			
		||||
  return this.body
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var isArray = Array.isArray || function (arr) {
 | 
			
		||||
  return Object.prototype.toString.call(arr) == '[object Array]'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function isArrayish (arr) {
 | 
			
		||||
  return /Array\]$/.test(Object.prototype.toString.call(arr))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function isBufferish (p) {
 | 
			
		||||
  return typeof p === 'string' || isArrayish(p) || (p && typeof p.subarray === 'function')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function stringConcat (parts) {
 | 
			
		||||
  var strings = []
 | 
			
		||||
  var needsToString = false
 | 
			
		||||
  for (var i = 0; i < parts.length; i++) {
 | 
			
		||||
    var p = parts[i]
 | 
			
		||||
    if (typeof p === 'string') {
 | 
			
		||||
      strings.push(p)
 | 
			
		||||
    } else if (Buffer.isBuffer(p)) {
 | 
			
		||||
      strings.push(p)
 | 
			
		||||
    } else if (isBufferish(p)) {
 | 
			
		||||
      strings.push(bufferFrom(p))
 | 
			
		||||
    } else {
 | 
			
		||||
      strings.push(bufferFrom(String(p)))
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (Buffer.isBuffer(parts[0])) {
 | 
			
		||||
    strings = Buffer.concat(strings)
 | 
			
		||||
    strings = strings.toString('utf8')
 | 
			
		||||
  } else {
 | 
			
		||||
    strings = strings.join('')
 | 
			
		||||
  }
 | 
			
		||||
  return strings
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function bufferConcat (parts) {
 | 
			
		||||
  var bufs = []
 | 
			
		||||
  for (var i = 0; i < parts.length; i++) {
 | 
			
		||||
    var p = parts[i]
 | 
			
		||||
    if (Buffer.isBuffer(p)) {
 | 
			
		||||
      bufs.push(p)
 | 
			
		||||
    } else if (isBufferish(p)) {
 | 
			
		||||
      bufs.push(bufferFrom(p))
 | 
			
		||||
    } else {
 | 
			
		||||
      bufs.push(bufferFrom(String(p)))
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return Buffer.concat(bufs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function arrayConcat (parts) {
 | 
			
		||||
  var res = []
 | 
			
		||||
  for (var i = 0; i < parts.length; i++) {
 | 
			
		||||
    res.push.apply(res, parts[i])
 | 
			
		||||
  }
 | 
			
		||||
  return res
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function u8Concat (parts) {
 | 
			
		||||
  var len = 0
 | 
			
		||||
  for (var i = 0; i < parts.length; i++) {
 | 
			
		||||
    if (typeof parts[i] === 'string') {
 | 
			
		||||
      parts[i] = bufferFrom(parts[i])
 | 
			
		||||
    }
 | 
			
		||||
    len += parts[i].length
 | 
			
		||||
  }
 | 
			
		||||
  var u8 = new U8(len)
 | 
			
		||||
  for (var i = 0, offset = 0; i < parts.length; i++) {
 | 
			
		||||
    var part = parts[i]
 | 
			
		||||
    for (var j = 0; j < part.length; j++) {
 | 
			
		||||
      u8[offset++] = part[j]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  return u8
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								qwen/nodejs/node_modules/concat-stream/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								qwen/nodejs/node_modules/concat-stream/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "concat-stream",
 | 
			
		||||
  "version": "1.6.2",
 | 
			
		||||
  "description": "writable stream that concatenates strings or binary data and calls a callback with the result",
 | 
			
		||||
  "tags": [
 | 
			
		||||
    "stream",
 | 
			
		||||
    "simple",
 | 
			
		||||
    "util",
 | 
			
		||||
    "utility"
 | 
			
		||||
  ],
 | 
			
		||||
  "author": "Max Ogden <max@maxogden.com>",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "http://github.com/maxogden/concat-stream.git"
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "http://github.com/maxogden/concat-stream/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": [
 | 
			
		||||
    "node >= 0.8"
 | 
			
		||||
  ],
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "files": [
 | 
			
		||||
    "index.js"
 | 
			
		||||
  ],
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "tape test/*.js test/server/*.js"
 | 
			
		||||
  },
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "buffer-from": "^1.0.0",
 | 
			
		||||
    "inherits": "^2.0.3",
 | 
			
		||||
    "readable-stream": "^2.2.2",
 | 
			
		||||
    "typedarray": "^0.0.6"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "tape": "^4.6.3"
 | 
			
		||||
  },
 | 
			
		||||
  "testling": {
 | 
			
		||||
    "files": "test/*.js",
 | 
			
		||||
    "browsers": [
 | 
			
		||||
      "ie/8..latest",
 | 
			
		||||
      "firefox/17..latest",
 | 
			
		||||
      "firefox/nightly",
 | 
			
		||||
      "chrome/22..latest",
 | 
			
		||||
      "chrome/canary",
 | 
			
		||||
      "opera/12..latest",
 | 
			
		||||
      "opera/next",
 | 
			
		||||
      "safari/5.1..latest",
 | 
			
		||||
      "ipad/6.0..latest",
 | 
			
		||||
      "iphone/6.0..latest",
 | 
			
		||||
      "android-browser/4.2..latest"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										102
									
								
								qwen/nodejs/node_modules/concat-stream/readme.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								qwen/nodejs/node_modules/concat-stream/readme.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
# concat-stream
 | 
			
		||||
 | 
			
		||||
Writable stream that concatenates all the data from a stream and calls a callback with the result. Use this when you want to collect all the data from a stream into a single buffer.
 | 
			
		||||
 | 
			
		||||
[](https://travis-ci.org/maxogden/concat-stream)
 | 
			
		||||
 | 
			
		||||
[](https://nodei.co/npm/concat-stream/)
 | 
			
		||||
 | 
			
		||||
### description
 | 
			
		||||
 | 
			
		||||
Streams emit many buffers. If you want to collect all of the buffers, and when the stream ends concatenate all of the buffers together and receive a single buffer then this is the module for you.
 | 
			
		||||
 | 
			
		||||
Only use this if you know you can fit all of the output of your stream into a single Buffer (e.g. in RAM).
 | 
			
		||||
 | 
			
		||||
There are also `objectMode` streams that emit things other than Buffers, and you can concatenate these too. See below for details.
 | 
			
		||||
 | 
			
		||||
## Related
 | 
			
		||||
 | 
			
		||||
`concat-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
 | 
			
		||||
 | 
			
		||||
### examples
 | 
			
		||||
 | 
			
		||||
#### Buffers
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var fs = require('fs')
 | 
			
		||||
var concat = require('concat-stream')
 | 
			
		||||
 | 
			
		||||
var readStream = fs.createReadStream('cat.png')
 | 
			
		||||
var concatStream = concat(gotPicture)
 | 
			
		||||
 | 
			
		||||
readStream.on('error', handleError)
 | 
			
		||||
readStream.pipe(concatStream)
 | 
			
		||||
 | 
			
		||||
function gotPicture(imageBuffer) {
 | 
			
		||||
  // imageBuffer is all of `cat.png` as a node.js Buffer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleError(err) {
 | 
			
		||||
  // handle your error appropriately here, e.g.:
 | 
			
		||||
  console.error(err) // print the error to STDERR
 | 
			
		||||
  process.exit(1) // exit program with non-zero exit code
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Arrays
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var write = concat(function(data) {})
 | 
			
		||||
write.write([1,2,3])
 | 
			
		||||
write.write([4,5,6])
 | 
			
		||||
write.end()
 | 
			
		||||
// data will be [1,2,3,4,5,6] in the above callback
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Uint8Arrays
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var write = concat(function(data) {})
 | 
			
		||||
var a = new Uint8Array(3)
 | 
			
		||||
a[0] = 97; a[1] = 98; a[2] = 99
 | 
			
		||||
write.write(a)
 | 
			
		||||
write.write('!')
 | 
			
		||||
write.end(Buffer.from('!!1'))
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
See `test/` for more examples
 | 
			
		||||
 | 
			
		||||
# methods
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var concat = require('concat-stream')
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## var writable = concat(opts={}, cb)
 | 
			
		||||
 | 
			
		||||
Return a `writable` stream that will fire `cb(data)` with all of the data that
 | 
			
		||||
was written to the stream. Data can be written to `writable` as strings,
 | 
			
		||||
Buffers, arrays of byte integers, and Uint8Arrays. 
 | 
			
		||||
 | 
			
		||||
By default `concat-stream` will give you back the same data type as the type of the first buffer written to the stream. Use `opts.encoding` to set what format `data` should be returned as, e.g. if you if you don't want to rely on the built-in type checking or for some other reason.
 | 
			
		||||
 | 
			
		||||
* `string` - get a string
 | 
			
		||||
* `buffer` - get back a Buffer
 | 
			
		||||
* `array` - get an array of byte integers
 | 
			
		||||
* `uint8array`, `u8`, `uint8` - get back a Uint8Array
 | 
			
		||||
* `object`, get back an array of Objects
 | 
			
		||||
 | 
			
		||||
If you don't specify an encoding, and the types can't be inferred (e.g. you write things that aren't in the list above), it will try to convert concat them into a `Buffer`.
 | 
			
		||||
 | 
			
		||||
If nothing is written to `writable` then `data` will be an empty array `[]`.
 | 
			
		||||
 | 
			
		||||
# error handling
 | 
			
		||||
 | 
			
		||||
`concat-stream` does not handle errors for you, so you must handle errors on whatever streams you pipe into `concat-stream`. This is a general rule when programming with node.js streams: always handle errors on each and every stream. Since `concat-stream` is not itself a stream it does not emit errors.
 | 
			
		||||
 | 
			
		||||
We recommend using [`end-of-stream`](https://npmjs.org/end-of-stream) or [`pump`](https://npmjs.org/pump) for writing error tolerant stream code.
 | 
			
		||||
 | 
			
		||||
# license
 | 
			
		||||
 | 
			
		||||
MIT LICENSE
 | 
			
		||||
		Reference in New Issue
	
	Block a user