You've already forked codtracker-js
format: prettify entire project
This commit is contained in:
8
node_modules/raw-body/index.d.ts
generated
vendored
8
node_modules/raw-body/index.d.ts
generated
vendored
@ -62,7 +62,9 @@ declare function getRawBody(
|
||||
|
||||
declare function getRawBody(
|
||||
stream: NodeJS.ReadableStream,
|
||||
options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding,
|
||||
options:
|
||||
| (getRawBody.Options & { encoding: getRawBody.Encoding })
|
||||
| getRawBody.Encoding,
|
||||
callback: (err: getRawBody.RawBodyError, body: string) => void
|
||||
): void;
|
||||
|
||||
@ -74,7 +76,9 @@ declare function getRawBody(
|
||||
|
||||
declare function getRawBody(
|
||||
stream: NodeJS.ReadableStream,
|
||||
options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding
|
||||
options:
|
||||
| (getRawBody.Options & { encoding: getRawBody.Encoding })
|
||||
| getRawBody.Encoding
|
||||
): Promise<string>;
|
||||
|
||||
declare function getRawBody(
|
||||
|
288
node_modules/raw-body/index.js
generated
vendored
288
node_modules/raw-body/index.js
generated
vendored
@ -5,32 +5,32 @@
|
||||
* MIT Licensed
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
* @private
|
||||
*/
|
||||
|
||||
var asyncHooks = tryRequireAsyncHooks()
|
||||
var bytes = require('bytes')
|
||||
var createError = require('http-errors')
|
||||
var iconv = require('iconv-lite')
|
||||
var unpipe = require('unpipe')
|
||||
var asyncHooks = tryRequireAsyncHooks();
|
||||
var bytes = require('bytes');
|
||||
var createError = require('http-errors');
|
||||
var iconv = require('iconv-lite');
|
||||
var unpipe = require('unpipe');
|
||||
|
||||
/**
|
||||
* Module exports.
|
||||
* @public
|
||||
*/
|
||||
|
||||
module.exports = getRawBody
|
||||
module.exports = getRawBody;
|
||||
|
||||
/**
|
||||
* Module variables.
|
||||
* @private
|
||||
*/
|
||||
|
||||
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /
|
||||
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
|
||||
|
||||
/**
|
||||
* Get the decoder for a given encoding.
|
||||
@ -39,20 +39,20 @@ var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /
|
||||
* @private
|
||||
*/
|
||||
|
||||
function getDecoder (encoding) {
|
||||
if (!encoding) return null
|
||||
function getDecoder(encoding) {
|
||||
if (!encoding) return null;
|
||||
|
||||
try {
|
||||
return iconv.getDecoder(encoding)
|
||||
return iconv.getDecoder(encoding);
|
||||
} catch (e) {
|
||||
// error getting decoder
|
||||
if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e
|
||||
if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e;
|
||||
|
||||
// the encoding was not found
|
||||
throw createError(415, 'specified encoding unsupported', {
|
||||
encoding: encoding,
|
||||
type: 'encoding.unsupported'
|
||||
})
|
||||
type: 'encoding.unsupported',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,63 +65,66 @@ function getDecoder (encoding) {
|
||||
* @public
|
||||
*/
|
||||
|
||||
function getRawBody (stream, options, callback) {
|
||||
var done = callback
|
||||
var opts = options || {}
|
||||
function getRawBody(stream, options, callback) {
|
||||
var done = callback;
|
||||
var opts = options || {};
|
||||
|
||||
// light validation
|
||||
if (stream === undefined) {
|
||||
throw new TypeError('argument stream is required')
|
||||
} else if (typeof stream !== 'object' || stream === null || typeof stream.on !== 'function') {
|
||||
throw new TypeError('argument stream must be a stream')
|
||||
throw new TypeError('argument stream is required');
|
||||
} else if (
|
||||
typeof stream !== 'object' ||
|
||||
stream === null ||
|
||||
typeof stream.on !== 'function'
|
||||
) {
|
||||
throw new TypeError('argument stream must be a stream');
|
||||
}
|
||||
|
||||
if (options === true || typeof options === 'string') {
|
||||
// short cut for encoding
|
||||
opts = {
|
||||
encoding: options
|
||||
}
|
||||
encoding: options,
|
||||
};
|
||||
}
|
||||
|
||||
if (typeof options === 'function') {
|
||||
done = options
|
||||
opts = {}
|
||||
done = options;
|
||||
opts = {};
|
||||
}
|
||||
|
||||
// validate callback is a function, if provided
|
||||
if (done !== undefined && typeof done !== 'function') {
|
||||
throw new TypeError('argument callback must be a function')
|
||||
throw new TypeError('argument callback must be a function');
|
||||
}
|
||||
|
||||
// require the callback without promises
|
||||
if (!done && !global.Promise) {
|
||||
throw new TypeError('argument callback is required')
|
||||
throw new TypeError('argument callback is required');
|
||||
}
|
||||
|
||||
// get encoding
|
||||
var encoding = opts.encoding !== true
|
||||
? opts.encoding
|
||||
: 'utf-8'
|
||||
var encoding = opts.encoding !== true ? opts.encoding : 'utf-8';
|
||||
|
||||
// convert the limit to an integer
|
||||
var limit = bytes.parse(opts.limit)
|
||||
var limit = bytes.parse(opts.limit);
|
||||
|
||||
// convert the expected length to an integer
|
||||
var length = opts.length != null && !isNaN(opts.length)
|
||||
? parseInt(opts.length, 10)
|
||||
: null
|
||||
var length =
|
||||
opts.length != null && !isNaN(opts.length) ?
|
||||
parseInt(opts.length, 10)
|
||||
: null;
|
||||
|
||||
if (done) {
|
||||
// classic callback style
|
||||
return readStream(stream, encoding, length, limit, wrap(done))
|
||||
return readStream(stream, encoding, length, limit, wrap(done));
|
||||
}
|
||||
|
||||
return new Promise(function executor (resolve, reject) {
|
||||
readStream(stream, encoding, length, limit, function onRead (err, buf) {
|
||||
if (err) return reject(err)
|
||||
resolve(buf)
|
||||
})
|
||||
})
|
||||
return new Promise(function executor(resolve, reject) {
|
||||
readStream(stream, encoding, length, limit, function onRead(err, buf) {
|
||||
if (err) return reject(err);
|
||||
resolve(buf);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -131,13 +134,13 @@ function getRawBody (stream, options, callback) {
|
||||
* @private
|
||||
*/
|
||||
|
||||
function halt (stream) {
|
||||
function halt(stream) {
|
||||
// unpipe everything from the stream
|
||||
unpipe(stream)
|
||||
unpipe(stream);
|
||||
|
||||
// pause stream
|
||||
if (typeof stream.pause === 'function') {
|
||||
stream.pause()
|
||||
stream.pause();
|
||||
}
|
||||
}
|
||||
|
||||
@ -152,20 +155,22 @@ function halt (stream) {
|
||||
* @public
|
||||
*/
|
||||
|
||||
function readStream (stream, encoding, length, limit, callback) {
|
||||
var complete = false
|
||||
var sync = true
|
||||
function readStream(stream, encoding, length, limit, callback) {
|
||||
var complete = false;
|
||||
var sync = true;
|
||||
|
||||
// check the length and limit options.
|
||||
// note: we intentionally leave the stream paused,
|
||||
// so users should handle the stream themselves.
|
||||
if (limit !== null && length !== null && length > limit) {
|
||||
return done(createError(413, 'request entity too large', {
|
||||
expected: length,
|
||||
length: length,
|
||||
limit: limit,
|
||||
type: 'entity.too.large'
|
||||
}))
|
||||
return done(
|
||||
createError(413, 'request entity too large', {
|
||||
expected: length,
|
||||
length: length,
|
||||
limit: limit,
|
||||
type: 'entity.too.large',
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
// streams1: assert request encoding is buffer.
|
||||
@ -173,129 +178,136 @@ function readStream (stream, encoding, length, limit, callback) {
|
||||
// stream._decoder: streams1
|
||||
// state.encoding: streams2
|
||||
// state.decoder: streams2, specifically < 0.10.6
|
||||
var state = stream._readableState
|
||||
var state = stream._readableState;
|
||||
if (stream._decoder || (state && (state.encoding || state.decoder))) {
|
||||
// developer error
|
||||
return done(createError(500, 'stream encoding should not be set', {
|
||||
type: 'stream.encoding.set'
|
||||
}))
|
||||
return done(
|
||||
createError(500, 'stream encoding should not be set', {
|
||||
type: 'stream.encoding.set',
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
if (typeof stream.readable !== 'undefined' && !stream.readable) {
|
||||
return done(createError(500, 'stream is not readable', {
|
||||
type: 'stream.not.readable'
|
||||
}))
|
||||
return done(
|
||||
createError(500, 'stream is not readable', {
|
||||
type: 'stream.not.readable',
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
var received = 0
|
||||
var decoder
|
||||
var received = 0;
|
||||
var decoder;
|
||||
|
||||
try {
|
||||
decoder = getDecoder(encoding)
|
||||
decoder = getDecoder(encoding);
|
||||
} catch (err) {
|
||||
return done(err)
|
||||
return done(err);
|
||||
}
|
||||
|
||||
var buffer = decoder
|
||||
? ''
|
||||
: []
|
||||
var buffer = decoder ? '' : [];
|
||||
|
||||
// attach listeners
|
||||
stream.on('aborted', onAborted)
|
||||
stream.on('close', cleanup)
|
||||
stream.on('data', onData)
|
||||
stream.on('end', onEnd)
|
||||
stream.on('error', onEnd)
|
||||
stream.on('aborted', onAborted);
|
||||
stream.on('close', cleanup);
|
||||
stream.on('data', onData);
|
||||
stream.on('end', onEnd);
|
||||
stream.on('error', onEnd);
|
||||
|
||||
// mark sync section complete
|
||||
sync = false
|
||||
sync = false;
|
||||
|
||||
function done () {
|
||||
var args = new Array(arguments.length)
|
||||
function done() {
|
||||
var args = new Array(arguments.length);
|
||||
|
||||
// copy arguments
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
args[i] = arguments[i]
|
||||
args[i] = arguments[i];
|
||||
}
|
||||
|
||||
// mark complete
|
||||
complete = true
|
||||
complete = true;
|
||||
|
||||
if (sync) {
|
||||
process.nextTick(invokeCallback)
|
||||
process.nextTick(invokeCallback);
|
||||
} else {
|
||||
invokeCallback()
|
||||
invokeCallback();
|
||||
}
|
||||
|
||||
function invokeCallback () {
|
||||
cleanup()
|
||||
function invokeCallback() {
|
||||
cleanup();
|
||||
|
||||
if (args[0]) {
|
||||
// halt the stream on error
|
||||
halt(stream)
|
||||
halt(stream);
|
||||
}
|
||||
|
||||
callback.apply(null, args)
|
||||
callback.apply(null, args);
|
||||
}
|
||||
}
|
||||
|
||||
function onAborted () {
|
||||
if (complete) return
|
||||
function onAborted() {
|
||||
if (complete) return;
|
||||
|
||||
done(createError(400, 'request aborted', {
|
||||
code: 'ECONNABORTED',
|
||||
expected: length,
|
||||
length: length,
|
||||
received: received,
|
||||
type: 'request.aborted'
|
||||
}))
|
||||
}
|
||||
|
||||
function onData (chunk) {
|
||||
if (complete) return
|
||||
|
||||
received += chunk.length
|
||||
|
||||
if (limit !== null && received > limit) {
|
||||
done(createError(413, 'request entity too large', {
|
||||
limit: limit,
|
||||
received: received,
|
||||
type: 'entity.too.large'
|
||||
}))
|
||||
} else if (decoder) {
|
||||
buffer += decoder.write(chunk)
|
||||
} else {
|
||||
buffer.push(chunk)
|
||||
}
|
||||
}
|
||||
|
||||
function onEnd (err) {
|
||||
if (complete) return
|
||||
if (err) return done(err)
|
||||
|
||||
if (length !== null && received !== length) {
|
||||
done(createError(400, 'request size did not match content length', {
|
||||
done(
|
||||
createError(400, 'request aborted', {
|
||||
code: 'ECONNABORTED',
|
||||
expected: length,
|
||||
length: length,
|
||||
received: received,
|
||||
type: 'request.size.invalid'
|
||||
}))
|
||||
type: 'request.aborted',
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function onData(chunk) {
|
||||
if (complete) return;
|
||||
|
||||
received += chunk.length;
|
||||
|
||||
if (limit !== null && received > limit) {
|
||||
done(
|
||||
createError(413, 'request entity too large', {
|
||||
limit: limit,
|
||||
received: received,
|
||||
type: 'entity.too.large',
|
||||
})
|
||||
);
|
||||
} else if (decoder) {
|
||||
buffer += decoder.write(chunk);
|
||||
} else {
|
||||
var string = decoder
|
||||
? buffer + (decoder.end() || '')
|
||||
: Buffer.concat(buffer)
|
||||
done(null, string)
|
||||
buffer.push(chunk);
|
||||
}
|
||||
}
|
||||
|
||||
function cleanup () {
|
||||
buffer = null
|
||||
function onEnd(err) {
|
||||
if (complete) return;
|
||||
if (err) return done(err);
|
||||
|
||||
stream.removeListener('aborted', onAborted)
|
||||
stream.removeListener('data', onData)
|
||||
stream.removeListener('end', onEnd)
|
||||
stream.removeListener('error', onEnd)
|
||||
stream.removeListener('close', cleanup)
|
||||
if (length !== null && received !== length) {
|
||||
done(
|
||||
createError(400, 'request size did not match content length', {
|
||||
expected: length,
|
||||
length: length,
|
||||
received: received,
|
||||
type: 'request.size.invalid',
|
||||
})
|
||||
);
|
||||
} else {
|
||||
var string =
|
||||
decoder ? buffer + (decoder.end() || '') : Buffer.concat(buffer);
|
||||
done(null, string);
|
||||
}
|
||||
}
|
||||
|
||||
function cleanup() {
|
||||
buffer = null;
|
||||
|
||||
stream.removeListener('aborted', onAborted);
|
||||
stream.removeListener('data', onData);
|
||||
stream.removeListener('end', onEnd);
|
||||
stream.removeListener('error', onEnd);
|
||||
stream.removeListener('close', cleanup);
|
||||
}
|
||||
}
|
||||
|
||||
@ -304,11 +316,11 @@ function readStream (stream, encoding, length, limit, callback) {
|
||||
* @private
|
||||
*/
|
||||
|
||||
function tryRequireAsyncHooks () {
|
||||
function tryRequireAsyncHooks() {
|
||||
try {
|
||||
return require('async_hooks')
|
||||
return require('async_hooks');
|
||||
} catch (e) {
|
||||
return {}
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
@ -318,19 +330,19 @@ function tryRequireAsyncHooks () {
|
||||
* @private
|
||||
*/
|
||||
|
||||
function wrap (fn) {
|
||||
var res
|
||||
function wrap(fn) {
|
||||
var res;
|
||||
|
||||
// create anonymous resource
|
||||
if (asyncHooks.AsyncResource) {
|
||||
res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn')
|
||||
res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn');
|
||||
}
|
||||
|
||||
// incompatible node.js
|
||||
if (!res || !res.runInAsyncScope) {
|
||||
return fn
|
||||
return fn;
|
||||
}
|
||||
|
||||
// return bound function
|
||||
return res.runInAsyncScope.bind(res, fn, null)
|
||||
return res.runInAsyncScope.bind(res, fn, null);
|
||||
}
|
||||
|
Reference in New Issue
Block a user