From bc9a3875621869f22db8fde7853c8548ebf2c1b9 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 22 Apr 2020 13:14:08 +0800 Subject: [PATCH 01/30] add koa support --- package.json | 2 +- src/instrumentation/koa.js | 106 + yarn.lock | 4500 ++++++++++++++++++++++++++++++++++++ 3 files changed, 4607 insertions(+), 1 deletion(-) create mode 100644 src/instrumentation/koa.js create mode 100644 yarn.lock diff --git a/package.json b/package.json index c11e651..3c120de 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@risingstack/opentracing-auto", + "name": "@guanghe/primary-opentracing-auto", "version": "1.5.2", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js new file mode 100644 index 0000000..2e81ace --- /dev/null +++ b/src/instrumentation/koa.js @@ -0,0 +1,106 @@ +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:express') +const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') +const shimmer = require('shimmer') +const METHODS = require('methods').concat('use', 'route', 'param', 'all') +const cls = require('../cls') + +const OPERATION_NAME = 'http_server' +const TAG_REQUEST_PATH = 'request_path' + +function patch (express, tracers) { + function applicationActionWrap (method) { + return function applicationActionWrapped (...args) { + if (!this._jaeger_trace_patched && !this._router) { + this._jaeger_trace_patched = true + this.use(middleware) + } + return method.call(this, ...args) + } + } + + function middleware (ctx, next) { + return cls.runAndReturn(() => { + const { req, res } = ctx + // start + const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` + const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) + const spans = parentSpanContexts.map((parentSpanContext, key) => + cls.startRootSpan(tracers[key], OPERATION_NAME, { + childOf: parentSpanContext, + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, + [Tags.HTTP_URL]: url, + [Tags.HTTP_METHOD]: req.method + } + })) + debug(`Operation started ${OPERATION_NAME}`, { + [Tags.HTTP_URL]: url, + [Tags.HTTP_METHOD]: req.method + }) + + if (req.connection.remoteAddress) { + spans.forEach((span) => span.log({ peerRemoteAddress: req.connection.remoteAddress })) + } + + // end + const originalEnd = res.end + + res.end = function (...args) { + res.end = originalEnd + const returned = res.end.call(this, ...args) + + if (req.route && req.route.path) { + spans.forEach((span) => span.setTag(TAG_REQUEST_PATH, req.route.path)) + } + + spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) + + if (res.statusCode >= 400) { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + + debug(`Operation error captured ${OPERATION_NAME}`, { + reason: 'Bad status code', + statusCode: res.statusCode + }) + } + + spans.forEach((span) => span.finish()) + + debug(`Operation finished ${OPERATION_NAME}`, { + [Tags.HTTP_STATUS_CODE]: res.statusCode + }) + + return returned + } + return next() + }) + } + + METHODS.forEach((method) => { + shimmer.wrap(express.application, method, applicationActionWrap) + debug(`Method patched ${method}`) + }) + + debug('Patched') +} + +function unpatch (express) { + METHODS.forEach((method) => { + shimmer.unwrap(express.application, method) + debug(`Method unpatched ${method}`) + }) + + debug('Unpatched') +} + +module.exports = { + name: 'koa', + module: 'koa', + supportedVersions: ['2.x'], + TAG_REQUEST_PATH, + OPERATION_NAME, + patch, + unpatch +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..85e6bb2 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4500 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.7.0": + version "1.7.2" + resolved "https://npm.yc345.tv/@sinonjs%2fcommons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" + integrity sha1-UF9Vx04CcrQ/bFLYGUa+1wWPwOI= + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^3.2.1": + version "3.2.2" + resolved "https://npm.yc345.tv/@sinonjs%2fformatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" + integrity sha1-dxxg36dep/LWjjuUx+iIp4eBNyw= + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" + +"@sinonjs/samsam@^3.1.0": + version "3.3.3" + resolved "https://npm.yc345.tv/@sinonjs%2fsamsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha1-Rmgu/Zlnslm4ETa58SD9VFhf60o= + dependencies: + "@sinonjs/commons" "^1.3.0" + array-from "^2.1.1" + lodash "^4.17.15" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://npm.yc345.tv/@sinonjs%2ftext-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU= + +accepts@~1.3.4: + version "1.3.7" + resolved "https://npm.yc345.tv/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://npm.yc345.tv/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.5.0: + version "5.7.4" + resolved "https://npm.yc345.tv/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha1-Po2KmUfQWZoXltECJddDL0pKz14= + +ajv-keywords@^3.0.0: + version "3.4.1" + resolved "https://npm.yc345.tv/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= + +ajv@^5.1.0, ajv@^5.2.0: + version "5.5.2" + resolved "https://npm.yc345.tv/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.0.1: + version "6.12.2" + resolved "https://npm.yc345.tv/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0= + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-color@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" + integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://npm.yc345.tv/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= + dependencies: + default-require-extensions "^1.0.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://npm.yc345.tv/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-from@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@0.1.11: + version "0.1.11" + resolved "https://npm.yc345.tv/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://npm.yc345.tv/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA= + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs= + +async-hook-jl@^1.7.6: + version "1.7.6" + resolved "https://npm.yc345.tv/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68" + integrity sha1-T9JcL4ZNuvJ5xhDXO/l7GyhZXmg= + dependencies: + stack-chain "^1.3.7" + +async@~0.9.0: + version "0.9.2" + resolved "https://npm.yc345.tv/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + integrity sha1-xXED96F/wDfwLXwuZLYC6iI/fWM= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.6.0: + version "1.9.1" + resolved "https://npm.yc345.tv/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-generator@^6.18.0: + version "6.26.1" + resolved "https://npm.yc345.tv/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA= + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://npm.yc345.tv/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.11.6, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://npm.yc345.tv/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://npm.yc345.tv/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bignumber.js@4.0.4: + version "4.0.4" + resolved "https://npm.yc345.tv/bignumber.js/-/bignumber.js-4.0.4.tgz#7c40f5abcd2d6623ab7b99682ee7db81b11889a4" + integrity sha1-fED1q80tZiOre5loLufbgbEYiaQ= + +bluebird@^3.4.6: + version "3.7.2" + resolved "https://npm.yc345.tv/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + +body-parser@1.18.2: + version "1.18.2" + resolved "https://npm.yc345.tv/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@0.4.x: + version "0.4.2" + resolved "https://npm.yc345.tv/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + integrity sha1-emNune1O/O+xnO9JR6PGffrukRs= + dependencies: + hoek "0.9.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://npm.yc345.tv/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://npm.yc345.tv/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + integrity sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI= + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://npm.yc345.tv/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://npm.yc345.tv/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= + +bson@~1.0.4: + version "1.0.9" + resolved "https://npm.yc345.tv/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" + integrity sha1-EjGfgyOxJUc5t8a++NPomuBaL1c= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://npm.yc345.tv/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + +buffer-writer@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" + integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg= + +bufrw@^1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" + integrity sha1-KNbP2vNDADdoNjEPXDHVfutAyPo= + dependencies: + ansi-color "^0.2.1" + error "^7.0.0" + hexer "^1.5.0" + xtend "^4.0.0" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +bunyan@^1.8.12: + version "1.8.12" + resolved "https://npm.yc345.tv/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" + integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +caching-transform@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE= + dependencies: + md5-hex "^1.2.0" + mkdirp "^0.5.1" + write-file-atomic "^1.1.4" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://npm.yc345.tv/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chai@4.1.2: + version "4.1.2" + resolved "https://npm.yc345.tv/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +"chai@>=1.9.2 <4.0.0": + version "3.5.0" + resolved "https://npm.yc345.tv/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0: + version "2.4.2" + resolved "https://npm.yc345.tv/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://npm.yc345.tv/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +check-error@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://npm.yc345.tv/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY= + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://npm.yc345.tv/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha1-sEM9C06chH7xiGik7xb9X8gnHEg= + +cliui@^3.2.0: + version "3.2.0" + resolved "https://npm.yc345.tv/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-regexp@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" + integrity sha1-BRgFzTMXM3XYIRj8CRhgbaOf1g8= + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +cls-hooked@4.2.2: + version "4.2.2" + resolved "https://npm.yc345.tv/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908" + integrity sha1-rS6aQJJoDNr/6y01UdoOIl6uGQg= + dependencies: + async-hook-jl "^1.7.6" + emitter-listener "^1.0.1" + semver "^5.4.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://npm.yc345.tv/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://npm.yc345.tv/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +comb@~1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/comb/-/comb-1.0.1.tgz#4856c957235d8ecd67d86535ada1852671b871b0" + integrity sha1-SFbJVyNdjs1n2GU1raGFJnG4cbA= + +combined-stream@^1.0.6, combined-stream@~1.0.5: + version "1.0.8" + resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8= + dependencies: + delayed-stream "0.0.5" + +commander@2.9.0: + version "2.9.0" + resolved "https://npm.yc345.tv/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.2.0, commander@~2.20.3: + version "2.20.3" + resolved "https://npm.yc345.tv/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://npm.yc345.tv/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.0: + version "1.6.2" + resolved "https://npm.yc345.tv/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://npm.yc345.tv/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-type@~1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= + +convert-source-map@^1.3.0: + version "1.7.0" + resolved "https://npm.yc345.tv/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://npm.yc345.tv/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://npm.yc345.tv/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +core-js@^2.4.0: + version "2.6.11" + resolved "https://npm.yc345.tv/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://npm.yc345.tv/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cross-spawn@^4: + version "4.0.2" + resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw= + dependencies: + boom "0.4.x" + +cryptiles@3.x.x: + version "3.1.4" + resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322" + integrity sha1-dppoyVYStW+q386/V6yGR5y+gyI= + dependencies: + boom "5.x.x" + +csv-generate@^1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/csv-generate/-/csv-generate-1.1.2.tgz#ec6b00edaed6e59ad9c20582f4c364e28b146240" + integrity sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA= + +csv-parse@^1.3.3: + version "1.3.3" + resolved "https://npm.yc345.tv/csv-parse/-/csv-parse-1.3.3.tgz#d1cfd8743c2f849a0abb2fd544db56695d19a490" + integrity sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA= + +csv-stringify@^1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/csv-stringify/-/csv-stringify-1.1.2.tgz#77a41526581bce3380f12b00d7c5bbac70c82b58" + integrity sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g= + dependencies: + lodash.get "~4.4.2" + +csv@^1.1.1: + version "1.2.1" + resolved "https://npm.yc345.tv/csv/-/csv-1.2.1.tgz#5231edfc1c7152512ec45781076a7a97ff525c0c" + integrity sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw= + dependencies: + csv-generate "^1.1.2" + csv-parse "^1.3.3" + csv-stringify "^1.1.2" + stream-transform "^0.2.2" + +ctype@0.5.3: + version "0.5.3" + resolved "https://npm.yc345.tv/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://npm.yc345.tv/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug-log@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@*: + version "4.1.1" + resolved "https://npm.yc345.tv/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@2.6.8: + version "2.6.8" + resolved "https://npm.yc345.tv/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw= + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://npm.yc345.tv/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://npm.yc345.tv/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.0.1, debug@^3.1.0: + version "3.2.6" + resolved "https://npm.yc345.tv/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://npm.yc345.tv/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= + dependencies: + type-detect "0.1.1" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha1-38lARACtHI/gI+faHfHBR8S0RN8= + dependencies: + type-detect "^4.0.0" + +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://npm.yc345.tv/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + dependencies: + object-keys "^1.0.12" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8= + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= + +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + integrity sha1-STXe39lIhkjgBrASlWbpOGcR6mM= + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-node@^2.0.3: + version "2.0.4" + resolved "https://npm.yc345.tv/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= + +diff@3.2.0: + version "3.2.0" + resolved "https://npm.yc345.tv/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k= + +diff@^3.1.0: + version "3.5.0" + resolved "https://npm.yc345.tv/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI= + +doctrine@1.5.0: + version "1.5.0" + resolved "https://npm.yc345.tv/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= + dependencies: + esutils "^2.0.2" + +double-ended-queue@^2.1.0-0: + version "2.1.0-0" + resolved "https://npm.yc345.tv/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" + integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= + +dtrace-provider@^0.8.1, dtrace-provider@~0.8: + version "0.8.8" + resolved "https://npm.yc345.tv/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha1-KZbVSQw34TR74mO0I+17KX+w2X4= + dependencies: + nan "^2.14.0" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://npm.yc345.tv/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +emitter-listener@^1.0.1: + version "1.1.2" + resolved "https://npm.yc345.tv/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" + integrity sha1-VrFA6PaZI3Wz18ssqxzHQy2WMug= + dependencies: + shimmer "^1.2.0" + +encodeurl@~1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://npm.yc345.tv/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + dependencies: + is-arrayish "^0.2.1" + +error@7.0.2: + version "7.0.2" + resolved "https://npm.yc345.tv/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://npm.yc345.tv/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha1-6rIaRom19oT8g9qEoOOQ3oLZSJQ= + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://npm.yc345.tv/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk= + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://npm.yc345.tv/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + integrity sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q= + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-regexp-component@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" + integrity sha1-nGO20LJf8qiMOtvRjFthrMO5+qI= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-airbnb-base@12.1.0: + version "12.1.0" + resolved "https://npm.yc345.tv/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" + integrity sha1-OGRB5UoSzNlXsKklZKS6/r10eUQ= + dependencies: + eslint-restricted-globals "^0.1.1" + +eslint-import-resolver-node@^0.3.1: + version "0.3.3" + resolved "https://npm.yc345.tv/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha1-26pStrKBa1C8ZxGvdUIt6AjphAQ= + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.1.1: + version "2.6.0" + resolved "https://npm.yc345.tv/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y= + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@2.8.0: + version "2.8.0" + resolved "https://npm.yc345.tv/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + integrity sha1-+htu8x/LPFAcCYWcG4bx/FuYaJQ= + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-promise@3.6.0: + version "3.6.0" + resolved "https://npm.yc345.tv/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" + integrity sha1-VLdljI9FSBPcKocK/4FS7ElpunU= + +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://npm.yc345.tv/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@4.9.0: + version "4.9.0" + resolved "https://npm.yc345.tv/eslint/-/eslint-4.9.0.tgz#76879d274068261b191fe0f2f56c74c2f4208e8b" + integrity sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos= + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.0.1" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.1" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.5.1: + version "3.5.4" + resolved "https://npm.yc345.tv/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha1-sPRHGHyKi+2US4FaZgvd9d610ac= + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://npm.yc345.tv/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +esquery@^1.0.0: + version "1.3.1" + resolved "https://npm.yc345.tv/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc= + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://npm.yc345.tv/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://npm.yc345.tv/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://npm.yc345.tv/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://npm.yc345.tv/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= + +etag@~1.8.1: + version "1.8.1" + resolved "https://npm.yc345.tv/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-stream@=3.3.4: + version "3.3.4" + resolved "https://npm.yc345.tv/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +ewma@^2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" + integrity sha1-mHbBxJGsVzPIZmABo5YaBMl88eg= + dependencies: + assert-plus "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://npm.yc345.tv/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://npm.yc345.tv/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://npm.yc345.tv/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + dependencies: + os-homedir "^1.0.1" + +express@4.16.2: + version "4.16.2" + resolved "https://npm.yc345.tv/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" + integrity sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w= + dependencies: + accepts "~1.3.4" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.2" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0, extend@~3.0.1: + version "3.0.2" + resolved "https://npm.yc345.tv/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://npm.yc345.tv/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha1-BFURz9jRM/OEZnPRBHwVTiFK09U= + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://npm.yc345.tv/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" + integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk= + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ= + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://npm.yc345.tv/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +figures@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://npm.yc345.tv/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha1-6x53OrsFbc2N8r/favWbizqTZWU= + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://npm.yc345.tv/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://npm.yc345.tv/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + integrity sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI= + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://npm.yc345.tv/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + integrity sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU= + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://npm.yc345.tv/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha1-LC73dSXMKSkAff/6HdMUqpyd7m8= + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.3, foreground-child@^1.5.6: + version "1.5.6" + resolved "https://npm.yc345.tv/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~0.1.0: + version "0.1.4" + resolved "https://npm.yc345.tv/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI= + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +form-data@~2.3.1: + version "2.3.3" + resolved "https://npm.yc345.tv/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formatio@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" + integrity sha1-87IWfZBoxGmKjVH092CjmlTYGOs= + dependencies: + samsam "1.x" + +formidable@^1.1.1: + version "1.2.2" + resolved "https://npm.yc345.tv/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" + integrity sha1-v2muopcpgmdfAIZTQrmCmG9rjdk= + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://npm.yc345.tv/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from@~0: + version "0.1.7" + resolved "https://npm.yc345.tv/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +generic-pool@2.4.3: + version "2.4.3" + resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" + integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= + +generic-pool@^2.4.2: + version "2.5.4" + resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.5.4.tgz#38c6188513e14030948ec6e5cf65523d9779299b" + integrity sha1-OMYYhRPhQDCUjsblz2VSPZd5KZs= + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://npm.yc345.tv/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://npm.yc345.tv/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://npm.yc345.tv/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://npm.yc345.tv/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.6, glob@^7.1.2, glob@^7.1.3: + version "7.1.6" + resolved "https://npm.yc345.tv/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://npm.yc345.tv/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.17.0, globals@^9.18.0: + version "9.18.0" + resolved "https://npm.yc345.tv/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo= + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.2.3" + resolved "https://npm.yc345.tv/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://npm.yc345.tv/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +growl@1.9.2: + version "1.9.2" + resolved "https://npm.yc345.tv/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8= + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://npm.yc345.tv/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ= + +handlebars@^4.0.3: + version "4.7.6" + resolved "https://npm.yc345.tv/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha1-1MBcG6+Q6ZRfd6pop6IZqkp9904= + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://npm.yc345.tv/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + dependencies: + function-bind "^1.1.1" + +hawk@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d" + integrity sha1-uQuxaYByhUEdp//LjdJZhQLTtS0= + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://npm.yc345.tv/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + integrity sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg= + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +hexer@^1.5.0: + version "1.5.0" + resolved "https://npm.yc345.tv/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" + integrity sha1-uGzoCFmOip0YksVx887dhvyfBlM= + dependencies: + ansi-color "^0.2.1" + minimist "^1.1.0" + process "^0.10.0" + xtend "^4.0.0" + +hoek@0.9.x: + version "0.9.1" + resolved "https://npm.yc345.tv/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU= + +hoek@4.x.x: + version "4.2.1" + resolved "https://npm.yc345.tv/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + integrity sha1-ljRQKqEsRF3Vp8VzS1cruHOKrLs= + +homedir-polyfill@^1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://npm.yc345.tv/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://npm.yc345.tv/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://npm.yc345.tv/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.6.2: + version "1.6.2" + resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-signature@^1.2.0: + version "1.3.4" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.3.4.tgz#a65b41193110b222364e776fd1ac848655a0e2f0" + integrity sha1-pltBGTEQsiI2Tndv0ayEhlWg4vA= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.14.1" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY= + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + integrity sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs= + +iconv-lite@^0.4.17: + version "0.4.24" + resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^3.3.3: + version "3.3.10" + resolved "https://npm.yc345.tv/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://npm.yc345.tv/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://npm.yc345.tv/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +inherits@2.0.3: + version "2.0.3" + resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4: + version "1.3.5" + resolved "https://npm.yc345.tv/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://npm.yc345.tv/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha1-ndLyrXZdyrH/BEO0kUQqILoifck= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +interpret@^0.6.5: + version "0.6.6" + resolved "https://npm.yc345.tv/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= + +invariant@^2.2.2: + version "2.2.4" + resolved "https://npm.yc345.tv/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://npm.yc345.tv/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://npm.yc345.tv/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://npm.yc345.tv/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8= + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= + dependencies: + has "^1.0.3" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-supported-regexp-flag@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" + integrity sha1-Ie4WUY0sHdPt0+mg1X5QIHrDZMo= + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://npm.yc345.tv/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= + +isarray@0.0.1: + version "0.0.1" + resolved "https://npm.yc345.tv/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://npm.yc345.tv/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA= + +istanbul-lib-hook@^1.0.7: + version "1.2.2" + resolved "https://npm.yc345.tv/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y= + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.8.0: + version "1.10.2" + resolved "https://npm.yc345.tv/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha1-H1XtEKw8R/K93dUweTUSZ1TQqco= + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.5" + resolved "https://npm.yc345.tv/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww= + dependencies: + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.1: + version "1.2.6" + resolved "https://npm.yc345.tv/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8= + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.1: + version "1.5.1" + resolved "https://npm.yc345.tv/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho= + dependencies: + handlebars "^4.0.3" + +jaeger-client@3.5.3: + version "3.5.3" + resolved "https://npm.yc345.tv/jaeger-client/-/jaeger-client-3.5.3.tgz#30a3989642ee3e8ea06d10c2b9f9e046d424d8ed" + integrity sha1-MKOYlkLuPo6gbRDCufngRtQk2O0= + dependencies: + node-int64 "^0.4.0" + opentracing "^0.13.0" + thriftrw "^3.5.0" + xorshift "^0.2.0" + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.9.1: + version "3.13.1" + resolved "https://npm.yc345.tv/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= + +json-schema@0.2.3: + version "0.2.3" + resolved "https://npm.yc345.tv/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://npm.yc345.tv/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@3.3.2: + version "3.3.2" + resolved "https://npm.yc345.tv/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://npm.yc345.tv/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://npm.yc345.tv/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-extend@^4.0.2: + version "4.1.0" + resolved "https://npm.yc345.tv/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" + integrity sha1-cnikAn2IlgFkDuDODloAuZJGfaQ= + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://npm.yc345.tv/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.0: + version "6.0.3" + resolved "https://npm.yc345.tv/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= + +knex@0.13.0: + version "0.13.0" + resolved "https://npm.yc345.tv/knex/-/knex-0.13.0.tgz#08dd494f6bb64928934eec9dac34787a14ca5fa4" + integrity sha1-CN1JT2u2SSiTTuydrDR4ehTKX6Q= + dependencies: + babel-runtime "^6.11.6" + bluebird "^3.4.6" + chalk "^1.0.0" + commander "^2.2.0" + debug "^2.1.3" + generic-pool "^2.4.2" + inherits "~2.0.1" + interpret "^0.6.5" + liftoff "~2.2.0" + lodash "^4.6.0" + minimist "~1.1.0" + mkdirp "^0.5.0" + pg-connection-string "^0.1.3" + readable-stream "^1.1.12" + safe-buffer "^5.0.1" + tildify "~1.0.0" + uuid "^3.0.0" + v8flags "^2.0.2" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@~2.2.0: + version "2.2.5" + resolved "https://npm.yc345.tv/liftoff/-/liftoff-2.2.5.tgz#998c2876cff484b103e4423b93d356da44734c91" + integrity sha1-mYwods/0hLED5EI7k9NW2kRzTJE= + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + flagged-respawn "^0.3.2" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://npm.yc345.tv/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://npm.yc345.tv/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://npm.yc345.tv/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://npm.yc345.tv/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://npm.yc345.tv/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + integrity sha1-9HGh2khr5g9quVXRcRVSPdHSVdU= + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://npm.yc345.tv/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c= + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.get@^4.4.2, lodash.get@~4.4.2: + version "4.4.2" + resolved "https://npm.yc345.tv/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://npm.yc345.tv/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://npm.yc345.tv/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://npm.yc345.tv/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash@4.17.4: + version "4.17.4" + resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= + +lodash@^4.13.1, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.0, lodash@~4.17.2: + version "4.17.15" + resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lolex@^2.1.3: + version "2.7.5" + resolved "https://npm.yc345.tv/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + integrity sha1-ETAB1Wv8fgLVbjYpHMXEE9GqBzM= + +lolex@^5.0.1: + version "5.1.2" + resolved "https://npm.yc345.tv/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha1-lTaU0JjOfAe8XtbQ5CvGwMbVo2c= + dependencies: + "@sinonjs/commons" "^1.7.0" + +long@^2.4.0: + version "2.4.0" + resolved "https://npm.yc345.tv/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" + integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://npm.yc345.tv/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.5" + resolved "https://npm.yc345.tv/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + +math-random@^1.0.1: + version "1.0.4" + resolved "https://npm.yc345.tv/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw= + +md5-hex@^1.2.0: + version "1.3.0" + resolved "https://npm.yc345.tv/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + +memory-streams@^0.1.2: + version "0.1.3" + resolved "https://npm.yc345.tv/memory-streams/-/memory-streams-0.1.3.tgz#d9b0017b4b87f1d92f55f2745c9caacb1dc93ceb" + integrity sha1-2bABe0uH8dkvVfJ0XJyqyx3JPOs= + dependencies: + readable-stream "~1.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.0.2: + version "1.1.0" + resolved "https://npm.yc345.tv/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= + dependencies: + source-map "^0.6.1" + +methods@0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/methods/-/methods-0.1.0.tgz#335d429eefd21b7bacf2e9c922a8d2bd14a30e4f" + integrity sha1-M11Cnu/SG3us8unJIqjSvRSjDk8= + +methods@1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.3.11, micromatch@^2.3.7: + version "2.3.11" + resolved "https://npm.yc345.tv/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@1.43.0: + version "1.43.0" + resolved "https://npm.yc345.tv/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.26" + resolved "https://npm.yc345.tv/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha1-nJIfwJt+FJpl39wNpNIJlyALCgY= + dependencies: + mime-db "1.43.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://npm.yc345.tv/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY= + +mime@^1.4.1: + version "1.6.0" + resolved "https://npm.yc345.tv/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= + +mime@~1.2.11, mime@~1.2.9: + version "1.2.11" + resolved "https://npm.yc345.tv/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://npm.yc345.tv/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= + +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://npm.yc345.tv/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://npm.yc345.tv/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://npm.yc345.tv/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + +minimist@~1.1.0: + version "1.1.3" + resolved "https://npm.yc345.tv/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" + integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + dependencies: + minimist "^1.2.5" + +mocha@3.5.3: + version "3.5.3" + resolved "https://npm.yc345.tv/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + integrity sha1-HgSA/jbS2lhY0etqzDhBiybqog0= + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +module-details-from-path@^1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha1-EUyUlnPiqKNenTV4hSeqN7Z52is= + +moment@^2.10.6: + version "2.24.0" + resolved "https://npm.yc345.tv/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +mongodb-core@2.1.17: + version "2.1.17" + resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.17.tgz#a418b337a14a14990fb510b923dee6a813173df8" + integrity sha1-pBizN6FKFJkPtRC5I97mqBMXPfg= + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb-core@2.1.20: + version "2.1.20" + resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1" + integrity sha1-/s6N12tZ7n1/LTE7ZTIsFgSS2PE= + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb@^2.1.18: + version "2.2.36" + resolved "https://npm.yc345.tv/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5" + integrity sha1-HFc2gLKEn7D0esu6PcX6Io3pdfU= + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.20" + readable-stream "2.2.7" + +monk-middleware-cast-ids@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/monk-middleware-cast-ids/-/monk-middleware-cast-ids-0.2.1.tgz#40c40e5a6cb33ccedc289220943275ee8861c529" + integrity sha1-QMQOWmyzPM7cKJIglDJ17ohhxSk= + +monk-middleware-fields@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-fields/-/monk-middleware-fields-0.2.0.tgz#ff637af35f5948879ccb2be15a91360911bea6c1" + integrity sha1-/2N6819ZSIecyyvhWpE2CRG+psE= + +monk-middleware-handle-callback@^0.2.0: + version "0.2.2" + resolved "https://npm.yc345.tv/monk-middleware-handle-callback/-/monk-middleware-handle-callback-0.2.2.tgz#47de6cc1248726c72a2be0c81bc4e68310c32146" + integrity sha1-R95swSSHJscqK+DIG8TmgxDDIUY= + +monk-middleware-options@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/monk-middleware-options/-/monk-middleware-options-0.2.1.tgz#58dae1c518d46636ebdff506fadfc773bb442886" + integrity sha1-WNrhxRjUZjbr3/UG+t/Hc7tEKIY= + +monk-middleware-query@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-query/-/monk-middleware-query-0.2.0.tgz#a926c677d4a5620c62151b0a56d0c0c151675874" + integrity sha1-qSbGd9SlYgxiFRsKVtDAwVFnWHQ= + +monk-middleware-wait-for-connection@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-wait-for-connection/-/monk-middleware-wait-for-connection-0.2.0.tgz#312958d30e588b57d09754dd7c97b4843316835a" + integrity sha1-MSlY0w5Yi1fQl1TdfJe0hDMWg1o= + +monk@6.0.5: + version "6.0.5" + resolved "https://npm.yc345.tv/monk/-/monk-6.0.5.tgz#a69be84e70ba4aa771b9619f7f73de965a50610a" + integrity sha1-ppvoTnC6SqdxuWGff3PellpQYQo= + dependencies: + debug "*" + mongodb "^2.1.18" + monk-middleware-cast-ids "^0.2.1" + monk-middleware-fields "^0.2.0" + monk-middleware-handle-callback "^0.2.0" + monk-middleware-options "^0.2.1" + monk-middleware-query "^0.2.0" + monk-middleware-wait-for-connection "^0.2.0" + object-assign "^4.1.1" + +ms@2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://npm.yc345.tv/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mv@~2: + version "2.1.1" + resolved "https://npm.yc345.tv/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +mysql@2.15.0: + version "2.15.0" + resolved "https://npm.yc345.tv/mysql/-/mysql-2.15.0.tgz#ea16841156343e8f2e47fc8985ec41cdd9573b5c" + integrity sha1-6haEEVY0Po8uR/yJhexBzdlXO1w= + dependencies: + bignumber.js "4.0.4" + readable-stream "2.3.3" + safe-buffer "5.1.1" + sqlstring "2.3.0" + +nan@^2.14.0: + version "2.14.1" + resolved "https://npm.yc345.tv/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://npm.yc345.tv/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +ncp@~2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +negotiator@0.6.2, negotiator@^0.6.1: + version "0.6.2" + resolved "https://npm.yc345.tv/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://npm.yc345.tv/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= + +nise@^1.2.0: + version "1.5.3" + resolved "https://npm.yc345.tv/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" + integrity sha1-nSz+N9RPVzF3ZsbpQIo1nF06wfc= + dependencies: + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^5.0.1" + path-to-regexp "^1.7.0" + +nock@9.0.25: + version "9.0.25" + resolved "https://npm.yc345.tv/nock/-/nock-9.0.25.tgz#0eb26c8a1f602919eaa5b488cd99cfa34b259390" + integrity sha1-DrJsih9gKRnqpbSIzZnPo0slk5A= + dependencies: + chai ">=1.9.2 <4.0.0" + debug "^2.2.0" + deep-equal "^1.0.0" + json-stringify-safe "^5.0.1" + lodash "~4.17.2" + mkdirp "^0.5.0" + propagate "0.4.0" + qs "^6.0.2" + semver "^5.3.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://npm.yc345.tv/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://npm.yc345.tv/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://npm.yc345.tv/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-all@4.1.1: + version "4.1.1" + resolved "https://npm.yc345.tv/npm-run-all/-/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb" + integrity sha1-MJXPPzys9X/LZishCrEMYJr23bs= + dependencies: + ansi-styles "^3.2.0" + chalk "^2.1.0" + cross-spawn "^5.1.0" + memory-streams "^0.1.2" + minimatch "^3.0.4" + ps-tree "^1.1.0" + read-pkg "^2.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://npm.yc345.tv/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nyc@11.2.1: + version "11.2.1" + resolved "https://npm.yc345.tv/nyc/-/nyc-11.2.1.tgz#ad850afe9dbad7f4970728b4b2e47fed1c38721c" + integrity sha1-rYUK/p261/SXByi0suR/7Rw4chw= + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^1.0.0" + convert-source-map "^1.3.0" + debug-log "^1.0.1" + default-require-extensions "^1.0.0" + find-cache-dir "^0.1.1" + find-up "^2.1.0" + foreground-child "^1.5.3" + glob "^7.0.6" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.1" + md5-hex "^1.2.0" + merge-source-map "^1.0.2" + micromatch "^2.3.11" + mkdirp "^0.5.0" + resolve-from "^2.0.0" + rimraf "^2.5.4" + signal-exit "^3.0.1" + spawn-wrap "^1.3.8" + test-exclude "^4.1.1" + yargs "^8.0.1" + yargs-parser "^5.0.0" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4= + +oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= + +object-assign@4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://npm.yc345.tv/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= + +object-is@^1.0.1: + version "1.1.2" + resolved "https://npm.yc345.tv/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://npm.yc345.tv/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://npm.yc345.tv/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://npm.yc345.tv/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +opentracing@0.14.1: + version "0.14.1" + resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.14.1.tgz#40d278beea417660a35dd9d3ee76511ffa911dcd" + integrity sha1-QNJ4vupBdmCjXdnT7nZRH/qRHc0= + +opentracing@^0.13.0: + version "0.13.0" + resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.13.0.tgz#6a341442f09d7d866bc11ed03de1e3828e3d6aab" + integrity sha1-ajQUQvCdfYZrwR7QPeHjgo49aqs= + +optionator@^0.8.2: + version "0.8.3" + resolved "https://npm.yc345.tv/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I= + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://npm.yc345.tv/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +packet-reader@0.3.1: + version "0.3.1" + resolved "https://npm.yc345.tv/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" + integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc= + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://npm.yc345.tv/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://npm.yc345.tv/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.2: + version "1.3.3" + resolved "https://npm.yc345.tv/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.5, path-parse@^1.0.6: + version "1.0.6" + resolved "https://npm.yc345.tv/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo= + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://npm.yc345.tv/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pg-connection-string@0.1.3, pg-connection-string@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" + integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha1-lDvUY79bcbQXARX4D478mgwOt4w= + +pg-pool@1.*: + version "1.8.0" + resolved "https://npm.yc345.tv/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" + integrity sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc= + dependencies: + generic-pool "2.4.3" + object-assign "4.1.0" + +pg-types@1.*: + version "1.13.0" + resolved "https://npm.yc345.tv/pg-types/-/pg-types-1.13.0.tgz#75f490b8a8abf75f1386ef5ec4455ecf6b345c63" + integrity sha1-dfSQuKir918Thu9exEVez2s0XGM= + dependencies: + pg-int8 "1.0.1" + postgres-array "~1.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.0" + postgres-interval "^1.1.0" + +pg@6.4.0: + version "6.4.0" + resolved "https://npm.yc345.tv/pg/-/pg-6.4.0.tgz#cb76ba2e7c2eab89fc64bf7a9fe648ced72436dc" + integrity sha1-y3a6Lnwuq4n8ZL96n+ZIztckNtw= + dependencies: + buffer-writer "1.0.1" + packet-reader "0.3.1" + pg-connection-string "0.1.3" + pg-pool "1.*" + pg-types "1.*" + pgpass "1.x" + semver "4.3.2" + +pgpass@1.x: + version "1.0.2" + resolved "https://npm.yc345.tv/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +pidusage@^1.1.6: + version "1.2.0" + resolved "https://npm.yc345.tv/pidusage/-/pidusage-1.2.0.tgz#65ee96ace4e08a4cd3f9240996c85b367171ee92" + integrity sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://npm.yc345.tv/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://npm.yc345.tv/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://npm.yc345.tv/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c= + +postgres-array@~1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" + integrity sha1-xWH8OyZrIUUfxlVThPSYbXjsgPU= + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.0: + version "1.0.5" + resolved "https://npm.yc345.tv/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" + integrity sha1-cQsn3l8n1VD26AtdNPe6GJITwu4= + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://npm.yc345.tv/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha1-tGDILLFYdQd4iBmgaqD//bNURpU= + dependencies: + xtend "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + +process@^0.10.0: + version "0.10.1" + resolved "https://npm.yc345.tv/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" + integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= + +progress@^2.0.0: + version "2.0.3" + resolved "https://npm.yc345.tv/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= + +propagate@0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/propagate/-/propagate-0.4.0.tgz#f3fcca0a6fe06736a7ba572966069617c130b481" + integrity sha1-8/zKCm/gZzanulcpZgaWF8EwtIE= + +proxy-addr@~2.0.2: + version "2.0.6" + resolved "https://npm.yc345.tv/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +ps-tree@^1.1.0: + version "1.2.0" + resolved "https://npm.yc345.tv/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha1-XnQluJUIc2zdTyIk0Cj3uz9yLr0= + dependencies: + event-stream "=3.3.4" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.33: + version "1.8.0" + resolved "https://npm.yc345.tv/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= + +punycode@^1.4.1: + version "1.4.1" + resolved "https://npm.yc345.tv/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + +qs@6.5.1: + version "6.5.1" + resolved "https://npm.yc345.tv/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + integrity sha1-NJzfbu+J7EXBLX1es/wMhwNDptg= + +qs@^6.0.2, qs@^6.5.1: + version "6.9.3" + resolved "https://npm.yc345.tv/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" + integrity sha1-v63NKWwtVJ8d/6VgYZEyyXf1AI4= + +qs@~0.6.0: + version "0.6.6" + resolved "https://npm.yc345.tv/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + integrity sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc= + +qs@~6.5.1: + version "6.5.2" + resolved "https://npm.yc345.tv/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://npm.yc345.tv/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha1-t3bvxZN1mE42xTey9RofCv8Noe0= + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@~1.2.0: + version "1.2.1" + resolved "https://npm.yc345.tv/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= + +raw-body@2.3.2: + version "2.3.2" + resolved "https://npm.yc345.tv/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@2.2.7: + version "2.2.7" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" + integrity sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE= + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readable-stream@2.3.3: + version "2.3.3" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + integrity sha1-No8lEtefnUb9/HE0mueHi7weuVw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@^1.1.12: + version "1.1.14" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.2.9: + version "2.3.7" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@~1.0.2: + version "1.0.34" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://npm.yc345.tv/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redis-commands@^1.2.0: + version "1.5.0" + resolved "https://npm.yc345.tv/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" + integrity sha1-gNLiBpj+aI8icSf/nlFkp90X54U= + +redis-parser@^2.6.0: + version "2.6.0" + resolved "https://npm.yc345.tv/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" + integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs= + +redis@2.8.0: + version "2.8.0" + resolved "https://npm.yc345.tv/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" + integrity sha1-ICKI4/WMSfYHnZevehDhMDrhSwI= + dependencies: + double-ended-queue "^2.1.0-0" + redis-commands "^1.2.0" + redis-parser "^2.6.0" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://npm.yc345.tv/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://npm.yc345.tv/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha1-db3FiioUls7EihKDW8VMjVYjNt0= + dependencies: + is-equal-shallow "^0.1.3" + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://npm.yc345.tv/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://npm.yc345.tv/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://npm.yc345.tv/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= + dependencies: + lodash "^4.13.1" + +request-promise-native@1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@2.83.0: + version "2.83.0" + resolved "https://npm.yc345.tv/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + integrity sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y= + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@~2.34.0: + version "2.34.0" + resolved "https://npm.yc345.tv/request/-/request-2.34.0.tgz#b5d8b9526add4a2d4629f4d417124573996445ae" + integrity sha1-tdi5UmrdSi1GKfTUFxJFc5lkRa4= + dependencies: + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + qs "~0.6.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "~1.0.0" + http-signature "~0.10.0" + oauth-sign "~0.3.0" + tough-cookie ">=0.12.0" + tunnel-agent "~0.3.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-in-the-middle@2.1.2: + version "2.1.2" + resolved "https://npm.yc345.tv/require-in-the-middle/-/require-in-the-middle-2.1.2.tgz#bddb89316d45bcdb08e2c6186bd2e6e819a8eeae" + integrity sha1-vduJMW1FvNsI4sYYa9Lm6Bmo7q4= + dependencies: + module-details-from-path "^1.0.2" + resolve "^1.1.7" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +require_optional@~1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + integrity sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4= + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1: + version "1.16.1" + resolved "https://npm.yc345.tv/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c" + integrity sha1-SfrF2LrPH9U/IA+lEkeuc2F1gyw= + dependencies: + path-parse "^1.0.6" + +restify-errors@^5.0.0: + version "5.0.0" + resolved "https://npm.yc345.tv/restify-errors/-/restify-errors-5.0.0.tgz#668717e100683eec6ce0d515f89ff1dbec254a8d" + integrity sha1-ZocX4QBoPuxs4NUV+J/x2+wlSo0= + dependencies: + assert-plus "^1.0.0" + lodash "^4.2.1" + verror "^1.8.1" + optionalDependencies: + safe-json-stringify "^1.0.3" + +restify@6.2.3: + version "6.2.3" + resolved "https://npm.yc345.tv/restify/-/restify-6.2.3.tgz#6cfb4735979d6b2d22bf87f7bdfca7e93932b678" + integrity sha1-bPtHNZeday0iv4f3vfyn6Tkytng= + dependencies: + assert-plus "^1.0.0" + bunyan "^1.8.12" + clone-regexp "^1.0.0" + csv "^1.1.1" + escape-regexp-component "^1.0.2" + ewma "^2.0.1" + formidable "^1.1.1" + http-signature "^1.2.0" + lodash "^4.17.4" + lru-cache "^4.1.1" + mime "^1.4.1" + negotiator "^0.6.1" + once "^1.4.0" + pidusage "^1.1.6" + qs "^6.5.1" + restify-errors "^5.0.0" + semver "^5.4.1" + spdy "^3.4.7" + uuid "^3.1.0" + vasync "^1.6.4" + verror "^1.10.0" + optionalDependencies: + dtrace-provider "^0.8.1" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.7.1" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + dependencies: + glob "^7.1.3" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +run-async@^2.2.0: + version "2.4.0" + resolved "https://npm.yc345.tv/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg= + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://npm.yc345.tv/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://npm.yc345.tv/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha1-iTMSr2myEj3vcfV4iQAWce6yyFM= + +safe-buffer@^5.0.1, safe-buffer@^5.1.1: + version "5.2.0" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +safe-json-stringify@^1.0.3, safe-json-stringify@~1: + version "1.2.0" + resolved "https://npm.yc345.tv/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha1-NW5EvJjx+TzkXfFLzXwBzahuCv0= + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://npm.yc345.tv/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +samsam@1.x: + version "1.3.0" + resolved "https://npm.yc345.tv/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha1-jR2TUOJWItow3j5EumkrUiGrfFA= + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: + version "5.7.1" + resolved "https://npm.yc345.tv/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@4.3.2: + version "4.3.2" + resolved "https://npm.yc345.tv/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" + integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= + +semver@5.4.1: + version "5.4.1" + resolved "https://npm.yc345.tv/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + +send@0.16.1: + version "0.16.1" + resolved "https://npm.yc345.tv/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + integrity sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM= + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-static@1.13.1: + version "1.13.1" + resolved "https://npm.yc345.tv/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" + integrity sha1-TFfVNASnYdjy58HooYpH2/J4pxk= + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://npm.yc345.tv/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= + +shimmer@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35" + integrity sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU= + +shimmer@^1.2.0: + version "1.2.1" + resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha1-YQhZ994ye1h+/r9QH7QxF/mv8zc= + +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://npm.yc345.tv/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + +sinon-chai@2.14.0: + version "2.14.0" + resolved "https://npm.yc345.tv/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" + integrity sha1-2n3UzIPNaiYLZ8yg96n9riahIF0= + +sinon@4.0.2: + version "4.0.2" + resolved "https://npm.yc345.tv/sinon/-/sinon-4.0.2.tgz#c81f62456d37986c84e9f522ddb9ce413bda49d2" + integrity sha1-yB9iRW03mGyE6fUi3bnOQTvaSdI= + dependencies: + diff "^3.1.0" + formatio "1.2.0" + lodash.get "^4.4.2" + lolex "^2.1.3" + nise "^1.2.0" + supports-color "^4.4.0" + type-detect "^4.0.0" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00= + dependencies: + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.5: + version "1.1.6" + resolved "https://npm.yc345.tv/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +sntp@0.2.x: + version "0.2.4" + resolved "https://npm.yc345.tv/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA= + dependencies: + hoek "0.9.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://npm.yc345.tv/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + integrity sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg= + dependencies: + hoek "4.x.x" + +source-map@^0.5.3, source-map@^0.5.7: + version "0.5.7" + resolved "https://npm.yc345.tv/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1: + version "0.6.1" + resolved "https://npm.yc345.tv/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +spawn-wrap@^1.3.8: + version "1.4.3" + resolved "https://npm.yc345.tv/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" + integrity sha1-gbdnDhcMyiR9gL9frwz7cTvc+Eg= + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://npm.yc345.tv/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://npm.yc345.tv/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://npm.yc345.tv/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= + +spdy-transport@^2.0.18: + version "2.1.1" + resolved "https://npm.yc345.tv/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" + integrity sha1-xUgV1zhYqt0GzmMAHn0l+mRBYjs= + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.7: + version "3.4.7" + resolved "https://npm.yc345.tv/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw= + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split@0.3: + version "0.3.3" + resolved "https://npm.yc345.tv/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + +split@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k= + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sqlstring@2.3.0: + version "2.3.0" + resolved "https://npm.yc345.tv/sqlstring/-/sqlstring-2.3.0.tgz#525b8a4fd26d6f71aa61e822a6caf976d31ad2a8" + integrity sha1-UluKT9Jtb3GqYegipsr5dtMa0qg= + +sshpk@^1.14.1, sshpk@^1.7.0: + version "1.16.1" + resolved "https://npm.yc345.tv/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-chain@^1.3.7: + version "1.3.7" + resolved "https://npm.yc345.tv/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285" + integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU= + +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://npm.yc345.tv/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://npm.yc345.tv/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://npm.yc345.tv/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://npm.yc345.tv/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + +stream-transform@^0.2.2: + version "0.2.2" + resolved "https://npm.yc345.tv/stream-transform/-/stream-transform-0.2.2.tgz#75867487f49528f8bf1d82499658753d02df7838" + integrity sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg= + +string-template@~0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.padend@^3.0.0: + version "3.1.0" + resolved "https://npm.yc345.tv/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" + integrity sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha1-RAiqLl1t3QyagHObCH+8BnwDs8w= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha1-x28c7zDyG7rYr+uNsVEUls+w8qM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + integrity sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs= + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.5: + version "0.0.6" + resolved "https://npm.yc345.tv/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" + integrity sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI= + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +super-request@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/super-request/-/super-request-1.2.0.tgz#e966a259fdcfd944fad6ad3b3817cd08ef77aa88" + integrity sha1-6WaiWf3P2UT61q07OBfNCO93qog= + dependencies: + comb "~1.0.0" + methods "0.1.0" + request "~2.34.0" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU= + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^4.4.0: + version "4.5.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +table@^4.0.1: + version "4.0.3" + resolved "https://npm.yc345.tv/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha1-ALXitgLxeUuayvnKkIp2OGp4E7w= + dependencies: + ajv "^6.0.1" + ajv-keywords "^3.0.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +test-exclude@^4.1.1: + version "4.2.3" + resolved "https://npm.yc345.tv/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA= + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thriftrw@^3.5.0: + version "3.12.0" + resolved "https://npm.yc345.tv/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" + integrity sha1-MIV4R3VefwNrLgp50RyfVQdVOdk= + dependencies: + bufrw "^1.3.0" + error "7.0.2" + long "^2.4.0" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://npm.yc345.tv/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tildify@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/tildify/-/tildify-1.0.0.tgz#2a021db5e8fbde0a8f8b4df37adaa8fb1d39d7dd" + integrity sha1-KgIdtej73gqPi03zetqo+x05190= + dependencies: + user-home "^1.0.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://npm.yc345.tv/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= + dependencies: + os-tmpdir "~1.0.2" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +tough-cookie@>=0.12.0, tough-cookie@>=2.3.3: + version "4.0.0" + resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ= + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha1-7GDO44rGdQY//JelwYlwV47oNlU= + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + integrity sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4= + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://npm.yc345.tv/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://npm.yc345.tv/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= + +type-detect@4.0.8, type-detect@^4.0.0: + version "4.0.8" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw= + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= + +type-is@~1.6.15: + version "1.6.18" + resolved "https://npm.yc345.tv/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://npm.yc345.tv/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@^3.1.4: + version "3.9.1" + resolved "https://npm.yc345.tv/uglify-js/-/uglify-js-3.9.1.tgz#a56a71c8caa2d36b5556cc1fd57df01ae3491539" + integrity sha1-pWpxyMqi02tVVswf1X3wGuNJFTk= + dependencies: + commander "~2.20.3" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://npm.yc345.tv/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + dependencies: + punycode "^2.1.0" + +user-home@^1.0.0, user-home@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.1.0: + version "3.1.0" + resolved "https://npm.yc345.tv/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + integrity sha1-PdPT55Crwk17DToDT/q6vijrvAQ= + +uuid@^3.0.0, uuid@^3.1.0: + version "3.4.0" + resolved "https://npm.yc345.tv/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://npm.yc345.tv/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://npm.yc345.tv/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vasync@^1.6.4: + version "1.6.4" + resolved "https://npm.yc345.tv/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f" + integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8= + dependencies: + verror "1.6.0" + +verror@1.10.0, verror@^1.10.0, verror@^1.8.1: + version "1.10.0" + resolved "https://npm.yc345.tv/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +verror@1.6.0: + version "1.6.0" + resolved "https://npm.yc345.tv/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" + integrity sha1-fROyex+swuLakEBetepuW90lLqU= + dependencies: + extsprintf "1.2.0" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://npm.yc345.tv/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= + dependencies: + minimalistic-assert "^1.0.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://npm.yc345.tv/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://npm.yc345.tv/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://npm.yc345.tv/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://npm.yc345.tv/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +xorshift@^0.2.0: + version "0.2.1" + resolved "https://npm.yc345.tv/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" + integrity sha1-/NgiZ+k1HBPw+5xzMH8lMx0pxjo= + +xtend@^4.0.0, xtend@~4.0.0: + version "4.0.2" + resolved "https://npm.yc345.tv/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + +y18n@^3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://npm.yc345.tv/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + +yargs@^8.0.1: + version "8.0.2" + resolved "https://npm.yc345.tv/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" From d953145ce359f808fc9f88db48f3e3e3e5f5fc64 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 22 Apr 2020 16:37:41 +0800 Subject: [PATCH 02/30] add koa support --- package.json | 2 +- src/instrumentation/index.js | 4 +++- src/instrumentation/koa.js | 36 ++++++++++++++++++------------------ 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 3c120de..c759756 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "1.5.2", + "version": "1.5.6", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 2e8ea32..63c4bbd 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -8,6 +8,7 @@ const mysql = require('./mysql') const pg = require('./pg') const redis = require('./redis') const restify = require('./restify') +const koa = require('./koa') module.exports = [ express, @@ -17,5 +18,6 @@ module.exports = [ mysql, pg, redis, - restify + restify, + koa ] diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js index 2e81ace..b0ff7c1 100644 --- a/src/instrumentation/koa.js +++ b/src/instrumentation/koa.js @@ -1,15 +1,16 @@ 'use strict' -const debug = require('debug')('opentracing-auto:instrumentation:express') +const debug = require('debug')('opentracing-auto:instrumentation:koa') const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') const shimmer = require('shimmer') -const METHODS = require('methods').concat('use', 'route', 'param', 'all') + +const METHODS = ['use'] const cls = require('../cls') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' -function patch (express, tracers) { +function patch (koa, tracers) { function applicationActionWrap (method) { return function applicationActionWrapped (...args) { if (!this._jaeger_trace_patched && !this._router) { @@ -22,38 +23,37 @@ function patch (express, tracers) { function middleware (ctx, next) { return cls.runAndReturn(() => { - const { req, res } = ctx // start - const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` - const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) + const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` + const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) const spans = parentSpanContexts.map((parentSpanContext, key) => cls.startRootSpan(tracers[key], OPERATION_NAME, { childOf: parentSpanContext, tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, [Tags.HTTP_URL]: url, - [Tags.HTTP_METHOD]: req.method + [Tags.HTTP_METHOD]: ctx.method } })) debug(`Operation started ${OPERATION_NAME}`, { [Tags.HTTP_URL]: url, - [Tags.HTTP_METHOD]: req.method + [Tags.HTTP_METHOD]: ctx.method }) - if (req.connection.remoteAddress) { - spans.forEach((span) => span.log({ peerRemoteAddress: req.connection.remoteAddress })) + if (ctx.ip) { + spans.forEach((span) => span.log({ peerRemoteAddress: ctx.ip })) } // end + const { res } = ctx const originalEnd = res.end - res.end = function (...args) { - res.end = originalEnd + ctx.res.end = originalEnd const returned = res.end.call(this, ...args) - if (req.route && req.route.path) { - spans.forEach((span) => span.setTag(TAG_REQUEST_PATH, req.route.path)) - } + // if (req.route && req.route.path) { + // spans.forEach((span) => span.setTag(TAG_REQUEST_PATH, req.route.path)) + // } spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) @@ -79,16 +79,16 @@ function patch (express, tracers) { } METHODS.forEach((method) => { - shimmer.wrap(express.application, method, applicationActionWrap) + shimmer.wrap(koa.prototype, method, applicationActionWrap) debug(`Method patched ${method}`) }) debug('Patched') } -function unpatch (express) { +function unpatch (koa) { METHODS.forEach((method) => { - shimmer.unwrap(express.application, method) + shimmer.unwrap(koa.prototype, method) debug(`Method unpatched ${method}`) }) From 53b46a5e1df1b82768b6b0c860908033fb7299d4 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 22 Apr 2020 16:48:09 +0800 Subject: [PATCH 03/30] recovery pkg name and romove yarn.lock --- package.json | 4 +- yarn.lock | 4500 -------------------------------------------------- 2 files changed, 2 insertions(+), 4502 deletions(-) delete mode 100644 yarn.lock diff --git a/package.json b/package.json index c759756..c11e651 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@guanghe/primary-opentracing-auto", - "version": "1.5.6", + "name": "@risingstack/opentracing-auto", + "version": "1.5.2", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 85e6bb2..0000000 --- a/yarn.lock +++ /dev/null @@ -1,4500 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.7.0": - version "1.7.2" - resolved "https://npm.yc345.tv/@sinonjs%2fcommons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" - integrity sha1-UF9Vx04CcrQ/bFLYGUa+1wWPwOI= - dependencies: - type-detect "4.0.8" - -"@sinonjs/formatio@^3.2.1": - version "3.2.2" - resolved "https://npm.yc345.tv/@sinonjs%2fformatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" - integrity sha1-dxxg36dep/LWjjuUx+iIp4eBNyw= - dependencies: - "@sinonjs/commons" "^1" - "@sinonjs/samsam" "^3.1.0" - -"@sinonjs/samsam@^3.1.0": - version "3.3.3" - resolved "https://npm.yc345.tv/@sinonjs%2fsamsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" - integrity sha1-Rmgu/Zlnslm4ETa58SD9VFhf60o= - dependencies: - "@sinonjs/commons" "^1.3.0" - array-from "^2.1.1" - lodash "^4.17.15" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://npm.yc345.tv/@sinonjs%2ftext-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" - integrity sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU= - -accepts@~1.3.4: - version "1.3.7" - resolved "https://npm.yc345.tv/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://npm.yc345.tv/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://npm.yc345.tv/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - -acorn@^5.5.0: - version "5.7.4" - resolved "https://npm.yc345.tv/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha1-Po2KmUfQWZoXltECJddDL0pKz14= - -ajv-keywords@^3.0.0: - version "3.4.1" - resolved "https://npm.yc345.tv/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= - -ajv@^5.1.0, ajv@^5.2.0: - version "5.5.2" - resolved "https://npm.yc345.tv/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.0.1: - version "6.12.2" - resolved "https://npm.yc345.tv/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0= - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-color@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" - integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://npm.yc345.tv/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://npm.yc345.tv/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - integrity sha1-126/jKlNJ24keja61EpLdKthGZE= - dependencies: - default-require-extensions "^1.0.0" - -archy@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= - -argparse@^1.0.7: - version "1.0.10" - resolved "https://npm.yc345.tv/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://npm.yc345.tv/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-from@^2.1.1: - version "2.1.1" - resolved "https://npm.yc345.tv/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" - integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@0.1.11: - version "0.1.11" - resolved "https://npm.yc345.tv/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" - integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://npm.yc345.tv/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert-plus@^0.1.5: - version "0.1.5" - resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" - integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA= - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://npm.yc345.tv/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs= - -async-hook-jl@^1.7.6: - version "1.7.6" - resolved "https://npm.yc345.tv/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68" - integrity sha1-T9JcL4ZNuvJ5xhDXO/l7GyhZXmg= - dependencies: - stack-chain "^1.3.7" - -async@~0.9.0: - version "0.9.2" - resolved "https://npm.yc345.tv/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://npm.yc345.tv/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -aws-sign2@~0.5.0: - version "0.5.0" - resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" - integrity sha1-xXED96F/wDfwLXwuZLYC6iI/fWM= - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.6.0: - version "1.9.1" - resolved "https://npm.yc345.tv/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://npm.yc345.tv/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-generator@^6.18.0: - version "6.26.1" - resolved "https://npm.yc345.tv/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA= - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://npm.yc345.tv/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-runtime@^6.11.6, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://npm.yc345.tv/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0: - version "6.26.0" - resolved "https://npm.yc345.tv/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://npm.yc345.tv/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.26.0: - version "6.26.0" - resolved "https://npm.yc345.tv/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://npm.yc345.tv/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://npm.yc345.tv/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@4.0.4: - version "4.0.4" - resolved "https://npm.yc345.tv/bignumber.js/-/bignumber.js-4.0.4.tgz#7c40f5abcd2d6623ab7b99682ee7db81b11889a4" - integrity sha1-fED1q80tZiOre5loLufbgbEYiaQ= - -bluebird@^3.4.6: - version "3.7.2" - resolved "https://npm.yc345.tv/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= - -body-parser@1.18.2: - version "1.18.2" - resolved "https://npm.yc345.tv/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -boom@0.4.x: - version "0.4.2" - resolved "https://npm.yc345.tv/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" - integrity sha1-emNune1O/O+xnO9JR6PGffrukRs= - dependencies: - hoek "0.9.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://npm.yc345.tv/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://npm.yc345.tv/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - integrity sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI= - dependencies: - hoek "4.x.x" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://npm.yc345.tv/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://npm.yc345.tv/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://npm.yc345.tv/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" - integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= - -bson@~1.0.4: - version "1.0.9" - resolved "https://npm.yc345.tv/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" - integrity sha1-EjGfgyOxJUc5t8a++NPomuBaL1c= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://npm.yc345.tv/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= - -buffer-shims@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= - -buffer-writer@1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" - integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg= - -bufrw@^1.3.0: - version "1.3.0" - resolved "https://npm.yc345.tv/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" - integrity sha1-KNbP2vNDADdoNjEPXDHVfutAyPo= - dependencies: - ansi-color "^0.2.1" - error "^7.0.0" - hexer "^1.5.0" - xtend "^4.0.0" - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - -bunyan@^1.8.12: - version "1.8.12" - resolved "https://npm.yc345.tv/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" - integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= - optionalDependencies: - dtrace-provider "~0.8" - moment "^2.10.6" - mv "~2" - safe-json-stringify "~1" - -bytes@3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -caching-transform@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" - integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE= - dependencies: - md5-hex "^1.2.0" - mkdirp "^0.5.1" - write-file-atomic "^1.1.4" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://npm.yc345.tv/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -caseless@~0.12.0: - version "0.12.0" - resolved "https://npm.yc345.tv/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chai@4.1.2: - version "4.1.2" - resolved "https://npm.yc345.tv/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" - integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= - dependencies: - assertion-error "^1.0.1" - check-error "^1.0.1" - deep-eql "^3.0.0" - get-func-name "^2.0.0" - pathval "^1.0.0" - type-detect "^4.0.0" - -"chai@>=1.9.2 <4.0.0": - version "3.5.0" - resolved "https://npm.yc345.tv/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" - integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= - dependencies: - assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" - -chalk@^1.0.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://npm.yc345.tv/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.1.0: - version "2.4.2" - resolved "https://npm.yc345.tv/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://npm.yc345.tv/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - -check-error@^1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://npm.yc345.tv/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY= - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://npm.yc345.tv/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://npm.yc345.tv/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha1-sEM9C06chH7xiGik7xb9X8gnHEg= - -cliui@^3.2.0: - version "3.2.0" - resolved "https://npm.yc345.tv/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone-regexp@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" - integrity sha1-BRgFzTMXM3XYIRj8CRhgbaOf1g8= - dependencies: - is-regexp "^1.0.0" - is-supported-regexp-flag "^1.0.0" - -cls-hooked@4.2.2: - version "4.2.2" - resolved "https://npm.yc345.tv/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908" - integrity sha1-rS6aQJJoDNr/6y01UdoOIl6uGQg= - dependencies: - async-hook-jl "^1.7.6" - emitter-listener "^1.0.1" - semver "^5.4.1" - -co@^4.6.0: - version "4.6.0" - resolved "https://npm.yc345.tv/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://npm.yc345.tv/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://npm.yc345.tv/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -comb@~1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/comb/-/comb-1.0.1.tgz#4856c957235d8ecd67d86535ada1852671b871b0" - integrity sha1-SFbJVyNdjs1n2GU1raGFJnG4cbA= - -combined-stream@^1.0.6, combined-stream@~1.0.5: - version "1.0.8" - resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= - dependencies: - delayed-stream "~1.0.0" - -combined-stream@~0.0.4: - version "0.0.7" - resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" - integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8= - dependencies: - delayed-stream "0.0.5" - -commander@2.9.0: - version "2.9.0" - resolved "https://npm.yc345.tv/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= - dependencies: - graceful-readlink ">= 1.0.0" - -commander@^2.2.0, commander@~2.20.3: - version "2.20.3" - resolved "https://npm.yc345.tv/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://npm.yc345.tv/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://npm.yc345.tv/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://npm.yc345.tv/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= - -content-type@~1.0.4: - version "1.0.4" - resolved "https://npm.yc345.tv/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= - -convert-source-map@^1.3.0: - version "1.7.0" - resolved "https://npm.yc345.tv/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://npm.yc345.tv/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.3.1: - version "0.3.1" - resolved "https://npm.yc345.tv/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -core-js@^2.4.0: - version "2.6.11" - resolved "https://npm.yc345.tv/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://npm.yc345.tv/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cross-spawn@^4: - version "4.0.2" - resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@0.2.x: - version "0.2.2" - resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" - integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw= - dependencies: - boom "0.4.x" - -cryptiles@3.x.x: - version "3.1.4" - resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322" - integrity sha1-dppoyVYStW+q386/V6yGR5y+gyI= - dependencies: - boom "5.x.x" - -csv-generate@^1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/csv-generate/-/csv-generate-1.1.2.tgz#ec6b00edaed6e59ad9c20582f4c364e28b146240" - integrity sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA= - -csv-parse@^1.3.3: - version "1.3.3" - resolved "https://npm.yc345.tv/csv-parse/-/csv-parse-1.3.3.tgz#d1cfd8743c2f849a0abb2fd544db56695d19a490" - integrity sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA= - -csv-stringify@^1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/csv-stringify/-/csv-stringify-1.1.2.tgz#77a41526581bce3380f12b00d7c5bbac70c82b58" - integrity sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g= - dependencies: - lodash.get "~4.4.2" - -csv@^1.1.1: - version "1.2.1" - resolved "https://npm.yc345.tv/csv/-/csv-1.2.1.tgz#5231edfc1c7152512ec45781076a7a97ff525c0c" - integrity sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw= - dependencies: - csv-generate "^1.1.2" - csv-parse "^1.3.3" - csv-stringify "^1.1.2" - stream-transform "^0.2.2" - -ctype@0.5.3: - version "0.5.3" - resolved "https://npm.yc345.tv/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" - integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://npm.yc345.tv/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug-log@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" - integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= - -debug@*: - version "4.1.1" - resolved "https://npm.yc345.tv/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@2.6.8: - version "2.6.8" - resolved "https://npm.yc345.tv/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" - integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw= - dependencies: - ms "2.0.0" - -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://npm.yc345.tv/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.1.0: - version "3.1.0" - resolved "https://npm.yc345.tv/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.0.1, debug@^3.1.0: - version "3.2.6" - resolved "https://npm.yc345.tv/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.1: - version "1.2.0" - resolved "https://npm.yc345.tv/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= - dependencies: - type-detect "0.1.1" - -deep-eql@^3.0.0: - version "3.0.1" - resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha1-38lARACtHI/gI+faHfHBR8S0RN8= - dependencies: - type-detect "^4.0.0" - -deep-equal@^1.0.0: - version "1.1.1" - resolved "https://npm.yc345.tv/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://npm.yc345.tv/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://npm.yc345.tv/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= - dependencies: - object-keys "^1.0.12" - -delayed-stream@0.0.5: - version "0.0.5" - resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" - integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8= - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= - -depd@~1.1.1, depd@~1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@~1.0.4: - version "1.0.4" - resolved "https://npm.yc345.tv/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" - integrity sha1-STXe39lIhkjgBrASlWbpOGcR6mM= - dependencies: - fs-exists-sync "^0.1.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://npm.yc345.tv/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-node@^2.0.3: - version "2.0.4" - resolved "https://npm.yc345.tv/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= - -diff@3.2.0: - version "3.2.0" - resolved "https://npm.yc345.tv/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" - integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k= - -diff@^3.1.0: - version "3.5.0" - resolved "https://npm.yc345.tv/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI= - -doctrine@1.5.0: - version "1.5.0" - resolved "https://npm.yc345.tv/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= - dependencies: - esutils "^2.0.2" - -double-ended-queue@^2.1.0-0: - version "2.1.0-0" - resolved "https://npm.yc345.tv/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" - integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= - -dtrace-provider@^0.8.1, dtrace-provider@~0.8: - version "0.8.8" - resolved "https://npm.yc345.tv/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" - integrity sha1-KZbVSQw34TR74mO0I+17KX+w2X4= - dependencies: - nan "^2.14.0" - -duplexer@~0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://npm.yc345.tv/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -emitter-listener@^1.0.1: - version "1.1.2" - resolved "https://npm.yc345.tv/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" - integrity sha1-VrFA6PaZI3Wz18ssqxzHQy2WMug= - dependencies: - shimmer "^1.2.0" - -encodeurl@~1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://npm.yc345.tv/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= - dependencies: - is-arrayish "^0.2.1" - -error@7.0.2: - version "7.0.2" - resolved "https://npm.yc345.tv/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -error@^7.0.0: - version "7.2.1" - resolved "https://npm.yc345.tv/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha1-6rIaRom19oT8g9qEoOOQ3oLZSJQ= - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://npm.yc345.tv/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk= - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://npm.yc345.tv/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-promise@3.2.1: - version "3.2.1" - resolved "https://npm.yc345.tv/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" - integrity sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q= - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-regexp-component@^1.0.2: - version "1.0.2" - resolved "https://npm.yc345.tv/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" - integrity sha1-nGO20LJf8qiMOtvRjFthrMO5+qI= - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://npm.yc345.tv/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-airbnb-base@12.1.0: - version "12.1.0" - resolved "https://npm.yc345.tv/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" - integrity sha1-OGRB5UoSzNlXsKklZKS6/r10eUQ= - dependencies: - eslint-restricted-globals "^0.1.1" - -eslint-import-resolver-node@^0.3.1: - version "0.3.3" - resolved "https://npm.yc345.tv/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha1-26pStrKBa1C8ZxGvdUIt6AjphAQ= - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-module-utils@^2.1.1: - version "2.6.0" - resolved "https://npm.yc345.tv/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y= - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-import@2.8.0: - version "2.8.0" - resolved "https://npm.yc345.tv/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" - integrity sha1-+htu8x/LPFAcCYWcG4bx/FuYaJQ= - dependencies: - builtin-modules "^1.1.1" - contains-path "^0.1.0" - debug "^2.6.8" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" - has "^1.0.1" - lodash.cond "^4.3.0" - minimatch "^3.0.3" - read-pkg-up "^2.0.0" - -eslint-plugin-promise@3.6.0: - version "3.6.0" - resolved "https://npm.yc345.tv/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" - integrity sha1-VLdljI9FSBPcKocK/4FS7ElpunU= - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= - -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://npm.yc345.tv/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - integrity sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint@4.9.0: - version "4.9.0" - resolved "https://npm.yc345.tv/eslint/-/eslint-4.9.0.tgz#76879d274068261b191fe0f2f56c74c2f4208e8b" - integrity sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos= - dependencies: - ajv "^5.2.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.0" - eslint-scope "^3.7.1" - espree "^3.5.1" - esquery "^1.0.0" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^9.17.0" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" - -espree@^3.5.1: - version "3.5.4" - resolved "https://npm.yc345.tv/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha1-sPRHGHyKi+2US4FaZgvd9d610ac= - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://npm.yc345.tv/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= - -esquery@^1.0.0: - version "1.3.1" - resolved "https://npm.yc345.tv/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc= - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://npm.yc345.tv/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.3.0" - resolved "https://npm.yc345.tv/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://npm.yc345.tv/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI= - -esutils@^2.0.2: - version "2.0.3" - resolved "https://npm.yc345.tv/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= - -etag@~1.8.1: - version "1.8.1" - resolved "https://npm.yc345.tv/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://npm.yc345.tv/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -ewma@^2.0.1: - version "2.0.1" - resolved "https://npm.yc345.tv/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" - integrity sha1-mHbBxJGsVzPIZmABo5YaBMl88eg= - dependencies: - assert-plus "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://npm.yc345.tv/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://npm.yc345.tv/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://npm.yc345.tv/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -expand-tilde@^1.2.2: - version "1.2.2" - resolved "https://npm.yc345.tv/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" - integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= - dependencies: - os-homedir "^1.0.1" - -express@4.16.2: - version "4.16.2" - resolved "https://npm.yc345.tv/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" - integrity sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w= - dependencies: - accepts "~1.3.4" - array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.1" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.0" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.2" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.1" - serve-static "1.13.1" - setprototypeof "1.1.0" - statuses "~1.3.1" - type-is "~1.6.15" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0, extend@~3.0.1: - version "3.0.2" - resolved "https://npm.yc345.tv/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= - -external-editor@^2.0.4: - version "2.2.0" - resolved "https://npm.yc345.tv/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha1-BFURz9jRM/OEZnPRBHwVTiFK09U= - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://npm.yc345.tv/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.2.0: - version "1.2.0" - resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" - integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk= - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ= - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://npm.yc345.tv/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -figures@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://npm.yc345.tv/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha1-6x53OrsFbc2N8r/favWbizqTZWU= - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://npm.yc345.tv/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://npm.yc345.tv/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://npm.yc345.tv/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -findup-sync@^0.4.2: - version "0.4.3" - resolved "https://npm.yc345.tv/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" - integrity sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI= - dependencies: - detect-file "^0.1.0" - is-glob "^2.0.1" - micromatch "^2.3.7" - resolve-dir "^0.1.0" - -flagged-respawn@^0.3.2: - version "0.3.2" - resolved "https://npm.yc345.tv/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" - integrity sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU= - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://npm.yc345.tv/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha1-LC73dSXMKSkAff/6HdMUqpyd7m8= - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.4: - version "0.1.5" - resolved "https://npm.yc345.tv/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -foreground-child@^1.5.3, foreground-child@^1.5.6: - version "1.5.6" - resolved "https://npm.yc345.tv/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" - integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= - dependencies: - cross-spawn "^4" - signal-exit "^3.0.0" - -forever-agent@~0.5.0: - version "0.5.2" - resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" - integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~0.1.0: - version "0.1.4" - resolved "https://npm.yc345.tv/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" - integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI= - dependencies: - async "~0.9.0" - combined-stream "~0.0.4" - mime "~1.2.11" - -form-data@~2.3.1: - version "2.3.3" - resolved "https://npm.yc345.tv/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -formatio@1.2.0: - version "1.2.0" - resolved "https://npm.yc345.tv/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" - integrity sha1-87IWfZBoxGmKjVH092CjmlTYGOs= - dependencies: - samsam "1.x" - -formidable@^1.1.1: - version "1.2.2" - resolved "https://npm.yc345.tv/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" - integrity sha1-v2muopcpgmdfAIZTQrmCmG9rjdk= - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://npm.yc345.tv/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fresh@0.5.2: - version "0.5.2" - resolved "https://npm.yc345.tv/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from@~0: - version "0.1.7" - resolved "https://npm.yc345.tv/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= - -fs-exists-sync@^0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" - integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -generic-pool@2.4.3: - version "2.4.3" - resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" - integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= - -generic-pool@^2.4.2: - version "2.5.4" - resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.5.4.tgz#38c6188513e14030948ec6e5cf65523d9779299b" - integrity sha1-OMYYhRPhQDCUjsblz2VSPZd5KZs= - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://npm.yc345.tv/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://npm.yc345.tv/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://npm.yc345.tv/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - -glob@7.1.1: - version "7.1.1" - resolved "https://npm.yc345.tv/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.1: - version "6.0.4" - resolved "https://npm.yc345.tv/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.6, glob@^7.1.2, glob@^7.1.3: - version "7.1.6" - resolved "https://npm.yc345.tv/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^0.2.3: - version "0.2.3" - resolved "https://npm.yc345.tv/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" - integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= - dependencies: - global-prefix "^0.1.4" - is-windows "^0.2.0" - -global-prefix@^0.1.4: - version "0.1.5" - resolved "https://npm.yc345.tv/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" - integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= - dependencies: - homedir-polyfill "^1.0.0" - ini "^1.3.4" - is-windows "^0.2.0" - which "^1.2.12" - -globals@^9.17.0, globals@^9.18.0: - version "9.18.0" - resolved "https://npm.yc345.tv/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo= - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.2.3" - resolved "https://npm.yc345.tv/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://npm.yc345.tv/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= - -growl@1.9.2: - version "1.9.2" - resolved "https://npm.yc345.tv/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" - integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8= - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://npm.yc345.tv/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ= - -handlebars@^4.0.3: - version "4.7.6" - resolved "https://npm.yc345.tv/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha1-1MBcG6+Q6ZRfd6pop6IZqkp9904= - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://npm.yc345.tv/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= - dependencies: - function-bind "^1.1.1" - -hawk@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d" - integrity sha1-uQuxaYByhUEdp//LjdJZhQLTtS0= - dependencies: - boom "0.4.x" - cryptiles "0.2.x" - hoek "0.9.x" - sntp "0.2.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://npm.yc345.tv/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - integrity sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg= - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= - -hexer@^1.5.0: - version "1.5.0" - resolved "https://npm.yc345.tv/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" - integrity sha1-uGzoCFmOip0YksVx887dhvyfBlM= - dependencies: - ansi-color "^0.2.1" - minimist "^1.1.0" - process "^0.10.0" - xtend "^4.0.0" - -hoek@0.9.x: - version "0.9.1" - resolved "https://npm.yc345.tv/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" - integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU= - -hoek@4.x.x: - version "4.2.1" - resolved "https://npm.yc345.tv/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - integrity sha1-ljRQKqEsRF3Vp8VzS1cruHOKrLs= - -homedir-polyfill@^1.0.0: - version "1.0.3" - resolved "https://npm.yc345.tv/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://npm.yc345.tv/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://npm.yc345.tv/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://npm.yc345.tv/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.6.2: - version "1.6.2" - resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-signature@^1.2.0: - version "1.3.4" - resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.3.4.tgz#a65b41193110b222364e776fd1ac848655a0e2f0" - integrity sha1-pltBGTEQsiI2Tndv0ayEhlWg4vA= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.14.1" - -http-signature@~0.10.0: - version "0.10.1" - resolved "https://npm.yc345.tv/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" - integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY= - dependencies: - asn1 "0.1.11" - assert-plus "^0.1.5" - ctype "0.5.3" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - integrity sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs= - -iconv-lite@^0.4.17: - version "0.4.24" - resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^3.3.3: - version "3.3.10" - resolved "https://npm.yc345.tv/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://npm.yc345.tv/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://npm.yc345.tv/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= - -inherits@2.0.3: - version "2.0.3" - resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4: - version "1.3.5" - resolved "https://npm.yc345.tv/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://npm.yc345.tv/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha1-ndLyrXZdyrH/BEO0kUQqILoifck= - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -interpret@^0.6.5: - version "0.6.6" - resolved "https://npm.yc345.tv/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" - integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= - -invariant@^2.2.2: - version "2.2.4" - resolved "https://npm.yc345.tv/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://npm.yc345.tv/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://npm.yc345.tv/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://npm.yc345.tv/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha1-76ouqdqg16suoTqXsritUf776L4= - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://npm.yc345.tv/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://npm.yc345.tv/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://npm.yc345.tv/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://npm.yc345.tv/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://npm.yc345.tv/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://npm.yc345.tv/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8= - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://npm.yc345.tv/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://npm.yc345.tv/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://npm.yc345.tv/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= - dependencies: - has "^1.0.3" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://npm.yc345.tv/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-supported-regexp-flag@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" - integrity sha1-Ie4WUY0sHdPt0+mg1X5QIHrDZMo= - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://npm.yc345.tv/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= - dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://npm.yc345.tv/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= - -isarray@0.0.1: - version "0.0.1" - resolved "https://npm.yc345.tv/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://npm.yc345.tv/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.1: - version "1.2.1" - resolved "https://npm.yc345.tv/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" - integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA= - -istanbul-lib-hook@^1.0.7: - version "1.2.2" - resolved "https://npm.yc345.tv/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" - integrity sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y= - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.8.0: - version "1.10.2" - resolved "https://npm.yc345.tv/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" - integrity sha1-H1XtEKw8R/K93dUweTUSZ1TQqco= - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.1" - semver "^5.3.0" - -istanbul-lib-report@^1.1.1: - version "1.1.5" - resolved "https://npm.yc345.tv/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" - integrity sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww= - dependencies: - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.1: - version "1.2.6" - resolved "https://npm.yc345.tv/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" - integrity sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8= - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.1.1: - version "1.5.1" - resolved "https://npm.yc345.tv/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" - integrity sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho= - dependencies: - handlebars "^4.0.3" - -jaeger-client@3.5.3: - version "3.5.3" - resolved "https://npm.yc345.tv/jaeger-client/-/jaeger-client-3.5.3.tgz#30a3989642ee3e8ea06d10c2b9f9e046d424d8ed" - integrity sha1-MKOYlkLuPo6gbRDCufngRtQk2O0= - dependencies: - node-int64 "^0.4.0" - opentracing "^0.13.0" - thriftrw "^3.5.0" - xorshift "^0.2.0" - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.9.1: - version "3.13.1" - resolved "https://npm.yc345.tv/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://npm.yc345.tv/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://npm.yc345.tv/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= - -json-schema@0.2.3: - version "0.2.3" - resolved "https://npm.yc345.tv/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://npm.yc345.tv/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@3.3.2: - version "3.3.2" - resolved "https://npm.yc345.tv/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://npm.yc345.tv/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://npm.yc345.tv/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -just-extend@^4.0.2: - version "4.1.0" - resolved "https://npm.yc345.tv/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" - integrity sha1-cnikAn2IlgFkDuDODloAuZJGfaQ= - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://npm.yc345.tv/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.0: - version "6.0.3" - resolved "https://npm.yc345.tv/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= - -knex@0.13.0: - version "0.13.0" - resolved "https://npm.yc345.tv/knex/-/knex-0.13.0.tgz#08dd494f6bb64928934eec9dac34787a14ca5fa4" - integrity sha1-CN1JT2u2SSiTTuydrDR4ehTKX6Q= - dependencies: - babel-runtime "^6.11.6" - bluebird "^3.4.6" - chalk "^1.0.0" - commander "^2.2.0" - debug "^2.1.3" - generic-pool "^2.4.2" - inherits "~2.0.1" - interpret "^0.6.5" - liftoff "~2.2.0" - lodash "^4.6.0" - minimist "~1.1.0" - mkdirp "^0.5.0" - pg-connection-string "^0.1.3" - readable-stream "^1.1.12" - safe-buffer "^5.0.1" - tildify "~1.0.0" - uuid "^3.0.0" - v8flags "^2.0.2" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://npm.yc345.tv/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -liftoff@~2.2.0: - version "2.2.5" - resolved "https://npm.yc345.tv/liftoff/-/liftoff-2.2.5.tgz#998c2876cff484b103e4423b93d356da44734c91" - integrity sha1-mYwods/0hLED5EI7k9NW2kRzTJE= - dependencies: - extend "^3.0.0" - findup-sync "^0.4.2" - flagged-respawn "^0.3.2" - rechoir "^0.6.2" - resolve "^1.1.7" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://npm.yc345.tv/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://npm.yc345.tv/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= - -lodash._basecreate@^3.0.0: - version "3.0.3" - resolved "https://npm.yc345.tv/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" - integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://npm.yc345.tv/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://npm.yc345.tv/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= - -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://npm.yc345.tv/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - integrity sha1-9HGh2khr5g9quVXRcRVSPdHSVdU= - -lodash.create@3.1.1: - version "3.1.1" - resolved "https://npm.yc345.tv/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" - integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c= - dependencies: - lodash._baseassign "^3.0.0" - lodash._basecreate "^3.0.0" - lodash._isiterateecall "^3.0.0" - -lodash.get@^4.4.2, lodash.get@~4.4.2: - version "4.4.2" - resolved "https://npm.yc345.tv/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://npm.yc345.tv/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://npm.yc345.tv/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://npm.yc345.tv/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash@4.17.4: - version "4.17.4" - resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= - -lodash@^4.13.1, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.0, lodash@~4.17.2: - version "4.17.15" - resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lolex@^2.1.3: - version "2.7.5" - resolved "https://npm.yc345.tv/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" - integrity sha1-ETAB1Wv8fgLVbjYpHMXEE9GqBzM= - -lolex@^5.0.1: - version "5.1.2" - resolved "https://npm.yc345.tv/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" - integrity sha1-lTaU0JjOfAe8XtbQ5CvGwMbVo2c= - dependencies: - "@sinonjs/commons" "^1.7.0" - -long@^2.4.0: - version "2.4.0" - resolved "https://npm.yc345.tv/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" - integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://npm.yc345.tv/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.5" - resolved "https://npm.yc345.tv/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= - -math-random@^1.0.1: - version "1.0.4" - resolved "https://npm.yc345.tv/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw= - -md5-hex@^1.2.0: - version "1.3.0" - resolved "https://npm.yc345.tv/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" - integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= - -media-typer@0.3.0: - version "0.3.0" - resolved "https://npm.yc345.tv/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^1.1.0: - version "1.1.0" - resolved "https://npm.yc345.tv/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - -memory-streams@^0.1.2: - version "0.1.3" - resolved "https://npm.yc345.tv/memory-streams/-/memory-streams-0.1.3.tgz#d9b0017b4b87f1d92f55f2745c9caacb1dc93ceb" - integrity sha1-2bABe0uH8dkvVfJ0XJyqyx3JPOs= - dependencies: - readable-stream "~1.0.2" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.0.2: - version "1.1.0" - resolved "https://npm.yc345.tv/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= - dependencies: - source-map "^0.6.1" - -methods@0.1.0: - version "0.1.0" - resolved "https://npm.yc345.tv/methods/-/methods-0.1.0.tgz#335d429eefd21b7bacf2e9c922a8d2bd14a30e4f" - integrity sha1-M11Cnu/SG3us8unJIqjSvRSjDk8= - -methods@1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^2.3.11, micromatch@^2.3.7: - version "2.3.11" - resolved "https://npm.yc345.tv/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -mime-db@1.43.0: - version "1.43.0" - resolved "https://npm.yc345.tv/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg= - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.26" - resolved "https://npm.yc345.tv/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha1-nJIfwJt+FJpl39wNpNIJlyALCgY= - dependencies: - mime-db "1.43.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://npm.yc345.tv/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY= - -mime@^1.4.1: - version "1.6.0" - resolved "https://npm.yc345.tv/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= - -mime@~1.2.11, mime@~1.2.9: - version "1.2.11" - resolved "https://npm.yc345.tv/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" - integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://npm.yc345.tv/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= - -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://npm.yc345.tv/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://npm.yc345.tv/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://npm.yc345.tv/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= - -minimist@~1.1.0: - version "1.1.3" - resolved "https://npm.yc345.tv/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= - -mkdirp@0.5.1: - version "0.5.1" - resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= - dependencies: - minimist "^1.2.5" - -mocha@3.5.3: - version "3.5.3" - resolved "https://npm.yc345.tv/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" - integrity sha1-HgSA/jbS2lhY0etqzDhBiybqog0= - dependencies: - browser-stdout "1.3.0" - commander "2.9.0" - debug "2.6.8" - diff "3.2.0" - escape-string-regexp "1.0.5" - glob "7.1.1" - growl "1.9.2" - he "1.1.1" - json3 "3.3.2" - lodash.create "3.1.1" - mkdirp "0.5.1" - supports-color "3.1.2" - -module-details-from-path@^1.0.2: - version "1.0.3" - resolved "https://npm.yc345.tv/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" - integrity sha1-EUyUlnPiqKNenTV4hSeqN7Z52is= - -moment@^2.10.6: - version "2.24.0" - resolved "https://npm.yc345.tv/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -mongodb-core@2.1.17: - version "2.1.17" - resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.17.tgz#a418b337a14a14990fb510b923dee6a813173df8" - integrity sha1-pBizN6FKFJkPtRC5I97mqBMXPfg= - dependencies: - bson "~1.0.4" - require_optional "~1.0.0" - -mongodb-core@2.1.20: - version "2.1.20" - resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1" - integrity sha1-/s6N12tZ7n1/LTE7ZTIsFgSS2PE= - dependencies: - bson "~1.0.4" - require_optional "~1.0.0" - -mongodb@^2.1.18: - version "2.2.36" - resolved "https://npm.yc345.tv/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5" - integrity sha1-HFc2gLKEn7D0esu6PcX6Io3pdfU= - dependencies: - es6-promise "3.2.1" - mongodb-core "2.1.20" - readable-stream "2.2.7" - -monk-middleware-cast-ids@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/monk-middleware-cast-ids/-/monk-middleware-cast-ids-0.2.1.tgz#40c40e5a6cb33ccedc289220943275ee8861c529" - integrity sha1-QMQOWmyzPM7cKJIglDJ17ohhxSk= - -monk-middleware-fields@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/monk-middleware-fields/-/monk-middleware-fields-0.2.0.tgz#ff637af35f5948879ccb2be15a91360911bea6c1" - integrity sha1-/2N6819ZSIecyyvhWpE2CRG+psE= - -monk-middleware-handle-callback@^0.2.0: - version "0.2.2" - resolved "https://npm.yc345.tv/monk-middleware-handle-callback/-/monk-middleware-handle-callback-0.2.2.tgz#47de6cc1248726c72a2be0c81bc4e68310c32146" - integrity sha1-R95swSSHJscqK+DIG8TmgxDDIUY= - -monk-middleware-options@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/monk-middleware-options/-/monk-middleware-options-0.2.1.tgz#58dae1c518d46636ebdff506fadfc773bb442886" - integrity sha1-WNrhxRjUZjbr3/UG+t/Hc7tEKIY= - -monk-middleware-query@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/monk-middleware-query/-/monk-middleware-query-0.2.0.tgz#a926c677d4a5620c62151b0a56d0c0c151675874" - integrity sha1-qSbGd9SlYgxiFRsKVtDAwVFnWHQ= - -monk-middleware-wait-for-connection@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/monk-middleware-wait-for-connection/-/monk-middleware-wait-for-connection-0.2.0.tgz#312958d30e588b57d09754dd7c97b4843316835a" - integrity sha1-MSlY0w5Yi1fQl1TdfJe0hDMWg1o= - -monk@6.0.5: - version "6.0.5" - resolved "https://npm.yc345.tv/monk/-/monk-6.0.5.tgz#a69be84e70ba4aa771b9619f7f73de965a50610a" - integrity sha1-ppvoTnC6SqdxuWGff3PellpQYQo= - dependencies: - debug "*" - mongodb "^2.1.18" - monk-middleware-cast-ids "^0.2.1" - monk-middleware-fields "^0.2.0" - monk-middleware-handle-callback "^0.2.0" - monk-middleware-options "^0.2.1" - monk-middleware-query "^0.2.0" - monk-middleware-wait-for-connection "^0.2.0" - object-assign "^4.1.1" - -ms@2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.2" - resolved "https://npm.yc345.tv/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://npm.yc345.tv/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -mv@~2: - version "2.1.1" - resolved "https://npm.yc345.tv/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" - integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= - dependencies: - mkdirp "~0.5.1" - ncp "~2.0.0" - rimraf "~2.4.0" - -mysql@2.15.0: - version "2.15.0" - resolved "https://npm.yc345.tv/mysql/-/mysql-2.15.0.tgz#ea16841156343e8f2e47fc8985ec41cdd9573b5c" - integrity sha1-6haEEVY0Po8uR/yJhexBzdlXO1w= - dependencies: - bignumber.js "4.0.4" - readable-stream "2.3.3" - safe-buffer "5.1.1" - sqlstring "2.3.0" - -nan@^2.14.0: - version "2.14.1" - resolved "https://npm.yc345.tv/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://npm.yc345.tv/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -ncp@~2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= - -negotiator@0.6.2, negotiator@^0.6.1: - version "0.6.2" - resolved "https://npm.yc345.tv/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= - -neo-async@^2.6.0: - version "2.6.1" - resolved "https://npm.yc345.tv/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= - -nise@^1.2.0: - version "1.5.3" - resolved "https://npm.yc345.tv/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" - integrity sha1-nSz+N9RPVzF3ZsbpQIo1nF06wfc= - dependencies: - "@sinonjs/formatio" "^3.2.1" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - lolex "^5.0.1" - path-to-regexp "^1.7.0" - -nock@9.0.25: - version "9.0.25" - resolved "https://npm.yc345.tv/nock/-/nock-9.0.25.tgz#0eb26c8a1f602919eaa5b488cd99cfa34b259390" - integrity sha1-DrJsih9gKRnqpbSIzZnPo0slk5A= - dependencies: - chai ">=1.9.2 <4.0.0" - debug "^2.2.0" - deep-equal "^1.0.0" - json-stringify-safe "^5.0.1" - lodash "~4.17.2" - mkdirp "^0.5.0" - propagate "0.4.0" - qs "^6.0.2" - semver "^5.3.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://npm.yc345.tv/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-uuid@~1.4.0: - version "1.4.8" - resolved "https://npm.yc345.tv/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" - integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://npm.yc345.tv/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.1: - version "2.1.1" - resolved "https://npm.yc345.tv/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -npm-run-all@4.1.1: - version "4.1.1" - resolved "https://npm.yc345.tv/npm-run-all/-/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb" - integrity sha1-MJXPPzys9X/LZishCrEMYJr23bs= - dependencies: - ansi-styles "^3.2.0" - chalk "^2.1.0" - cross-spawn "^5.1.0" - memory-streams "^0.1.2" - minimatch "^3.0.4" - ps-tree "^1.1.0" - read-pkg "^2.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://npm.yc345.tv/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nyc@11.2.1: - version "11.2.1" - resolved "https://npm.yc345.tv/nyc/-/nyc-11.2.1.tgz#ad850afe9dbad7f4970728b4b2e47fed1c38721c" - integrity sha1-rYUK/p261/SXByi0suR/7Rw4chw= - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^1.0.0" - convert-source-map "^1.3.0" - debug-log "^1.0.1" - default-require-extensions "^1.0.0" - find-cache-dir "^0.1.1" - find-up "^2.1.0" - foreground-child "^1.5.3" - glob "^7.0.6" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.0.7" - istanbul-lib-instrument "^1.8.0" - istanbul-lib-report "^1.1.1" - istanbul-lib-source-maps "^1.2.1" - istanbul-reports "^1.1.1" - md5-hex "^1.2.0" - merge-source-map "^1.0.2" - micromatch "^2.3.11" - mkdirp "^0.5.0" - resolve-from "^2.0.0" - rimraf "^2.5.4" - signal-exit "^3.0.1" - spawn-wrap "^1.3.8" - test-exclude "^4.1.1" - yargs "^8.0.1" - yargs-parser "^5.0.0" - -oauth-sign@~0.3.0: - version "0.3.0" - resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" - integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4= - -oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= - -object-assign@4.1.0: - version "4.1.0" - resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://npm.yc345.tv/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= - -object-is@^1.0.1: - version "1.1.2" - resolved "https://npm.yc345.tv/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://npm.yc345.tv/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.2" - resolved "https://npm.yc345.tv/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://npm.yc345.tv/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://npm.yc345.tv/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -opentracing@0.14.1: - version "0.14.1" - resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.14.1.tgz#40d278beea417660a35dd9d3ee76511ffa911dcd" - integrity sha1-QNJ4vupBdmCjXdnT7nZRH/qRHc0= - -opentracing@^0.13.0: - version "0.13.0" - resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.13.0.tgz#6a341442f09d7d866bc11ed03de1e3828e3d6aab" - integrity sha1-ajQUQvCdfYZrwR7QPeHjgo49aqs= - -optionator@^0.8.2: - version "0.8.3" - resolved "https://npm.yc345.tv/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-homedir@^1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I= - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://npm.yc345.tv/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://npm.yc345.tv/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -packet-reader@0.3.1: - version "0.3.1" - resolved "https://npm.yc345.tv/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" - integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc= - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://npm.yc345.tv/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://npm.yc345.tv/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parseurl@~1.3.2: - version "1.3.3" - resolved "https://npm.yc345.tv/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://npm.yc345.tv/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.5, path-parse@^1.0.6: - version "1.0.6" - resolved "https://npm.yc345.tv/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo= - dependencies: - isarray "0.0.1" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -pathval@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://npm.yc345.tv/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= - dependencies: - through "~2.3" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://npm.yc345.tv/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pg-connection-string@0.1.3, pg-connection-string@^0.1.3: - version "0.1.3" - resolved "https://npm.yc345.tv/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" - integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha1-lDvUY79bcbQXARX4D478mgwOt4w= - -pg-pool@1.*: - version "1.8.0" - resolved "https://npm.yc345.tv/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" - integrity sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc= - dependencies: - generic-pool "2.4.3" - object-assign "4.1.0" - -pg-types@1.*: - version "1.13.0" - resolved "https://npm.yc345.tv/pg-types/-/pg-types-1.13.0.tgz#75f490b8a8abf75f1386ef5ec4455ecf6b345c63" - integrity sha1-dfSQuKir918Thu9exEVez2s0XGM= - dependencies: - pg-int8 "1.0.1" - postgres-array "~1.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.0" - postgres-interval "^1.1.0" - -pg@6.4.0: - version "6.4.0" - resolved "https://npm.yc345.tv/pg/-/pg-6.4.0.tgz#cb76ba2e7c2eab89fc64bf7a9fe648ced72436dc" - integrity sha1-y3a6Lnwuq4n8ZL96n+ZIztckNtw= - dependencies: - buffer-writer "1.0.1" - packet-reader "0.3.1" - pg-connection-string "0.1.3" - pg-pool "1.*" - pg-types "1.*" - pgpass "1.x" - semver "4.3.2" - -pgpass@1.x: - version "1.0.2" - resolved "https://npm.yc345.tv/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" - integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= - dependencies: - split "^1.0.0" - -pidusage@^1.1.6: - version "1.2.0" - resolved "https://npm.yc345.tv/pidusage/-/pidusage-1.2.0.tgz#65ee96ace4e08a4cd3f9240996c85b367171ee92" - integrity sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://npm.yc345.tv/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://npm.yc345.tv/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://npm.yc345.tv/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c= - -postgres-array@~1.0.0: - version "1.0.3" - resolved "https://npm.yc345.tv/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" - integrity sha1-xWH8OyZrIUUfxlVThPSYbXjsgPU= - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= - -postgres-date@~1.0.0: - version "1.0.5" - resolved "https://npm.yc345.tv/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" - integrity sha1-cQsn3l8n1VD26AtdNPe6GJITwu4= - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://npm.yc345.tv/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha1-tGDILLFYdQd4iBmgaqD//bNURpU= - dependencies: - xtend "^4.0.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -preserve@^0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= - -process@^0.10.0: - version "0.10.1" - resolved "https://npm.yc345.tv/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" - integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= - -progress@^2.0.0: - version "2.0.3" - resolved "https://npm.yc345.tv/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= - -propagate@0.4.0: - version "0.4.0" - resolved "https://npm.yc345.tv/propagate/-/propagate-0.4.0.tgz#f3fcca0a6fe06736a7ba572966069617c130b481" - integrity sha1-8/zKCm/gZzanulcpZgaWF8EwtIE= - -proxy-addr@~2.0.2: - version "2.0.6" - resolved "https://npm.yc345.tv/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -ps-tree@^1.1.0: - version "1.2.0" - resolved "https://npm.yc345.tv/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha1-XnQluJUIc2zdTyIk0Cj3uz9yLr0= - dependencies: - event-stream "=3.3.4" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://npm.yc345.tv/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.33: - version "1.8.0" - resolved "https://npm.yc345.tv/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= - -punycode@^1.4.1: - version "1.4.1" - resolved "https://npm.yc345.tv/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://npm.yc345.tv/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= - -qs@6.5.1: - version "6.5.1" - resolved "https://npm.yc345.tv/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - integrity sha1-NJzfbu+J7EXBLX1es/wMhwNDptg= - -qs@^6.0.2, qs@^6.5.1: - version "6.9.3" - resolved "https://npm.yc345.tv/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha1-v63NKWwtVJ8d/6VgYZEyyXf1AI4= - -qs@~0.6.0: - version "0.6.6" - resolved "https://npm.yc345.tv/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" - integrity sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc= - -qs@~6.5.1: - version "6.5.2" - resolved "https://npm.yc345.tv/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://npm.yc345.tv/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha1-t3bvxZN1mE42xTey9RofCv8Noe0= - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -range-parser@~1.2.0: - version "1.2.1" - resolved "https://npm.yc345.tv/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= - -raw-body@2.3.2: - version "2.3.2" - resolved "https://npm.yc345.tv/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@2.2.7: - version "2.2.7" - resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" - integrity sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE= - dependencies: - buffer-shims "~1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~1.0.0" - util-deprecate "~1.0.1" - -readable-stream@2.3.3: - version "2.3.3" - resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - integrity sha1-No8lEtefnUb9/HE0mueHi7weuVw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readable-stream@^1.1.12: - version "1.1.14" - resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.2.9: - version "2.3.7" - resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@~1.0.2: - version "1.0.34" - resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://npm.yc345.tv/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= - dependencies: - resolve "^1.1.6" - -redis-commands@^1.2.0: - version "1.5.0" - resolved "https://npm.yc345.tv/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" - integrity sha1-gNLiBpj+aI8icSf/nlFkp90X54U= - -redis-parser@^2.6.0: - version "2.6.0" - resolved "https://npm.yc345.tv/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" - integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs= - -redis@2.8.0: - version "2.8.0" - resolved "https://npm.yc345.tv/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" - integrity sha1-ICKI4/WMSfYHnZevehDhMDrhSwI= - dependencies: - double-ended-queue "^2.1.0-0" - redis-commands "^1.2.0" - redis-parser "^2.6.0" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://npm.yc345.tv/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://npm.yc345.tv/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha1-db3FiioUls7EihKDW8VMjVYjNt0= - dependencies: - is-equal-shallow "^0.1.3" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://npm.yc345.tv/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://npm.yc345.tv/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://npm.yc345.tv/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://npm.yc345.tv/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://npm.yc345.tv/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request-promise-core@1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" - integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= - dependencies: - lodash "^4.13.1" - -request-promise-native@1.0.5: - version "1.0.5" - resolved "https://npm.yc345.tv/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" - integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= - dependencies: - request-promise-core "1.1.1" - stealthy-require "^1.1.0" - tough-cookie ">=2.3.3" - -request@2.83.0: - version "2.83.0" - resolved "https://npm.yc345.tv/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" - integrity sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y= - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@~2.34.0: - version "2.34.0" - resolved "https://npm.yc345.tv/request/-/request-2.34.0.tgz#b5d8b9526add4a2d4629f4d417124573996445ae" - integrity sha1-tdi5UmrdSi1GKfTUFxJFc5lkRa4= - dependencies: - forever-agent "~0.5.0" - json-stringify-safe "~5.0.0" - mime "~1.2.9" - node-uuid "~1.4.0" - qs "~0.6.0" - optionalDependencies: - aws-sign2 "~0.5.0" - form-data "~0.1.0" - hawk "~1.0.0" - http-signature "~0.10.0" - oauth-sign "~0.3.0" - tough-cookie ">=0.12.0" - tunnel-agent "~0.3.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://npm.yc345.tv/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-in-the-middle@2.1.2: - version "2.1.2" - resolved "https://npm.yc345.tv/require-in-the-middle/-/require-in-the-middle-2.1.2.tgz#bddb89316d45bcdb08e2c6186bd2e6e819a8eeae" - integrity sha1-vduJMW1FvNsI4sYYa9Lm6Bmo7q4= - dependencies: - module-details-from-path "^1.0.2" - resolve "^1.1.7" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -require_optional@~1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" - integrity sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4= - dependencies: - resolve-from "^2.0.0" - semver "^5.1.0" - -resolve-dir@^0.1.0: - version "0.1.1" - resolved "https://npm.yc345.tv/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" - integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= - dependencies: - expand-tilde "^1.2.2" - global-modules "^0.2.3" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1: - version "1.16.1" - resolved "https://npm.yc345.tv/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c" - integrity sha1-SfrF2LrPH9U/IA+lEkeuc2F1gyw= - dependencies: - path-parse "^1.0.6" - -restify-errors@^5.0.0: - version "5.0.0" - resolved "https://npm.yc345.tv/restify-errors/-/restify-errors-5.0.0.tgz#668717e100683eec6ce0d515f89ff1dbec254a8d" - integrity sha1-ZocX4QBoPuxs4NUV+J/x2+wlSo0= - dependencies: - assert-plus "^1.0.0" - lodash "^4.2.1" - verror "^1.8.1" - optionalDependencies: - safe-json-stringify "^1.0.3" - -restify@6.2.3: - version "6.2.3" - resolved "https://npm.yc345.tv/restify/-/restify-6.2.3.tgz#6cfb4735979d6b2d22bf87f7bdfca7e93932b678" - integrity sha1-bPtHNZeday0iv4f3vfyn6Tkytng= - dependencies: - assert-plus "^1.0.0" - bunyan "^1.8.12" - clone-regexp "^1.0.0" - csv "^1.1.1" - escape-regexp-component "^1.0.2" - ewma "^2.0.1" - formidable "^1.1.1" - http-signature "^1.2.0" - lodash "^4.17.4" - lru-cache "^4.1.1" - mime "^1.4.1" - negotiator "^0.6.1" - once "^1.4.0" - pidusage "^1.1.6" - qs "^6.5.1" - restify-errors "^5.0.0" - semver "^5.4.1" - spdy "^3.4.7" - uuid "^3.1.0" - vasync "^1.6.4" - verror "^1.10.0" - optionalDependencies: - dtrace-provider "^0.8.1" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.7.1" - resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= - dependencies: - glob "^7.1.3" - -rimraf@~2.4.0: - version "2.4.5" - resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" - integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= - dependencies: - glob "^6.0.1" - -rimraf@~2.6.2: - version "2.6.3" - resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= - dependencies: - glob "^7.1.3" - -run-async@^2.2.0: - version "2.4.0" - resolved "https://npm.yc345.tv/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" - integrity sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg= - dependencies: - is-promise "^2.1.0" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://npm.yc345.tv/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://npm.yc345.tv/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha1-iTMSr2myEj3vcfV4iQAWce6yyFM= - -safe-buffer@^5.0.1, safe-buffer@^5.1.1: - version "5.2.0" - resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= - -safe-json-stringify@^1.0.3, safe-json-stringify@~1: - version "1.2.0" - resolved "https://npm.yc345.tv/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" - integrity sha1-NW5EvJjx+TzkXfFLzXwBzahuCv0= - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://npm.yc345.tv/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= - -samsam@1.x: - version "1.3.0" - resolved "https://npm.yc345.tv/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - integrity sha1-jR2TUOJWItow3j5EumkrUiGrfFA= - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: - version "5.7.1" - resolved "https://npm.yc345.tv/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@4.3.2: - version "4.3.2" - resolved "https://npm.yc345.tv/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" - integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= - -semver@5.4.1: - version "5.4.1" - resolved "https://npm.yc345.tv/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -send@0.16.1: - version "0.16.1" - resolved "https://npm.yc345.tv/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" - integrity sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM= - dependencies: - debug "2.6.9" - depd "~1.1.1" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" - -serve-static@1.13.1: - version "1.13.1" - resolved "https://npm.yc345.tv/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" - integrity sha1-TFfVNASnYdjy58HooYpH2/J4pxk= - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://npm.yc345.tv/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@^1.6.1: - version "1.7.2" - resolved "https://npm.yc345.tv/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" - integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= - -shimmer@1.1.0: - version "1.1.0" - resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35" - integrity sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU= - -shimmer@^1.2.0: - version "1.2.1" - resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha1-YQhZ994ye1h+/r9QH7QxF/mv8zc= - -signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://npm.yc345.tv/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= - -sinon-chai@2.14.0: - version "2.14.0" - resolved "https://npm.yc345.tv/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" - integrity sha1-2n3UzIPNaiYLZ8yg96n9riahIF0= - -sinon@4.0.2: - version "4.0.2" - resolved "https://npm.yc345.tv/sinon/-/sinon-4.0.2.tgz#c81f62456d37986c84e9f522ddb9ce413bda49d2" - integrity sha1-yB9iRW03mGyE6fUi3bnOQTvaSdI= - dependencies: - diff "^3.1.0" - formatio "1.2.0" - lodash.get "^4.4.2" - lolex "^2.1.3" - nise "^1.2.0" - supports-color "^4.4.0" - type-detect "^4.0.0" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00= - dependencies: - is-fullwidth-code-point "^2.0.0" - -slide@^1.1.5: - version "1.1.6" - resolved "https://npm.yc345.tv/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - -sntp@0.2.x: - version "0.2.4" - resolved "https://npm.yc345.tv/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" - integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA= - dependencies: - hoek "0.9.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://npm.yc345.tv/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - integrity sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg= - dependencies: - hoek "4.x.x" - -source-map@^0.5.3, source-map@^0.5.7: - version "0.5.7" - resolved "https://npm.yc345.tv/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.1: - version "0.6.1" - resolved "https://npm.yc345.tv/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= - -spawn-wrap@^1.3.8: - version "1.4.3" - resolved "https://npm.yc345.tv/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" - integrity sha1-gbdnDhcMyiR9gL9frwz7cTvc+Eg= - dependencies: - foreground-child "^1.5.6" - mkdirp "^0.5.0" - os-homedir "^1.0.1" - rimraf "^2.6.2" - signal-exit "^3.0.2" - which "^1.3.0" - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://npm.yc345.tv/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://npm.yc345.tv/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://npm.yc345.tv/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= - -spdy-transport@^2.0.18: - version "2.1.1" - resolved "https://npm.yc345.tv/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" - integrity sha1-xUgV1zhYqt0GzmMAHn0l+mRBYjs= - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.7: - version "3.4.7" - resolved "https://npm.yc345.tv/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw= - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -split@0.3: - version "0.3.3" - resolved "https://npm.yc345.tv/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -split@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" - integrity sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k= - dependencies: - through "2" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://npm.yc345.tv/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sqlstring@2.3.0: - version "2.3.0" - resolved "https://npm.yc345.tv/sqlstring/-/sqlstring-2.3.0.tgz#525b8a4fd26d6f71aa61e822a6caf976d31ad2a8" - integrity sha1-UluKT9Jtb3GqYegipsr5dtMa0qg= - -sshpk@^1.14.1, sshpk@^1.7.0: - version "1.16.1" - resolved "https://npm.yc345.tv/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-chain@^1.3.7: - version "1.3.7" - resolved "https://npm.yc345.tv/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285" - integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU= - -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://npm.yc345.tv/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://npm.yc345.tv/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -stealthy-require@^1.1.0: - version "1.1.1" - resolved "https://npm.yc345.tv/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://npm.yc345.tv/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= - dependencies: - duplexer "~0.1.1" - -stream-transform@^0.2.2: - version "0.2.2" - resolved "https://npm.yc345.tv/stream-transform/-/stream-transform-0.2.2.tgz#75867487f49528f8bf1d82499658753d02df7838" - integrity sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg= - -string-template@~0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://npm.yc345.tv/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string.prototype.padend@^3.0.0: - version "3.1.0" - resolved "https://npm.yc345.tv/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" - integrity sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://npm.yc345.tv/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha1-RAiqLl1t3QyagHObCH+8BnwDs8w= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://npm.yc345.tv/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha1-x28c7zDyG7rYr+uNsVEUls+w8qM= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://npm.yc345.tv/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - integrity sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs= - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= - dependencies: - safe-buffer "~5.1.0" - -stringstream@~0.0.5: - version "0.0.6" - resolved "https://npm.yc345.tv/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" - integrity sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI= - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://npm.yc345.tv/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -super-request@1.2.0: - version "1.2.0" - resolved "https://npm.yc345.tv/super-request/-/super-request-1.2.0.tgz#e966a259fdcfd944fad6ad3b3817cd08ef77aa88" - integrity sha1-6WaiWf3P2UT61q07OBfNCO93qog= - dependencies: - comb "~1.0.0" - methods "0.1.0" - request "~2.34.0" - -supports-color@3.1.2: - version "3.1.2" - resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" - integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU= - dependencies: - has-flag "^1.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^4.4.0: - version "4.5.0" - resolved "https://npm.yc345.tv/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= - dependencies: - has-flag "^2.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://npm.yc345.tv/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -table@^4.0.1: - version "4.0.3" - resolved "https://npm.yc345.tv/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" - integrity sha1-ALXitgLxeUuayvnKkIp2OGp4E7w= - dependencies: - ajv "^6.0.1" - ajv-keywords "^3.0.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -test-exclude@^4.1.1: - version "4.2.3" - resolved "https://npm.yc345.tv/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" - integrity sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA= - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -text-table@~0.2.0: - version "0.2.0" - resolved "https://npm.yc345.tv/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thriftrw@^3.5.0: - version "3.12.0" - resolved "https://npm.yc345.tv/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" - integrity sha1-MIV4R3VefwNrLgp50RyfVQdVOdk= - dependencies: - bufrw "^1.3.0" - error "7.0.2" - long "^2.4.0" - -through@2, through@^2.3.6, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://npm.yc345.tv/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tildify@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/tildify/-/tildify-1.0.0.tgz#2a021db5e8fbde0a8f8b4df37adaa8fb1d39d7dd" - integrity sha1-KgIdtej73gqPi03zetqo+x05190= - dependencies: - user-home "^1.0.0" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://npm.yc345.tv/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= - dependencies: - os-tmpdir "~1.0.2" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://npm.yc345.tv/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -tough-cookie@>=0.12.0, tough-cookie@>=2.3.3: - version "4.0.0" - resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ= - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - integrity sha1-7GDO44rGdQY//JelwYlwV47oNlU= - dependencies: - punycode "^1.4.1" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel-agent@~0.3.0: - version "0.3.0" - resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" - integrity sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4= - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://npm.yc345.tv/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://npm.yc345.tv/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@0.1.1: - version "0.1.1" - resolved "https://npm.yc345.tv/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= - -type-detect@4.0.8, type-detect@^4.0.0: - version "4.0.8" - resolved "https://npm.yc345.tv/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw= - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= - -type-is@~1.6.15: - version "1.6.18" - resolved "https://npm.yc345.tv/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://npm.yc345.tv/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uglify-js@^3.1.4: - version "3.9.1" - resolved "https://npm.yc345.tv/uglify-js/-/uglify-js-3.9.1.tgz#a56a71c8caa2d36b5556cc1fd57df01ae3491539" - integrity sha1-pWpxyMqi02tVVswf1X3wGuNJFTk= - dependencies: - commander "~2.20.3" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://npm.yc345.tv/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://npm.yc345.tv/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= - dependencies: - punycode "^2.1.0" - -user-home@^1.0.0, user-home@^1.1.1: - version "1.1.1" - resolved "https://npm.yc345.tv/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://npm.yc345.tv/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://npm.yc345.tv/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@3.1.0: - version "3.1.0" - resolved "https://npm.yc345.tv/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" - integrity sha1-PdPT55Crwk17DToDT/q6vijrvAQ= - -uuid@^3.0.0, uuid@^3.1.0: - version "3.4.0" - resolved "https://npm.yc345.tv/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= - -v8flags@^2.0.2: - version "2.1.1" - resolved "https://npm.yc345.tv/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= - dependencies: - user-home "^1.1.1" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://npm.yc345.tv/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://npm.yc345.tv/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vasync@^1.6.4: - version "1.6.4" - resolved "https://npm.yc345.tv/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f" - integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8= - dependencies: - verror "1.6.0" - -verror@1.10.0, verror@^1.10.0, verror@^1.8.1: - version "1.10.0" - resolved "https://npm.yc345.tv/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -verror@1.6.0: - version "1.6.0" - resolved "https://npm.yc345.tv/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" - integrity sha1-fROyex+swuLakEBetepuW90lLqU= - dependencies: - extsprintf "1.2.0" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "https://npm.yc345.tv/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= - dependencies: - minimalistic-assert "^1.0.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://npm.yc345.tv/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://npm.yc345.tv/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= - dependencies: - isexe "^2.0.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://npm.yc345.tv/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://npm.yc345.tv/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://npm.yc345.tv/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://npm.yc345.tv/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^1.1.4: - version "1.3.4" - resolved "https://npm.yc345.tv/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write@^0.2.1: - version "0.2.1" - resolved "https://npm.yc345.tv/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - -xorshift@^0.2.0: - version "0.2.1" - resolved "https://npm.yc345.tv/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" - integrity sha1-/NgiZ+k1HBPw+5xzMH8lMx0pxjo= - -xtend@^4.0.0, xtend@~4.0.0: - version "4.0.2" - resolved "https://npm.yc345.tv/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= - -y18n@^3.2.1: - version "3.2.1" - resolved "https://npm.yc345.tv/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -yallist@^2.1.2: - version "2.1.2" - resolved "https://npm.yc345.tv/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= - dependencies: - camelcase "^4.1.0" - -yargs@^8.0.1: - version "8.0.2" - resolved "https://npm.yc345.tv/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" From f6dd53db37ebc9799b0eda01c515ac2a4bfcba14 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Fri, 8 May 2020 11:15:15 +0800 Subject: [PATCH 04/30] update expressError rootSpans sometimes is undefined --- package.json | 4 ++-- src/instrumentation/expressError.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index c11e651..6b78501 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@risingstack/opentracing-auto", - "version": "1.5.2", + "name": "@guanghe/primary-opentracing-auto", + "version": "1.5.7", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/expressError.js b/src/instrumentation/expressError.js index 5969c8b..aaf0cac 100644 --- a/src/instrumentation/expressError.js +++ b/src/instrumentation/expressError.js @@ -29,8 +29,8 @@ function patch (express, tracers) { shimmer.wrap(lastLayer, 'handle_error', (originalHandleError) => function (err, req, res, next) { - const rootSpans = tracers.map((tracer) => cls.getRootSpan(tracer)) - + let rootSpans = tracers.map((tracer) => cls.getRootSpan(tracer)) + rootSpans = rootSpans.filter((rootSpan) => rootSpan) if (rootSpans.length) { rootSpans.forEach((rootSpan) => rootSpan.setTag(Tags.ERROR, true)) } From 32e12e34cd41c028700c3a8dc0d95f84c9339523 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 14:06:56 +0800 Subject: [PATCH 05/30] update span name --- src/instrumentation/express.js | 9 +- src/instrumentation/expressError.js | 9 +- src/instrumentation/httpClient.js | 11 +- src/instrumentation/koa.js | 9 +- yarn.lock | 4493 +++++++++++++++++++++++++++ 5 files changed, 4514 insertions(+), 17 deletions(-) create mode 100644 yarn.lock diff --git a/src/instrumentation/express.js b/src/instrumentation/express.js index c276e7e..b8e4f3a 100644 --- a/src/instrumentation/express.js +++ b/src/instrumentation/express.js @@ -25,8 +25,9 @@ function patch (express, tracers) { // start const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) + const SPAN_NAME = req.originalUrl || OPERATION_NAME const spans = parentSpanContexts.map((parentSpanContext, key) => - cls.startRootSpan(tracers[key], OPERATION_NAME, { + cls.startRootSpan(tracers[key], SPAN_NAME, { childOf: parentSpanContext, tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, @@ -34,7 +35,7 @@ function patch (express, tracers) { [Tags.HTTP_METHOD]: req.method } })) - debug(`Operation started ${OPERATION_NAME}`, { + debug(`Operation started ${SPAN_NAME}`, { [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: req.method }) @@ -59,7 +60,7 @@ function patch (express, tracers) { if (res.statusCode >= 400) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) - debug(`Operation error captured ${OPERATION_NAME}`, { + debug(`Operation error captured ${SPAN_NAME}`, { reason: 'Bad status code', statusCode: res.statusCode }) @@ -67,7 +68,7 @@ function patch (express, tracers) { spans.forEach((span) => span.finish()) - debug(`Operation finished ${OPERATION_NAME}`, { + debug(`Operation finished ${SPAN_NAME}`, { [Tags.HTTP_STATUS_CODE]: res.statusCode }) diff --git a/src/instrumentation/expressError.js b/src/instrumentation/expressError.js index aaf0cac..4c312b9 100644 --- a/src/instrumentation/expressError.js +++ b/src/instrumentation/expressError.js @@ -29,6 +29,7 @@ function patch (express, tracers) { shimmer.wrap(lastLayer, 'handle_error', (originalHandleError) => function (err, req, res, next) { + const SPAN_NAME = req.originalUrl || OPERATION_NAME let rootSpans = tracers.map((tracer) => cls.getRootSpan(tracer)) rootSpans = rootSpans.filter((rootSpan) => rootSpan) if (rootSpans.length) { @@ -36,13 +37,13 @@ function patch (express, tracers) { } // error span - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, OPERATION_NAME, { + const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { tags: { [Tags.ERROR]: true } })) - debug(`Operation started ${OPERATION_NAME}`) + debug(`Operation started ${SPAN_NAME}`) spans.forEach((span) => span.log({ event: 'error', @@ -51,13 +52,13 @@ function patch (express, tracers) { stack: err.stack })) - debug(`Operation error captured ${OPERATION_NAME}`, { + debug(`Operation error captured ${SPAN_NAME}`, { reason: 'Error handler' }) spans.forEach((span) => span.finish()) - debug(`Operation finished ${OPERATION_NAME}`) + debug(`Operation finished ${SPAN_NAME}`) return originalHandleError.call(this, err, req, res, next) }) diff --git a/src/instrumentation/httpClient.js b/src/instrumentation/httpClient.js index d623065..ae9e2f9 100644 --- a/src/instrumentation/httpClient.js +++ b/src/instrumentation/httpClient.js @@ -99,8 +99,9 @@ function patch (http, tracers, { httpTimings } = {}) { } const uri = extractUrl(options) + const SPAN_NAME = uri || OPERATION_NAME const method = options.method || 'GET' - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, OPERATION_NAME, { + const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, [Tags.HTTP_URL]: uri, @@ -118,7 +119,7 @@ function patch (http, tracers, { httpTimings } = {}) { } let isFinish = false - debug(`Operation started ${OPERATION_NAME}`, { + debug(`Operation started ${SPAN_NAME}`, { [Tags.HTTP_URL]: uri, [Tags.HTTP_METHOD]: method }) @@ -144,7 +145,7 @@ function patch (http, tracers, { httpTimings } = {}) { if (res.statusCode > 399) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) - debug(`Operation error captured ${OPERATION_NAME}`, { + debug(`Operation error captured ${SPAN_NAME}`, { reason: 'Bad status code', statusCode: res.statusCode }) @@ -168,7 +169,7 @@ function patch (http, tracers, { httpTimings } = {}) { finish(res) }) - debug(`Operation finished ${OPERATION_NAME}`, { + debug(`Operation finished ${SPAN_NAME}`, { [Tags.HTTP_STATUS_CODE]: res.statusCode }) @@ -207,7 +208,7 @@ function patch (http, tracers, { httpTimings } = {}) { stack: err.stack })) - debug(`Operation error captured ${OPERATION_NAME}`, { + debug(`Operation error captured ${SPAN_NAME}`, { reason: 'Error event', errorMessage: err.message }) diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js index b0ff7c1..8eaa9b6 100644 --- a/src/instrumentation/koa.js +++ b/src/instrumentation/koa.js @@ -25,9 +25,10 @@ function patch (koa, tracers) { return cls.runAndReturn(() => { // start const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` + const SPAN_NAME = ctx.originalUrl || OPERATION_NAME const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) const spans = parentSpanContexts.map((parentSpanContext, key) => - cls.startRootSpan(tracers[key], OPERATION_NAME, { + cls.startRootSpan(tracers[key], SPAN_NAME, { childOf: parentSpanContext, tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, @@ -35,7 +36,7 @@ function patch (koa, tracers) { [Tags.HTTP_METHOD]: ctx.method } })) - debug(`Operation started ${OPERATION_NAME}`, { + debug(`Operation started ${SPAN_NAME}`, { [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: ctx.method }) @@ -60,7 +61,7 @@ function patch (koa, tracers) { if (res.statusCode >= 400) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) - debug(`Operation error captured ${OPERATION_NAME}`, { + debug(`Operation error captured ${SPAN_NAME}`, { reason: 'Bad status code', statusCode: res.statusCode }) @@ -68,7 +69,7 @@ function patch (koa, tracers) { spans.forEach((span) => span.finish()) - debug(`Operation finished ${OPERATION_NAME}`, { + debug(`Operation finished ${SPAN_NAME}`, { [Tags.HTTP_STATUS_CODE]: res.statusCode }) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..a3541be --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4493 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.7.0": + version "1.8.0" + resolved "https://npm.yc345.tv/@sinonjs%2fcommons/-/commons-1.8.0.tgz#c8d68821a854c555bba172f3b06959a0039b236d" + integrity sha1-yNaIIahUxVW7oXLzsGlZoAObI20= + dependencies: + type-detect "4.0.8" + +"@sinonjs/formatio@^3.2.1": + version "3.2.2" + resolved "https://npm.yc345.tv/@sinonjs%2fformatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" + integrity sha1-dxxg36dep/LWjjuUx+iIp4eBNyw= + dependencies: + "@sinonjs/commons" "^1" + "@sinonjs/samsam" "^3.1.0" + +"@sinonjs/samsam@^3.1.0": + version "3.3.3" + resolved "https://npm.yc345.tv/@sinonjs%2fsamsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + integrity sha1-Rmgu/Zlnslm4ETa58SD9VFhf60o= + dependencies: + "@sinonjs/commons" "^1.3.0" + array-from "^2.1.1" + lodash "^4.17.15" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://npm.yc345.tv/@sinonjs%2ftext-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU= + +accepts@~1.3.4: + version "1.3.7" + resolved "https://npm.yc345.tv/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://npm.yc345.tv/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.5.0: + version "5.7.4" + resolved "https://npm.yc345.tv/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha1-Po2KmUfQWZoXltECJddDL0pKz14= + +ajv-keywords@^3.0.0: + version "3.4.1" + resolved "https://npm.yc345.tv/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= + +ajv@^5.1.0, ajv@^5.2.0: + version "5.5.2" + resolved "https://npm.yc345.tv/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.0.1: + version "6.12.2" + resolved "https://npm.yc345.tv/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha1-xinF7O0XuvMUQ3kY0tqIyZ1ZWM0= + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-color@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" + integrity sha1-PnXAN0dSF1RO12Oo21cJ+prlv5o= + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://npm.yc345.tv/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= + dependencies: + default-require-extensions "^1.0.0" + +archy@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +argparse@^1.0.7: + version "1.0.10" + resolved "https://npm.yc345.tv/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-from@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@0.1.11: + version "0.1.11" + resolved "https://npm.yc345.tv/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://npm.yc345.tv/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://npm.yc345.tv/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA= + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs= + +async-hook-jl@^1.7.6: + version "1.7.6" + resolved "https://npm.yc345.tv/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68" + integrity sha1-T9JcL4ZNuvJ5xhDXO/l7GyhZXmg= + dependencies: + stack-chain "^1.3.7" + +async@~0.9.0: + version "0.9.2" + resolved "https://npm.yc345.tv/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + integrity sha1-xXED96F/wDfwLXwuZLYC6iI/fWM= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://npm.yc345.tv/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.6.0: + version "1.10.0" + resolved "https://npm.yc345.tv/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha1-oXs6jqgRBg501H0wYSJACtRJeuI= + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-generator@^6.18.0: + version "6.26.1" + resolved "https://npm.yc345.tv/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA= + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://npm.yc345.tv/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.11.6, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://npm.yc345.tv/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://npm.yc345.tv/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://npm.yc345.tv/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bignumber.js@4.0.4: + version "4.0.4" + resolved "https://npm.yc345.tv/bignumber.js/-/bignumber.js-4.0.4.tgz#7c40f5abcd2d6623ab7b99682ee7db81b11889a4" + integrity sha1-fED1q80tZiOre5loLufbgbEYiaQ= + +bluebird@^3.4.6: + version "3.7.2" + resolved "https://npm.yc345.tv/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + +body-parser@1.18.2: + version "1.18.2" + resolved "https://npm.yc345.tv/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@0.4.x: + version "0.4.2" + resolved "https://npm.yc345.tv/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + integrity sha1-emNune1O/O+xnO9JR6PGffrukRs= + dependencies: + hoek "0.9.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://npm.yc345.tv/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE= + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://npm.yc345.tv/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + integrity sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI= + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://npm.yc345.tv/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://npm.yc345.tv/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8= + +bson@~1.0.4: + version "1.0.9" + resolved "https://npm.yc345.tv/bson/-/bson-1.0.9.tgz#12319f8323b1254739b7c6bef8d3e89ae05a2f57" + integrity sha1-EjGfgyOxJUc5t8a++NPomuBaL1c= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://npm.yc345.tv/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + +buffer-writer@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/buffer-writer/-/buffer-writer-1.0.1.tgz#22a936901e3029afcd7547eb4487ceb697a3bf08" + integrity sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg= + +bufrw@^1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" + integrity sha1-KNbP2vNDADdoNjEPXDHVfutAyPo= + dependencies: + ansi-color "^0.2.1" + error "^7.0.0" + hexer "^1.5.0" + xtend "^4.0.0" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +bunyan@^1.8.12: + version "1.8.12" + resolved "https://npm.yc345.tv/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" + integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c= + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +caching-transform@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE= + dependencies: + md5-hex "^1.2.0" + mkdirp "^0.5.1" + write-file-atomic "^1.1.4" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +caseless@~0.12.0: + version "0.12.0" + resolved "https://npm.yc345.tv/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chai@4.1.2: + version "4.1.2" + resolved "https://npm.yc345.tv/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +"chai@>=1.9.2 <4.0.0": + version "3.5.0" + resolved "https://npm.yc345.tv/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + integrity sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc= + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.1.0: + version "2.4.2" + resolved "https://npm.yc345.tv/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://npm.yc345.tv/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +check-error@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://npm.yc345.tv/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY= + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://npm.yc345.tv/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha1-sEM9C06chH7xiGik7xb9X8gnHEg= + +cliui@^3.2.0: + version "3.2.0" + resolved "https://npm.yc345.tv/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-regexp@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" + integrity sha1-BRgFzTMXM3XYIRj8CRhgbaOf1g8= + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +cls-hooked@4.2.2: + version "4.2.2" + resolved "https://npm.yc345.tv/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908" + integrity sha1-rS6aQJJoDNr/6y01UdoOIl6uGQg= + dependencies: + async-hook-jl "^1.7.6" + emitter-listener "^1.0.1" + semver "^5.4.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://npm.yc345.tv/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://npm.yc345.tv/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +comb@~1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/comb/-/comb-1.0.1.tgz#4856c957235d8ecd67d86535ada1852671b871b0" + integrity sha1-SFbJVyNdjs1n2GU1raGFJnG4cbA= + +combined-stream@^1.0.6, combined-stream@~1.0.5: + version "1.0.8" + resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://npm.yc345.tv/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8= + dependencies: + delayed-stream "0.0.5" + +commander@2.9.0: + version "2.9.0" + resolved "https://npm.yc345.tv/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.2.0, commander@~2.20.3: + version "2.20.3" + resolved "https://npm.yc345.tv/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://npm.yc345.tv/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.0: + version "1.6.2" + resolved "https://npm.yc345.tv/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://npm.yc345.tv/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + +content-type@~1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= + +convert-source-map@^1.3.0: + version "1.7.0" + resolved "https://npm.yc345.tv/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://npm.yc345.tv/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://npm.yc345.tv/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +core-js@^2.4.0: + version "2.6.11" + resolved "https://npm.yc345.tv/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://npm.yc345.tv/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cross-spawn@^4: + version "4.0.2" + resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://npm.yc345.tv/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw= + dependencies: + boom "0.4.x" + +cryptiles@3.x.x: + version "3.1.4" + resolved "https://npm.yc345.tv/cryptiles/-/cryptiles-3.1.4.tgz#769a68c95612b56faadfcebf57ac86479cbe8322" + integrity sha1-dppoyVYStW+q386/V6yGR5y+gyI= + dependencies: + boom "5.x.x" + +csv-generate@^1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/csv-generate/-/csv-generate-1.1.2.tgz#ec6b00edaed6e59ad9c20582f4c364e28b146240" + integrity sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA= + +csv-parse@^1.3.3: + version "1.3.3" + resolved "https://npm.yc345.tv/csv-parse/-/csv-parse-1.3.3.tgz#d1cfd8743c2f849a0abb2fd544db56695d19a490" + integrity sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA= + +csv-stringify@^1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/csv-stringify/-/csv-stringify-1.1.2.tgz#77a41526581bce3380f12b00d7c5bbac70c82b58" + integrity sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g= + dependencies: + lodash.get "~4.4.2" + +csv@^1.1.1: + version "1.2.1" + resolved "https://npm.yc345.tv/csv/-/csv-1.2.1.tgz#5231edfc1c7152512ec45781076a7a97ff525c0c" + integrity sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw= + dependencies: + csv-generate "^1.1.2" + csv-parse "^1.3.3" + csv-stringify "^1.1.2" + stream-transform "^0.2.2" + +ctype@0.5.3: + version "0.5.3" + resolved "https://npm.yc345.tv/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://npm.yc345.tv/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug-log@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@*: + version "4.1.1" + resolved "https://npm.yc345.tv/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@2.6.8: + version "2.6.8" + resolved "https://npm.yc345.tv/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw= + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://npm.yc345.tv/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0: + version "3.1.0" + resolved "https://npm.yc345.tv/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.0.1, debug@^3.1.0: + version "3.2.6" + resolved "https://npm.yc345.tv/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://npm.yc345.tv/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= + dependencies: + type-detect "0.1.1" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha1-38lARACtHI/gI+faHfHBR8S0RN8= + dependencies: + type-detect "^4.0.0" + +deep-equal@^1.0.0: + version "1.1.1" + resolved "https://npm.yc345.tv/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://npm.yc345.tv/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + dependencies: + object-keys "^1.0.12" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8= + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= + +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + integrity sha1-STXe39lIhkjgBrASlWbpOGcR6mM= + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-node@^2.0.3: + version "2.0.4" + resolved "https://npm.yc345.tv/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= + +diff@3.2.0: + version "3.2.0" + resolved "https://npm.yc345.tv/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k= + +diff@^3.1.0: + version "3.5.0" + resolved "https://npm.yc345.tv/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI= + +doctrine@1.5.0: + version "1.5.0" + resolved "https://npm.yc345.tv/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha1-XNAfwQFiG0LEzX9dGmYkNxbT850= + dependencies: + esutils "^2.0.2" + +double-ended-queue@^2.1.0-0: + version "2.1.0-0" + resolved "https://npm.yc345.tv/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" + integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw= + +dtrace-provider@^0.8.1, dtrace-provider@~0.8: + version "0.8.8" + resolved "https://npm.yc345.tv/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha1-KZbVSQw34TR74mO0I+17KX+w2X4= + dependencies: + nan "^2.14.0" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://npm.yc345.tv/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +emitter-listener@^1.0.1: + version "1.1.2" + resolved "https://npm.yc345.tv/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" + integrity sha1-VrFA6PaZI3Wz18ssqxzHQy2WMug= + dependencies: + shimmer "^1.2.0" + +encodeurl@~1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://npm.yc345.tv/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + dependencies: + is-arrayish "^0.2.1" + +error@7.0.2: + version "7.0.2" + resolved "https://npm.yc345.tv/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://npm.yc345.tv/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha1-6rIaRom19oT8g9qEoOOQ3oLZSJQ= + dependencies: + string-template "~0.2.1" + +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://npm.yc345.tv/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk= + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://npm.yc345.tv/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + integrity sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q= + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-regexp-component@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" + integrity sha1-nGO20LJf8qiMOtvRjFthrMO5+qI= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-airbnb-base@12.1.0: + version "12.1.0" + resolved "https://npm.yc345.tv/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" + integrity sha1-OGRB5UoSzNlXsKklZKS6/r10eUQ= + dependencies: + eslint-restricted-globals "^0.1.1" + +eslint-import-resolver-node@^0.3.1: + version "0.3.3" + resolved "https://npm.yc345.tv/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha1-26pStrKBa1C8ZxGvdUIt6AjphAQ= + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.1.1: + version "2.6.0" + resolved "https://npm.yc345.tv/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y= + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-import@2.8.0: + version "2.8.0" + resolved "https://npm.yc345.tv/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" + integrity sha1-+htu8x/LPFAcCYWcG4bx/FuYaJQ= + dependencies: + builtin-modules "^1.1.1" + contains-path "^0.1.0" + debug "^2.6.8" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.1" + eslint-module-utils "^2.1.1" + has "^1.0.1" + lodash.cond "^4.3.0" + minimatch "^3.0.3" + read-pkg-up "^2.0.0" + +eslint-plugin-promise@3.6.0: + version "3.6.0" + resolved "https://npm.yc345.tv/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz#54b7658c8f454813dc2a870aff8152ec4969ba75" + integrity sha1-VLdljI9FSBPcKocK/4FS7ElpunU= + +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://npm.yc345.tv/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU= + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@4.9.0: + version "4.9.0" + resolved "https://npm.yc345.tv/eslint/-/eslint-4.9.0.tgz#76879d274068261b191fe0f2f56c74c2f4208e8b" + integrity sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos= + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.0.1" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.1" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.5.1: + version "3.5.4" + resolved "https://npm.yc345.tv/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha1-sPRHGHyKi+2US4FaZgvd9d610ac= + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://npm.yc345.tv/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +esquery@^1.0.0: + version "1.3.1" + resolved "https://npm.yc345.tv/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc= + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://npm.yc345.tv/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://npm.yc345.tv/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://npm.yc345.tv/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://npm.yc345.tv/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= + +etag@~1.8.1: + version "1.8.1" + resolved "https://npm.yc345.tv/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-stream@=3.3.4: + version "3.3.4" + resolved "https://npm.yc345.tv/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +ewma@^2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" + integrity sha1-mHbBxJGsVzPIZmABo5YaBMl88eg= + dependencies: + assert-plus "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://npm.yc345.tv/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://npm.yc345.tv/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://npm.yc345.tv/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + dependencies: + os-homedir "^1.0.1" + +express@4.16.2: + version "4.16.2" + resolved "https://npm.yc345.tv/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" + integrity sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w= + dependencies: + accepts "~1.3.4" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.2" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@^3.0.0, extend@~3.0.1: + version "3.0.2" + resolved "https://npm.yc345.tv/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://npm.yc345.tv/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha1-BFURz9jRM/OEZnPRBHwVTiFK09U= + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://npm.yc345.tv/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" + integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk= + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://npm.yc345.tv/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://npm.yc345.tv/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ= + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://npm.yc345.tv/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +figures@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://npm.yc345.tv/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha1-6x53OrsFbc2N8r/favWbizqTZWU= + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://npm.yc345.tv/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://npm.yc345.tv/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + integrity sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI= + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://npm.yc345.tv/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + integrity sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU= + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://npm.yc345.tv/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha1-LC73dSXMKSkAff/6HdMUqpyd7m8= + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +foreground-child@^1.5.3, foreground-child@^1.5.6: + version "1.5.6" + resolved "https://npm.yc345.tv/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + integrity sha1-T9ca0t/elnibmApcCilZN8svXOk= + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://npm.yc345.tv/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~0.1.0: + version "0.1.4" + resolved "https://npm.yc345.tv/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI= + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +form-data@~2.3.1: + version "2.3.3" + resolved "https://npm.yc345.tv/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +formatio@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" + integrity sha1-87IWfZBoxGmKjVH092CjmlTYGOs= + dependencies: + samsam "1.x" + +formidable@^1.1.1: + version "1.2.2" + resolved "https://npm.yc345.tv/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" + integrity sha1-v2muopcpgmdfAIZTQrmCmG9rjdk= + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://npm.yc345.tv/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from@~0: + version "0.1.7" + resolved "https://npm.yc345.tv/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +generic-pool@2.4.3: + version "2.4.3" + resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" + integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= + +generic-pool@^2.4.2: + version "2.5.4" + resolved "https://npm.yc345.tv/generic-pool/-/generic-pool-2.5.4.tgz#38c6188513e14030948ec6e5cf65523d9779299b" + integrity sha1-OMYYhRPhQDCUjsblz2VSPZd5KZs= + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://npm.yc345.tv/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://npm.yc345.tv/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob@7.1.1: + version "7.1.1" + resolved "https://npm.yc345.tv/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://npm.yc345.tv/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.6, glob@^7.1.2, glob@^7.1.3: + version "7.1.6" + resolved "https://npm.yc345.tv/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://npm.yc345.tv/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://npm.yc345.tv/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.17.0, globals@^9.18.0: + version "9.18.0" + resolved "https://npm.yc345.tv/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo= + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.2.4" + resolved "https://npm.yc345.tv/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://npm.yc345.tv/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= + +growl@1.9.2: + version "1.9.2" + resolved "https://npm.yc345.tv/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8= + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://npm.yc345.tv/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ= + +handlebars@^4.0.3: + version "4.7.6" + resolved "https://npm.yc345.tv/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha1-1MBcG6+Q6ZRfd6pop6IZqkp9904= + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://npm.yc345.tv/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0= + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + dependencies: + function-bind "^1.1.1" + +hawk@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/hawk/-/hawk-1.0.0.tgz#b90bb169807285411da7ffcb8dd2598502d3b52d" + integrity sha1-uQuxaYByhUEdp//LjdJZhQLTtS0= + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://npm.yc345.tv/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + integrity sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg= + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +hexer@^1.5.0: + version "1.5.0" + resolved "https://npm.yc345.tv/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" + integrity sha1-uGzoCFmOip0YksVx887dhvyfBlM= + dependencies: + ansi-color "^0.2.1" + minimist "^1.1.0" + process "^0.10.0" + xtend "^4.0.0" + +hoek@0.9.x: + version "0.9.1" + resolved "https://npm.yc345.tv/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU= + +hoek@4.x.x: + version "4.2.1" + resolved "https://npm.yc345.tv/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + integrity sha1-ljRQKqEsRF3Vp8VzS1cruHOKrLs= + +homedir-polyfill@^1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://npm.yc345.tv/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://npm.yc345.tv/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://npm.yc345.tv/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.6.2: + version "1.6.2" + resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://npm.yc345.tv/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-signature@^1.2.0: + version "1.3.4" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.3.4.tgz#a65b41193110b222364e776fd1ac848655a0e2f0" + integrity sha1-pltBGTEQsiI2Tndv0ayEhlWg4vA= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.14.1" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY= + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + integrity sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs= + +iconv-lite@^0.4.17: + version "0.4.24" + resolved "https://npm.yc345.tv/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^3.3.3: + version "3.3.10" + resolved "https://npm.yc345.tv/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://npm.yc345.tv/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://npm.yc345.tv/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +inherits@2.0.3: + version "2.0.3" + resolved "https://npm.yc345.tv/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4: + version "1.3.5" + resolved "https://npm.yc345.tv/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://npm.yc345.tv/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha1-ndLyrXZdyrH/BEO0kUQqILoifck= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +interpret@^0.6.5: + version "0.6.6" + resolved "https://npm.yc345.tv/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + integrity sha1-/s16GOfOXKar+5U+H4YhOknxYls= + +invariant@^2.2.2: + version "2.2.4" + resolved "https://npm.yc345.tv/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://npm.yc345.tv/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://npm.yc345.tv/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://npm.yc345.tv/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://npm.yc345.tv/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-finite@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8= + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= + dependencies: + has "^1.0.3" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-supported-regexp-flag@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" + integrity sha1-Ie4WUY0sHdPt0+mg1X5QIHrDZMo= + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= + dependencies: + has-symbols "^1.0.1" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://npm.yc345.tv/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= + +isarray@0.0.1: + version "0.0.1" + resolved "https://npm.yc345.tv/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://npm.yc345.tv/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA= + +istanbul-lib-hook@^1.0.7: + version "1.2.2" + resolved "https://npm.yc345.tv/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y= + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.8.0: + version "1.10.2" + resolved "https://npm.yc345.tv/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha1-H1XtEKw8R/K93dUweTUSZ1TQqco= + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.5" + resolved "https://npm.yc345.tv/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww= + dependencies: + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.1: + version "1.2.6" + resolved "https://npm.yc345.tv/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8= + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.1: + version "1.5.1" + resolved "https://npm.yc345.tv/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho= + dependencies: + handlebars "^4.0.3" + +jaeger-client@3.5.3: + version "3.5.3" + resolved "https://npm.yc345.tv/jaeger-client/-/jaeger-client-3.5.3.tgz#30a3989642ee3e8ea06d10c2b9f9e046d424d8ed" + integrity sha1-MKOYlkLuPo6gbRDCufngRtQk2O0= + dependencies: + node-int64 "^0.4.0" + opentracing "^0.13.0" + thriftrw "^3.5.0" + xorshift "^0.2.0" + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://npm.yc345.tv/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.9.1: + version "3.14.0" + resolved "https://npm.yc345.tv/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha1-p6NBcPJqIbsWJCTYray0ETpp5II= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://npm.yc345.tv/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://npm.yc345.tv/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= + +json-schema@0.2.3: + version "0.2.3" + resolved "https://npm.yc345.tv/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://npm.yc345.tv/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@3.3.2: + version "3.3.2" + resolved "https://npm.yc345.tv/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://npm.yc345.tv/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://npm.yc345.tv/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-extend@^4.0.2: + version "4.1.0" + resolved "https://npm.yc345.tv/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" + integrity sha1-cnikAn2IlgFkDuDODloAuZJGfaQ= + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://npm.yc345.tv/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.0: + version "6.0.3" + resolved "https://npm.yc345.tv/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= + +knex@0.13.0: + version "0.13.0" + resolved "https://npm.yc345.tv/knex/-/knex-0.13.0.tgz#08dd494f6bb64928934eec9dac34787a14ca5fa4" + integrity sha1-CN1JT2u2SSiTTuydrDR4ehTKX6Q= + dependencies: + babel-runtime "^6.11.6" + bluebird "^3.4.6" + chalk "^1.0.0" + commander "^2.2.0" + debug "^2.1.3" + generic-pool "^2.4.2" + inherits "~2.0.1" + interpret "^0.6.5" + liftoff "~2.2.0" + lodash "^4.6.0" + minimist "~1.1.0" + mkdirp "^0.5.0" + pg-connection-string "^0.1.3" + readable-stream "^1.1.12" + safe-buffer "^5.0.1" + tildify "~1.0.0" + uuid "^3.0.0" + v8flags "^2.0.2" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@~2.2.0: + version "2.2.5" + resolved "https://npm.yc345.tv/liftoff/-/liftoff-2.2.5.tgz#998c2876cff484b103e4423b93d356da44734c91" + integrity sha1-mYwods/0hLED5EI7k9NW2kRzTJE= + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + flagged-respawn "^0.3.2" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://npm.yc345.tv/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://npm.yc345.tv/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://npm.yc345.tv/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://npm.yc345.tv/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://npm.yc345.tv/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + integrity sha1-9HGh2khr5g9quVXRcRVSPdHSVdU= + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://npm.yc345.tv/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c= + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.get@^4.4.2, lodash.get@~4.4.2: + version "4.4.2" + resolved "https://npm.yc345.tv/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://npm.yc345.tv/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://npm.yc345.tv/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://npm.yc345.tv/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash@4.17.4: + version "4.17.4" + resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= + +lodash@^4.13.1, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.0, lodash@~4.17.2: + version "4.17.15" + resolved "https://npm.yc345.tv/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lolex@^2.1.3: + version "2.7.5" + resolved "https://npm.yc345.tv/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + integrity sha1-ETAB1Wv8fgLVbjYpHMXEE9GqBzM= + +lolex@^5.0.1: + version "5.1.2" + resolved "https://npm.yc345.tv/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha1-lTaU0JjOfAe8XtbQ5CvGwMbVo2c= + dependencies: + "@sinonjs/commons" "^1.7.0" + +long@^2.4.0: + version "2.4.0" + resolved "https://npm.yc345.tv/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" + integrity sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://npm.yc345.tv/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.5" + resolved "https://npm.yc345.tv/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + +math-random@^1.0.1: + version "1.0.4" + resolved "https://npm.yc345.tv/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw= + +md5-hex@^1.2.0: + version "1.3.0" + resolved "https://npm.yc345.tv/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ= + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + +memory-streams@^0.1.2: + version "0.1.3" + resolved "https://npm.yc345.tv/memory-streams/-/memory-streams-0.1.3.tgz#d9b0017b4b87f1d92f55f2745c9caacb1dc93ceb" + integrity sha1-2bABe0uH8dkvVfJ0XJyqyx3JPOs= + dependencies: + readable-stream "~1.0.2" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.0.2: + version "1.1.0" + resolved "https://npm.yc345.tv/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha1-L93n5gIJOfcJBqaPLXrmheTIxkY= + dependencies: + source-map "^0.6.1" + +methods@0.1.0: + version "0.1.0" + resolved "https://npm.yc345.tv/methods/-/methods-0.1.0.tgz#335d429eefd21b7bacf2e9c922a8d2bd14a30e4f" + integrity sha1-M11Cnu/SG3us8unJIqjSvRSjDk8= + +methods@1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.3.11, micromatch@^2.3.7: + version "2.3.11" + resolved "https://npm.yc345.tv/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@1.44.0: + version "1.44.0" + resolved "https://npm.yc345.tv/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.27" + resolved "https://npm.yc345.tv/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= + dependencies: + mime-db "1.44.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://npm.yc345.tv/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY= + +mime@^1.4.1: + version "1.6.0" + resolved "https://npm.yc345.tv/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= + +mime@~1.2.11, mime@~1.2.9: + version "1.2.11" + resolved "https://npm.yc345.tv/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://npm.yc345.tv/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= + +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://npm.yc345.tv/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://npm.yc345.tv/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://npm.yc345.tv/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + +minimist@~1.1.0: + version "1.1.3" + resolved "https://npm.yc345.tv/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" + integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://npm.yc345.tv/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + dependencies: + minimist "^1.2.5" + +mocha@3.5.3: + version "3.5.3" + resolved "https://npm.yc345.tv/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + integrity sha1-HgSA/jbS2lhY0etqzDhBiybqog0= + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +module-details-from-path@^1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha1-EUyUlnPiqKNenTV4hSeqN7Z52is= + +moment@^2.10.6: + version "2.26.0" + resolved "https://npm.yc345.tv/moment/-/moment-2.26.0.tgz#5e1f82c6bafca6e83e808b30c8705eed0dcbd39a" + integrity sha1-Xh+Cxrr8pug+gIswyHBe7Q3L05o= + +mongodb-core@2.1.17: + version "2.1.17" + resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.17.tgz#a418b337a14a14990fb510b923dee6a813173df8" + integrity sha1-pBizN6FKFJkPtRC5I97mqBMXPfg= + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb-core@2.1.20: + version "2.1.20" + resolved "https://npm.yc345.tv/mongodb-core/-/mongodb-core-2.1.20.tgz#fece8dd76b59ee7d7f2d313b65322c160492d8f1" + integrity sha1-/s6N12tZ7n1/LTE7ZTIsFgSS2PE= + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb@^2.1.18: + version "2.2.36" + resolved "https://npm.yc345.tv/mongodb/-/mongodb-2.2.36.tgz#1c573680b2849fb0f47acbba3dc5fa228de975f5" + integrity sha1-HFc2gLKEn7D0esu6PcX6Io3pdfU= + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.20" + readable-stream "2.2.7" + +monk-middleware-cast-ids@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/monk-middleware-cast-ids/-/monk-middleware-cast-ids-0.2.1.tgz#40c40e5a6cb33ccedc289220943275ee8861c529" + integrity sha1-QMQOWmyzPM7cKJIglDJ17ohhxSk= + +monk-middleware-fields@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-fields/-/monk-middleware-fields-0.2.0.tgz#ff637af35f5948879ccb2be15a91360911bea6c1" + integrity sha1-/2N6819ZSIecyyvhWpE2CRG+psE= + +monk-middleware-handle-callback@^0.2.0: + version "0.2.2" + resolved "https://npm.yc345.tv/monk-middleware-handle-callback/-/monk-middleware-handle-callback-0.2.2.tgz#47de6cc1248726c72a2be0c81bc4e68310c32146" + integrity sha1-R95swSSHJscqK+DIG8TmgxDDIUY= + +monk-middleware-options@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/monk-middleware-options/-/monk-middleware-options-0.2.1.tgz#58dae1c518d46636ebdff506fadfc773bb442886" + integrity sha1-WNrhxRjUZjbr3/UG+t/Hc7tEKIY= + +monk-middleware-query@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-query/-/monk-middleware-query-0.2.0.tgz#a926c677d4a5620c62151b0a56d0c0c151675874" + integrity sha1-qSbGd9SlYgxiFRsKVtDAwVFnWHQ= + +monk-middleware-wait-for-connection@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/monk-middleware-wait-for-connection/-/monk-middleware-wait-for-connection-0.2.0.tgz#312958d30e588b57d09754dd7c97b4843316835a" + integrity sha1-MSlY0w5Yi1fQl1TdfJe0hDMWg1o= + +monk@6.0.5: + version "6.0.5" + resolved "https://npm.yc345.tv/monk/-/monk-6.0.5.tgz#a69be84e70ba4aa771b9619f7f73de965a50610a" + integrity sha1-ppvoTnC6SqdxuWGff3PellpQYQo= + dependencies: + debug "*" + mongodb "^2.1.18" + monk-middleware-cast-ids "^0.2.1" + monk-middleware-fields "^0.2.0" + monk-middleware-handle-callback "^0.2.0" + monk-middleware-options "^0.2.1" + monk-middleware-query "^0.2.0" + monk-middleware-wait-for-connection "^0.2.0" + object-assign "^4.1.1" + +ms@2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://npm.yc345.tv/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mv@~2: + version "2.1.1" + resolved "https://npm.yc345.tv/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +mysql@2.15.0: + version "2.15.0" + resolved "https://npm.yc345.tv/mysql/-/mysql-2.15.0.tgz#ea16841156343e8f2e47fc8985ec41cdd9573b5c" + integrity sha1-6haEEVY0Po8uR/yJhexBzdlXO1w= + dependencies: + bignumber.js "4.0.4" + readable-stream "2.3.3" + safe-buffer "5.1.1" + sqlstring "2.3.0" + +nan@^2.14.0: + version "2.14.1" + resolved "https://npm.yc345.tv/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://npm.yc345.tv/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +ncp@~2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +negotiator@0.6.2, negotiator@^0.6.1: + version "0.6.2" + resolved "https://npm.yc345.tv/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://npm.yc345.tv/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= + +nise@^1.2.0: + version "1.5.3" + resolved "https://npm.yc345.tv/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" + integrity sha1-nSz+N9RPVzF3ZsbpQIo1nF06wfc= + dependencies: + "@sinonjs/formatio" "^3.2.1" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + lolex "^5.0.1" + path-to-regexp "^1.7.0" + +nock@9.0.25: + version "9.0.25" + resolved "https://npm.yc345.tv/nock/-/nock-9.0.25.tgz#0eb26c8a1f602919eaa5b488cd99cfa34b259390" + integrity sha1-DrJsih9gKRnqpbSIzZnPo0slk5A= + dependencies: + chai ">=1.9.2 <4.0.0" + debug "^2.2.0" + deep-equal "^1.0.0" + json-stringify-safe "^5.0.1" + lodash "~4.17.2" + mkdirp "^0.5.0" + propagate "0.4.0" + qs "^6.0.2" + semver "^5.3.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://npm.yc345.tv/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc= + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://npm.yc345.tv/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://npm.yc345.tv/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-all@4.1.1: + version "4.1.1" + resolved "https://npm.yc345.tv/npm-run-all/-/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb" + integrity sha1-MJXPPzys9X/LZishCrEMYJr23bs= + dependencies: + ansi-styles "^3.2.0" + chalk "^2.1.0" + cross-spawn "^5.1.0" + memory-streams "^0.1.2" + minimatch "^3.0.4" + ps-tree "^1.1.0" + read-pkg "^2.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://npm.yc345.tv/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nyc@11.2.1: + version "11.2.1" + resolved "https://npm.yc345.tv/nyc/-/nyc-11.2.1.tgz#ad850afe9dbad7f4970728b4b2e47fed1c38721c" + integrity sha1-rYUK/p261/SXByi0suR/7Rw4chw= + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^1.0.0" + convert-source-map "^1.3.0" + debug-log "^1.0.1" + default-require-extensions "^1.0.0" + find-cache-dir "^0.1.1" + find-up "^2.1.0" + foreground-child "^1.5.3" + glob "^7.0.6" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.1" + md5-hex "^1.2.0" + merge-source-map "^1.0.2" + micromatch "^2.3.11" + mkdirp "^0.5.0" + resolve-from "^2.0.0" + rimraf "^2.5.4" + signal-exit "^3.0.1" + spawn-wrap "^1.3.8" + test-exclude "^4.1.1" + yargs "^8.0.1" + yargs-parser "^5.0.0" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4= + +oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://npm.yc345.tv/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= + +object-assign@4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://npm.yc345.tv/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://npm.yc345.tv/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= + +object-is@^1.0.1: + version "1.1.2" + resolved "https://npm.yc345.tv/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://npm.yc345.tv/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://npm.yc345.tv/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://npm.yc345.tv/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://npm.yc345.tv/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +opentracing@0.14.1: + version "0.14.1" + resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.14.1.tgz#40d278beea417660a35dd9d3ee76511ffa911dcd" + integrity sha1-QNJ4vupBdmCjXdnT7nZRH/qRHc0= + +opentracing@^0.13.0: + version "0.13.0" + resolved "https://npm.yc345.tv/opentracing/-/opentracing-0.13.0.tgz#6a341442f09d7d866bc11ed03de1e3828e3d6aab" + integrity sha1-ajQUQvCdfYZrwR7QPeHjgo49aqs= + +optionator@^0.8.2: + version "0.8.3" + resolved "https://npm.yc345.tv/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I= + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://npm.yc345.tv/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +packet-reader@0.3.1: + version "0.3.1" + resolved "https://npm.yc345.tv/packet-reader/-/packet-reader-0.3.1.tgz#cd62e60af8d7fea8a705ec4ff990871c46871f27" + integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc= + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://npm.yc345.tv/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://npm.yc345.tv/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parseurl@~1.3.2: + version "1.3.3" + resolved "https://npm.yc345.tv/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.5, path-parse@^1.0.6: + version "1.0.6" + resolved "https://npm.yc345.tv/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://npm.yc345.tv/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo= + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://npm.yc345.tv/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://npm.yc345.tv/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pg-connection-string@0.1.3, pg-connection-string@^0.1.3: + version "0.1.3" + resolved "https://npm.yc345.tv/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" + integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc= + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha1-lDvUY79bcbQXARX4D478mgwOt4w= + +pg-pool@1.*: + version "1.8.0" + resolved "https://npm.yc345.tv/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" + integrity sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc= + dependencies: + generic-pool "2.4.3" + object-assign "4.1.0" + +pg-types@1.*: + version "1.13.0" + resolved "https://npm.yc345.tv/pg-types/-/pg-types-1.13.0.tgz#75f490b8a8abf75f1386ef5ec4455ecf6b345c63" + integrity sha1-dfSQuKir918Thu9exEVez2s0XGM= + dependencies: + pg-int8 "1.0.1" + postgres-array "~1.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.0" + postgres-interval "^1.1.0" + +pg@6.4.0: + version "6.4.0" + resolved "https://npm.yc345.tv/pg/-/pg-6.4.0.tgz#cb76ba2e7c2eab89fc64bf7a9fe648ced72436dc" + integrity sha1-y3a6Lnwuq4n8ZL96n+ZIztckNtw= + dependencies: + buffer-writer "1.0.1" + packet-reader "0.3.1" + pg-connection-string "0.1.3" + pg-pool "1.*" + pg-types "1.*" + pgpass "1.x" + semver "4.3.2" + +pgpass@1.x: + version "1.0.2" + resolved "https://npm.yc345.tv/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" + integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY= + dependencies: + split "^1.0.0" + +pidusage@^1.1.6: + version "1.2.0" + resolved "https://npm.yc345.tv/pidusage/-/pidusage-1.2.0.tgz#65ee96ace4e08a4cd3f9240996c85b367171ee92" + integrity sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://npm.yc345.tv/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://npm.yc345.tv/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://npm.yc345.tv/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c= + +postgres-array@~1.0.0: + version "1.0.3" + resolved "https://npm.yc345.tv/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5" + integrity sha1-xWH8OyZrIUUfxlVThPSYbXjsgPU= + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU= + +postgres-date@~1.0.0: + version "1.0.5" + resolved "https://npm.yc345.tv/postgres-date/-/postgres-date-1.0.5.tgz#710b27de5f27d550f6e80b5d34f7ba189213c2ee" + integrity sha1-cQsn3l8n1VD26AtdNPe6GJITwu4= + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://npm.yc345.tv/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha1-tGDILLFYdQd4iBmgaqD//bNURpU= + dependencies: + xtend "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + +process@^0.10.0: + version "0.10.1" + resolved "https://npm.yc345.tv/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" + integrity sha1-hCRXzFHP7XLcd1r+6vuMYDQ3JyU= + +progress@^2.0.0: + version "2.0.3" + resolved "https://npm.yc345.tv/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg= + +propagate@0.4.0: + version "0.4.0" + resolved "https://npm.yc345.tv/propagate/-/propagate-0.4.0.tgz#f3fcca0a6fe06736a7ba572966069617c130b481" + integrity sha1-8/zKCm/gZzanulcpZgaWF8EwtIE= + +proxy-addr@~2.0.2: + version "2.0.6" + resolved "https://npm.yc345.tv/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +ps-tree@^1.1.0: + version "1.2.0" + resolved "https://npm.yc345.tv/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha1-XnQluJUIc2zdTyIk0Cj3uz9yLr0= + dependencies: + event-stream "=3.3.4" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://npm.yc345.tv/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.33: + version "1.8.0" + resolved "https://npm.yc345.tv/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= + +punycode@^1.4.1: + version "1.4.1" + resolved "https://npm.yc345.tv/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + +qs@6.5.1: + version "6.5.1" + resolved "https://npm.yc345.tv/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + integrity sha1-NJzfbu+J7EXBLX1es/wMhwNDptg= + +qs@^6.0.2, qs@^6.5.1: + version "6.9.4" + resolved "https://npm.yc345.tv/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" + integrity sha1-kJCykNH5FyjTwi5UhDykSupatoc= + +qs@~0.6.0: + version "0.6.6" + resolved "https://npm.yc345.tv/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + integrity sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc= + +qs@~6.5.1: + version "6.5.2" + resolved "https://npm.yc345.tv/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://npm.yc345.tv/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha1-t3bvxZN1mE42xTey9RofCv8Noe0= + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +range-parser@~1.2.0: + version "1.2.1" + resolved "https://npm.yc345.tv/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= + +raw-body@2.3.2: + version "2.3.2" + resolved "https://npm.yc345.tv/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@2.2.7: + version "2.2.7" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" + integrity sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE= + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readable-stream@2.3.3: + version "2.3.3" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + integrity sha1-No8lEtefnUb9/HE0mueHi7weuVw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@^1.1.12: + version "1.1.14" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@^2.2.9: + version "2.3.7" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@~1.0.2: + version "1.0.34" + resolved "https://npm.yc345.tv/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://npm.yc345.tv/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + +redis-commands@^1.2.0: + version "1.5.0" + resolved "https://npm.yc345.tv/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" + integrity sha1-gNLiBpj+aI8icSf/nlFkp90X54U= + +redis-parser@^2.6.0: + version "2.6.0" + resolved "https://npm.yc345.tv/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" + integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs= + +redis@2.8.0: + version "2.8.0" + resolved "https://npm.yc345.tv/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" + integrity sha1-ICKI4/WMSfYHnZevehDhMDrhSwI= + dependencies: + double-ended-queue "^2.1.0-0" + redis-commands "^1.2.0" + redis-parser "^2.6.0" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://npm.yc345.tv/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://npm.yc345.tv/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha1-db3FiioUls7EihKDW8VMjVYjNt0= + dependencies: + is-equal-shallow "^0.1.3" + +regexp.prototype.flags@^1.2.0: + version "1.3.0" + resolved "https://npm.yc345.tv/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://npm.yc345.tv/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://npm.yc345.tv/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://npm.yc345.tv/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://npm.yc345.tv/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= + dependencies: + lodash "^4.13.1" + +request-promise-native@1.0.5: + version "1.0.5" + resolved "https://npm.yc345.tv/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@2.83.0: + version "2.83.0" + resolved "https://npm.yc345.tv/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + integrity sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y= + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@~2.34.0: + version "2.34.0" + resolved "https://npm.yc345.tv/request/-/request-2.34.0.tgz#b5d8b9526add4a2d4629f4d417124573996445ae" + integrity sha1-tdi5UmrdSi1GKfTUFxJFc5lkRa4= + dependencies: + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + qs "~0.6.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "~1.0.0" + http-signature "~0.10.0" + oauth-sign "~0.3.0" + tough-cookie ">=0.12.0" + tunnel-agent "~0.3.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-in-the-middle@2.1.2: + version "2.1.2" + resolved "https://npm.yc345.tv/require-in-the-middle/-/require-in-the-middle-2.1.2.tgz#bddb89316d45bcdb08e2c6186bd2e6e819a8eeae" + integrity sha1-vduJMW1FvNsI4sYYa9Lm6Bmo7q4= + dependencies: + module-details-from-path "^1.0.2" + resolve "^1.1.7" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +require_optional@~1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + integrity sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4= + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://npm.yc345.tv/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c= + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.13.1: + version "1.17.0" + resolved "https://npm.yc345.tv/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ= + dependencies: + path-parse "^1.0.6" + +restify-errors@^5.0.0: + version "5.0.0" + resolved "https://npm.yc345.tv/restify-errors/-/restify-errors-5.0.0.tgz#668717e100683eec6ce0d515f89ff1dbec254a8d" + integrity sha1-ZocX4QBoPuxs4NUV+J/x2+wlSo0= + dependencies: + assert-plus "^1.0.0" + lodash "^4.2.1" + verror "^1.8.1" + optionalDependencies: + safe-json-stringify "^1.0.3" + +restify@6.2.3: + version "6.2.3" + resolved "https://npm.yc345.tv/restify/-/restify-6.2.3.tgz#6cfb4735979d6b2d22bf87f7bdfca7e93932b678" + integrity sha1-bPtHNZeday0iv4f3vfyn6Tkytng= + dependencies: + assert-plus "^1.0.0" + bunyan "^1.8.12" + clone-regexp "^1.0.0" + csv "^1.1.1" + escape-regexp-component "^1.0.2" + ewma "^2.0.1" + formidable "^1.1.1" + http-signature "^1.2.0" + lodash "^4.17.4" + lru-cache "^4.1.1" + mime "^1.4.1" + negotiator "^0.6.1" + once "^1.4.0" + pidusage "^1.1.6" + qs "^6.5.1" + restify-errors "^5.0.0" + semver "^5.4.1" + spdy "^3.4.7" + uuid "^3.1.0" + vasync "^1.6.4" + verror "^1.10.0" + optionalDependencies: + dtrace-provider "^0.8.1" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.7.1" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + dependencies: + glob "^7.1.3" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://npm.yc345.tv/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +run-async@^2.2.0: + version "2.4.1" + resolved "https://npm.yc345.tv/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU= + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://npm.yc345.tv/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://npm.yc345.tv/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha1-iTMSr2myEj3vcfV4iQAWce6yyFM= + +safe-buffer@^5.0.1, safe-buffer@^5.1.1: + version "5.2.1" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY= + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://npm.yc345.tv/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +safe-json-stringify@^1.0.3, safe-json-stringify@~1: + version "1.2.0" + resolved "https://npm.yc345.tv/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha1-NW5EvJjx+TzkXfFLzXwBzahuCv0= + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://npm.yc345.tv/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +samsam@1.x: + version "1.3.0" + resolved "https://npm.yc345.tv/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + integrity sha1-jR2TUOJWItow3j5EumkrUiGrfFA= + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: + version "5.7.1" + resolved "https://npm.yc345.tv/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@4.3.2: + version "4.3.2" + resolved "https://npm.yc345.tv/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" + integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= + +semver@5.4.1: + version "5.4.1" + resolved "https://npm.yc345.tv/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== + +send@0.16.1: + version "0.16.1" + resolved "https://npm.yc345.tv/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + integrity sha1-pw4coh0TgsEdDZ9iMd6ygQgNerM= + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-static@1.13.1: + version "1.13.1" + resolved "https://npm.yc345.tv/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" + integrity sha1-TFfVNASnYdjy58HooYpH2/J4pxk= + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://npm.yc345.tv/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I= + +shimmer@1.1.0: + version "1.1.0" + resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35" + integrity sha1-l9c3cTf/u6tCVSLkKf4KqJpIizU= + +shimmer@^1.2.0: + version "1.2.1" + resolved "https://npm.yc345.tv/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha1-YQhZ994ye1h+/r9QH7QxF/mv8zc= + +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://npm.yc345.tv/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + +sinon-chai@2.14.0: + version "2.14.0" + resolved "https://npm.yc345.tv/sinon-chai/-/sinon-chai-2.14.0.tgz#da7dd4cc83cd6a260b67cca0f7a9fdae26a1205d" + integrity sha1-2n3UzIPNaiYLZ8yg96n9riahIF0= + +sinon@4.0.2: + version "4.0.2" + resolved "https://npm.yc345.tv/sinon/-/sinon-4.0.2.tgz#c81f62456d37986c84e9f522ddb9ce413bda49d2" + integrity sha1-yB9iRW03mGyE6fUi3bnOQTvaSdI= + dependencies: + diff "^3.1.0" + formatio "1.2.0" + lodash.get "^4.4.2" + lolex "^2.1.3" + nise "^1.2.0" + supports-color "^4.4.0" + type-detect "^4.0.0" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00= + dependencies: + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.5: + version "1.1.6" + resolved "https://npm.yc345.tv/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +sntp@0.2.x: + version "0.2.4" + resolved "https://npm.yc345.tv/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA= + dependencies: + hoek "0.9.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://npm.yc345.tv/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + integrity sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg= + dependencies: + hoek "4.x.x" + +source-map@^0.5.3, source-map@^0.5.7: + version "0.5.7" + resolved "https://npm.yc345.tv/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1: + version "0.6.1" + resolved "https://npm.yc345.tv/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +spawn-wrap@^1.3.8: + version "1.4.3" + resolved "https://npm.yc345.tv/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848" + integrity sha1-gbdnDhcMyiR9gL9frwz7cTvc+Eg= + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://npm.yc345.tv/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha1-3s6BrJweZxPl99G28X1Gj6U9iak= + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://npm.yc345.tv/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://npm.yc345.tv/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha1-z3D1BILu/cmOPOCmgz5KU87rpnk= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://npm.yc345.tv/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= + +spdy-transport@^2.0.18: + version "2.1.1" + resolved "https://npm.yc345.tv/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" + integrity sha1-xUgV1zhYqt0GzmMAHn0l+mRBYjs= + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.7: + version "3.4.7" + resolved "https://npm.yc345.tv/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw= + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split@0.3: + version "0.3.3" + resolved "https://npm.yc345.tv/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + +split@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k= + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://npm.yc345.tv/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sqlstring@2.3.0: + version "2.3.0" + resolved "https://npm.yc345.tv/sqlstring/-/sqlstring-2.3.0.tgz#525b8a4fd26d6f71aa61e822a6caf976d31ad2a8" + integrity sha1-UluKT9Jtb3GqYegipsr5dtMa0qg= + +sshpk@^1.14.1, sshpk@^1.7.0: + version "1.16.1" + resolved "https://npm.yc345.tv/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-chain@^1.3.7: + version "1.3.7" + resolved "https://npm.yc345.tv/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285" + integrity sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU= + +"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://npm.yc345.tv/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://npm.yc345.tv/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://npm.yc345.tv/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://npm.yc345.tv/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + +stream-transform@^0.2.2: + version "0.2.2" + resolved "https://npm.yc345.tv/stream-transform/-/stream-transform-0.2.2.tgz#75867487f49528f8bf1d82499658753d02df7838" + integrity sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg= + +string-template@~0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= + +string-width@^1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://npm.yc345.tv/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.padend@^3.0.0: + version "3.1.0" + resolved "https://npm.yc345.tv/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" + integrity sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha1-RAiqLl1t3QyagHObCH+8BnwDs8w= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://npm.yc345.tv/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha1-x28c7zDyG7rYr+uNsVEUls+w8qM= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://npm.yc345.tv/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + integrity sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs= + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.5: + version "0.0.6" + resolved "https://npm.yc345.tv/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72" + integrity sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI= + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://npm.yc345.tv/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://npm.yc345.tv/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://npm.yc345.tv/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +super-request@1.2.0: + version "1.2.0" + resolved "https://npm.yc345.tv/super-request/-/super-request-1.2.0.tgz#e966a259fdcfd944fad6ad3b3817cd08ef77aa88" + integrity sha1-6WaiWf3P2UT61q07OBfNCO93qog= + dependencies: + comb "~1.0.0" + methods "0.1.0" + request "~2.34.0" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU= + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^4.4.0: + version "4.5.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://npm.yc345.tv/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +table@^4.0.1: + version "4.0.3" + resolved "https://npm.yc345.tv/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha1-ALXitgLxeUuayvnKkIp2OGp4E7w= + dependencies: + ajv "^6.0.1" + ajv-keywords "^3.0.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +test-exclude@^4.1.1: + version "4.2.3" + resolved "https://npm.yc345.tv/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA= + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://npm.yc345.tv/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thriftrw@^3.5.0: + version "3.12.0" + resolved "https://npm.yc345.tv/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" + integrity sha1-MIV4R3VefwNrLgp50RyfVQdVOdk= + dependencies: + bufrw "^1.3.0" + error "7.0.2" + long "^2.4.0" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://npm.yc345.tv/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tildify@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/tildify/-/tildify-1.0.0.tgz#2a021db5e8fbde0a8f8b4df37adaa8fb1d39d7dd" + integrity sha1-KgIdtej73gqPi03zetqo+x05190= + dependencies: + user-home "^1.0.0" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://npm.yc345.tv/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk= + dependencies: + os-tmpdir "~1.0.2" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://npm.yc345.tv/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +tough-cookie@>=0.12.0, tough-cookie@>=2.3.3: + version "4.0.0" + resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ= + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://npm.yc345.tv/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + integrity sha1-7GDO44rGdQY//JelwYlwV47oNlU= + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://npm.yc345.tv/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + integrity sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4= + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://npm.yc345.tv/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://npm.yc345.tv/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= + +type-detect@4.0.8, type-detect@^4.0.0: + version "4.0.8" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw= + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= + +type-is@~1.6.15: + version "1.6.18" + resolved "https://npm.yc345.tv/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://npm.yc345.tv/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@^3.1.4: + version "3.9.4" + resolved "https://npm.yc345.tv/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b" + integrity sha1-hnQCN34EPB/HsQIlOiK2TlhiQBs= + dependencies: + commander "~2.20.3" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://npm.yc345.tv/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://npm.yc345.tv/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + dependencies: + punycode "^2.1.0" + +user-home@^1.0.0, user-home@^1.1.1: + version "1.1.1" + resolved "https://npm.yc345.tv/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://npm.yc345.tv/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://npm.yc345.tv/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.1.0: + version "3.1.0" + resolved "https://npm.yc345.tv/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + integrity sha1-PdPT55Crwk17DToDT/q6vijrvAQ= + +uuid@^3.0.0, uuid@^3.1.0: + version "3.4.0" + resolved "https://npm.yc345.tv/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://npm.yc345.tv/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://npm.yc345.tv/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://npm.yc345.tv/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vasync@^1.6.4: + version "1.6.4" + resolved "https://npm.yc345.tv/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f" + integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8= + dependencies: + verror "1.6.0" + +verror@1.10.0, verror@^1.10.0, verror@^1.8.1: + version "1.10.0" + resolved "https://npm.yc345.tv/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +verror@1.6.0: + version "1.6.0" + resolved "https://npm.yc345.tv/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" + integrity sha1-fROyex+swuLakEBetepuW90lLqU= + dependencies: + extsprintf "1.2.0" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://npm.yc345.tv/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= + dependencies: + minimalistic-assert "^1.0.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://npm.yc345.tv/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://npm.yc345.tv/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://npm.yc345.tv/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://npm.yc345.tv/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://npm.yc345.tv/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://npm.yc345.tv/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://npm.yc345.tv/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write@^0.2.1: + version "0.2.1" + resolved "https://npm.yc345.tv/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +xorshift@^0.2.0: + version "0.2.1" + resolved "https://npm.yc345.tv/xorshift/-/xorshift-0.2.1.tgz#fcd82267e9351c13f0fb9c73307f25331d29c63a" + integrity sha1-/NgiZ+k1HBPw+5xzMH8lMx0pxjo= + +xtend@^4.0.0, xtend@~4.0.0: + version "4.0.2" + resolved "https://npm.yc345.tv/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + +y18n@^3.2.1: + version "3.2.1" + resolved "https://npm.yc345.tv/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://npm.yc345.tv/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://npm.yc345.tv/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + +yargs@^8.0.1: + version "8.0.2" + resolved "https://npm.yc345.tv/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" From 13e6952ef1ed4e2ecf4bcd0e064865c657c866ed Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 14:48:18 +0800 Subject: [PATCH 06/30] perform httpclient --- package.json | 2 +- src/instrumentation/httpClient.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6b78501..7a5c248 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "1.5.7", + "version": "2.0.1-beta", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/httpClient.js b/src/instrumentation/httpClient.js index ae9e2f9..9074d87 100644 --- a/src/instrumentation/httpClient.js +++ b/src/instrumentation/httpClient.js @@ -99,7 +99,7 @@ function patch (http, tracers, { httpTimings } = {}) { } const uri = extractUrl(options) - const SPAN_NAME = uri || OPERATION_NAME + const SPAN_NAME = options.path || options.pathName || OPERATION_NAME const method = options.method || 'GET' const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { tags: { From faf9e55b1bd68687e1bc014f0d1f5437c830bb09 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 14:49:17 +0800 Subject: [PATCH 07/30] update pkg --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7a5c248..3b9be95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.1-beta", + "version": "2.0.1", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From cd6b70394e3103b472d33511d8e156b295bb894a Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 16:09:16 +0800 Subject: [PATCH 08/30] modify url format --- src/instrumentation/express.js | 3 ++- src/instrumentation/expressError.js | 4 +++- src/instrumentation/koa.js | 3 ++- src/instrumentation/utils.js | 5 +++++ 4 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 src/instrumentation/utils.js diff --git a/src/instrumentation/express.js b/src/instrumentation/express.js index b8e4f3a..9f29fb7 100644 --- a/src/instrumentation/express.js +++ b/src/instrumentation/express.js @@ -5,6 +5,7 @@ const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') const shimmer = require('shimmer') const METHODS = require('methods').concat('use', 'route', 'param', 'all') const cls = require('../cls') +const { getOriginUrlWithoutQs } = require('./utils') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' @@ -25,7 +26,7 @@ function patch (express, tracers) { // start const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) - const SPAN_NAME = req.originalUrl || OPERATION_NAME + const SPAN_NAME = getOriginUrlWithoutQs(req.originalUrl) || OPERATION_NAME const spans = parentSpanContexts.map((parentSpanContext, key) => cls.startRootSpan(tracers[key], SPAN_NAME, { childOf: parentSpanContext, diff --git a/src/instrumentation/expressError.js b/src/instrumentation/expressError.js index 4c312b9..23fd4b0 100644 --- a/src/instrumentation/expressError.js +++ b/src/instrumentation/expressError.js @@ -4,6 +4,8 @@ const debug = require('debug')('opentracing-auto:instrumentation:expressError') const shimmer = require('shimmer') const { Tags } = require('opentracing') const cls = require('../cls') +const { getOriginUrlWithoutQs } = require('./utils') + const OPERATION_NAME = 'express_error_handler' const wrappedLayers = new Set() @@ -29,7 +31,7 @@ function patch (express, tracers) { shimmer.wrap(lastLayer, 'handle_error', (originalHandleError) => function (err, req, res, next) { - const SPAN_NAME = req.originalUrl || OPERATION_NAME + const SPAN_NAME = getOriginUrlWithoutQs(req.originalUrl) || OPERATION_NAME let rootSpans = tracers.map((tracer) => cls.getRootSpan(tracer)) rootSpans = rootSpans.filter((rootSpan) => rootSpan) if (rootSpans.length) { diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js index 8eaa9b6..5d36055 100644 --- a/src/instrumentation/koa.js +++ b/src/instrumentation/koa.js @@ -6,6 +6,7 @@ const shimmer = require('shimmer') const METHODS = ['use'] const cls = require('../cls') +const { getOriginUrlWithoutQs } = require('./utils') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' @@ -25,7 +26,7 @@ function patch (koa, tracers) { return cls.runAndReturn(() => { // start const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` - const SPAN_NAME = ctx.originalUrl || OPERATION_NAME + const SPAN_NAME = getOriginUrlWithoutQs(ctx.originalUrl) || OPERATION_NAME const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) const spans = parentSpanContexts.map((parentSpanContext, key) => cls.startRootSpan(tracers[key], SPAN_NAME, { diff --git a/src/instrumentation/utils.js b/src/instrumentation/utils.js new file mode 100644 index 0000000..ba69a9a --- /dev/null +++ b/src/instrumentation/utils.js @@ -0,0 +1,5 @@ +'use strict' + +exports.getOriginUrlWithoutQs = function (originUrl) { + return originUrl && originUrl.split(/\?/)[0] +} From 19f1d50aaec59ef00a7d8f4e6aad02e04810bef6 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 16:10:29 +0800 Subject: [PATCH 09/30] upgrade version to 2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b9be95..d02ecd4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.1", + "version": "2.0.2", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From 94c9f5c1f880a94f905ef5741dc942457d51d108 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 16:21:18 +0800 Subject: [PATCH 10/30] remove mysql pg mongodb --- package.json | 2 +- src/instrumentation/index.js | 8 -- src/instrumentation/mongodbCore.js | 120 ------------------------ src/instrumentation/mongodbCore.spec.js | 80 ---------------- src/instrumentation/mysql.js | 80 ---------------- src/instrumentation/mysql.spec.js | 78 --------------- src/instrumentation/pg.js | 92 ------------------ src/instrumentation/pg.spec.js | 77 --------------- src/instrumentation/redis.js | 98 ------------------- src/instrumentation/redis.spec.js | 81 ---------------- 10 files changed, 1 insertion(+), 715 deletions(-) delete mode 100644 src/instrumentation/mongodbCore.js delete mode 100644 src/instrumentation/mongodbCore.spec.js delete mode 100644 src/instrumentation/mysql.js delete mode 100644 src/instrumentation/mysql.spec.js delete mode 100644 src/instrumentation/pg.js delete mode 100644 src/instrumentation/pg.spec.js delete mode 100644 src/instrumentation/redis.js delete mode 100644 src/instrumentation/redis.spec.js diff --git a/package.json b/package.json index d02ecd4..5bf2fb1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.2", + "version": "2.0.3", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 63c4bbd..6e4382e 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -3,10 +3,6 @@ const express = require('./express') const expressError = require('./expressError') const httpClient = require('./httpClient') -const mongodbCore = require('./mongodbCore') -const mysql = require('./mysql') -const pg = require('./pg') -const redis = require('./redis') const restify = require('./restify') const koa = require('./koa') @@ -14,10 +10,6 @@ module.exports = [ express, expressError, httpClient, - mongodbCore, - mysql, - pg, - redis, restify, koa ] diff --git a/src/instrumentation/mongodbCore.js b/src/instrumentation/mongodbCore.js deleted file mode 100644 index a85e702..0000000 --- a/src/instrumentation/mongodbCore.js +++ /dev/null @@ -1,120 +0,0 @@ -'use strict' - -const debug = require('debug')('opentracing-auto:instrumentation:mongodb-core') -const { Tags } = require('opentracing') -const shimmer = require('shimmer') -const cls = require('../cls') - -const DB_TYPE = 'mongodb' -const OPERATION_NAME = 'mongodb' - -function nextWrapFactory (tracers) { - return function nextWrap (next) { - return function nextTrace (cb) { - const operationName = `${OPERATION_NAME}_cursor` - const statement = JSON.stringify(this.cmd) - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - } - })) - - debug(`Operation started ${OPERATION_NAME}`, { - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - }) - - return next.call(this, wrapCallback(tracers, spans, operationName, cb)) - } - } -} - -function wrapCallback (tracers, spans, operationName, done) { - const fn = function (err, res) { - if (err) { - spans.forEach((span) => span.log({ - event: 'error', - 'error.object': err, - message: err.message, - stack: err.stack - })) - spans.forEach((span) => span.setTag(Tags.ERROR, true)) - - debug(`Operation error captured ${operationName}`, { - reason: 'Error event', - errorMessage: err.message - }) - } - - spans.forEach((span) => span.finish()) - - debug(`Operation finished ${operationName}`) - - if (done) { - done(err, res) - } - } - - return fn -} - -function wrapFactory (tracers, command) { - return function (original) { - return function mongoOperationTrace (ns, ops, options, callback) { - const operationName = `${OPERATION_NAME}_${command}` - const statement = JSON.stringify(ops) - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement, - [Tags.DB_INSTANCE]: ns - } - })) - - debug(`Operation started ${operationName}`, { - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement, - [Tags.DB_INSTANCE]: ns - }) - - if (typeof options === 'function') { - return original.call(this, ns, ops, wrapCallback(tracers, spans, operationName, options)) - } - - return original.call(this, ns, ops, options, wrapCallback(tracers, spans, operationName, callback)) - } - } -} - -function patch (mongodb, tracer) { - shimmer.wrap(mongodb.Server.prototype, 'command', wrapFactory(tracer, 'command')) - shimmer.wrap(mongodb.Server.prototype, 'insert', wrapFactory(tracer, 'insert')) - shimmer.wrap(mongodb.Server.prototype, 'update', wrapFactory(tracer, 'update')) - shimmer.wrap(mongodb.Server.prototype, 'remove', wrapFactory(tracer, 'remove')) - shimmer.wrap(mongodb.Cursor.prototype, 'next', nextWrapFactory(tracer)) - - debug('Patched') -} - -function unpatch (mongodb) { - shimmer.unwrap(mongodb.Server.prototype, 'command') - shimmer.unwrap(mongodb.Server.prototype, 'insert') - shimmer.unwrap(mongodb.Server.prototype, 'update') - shimmer.unwrap(mongodb.Server.prototype, 'remove') - shimmer.unwrap(mongodb.Cursor.prototype, 'next') - - debug('Unpatched') -} - -module.exports = { - name: 'mongodbCore', - module: 'mongodb-core', - supportedVersions: ['1.x', '2.x'], - OPERATION_NAME, - DB_TYPE, - patch, - unpatch -} diff --git a/src/instrumentation/mongodbCore.spec.js b/src/instrumentation/mongodbCore.spec.js deleted file mode 100644 index 1ac739e..0000000 --- a/src/instrumentation/mongodbCore.spec.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' - -const mongodbCore = require('mongodb-core') -const monk = require('monk') -const { expect } = require('chai') -const { Tracer, Tags } = require('opentracing') -const cls = require('../cls') -const instrumentation = require('./mongodbCore') - -describe('instrumentation: mongodb-core', () => { - let tracer - let mockChildSpan - let db - let dbSites - - beforeEach(function (done) { - tracer = new Tracer() - mockChildSpan = { - setTag: this.sandbox.spy(), - log: this.sandbox.spy(), - finish: this.sandbox.spy() - } - - this.sandbox.stub(cls, 'startChildSpan').callsFake(() => mockChildSpan) - - instrumentation.patch(mongodbCore, [tracer]) - - db = monk('localhost/mydb', done) - dbSites = db.get('sites') - }) - - afterEach(() => { - instrumentation.unpatch(mongodbCore) - }) - - describe('#patch', () => { - it('should start and finish span', async () => { - const site = { - name: 'risingstack', - url: 'https://risingstack.com' - } - const result = await dbSites.insert(site) - - expect(result).to.be.eql(site) - - expect(cls.startChildSpan).to.be.calledWith(tracer, `${instrumentation.OPERATION_NAME}_insert`, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: instrumentation.DB_TYPE, - [Tags.DB_STATEMENT]: JSON.stringify([site]), - [Tags.DB_INSTANCE]: 'mydb.sites' - } - }) - expect(mockChildSpan.finish).to.have.callCount(1) - }) - - it('should flag error', async () => { - db.close() // trigger error - - try { - await dbSites.insert({ - name: 'risingstack', - url: 'https://risingstack.com' - }) - } catch (err) { - expect(mockChildSpan.setTag).to.be.calledWith(Tags.ERROR, true) - expect(mockChildSpan.log).to.be.calledWith({ - event: 'error', - 'error.object': err, - message: err.message, - stack: err.stack - }) - expect(mockChildSpan.finish).to.have.callCount(1) - return - } - - throw new Error('Uncaught exception') - }) - }) -}) diff --git a/src/instrumentation/mysql.js b/src/instrumentation/mysql.js deleted file mode 100644 index 21f08f1..0000000 --- a/src/instrumentation/mysql.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' - -const debug = require('debug')('opentracing-auto:instrumentation:mysql') -const { Tags } = require('opentracing') -const shimmer = require('shimmer') -const cls = require('../cls') - -const DB_TYPE = 'mysql' -const OPERATION_NAME = 'mysql' -let Connection - -function patch (mysql, tracers) { - // eslint-disable-next-line - Connection = Connection || require('mysql/lib/Connection') - - function createQueryWrap (createQuery) { - return function createQueryWrapped (sql, values, cb) { - const query = createQuery.call(this, sql, values, cb) - const statement = query.sql - - const operationName = `${OPERATION_NAME}_query` - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - } - })) - - debug(`Operation started ${OPERATION_NAME}`, { - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - }) - - query.on('error', (err) => { - spans.forEach((span) => span.log({ - event: 'error', - 'error.object': err, - message: err.message, - stack: err.stack - })) - spans.forEach((span) => span.setTag(Tags.ERROR, true)) - - debug(`Operation error captured ${operationName}`, { - reason: 'Error event', - errorMessage: err.message - }) - }) - - query.on('end', () => { - spans.forEach((span) => span.finish()) - - debug(`Operation finished ${operationName}`) - }) - - return query - } - } - - shimmer.wrap(Connection, 'createQuery', createQueryWrap) - - debug('Patched') -} - -function unpatch () { - if (Connection) { - shimmer.unwrap(Connection, 'createQuery') - } - debug('Unpatched') -} - -module.exports = { - name: 'mysql', - module: 'mysql', - supportedVersions: ['2.x'], - OPERATION_NAME, - DB_TYPE, - patch, - unpatch -} diff --git a/src/instrumentation/mysql.spec.js b/src/instrumentation/mysql.spec.js deleted file mode 100644 index 576eba6..0000000 --- a/src/instrumentation/mysql.spec.js +++ /dev/null @@ -1,78 +0,0 @@ -'use strict' - -const mysql = require('mysql') -const knex = require('knex') -const { expect } = require('chai') -const { Tracer, Tags } = require('opentracing') -const cls = require('../cls') -const instrumentation = require('./mysql') - -describe('instrumentation: mysql', () => { - let tracer - let mockChildSpan - let db - - beforeEach(function () { - tracer = new Tracer() - mockChildSpan = { - setTag: this.sandbox.spy(), - log: this.sandbox.spy(), - finish: this.sandbox.spy() - } - - this.sandbox.stub(cls, 'startChildSpan').callsFake(() => mockChildSpan) - - instrumentation.patch(mysql, [tracer]) - - db = knex({ - client: 'mysql', - connection: process.env.MYSQL_URI - }) - }) - - afterEach(() => { - instrumentation.unpatch(mysql) - }) - - describe('#patch', () => { - it('should start and finish span', async () => { - const query = 'SELECT 1 AS result' - const result = await db.raw(query) - - expect(result[0]).to.be.eql([{ result: 1 }]) - - expect(cls.startChildSpan).to.be.calledWith(tracer, `${instrumentation.OPERATION_NAME}_query`, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: instrumentation.DB_TYPE, - [Tags.DB_STATEMENT]: query - } - }) - - // FIXME: only with ../instrument.js tests together - // expect(mockChildSpan.finish).to.have.callCount(1) - }) - - it('should flag error', async () => { - const query = 'SELECT invalid AS result' - - try { - await db.raw(query) - } catch (err) { - expect(mockChildSpan.setTag).to.be.calledWith(Tags.ERROR, true) - expect(mockChildSpan.log).to.be.calledWith({ - event: 'error', - 'error.object': err, - message: 'ER_BAD_FIELD_ERROR: Unknown column \'invalid\' in \'field list\'', - stack: err.stack - }) - - // FIXME: only with ../instrument.js tests together - // expect(mockChildSpan.finish).to.have.callCount(1) - return - } - - throw new Error('Uncaught exception') - }) - }) -}) diff --git a/src/instrumentation/pg.js b/src/instrumentation/pg.js deleted file mode 100644 index 024df82..0000000 --- a/src/instrumentation/pg.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict' - -const debug = require('debug')('opentracing-auto:instrumentation:pg') -const { Tags } = require('opentracing') -const shimmer = require('shimmer') -const cls = require('../cls') - -const DB_TYPE = 'postgresql' -const OPERATION_NAME = 'pg' -const UNTRACKED_QUERIES = [ - 'select version();' -] - -function patch (pg, tracers) { - function queryWrap (query) { - return function queryTrace (...args) { - const pgQuery = query.call(this, ...args) - const originalCallback = pgQuery.callback - const statement = pgQuery.text - - if (UNTRACKED_QUERIES.includes(statement)) { - return pgQuery - } - - const operationName = `${OPERATION_NAME}_query` - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - } - })) - - debug(`Operation started ${operationName}`, { - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - }) - - pgQuery.callback = (err, res) => { - if (err) { - spans.forEach((span) => span.log({ - event: 'error', - 'error.object': err, - message: err.message, - stack: err.stack - })) - spans.forEach((span) => span.setTag(Tags.ERROR, true)) - - debug(`Operation error captured ${operationName}`, { - reason: 'Error event', - errorMessage: err.message - }) - } - - if (res) { - spans.forEach((span) => span.log({ - row_count: res.rowCount - })) - } - - spans.forEach((span) => span.finish()) - - debug(`Operation finished ${operationName}`) - - if (originalCallback) { - originalCallback(err, res) - } - } - return pgQuery - } - } - - shimmer.wrap(pg.Client.prototype, 'query', queryWrap) - - debug('Patched') -} - -function unpatch (pg) { - shimmer.unwrap(pg.Client.prototype, 'query') - - debug('Unpatched') -} - -module.exports = { - name: 'pg', - module: 'pg', - supportedVersions: ['6.x'], - OPERATION_NAME, - DB_TYPE, - patch, - unpatch -} diff --git a/src/instrumentation/pg.spec.js b/src/instrumentation/pg.spec.js deleted file mode 100644 index 20235e9..0000000 --- a/src/instrumentation/pg.spec.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict' - -const pg = require('pg') -const knex = require('knex') -const { expect } = require('chai') -const { Tracer, Tags } = require('opentracing') -const cls = require('../cls') -const instrumentation = require('./pg') - -describe('instrumentation: pg', () => { - let tracer - let mockChildSpan - let db - - beforeEach(function () { - tracer = new Tracer() - mockChildSpan = { - setTag: this.sandbox.spy(), - log: this.sandbox.spy(), - finish: this.sandbox.spy() - } - - this.sandbox.stub(cls, 'startChildSpan').callsFake(() => mockChildSpan) - - instrumentation.patch(pg, [tracer]) - - db = knex({ - client: 'pg', - connection: process.env.PG_URI - }) - }) - - afterEach(() => { - instrumentation.unpatch(pg) - }) - - describe('#patch', () => { - it('should start and finish span', async () => { - const query = 'SELECT 1 AS result' - const { rows } = await db.raw(query) - - expect(rows).to.be.eql([{ result: 1 }]) - - expect(cls.startChildSpan).to.be.calledWith(tracer, `${instrumentation.OPERATION_NAME}_query`, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: instrumentation.DB_TYPE, - [Tags.DB_STATEMENT]: query - } - }) - - // FIXME: only with ../instrument.js tests together - // expect(mockChildSpan.finish).to.have.callCount(1) - }) - - it('should flag error', async () => { - const query = 'SELECT invalid AS result' - - try { - await db.raw(query) - } catch (err) { - expect(mockChildSpan.setTag).to.be.calledWith(Tags.ERROR, true) - expect(mockChildSpan.log).to.be.calledWith({ - event: 'error', - 'error.object': err, - message: 'column "invalid" does not exist', - stack: err.stack - }) - // FIXME: only with ../instrument.js tests together - // expect(mockChildSpan.finish).to.have.callCount(1) - return - } - - throw new Error('Uncaught exception') - }) - }) -}) diff --git a/src/instrumentation/redis.js b/src/instrumentation/redis.js deleted file mode 100644 index 310594e..0000000 --- a/src/instrumentation/redis.js +++ /dev/null @@ -1,98 +0,0 @@ -'use strict' - -const debug = require('debug')('opentracing-auto:instrumentation:redis') -const { Tags } = require('opentracing') -const shimmer = require('shimmer') -const cls = require('../cls') - -const DB_TYPE = 'redis' -const OPERATION_NAME = 'redis' -const UNTRACKED_COMMANDS = [ - 'ping', - 'flushall', - 'flushdb', - 'select', - 'auth', - 'info', - 'quit', - 'slaveof', - 'config', - 'sentinel' -] - -function patch (redis, tracers) { - shimmer.wrap(redis.RedisClient.prototype, 'internal_send_command', wrapInternalSendCommand) - - debug('Patched') - - function wrapInternalSendCommand (original) { - return function wrappedInternalSendCommand (commandObj) { - // Do not track certain commands - if (UNTRACKED_COMMANDS.includes(commandObj.command)) { - original.call(this, commandObj) - return - } - - const statement = `${commandObj.command} ${commandObj.args}` - const operationName = `${OPERATION_NAME}_${commandObj.command}` - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, operationName, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - } - })) - - debug(`Operation started ${operationName}`, { - [Tags.DB_TYPE]: DB_TYPE, - [Tags.DB_STATEMENT]: statement - }) - - const originalCallback = commandObj.callback - - commandObj.callback = (err, replies) => { - // Error handling - if (err) { - spans.forEach((span) => span.log({ - event: 'error', - 'error.object': err, - message: err.message, - stack: err.stack - })) - spans.forEach((span) => span.setTag(Tags.ERROR, true)) - - debug(`Operation error captured ${operationName}`, { - reason: 'Error event', - errorMessage: err.message - }) - } - - spans.forEach((span) => span.finish()) - - debug(`Operation finished ${operationName}`) - - if (originalCallback) { - originalCallback(err, replies) - } - } - - original.call(this, commandObj) - } - } -} - -function unpatch (redis) { - shimmer.unwrap(redis.RedisClient.prototype, 'internal_send_command') - - debug('Unpatched') -} - -module.exports = { - name: 'redis', - module: 'redis', - supportedVersions: ['2.8'], - OPERATION_NAME, - DB_TYPE, - patch, - unpatch -} diff --git a/src/instrumentation/redis.spec.js b/src/instrumentation/redis.spec.js deleted file mode 100644 index b5fa5d6..0000000 --- a/src/instrumentation/redis.spec.js +++ /dev/null @@ -1,81 +0,0 @@ -'use strict' - -const redis = require('redis') -const { expect } = require('chai') -const { Tracer, Tags } = require('opentracing') -const cls = require('../cls') -const instrumentation = require('./redis') - -describe('instrumentation: redis', () => { - let tracer - let mockChildSpan - let client - - beforeEach(function () { - tracer = new Tracer() - mockChildSpan = { - setTag: this.sandbox.spy(), - log: this.sandbox.spy(), - finish: this.sandbox.spy() - } - - this.sandbox.stub(cls, 'startChildSpan').callsFake(() => mockChildSpan) - - instrumentation.patch(redis, [tracer]) - - client = redis.createClient() - }) - - afterEach(() => { - client.quit() - instrumentation.unpatch(redis) - }) - - describe('#patch', () => { - it('should start and finish span', (done) => { - client.set('string key', 'string val', (err, replies) => { - expect(replies).to.be.eql('OK') - expect(cls.startChildSpan).to.be.calledWith(tracer, 'redis_set', { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.DB_TYPE]: instrumentation.DB_TYPE, - [Tags.DB_STATEMENT]: 'set string key,string val' - } - }) - - // FIXME: is this an issue? - // expect(mockChildSpan.finish).to.have.callCount(1) - - done(err) - }) - }) - - it('should flag error', (done) => { - client.set('query', (err) => { - const errorMessage = 'ERR wrong number of arguments for \'set\' command' - - expect(err.message).to.be.equal(errorMessage) - expect(mockChildSpan.setTag).to.be.calledWith(Tags.ERROR, true) - expect(mockChildSpan.log).to.be.calledWith({ - event: 'error', - 'error.object': err, - message: errorMessage, - stack: err.stack - }) - - // FIXME: is this an issue? - // expect(mockChildSpan.finish).to.have.callCount(1) - - done() - }) - }) - - it('should skip untracked command', (done) => { - client.info((err) => { - expect(cls.startChildSpan).to.have.callCount(0) - - done(err) - }) - }) - }) -}) From 512fa8ca5e5694746d8d07c9b2819a84af8b0369 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 17:20:28 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E5=B1=8F=E8=94=BD=20OPTIONS=20=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=20=E5=B1=8F=E8=94=BD=20/api/traces=20=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/instrumentation/express.js | 11 ++++++++--- src/instrumentation/httpClient.js | 18 ++++++++++++------ src/instrumentation/koa.js | 13 ++++++++++--- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/instrumentation/express.js b/src/instrumentation/express.js index 9f29fb7..5e7d79d 100644 --- a/src/instrumentation/express.js +++ b/src/instrumentation/express.js @@ -27,15 +27,20 @@ function patch (express, tracers) { const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) const SPAN_NAME = getOriginUrlWithoutQs(req.originalUrl) || OPERATION_NAME - const spans = parentSpanContexts.map((parentSpanContext, key) => - cls.startRootSpan(tracers[key], SPAN_NAME, { + const spans = parentSpanContexts.map((parentSpanContext, key) => { + if (req.method === 'OPTIONS') { + debug(`OPTIONS skiped ${SPAN_NAME}`) + return null + } + return cls.startRootSpan(tracers[key], SPAN_NAME, { childOf: parentSpanContext, tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: req.method } - })) + }) + }).filter((span) => !!span) debug(`Operation started ${SPAN_NAME}`, { [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: req.method diff --git a/src/instrumentation/httpClient.js b/src/instrumentation/httpClient.js index 9074d87..dba6f79 100644 --- a/src/instrumentation/httpClient.js +++ b/src/instrumentation/httpClient.js @@ -101,13 +101,19 @@ function patch (http, tracers, { httpTimings } = {}) { const uri = extractUrl(options) const SPAN_NAME = options.path || options.pathName || OPERATION_NAME const method = options.method || 'GET' - const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { - tags: { - [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, - [Tags.HTTP_URL]: uri, - [Tags.HTTP_METHOD]: method + const spans = tracers.map((tracer) => { + if (uri.indexOf('/api/traces') >= 0) { + debug(`match /api/traces skip span ${uri}`) + return null } - })) + return cls.startChildSpan(tracer, SPAN_NAME, { + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, + [Tags.HTTP_URL]: uri, + [Tags.HTTP_METHOD]: method + } + }) + }).filter((span) => !!span) const timings = { begin: undefined, diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js index 5d36055..ab90661 100644 --- a/src/instrumentation/koa.js +++ b/src/instrumentation/koa.js @@ -1,3 +1,5 @@ +/* eslint-disable import/order */ + 'use strict' const debug = require('debug')('opentracing-auto:instrumentation:koa') @@ -28,15 +30,20 @@ function patch (koa, tracers) { const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` const SPAN_NAME = getOriginUrlWithoutQs(ctx.originalUrl) || OPERATION_NAME const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) - const spans = parentSpanContexts.map((parentSpanContext, key) => - cls.startRootSpan(tracers[key], SPAN_NAME, { + const spans = parentSpanContexts.map((parentSpanContext, key) => { + if (ctx.method === 'OPTIONS') { + debug(`OPTIONS skiped ${SPAN_NAME}`) + return null + } + return cls.startRootSpan(tracers[key], SPAN_NAME, { childOf: parentSpanContext, tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: ctx.method } - })) + }) + }).filter((span) => !!span) debug(`Operation started ${SPAN_NAME}`, { [Tags.HTTP_URL]: url, [Tags.HTTP_METHOD]: ctx.method From d6b3b1e6e9aa0fb1ba8ebfa384aae0845ae93590 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 17:21:15 +0800 Subject: [PATCH 12/30] upgrade version to 2.0.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5bf2fb1..8eb20d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.3", + "version": "2.0.4", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From 062763f6663b088ebac16b3594ad62702b837083 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 1 Jun 2020 18:29:26 +0800 Subject: [PATCH 13/30] fixed httpclient span too long --- package.json | 2 +- src/instrumentation/httpClient.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8eb20d2..bf94740 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.4", + "version": "2.0.5", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/httpClient.js b/src/instrumentation/httpClient.js index dba6f79..8832317 100644 --- a/src/instrumentation/httpClient.js +++ b/src/instrumentation/httpClient.js @@ -9,6 +9,8 @@ const _ = require('lodash') const httpAgent = require('_http_agent') const semver = require('semver') const cls = require('../cls') +const { getOriginalUrlWithoutQs } = require('./utils') + const OPERATION_NAME = 'http_request' const OPERATION_NAME_DNS_LOOKUP = `${OPERATION_NAME}_dns_lookup` @@ -99,7 +101,7 @@ function patch (http, tracers, { httpTimings } = {}) { } const uri = extractUrl(options) - const SPAN_NAME = options.path || options.pathName || OPERATION_NAME + const SPAN_NAME = getOriginalUrlWithoutQs(options.path || options.pathName) || OPERATION_NAME const method = options.method || 'GET' const spans = tracers.map((tracer) => { if (uri.indexOf('/api/traces') >= 0) { From 91c9db3d90cbf718acba83f7b7d239a3637907b6 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Tue, 2 Jun 2020 10:28:19 +0800 Subject: [PATCH 14/30] fixed bug --- package.json | 2 +- src/instrumentation/httpClient.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index bf94740..15d5430 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.5", + "version": "2.0.8", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/httpClient.js b/src/instrumentation/httpClient.js index 8832317..b7b43ff 100644 --- a/src/instrumentation/httpClient.js +++ b/src/instrumentation/httpClient.js @@ -9,7 +9,7 @@ const _ = require('lodash') const httpAgent = require('_http_agent') const semver = require('semver') const cls = require('../cls') -const { getOriginalUrlWithoutQs } = require('./utils') +const { getOriginUrlWithoutQs } = require('./utils') const OPERATION_NAME = 'http_request' @@ -101,7 +101,7 @@ function patch (http, tracers, { httpTimings } = {}) { } const uri = extractUrl(options) - const SPAN_NAME = getOriginalUrlWithoutQs(options.path || options.pathName) || OPERATION_NAME + const SPAN_NAME = getOriginUrlWithoutQs(options.path || options.pathName) || OPERATION_NAME const method = options.method || 'GET' const spans = tracers.map((tracer) => { if (uri.indexOf('/api/traces') >= 0) { From 2e4574a92d9eaef360739f87a83b1b9c9623d89d Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 4 Jun 2020 11:30:18 +0800 Subject: [PATCH 15/30] add mali grpc-caller support --- src/instrumentation/grpc-caller.js | 49 +++++++++++++++++ src/instrumentation/index.js | 6 +- src/instrumentation/mali.js | 88 ++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 src/instrumentation/grpc-caller.js create mode 100644 src/instrumentation/mali.js diff --git a/src/instrumentation/grpc-caller.js b/src/instrumentation/grpc-caller.js new file mode 100644 index 0000000..f4bab54 --- /dev/null +++ b/src/instrumentation/grpc-caller.js @@ -0,0 +1,49 @@ +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:httpClient') +const { FORMAT_HTTP_HEADERS } = require('opentracing') +const shimmer = require('shimmer') +const cls = require('../cls') + +function patch (grpcCaller, tracers) { + const original = grpcCaller.wrap + grpcCaller.wrap = _wrap(original) + function _wrap (original) { + return function (...args) { + const instance = original(...args) + const proto = Object.getPrototypeOf(instance) + const keys = Object.keys(proto) + keys.forEach((fnName) => { + if (fnName === 'constructor') { + return + } + if (fnName === 'exec') { + return + } + const oldFn = proto[fnName] + proto[fnName] = (arg, metadata, options, fn) => { + const spans = tracers.map((tracer) => cls.getRootSpan(tracer)) + if (!metadata) { + metadata = {} + } + tracers.forEach((tracer, key) => tracer.inject(spans[key], FORMAT_HTTP_HEADERS, metadata)) + return oldFn.bind(instance)(arg, metadata, options, fn) + } + }) + return instance + } + } + debug('Patched') +} + +function unpatch (grpcCaller) { + shimmer.unwrap(grpcCaller, 'wrap') + debug('Unpatched') +} + +module.exports = { + name: 'grpc-caller', + module: 'grpc-caller', + patch, + unpatch +} diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 6e4382e..742fc97 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -5,11 +5,15 @@ const expressError = require('./expressError') const httpClient = require('./httpClient') const restify = require('./restify') const koa = require('./koa') +const mali = require('./mali') +const grpcCaller = require('./grpc-caller') module.exports = [ express, expressError, httpClient, restify, - koa + koa, + mali, + grpcCaller ] diff --git a/src/instrumentation/mali.js b/src/instrumentation/mali.js new file mode 100644 index 0000000..7b39028 --- /dev/null +++ b/src/instrumentation/mali.js @@ -0,0 +1,88 @@ +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:mali') +const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') +// eslint-disable-next-line import/order +const shimmer = require('shimmer') + +const METHODS = ['use'] +const cls = require('../cls') + +const OPERATION_NAME = 'grpc' +const TAG_REQUEST_PATH = 'request_path' + +function patch (mali, tracers) { + function applicationActionWrap (method) { + return function applicationActionWrapped (...args) { + if (!this._jaeger_trace_patched && !this._router) { + this._jaeger_trace_patched = true + this.use(middleware) + } + return method.call(this, ...args) + } + } + + function middleware (ctx, next) { + return cls.runAndReturn(() => { + // start + const url = `grpc:${ctx.fullName}` + const SPAN_NAME = ctx.fullName || OPERATION_NAME + const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.request.metadata)) + const spans = parentSpanContexts.map((parentSpanContext, key) => cls.startRootSpan(tracers[key], SPAN_NAME, { + childOf: parentSpanContext, + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, + [Tags.HTTP_METHOD]: url + } + })).filter((span) => !!span) + debug(`Operation started ${SPAN_NAME}`, { + [Tags.HTTP_METHOD]: url + }) + + if (ctx.request.metadata) { + const keys = Object.keys(ctx.request.metadata) + keys.forEach((key) => { + spans.forEach((span) => span.log({ [key]: ctx.request.metadata[key] })) + }) + } + try { + return next() + } catch (err) { + spans.forEach((span) => { + span.setTag(Tags.ERROR, true) + span.log({ error: err }) + }) + throw err + } finally { + spans.forEach((span) => span.finish()) + debug(`Operation finished ${SPAN_NAME}`) + } + }) + } + + METHODS.forEach((method) => { + shimmer.wrap(mali.prototype, method, applicationActionWrap) + debug(`Method patched ${method}`) + }) + + debug('Patched') +} + +function unpatch (koa) { + METHODS.forEach((method) => { + shimmer.unwrap(koa.prototype, method) + debug(`Method unpatched ${method}`) + }) + + debug('Unpatched') +} + +module.exports = { + name: 'mali', + module: 'mali', + supportedVersions: ['0.x'], + TAG_REQUEST_PATH, + OPERATION_NAME, + patch, + unpatch +} From 8f5c43702ea243aac60887b030978d0a78d48dba Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 4 Jun 2020 11:31:00 +0800 Subject: [PATCH 16/30] update pkg --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15d5430..8656ccd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.8", + "version": "2.0.9", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From aaecb65ae20907442286d75b25cee2054ed105dd Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 4 Jun 2020 11:51:43 +0800 Subject: [PATCH 17/30] update grpc-caller pkg to @guanghe/grpc-caller --- package.json | 2 +- src/instrumentation/grpc-caller.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8656ccd..c6620c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.0.9", + "version": "2.1.0", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/grpc-caller.js b/src/instrumentation/grpc-caller.js index f4bab54..a1a2d13 100644 --- a/src/instrumentation/grpc-caller.js +++ b/src/instrumentation/grpc-caller.js @@ -42,8 +42,8 @@ function unpatch (grpcCaller) { } module.exports = { - name: 'grpc-caller', - module: 'grpc-caller', + name: '@guanghe/grpc-caller', + module: '@guanghe/grpc-caller', patch, unpatch } From f9407bcdf1363d373c25aeaa8f7edeff37121cda Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 30 Jul 2020 10:40:09 +0800 Subject: [PATCH 18/30] support https client --- package.json | 2 +- src/instrumentation/https-client.js | 185 ++++++++++++++++++++++++++++ src/instrumentation/index.js | 4 +- 3 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 src/instrumentation/https-client.js diff --git a/package.json b/package.json index c6620c3..78503dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.1.0", + "version": "2.1.1", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/https-client.js b/src/instrumentation/https-client.js new file mode 100644 index 0000000..8ad112c --- /dev/null +++ b/src/instrumentation/https-client.js @@ -0,0 +1,185 @@ +'use strict' + +const url = require('url') +const debug = require('debug')('opentracing-auto:instrumentation:httpsClient') +const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') +const shimmer = require('shimmer') +const _ = require('lodash') +const semver = require('semver') +const cls = require('../cls') +const { getOriginUrlWithoutQs } = require('./utils') + + +const OPERATION_NAME = 'https_request' + +function extractUrl (options) { + const uri = options + return _.isString(uri) ? uri : url.format({ + protocol: 'https', + hostname: options.hostname || options.host || 'localhost', + port: options.port, + pathname: options.path || options.pathName || '/' + }) +} + +function patch (https, tracers) { + shimmer.wrap(https, 'request', (request) => makeRequestTrace(request)) + + if (semver.satisfies(process.version, '>=8.0.0')) { + // http.get in Node 8 calls the private copy of request rather than the one + // we have patched on module.export. We need to patch get as well. Luckily, + // the request patch we have does work for get as well. + shimmer.wrap(https, 'get', (get) => makeRequestTrace(get)) + } + + function makeRequestTrace (request) { + // On Node 8+ we use the following function to patch both request and get. + // Here `request` may also happen to be `get`. + return function requestTrace (options, callback) { + if (!options) { + return request.apply(this, [options, callback]) + } + + const uri = extractUrl(options) + const SPAN_NAME = getOriginUrlWithoutQs(options.path || options.pathName) || OPERATION_NAME + const method = options.method || 'GET' + const spans = tracers.map((tracer) => { + if (uri.indexOf('/api/traces') >= 0) { + debug(`match /api/traces skip span ${uri}`) + return null + } + return cls.startChildSpan(tracer, SPAN_NAME, { + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_CLIENT, + [Tags.HTTP_URL]: uri, + [Tags.HTTP_METHOD]: method + } + }) + }).filter((span) => !!span) + + const timings = { + begin: undefined, + dnsLookup: undefined, + tcpConnection: undefined, + firstByte: undefined, + tlsHandshake: undefined, + end: undefined + } + let isFinish = false + + debug(`Operation started ${SPAN_NAME}`, { + [Tags.HTTP_URL]: uri, + [Tags.HTTP_METHOD]: method + }) + + options = _.isString(options) ? url.parse(options) : _.merge({}, options) + options.headers = options.headers || {} + + tracers.forEach((tracer, key) => tracer.inject(spans[key], FORMAT_HTTP_HEADERS, options.headers)) + + timings.begin = Date.now() + + function finish () { + spans.forEach((span) => span.finish()) + isFinish = true + } + + const req = request.call(this, options, (res) => { + if (res.statusCode > 399) { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + + debug(`Operation error captured ${SPAN_NAME}`, { + reason: 'Bad status code', + statusCode: res.statusCode + }) + } + + const headers = _.omitBy( + _.pick(res.headers, ['server', 'content-type', 'cache-control']), + _.isUndefined + ) + + spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) + spans.forEach((span) => span.log({ headers })) + + // Timing spans + res.once('readable', () => { + timings.firstByte = Date.now() + }) + + // End event is not emitted when stream is not consumed fully + res.on('end', () => { + finish(res) + }) + + debug(`Operation finished ${SPAN_NAME}`, { + [Tags.HTTP_STATUS_CODE]: res.statusCode + }) + + if (callback) { + callback(res) + } + }) + + // Timings + req.on('socket', (socket) => { + socket.on('lookup', () => { + timings.dnsLookup = Date.now() + }) + socket.on('connect', () => { + timings.tcpConnection = Date.now() + }) + socket.on('secureConnect', () => { + timings.tlsHandshake = Date.now() + }) + socket.on('close', () => { + // End event is not emitted when stream is not consumed fully + if (!isFinish) { + finish() + } + }) + }) + + req.on('error', (err) => { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + + if (err) { + spans.forEach((span) => span.log({ + event: 'error', + 'error.object': err, + message: err.message, + stack: err.stack + })) + + debug(`Operation error captured ${SPAN_NAME}`, { + reason: 'Error event', + errorMessage: err.message + }) + } + + spans.forEach((span) => span.finish()) + }) + return req + } + } + + debug('Patched') +} + +function unpatch (https) { + shimmer.unwrap(https, 'request') + + if (semver.satisfies(process.version, '>=8.0.0')) { + shimmer.unwrap(https, 'get') + } + + debug('Unpatched') +} + +module.exports = { + name: 'httpsClient', + module: 'https', + OPERATION_NAME, + patch, + unpatch +} diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 742fc97..4617d73 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -7,6 +7,7 @@ const restify = require('./restify') const koa = require('./koa') const mali = require('./mali') const grpcCaller = require('./grpc-caller') +const httpsClient = require('./https-client') module.exports = [ express, @@ -15,5 +16,6 @@ module.exports = [ restify, koa, mali, - grpcCaller + grpcCaller, + httpsClient ] From c69cf17455bc5361ba826185ed00870bbcfe9383 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 2 Nov 2020 17:02:23 +0800 Subject: [PATCH 19/30] support koa 1.x --- README.md | 3 + src/instrumentation/index.js | 4 +- src/instrumentation/koa_v1.js | 117 ++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/instrumentation/koa_v1.js diff --git a/README.md b/README.md index 1d6fe30..4744bd5 100644 --- a/README.md +++ b/README.md @@ -125,3 +125,6 @@ Start your application with the `DEBUG=opentracing-auto*` environment variable. - More database instrumentation: Redis etc. - More messaging layer instrumentation: HTTP/2, GRPC, RabbitMQ, Kafka etc. + +## 3.x +- support koa 1.x \ No newline at end of file diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 4617d73..5509183 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -5,6 +5,7 @@ const expressError = require('./expressError') const httpClient = require('./httpClient') const restify = require('./restify') const koa = require('./koa') +const koaV1 = require('./koa_v1') const mali = require('./mali') const grpcCaller = require('./grpc-caller') const httpsClient = require('./https-client') @@ -17,5 +18,6 @@ module.exports = [ koa, mali, grpcCaller, - httpsClient + httpsClient, + koaV1 ] diff --git a/src/instrumentation/koa_v1.js b/src/instrumentation/koa_v1.js new file mode 100644 index 0000000..5848021 --- /dev/null +++ b/src/instrumentation/koa_v1.js @@ -0,0 +1,117 @@ +/* eslint-disable import/order */ + +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:koa') +const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') +const shimmer = require('shimmer') + +const METHODS = ['use'] +const cls = require('../cls') +const { getOriginUrlWithoutQs } = require('./utils') + +const OPERATION_NAME = 'http_server' +const TAG_REQUEST_PATH = 'request_path' + +function patch (koa, tracers) { + function applicationActionWrap (method) { + return function applicationActionWrapped (...args) { + if (!this._jaeger_trace_patched && !this._router) { + this._jaeger_trace_patched = true + this.use(middleware) + } + return method.call(this, ...args) + } + } + + function * middleware (next) { + const self = this + yield cls.runAndReturn(() => { + const ctx = self + // start + const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` + const SPAN_NAME = getOriginUrlWithoutQs(ctx.originalUrl) || OPERATION_NAME + const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) + const spans = parentSpanContexts.map((parentSpanContext, key) => { + if (ctx.method === 'OPTIONS') { + debug(`OPTIONS skiped ${SPAN_NAME}`) + return null + } + return cls.startRootSpan(tracers[key], SPAN_NAME, { + childOf: parentSpanContext, + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, + [Tags.HTTP_URL]: url, + [Tags.HTTP_METHOD]: ctx.method + } + }) + }).filter((span) => !!span) + debug(`Operation started ${SPAN_NAME}`, { + [Tags.HTTP_URL]: url, + [Tags.HTTP_METHOD]: ctx.method + }) + + if (ctx.ip) { + spans.forEach((span) => span.log({ peerRemoteAddress: ctx.ip })) + } + + // end + const { res } = ctx + const originalEnd = res.end + res.end = function (...args) { + ctx.res.end = originalEnd + const returned = res.end.call(this, ...args) + + // if (req.route && req.route.path) { + // spans.forEach((span) => span.setTag(TAG_REQUEST_PATH, req.route.path)) + // } + + spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) + + if (res.statusCode >= 400) { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + + debug(`Operation error captured ${SPAN_NAME}`, { + reason: 'Bad status code', + statusCode: res.statusCode + }) + } + + spans.forEach((span) => span.finish()) + + debug(`Operation finished ${SPAN_NAME}`, { + [Tags.HTTP_STATUS_CODE]: res.statusCode + }) + + return returned + } + return next + }) + } + + METHODS.forEach((method) => { + shimmer.wrap(koa.prototype, method, applicationActionWrap) + debug(`Method patched ${method}`) + }) + + debug('Patched') +} + +function unpatch (koa) { + METHODS.forEach((method) => { + shimmer.unwrap(koa.prototype, method) + debug(`Method unpatched ${method}`) + }) + + debug('Unpatched') +} + +module.exports = { + name: 'koa', + module: 'koa', + supportedVersions: ['1.x'], + TAG_REQUEST_PATH, + OPERATION_NAME, + patch, + unpatch +} From 49b6a3e2b42edb8adca0fdf9ca048b1c08329e2e Mon Sep 17 00:00:00 2001 From: wanglihui Date: Mon, 2 Nov 2020 17:03:15 +0800 Subject: [PATCH 20/30] update pkg --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 78503dc..36eddb3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "2.1.1", + "version": "3.0.1", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From 7ab00487b8596ad9839ee405e3e87fb77ad1e716 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 14 Jan 2021 16:18:54 +0800 Subject: [PATCH 21/30] =?UTF-8?q?web=E6=9C=8D=E5=8A=A1=EF=BC=8C=E6=9C=80?= =?UTF-8?q?=E5=B0=8F=E9=94=99=E8=AF=AF=E7=A0=81=E6=94=B9=E4=B8=BA=20500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constant.js | 4 ++++ src/instrumentation/express.js | 6 +++--- src/instrumentation/expressError.js | 3 +-- src/instrumentation/koa.js | 6 +++--- src/instrumentation/koa_v1.js | 6 +++--- 5 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 src/constant.js diff --git a/src/constant.js b/src/constant.js new file mode 100644 index 0000000..5849787 --- /dev/null +++ b/src/constant.js @@ -0,0 +1,4 @@ +/* eslint-disable strict */ +const MIN_ERROR_CODE = 500 + +module.exports = { MIN_ERROR_CODE } diff --git a/src/instrumentation/express.js b/src/instrumentation/express.js index 5e7d79d..bd4a9b7 100644 --- a/src/instrumentation/express.js +++ b/src/instrumentation/express.js @@ -5,7 +5,7 @@ const { Tags, FORMAT_HTTP_HEADERS } = require('opentracing') const shimmer = require('shimmer') const METHODS = require('methods').concat('use', 'route', 'param', 'all') const cls = require('../cls') -const { getOriginUrlWithoutQs } = require('./utils') +const { MIN_ERROR_CODE } = require('../constant') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' @@ -26,7 +26,7 @@ function patch (express, tracers) { // start const url = `${req.protocol}://${req.get('host')}${req.originalUrl}` const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, req.headers)) - const SPAN_NAME = getOriginUrlWithoutQs(req.originalUrl) || OPERATION_NAME + const SPAN_NAME = req.route ? req.route.path : OPERATION_NAME const spans = parentSpanContexts.map((parentSpanContext, key) => { if (req.method === 'OPTIONS') { debug(`OPTIONS skiped ${SPAN_NAME}`) @@ -63,7 +63,7 @@ function patch (express, tracers) { spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) - if (res.statusCode >= 400) { + if (res.statusCode >= MIN_ERROR_CODE) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) debug(`Operation error captured ${SPAN_NAME}`, { diff --git a/src/instrumentation/expressError.js b/src/instrumentation/expressError.js index 23fd4b0..7a0f42e 100644 --- a/src/instrumentation/expressError.js +++ b/src/instrumentation/expressError.js @@ -4,7 +4,6 @@ const debug = require('debug')('opentracing-auto:instrumentation:expressError') const shimmer = require('shimmer') const { Tags } = require('opentracing') const cls = require('../cls') -const { getOriginUrlWithoutQs } = require('./utils') const OPERATION_NAME = 'express_error_handler' @@ -31,7 +30,7 @@ function patch (express, tracers) { shimmer.wrap(lastLayer, 'handle_error', (originalHandleError) => function (err, req, res, next) { - const SPAN_NAME = getOriginUrlWithoutQs(req.originalUrl) || OPERATION_NAME + const SPAN_NAME = req.route ? req.route.path : OPERATION_NAME let rootSpans = tracers.map((tracer) => cls.getRootSpan(tracer)) rootSpans = rootSpans.filter((rootSpan) => rootSpan) if (rootSpans.length) { diff --git a/src/instrumentation/koa.js b/src/instrumentation/koa.js index ab90661..c51a6cd 100644 --- a/src/instrumentation/koa.js +++ b/src/instrumentation/koa.js @@ -8,7 +8,7 @@ const shimmer = require('shimmer') const METHODS = ['use'] const cls = require('../cls') -const { getOriginUrlWithoutQs } = require('./utils') +const { MIN_ERROR_CODE } = require('../constant') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' @@ -28,7 +28,7 @@ function patch (koa, tracers) { return cls.runAndReturn(() => { // start const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` - const SPAN_NAME = getOriginUrlWithoutQs(ctx.originalUrl) || OPERATION_NAME + const SPAN_NAME = ctx.path || OPERATION_NAME const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) const spans = parentSpanContexts.map((parentSpanContext, key) => { if (ctx.method === 'OPTIONS') { @@ -66,7 +66,7 @@ function patch (koa, tracers) { spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) - if (res.statusCode >= 400) { + if (res.statusCode >= MIN_ERROR_CODE) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) debug(`Operation error captured ${SPAN_NAME}`, { diff --git a/src/instrumentation/koa_v1.js b/src/instrumentation/koa_v1.js index 5848021..a67b4aa 100644 --- a/src/instrumentation/koa_v1.js +++ b/src/instrumentation/koa_v1.js @@ -8,7 +8,7 @@ const shimmer = require('shimmer') const METHODS = ['use'] const cls = require('../cls') -const { getOriginUrlWithoutQs } = require('./utils') +const { MIN_ERROR_CODE } = require('../constant') const OPERATION_NAME = 'http_server' const TAG_REQUEST_PATH = 'request_path' @@ -30,7 +30,7 @@ function patch (koa, tracers) { const ctx = self // start const url = `${ctx.protocol}://${ctx.get('host')}${ctx.originalUrl}` - const SPAN_NAME = getOriginUrlWithoutQs(ctx.originalUrl) || OPERATION_NAME + const SPAN_NAME = ctx.path || OPERATION_NAME const parentSpanContexts = tracers.map((tracer) => tracer.extract(FORMAT_HTTP_HEADERS, ctx.headers)) const spans = parentSpanContexts.map((parentSpanContext, key) => { if (ctx.method === 'OPTIONS') { @@ -68,7 +68,7 @@ function patch (koa, tracers) { spans.forEach((span) => span.setTag(Tags.HTTP_STATUS_CODE, res.statusCode)) - if (res.statusCode >= 400) { + if (res.statusCode >= MIN_ERROR_CODE) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) debug(`Operation error captured ${SPAN_NAME}`, { From 75cb13fd71f2b059b9d882d776af083abde6f322 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 14 Jan 2021 16:19:49 +0800 Subject: [PATCH 22/30] upgrade version to 4.x --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 36eddb3..d5e9557 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "3.0.1", + "version": "4.0.0", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From 17fe6ac1ad217014e36858a82207c94bd10ab1bc Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 14 Apr 2021 13:59:17 +0800 Subject: [PATCH 23/30] support sequelize --- package.json | 2 +- src/instrumentation/index.js | 4 +- src/instrumentation/sequelize.js | 78 ++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 src/instrumentation/sequelize.js diff --git a/package.json b/package.json index d5e9557..9f5ecfe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "4.0.0", + "version": "5.0.0", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 5509183..66c5f8e 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -9,6 +9,7 @@ const koaV1 = require('./koa_v1') const mali = require('./mali') const grpcCaller = require('./grpc-caller') const httpsClient = require('./https-client') +const sequelize = require('./sequelize') module.exports = [ express, @@ -19,5 +20,6 @@ module.exports = [ mali, grpcCaller, httpsClient, - koaV1 + koaV1, + sequelize ] diff --git a/src/instrumentation/sequelize.js b/src/instrumentation/sequelize.js new file mode 100644 index 0000000..0146a92 --- /dev/null +++ b/src/instrumentation/sequelize.js @@ -0,0 +1,78 @@ +/* eslint-disable import/order */ + +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:sequelize') +const { Tags } = require('opentracing') +const shimmer = require('shimmer') + +const METHODS = ['query'] +const cls = require('../cls') + +const OPERATION_NAME = 'sql' + +function patch (sequelize, tracers) { + function applicationActionWrap (method) { + return function applicationActionWrapped (...args) { + if (!this._jaeger_trace_patched) { + this._jaeger_trace_patched = true + this[method] = query.bind(this) + } + return method.call(this, ...args) + } + } + + function query (sql, option) { + const self = this + return cls.runAndReturn(() => { + const SPAN_NAME = 'sql' || OPERATION_NAME + const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, + [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_STATEMENT]: sql + } + })).filter((span) => !!span) + debug(`Operation started ${SPAN_NAME}`, { + [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_STATEMENT]: sql + }) + + return self.query(sql, option) + .then((result) => { + spans.forEach((span) => span.finish()) + return result + }) + .catch((err) => { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + spans.forEach((span) => span.log({ error: err })) + spans.forEach((span) => span.finish()) + }) + }) + } + + METHODS.forEach((method) => { + shimmer.wrap(sequelize.prototype, method, applicationActionWrap) + debug(`Method patched ${method}`) + }) + + debug('Patched') +} + +function unpatch (koa) { + METHODS.forEach((method) => { + shimmer.unwrap(koa.prototype, method) + debug(`Method unpatched ${method}`) + }) + + debug('Unpatched') +} + +module.exports = { + name: 'sequelize', + module: 'sequelize', + supportedVersions: ['4.x', '5.x'], + OPERATION_NAME, + patch, + unpatch +} From 9bb845dc5fa59b14d0032f0395ff5dd6d74cbbff Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 14 Apr 2021 15:10:32 +0800 Subject: [PATCH 24/30] support sequelzie --- src/instrumentation/sequelize.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/instrumentation/sequelize.js b/src/instrumentation/sequelize.js index 0146a92..b549ae8 100644 --- a/src/instrumentation/sequelize.js +++ b/src/instrumentation/sequelize.js @@ -12,18 +12,12 @@ const cls = require('../cls') const OPERATION_NAME = 'sql' function patch (sequelize, tracers) { - function applicationActionWrap (method) { - return function applicationActionWrapped (...args) { - if (!this._jaeger_trace_patched) { - this._jaeger_trace_patched = true - this[method] = query.bind(this) - } - return method.call(this, ...args) - } - } + var originQuery = sequelize.prototype.query + sequelize.prototype.query = query function query (sql, option) { const self = this + console.log(self) return cls.runAndReturn(() => { const SPAN_NAME = 'sql' || OPERATION_NAME const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { @@ -38,7 +32,7 @@ function patch (sequelize, tracers) { [Tags.DB_STATEMENT]: sql }) - return self.query(sql, option) + return originQuery.bind(self)(sql, option) .then((result) => { spans.forEach((span) => span.finish()) return result @@ -51,10 +45,10 @@ function patch (sequelize, tracers) { }) } - METHODS.forEach((method) => { - shimmer.wrap(sequelize.prototype, method, applicationActionWrap) - debug(`Method patched ${method}`) - }) + // METHODS.forEach((method) => { + // shimmer.wrap(sequelize.prototype, method, applicationActionWrap) + // debug(`Method patched ${method}`) + // }) debug('Patched') } From 74adfc801a22d29e3c958712840b90363e7f371d Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 14 Apr 2021 15:11:06 +0800 Subject: [PATCH 25/30] =?UTF-8?q?=E6=94=AF=E6=8C=81=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=BF=BD=E8=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/instrumentation/sequelize.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9f5ecfe..69e4a02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "5.0.0", + "version": "5.0.1", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/sequelize.js b/src/instrumentation/sequelize.js index b549ae8..a5c50f1 100644 --- a/src/instrumentation/sequelize.js +++ b/src/instrumentation/sequelize.js @@ -12,12 +12,11 @@ const cls = require('../cls') const OPERATION_NAME = 'sql' function patch (sequelize, tracers) { - var originQuery = sequelize.prototype.query + const originQuery = sequelize.prototype.query sequelize.prototype.query = query function query (sql, option) { const self = this - console.log(self) return cls.runAndReturn(() => { const SPAN_NAME = 'sql' || OPERATION_NAME const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { From 638ce9fe0c9ef7656c9795106ca0db37f4c96c66 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 14 Apr 2021 15:11:48 +0800 Subject: [PATCH 26/30] upgrade version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 69e4a02..7092d66 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "5.0.1", + "version": "4.0.1", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From 023a6be89f2b590469d9be0c83355721bf37b849 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Wed, 14 Apr 2021 15:33:01 +0800 Subject: [PATCH 27/30] fixed bug --- package.json | 2 +- src/instrumentation/sequelize.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 7092d66..5f4c62d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "4.0.1", + "version": "4.0.2", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/sequelize.js b/src/instrumentation/sequelize.js index a5c50f1..a0dbfe5 100644 --- a/src/instrumentation/sequelize.js +++ b/src/instrumentation/sequelize.js @@ -40,6 +40,7 @@ function patch (sequelize, tracers) { spans.forEach((span) => span.setTag(Tags.ERROR, true)) spans.forEach((span) => span.log({ error: err })) spans.forEach((span) => span.finish()) + throw err }) }) } From 8a11f870bb5aac84b090bdb92d67ac2ff174be7a Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 22 Apr 2021 15:49:56 +0800 Subject: [PATCH 28/30] add ioredis support --- src/instrumentation/index.js | 4 +- src/instrumentation/ioredis.js | 70 ++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 src/instrumentation/ioredis.js diff --git a/src/instrumentation/index.js b/src/instrumentation/index.js index 66c5f8e..39649a6 100644 --- a/src/instrumentation/index.js +++ b/src/instrumentation/index.js @@ -10,6 +10,7 @@ const mali = require('./mali') const grpcCaller = require('./grpc-caller') const httpsClient = require('./https-client') const sequelize = require('./sequelize') +const ioredis = require('./ioredis') module.exports = [ express, @@ -21,5 +22,6 @@ module.exports = [ grpcCaller, httpsClient, koaV1, - sequelize + sequelize, + ioredis ] diff --git a/src/instrumentation/ioredis.js b/src/instrumentation/ioredis.js new file mode 100644 index 0000000..ad607f0 --- /dev/null +++ b/src/instrumentation/ioredis.js @@ -0,0 +1,70 @@ +/* eslint-disable import/order */ + +'use strict' + +const debug = require('debug')('opentracing-auto:instrumentation:ioredis') +const { Tags } = require('opentracing') +const shimmer = require('shimmer') + +const METHODS = ['sendCommand'] +const cls = require('../cls') + +const OPERATION_NAME = 'redis' + +function patch (Redis, tracers) { + METHODS.forEach((method) => { + const originFn = Redis.prototype[method] + Redis.prototype[method] = fn + + function fn (command, stream) { + const self = this + return cls.runAndReturn(() => { + const SPAN_NAME = 'redis' || OPERATION_NAME + const statement = command && (`${command.name} ${command.args}`) + const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { + tags: { + [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, + [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_STATEMENT]: statement + } + })).filter((span) => !!span) + debug(`Operation started ${SPAN_NAME}`, { + [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_STATEMENT]: statement + }) + + return originFn.bind(self)(command, stream) + .then((result) => { + spans.forEach((span) => span.finish()) + return result + }) + .catch((err) => { + spans.forEach((span) => span.setTag(Tags.ERROR, true)) + spans.forEach((span) => span.log({ error: err })) + spans.forEach((span) => span.finish()) + throw err + }) + }) + } + }) + + debug('Patched') +} + +function unpatch (Redis) { + METHODS.forEach((method) => { + shimmer.unwrap(Redis.prototype, method) + debug(`Method unpatched ${method}`) + }) + + debug('Unpatched') +} + +module.exports = { + name: 'ioredis', + module: 'ioredis', + supportedVersions: ['4.x'], + OPERATION_NAME, + patch, + unpatch +} From 8e807319c699fa1de9629107308d82922102ac5f Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 22 Apr 2021 15:50:29 +0800 Subject: [PATCH 29/30] upgrade version to 4.0.3 support ioredis --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f4c62d..63383c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "4.0.2", + "version": "4.0.3", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { From a3f03bc66661012f228f2b7e24acf9fe07c92126 Mon Sep 17 00:00:00 2001 From: wanglihui Date: Thu, 22 Apr 2021 16:02:49 +0800 Subject: [PATCH 30/30] fixed ioredis error --- package.json | 2 +- src/instrumentation/ioredis.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 63383c8..59008dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@guanghe/primary-opentracing-auto", - "version": "4.0.3", + "version": "4.0.4", "description": "Out of the box OpenTracing instrumentation for Node.js", "main": "src/index.js", "scripts": { diff --git a/src/instrumentation/ioredis.js b/src/instrumentation/ioredis.js index ad607f0..e59708c 100644 --- a/src/instrumentation/ioredis.js +++ b/src/instrumentation/ioredis.js @@ -24,12 +24,12 @@ function patch (Redis, tracers) { const spans = tracers.map((tracer) => cls.startChildSpan(tracer, SPAN_NAME, { tags: { [Tags.SPAN_KIND]: Tags.SPAN_KIND_RPC_SERVER, - [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_TYPE]: 'redis', [Tags.DB_STATEMENT]: statement } })).filter((span) => !!span) debug(`Operation started ${SPAN_NAME}`, { - [Tags.DB_TYPE]: self.getDialect(), + [Tags.DB_TYPE]: 'redis', [Tags.DB_STATEMENT]: statement })