1 line
61 KiB
JSON
1 line
61 KiB
JSON
{"ast":null,"code":"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n\n return descriptors;\n};\n\nvar formatRegExp = /%[sdj%]/g;\n\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n}; // Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\n\n\nexports.deprecate = function (fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n } // Allow for deprecating things in the process of starting up.\n\n\n if (typeof process === 'undefined') {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnviron;\n\nexports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n};\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n/* legacy: obj, showHidden, depth, colors*/\n\n\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\nexports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n}; // Don't use 'blue' not visible on cmd.exe\n\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str + '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n} // NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n} // log is just a thin wrapper to console.log that prepends a timestamp\n\n\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\nexports.inherits = require('inherits');\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function') throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n};\n\nexports.promisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n } // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n\n\n function callbackified() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n\n var self = this;\n\n var cb = function () {\n return maybeCb.apply(self, arguments);\n }; // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n\n\n original.apply(this, args).then(function (ret) {\n process.nextTick(cb, null, ret);\n }, function (rej) {\n process.nextTick(callbackifyOnRejected, rej, cb);\n });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nexports.callbackify = callbackify;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/util/util.js"],"names":["getOwnPropertyDescriptors","Object","obj","keys","descriptors","i","length","getOwnPropertyDescriptor","formatRegExp","exports","format","f","isString","objects","arguments","push","inspect","join","args","len","str","String","replace","x","Number","JSON","stringify","_","isNull","isObject","deprecate","fn","msg","process","noDeprecation","apply","warned","deprecated","throwDeprecation","Error","traceDeprecation","console","trace","error","debugs","debugEnviron","debuglog","set","isUndefined","env","NODE_DEBUG","toUpperCase","RegExp","test","pid","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","array","hash","forEach","val","idx","value","recurseTimes","isFunction","constructor","prototype","ret","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","indexOf","formatError","name","isRegExp","toString","call","isDate","Date","base","braces","isArray","n","toUTCString","output","formatArray","map","key","formatProperty","pop","reduceToSingleString","simple","isNumber","l","hasOwnProperty","match","desc","get","split","line","substr","numLinesEst","reduce","prev","cur","ar","Array","arg","isNullOrUndefined","isSymbol","re","objectToString","d","e","isPrimitive","isBuffer","require","o","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","log","inherits","origin","add","prop","kCustomPromisifiedSymbol","Symbol","undefined","promisify","original","TypeError","defineProperty","enumerable","writable","configurable","promiseResolve","promiseReject","promise","Promise","resolve","reject","err","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackifyOnRejected","reason","cb","newReason","callbackify","callbackified","maybeCb","self","then","nextTick","rej"],"mappings":"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","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n"]},"metadata":{},"sourceType":"script"} |