From b1a8729c80175243fbbeecd164e9ddd378a09a50 Mon Sep 17 00:00:00 2001 From: Kevin Gibbons Date: Wed, 29 Aug 2018 11:40:02 -0700 Subject: [PATCH 01/81] docs: mention --otp flag when prompting for OTP (#60) PR-URL: https://github.com/npm/cli/pull/60 Credit: @bakkot Reviewed-By: @zkat --- lib/utils/read-user-info.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/utils/read-user-info.js b/lib/utils/read-user-info.js index 445bdfeea3e84..1e8c86a52379f 100644 --- a/lib/utils/read-user-info.js +++ b/lib/utils/read-user-info.js @@ -21,9 +21,9 @@ function read (opts) { function readOTP (msg, otp, isRetry) { if (!msg) { msg = [ - 'There was an error while trying authentication due to OTP (One-Time-Password).', - 'The One-Time-Password is generated via applications like Authy or', - 'Google Authenticator, for more information see:', + 'This command requires a one-time password (OTP) from your authenticator app.', + 'Enter one below. You can also pass one on the command line by appending --otp=123456.', + 'For more information, see:', 'https://docs.npmjs.com/getting-started/using-two-factor-authentication', 'Enter OTP: ' ].join('\n') From 414f2d1a1bdffc02ed31ebb48a43216f284c21d4 Mon Sep 17 00:00:00 2001 From: Maarten Balliauw Date: Wed, 29 Aug 2018 20:41:19 +0200 Subject: [PATCH 02/81] audit: set lowercase headers for npm audit requests (#62) Fixes: https://npm.community/t/npm-audit-making-non-rfc-compliant-requests-to-server-resulting-in-400-bad-request-pr-with-fix/1742 PR-URL: https://github.com/npm/cli/pull/62 Credit: @maartenba Reviewd-By: @zkat --- lib/install/audit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/install/audit.js b/lib/install/audit.js index 23a60beb31138..f372b425a6fd4 100644 --- a/lib/install/audit.js +++ b/lib/install/audit.js @@ -87,7 +87,7 @@ function fetchAudit (href, body) { const opts = pacoteOpts() return registryFetch(href, { method: 'POST', - headers: { 'Content-Encoding': 'gzip', 'Content-Type': 'application/json' }, + headers: { 'content-encoding': 'gzip', 'content-type': 'application/json' }, config: npm.config, npmSession: opts.npmSession, projectScope: npm.projectScope, From fc1a8d185fc678cdf3784d9df9eef9094e0b2dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 29 Aug 2018 11:41:56 -0700 Subject: [PATCH 03/81] ci: backronym ci to clean-install (#57) Credit: @zkat Reviewed-By: @jefflembeck --- doc/cli/npm-ci.md | 7 ++++--- lib/config/cmd-list.js | 10 +++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/cli/npm-ci.md b/doc/cli/npm-ci.md index b1406e36a5587..289bb7c195a9e 100644 --- a/doc/cli/npm-ci.md +++ b/doc/cli/npm-ci.md @@ -39,9 +39,10 @@ cache: This command is similar to `npm-install(1)`, except it's meant to be used in automated environments such as test platforms, continuous integration, and -deployment. It can be significantly faster than a regular npm install by -skipping certain user-oriented features. It is also more strict than a regular -install, which can help catch errors or inconsistencies caused by the +deployment -- or any situation where you want to make sure you're doing a clean +install of your dependencies. It can be significantly faster than a regular npm +install by skipping certain user-oriented features. It is also more strict than +a regular install, which can help catch errors or inconsistencies caused by the incrementally-installed local environments of most npm users. In short, the main differences between using `npm install` and `npm ci` are: diff --git a/lib/config/cmd-list.js b/lib/config/cmd-list.js index 2069b5ea33ec7..a453082adc1bc 100644 --- a/lib/config/cmd-list.js +++ b/lib/config/cmd-list.js @@ -17,7 +17,9 @@ var shorthands = { 't': 'test', 'ddp': 'dedupe', 'v': 'view', - 'run': 'run-script' + 'run': 'run-script', + 'clean-install': 'ci', + 'clean-install-test': 'cit' } var affordances = { @@ -27,6 +29,8 @@ var affordances = { 'ic': 'ci', 'innit': 'init', 'isntall': 'install', + 'install-clean': 'ci', + 'isntall-clean': 'ci', 'dist-tags': 'dist-tag', 'apihelp': 'help', 'find-dupes': 'dedupe', @@ -46,13 +50,13 @@ var affordances = { 'rm': 'uninstall', 'r': 'uninstall', 'rum': 'run-script', - 'sit': 'cit', - 'urn': 'run-script' + 'sit': 'cit' } // these are filenames in . var cmdList = [ 'ci', + 'install-ci-test', 'install', 'install-test', 'uninstall', From 89652cb9b810f929f5586fc90cc6794d076603fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 29 Aug 2018 11:42:37 -0700 Subject: [PATCH 04/81] version: fix sign-git-commit options (#58) Oops: 7984206e2f41b8d8361229cde88d68f0c96ed0b8 did the wrong thing with the git params, and it breaks anyone trying to sign their git commits with npm version. Fixes: https://npm.community/t/1661 Credit: @zkat --- lib/version.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/version.js b/lib/version.js index 4439f679b3b89..265b049bf3914 100644 --- a/lib/version.js +++ b/lib/version.js @@ -296,7 +296,11 @@ function _commit (version, localData, cb) { const message = npm.config.get('message').replace(/%s/g, version) const signTag = npm.config.get('sign-git-tag') const signCommit = npm.config.get('sign-git-commit') - const commitArgs = buildCommitArgs([ 'commit', signCommit ? '-S -m' : '-m', message ]) + const commitArgs = buildCommitArgs([ + 'commit', + ...(signCommit ? ['-S', '-m'] : ['-m']), + message + ]) const flagForTag = signTag ? '-sm' : '-am' stagePackageFiles(localData, options).then(() => { From 4f761283e8896d0ceb5934779005646463a030e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 29 Aug 2018 11:44:35 -0700 Subject: [PATCH 05/81] figgy-pudding@3.5.1 Credit: @zkat --- node_modules/figgy-pudding/CHANGELOG.md | 20 +++ node_modules/figgy-pudding/README.md | 191 +++++++++++++++++++----- node_modules/figgy-pudding/index.js | 6 +- node_modules/figgy-pudding/package.json | 10 +- package-lock.json | 6 +- package.json | 2 +- 6 files changed, 185 insertions(+), 50 deletions(-) diff --git a/node_modules/figgy-pudding/CHANGELOG.md b/node_modules/figgy-pudding/CHANGELOG.md index b3bf92d1509e8..038f9c0650664 100644 --- a/node_modules/figgy-pudding/CHANGELOG.md +++ b/node_modules/figgy-pudding/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [3.5.1](https://github.com/zkat/figgy-pudding/compare/v3.5.0...v3.5.1) (2018-08-25) + + + + +# [3.5.0](https://github.com/zkat/figgy-pudding/compare/v3.4.1...v3.5.0) (2018-08-25) + + +### Bug Fixes + +* **node:** get rid of Object.entries to add node6 support back ([074f779](https://github.com/zkat/figgy-pudding/commit/074f779)) + + +### Features + +* **node:** add node@10 to CI config ([78b8937](https://github.com/zkat/figgy-pudding/commit/78b8937)) + + + ## [3.4.1](https://github.com/zkat/figgy-pudding/compare/v3.4.0...v3.4.1) (2018-08-16) diff --git a/node_modules/figgy-pudding/README.md b/node_modules/figgy-pudding/README.md index 8fbc9e15a0e2d..3d0591c1e622e 100644 --- a/node_modules/figgy-pudding/README.md +++ b/node_modules/figgy-pudding/README.md @@ -1,8 +1,12 @@ # figgy-pudding [![npm version](https://img.shields.io/npm/v/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![license](https://img.shields.io/npm/l/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![Travis](https://img.shields.io/travis/zkat/figgy-pudding.svg)](https://travis-ci.org/zkat/figgy-pudding) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/figgy-pudding?svg=true)](https://ci.appveyor.com/project/zkat/figgy-pudding) [![Coverage Status](https://coveralls.io/repos/github/zkat/figgy-pudding/badge.svg?branch=latest)](https://coveralls.io/github/zkat/figgy-pudding?branch=latest) -# Death to the God Object! Now Bring Us Some Figgy Pudding! +[`figgy-pudding`](https://github.com/zkat/figgy-pudding) is a small JavaScript +library for managing and composing cascading options objects -- hiding what +needs to be hidden from each layer, without having to do a lot of manual munging +and passing of options. -[`figgy-pudding`](https://github.com/zkat/figgy-pudding) is a simple JavaScript library for managing and composing cascading options objects -- hiding what needs to be hidden from each layer, without having to do a lot of manual munging and passing of options. +### The God Object is Dead! +### Now Bring Us Some Figgy Pudding! ## Install @@ -14,57 +18,82 @@ * [Features](#features) * [API](#api) * [`figgyPudding(spec)`](#figgy-pudding) - * [`Opts(values)`](#opts) + * [`PuddingFactory(values)`](#pudding-factory) * [`opts.get()`](#opts-get) * [`opts.concat()`](#opts-concat) + * [`opts.toJSON()`](#opts-to-json) + * [`opts.forEach()`](#opts-for-each) + * [`opts[Symbol.iterator]()`](#opts-symbol-iterator) + * [`opts.entries()`](#opts-entries) + * [`opts.keys()`](#opts-keys) + * [`opts.value()`](#opts-values) ### Example ```javascript -const puddin = require('figgyPudding') +// print-package.js +const fetch = require('./fetch.js') +const puddin = require('figgy-pudding') -const RequestOpts = puddin({ - follow: { - default: true - }, - streaming: { - default: false - }, - log: { - default: require('npmlog') - } +const PrintOpts = puddin({ + json: { default: false } }) -const MyAppOpts = puddin({ - log: { - default: require('npmlog') - }, - cache: { - default: './cache' +async function printPkg (name, opts) { + // Expected pattern is to call this in every interface function. If `opts` is + // not passed in, it will automatically create an (empty) object for it. + opts = PrintOpts(opts) + const uri = `https://registry.npmjs.com/${name}` + const res = await fetch(uri, opts.concat({ + // Add or override any passed-in configs and pass them down. + log: customLogger + })) + // The following would throw an error, because it's not in PrintOpts: + // console.log(opts.log) + if (opts.json) { + return res.json() + } else { + return res.text() } -}) - -function start (opts) { - opts = MyAppOpts(opts) - initCache(opts.get('cache')) - opts.get('streaming') // => undefined - reqStuff('https://npm.im/figgy-pudding', opts) } -function reqStuff (uri, opts) { - opts = RequestOpts(opts) - require('request').get(uri, opts) // can't see `cache` +console.log(await printPkg('figgy', { + // Pass in *all* configs at the toplevel, as a regular object. + json: true, + cache: './tmp-cache' +})) +``` + +```javascript +// fetch.js +const puddin = require('figgy-pudding') + +const FetchOpts = puddin({ + log: { default: require('npmlog') }, + cache: {} +}) + +module.exports = async function (..., opts) { + opts = FetchOpts(opts) } ``` ### Features -* Hide options from layer that didn't ask for it -* Shared multi-layer options +* hide options from layer that didn't ask for it +* shared multi-layer options +* make sure `opts` argument is available +* transparent key access like normal keys, through a Proxy. No need for`.get()`! +* default values +* key aliases +* arbitrary key filter functions +* key/value iteration +* serialization +* 100% test coverage using `tap --100` ### API -#### `> figgyPudding({ key: { default: val } | String }, [opts])` +#### `> figgyPudding({ key: { default: val } | String }, [opts]) -> PuddingFactory` Defines an Options constructor that can be used to collect only the needed options. @@ -87,7 +116,7 @@ const MyAppOpts = figgyPudding({ }) ``` -#### `> Opts(...providers)` +#### `> PuddingFactory(...providers) -> FiggyPudding{}` Instantiates an options object defined by `figgyPudding()`, which uses `providers`, in order, to find requested properties. @@ -112,17 +141,17 @@ const opts = ReqOpts({ log: require('npmlog') }) -opts.get('follow') // => true -opts.get('log') // => Error: ReqOpts does not define `log` +opts.follow // => true +opts.log // => Error: ReqOpts does not define `log` const MoreOpts = figgyPudding({ log: {} }) -MoreOpts(opts).get('log') // => npmlog object (passed in from original plain obj) -MoreOpts(opts).get('follow') // => Error: MoreOpts does not define `follow` +MoreOpts(opts).log // => npmlog object (passed in from original plain obj) +MoreOpts(opts).follow // => Error: MoreOpts does not define `follow` ``` -#### `> opts.get(key)` +#### `> opts.get(key) -> Value` Gets a value from the options object. @@ -131,9 +160,10 @@ Gets a value from the options object. ```js const opts = MyOpts(config) opts.get('foo') // value of `foo` +opts.foo // Proxy-based access through `.get()` ``` -#### `> opts.concat(...moreProviders)` +#### `> opts.concat(...moreProviders) -> FiggyPudding{}` Creates a new opts object of the same type as `opts` with additional providers. Providers further to the right shadow providers to the left, with properties in @@ -147,3 +177,84 @@ opts.get('x') // 1 opts.concat({x: 2}).get('x') // 2 opts.get('x') // 1 (original opts object left intact) ``` + +#### `> opts.toJSON() -> Value` + +Converts `opts` to a plain, JSON-stringifiable JavaScript value. Used internally +by JavaScript to get `JSON.stringify()` working. + +Only keys that are readable by the current pudding type will be serialized. + +##### Example + +```js +const opts = MyOpts({x: 1}) +opts.toJSON() // {x: 1} +JSON.stringify(opts) // '{"x":1}' +``` + +#### `> opts.forEach((value, key, opts) => {}, thisArg) -> undefined` + +Iterates over the values of `opts`, limited to the keys readable by the current +pudding type. `thisArg` will be used to set the `this` argument when calling the +`fn`. + +##### Example + +```js +const opts = MyOpts({x: 1, y: 2}) +opts.forEach((value, key) => console.log(key, '=', value)) +``` + +#### `> opts.entries() -> Iterator<[[key, value], ...]>` + +Returns an iterator that iterates over the keys and values in `opts`, limited to +the keys readable by the current pudding type. Each iteration returns an array +of `[key, value]`. + +##### Example + +```js +const opts = MyOpts({x: 1, y: 2}) +[...opts({x: 1, y: 2}).entries()] // [['x', 1], ['y', 2]] +``` + +#### `> opts[Symbol.iterator]() -> Iterator<[[key, value], ...]>` + +Returns an iterator that iterates over the keys and values in `opts`, limited to +the keys readable by the current pudding type. Each iteration returns an array +of `[key, value]`. Makes puddings work natively with JS iteration mechanisms. + +##### Example + +```js +const opts = MyOpts({x: 1, y: 2}) +[...opts({x: 1, y: 2})] // [['x', 1], ['y', 2]] +for (let [key, value] of opts({x: 1, y: 2})) { + console.log(key, '=', value) +} +``` + +#### `> opts.keys() -> Iterator<[key, ...]>` + +Returns an iterator that iterates over the keys in `opts`, limited to the keys +readable by the current pudding type. + +##### Example + +```js +const opts = MyOpts({x: 1, y: 2}) +[...opts({x: 1, y: 2}).keys()] // ['x', 'y'] +``` + +#### `> opts.values() -> Iterator<[value, ...]>` + +Returns an iterator that iterates over the values in `opts`, limited to the keys +readable by the current pudding type. + +##### Example +' +```js +const opts = MyOpts({x: 1, y: 2}) +[...opts({x: 1, y: 2}).values()] // [1, 2] +``` diff --git a/node_modules/figgy-pudding/index.js b/node_modules/figgy-pudding/index.js index 7991e69fc832f..bb7d5711bc18d 100644 --- a/node_modules/figgy-pudding/index.js +++ b/node_modules/figgy-pudding/index.js @@ -47,7 +47,7 @@ class FiggyPudding { if (matcher) { const seen = new Set() for (let p of this.__providers) { - const iter = p.entries ? p.entries(matcher) : Object.entries(p) + const iter = p.entries ? p.entries(matcher) : entries(p) for (let [key, val] of iter) { if (matcher(key) && !seen.has(key)) { seen.add(key) @@ -191,3 +191,7 @@ function reverse (arr) { arr.forEach(x => ret.unshift(x)) return ret } + +function entries (obj) { + return Object.keys(obj).map(k => [k, obj[k]]) +} diff --git a/node_modules/figgy-pudding/package.json b/node_modules/figgy-pudding/package.json index 81e03eff7d7ac..00fc27248205f 100644 --- a/node_modules/figgy-pudding/package.json +++ b/node_modules/figgy-pudding/package.json @@ -1,8 +1,8 @@ { "_from": "figgy-pudding@latest", - "_id": "figgy-pudding@3.4.1", + "_id": "figgy-pudding@3.5.1", "_inBundle": false, - "_integrity": "sha512-j1SAT641cerGuOvoSBoaE9LbSzh1N/E5ufk9oMpOKuyK8MyW3sGg4rh+4qhLmVTEAzipO5XTHYT4gjb6JYLE8g==", + "_integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "_location": "/figgy-pudding", "_phantomChildren": {}, "_requested": { @@ -22,8 +22,8 @@ "/libnpmhook", "/libnpmhook/npm-registry-fetch" ], - "_resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.4.1.tgz", - "_shasum": "af66da1991fa2f94ff7f33b545a38ea4b3869696", + "_resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "_shasum": "862470112901c727a0e495a80744bd5baa1d6790", "_spec": "figgy-pudding@latest", "_where": "/Users/zkat/Documents/code/work/npm", "author": { @@ -70,5 +70,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "3.4.1" + "version": "3.5.1" } diff --git a/package-lock.json b/package-lock.json index 0f396d1db1f96..cd73c2b4d4fc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1479,9 +1479,9 @@ } }, "figgy-pudding": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.4.1.tgz", - "integrity": "sha512-j1SAT641cerGuOvoSBoaE9LbSzh1N/E5ufk9oMpOKuyK8MyW3sGg4rh+4qhLmVTEAzipO5XTHYT4gjb6JYLE8g==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" }, "figures": { "version": "2.0.0", diff --git a/package.json b/package.json index 5c79d1566c351..1c1b9a2badfc4 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "detect-newline": "^2.1.0", "dezalgo": "~1.0.3", "editor": "~1.0.0", - "figgy-pudding": "^3.4.1", + "figgy-pudding": "^3.5.1", "find-npm-prefix": "^1.0.2", "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", From 3706db0bcbc306d167bb902362e7f6962f2fe1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 29 Aug 2018 11:45:06 -0700 Subject: [PATCH 06/81] ssri@6.0.1 Fixes: https://npm.community/t/crash-invalid-config-key-requested-error/1764 Credit: @zkat --- node_modules/ssri/CHANGELOG.md | 10 ++++++ node_modules/ssri/index.js | 58 ++++++++++++++++++++++------------ node_modules/ssri/package.json | 36 ++++++++++----------- package-lock.json | 9 ++++-- package.json | 2 +- 5 files changed, 73 insertions(+), 42 deletions(-) diff --git a/node_modules/ssri/CHANGELOG.md b/node_modules/ssri/CHANGELOG.md index a56594ae62032..d4c5897902d12 100644 --- a/node_modules/ssri/CHANGELOG.md +++ b/node_modules/ssri/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [6.0.1](https://github.com/zkat/ssri/compare/v6.0.0...v6.0.1) (2018-08-27) + + +### Bug Fixes + +* **opts:** use figgy-pudding to specify consumed opts ([cf86553](https://github.com/zkat/ssri/commit/cf86553)) + + + # [6.0.0](https://github.com/zkat/ssri/compare/v5.3.0...v6.0.0) (2018-04-09) diff --git a/node_modules/ssri/index.js b/node_modules/ssri/index.js index d4c9e49c4db76..e102892b0bcd0 100644 --- a/node_modules/ssri/index.js +++ b/node_modules/ssri/index.js @@ -1,6 +1,7 @@ 'use strict' const crypto = require('crypto') +const figgyPudding = require('figgy-pudding') const Transform = require('stream').Transform const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512'] @@ -10,10 +11,24 @@ const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/ const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/ const VCHAR_REGEX = /^[\x21-\x7E]+$/ +const SsriOpts = figgyPudding({ + algorithms: {default: ['sha512']}, + error: {default: false}, + integrity: {}, + options: {default: []}, + pickAlgorithm: {default: () => getPrioritizedHash}, + Promise: {default: () => Promise}, + sep: {default: ' '}, + single: {default: false}, + size: {}, + strict: {default: false} +}) + class Hash { get isHash () { return true } constructor (hash, opts) { - const strict = !!(opts && opts.strict) + opts = SsriOpts(opts) + const strict = !!opts.strict this.source = hash.trim() // 3.1. Integrity metadata (called "Hash" by ssri) // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description @@ -37,7 +52,8 @@ class Hash { return this.toString() } toString (opts) { - if (opts && opts.strict) { + opts = SsriOpts(opts) + if (opts.strict) { // Strict mode enforces the standard as close to the foot of the // letter as it can. if (!( @@ -70,7 +86,7 @@ class Integrity { return this.toString() } toString (opts) { - opts = opts || {} + opts = SsriOpts(opts) let sep = opts.sep || ' ' if (opts.strict) { // Entries must be separated by whitespace, according to spec. @@ -83,6 +99,7 @@ class Integrity { }).filter(x => x.length).join(sep) } concat (integrity, opts) { + opts = SsriOpts(opts) const other = typeof integrity === 'string' ? integrity : stringify(integrity, opts) @@ -92,6 +109,7 @@ class Integrity { return parse(this, {single: true}).hexDigest() } match (integrity, opts) { + opts = SsriOpts(opts) const other = parse(integrity, opts) const algo = other.pickAlgorithm(opts) return ( @@ -105,7 +123,8 @@ class Integrity { ) || false } pickAlgorithm (opts) { - const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash + opts = SsriOpts(opts) + const pickAlgorithm = opts.pickAlgorithm const keys = Object.keys(this) if (!keys.length) { throw new Error(`No algorithms available for ${ @@ -120,7 +139,7 @@ class Integrity { module.exports.parse = parse function parse (sri, opts) { - opts = opts || {} + opts = SsriOpts(opts) if (typeof sri === 'string') { return _parse(sri, opts) } else if (sri.algorithm && sri.digest) { @@ -151,6 +170,7 @@ function _parse (integrity, opts) { module.exports.stringify = stringify function stringify (obj, opts) { + opts = SsriOpts(opts) if (obj.algorithm && obj.digest) { return Hash.prototype.toString.call(obj, opts) } else if (typeof obj === 'string') { @@ -162,7 +182,8 @@ function stringify (obj, opts) { module.exports.fromHex = fromHex function fromHex (hexDigest, algorithm, opts) { - const optString = (opts && opts.options && opts.options.length) + opts = SsriOpts(opts) + const optString = opts.options && opts.options.length ? `?${opts.options.join('?')}` : '' return parse( @@ -174,8 +195,8 @@ function fromHex (hexDigest, algorithm, opts) { module.exports.fromData = fromData function fromData (data, opts) { - opts = opts || {} - const algorithms = opts.algorithms || ['sha512'] + opts = SsriOpts(opts) + const algorithms = opts.algorithms const optString = opts.options && opts.options.length ? `?${opts.options.join('?')}` : '' @@ -196,7 +217,7 @@ function fromData (data, opts) { module.exports.fromStream = fromStream function fromStream (stream, opts) { - opts = opts || {} + opts = SsriOpts(opts) const P = opts.Promise || Promise const istream = integrityStream(opts) return new P((resolve, reject) => { @@ -212,7 +233,7 @@ function fromStream (stream, opts) { module.exports.checkData = checkData function checkData (data, sri, opts) { - opts = opts || {} + opts = SsriOpts(opts) sri = parse(sri, opts) if (!Object.keys(sri).length) { if (opts.error) { @@ -251,9 +272,9 @@ function checkData (data, sri, opts) { module.exports.checkStream = checkStream function checkStream (stream, sri, opts) { - opts = opts || {} + opts = SsriOpts(opts) const P = opts.Promise || Promise - const checker = integrityStream(Object.assign({}, opts, { + const checker = integrityStream(opts.concat({ integrity: sri })) return new P((resolve, reject) => { @@ -269,7 +290,7 @@ function checkStream (stream, sri, opts) { module.exports.integrityStream = integrityStream function integrityStream (opts) { - opts = opts || {} + opts = SsriOpts(opts) // For verification const sri = opts.integrity && parse(opts.integrity, opts) const goodSri = sri && Object.keys(sri).length @@ -277,10 +298,7 @@ function integrityStream (opts) { const digests = goodSri && sri[algorithm] // Calculating stream const algorithms = Array.from( - new Set( - (opts.algorithms || ['sha512']) - .concat(algorithm ? [algorithm] : []) - ) + new Set(opts.algorithms.concat(algorithm ? [algorithm] : [])) ) const hashes = algorithms.map(crypto.createHash) let streamSize = 0 @@ -325,9 +343,9 @@ function integrityStream (opts) { module.exports.create = createIntegrity function createIntegrity (opts) { - opts = opts || {} - const algorithms = opts.algorithms || ['sha512'] - const optString = opts.options && opts.options.length + opts = SsriOpts(opts) + const algorithms = opts.algorithms + const optString = opts.options.length ? `?${opts.options.join('?')}` : '' diff --git a/node_modules/ssri/package.json b/node_modules/ssri/package.json index ec561fc3f7307..5dd740daa2782 100644 --- a/node_modules/ssri/package.json +++ b/node_modules/ssri/package.json @@ -1,35 +1,31 @@ { - "_args": [ - [ - "ssri@6.0.0", - "/Users/rebecca/code/npm" - ] - ], - "_from": "ssri@6.0.0", - "_id": "ssri@6.0.0", + "_from": "ssri@latest", + "_id": "ssri@6.0.1", "_inBundle": false, - "_integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==", + "_integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "_location": "/ssri", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "tag", "registry": true, - "raw": "ssri@6.0.0", + "raw": "ssri@latest", "name": "ssri", "escapedName": "ssri", - "rawSpec": "6.0.0", + "rawSpec": "latest", "saveSpec": null, - "fetchSpec": "6.0.0" + "fetchSpec": "latest" }, "_requiredBy": [ + "#USER", "/", "/cacache", "/make-fetch-happen", "/pacote" ], - "_resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz", - "_spec": "6.0.0", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "_shasum": "2a3c41b28dd45b62b63676ecb74001265ae9edd8", + "_spec": "ssri@latest", + "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Kat Marchán", "email": "kzm@sykosomatic.org" @@ -37,6 +33,7 @@ "bugs": { "url": "https://github.com/zkat/ssri/issues" }, + "bundleDependencies": false, "config": { "nyc": { "exclude": [ @@ -45,7 +42,10 @@ ] } }, - "dependencies": {}, + "dependencies": { + "figgy-pudding": "^3.5.1" + }, + "deprecated": false, "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.", "devDependencies": { "nyc": "^11.4.1", @@ -89,5 +89,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "6.0.0" + "version": "6.0.1" } diff --git a/package-lock.json b/package-lock.json index cd73c2b4d4fc3..3e8cb71a81d5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6842,9 +6842,12 @@ } }, "ssri": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz", - "integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } }, "stack-utils": { "version": "1.0.1", diff --git a/package.json b/package.json index 1c1b9a2badfc4..ddb495c8ae19f 100644 --- a/package.json +++ b/package.json @@ -126,7 +126,7 @@ "slide": "~1.1.6", "sorted-object": "~2.0.1", "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.0", + "ssri": "^6.0.1", "stringify-package": "^1.0.0", "tar": "^4.4.6", "text-table": "~0.2.0", From 83c2b117d0b760d0ea8d667e5e4bdfa6a7a7a8f6 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:53:18 -0700 Subject: [PATCH 07/81] bluebird@3.5.2 --- node_modules/.gitignore | 6 +- node_modules/.package-map.json.gz | Bin 0 -> 680807 bytes node_modules/bluebird/LICENSE | 2 +- node_modules/bluebird/README.md | 5 ++ .../bluebird/js/browser/bluebird.core.js | 58 +++++++++++++----- .../bluebird/js/browser/bluebird.core.min.js | 8 +-- node_modules/bluebird/js/browser/bluebird.js | 58 +++++++++++++----- .../bluebird/js/browser/bluebird.min.js | 10 +-- node_modules/bluebird/js/release/async.js | 22 ++++--- .../bluebird/js/release/debuggability.js | 19 +++++- node_modules/bluebird/js/release/promise.js | 3 +- node_modules/bluebird/js/release/util.js | 8 ++- node_modules/bluebird/package.json | 31 +++++----- node_modules/pmj.gz | Bin 0 -> 666601 bytes package-lock.json | 6 +- package.json | 2 +- 16 files changed, 158 insertions(+), 80 deletions(-) create mode 100644 node_modules/.package-map.json.gz create mode 100644 node_modules/pmj.gz diff --git a/node_modules/.gitignore b/node_modules/.gitignore index 1de8ad6419413..152ae79376f7f 100644 --- a/node_modules/.gitignore +++ b/node_modules/.gitignore @@ -1,4 +1,9 @@ ## Automatically generated dev dependency ignores +/@types/caseless +/@types/form-data +/@types/node +/@types/request +/@types/tough-cookie /acorn /acorn-jsx /ajv-keywords @@ -173,7 +178,6 @@ /utils-merge /watch /whatwg-fetch -/window-size /wordwrap /write /yapool diff --git a/node_modules/.package-map.json.gz b/node_modules/.package-map.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..223f2e45022b5061dff4153f5e320ec95fc5a7ec GIT binary patch literal 680807 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

r?G>66Y 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�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�u=j*SLs{>I(Y&=m2=ZL(; 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%0DMmy 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%0DZckg!e14a=zQJ1%poj6u* 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 sHjeniBB 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 literal 0 HcmV?d00001 diff --git a/node_modules/bluebird/LICENSE b/node_modules/bluebird/LICENSE index ae732d5299f49..b24e6350cafa3 100644 --- a/node_modules/bluebird/LICENSE +++ b/node_modules/bluebird/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2013-2017 Petka Antonov +Copyright (c) 2013-2018 Petka Antonov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/node_modules/bluebird/README.md b/node_modules/bluebird/README.md index ba82f73e275e1..0eb5b74aa14a8 100644 --- a/node_modules/bluebird/README.md +++ b/node_modules/bluebird/README.md @@ -3,6 +3,7 @@ title="Promises/A+ 1.1 compliant" align="right" /> + [![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) [![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) @@ -16,6 +17,10 @@ See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). +### Note + +Promises in Node.js 10 are significantly faster than before. Bluebird still includes a lot of features like cancellation, iteration methods and warnings that native promises don't. If you are using Bluebird for performance rather than for those - please consider giving native promises a shot and running the benchmarks yourself. + # Questions and issues The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. diff --git a/node_modules/bluebird/js/browser/bluebird.core.js b/node_modules/bluebird/js/browser/bluebird.core.js index 85b779137dd10..4b238b6770ed7 100644 --- a/node_modules/bluebird/js/browser/bluebird.core.js +++ b/node_modules/bluebird/js/browser/bluebird.core.js @@ -1,7 +1,7 @@ /* @preserve * The MIT License (MIT) * - * Copyright (c) 2013-2017 Petka Antonov + * Copyright (c) 2013-2018 Petka Antonov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,7 +23,7 @@ * */ /** - * bluebird build version 3.5.1 + * bluebird build version 3.5.2 * Features enabled: core * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ @@ -156,24 +156,28 @@ if (!util.hasDevTools) { }; } -Async.prototype._drainQueue = function(queue) { +function _drainQueue(queue) { while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { var receiver = queue.shift(); var arg = queue.shift(); fn.call(receiver, arg); } -}; +} Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); + _drainQueue(this._normalQueue); this._reset(); this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); + _drainQueue(this._lateQueue); }; Async.prototype._queueTick = function () { @@ -525,6 +529,7 @@ var getDomain = Promise._getDomain; var async = Promise._async; var Warning = _dereq_("./errors").Warning; var util = _dereq_("./util"); +var es5 = _dereq_("./es5"); var canAttachTrace = util.canAttachTrace; var unhandledRejectionHandled; var possiblyUnhandledRejection; @@ -643,6 +648,7 @@ Promise.longStackTraces = function () { if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace; var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; config.longStackTraces = true; disableLongStackTraces = function() { if (async.haveItemsQueued() && !config.longStackTraces) { @@ -650,12 +656,14 @@ Promise.longStackTraces = function () { } Promise.prototype._captureStackTrace = Promise_captureStackTrace; Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; Context.deactivateLongStackTraces(); async.enableTrampoline(); config.longStackTraces = false; }; Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; Context.activateLongStackTraces(); async.disableTrampolineIfNecessary(); } @@ -671,10 +679,14 @@ var fireDomEvent = (function() { var event = new CustomEvent("CustomEvent"); util.global.dispatchEvent(event); return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { + var eventData = { detail: event, cancelable: true - }); + }; + es5.defineProperty( + eventData, "promise", {value: event.promise}); + es5.defineProperty(eventData, "reason", {value: event.reason}); + var domEvent = new CustomEvent(name.toLowerCase(), eventData); return !util.global.dispatchEvent(domEvent); }; } else if (typeof Event === "function") { @@ -685,6 +697,8 @@ var fireDomEvent = (function() { cancelable: true }); domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); return !util.global.dispatchEvent(domEvent); }; } else { @@ -833,6 +847,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) { }; Promise.prototype._captureStackTrace = function () {}; Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; Promise.prototype._clearCancellationData = function() {}; Promise.prototype._propagateFrom = function (parent, flags) { ; @@ -938,6 +953,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) { } } +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (returnValue === undefined && promiseCreated !== null && @@ -1439,7 +1458,7 @@ return { }; }; -},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){ +},{"./errors":9,"./es5":10,"./util":21}],8:[function(_dereq_,module,exports){ "use strict"; module.exports = function(Promise) { function returner() { @@ -2757,6 +2776,7 @@ Promise.prototype._fulfill = function (value) { } else { async.settlePromises(this); } + this._dereferenceTrace(); } }; @@ -2851,7 +2871,7 @@ _dereq_("./synchronous_inspection")(Promise); _dereq_("./join")( Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); Promise.Promise = Promise; -Promise.version = "3.5.1"; +Promise.version = "3.5.2"; util.toFastProperties(Promise); util.toFastProperties(Promise.prototype); @@ -3593,8 +3613,12 @@ function toFastProperties(obj) { /*jshint -W027,-W055,-W031*/ function FakeConstructor() {} FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); return obj; eval(obj); } diff --git a/node_modules/bluebird/js/browser/bluebird.core.min.js b/node_modules/bluebird/js/browser/bluebird.core.min.js index 6aca6aa3fd37e..4cfc7612f25e0 100644 --- a/node_modules/bluebird/js/browser/bluebird.core.min.js +++ b/node_modules/bluebird/js/browser/bluebird.core.min.js @@ -1,7 +1,7 @@ /* @preserve * The MIT License (MIT) * - * Copyright (c) 2013-2017 Petka Antonov + * Copyright (c) 2013-2018 Petka Antonov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,9 +23,9 @@ * */ /** - * bluebird build version 3.5.1 + * bluebird build version 3.5.2 * Features enabled: core * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof N?N(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,N,L=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=L();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=L();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.CapturedTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(N=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?N=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:I.isNode||"string"!=typeof(new Error).stack||(N=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0); -},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.1",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),f=t("./queue"),h=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){h.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},h.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?a.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=a),r.prototype._drainQueues=function(){s(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,s(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new O(this._peekContext())}function _(t,e){if(V(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=k(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(){this._trace=void 0}function v(t,e,n,r,i){if(void 0===t&&null!==e&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=w(s),l=c.length-1;l>=0;--l){var u=c[l];if(!q.test(u)){var p=u.match(G);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function y(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),g(n)}function g(t,n,r){if(st.warnings){var i,o=new I(t);if(n)r._attachExtraTrace(o);else if(st.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=k(o);o.stack=a.message+"\n"+a.stack.join("\n")}nt("warning",o)||j(o,"",!0)}}function m(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function k(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?E(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function j(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+W(i,t)}else r=e+String(t);"function"==typeof L?L(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function F(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){U.throwLater(o)}"unhandledRejection"===t?nt(t,n,r)||i||j(n,"Unhandled rejection "):nt(t,r)}function T(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+P(e)+">, no stack trace)"}function P(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(it=function(t){if(Q.test(t))return!0;var e=S(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function O(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);at(this,O),e>32&&this.uncycle()}var A,N,L,B=e._getDomain,U=e._async,I=t("./errors").Warning,H=t("./util"),D=t("./es5"),V=H.canAttachTrace,Q=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,q=/\((?:timers\.js):\d+:\d+\)/,G=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,M=null,W=null,$=!1,z=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),X=!(0==H.env("BLUEBIRD_WARNINGS")||!z&&!H.env("BLUEBIRD_WARNINGS")),K=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!z&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(X||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){F("rejectionHandled",A,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),F("unhandledRejection",N,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return g(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=B();N="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=B();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var Y=function(){};e.longStackTraces=function(){if(U.haveItemsQueued()&&!st.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!st.longStackTraces&&R()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;st.longStackTraces=!0,Y=function(){if(U.haveItemsQueued()&&!st.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),U.enableTrampoline(),st.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,e.prototype._dereferenceTrace=d,n.activateLongStackTraces(),U.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return st.longStackTraces&&R()};var Z=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n={detail:e,cancelable:!0};D.defineProperty(n,"promise",{value:e.promise}),D.defineProperty(n,"reason",{value:e.reason});var r=new CustomEvent(t.toLowerCase(),n);return!H.global.dispatchEvent(r)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,D.defineProperty(n,"promise",{value:e.promise}),D.defineProperty(n,"reason",{value:e.reason}),!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),tt=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),et={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},nt=function(t){var e=!1;try{e=tt.apply(null,arguments)}catch(n){U.throwLater(n),e=!0}var r=!1;try{r=Z(t,et[t].apply(null,arguments))}catch(n){U.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;st.warnings=!!n,J=st.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!st.cancellation){if(U.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,rt=u,st.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!st.monitoring?(st.monitoring=!0,e.prototype._fireEvent=nt):!t.monitoring&&st.monitoring&&(st.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var rt=p,it=function(){return!1},ot=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(O,Error),n.CapturedTrace=O,O.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},O.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=k(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;C(r),b(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var at=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():T(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,M=t,W=e;var n=Error.captureStackTrace;return it=function(t){return Q.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return M=/@/,W=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(W=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?T(e):e.toString()},null):(M=t,W=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(L=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?L=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(L=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var st={warnings:X,longStackTraces:!1,cancellation:!1,monitoring:!1};return K&&e.longStackTraces(),{longStackTraces:function(){return st.longStackTraces},warnings:function(){return st.warnings},cancellation:function(){return st.cancellation},monitoring:function(){return st.monitoring},propagateFromFunction:function(){return rt},boundValueFunction:function(){return f},checkForgottenReturns:v,setBounds:x,warn:g,deprecated:y,CapturedTrace:O,fireDomEvent:Z,fireGlobalEvent:tt}}},{"./errors":9,"./es5":10,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){ +var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.2",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.js b/node_modules/bluebird/js/browser/bluebird.js index 2bc524b5fc390..559d05baa25cf 100644 --- a/node_modules/bluebird/js/browser/bluebird.js +++ b/node_modules/bluebird/js/browser/bluebird.js @@ -1,7 +1,7 @@ /* @preserve * The MIT License (MIT) * - * Copyright (c) 2013-2017 Petka Antonov + * Copyright (c) 2013-2018 Petka Antonov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,7 +23,7 @@ * */ /** - * bluebird build version 3.5.1 + * bluebird build version 3.5.2 * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { var receiver = queue.shift(); var arg = queue.shift(); fn.call(receiver, arg); } -}; +} Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); + _drainQueue(this._normalQueue); this._reset(); this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); + _drainQueue(this._lateQueue); }; Async.prototype._queueTick = function () { @@ -672,6 +676,7 @@ var getDomain = Promise._getDomain; var async = Promise._async; var Warning = _dereq_("./errors").Warning; var util = _dereq_("./util"); +var es5 = _dereq_("./es5"); var canAttachTrace = util.canAttachTrace; var unhandledRejectionHandled; var possiblyUnhandledRejection; @@ -790,6 +795,7 @@ Promise.longStackTraces = function () { if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace; var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; config.longStackTraces = true; disableLongStackTraces = function() { if (async.haveItemsQueued() && !config.longStackTraces) { @@ -797,12 +803,14 @@ Promise.longStackTraces = function () { } Promise.prototype._captureStackTrace = Promise_captureStackTrace; Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; Context.deactivateLongStackTraces(); async.enableTrampoline(); config.longStackTraces = false; }; Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; Context.activateLongStackTraces(); async.disableTrampolineIfNecessary(); } @@ -818,10 +826,14 @@ var fireDomEvent = (function() { var event = new CustomEvent("CustomEvent"); util.global.dispatchEvent(event); return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { + var eventData = { detail: event, cancelable: true - }); + }; + es5.defineProperty( + eventData, "promise", {value: event.promise}); + es5.defineProperty(eventData, "reason", {value: event.reason}); + var domEvent = new CustomEvent(name.toLowerCase(), eventData); return !util.global.dispatchEvent(domEvent); }; } else if (typeof Event === "function") { @@ -832,6 +844,8 @@ var fireDomEvent = (function() { cancelable: true }); domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); return !util.global.dispatchEvent(domEvent); }; } else { @@ -980,6 +994,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) { }; Promise.prototype._captureStackTrace = function () {}; Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; Promise.prototype._clearCancellationData = function() {}; Promise.prototype._propagateFrom = function (parent, flags) { ; @@ -1085,6 +1100,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) { } } +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (returnValue === undefined && promiseCreated !== null && @@ -1586,7 +1605,7 @@ return { }; }; -},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){ +},{"./errors":12,"./es5":13,"./util":36}],10:[function(_dereq_,module,exports){ "use strict"; module.exports = function(Promise) { function returner() { @@ -3405,6 +3424,7 @@ Promise.prototype._fulfill = function (value) { } else { async.settlePromises(this); } + this._dereferenceTrace(); } }; @@ -3499,7 +3519,7 @@ _dereq_("./synchronous_inspection")(Promise); _dereq_("./join")( Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); Promise.Promise = Promise; -Promise.version = "3.5.1"; +Promise.version = "3.5.2"; _dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); _dereq_('./call_get.js')(Promise); _dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); @@ -5435,8 +5455,12 @@ function toFastProperties(obj) { /*jshint -W027,-W055,-W031*/ function FakeConstructor() {} FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); return obj; eval(obj); } diff --git a/node_modules/bluebird/js/browser/bluebird.min.js b/node_modules/bluebird/js/browser/bluebird.min.js index e02a9cddc505e..8327717a06ccc 100644 --- a/node_modules/bluebird/js/browser/bluebird.min.js +++ b/node_modules/bluebird/js/browser/bluebird.min.js @@ -1,7 +1,7 @@ /* @preserve * The MIT License (MIT) * - * Copyright (c) 2013-2017 Petka Antonov + * Copyright (c) 2013-2018 Petka Antonov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,9 +23,9 @@ * */ /** - * bluebird build version 3.5.1 + * bluebird build version 3.5.2 * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.1",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t), -this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),h=t("./queue"),f=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){f.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},f.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?s.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s),r.prototype._drainQueues=function(){a(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,a(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+N.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?N.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new O(this._peekContext())}function _(t,e){if(U(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);N.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),N.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(){this._trace=void 0}function v(t,e,n,r,i){if(void 0===t&&null!==e&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=C(a),l=c.length-1;l>=0;--l){var u=c[l];if(!q.test(u)){var p=u.match($);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function y(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),m(n)}function m(t,n,r){if(at.warnings){var i,o=new H(t);if(n)r._attachExtraTrace(o);else if(at.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=E(o);o.stack=s.message+"\n"+s.stack.join("\n")}nt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?j(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(N.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof V?V(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function F(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){L.throwLater(o)}"unhandledRejection"===t?nt(t,n,r)||i||k(n,"Unhandled rejection "):nt(t,r)}function T(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():N.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(it=function(t){if(M.test(t))return!0;var e=R(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function O(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);st(this,O),e>32&&this.uncycle()}var A,D,V,I=e._getDomain,L=e._async,H=t("./errors").Warning,N=t("./util"),B=t("./es5"),U=N.canAttachTrace,M=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,q=/\((?:timers\.js):\d+:\d+\)/,$=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,Q=null,G=null,z=!1,X=!(0==N.env("BLUEBIRD_DEBUG")||!N.env("BLUEBIRD_DEBUG")&&"development"!==N.env("NODE_ENV")),W=!(0==N.env("BLUEBIRD_WARNINGS")||!X&&!N.env("BLUEBIRD_WARNINGS")),K=!(0==N.env("BLUEBIRD_LONG_STACK_TRACES")||!X&&!N.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=N.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(W||!!N.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){F("rejectionHandled",A,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),F("unhandledRejection",D,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return m(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=I();D="function"==typeof t?null===e?t:N.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=I();A="function"==typeof t?null===e?t:N.domainBind(e,t):void 0};var Y=function(){};e.longStackTraces=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!at.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;at.longStackTraces=!0,Y=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),L.enableTrampoline(),at.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,e.prototype._dereferenceTrace=d,n.activateLongStackTraces(),L.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return at.longStackTraces&&P()};var Z=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return N.global.dispatchEvent(t),function(t,e){var n={detail:e,cancelable:!0};B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason});var r=new CustomEvent(t.toLowerCase(),n);return!N.global.dispatchEvent(r)}}if("function"==typeof Event){var t=new Event("CustomEvent");return N.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason}),!N.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),N.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!N.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),tt=function(){return N.isNode?function(){return process.emit.apply(process,arguments)}:N.global?function(t){var e="on"+t.toLowerCase(),n=N.global[e];return n?(n.apply(N.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),et={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},nt=function(t){var e=!1;try{e=tt.apply(null,arguments)}catch(n){L.throwLater(n),e=!0}var r=!1;try{r=Z(t,et[t].apply(null,arguments))}catch(n){L.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;at.warnings=!!n,J=at.warnings,N.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!at.cancellation){if(L.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,rt=u,at.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!at.monitoring?(at.monitoring=!0,e.prototype._fireEvent=nt):!t.monitoring&&at.monitoring&&(at.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var rt=p,it=function(){return!1},ot=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;N.inherits(O,Error),n.CapturedTrace=O,O.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},O.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;w(r),b(r),N.notEnumerableProp(t,"stack",g(n,r)),N.notEnumerableProp(t,"__stackCleaned__",!0)}};var st=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():T(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,Q=t,G=e;var n=Error.captureStackTrace;return it=function(t){return M.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return Q=/@/,G=e,z=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?T(e):e.toString()},null):(Q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(V=function(t){console.warn(t)},N.isNode&&process.stderr.isTTY?V=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:N.isNode||"string"!=typeof(new Error).stack||(V=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var at={warnings:W,longStackTraces:!1,cancellation:!1,monitoring:!1};return K&&e.longStackTraces(),{longStackTraces:function(){return at.longStackTraces},warnings:function(){return at.warnings},cancellation:function(){return at.cancellation},monitoring:function(){return at.monitoring},propagateFromFunction:function(){return rt},boundValueFunction:function(){return h},checkForgottenReturns:v,setBounds:S,warn:m,deprecated:y,CapturedTrace:O,fireDomEvent:Z,fireGlobalEvent:tt}}},{"./errors":12,"./es5":13,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(T.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&T.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(T.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof x&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){T.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,T),t("./bind")(i,b,j,T),t("./cancel")(i,E,p,T),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.2",t("./map.js")(i,E,p,j,b,T),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,T),t("./timers.js")(i,b,T),t("./generators.js")(i,p,b,j,n,T),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,T),t("./settle.js")(i,E,T),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),T.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216, +n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return x.e=e,x}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js index 41f665564750a..73cdc6110a62a 100644 --- a/node_modules/bluebird/js/release/async.js +++ b/node_modules/bluebird/js/release/async.js @@ -126,24 +126,28 @@ if (!util.hasDevTools) { }; } -Async.prototype._drainQueue = function(queue) { +function _drainQueue(queue) { while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { var receiver = queue.shift(); var arg = queue.shift(); fn.call(receiver, arg); } -}; +} Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); + _drainQueue(this._normalQueue); this._reset(); this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); + _drainQueue(this._lateQueue); }; Async.prototype._queueTick = function () { diff --git a/node_modules/bluebird/js/release/debuggability.js b/node_modules/bluebird/js/release/debuggability.js index 6956804131112..213d4ac6d27e4 100644 --- a/node_modules/bluebird/js/release/debuggability.js +++ b/node_modules/bluebird/js/release/debuggability.js @@ -4,6 +4,7 @@ var getDomain = Promise._getDomain; var async = Promise._async; var Warning = require("./errors").Warning; var util = require("./util"); +var es5 = require("./es5"); var canAttachTrace = util.canAttachTrace; var unhandledRejectionHandled; var possiblyUnhandledRejection; @@ -122,6 +123,7 @@ Promise.longStackTraces = function () { if (!config.longStackTraces && longStackTracesIsSupported()) { var Promise_captureStackTrace = Promise.prototype._captureStackTrace; var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; config.longStackTraces = true; disableLongStackTraces = function() { if (async.haveItemsQueued() && !config.longStackTraces) { @@ -129,12 +131,14 @@ Promise.longStackTraces = function () { } Promise.prototype._captureStackTrace = Promise_captureStackTrace; Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; Context.deactivateLongStackTraces(); async.enableTrampoline(); config.longStackTraces = false; }; Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; Context.activateLongStackTraces(); async.disableTrampolineIfNecessary(); } @@ -150,10 +154,14 @@ var fireDomEvent = (function() { var event = new CustomEvent("CustomEvent"); util.global.dispatchEvent(event); return function(name, event) { - var domEvent = new CustomEvent(name.toLowerCase(), { + var eventData = { detail: event, cancelable: true - }); + }; + es5.defineProperty( + eventData, "promise", {value: event.promise}); + es5.defineProperty(eventData, "reason", {value: event.reason}); + var domEvent = new CustomEvent(name.toLowerCase(), eventData); return !util.global.dispatchEvent(domEvent); }; } else if (typeof Event === "function") { @@ -164,6 +172,8 @@ var fireDomEvent = (function() { cancelable: true }); domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); return !util.global.dispatchEvent(domEvent); }; } else { @@ -312,6 +322,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) { }; Promise.prototype._captureStackTrace = function () {}; Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; Promise.prototype._clearCancellationData = function() {}; Promise.prototype._propagateFrom = function (parent, flags) { ; @@ -417,6 +428,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) { } } +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) { if (returnValue === undefined && promiseCreated !== null && diff --git a/node_modules/bluebird/js/release/promise.js b/node_modules/bluebird/js/release/promise.js index f4a641c3360c2..eeac47e4769a1 100644 --- a/node_modules/bluebird/js/release/promise.js +++ b/node_modules/bluebird/js/release/promise.js @@ -639,6 +639,7 @@ Promise.prototype._fulfill = function (value) { } else { async.settlePromises(this); } + this._dereferenceTrace(); } }; @@ -733,7 +734,7 @@ require("./synchronous_inspection")(Promise); require("./join")( Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); Promise.Promise = Promise; -Promise.version = "3.5.1"; +Promise.version = "3.5.2"; require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); require('./call_get.js')(Promise); require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); diff --git a/node_modules/bluebird/js/release/util.js b/node_modules/bluebird/js/release/util.js index 7ac0e2fa1986c..c5617ee870d50 100644 --- a/node_modules/bluebird/js/release/util.js +++ b/node_modules/bluebird/js/release/util.js @@ -195,8 +195,12 @@ function toFastProperties(obj) { /*jshint -W027,-W055,-W031*/ function FakeConstructor() {} FakeConstructor.prototype = obj; - var l = 8; - while (l--) new FakeConstructor(); + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); return obj; eval(obj); } diff --git a/node_modules/bluebird/package.json b/node_modules/bluebird/package.json index a517fb86c4e3e..c6b046daa5341 100644 --- a/node_modules/bluebird/package.json +++ b/node_modules/bluebird/package.json @@ -1,40 +1,35 @@ { - "_args": [ - [ - "bluebird@3.5.1", - "/Users/rebecca/code/npm" - ] - ], - "_from": "bluebird@3.5.1", - "_id": "bluebird@3.5.1", + "_from": "bluebird@3.5.2", + "_id": "bluebird@3.5.2", "_inBundle": false, - "_integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "_integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", "_location": "/bluebird", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "bluebird@3.5.1", + "raw": "bluebird@3.5.2", "name": "bluebird", "escapedName": "bluebird", - "rawSpec": "3.5.1", + "rawSpec": "3.5.2", "saveSpec": null, - "fetchSpec": "3.5.1" + "fetchSpec": "3.5.2" }, "_requiredBy": [ + "#USER", "/", "/bin-links", "/cacache", "/libcipm", "/libnpmhook/npm-registry-fetch", - "/npm-profile/cacache", "/npm-registry-fetch", "/npm-registry-fetch/cacache", "/pacote", "/tap" ], - "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "_spec": "3.5.1", + "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "_shasum": "1be0908e054a751754549c270489c1505d4ab15a", + "_spec": "bluebird@3.5.2", "_where": "/Users/rebecca/code/npm", "author": { "name": "Petka Antonov", @@ -45,6 +40,8 @@ "bugs": { "url": "http://github.com/petkaantonov/bluebird/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "Full featured Promises/A+ implementation with exceptionally good performance", "devDependencies": { "acorn": "~0.6.0", @@ -106,8 +103,8 @@ "istanbul": "istanbul", "lint": "node scripts/jshint.js", "prepublish": "npm run generate-browser-core && npm run generate-browser-full", - "test": "node tools/test.js" + "test": "node --expose-gc tools/test.js" }, - "version": "3.5.1", + "version": "3.5.2", "webpack": "./js/release/bluebird.js" } diff --git a/node_modules/pmj.gz b/node_modules/pmj.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b42c13c0bea18e41ffec2174a3b22711391937f GIT binary patch literal 666601 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 z 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%0DI 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

2B- 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

q?&PARyo()zeO@>?Fq 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 O82=9f&o4fN-4_4`Txw+i literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 3e8cb71a81d5c..370e25f40486c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -329,9 +329,9 @@ } }, "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==" }, "boxen": { "version": "1.3.0", diff --git a/package.json b/package.json index ddb495c8ae19f..42b0433b23d36 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "aproba": "~1.2.0", "archy": "~1.0.0", "bin-links": "^1.1.2", - "bluebird": "~3.5.1", + "bluebird": "^3.5.2", "byte-size": "^4.0.3", "cacache": "^11.2.0", "call-limit": "~1.1.0", From 2702f46bd7284fb303ca2119d23c52536811d705 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:53:43 -0700 Subject: [PATCH 08/81] ci-info@1.5.1 --- node_modules/ci-info/README.md | 83 ++++++++----------- node_modules/ci-info/index.js | 66 ++++++++------- node_modules/ci-info/package.json | 29 +++---- node_modules/ci-info/vendors.json | 131 ++++++++++++++++++++++++++++++ package-lock.json | 6 +- package.json | 2 +- 6 files changed, 218 insertions(+), 99 deletions(-) create mode 100644 node_modules/ci-info/vendors.json diff --git a/node_modules/ci-info/README.md b/node_modules/ci-info/README.md index a76fd2e16365e..b3f677ddc4973 100644 --- a/node_modules/ci-info/README.md +++ b/node_modules/ci-info/README.md @@ -32,28 +32,31 @@ if (ci.isCI) { Officially supported CI servers: -- [AWS CodeBuild](https://aws.amazon.com/codebuild/) -- [AppVeyor](http://www.appveyor.com) -- [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian -- [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) -- [Buildkite](https://buildkite.com) -- [CircleCI](http://circleci.com) -- [Cirrus CI](https://cirrus-ci.org) -- [Codeship](https://codeship.com) -- [Drone](https://drone.io) -- [GitLab CI](https://about.gitlab.com/gitlab-ci/) -- [GoCD](https://www.go.cd/) -- [Hudson](http://hudson-ci.org) -- [Jenkins CI](https://jenkins-ci.org) -- [Magnum CI](https://magnum-ci.com) -- [Semaphore](https://semaphoreci.com) -- [Shippable](https://www.shippable.com/) -- [Solano CI](https://www.solanolabs.com/) -- [Strider CD](https://strider-cd.github.io/) -- [TaskCluster](http://docs.taskcluster.net) -- [Team Foundation Server](https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx) by Microsoft -- [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains -- [Travis CI](http://travis-ci.org) +| Name | Constant | +|------|----------| +| [AWS CodeBuild](https://aws.amazon.com/codebuild/) | `ci.CODEBUILD` | +| [AppVeyor](http://www.appveyor.com) | `ci.APPVEYOR` | +| [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian | `ci.BAMBOO` | +| [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) | `ci.BITBUCKET` | +| [Buildkite](https://buildkite.com) | `ci.BUILDKITE` | +| [CircleCI](http://circleci.com) | `ci.CIRCLE` | +| [Cirrus CI](https://cirrus-ci.org) | `ci.CIRRUS` | +| [Codeship](https://codeship.com) | `ci.CODESHIP` | +| [Drone](https://drone.io) | `ci.DRONE` | +| [dsari](https://github.com/rfinnie/dsari) | `ci.DSARI` | +| [GitLab CI](https://about.gitlab.com/gitlab-ci/) | `ci.GITLAB` | +| [GoCD](https://www.go.cd/) | `ci.GOCD` | +| [Hudson](http://hudson-ci.org) | `ci.HUDSON` | +| [Jenkins CI](https://jenkins-ci.org) | `ci.JENKINS` | +| [Magnum CI](https://magnum-ci.com) | `ci.MAGNUM` | +| [Semaphore](https://semaphoreci.com) | `ci.SEMAPHORE` | +| [Shippable](https://www.shippable.com/) | `ci.SHIPPABLE` | +| [Solano CI](https://www.solanolabs.com/) | `ci.SOLANO` | +| [Strider CD](https://strider-cd.github.io/) | `ci.STRIDER` | +| [TaskCluster](http://docs.taskcluster.net) | `ci.TASKCLUSTER` | +| [Team Foundation Server](https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx) by Microsoft | `ci.TFS` | +| [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains | `ci.TEAMCITY` | +| [Travis CI](http://travis-ci.org) | `ci.TRAVIS` | ## API @@ -76,34 +79,20 @@ boolean to be set to `true` if they use certain vendor neutral environment variables. In those cases `ci.name` will be `null` and no vendor specific boolean will be set to `true`. +### `ci.isPR` + +A boolean if PR detection is supported for the current CI server. Will +be `true` if a PR is being tested. Otherwise `false`. If PR detection is +not supported for the current CI server, the value will be `null`. + ### `ci.` -The following vendor specific boolean constants are exposed. A constant -will be `true` if the code is determined to run on the given CI server. -Otherwise `false`. +A vendor specific boolean constants is exposed for each support CI +vendor. A constant will be `true` if the code is determined to run on +the given CI server. Otherwise `false`. -- `ci.APPVEYOR` -- `ci.BAMBOO` -- `ci.BITBUCKET` -- `ci.BUILDKITE` -- `ci.CIRCLE` -- `ci.CIRRUS` -- `ci.CODEBUILD` -- `ci.CODESHIP` -- `ci.DRONE` -- `ci.GITLAB` -- `ci.GOCD` -- `ci.HUDSON` -- `ci.JENKINS` -- `ci.MAGNUM` -- `ci.SEMAPHORE` -- `ci.SHIPPABLE` -- `ci.SOLANO` -- `ci.STRIDER` -- `ci.TASKCLUSTER` -- `ci.TEAMCITY` -- `ci.TFS` (Team Foundation Server) -- `ci.TRAVIS` +Examples of vendor constants are `ci.TRAVIS` or `ci.APPVEYOR`. For a +complete list, see the support table above. Deprecated vendor constants that will be removed in the next major release: diff --git a/node_modules/ci-info/index.js b/node_modules/ci-info/index.js index 74750a7c06091..7f742f4ed573f 100644 --- a/node_modules/ci-info/index.js +++ b/node_modules/ci-info/index.js @@ -1,58 +1,56 @@ 'use strict' -var env = process.env +var vendors = require('./vendors.json') -var vendors = [ - // Constant, Name, Envs - ['APPVEYOR', 'AppVeyor', 'APPVEYOR'], - ['BAMBOO', 'Bamboo', 'bamboo_planKey'], - ['BITBUCKET', 'Bitbucket Pipelines', 'BITBUCKET_COMMIT'], - ['BUILDKITE', 'Buildkite', 'BUILDKITE'], - ['CIRCLE', 'CircleCI', 'CIRCLECI'], - ['CIRRUS', 'Cirrus CI', 'CIRRUS_CI'], - ['CODEBUILD', 'AWS CodeBuild', 'CODEBUILD_BUILD_ARN'], - ['CODESHIP', 'Codeship', {CI_NAME: 'codeship'}], - ['DRONE', 'Drone', 'DRONE'], - ['GITLAB', 'GitLab CI', 'GITLAB_CI'], - ['GOCD', 'GoCD', 'GO_PIPELINE_LABEL'], - ['HUDSON', 'Hudson', 'HUDSON_URL'], - ['JENKINS', 'Jenkins', 'JENKINS_URL', 'BUILD_ID'], - ['MAGNUM', 'Magnum CI', 'MAGNUM'], - ['SEMAPHORE', 'Semaphore', 'SEMAPHORE'], - ['SHIPPABLE', 'Shippable', 'SHIPPABLE'], - ['SOLANO', 'Solano CI', 'TDDIUM'], - ['STRIDER', 'Strider CD', 'STRIDER'], - ['TASKCLUSTER', 'TaskCluster', 'TASK_ID', 'RUN_ID'], - ['TDDIUM', 'Solano CI', 'TDDIUM'], // Deprecated - ['TEAMCITY', 'TeamCity', 'TEAMCITY_VERSION'], - ['TFS', 'Team Foundation Server', 'TF_BUILD'], - ['TRAVIS', 'Travis CI', 'TRAVIS'] -] +var env = process.env // Used for testinging only Object.defineProperty(exports, '_vendors', { - value: vendors.map(function (v) { return v[0] }) + value: vendors.map(function (v) { return v.constant }) }) exports.name = null +exports.isPR = null vendors.forEach(function (vendor) { - var constant = vendor.shift() - var name = vendor.shift() - var isCI = vendor.every(function (obj) { + var envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env] + var isCI = envs.every(function (obj) { if (typeof obj === 'string') return !!env[obj] return Object.keys(obj).every(function (k) { return env[k] === obj[k] }) }) - exports[constant] = isCI - if (isCI) exports.name = name + + exports[vendor.constant] = isCI + + if (isCI) { + exports.name = vendor.name + + if (vendor.pr) { + var val = env[vendor.pr.env] + if (val) { + switch (vendor.pr.type) { + case 'not-false': + exports.isPR = val !== 'false' + break + case 'boolean': + exports.isPR = val === 'true' + break + default: + exports.isPR = true + } + } else { + exports.isPR = false + } + } + } }) exports.isCI = !!( - env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip + env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI env.BUILD_NUMBER || // Jenkins, TeamCity + env.RUN_ID || // TaskCluster, dsari exports.name || false ) diff --git a/node_modules/ci-info/package.json b/node_modules/ci-info/package.json index 6c1f1cadab084..961f89ff33a00 100644 --- a/node_modules/ci-info/package.json +++ b/node_modules/ci-info/package.json @@ -1,29 +1,29 @@ { - "_from": "ci-info@1.4.0", - "_id": "ci-info@1.4.0", + "_from": "ci-info@1.5.1", + "_id": "ci-info@1.5.1", "_inBundle": false, - "_integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==", + "_integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==", "_location": "/ci-info", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "ci-info@1.4.0", + "raw": "ci-info@1.5.1", "name": "ci-info", "escapedName": "ci-info", - "rawSpec": "1.4.0", + "rawSpec": "1.5.1", "saveSpec": null, - "fetchSpec": "1.4.0" + "fetchSpec": "1.5.1" }, "_requiredBy": [ "#USER", "/", "/is-ci" ], - "_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.4.0.tgz", - "_shasum": "4841d53cad49f11b827b648ebde27a6e189b412f", - "_spec": "ci-info@1.4.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz", + "_shasum": "17e8eb5de6f8b2b6038f0cbb714d410bfa9f3030", + "_spec": "ci-info@1.5.1", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Thomas Watson Steen", "email": "w@tson.dk", @@ -34,15 +34,16 @@ }, "bundleDependencies": false, "coordinates": [ - 55.0113914, - 14.9747494 + 55.778273, + 12.593054 ], "dependencies": {}, "deprecated": false, "description": "Get details about the current Continuous Integration environment", "devDependencies": { "clear-require": "^1.0.1", - "standard": "^11.0.1" + "standard": "^12.0.1", + "tape": "^4.9.1" }, "homepage": "https://github.com/watson/ci-info", "keywords": [ @@ -62,5 +63,5 @@ "scripts": { "test": "standard && node test.js" }, - "version": "1.4.0" + "version": "1.5.1" } diff --git a/node_modules/ci-info/vendors.json b/node_modules/ci-info/vendors.json new file mode 100644 index 0000000000000..4c03de95c9520 --- /dev/null +++ b/node_modules/ci-info/vendors.json @@ -0,0 +1,131 @@ +[ + { + "name": "AppVeyor", + "constant": "APPVEYOR", + "env": "APPVEYOR", + "pr": { "env": "APPVEYOR_PULL_REQUEST_NUMBER", "type": "string" } + }, + { + "name": "Bamboo", + "constant": "BAMBOO", + "env": "bamboo_planKey" + }, + { + "name": "Bitbucket Pipelines", + "constant": "BITBUCKET", + "env": "BITBUCKET_COMMIT" + }, + { + "name": "Buildkite", + "constant": "BUILDKITE", + "env": "BUILDKITE", + "pr": { "env": "BUILDKITE_PULL_REQUEST", "type": "not-false" } + }, + { + "name": "CircleCI", + "constant": "CIRCLE", + "env": "CIRCLECI", + "pr": { "env": "CIRCLE_PULL_REQUEST", "type": "string" } + }, + { + "name": "Cirrus CI", + "constant": "CIRRUS", + "env": "CIRRUS_CI", + "pr": { "env": "CIRRUS_PR", "type": "string" } + }, + { + "name": "AWS CodeBuild", + "constant": "CODEBUILD", + "env": "CODEBUILD_BUILD_ARN" + }, + { + "name": "Codeship", + "constant": "CODESHIP", + "env": { "CI_NAME": "codeship" } + }, + { + "name": "Drone", + "constant": "DRONE", + "env": "DRONE" + }, + { + "name": "dsari", + "constant": "DSARI", + "env": "DSARI" + }, + { + "name": "GitLab CI", + "constant": "GITLAB", + "env": "GITLAB_CI" + }, + { + "name": "GoCD", + "constant": "GOCD", + "env": "GO_PIPELINE_LABEL" + }, + { + "name": "Hudson", + "constant": "HUDSON", + "env": "HUDSON_URL" + }, + { + "name": "Jenkins", + "constant": "JENKINS", + "env": ["JENKINS_URL", "BUILD_ID"] + }, + { + "name": "Magnum CI", + "constant": "MAGNUM", + "env": "MAGNUM" + }, + { + "name": "Semaphore", + "constant": "SEMAPHORE", + "env": "SEMAPHORE", + "pr": { "env": "PULL_REQUEST_NUMBER", "type": "string" } + }, + { + "name": "Shippable", + "constant": "SHIPPABLE", + "env": "SHIPPABLE", + "pr": { "env": "IS_PULL_REQUEST", "type": "boolean" } + }, + { + "name": "Solano CI", + "constant": "SOLANO", + "env": "TDDIUM", + "pr": { "env": "TDDIUM_PR_ID", "type": "string" } + }, + { + "name": "Strider CD", + "constant": "STRIDER", + "env": "STRIDER" + }, + { + "name": "TaskCluster", + "constant": "TASKCLUSTER", + "env": ["TASK_ID", "RUN_ID"] + }, + { + "name": "Solano CI", + "constant": "TDDIUM", + "env": "TDDIUM", + "deprecated": true + }, + { + "name": "TeamCity", + "constant": "TEAMCITY", + "env": "TEAMCITY_VERSION" + }, + { + "name": "Team Foundation Server", + "constant": "TFS", + "env": "TF_BUILD" + }, + { + "name": "Travis CI", + "constant": "TRAVIS", + "env": "TRAVIS", + "pr": { "env": "TRAVIS_PULL_REQUEST", "type": "not-false" } + } +] diff --git a/package-lock.json b/package-lock.json index 370e25f40486c..8aed6ad03bed0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -471,9 +471,9 @@ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "ci-info": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.4.0.tgz", - "integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz", + "integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==" }, "cidr-regex": { "version": "2.0.9", diff --git a/package.json b/package.json index 42b0433b23d36..93d09edd26e80 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "cacache": "^11.2.0", "call-limit": "~1.1.0", "chownr": "~1.0.1", - "ci-info": "^1.4.0", + "ci-info": "^1.5.1", "cli-columns": "^3.1.2", "cli-table3": "^0.5.0", "cmd-shim": "~2.0.2", From 4db6c3898b07100e3a324e4aae50c2fab4b93a04 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:54:30 -0700 Subject: [PATCH 09/81] config-chain@1.1.12 --- node_modules/config-chain/.npmignore | 3 - node_modules/config-chain/package.json | 33 +++--- node_modules/config-chain/readme.markdown | 60 +++++++---- node_modules/config-chain/test/broken.js | 10 -- node_modules/config-chain/test/broken.json | 21 ---- node_modules/config-chain/test/chain-class.js | 100 ------------------ node_modules/config-chain/test/env.js | 10 -- node_modules/config-chain/test/find-file.js | 13 --- node_modules/config-chain/test/get.js | 15 --- .../config-chain/test/ignore-unfound-file.js | 5 - node_modules/config-chain/test/ini.js | 18 ---- node_modules/config-chain/test/save.js | 59 ----------- package-lock.json | 6 +- package.json | 2 +- 14 files changed, 61 insertions(+), 294 deletions(-) delete mode 100644 node_modules/config-chain/.npmignore delete mode 100644 node_modules/config-chain/test/broken.js delete mode 100644 node_modules/config-chain/test/broken.json delete mode 100644 node_modules/config-chain/test/chain-class.js delete mode 100644 node_modules/config-chain/test/env.js delete mode 100644 node_modules/config-chain/test/find-file.js delete mode 100644 node_modules/config-chain/test/get.js delete mode 100644 node_modules/config-chain/test/ignore-unfound-file.js delete mode 100644 node_modules/config-chain/test/ini.js delete mode 100644 node_modules/config-chain/test/save.js diff --git a/node_modules/config-chain/.npmignore b/node_modules/config-chain/.npmignore deleted file mode 100644 index 13abef4f58898..0000000000000 --- a/node_modules/config-chain/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -node_modules/* -npm_debug.log diff --git a/node_modules/config-chain/package.json b/node_modules/config-chain/package.json index 501f13ef36e7f..5654ff7a194b0 100644 --- a/node_modules/config-chain/package.json +++ b/node_modules/config-chain/package.json @@ -1,31 +1,27 @@ { - "_args": [ - [ - "config-chain@1.1.11", - "/Users/rebecca/code/npm" - ] - ], - "_from": "config-chain@1.1.11", - "_id": "config-chain@1.1.11", + "_from": "config-chain@1.1.12", + "_id": "config-chain@1.1.12", "_inBundle": false, - "_integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "_integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "_location": "/config-chain", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "config-chain@1.1.11", + "raw": "config-chain@1.1.12", "name": "config-chain", "escapedName": "config-chain", - "rawSpec": "1.1.11", + "rawSpec": "1.1.12", "saveSpec": null, - "fetchSpec": "1.1.11" + "fetchSpec": "1.1.12" }, "_requiredBy": [ + "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "_spec": "1.1.11", + "_resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "_shasum": "0fde8d091200eb5e808caf25fe618c02f48e4efa", + "_spec": "config-chain@1.1.12", "_where": "/Users/rebecca/code/npm", "author": { "name": "Dominic Tarr", @@ -35,14 +31,19 @@ "bugs": { "url": "https://github.com/dominictarr/config-chain/issues" }, + "bundleDependencies": false, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" }, + "deprecated": false, "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", "devDependencies": { "tap": "0.3.0" }, + "files": [ + "index.js" + ], "homepage": "http://github.com/dominictarr/config-chain", "licenses": [ { @@ -56,7 +57,7 @@ "url": "git+https://github.com/dominictarr/config-chain.git" }, "scripts": { - "test": "tap test/" + "test": "tap test/*" }, - "version": "1.1.11" + "version": "1.1.12" } diff --git a/node_modules/config-chain/readme.markdown b/node_modules/config-chain/readme.markdown index a8d26378e6ff4..47f894c79884f 100644 --- a/node_modules/config-chain/readme.markdown +++ b/node_modules/config-chain/readme.markdown @@ -1,6 +1,6 @@ -#config-chain +# config-chain -USE THIS MODULE TO LOAD ALL YOUR CONFIGURATIONS +A module for loading custom configurations ## NOTE: Feature Freeze @@ -8,12 +8,42 @@ USE THIS MODULE TO LOAD ALL YOUR CONFIGURATIONS This module is frozen. -In general, I'd recommend using [rc](https://github.com/dominictarr/rc) instead, +In general, we recommend using [rc](https://github.com/dominictarr/rc) instead, but as [npm](https://github.com/npmjs/npm) depends on this, it cannot be changed. + +## Install + +```sh +yarn add config-chain + +# npm users +npm install --save config-chain +``` + +## Usage + +```js +const cc = require('config-chain'); + +console.log(cc.env('TERM_', process.env)); +/* +{ SESSION_ID: 'w1:5F38', + PROGRAM_VERSION: '3.1.2', + PROGRAM: 'iTerm.app' } +*/ +``` + +The `.env` function gets all the keys on the provided object which are +prefixed by the specified prefix, removes the prefix, and puts the values on a new object. + +
+ +## Full Usage + ``` js - //npm install config-chain + // npm install config-chain var cc = require('config-chain') , opts = require('optimist').argv //ALWAYS USE OPTIMIST FOR COMMAND LINE OPTIONS. @@ -63,17 +93,9 @@ but as [npm](https://github.com/npmjs/npm) depends on this, it cannot be changed ``` -FINALLY, EASY FLEXIBLE CONFIGURATIONS! - -##see also: [proto-list](https://github.com/isaacs/proto-list/) - -WHATS THAT YOU SAY? +Finally, flexible configurations! 👌 -YOU WANT A "CLASS" SO THAT YOU CAN DO CRAYCRAY JQUERY CRAPS? - -EXTEND WITH YOUR OWN FUNCTIONALTY!? - -## CONFIGCHAIN LIVES TO SERVE ONLY YOU! +## Custom Configuations ```javascript var cc = require('config-chain') @@ -108,7 +130,7 @@ var config = cc({ }) ``` -# BORING API DOCS +# API Docs ## cc(...args) @@ -116,13 +138,11 @@ MAKE A CHAIN AND ADD ALL THE ARGS. If the arg is a STRING, then it shall be a JSON FILENAME. -SYNC I/O! - RETURN THE CHAIN! ## cc.json(...args) -Join the args INTO A JSON FILENAME! +Join the args into a JSON filename! SYNC I/O! @@ -145,8 +165,8 @@ NO I/O! ## cc.env(prefix, env=process.env) -Get all the keys on the provided env object (or process.env) which are -prefixed by the specified prefix, and put the values on a new object. +Get all the keys on the provided object which are +prefixed by the specified prefix, removes the prefix, and puts the values on a new object. RETURN THE RESULTING OBJECT! diff --git a/node_modules/config-chain/test/broken.js b/node_modules/config-chain/test/broken.js deleted file mode 100644 index 101a3e4f5c216..0000000000000 --- a/node_modules/config-chain/test/broken.js +++ /dev/null @@ -1,10 +0,0 @@ - - -var cc = require('..') -var assert = require('assert') - - -//throw on invalid json -assert.throws(function () { - cc(__dirname + '/broken.json') -}) diff --git a/node_modules/config-chain/test/broken.json b/node_modules/config-chain/test/broken.json deleted file mode 100644 index 2107ac18d949d..0000000000000 --- a/node_modules/config-chain/test/broken.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "config-chain", - "version": "0.3.0", - "description": "HANDLE CONFIGURATION ONCE AND FOR ALL", - "homepage": "http://github.com/dominictarr/config-chain", - "repository": { - "type": "git", - "url": "https://github.com/dominictarr/config-chain.git" - } - //missing , and then this comment. this json is intensionally invalid - "dependencies": { - "proto-list": "1", - "ini": "~1.0.2" - }, - "bundleDependencies": ["ini"], - "REM": "REMEMBER TO REMOVE BUNDLING WHEN/IF ISAACS MERGES ini#7", - "author": "Dominic Tarr (http://dominictarr.com)", - "scripts": { - "test": "node test/find-file.js && node test/ini.js && node test/env.js" - } -} diff --git a/node_modules/config-chain/test/chain-class.js b/node_modules/config-chain/test/chain-class.js deleted file mode 100644 index bbc0d4cb2d19f..0000000000000 --- a/node_modules/config-chain/test/chain-class.js +++ /dev/null @@ -1,100 +0,0 @@ -var test = require('tap').test -var CC = require('../index.js').ConfigChain - -var env = { foo_blaz : 'blzaa', foo_env : 'myenv' } -var jsonObj = { blaz: 'json', json: true } -var iniObj = { 'x.y.z': 'xyz', blaz: 'ini' } - -var fs = require('fs') -var ini = require('ini') - -fs.writeFileSync('/tmp/config-chain-class.json', JSON.stringify(jsonObj)) -fs.writeFileSync('/tmp/config-chain-class.ini', ini.stringify(iniObj)) - -var http = require('http') -var reqs = 0 -http.createServer(function (q, s) { - if (++reqs === 2) this.close() - if (q.url === '/json') { - // make sure that the requests come back from the server - // out of order. they should still be ordered properly - // in the resulting config object set. - setTimeout(function () { - s.setHeader('content-type', 'application/json') - s.end(JSON.stringify({ - blaz: 'http', - http: true, - json: true - })) - }, 200) - } else { - s.setHeader('content-type', 'application/ini') - s.end(ini.stringify({ - blaz: 'http', - http: true, - ini: true, - json: false - })) - } -}).listen(1337) - -test('basic class test', function (t) { - var cc = new CC() - var expectlist = - [ { blaz: 'json', json: true }, - { 'x.y.z': 'xyz', blaz: 'ini' }, - { blaz: 'blzaa', env: 'myenv' }, - { blaz: 'http', http: true, json: true }, - { blaz: 'http', http: true, ini: true, json: false } ] - - cc.addFile('/tmp/config-chain-class.json') - .addFile('/tmp/config-chain-class.ini') - .addEnv('foo_', env) - .addUrl('http://localhost:1337/json') - .addUrl('http://localhost:1337/ini') - .on('load', function () { - t.same(cc.list, expectlist) - t.same(cc.snapshot, { blaz: 'json', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - - cc.del('blaz', '/tmp/config-chain-class.json') - t.same(cc.snapshot, { blaz: 'ini', - json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.del('blaz') - t.same(cc.snapshot, { json: true, - 'x.y.z': 'xyz', - env: 'myenv', - http: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { 'x.y.z': 'xyz', - env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { env: 'myenv', - http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - json: true, - ini: true }) - cc.shift() - t.same(cc.snapshot, { http: true, - ini: true, - json: false }) - cc.shift() - t.same(cc.snapshot, {}) - t.end() - }) -}) diff --git a/node_modules/config-chain/test/env.js b/node_modules/config-chain/test/env.js deleted file mode 100644 index fb718f32b7d9d..0000000000000 --- a/node_modules/config-chain/test/env.js +++ /dev/null @@ -1,10 +0,0 @@ -var cc = require('..') -var assert = require('assert') - -assert.deepEqual({ - hello: true -}, cc.env('test_', { - 'test_hello': true, - 'ignore_this': 4, - 'ignore_test_this_too': [] -})) diff --git a/node_modules/config-chain/test/find-file.js b/node_modules/config-chain/test/find-file.js deleted file mode 100644 index 23cde52ea9d8d..0000000000000 --- a/node_modules/config-chain/test/find-file.js +++ /dev/null @@ -1,13 +0,0 @@ - -var fs = require('fs') - , assert = require('assert') - , objx = { - rand: Math.random() - } - -fs.writeFileSync('/tmp/random-test-config.json', JSON.stringify(objx)) - -var cc = require('../') -var path = cc.find('tmp/random-test-config.json') - -assert.equal(path, '/tmp/random-test-config.json') \ No newline at end of file diff --git a/node_modules/config-chain/test/get.js b/node_modules/config-chain/test/get.js deleted file mode 100644 index d6fd79f74bbed..0000000000000 --- a/node_modules/config-chain/test/get.js +++ /dev/null @@ -1,15 +0,0 @@ -var cc = require("../"); - -var chain = cc() - , name = "forFun"; - -chain - .add({ - __sample:"for fun only" - }, name) - .on("load", function() { - //It throw exception here - console.log(chain.get("__sample", name)); - //But if I drop the name param, it run normally and return as expected: "for fun only" - //console.log(chain.get("__sample")); - }); diff --git a/node_modules/config-chain/test/ignore-unfound-file.js b/node_modules/config-chain/test/ignore-unfound-file.js deleted file mode 100644 index d742b82ba758d..0000000000000 --- a/node_modules/config-chain/test/ignore-unfound-file.js +++ /dev/null @@ -1,5 +0,0 @@ - -var cc = require('..') - -//should not throw -cc(__dirname, 'non_existing_file') diff --git a/node_modules/config-chain/test/ini.js b/node_modules/config-chain/test/ini.js deleted file mode 100644 index 5572a6ed6ff02..0000000000000 --- a/node_modules/config-chain/test/ini.js +++ /dev/null @@ -1,18 +0,0 @@ - - -var cc =require('..') -var INI = require('ini') -var assert = require('assert') - -function test(obj) { - - var _json, _ini - var json = cc.parse (_json = JSON.stringify(obj)) - var ini = cc.parse (_ini = INI.stringify(obj)) -console.log(_ini, _json) - assert.deepEqual(json, ini) -} - - -test({hello: true}) - diff --git a/node_modules/config-chain/test/save.js b/node_modules/config-chain/test/save.js deleted file mode 100644 index bc97bbd3f6f1d..0000000000000 --- a/node_modules/config-chain/test/save.js +++ /dev/null @@ -1,59 +0,0 @@ -var CC = require('../index.js').ConfigChain -var test = require('tap').test - -var f1 = '/tmp/f1.ini' -var f2 = '/tmp/f2.json' - -var ini = require('ini') - -var f1data = {foo: {bar: 'baz'}, bloo: 'jaus'} -var f2data = {oof: {rab: 'zab'}, oolb: 'suaj'} - -var fs = require('fs') - -fs.writeFileSync(f1, ini.stringify(f1data), 'utf8') -fs.writeFileSync(f2, JSON.stringify(f2data), 'utf8') - -test('test saving and loading ini files', function (t) { - new CC() - .add({grelb:'blerg'}, 'opt') - .addFile(f1, 'ini', 'inifile') - .addFile(f2, 'json', 'jsonfile') - .on('load', function (cc) { - - t.same(cc.snapshot, { grelb: 'blerg', - bloo: 'jaus', - foo: { bar: 'baz' }, - oof: { rab: 'zab' }, - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'blerg' }, - { bloo: 'jaus', foo: { bar: 'baz' } }, - { oof: { rab: 'zab' }, oolb: 'suaj' } ]) - - cc.set('grelb', 'brelg', 'opt') - .set('foo', 'zoo', 'inifile') - .set('oof', 'ooz', 'jsonfile') - .save('inifile') - .save('jsonfile') - .on('save', function () { - t.equal(fs.readFileSync(f1, 'utf8'), - "bloo=jaus\nfoo=zoo\n") - t.equal(fs.readFileSync(f2, 'utf8'), - "{\"oof\":\"ooz\",\"oolb\":\"suaj\"}") - - t.same(cc.snapshot, { grelb: 'brelg', - bloo: 'jaus', - foo: 'zoo', - oof: 'ooz', - oolb: 'suaj' }) - - t.same(cc.list, [ { grelb: 'brelg' }, - { bloo: 'jaus', foo: 'zoo' }, - { oof: 'ooz', oolb: 'suaj' } ]) - - t.pass('ok') - t.end() - }) - }) -}) diff --git a/package-lock.json b/package-lock.json index 8aed6ad03bed0..05b0f9cb4dcce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -659,9 +659,9 @@ } }, "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" diff --git a/package.json b/package.json index 93d09edd26e80..9e2a8587d91c4 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "cli-table3": "^0.5.0", "cmd-shim": "~2.0.2", "columnify": "~1.5.4", - "config-chain": "~1.1.11", + "config-chain": "^1.1.12", "detect-indent": "~5.0.0", "detect-newline": "^2.1.0", "dezalgo": "~1.0.3", From 70bee4f69bb4ce4e18c48582fe2b48d8b4aba566 Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:55:07 -0700 Subject: [PATCH 10/81] glob@7.1.3 --- node_modules/glob/package.json | 31 ++++++++++++++----------------- package-lock.json | 6 +++--- package.json | 2 +- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json index 480fdff5da7f5..7c64de2751e5f 100644 --- a/node_modules/glob/package.json +++ b/node_modules/glob/package.json @@ -1,27 +1,22 @@ { - "_args": [ - [ - "glob@7.1.2", - "/Users/rebecca/code/npm" - ] - ], - "_from": "glob@7.1.2", - "_id": "glob@7.1.2", + "_from": "glob@7.1.3", + "_id": "glob@7.1.3", "_inBundle": false, - "_integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "_integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "_location": "/glob", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "glob@7.1.2", + "raw": "glob@7.1.3", "name": "glob", "escapedName": "glob", - "rawSpec": "7.1.2", + "rawSpec": "7.1.3", "saveSpec": null, - "fetchSpec": "7.1.2" + "fetchSpec": "7.1.3" }, "_requiredBy": [ + "#USER", "/", "/cacache", "/deglob", @@ -29,7 +24,6 @@ "/globby", "/init-package-json", "/node-gyp", - "/npm-profile/cacache", "/npm-registry-fetch/cacache", "/pacote", "/read-package-json", @@ -37,8 +31,9 @@ "/tap", "/tap-mocha-reporter" ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "_spec": "7.1.2", + "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "_shasum": "3960832d3f1574108342dafd3a67b332c0969df1", + "_spec": "glob@7.1.3", "_where": "/Users/rebecca/code/npm", "author": { "name": "Isaac Z. Schlueter", @@ -48,6 +43,7 @@ "bugs": { "url": "https://github.com/isaacs/node-glob/issues" }, + "bundleDependencies": false, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -56,11 +52,12 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, + "deprecated": false, "description": "a little globber", "devDependencies": { "mkdirp": "0", "rimraf": "^2.2.8", - "tap": "^7.1.2", + "tap": "^12.0.1", "tick": "0.0.6" }, "engines": { @@ -88,5 +85,5 @@ "test": "tap test/*.js --cov", "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" }, - "version": "7.1.2" + "version": "7.1.3" } diff --git a/package-lock.json b/package-lock.json index 05b0f9cb4dcce..d82c921a6e8bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1781,9 +1781,9 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", diff --git a/package.json b/package.json index 9e2a8587d91c4..5f98a1af0188d 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.0.1", - "glob": "~7.1.2", + "glob": "^7.1.3", "graceful-fs": "~4.1.11", "has-unicode": "~2.0.1", "hosted-git-info": "^2.7.1", From e469fd6be95333dcaa7cf377ca3620994ca8d0de Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:55:49 -0700 Subject: [PATCH 11/81] opener@1.5.1 Fix browser opening under Windows Subsystem for Linux (WSL). Credit: @thijsputman --- node_modules/opener/lib/opener.js | 2 +- node_modules/opener/package.json | 22 +++++++++++----------- package-lock.json | 6 +++--- package.json | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/node_modules/opener/lib/opener.js b/node_modules/opener/lib/opener.js index 2e299677d0d6e..5fa88f375ac85 100644 --- a/node_modules/opener/lib/opener.js +++ b/node_modules/opener/lib/opener.js @@ -16,7 +16,7 @@ module.exports = function opener(args, options, callback) { var command; switch (platform) { case "win32": { - command = "cmd"; + command = "cmd.exe"; break; } case "darwin": { diff --git a/node_modules/opener/package.json b/node_modules/opener/package.json index bfd7aa7dabf36..e69aa39637e2a 100644 --- a/node_modules/opener/package.json +++ b/node_modules/opener/package.json @@ -1,29 +1,29 @@ { - "_from": "opener@1.5.0", - "_id": "opener@1.5.0", + "_from": "opener@1.5.1", + "_id": "opener@1.5.1", "_inBundle": false, - "_integrity": "sha512-MD4s/o61y2slS27zm2s4229V2gAUHX0/e3/XOmY/jsXwhysjjCIHN8lx7gqZCrZk19ym+HjCUWHeMKD7YJtKCQ==", + "_integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", "_location": "/opener", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "opener@1.5.0", + "raw": "opener@1.5.1", "name": "opener", "escapedName": "opener", - "rawSpec": "1.5.0", + "rawSpec": "1.5.1", "saveSpec": null, - "fetchSpec": "1.5.0" + "fetchSpec": "1.5.1" }, "_requiredBy": [ "#USER", "/", "/tap" ], - "_resolved": "https://registry.npmjs.org/opener/-/opener-1.5.0.tgz", - "_shasum": "24222fb4ad423ba21f5bf38855cebe44220f6531", - "_spec": "opener@1.5.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "_shasum": "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed", + "_spec": "opener@1.5.1", + "_where": "/Users/rebecca/code/npm", "author": { "name": "Domenic Denicola", "email": "d@domenic.me", @@ -56,5 +56,5 @@ "scripts": { "lint": "eslint ." }, - "version": "1.5.0" + "version": "1.5.1" } diff --git a/package-lock.json b/package-lock.json index d82c921a6e8bc..e67b9f6254e4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5852,9 +5852,9 @@ } }, "opener": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.0.tgz", - "integrity": "sha512-MD4s/o61y2slS27zm2s4229V2gAUHX0/e3/XOmY/jsXwhysjjCIHN8lx7gqZCrZk19ym+HjCUWHeMKD7YJtKCQ==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==" }, "optimist": { "version": "0.3.7", diff --git a/package.json b/package.json index 5f98a1af0188d..a096e04b49770 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", - "opener": "^1.5.0", + "opener": "^1.5.1", "osenv": "^0.1.5", "pacote": "^8.1.6", "path-is-inside": "~1.0.2", From 03840dced865abdca6e6449ea030962e5b19db0c Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Wed, 12 Sep 2018 09:57:36 -0700 Subject: [PATCH 12/81] semver@5.5.1 --- node_modules/semver/README.md | 2 +- node_modules/semver/package.json | 30 ++++++++++++++---------------- package-lock.json | 6 +++--- package.json | 2 +- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md index 951c53956a24b..9f7161e2cef59 100644 --- a/node_modules/semver/README.md +++ b/node_modules/semver/README.md @@ -274,7 +274,7 @@ logical-or ::= ( ' ' ) * '||' ( ' ' ) * range ::= hyphen | simple ( ' ' simple ) * | '' hyphen ::= partial ' - ' partial simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? xr ::= 'x' | 'X' | '*' | nr nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json index 5919ebef9bc79..d7d4cbb12892c 100644 --- a/node_modules/semver/package.json +++ b/node_modules/semver/package.json @@ -1,27 +1,22 @@ { - "_args": [ - [ - "semver@5.5.0", - "/Users/rebecca/code/npm" - ] - ], - "_from": "semver@5.5.0", - "_id": "semver@5.5.0", + "_from": "semver@5.5.1", + "_id": "semver@5.5.1", "_inBundle": false, - "_integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "_integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "_location": "/semver", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "semver@5.5.0", + "raw": "semver@5.5.1", "name": "semver", "escapedName": "semver", - "rawSpec": "5.5.0", + "rawSpec": "5.5.1", "saveSpec": null, - "fetchSpec": "5.5.0" + "fetchSpec": "5.5.1" }, "_requiredBy": [ + "#USER", "/", "/eslint", "/eslint-plugin-node", @@ -37,8 +32,9 @@ "/read-installed", "/semver-diff" ], - "_resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "_spec": "5.5.0", + "_resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "_shasum": "7dfdd8814bdb7cabc7be0fb1d734cfb66c940477", + "_spec": "semver@5.5.1", "_where": "/Users/rebecca/code/npm", "bin": { "semver": "./bin/semver" @@ -46,9 +42,11 @@ "bugs": { "url": "https://github.com/npm/node-semver/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "The semantic version parser used by npm.", "devDependencies": { - "tap": "^10.7.0" + "tap": "^12.0.1" }, "files": [ "bin", @@ -66,5 +64,5 @@ "scripts": { "test": "tap test/*.js --cov -J" }, - "version": "5.5.0" + "version": "5.5.1" } diff --git a/package-lock.json b/package-lock.json index e67b9f6254e4b..437894d245858 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6629,9 +6629,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, "semver-diff": { "version": "2.1.0", diff --git a/package.json b/package.json index a096e04b49770..687911f1bac34 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "retry": "^0.12.0", "rimraf": "~2.6.2", "safe-buffer": "^5.1.2", - "semver": "^5.5.0", + "semver": "^5.5.1", "sha": "~2.0.1", "slide": "~1.1.6", "sorted-object": "~2.0.1", From bcae4ea8173e489a76cc226bbd30dd9eabe21ec6 Mon Sep 17 00:00:00 2001 From: Mehdy Dara Date: Tue, 13 Nov 2018 15:52:01 +0100 Subject: [PATCH 13/81] docs: clarify default branch with git url (#64) With some tests I note npm use default branch of repository instead of `master`. PR-URL: https://github.com/npm/cli/pull/64 Credit: @zckrs Reviewed-By: @zkat --- doc/cli/npm-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/cli/npm-install.md b/doc/cli/npm-install.md index a349e5862c258..336311dbfb2bb 100644 --- a/doc/cli/npm-install.md +++ b/doc/cli/npm-install.md @@ -199,7 +199,7 @@ after packing it up into a tarball (b). be any valid semver range or exact version, and npm will look for any tags or refs matching that range in the remote repository, much as it would for a registry dependency. If neither `#` or `#semver:` is - specified, then `master` is used. + specified, then the default branch of the repository is used. If the repository makes use of submodules, those submodules will be cloned as well. From 27217dae8adbc577ee9cb323b7cfe9c6b2493aca Mon Sep 17 00:00:00 2001 From: Kyle Mitchell Date: Mon, 26 Nov 2018 07:59:49 -0800 Subject: [PATCH 14/81] test: Automatically audit dependency licenses (#70) PR-URL: https://github.com/npm/cli/pull/70 Credit: @kemitchell Reviewed-By: @zkat --- .licensee.json | 9 +++++ .travis.yml | 1 + package-lock.json | 101 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 + 4 files changed, 113 insertions(+) create mode 100644 .licensee.json diff --git a/.licensee.json b/.licensee.json new file mode 100644 index 0000000000000..c14776dd97fe4 --- /dev/null +++ b/.licensee.json @@ -0,0 +1,9 @@ +{ + "license": "(MIT OR BSD-2-Clause OR BSD-3-Clause OR Apache-2.0 OR ISC OR Unlicense OR CC-BY-3.0 OR CC0-1.0 OR Artistic-2.0)", + "whitelist": { + "config-chain": "1.1.11", + "cyclist": "0.2.2", + "json-schema": "0.2.3", + "qrcode-terminal": "0.12.0" + } +} diff --git a/.travis.yml b/.travis.yml index ac208f890799a..3be171f742310 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,3 +33,4 @@ install: - "node . install" script: - "node . run tap -- \"test/tap/*.js\" \"test/broken-under-nyc/*.js\"" + - "node . run licenses" diff --git a/package-lock.json b/package-lock.json index 437894d245858..55d1473373276 100644 --- a/package-lock.json +++ b/package-lock.json @@ -186,6 +186,12 @@ } } }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, "array-includes": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", @@ -966,6 +972,12 @@ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", "dev": true }, + "docopt": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", + "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", + "dev": true + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -1626,6 +1638,15 @@ "readable-stream": "^2.0.0" } }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", @@ -2304,6 +2325,12 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "json-parse-errback": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/json-parse-errback/-/json-parse-errback-2.0.1.tgz", + "integrity": "sha1-x6nCvjqFWzQvgqv8ibyFk1tYhPo=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -2446,6 +2473,23 @@ "yargs": "^11.0.0" } }, + "licensee": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/licensee/-/licensee-5.0.0.tgz", + "integrity": "sha512-g243BLsJYWWyNhwDEMewc2f6Ebyy1yiJmMDgO8MCQtLOXA8JO4O2/kbJ1QwwWdlmrwDgYECdl9CJBrKsr4ZezA==", + "dev": true, + "requires": { + "docopt": "^0.6.2", + "fs-access": "^1.0.0", + "json-parse-errback": "^2.0.1", + "read-package-tree": "^5.2.1", + "run-parallel": "^1.1.9", + "semver": "^5.5.0", + "simple-concat": "^1.0.0", + "spdx-expression-validate": "^1.0.1", + "spdx-satisfies": "^4.0.0" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -3174,6 +3218,12 @@ "set-blocking": "~2.0.0" } }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -6679,6 +6729,12 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -6791,6 +6847,17 @@ "source-map": "^0.6.0" } }, + "spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "requires": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, "spdx-correct": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", @@ -6814,11 +6881,45 @@ "spdx-license-ids": "^3.0.0" } }, + "spdx-expression-validate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-1.0.2.tgz", + "integrity": "sha1-Wk5NdhbtHJuIFQNmtCF/dnwn6eM=", + "dev": true, + "requires": { + "spdx-expression-parse": "^1.0.0" + }, + "dependencies": { + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + } + } + }, "spdx-license-ids": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==" }, + "spdx-ranges": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.0.0.tgz", + "integrity": "sha512-AUUXLfqkwD7GlzZkXv8ePPCpPjeVWI9xJCfysL8re/uKb6H10umMnC7bFRsHmLJan4fslUtekAgpHlSgLc/7mA==", + "dev": true + }, + "spdx-satisfies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz", + "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", + "dev": true, + "requires": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, "sprintf-js": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", diff --git a/package.json b/package.json index 687911f1bac34..5b5e7652d2384 100644 --- a/package.json +++ b/package.json @@ -265,6 +265,7 @@ ], "devDependencies": { "deep-equal": "~1.0.1", + "licensee": "^5.0.0", "marked": "^0.5.0", "marked-man": "~0.2.1", "npm-registry-couchapp": "^2.7.1", @@ -279,6 +280,7 @@ "dumpconf": "env | grep npm | sort | uniq", "prepare": "node bin/npm-cli.js --no-audit --no-timing prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc", "preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true", + "licenses": "licensee --production --errors-only", "tap": "tap --reporter=classic --timeout 300", "tap-cover": "tap --reporter=classic --nyc-arg='--cache' --coverage --timeout 600", "test": "standard && npm run test-tap", From 15da8269032bf509ade3252978e934f2a61d4499 Mon Sep 17 00:00:00 2001 From: Robert Kielty Date: Mon, 26 Nov 2018 16:01:24 +0000 Subject: [PATCH 15/81] docs: bash_completion.d dir found in /etc not /usr/local (#72) I found this page useful for setting up npm command completion. Thank you npm documentation team. This suggested changed is based on my system which runs Ubuntu where the completion directory path for bash is found in /etc/bash_completion.d and not /usr/local/etc/bash_completion.d I dug around docs for this in The Bash Manual https://www.gnu.org/software/bash/manual/bashref.html#Programmable-Completion and on some an old (sadly retired) Debian Admin Site https://debian-administration.org/article/317/An_introduction_to_bash_completion_part_2 which seemed supportive of the dir being in /etc but I do not have access to an OS X machine where I guess bash_completion.d could be in /usr/local/etc so I left it in. PR-URL: https://github.com/npm/cli/pull/72 Credit: @RobertKielty Reviewed-By: @zkat --- doc/cli/npm-completion.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/cli/npm-completion.md b/doc/cli/npm-completion.md index cc826a4d7b6d4..57fa3bbd38ce0 100644 --- a/doc/cli/npm-completion.md +++ b/doc/cli/npm-completion.md @@ -17,9 +17,10 @@ everywhere: npm completion >> ~/.bashrc npm completion >> ~/.zshrc -You may of course also pipe the output of npm completion to a file -such as `/usr/local/etc/bash_completion.d/npm` if you have a system -that will read that file for you. +You may of course also pipe the output of `npm completion` to a file +such as `/usr/local/etc/bash_completion.d/npm` or +`/etc/bash_completion.d/npm` if you have a system that will read +that file for you. When `COMP_CWORD`, `COMP_LINE`, and `COMP_POINT` are defined in the environment, `npm completion` acts in "plumbing mode", and outputs From 8a6ecc7936dae2f51638397ff5a1d35cccda5495 Mon Sep 17 00:00:00 2001 From: Scott Trinh Date: Mon, 26 Nov 2018 11:02:19 -0500 Subject: [PATCH 16/81] docs: Update OTP documentation for dist-tag add (#74) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See discussion here: https://npm.community/t/npm-dist-tag-add-with-2fa-enabled-fails-for-non-latest-tag-with-500/2432 TL;DR: > To be clear, you can specify an existing tag and it’ll change it. If you have 2FA enabled, you do need to specify `--otp` and if you don’t, you should get a `401` as above. Ref: https://npm.community/t/npm-dist-tag-add-with-2fa-enabled-fails-for-non-latest-tag-with-500/2432 PR-URL: https://github.com/npm/cli/pull/74 Credit: @scotttrinh Reviewed-By: @iarna Reviewed-By: @zkat --- doc/cli/npm-dist-tag.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/cli/npm-dist-tag.md b/doc/cli/npm-dist-tag.md index 4572644ce32b0..1a69d1b6ce42b 100644 --- a/doc/cli/npm-dist-tag.md +++ b/doc/cli/npm-dist-tag.md @@ -15,9 +15,9 @@ Add, remove, and enumerate distribution tags on a package: * add: Tags the specified version of the package with the specified tag, or the - `--tag` config if not specified. If the tag you're adding is `latest` and you - have two-factor authentication on auth-and-writes then you'll need to include - an otp on the command line with `--otp`. + `--tag` config if not specified. If you have two-factor authentication on + auth-and-writes then you’ll need to include a one-time password on the + command line with `--otp `. * rm: Clear a tag that is no longer in use from the package. From a34246bafe73218dc9e3090df9ee800451db2c7d Mon Sep 17 00:00:00 2001 From: Lars Willighagen Date: Mon, 26 Nov 2018 17:03:27 +0100 Subject: [PATCH 17/81] edit: scoped packages (#75) * edit: fix handling of scoped packages * edit: fix usage info * docs: fix docs for the npm-edit command PR-URL: https://github.com/npm/cli/pull/75 Credit: @larsgw Reviewed-By: @iarna --- doc/cli/npm-edit.md | 8 +++++--- lib/edit.js | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/doc/cli/npm-edit.md b/doc/cli/npm-edit.md index 89ecfa877eeac..f9913a015ad3b 100644 --- a/doc/cli/npm-edit.md +++ b/doc/cli/npm-edit.md @@ -3,12 +3,14 @@ npm-edit(1) -- Edit an installed package ## SYNOPSIS - npm edit [@] + npm edit [/...] ## DESCRIPTION -Opens the package folder in the default editor (or whatever you've -configured as the npm `editor` config -- see `npm-config(7)`.) +Selects a (sub)dependency in the current +working directory and opens the package folder in the default editor +(or whatever you've configured as the npm `editor` config -- see +`npm-config(7)`.) After it has been edited, the package is rebuilt so as to pick up any changes in compiled packages. diff --git a/lib/edit.js b/lib/edit.js index 48bcd5d346cad..2e8b339e998bd 100644 --- a/lib/edit.js +++ b/lib/edit.js @@ -2,7 +2,7 @@ // open the package folder in the $EDITOR module.exports = edit -edit.usage = 'npm edit [@]' +edit.usage = 'npm edit [/...]' edit.completion = require('./utils/completion/installed-shallow.js') @@ -22,6 +22,20 @@ function edit (args, cb) { )) } p = p.split('/') + // combine scoped parts + .reduce(function (parts, part) { + if (parts.length === 0) { + return [part] + } + var lastPart = parts[parts.length - 1] + // check if previous part is the first part of a scoped package + if (lastPart[0] === '@' && !lastPart.includes('/')) { + parts[parts.length - 1] += '/' + part + } else { + parts.push(part) + } + return parts + }, []) .join('/node_modules/') .replace(/(\/node_modules)+/, '/node_modules') var f = path.resolve(npm.dir, p) From 4acd45a3d0ce92f9999446226fe7dfb89a90ba2e Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 26 Nov 2018 18:04:06 +0200 Subject: [PATCH 18/81] docs: Correct spelling (#78) PR-URL: https://github.com/npm/cli/pull/78 Credit: @hugovk Reviewed-By: @zkat --- CHANGELOG.md | 2 +- changelogs/CHANGELOG-2.md | 10 +++++----- changelogs/CHANGELOG-3.md | 8 ++++---- changelogs/CHANGELOG-4.md | 4 ++-- changelogs/CHANGELOG-5.md | 6 +++--- doc/misc/npm-registry.md | 2 +- lib/install/mutate-into-logical-tree.js | 2 +- test/need-npm5-update/lifecycle-signal.js | 12 ++++++------ test/tap/config-basic.js | 2 +- test/tap/ls-depth-cli.js | 4 ++-- test/tap/ls-depth-unmet.js | 2 +- test/tap/unit-deps-earliestInstallable.js | 2 +- 12 files changed, 28 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36e51f5bb557f..6270a9c812ac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -220,7 +220,7 @@ bumped due to bugs that had been around for a while. ([@zkat](https://github.com/zkat)) * [`21cf0ab68`](https://github.com/npm/cli/commit/21cf0ab68cf528d5244ae664133ef400bdcfbdb6) [npm/cli#24](https://github.com/npm/cli/pull/24) - Use the defaut OTP explanation everywhere except when the context is + Use the default OTP explanation everywhere except when the context is "OTP-aware" (like when setting double-authentication). This improves the overall CLI messaging when prompting for an OTP code. ([@jdeniau](https://github.com/jdeniau)) diff --git a/changelogs/CHANGELOG-2.md b/changelogs/CHANGELOG-2.md index d79982385efd1..c4d2b777ebf12 100644 --- a/changelogs/CHANGELOG-2.md +++ b/changelogs/CHANGELOG-2.md @@ -1,7 +1,7 @@ ### v2.15.12 (2017-03-24): This version brings the latest `node-gyp` to a soon to be released Node.js -4.x. The `node-gyp` update is paticularly important to Windows folks due to +4.x. The `node-gyp` update is particularly important to Windows folks due to its addition of Visual Studio 2017 support. * [`cdd60e733`](https://github.com/npm/npm/commit/cdd60e733905a9994e1d6d832996bfdd12abeaee) @@ -372,7 +372,7 @@ Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015 functionality will land anytime soon. Looking forward, the team's current plan is to drop support for Node.js 0.10 -when its LTS maintenace window expires in October, 2016, and 0.12 when its +when its LTS maintenance window expires in October, 2016, and 0.12 when its maintenance / LTS window ends at the end of 2016. We will also drop support for Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the October-December 2016 timeframe. @@ -1507,7 +1507,7 @@ change makes it do. We _think_ this is what everyone wants, but if this causes problems for you, we want to know! If it proves problematic for people we will consider reverting it -(preferrably before this becomes `npm@latest`). +(preferably before this becomes `npm@latest`). Previously, when you ran `npm install foo` we would act as if you typed `npm install foo@*`. Now, like any range-type specifier, in addition to matching the @@ -2742,7 +2742,7 @@ NodeConf Adventure! ([@iarna](https://github.com/iarna)) * [`e02e85d`](https://github.com/npm/npm/commit/e02e85d) `osenv@0.1.2`: Switches to using the `os-tmpdir` module instead of - `os.tmpdir()` for greate consistency in behavior between node versions. + `os.tmpdir()` for greater consistency in behavior between node versions. ([@iarna](https://github.com/iarna)) * [`a6f0265`](https://github.com/npm/npm/commit/a6f0265) `ini@1.3.4` ([@isaacs](https://github.com/isaacs)) @@ -4588,7 +4588,7 @@ Other changes: ([@gfxmonk](https://github.com/gfxmonk)) * [`989624e`](https://github.com/npm/npm/commit/989624e8321f87734c1b1272fc2f646e7af1f81c) [#6767](https://github.com/npm/npm/issues/6767) Actually pass parameters when - adding git repo to cach under Windows. + adding git repo to cache under Windows. ([@othiym23](https://github.com/othiym23)) * [`657af73`](https://github.com/npm/npm/commit/657af7308f7d6cd2f81389fcf0d762252acaf1ce) [#6774](https://github.com/npm/npm/issues/6774) When verifying paths on diff --git a/changelogs/CHANGELOG-3.md b/changelogs/CHANGELOG-3.md index 5ff4425a0a7a7..e8ef464098d83 100644 --- a/changelogs/CHANGELOG-3.md +++ b/changelogs/CHANGELOG-3.md @@ -2143,7 +2143,7 @@ This release includes an updated `node-gyp` with fixes for Android. ([@watilde](https://github.com/watilde)) * [`47928cd`](https://github.com/npm/npm/commit/47928cd6264e1d6d0ef67435b71c66d01bea664a) [#11003](https://github.com/npm/npm/issues/11003) - Remove "verison" typo from the help listing. + Remove "version" typo from the help listing. ([@doug-wade](https://github.com/doug-wade)) #### MORE COMPLETE CONFIG LISTINGS @@ -3473,7 +3473,7 @@ Hey, you found the feature we added! folder with the same layout as global modules. Only your direct dependencies will show in `node_modules` and everything they depend on will be flattened in their `node_modules` folders. This obviously will - elminate some deduping. + eliminate some deduping. ([@iarna](https://github.com/iarna)) #### TYPOS IN THE LICENSE, OH MY @@ -3492,7 +3492,7 @@ this change makes it do. We _think_ this is what everyone wants, but if this causes problems for you, we want to know! If it proves problematic for people we will consider -reverting it (preferrably before this becomes `npm@latest`). +reverting it (preferably before this becomes `npm@latest`). Previously, when you ran `npm install foo` we would act as if you typed `npm install foo@*`. Now, like any range-type specifier, in addition to @@ -4070,7 +4070,7 @@ in line with `npm@2`. * [`95ee92c`](https://github.com/npm/npm/commit/95ee92c) [#9433](https://github.com/npm/npm/issues/9433) - Give better error messages for invalid URLs in the dependecy + Give better error messages for invalid URLs in the dependency list. ([@jamietre](https://github.com/jamietre)) diff --git a/changelogs/CHANGELOG-4.md b/changelogs/CHANGELOG-4.md index e55bcab3daa33..2c971bb1c4d9d 100644 --- a/changelogs/CHANGELOG-4.md +++ b/changelogs/CHANGELOG-4.md @@ -296,7 +296,7 @@ Also there's maybe a bit of an easter egg in this release. 'Cause those are fun ### v4.4.1 (2017-03-06): This is a quick little patch release to forgo the update notification -checker if you're on an unsuported (but not otherwise broken) version of +checker if you're on an unsupported (but not otherwise broken) version of Node.js. Right now that means 0.10 or 0.12. * [`56ac249`](https://github.com/npm/npm/commit/56ac249ef8ede1021f1bc62a0e4fe1e9ba556af2) @@ -1434,7 +1434,7 @@ install`, and `prepublishOnly` will be removed, leaving `prepare` and * [`9b4a227`](https://github.com/npm/npm/commit/9b4a2278cee0a410a107c8ea4d11614731e0a943) [`bc32078`](https://github.com/npm/npm/commit/bc32078fa798acef0e036414cb448645f135b570) [#14290](https://github.com/npm/npm/pull/14290) - Add `prepare` and `prepublishOnly` lifecyle events. + Add `prepare` and `prepublishOnly` lifecycle events. ([@othiym23](https://github.com/othiym23)) * [`52fdefd`](https://github.com/npm/npm/commit/52fdefddb48f0c39c6e8eb4c118eb306c9436117) [#14290](https://github.com/npm/npm/pull/14290) diff --git a/changelogs/CHANGELOG-5.md b/changelogs/CHANGELOG-5.md index 019845869dc20..ea8331b1b76f3 100644 --- a/changelogs/CHANGELOG-5.md +++ b/changelogs/CHANGELOG-5.md @@ -1285,7 +1285,7 @@ had been held by 1.3.16 since _December of 2013_. If you can't get enough of the bleeding edge, I encourage you to check out our canary release of npm. Get it with `npm install -g npmc`. It's going to be seeing some exciting stuff in the next couple of weeks, starting with a -rewriten `npm dedupe`, but moving on to… well, you'll just have to wait and +rewritten `npm dedupe`, but moving on to… well, you'll just have to wait and find out. ### PERFORMANCE @@ -1911,7 +1911,7 @@ right? Here's what's bumping that number for us this time: ([@KennethKinLum](https://github.com/KennethKinLum)) * [`c9b534a14`](https://github.com/npm/npm/commit/c9b534a148818d1a97787c0dfdba5f64ce3618a6) [#17074](https://github.com/npm/npm/pull/17074) - Clarify config documention with multiple boolean flags. + Clarify config documentation with multiple boolean flags. ([@KennethKinLum](https://github.com/KennethKinLum)) * [`e111b0a40`](https://github.com/npm/npm/commit/e111b0a40c4bc6691d7b8d67ddce5419e67bfd27) [#16768](https://github.com/npm/npm/pull/16768) @@ -2117,7 +2117,7 @@ added 234 packages in .005ms Fix a crash while installing with `--no-shrinkwrap`. ([@jacknagel](https://github.com/jacknagel)) -### DOC UPATES +### DOC UPDATES * [`89e0cb816`](https://github.com/npm/npm/commit/89e0cb8165dd9c3c7ac74d531617f367099608f4) [#16818](https://github.com/npm/npm/pull/16818) diff --git a/doc/misc/npm-registry.md b/doc/misc/npm-registry.md index ffbf0214bbf81..03966007cad63 100644 --- a/doc/misc/npm-registry.md +++ b/doc/misc/npm-registry.md @@ -41,7 +41,7 @@ about your environment: information to allow you to customize your experience for your organization. * `Npm-In-CI` – Set to "true" if npm believes this install is running in a - continous integration environment, "false" otherwise. This is detected by + continuous integration environment, "false" otherwise. This is detected by looking for the following environment variables: `CI`, `TDDIUM`, `JENKINS_URL`, `bamboo.buildKey`. If you'd like to learn more you may find the [original PR](https://github.com/npm/npm-registry-client/pull/129) diff --git a/lib/install/mutate-into-logical-tree.js b/lib/install/mutate-into-logical-tree.js index 0979afc781438..885149450f1f1 100644 --- a/lib/install/mutate-into-logical-tree.js +++ b/lib/install/mutate-into-logical-tree.js @@ -11,7 +11,7 @@ var npm = require('../npm.js') // Return true if tree is a part of a cycle that: // A) Never connects to the top of the tree -// B) Has not not had a point in the cycle arbitraryly declared its top +// B) Has not not had a point in the cycle arbitrarily declared its top // yet. function isDisconnectedCycle (tree, seen) { if (!seen) seen = {} diff --git a/test/need-npm5-update/lifecycle-signal.js b/test/need-npm5-update/lifecycle-signal.js index a003fb54ab49f..5f9f4c43cfeb0 100644 --- a/test/need-npm5-update/lifecycle-signal.js +++ b/test/need-npm5-update/lifecycle-signal.js @@ -88,13 +88,13 @@ test('lifecycle wait for async child process exit', { skip: process.platform !== 'darwin' && 'broken' }, function (t) { var innerChildPid - var interupted + var interrupted var child = spawn(npm, ['run', 'async'], { cwd: pkg }) child.stderr.on('data', function (data) { - if (!interupted) { - interupted = true + if (!interrupted) { + interrupted = true child.kill('SIGINT') } else { innerChildPid = parseInt(data.toString(), 10) @@ -110,13 +110,13 @@ test('lifecycle force kill using multiple SIGINT signals', { skip: process.platform !== 'darwin' && 'broken' }, function (t) { var innerChildPid - var interupted + var interrupted var child = spawn(npm, ['run', 'zombie'], { cwd: pkg }) child.stderr.on('data', function (data) { - if (!interupted) { - interupted = true + if (!interrupted) { + interrupted = true child.kill('SIGINT') } else { innerChildPid = parseInt(data.toString(), 10) diff --git a/test/tap/config-basic.js b/test/tap/config-basic.js index 139b8e92f8a5b..0483695cf5f25 100644 --- a/test/tap/config-basic.js +++ b/test/tap/config-basic.js @@ -74,7 +74,7 @@ test('no builtin', function (t) { npmconf.load(cli, function (er, conf) { if (er) throw er expectNames.forEach(function (name, ii) { - isDeeplyDetails(t, conf.list[ii], expectList[ii], 'config properities list: ' + name) + isDeeplyDetails(t, conf.list[ii], expectList[ii], 'config properties list: ' + name) }) isDeeplyDetails(t, conf.sources, expectSources, 'config by source') t.same(npmconf.rootConf.list, [], 'root configuration is empty') diff --git a/test/tap/ls-depth-cli.js b/test/tap/ls-depth-cli.js index 2b1bfa42a8cb3..7fd4a467d612f 100644 --- a/test/tap/ls-depth-cli.js +++ b/test/tap/ls-depth-cli.js @@ -82,7 +82,7 @@ test('npm ls --depth=1', function (t) { test('npm ls --depth=Infinity', function (t) { // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here + // on the default value in all environments, so explicitly set it here common.npm( ['ls', '--depth=Infinity'], EXEC_OPTS, @@ -128,7 +128,7 @@ test('npm ls --depth=0 --json', function (t) { test('npm ls --depth=Infinity --json', function (t) { // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here + // on the default value in all environments, so explicitly set it here common.npm( ['ls', '--depth=Infinity', '--json'], EXEC_OPTS, diff --git a/test/tap/ls-depth-unmet.js b/test/tap/ls-depth-unmet.js index 0386ab249dece..4fd6740d6a58c 100644 --- a/test/tap/ls-depth-unmet.js +++ b/test/tap/ls-depth-unmet.js @@ -124,7 +124,7 @@ test('npm ls --depth=1', function (t) { test('npm ls --depth=Infinity', function (t) { // travis has a preconfigured depth=0, in general we can not depend - // on the default value in all environments, so explictly set it here + // on the default value in all environments, so explicitly set it here common.npm( ['ls', '--depth=Infinity'], EXEC_OPTS, diff --git a/test/tap/unit-deps-earliestInstallable.js b/test/tap/unit-deps-earliestInstallable.js index 8c5ca06ad8bba..47d1ab4119b1e 100644 --- a/test/tap/unit-deps-earliestInstallable.js +++ b/test/tap/unit-deps-earliestInstallable.js @@ -39,7 +39,7 @@ test('earliestInstallable should consider devDependencies', function (t) { realpath: '/dep2' } - // an incompatible verson of dep2. required by dep1 + // an incompatible version of dep2. required by dep1 var dep2a = { package: { name: 'dep2', From d3e8a7c7240dd25379a5bcad324a367c58733c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20L=C3=B3pez?= Date: Mon, 26 Nov 2018 17:04:58 +0100 Subject: [PATCH 19/81] ci: change `console.error` for `console.log` (#79) Fixes: https://npm.community/t/npm-ci-logs-success-to-stderr/2303 PR-URL: https://github.com/npm/cli/pull/79 Credit: @alopezsanchez Reviewed-By: @zkat --- lib/ci.js | 2 +- test/tap/ci.js | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/ci.js b/lib/ci.js index e71d89cfddb2f..03822b9528d1d 100644 --- a/lib/ci.js +++ b/lib/ci.js @@ -31,7 +31,7 @@ function ci (args, cb) { .then( (details) => { npmlog.disableProgress() - console.error(`added ${details.pkgCount} packages in ${ + console.log(`added ${details.pkgCount} packages in ${ details.runTime / 1000 }s`) } diff --git a/test/tap/ci.js b/test/tap/ci.js index a523f87623aa3..9d69e3e5eb524 100644 --- a/test/tap/ci.js +++ b/test/tap/ci.js @@ -83,9 +83,9 @@ test('basic installation', (t) => { const stdout = ret[1] const stderr = ret[2] t.equal(code, 0, 'command completed without error') - t.equal(stdout.trim(), '', 'no output on stdout') + t.equal(stderr.trim(), '', 'no output on stderr') t.match( - stderr.trim(), + stdout.trim(), /^added 6 packages in \d+(?:\.\d+)?s$/, 'no warnings on stderr, and final output has right number of packages' ) @@ -150,9 +150,9 @@ test('supports npm-shrinkwrap.json as well', (t) => { const stdout = ret[1] const stderr = ret[2] t.equal(code, 0, 'command completed without error') - t.equal(stdout.trim(), '', 'no output on stdout') + t.equal(stderr.trim(), '', 'no output on stderr') t.match( - stderr.trim(), + stdout.trim(), /^added 6 packages in \d+(?:\.\d+)?s$/, 'no warnings on stderr, and final output has right number of packages' ) @@ -197,10 +197,8 @@ test('removes existing node_modules/ before installing', (t) => { ], EXEC_OPTS)) .then((ret) => { const code = ret[0] - const stdout = ret[1] const stderr = ret[2] t.equal(code, 0, 'command completed without error') - t.equal(stdout.trim(), '', 'no output on stdout') t.match( stderr.trim(), /^npm.*WARN.*removing existing node_modules/, From 71d8fb4a94d65e1855f6d0c5f2ad2b7c3202e3c4 Mon Sep 17 00:00:00 2001 From: Jacob Date: Mon, 26 Nov 2018 11:05:56 -0500 Subject: [PATCH 20/81] publish: Close the file descriptor if exiting upload via an error. (#80) This fixes https://npm.community/t/unhelpful-error-message-when-publishing-without-logging-in-error-eperm-operation-not-permitted-unlink/1377/3 and the other dozen or so issues that that link references, and possibly many more involving poor error messages from errors thrown by the upload function. @zkat you mentioned you could take a look at any fixes / answer any questions, if you could look this over and let me know if this is a good / valid approach that would be fantastic, thanks! (it wasn't a race condition, luckily :P). it may also be helpful to add something like ``` if (!auth.token || !(auth.username && auth.password)) { log.warn('publish', 'not logged in') } ``` just before we even open the first file descriptor to make sure that even if the error message is completely wrong something in the log will give users a clue what may be going on. I took the method of looking for login creds from the logout method, I'm not sure that's valid or if alternatives to npm exist that don't require credentials but users could still publish to. Triage of the issue: 1. The upload function throws an error 2. As that error bubbles through [cacache](https://www.npmjs.com/package/cacache#with-tmp) it tries to delete the tmpdir as it should 3. It can't delete the temp dir as the upload function's readFileStream to the tar it was trying to upload is still open. 4. [cacache](https://www.npmjs.com/package/cacache#with-tmp) throws an error about it's inability to remove the dir, which suppresses the upload function's error. Fixes: https://npm.community/t/unhelpful-error-message-when-publishing-without-logging-in-error-eperm-operation-not-permitted-unlink/1377/3 PR-URL: https://github.com/npm/cli/pull/80 Credit: @macdja38 Reviewed-By: @zkat --- lib/publish.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/publish.js b/lib/publish.js index 1ae87d7900fa1..25f2134b1b16d 100644 --- a/lib/publish.js +++ b/lib/publish.js @@ -167,6 +167,12 @@ function upload (arg, pkg, isRetry, cached) { auth: auth } + function closeFile () { + if (!npm.config.get('dry-run')) { + params.body.close() + } + } + // registry-frontdoor cares about the access level, which is only // configurable for scoped packages if (config.get('access')) { @@ -195,6 +201,8 @@ function upload (arg, pkg, isRetry, cached) { return BB.fromNode((cb) => { npm.commands.unpublish([pkg._id], cb) }).finally(() => { + // close the file we are trying to upload, we will open it again. + closeFile() // ignore errors. Use the force. Reach out with your feelings. return upload(arg, pkg, true, cached).catch(() => { // but if it fails again, then report the first error. @@ -202,6 +210,8 @@ function upload (arg, pkg, isRetry, cached) { }) }) } else { + // close the file we are trying to upload, all attempts to resume will open it again + closeFile() throw err } }) From 4be51a9cc65635bb26fa4ce62233f26e0104bc20 Mon Sep 17 00:00:00 2001 From: Joe Bottigliero Date: Mon, 26 Nov 2018 10:13:52 -0600 Subject: [PATCH 21/81] cli,outdated: Adds 'Homepage' to outdated --long output. (#81) * feat(cli, outdated): Adds 'Homepage' to outdated --long output. - `package.json`'s `homepage` property is displayed when using the `--long` option for `npm outdated` * test: npm outdated --long - Adds `homepage` to `--parseable` output. - Updates `npm outdated --long` test to include `homepage` in expected output. - Adds `homepage` to `npm-outdated` documentation. * fix: javascript standard style updates PR-URL: https://github.com/npm/cli/pull/81 Credit: @jbottigliero Reviewed-By: @zkat --- doc/cli/npm-outdated.md | 1 + lib/outdated.js | 15 +++++++++++---- test/tap/outdated-long.js | 4 ++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/doc/cli/npm-outdated.md b/doc/cli/npm-outdated.md index ad0d003ceef4e..045586a40a728 100644 --- a/doc/cli/npm-outdated.md +++ b/doc/cli/npm-outdated.md @@ -27,6 +27,7 @@ In the output: * `package type` (when using `--long` / `-l`) tells you whether this package is a `dependency` or a `devDependency`. Packages not included in `package.json` are always marked `dependencies`. +* `homepage` (when using `--long` / `-l`) is the `homepage` value contained in the package's `package.json` * Red means there's a newer version matching your semver requirements, so you should update now. * Yellow indicates that there's a newer version above your semver requirements (usually new major, or new 0.x minor) so proceed with caution. diff --git a/lib/outdated.js b/lib/outdated.js index 8b0a43d6ba336..024e076c4f9ad 100644 --- a/lib/outdated.js +++ b/lib/outdated.js @@ -94,7 +94,7 @@ function outdated (args, silent, cb) { 'Latest', 'Location' ] - if (long) outHead.push('Package Type') + if (long) outHead.push('Package Type', 'Homepage') var outTable = [outHead].concat(outList) if (npm.color) { @@ -123,6 +123,7 @@ function makePretty (p) { var latest = p[4] var type = p[6] var deppath = p[7] + var homepage = p[0].package.homepage var columns = [ depname, has || 'MISSING', @@ -130,7 +131,10 @@ function makePretty (p) { latest, deppath ] - if (long) columns[5] = type + if (long) { + columns[5] = type + columns[6] = homepage + } if (npm.color) { columns[0] = color[has === want || want === 'linked' ? 'yellow' : 'red'](columns[0]) // dep @@ -157,7 +161,7 @@ function makeParseable (list) { (has ? (depname + '@' + has) : 'MISSING'), depname + '@' + latest ] - if (long) out.push(type) + if (long) out.push(type, dep.package.homepage) return out.join(':') }).join(os.EOL) @@ -181,7 +185,10 @@ function makeJSON (list) { latest: latest, location: dir } - if (long) out[depname].type = type + if (long) { + out[depname].type = type + out[depname].homepage = dep.package.homepage + } }) return JSON.stringify(out, null, 2) } diff --git a/test/tap/outdated-long.js b/test/tap/outdated-long.js index 6ea5e6e2c420c..976d416a13bb5 100644 --- a/test/tap/outdated-long.js +++ b/test/tap/outdated-long.js @@ -74,6 +74,10 @@ test('it should not throw', function (t) { npm.install('.', function (err) { t.ifError(err, 'install success') npm.config.set('long', true) + // since it's possible for the homepage of a package to change, after the + // install we read the value from the package.json directly to specify our + // expected output. + expOut[1] = expOut[1] + ':' + JSON.parse(fs.readFileSync(path.resolve(pkg, 'node_modules', 'underscore', 'package.json'))).homepage npm.outdated(function (er, d) { t.ifError(err, 'npm outdated ran without error') t.is(process.exitCode, 1, 'exit code set to 1') From dcc03ec858bddd7aa2173b5a86b55c1c2385a2a3 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Mon, 26 Nov 2018 18:14:36 +0200 Subject: [PATCH 22/81] docs: Note that "prepare" runs when installing git dependencies (#82) PR-URL: https://github.com/npm/cli/pull/82 Credit: @seishun Reviewed-By: @zkat --- doc/misc/npm-scripts.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/misc/npm-scripts.md b/doc/misc/npm-scripts.md index e4b90096ae962..80d19fc951598 100644 --- a/doc/misc/npm-scripts.md +++ b/doc/misc/npm-scripts.md @@ -10,9 +10,9 @@ following scripts: Run BEFORE the package is packed and published, as well as on local `npm install` without any arguments. (See below) * prepare: - Run both BEFORE the package is packed and published, and on local `npm - install` without any arguments (See below). This is run - AFTER `prepublish`, but BEFORE `prepublishOnly`. + Run both BEFORE the package is packed and published, on local `npm + install` without any arguments, and when installing git dependencies (See + below). This is run AFTER `prepublish`, but BEFORE `prepublishOnly`. * prepublishOnly: Run BEFORE the package is prepared and packed, ONLY on `npm publish`. (See below.) From a91a470b71e08ccf6a75d4fb8c9937789fa8d067 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Mon, 26 Nov 2018 08:15:21 -0800 Subject: [PATCH 23/81] docs: Specify that --dry-run isn't available in older versions of npm publish (#83) Not sure when `--dry-run` was introduced, I assume it was introduced in npm 6 (correct me if I'm wrong). Anyway, hopefully this will prevent future developers from making the mistake of using it in npm 5 (like I did). PR-URL: https://github.com/npm/cli/pull/83 Credit: @kjin Reviewed-By: @zkat --- doc/cli/npm-publish.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/cli/npm-publish.md b/doc/cli/npm-publish.md index a317ff45e1487..c582ad8470c2a 100644 --- a/doc/cli/npm-publish.md +++ b/doc/cli/npm-publish.md @@ -47,8 +47,8 @@ specifying a different default registry or using a `npm-scope(7)` in the name don't include this and you're running from a TTY then you'll be prompted. * `[--dry-run]` - Does everything publish would do except actually publishing to the registry. - Reports the details of what would have been published. + As of `npm@6`, does everything publish would do except actually publishing + to the registry. Reports the details of what would have been published. Fails if the package name and version combination already exists in the specified registry. From 1b2fabccede37242233755961434c52536224de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=B1=E5=BA=8F?= Date: Tue, 27 Nov 2018 00:23:44 +0800 Subject: [PATCH 24/81] docs: fix tag in inline code (#96) PR-URL: https://github.com/npm/cli/pull/96 Credit: @midare Reviewed-By: @zkat --- doc/misc/npm-scripts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/misc/npm-scripts.md b/doc/misc/npm-scripts.md index 80d19fc951598..22ded49001632 100644 --- a/doc/misc/npm-scripts.md +++ b/doc/misc/npm-scripts.md @@ -52,8 +52,8 @@ following scripts: Additionally, arbitrary scripts can be executed by running `npm run-script `. *Pre* and *post* commands with matching names will be run for those as well (e.g. `premyscript`, `myscript`, -`postmyscript`). Scripts from dependencies can be run with `npm explore - -- npm run `. +`postmyscript`). Scripts from dependencies can be run with +`npm explore -- npm run `. ## PREPUBLISH AND PREPARE From 6cc70cc1977e58a3e1ea48e660ffc6b46b390e59 Mon Sep 17 00:00:00 2001 From: Nikki Everett Date: Mon, 26 Nov 2018 08:24:48 -0800 Subject: [PATCH 25/81] docs: Add semver link and note on empty string format to `deprecate` doc (#68) PR-URL: https://github.com/npm/cli/pull/68 Credit: @neverett Reviewed-By: @zkat --- doc/cli/npm-deprecate.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/cli/npm-deprecate.md b/doc/cli/npm-deprecate.md index 1be6f491be205..3660f49ab654f 100644 --- a/doc/cli/npm-deprecate.md +++ b/doc/cli/npm-deprecate.md @@ -10,15 +10,17 @@ npm-deprecate(1) -- Deprecate a version of a package This command will update the npm registry entry for a package, providing a deprecation warning to all who attempt to install it. -It works on version ranges as well as specific versions, so you can do -something like this: +It works on [version ranges](https://semver.npmjs.com/) as well as specific +versions, so you can do something like this: npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3" Note that you must be the package owner to deprecate something. See the `owner` and `adduser` help topics. -To un-deprecate a package, specify an empty string (`""`) for the `message` argument. +To un-deprecate a package, specify an empty string (`""`) for the `message` +argument. Note that you must use double quotes with no space between them to +format an empty string. ## SEE ALSO From 161dc0b4177e76306a0e3b8660b3b496cc3db83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 08:31:20 -0800 Subject: [PATCH 26/81] bluebird@3.5.3 Credit: @petkaantonov --- .../bluebird/js/browser/bluebird.core.js | 4 +-- .../bluebird/js/browser/bluebird.core.min.js | 4 +-- node_modules/bluebird/js/browser/bluebird.js | 4 +-- .../bluebird/js/browser/bluebird.min.js | 4 +-- node_modules/bluebird/js/release/promise.js | 2 +- node_modules/bluebird/package.json | 25 ++++++++++--------- package-lock.json | 6 ++--- package.json | 2 +- 8 files changed, 26 insertions(+), 25 deletions(-) diff --git a/node_modules/bluebird/js/browser/bluebird.core.js b/node_modules/bluebird/js/browser/bluebird.core.js index 4b238b6770ed7..626406f5d5b25 100644 --- a/node_modules/bluebird/js/browser/bluebird.core.js +++ b/node_modules/bluebird/js/browser/bluebird.core.js @@ -23,7 +23,7 @@ * */ /** - * bluebird build version 3.5.2 + * bluebird build version 3.5.3 * Features enabled: core * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ @@ -2871,7 +2871,7 @@ _dereq_("./synchronous_inspection")(Promise); _dereq_("./join")( Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); Promise.Promise = Promise; -Promise.version = "3.5.2"; +Promise.version = "3.5.3"; util.toFastProperties(Promise); util.toFastProperties(Promise.prototype); diff --git a/node_modules/bluebird/js/browser/bluebird.core.min.js b/node_modules/bluebird/js/browser/bluebird.core.min.js index 4cfc7612f25e0..25fe9175713c0 100644 --- a/node_modules/bluebird/js/browser/bluebird.core.min.js +++ b/node_modules/bluebird/js/browser/bluebird.core.min.js @@ -23,9 +23,9 @@ * */ /** - * bluebird build version 3.5.2 + * bluebird build version 3.5.3 * Features enabled: core * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),f=t("./queue"),h=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){h.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},h.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?a.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=a),r.prototype._drainQueues=function(){s(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,s(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new O(this._peekContext())}function _(t,e){if(V(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=k(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(){this._trace=void 0}function v(t,e,n,r,i){if(void 0===t&&null!==e&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=w(s),l=c.length-1;l>=0;--l){var u=c[l];if(!q.test(u)){var p=u.match(G);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function y(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),g(n)}function g(t,n,r){if(st.warnings){var i,o=new I(t);if(n)r._attachExtraTrace(o);else if(st.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=k(o);o.stack=a.message+"\n"+a.stack.join("\n")}nt("warning",o)||j(o,"",!0)}}function m(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function k(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?E(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function j(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+W(i,t)}else r=e+String(t);"function"==typeof L?L(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function F(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){U.throwLater(o)}"unhandledRejection"===t?nt(t,n,r)||i||j(n,"Unhandled rejection "):nt(t,r)}function T(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+P(e)+">, no stack trace)"}function P(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(it=function(t){if(Q.test(t))return!0;var e=S(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function O(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);at(this,O),e>32&&this.uncycle()}var A,N,L,B=e._getDomain,U=e._async,I=t("./errors").Warning,H=t("./util"),D=t("./es5"),V=H.canAttachTrace,Q=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,q=/\((?:timers\.js):\d+:\d+\)/,G=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,M=null,W=null,$=!1,z=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),X=!(0==H.env("BLUEBIRD_WARNINGS")||!z&&!H.env("BLUEBIRD_WARNINGS")),K=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!z&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(X||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){F("rejectionHandled",A,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),F("unhandledRejection",N,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return g(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=B();N="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=B();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var Y=function(){};e.longStackTraces=function(){if(U.haveItemsQueued()&&!st.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!st.longStackTraces&&R()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;st.longStackTraces=!0,Y=function(){if(U.haveItemsQueued()&&!st.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),U.enableTrampoline(),st.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,e.prototype._dereferenceTrace=d,n.activateLongStackTraces(),U.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return st.longStackTraces&&R()};var Z=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n={detail:e,cancelable:!0};D.defineProperty(n,"promise",{value:e.promise}),D.defineProperty(n,"reason",{value:e.reason});var r=new CustomEvent(t.toLowerCase(),n);return!H.global.dispatchEvent(r)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,D.defineProperty(n,"promise",{value:e.promise}),D.defineProperty(n,"reason",{value:e.reason}),!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),tt=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),et={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},nt=function(t){var e=!1;try{e=tt.apply(null,arguments)}catch(n){U.throwLater(n),e=!0}var r=!1;try{r=Z(t,et[t].apply(null,arguments))}catch(n){U.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;st.warnings=!!n,J=st.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!st.cancellation){if(U.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,rt=u,st.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!st.monitoring?(st.monitoring=!0,e.prototype._fireEvent=nt):!t.monitoring&&st.monitoring&&(st.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var rt=p,it=function(){return!1},ot=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(O,Error),n.CapturedTrace=O,O.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},O.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=k(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;C(r),b(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var at=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():T(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,M=t,W=e;var n=Error.captureStackTrace;return it=function(t){return Q.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return M=/@/,W=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(W=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?T(e):e.toString()},null):(M=t,W=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(L=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?L=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(L=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var st={warnings:X,longStackTraces:!1,cancellation:!1,monitoring:!1};return K&&e.longStackTraces(),{longStackTraces:function(){return st.longStackTraces},warnings:function(){return st.warnings},cancellation:function(){return st.cancellation},monitoring:function(){return st.monitoring},propagateFromFunction:function(){return rt},boundValueFunction:function(){return f},checkForgottenReturns:v,setBounds:x,warn:g,deprecated:y,CapturedTrace:O,fireDomEvent:Z,fireGlobalEvent:tt}}},{"./errors":9,"./es5":10,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){ -var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.2",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file +var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.3",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.js b/node_modules/bluebird/js/browser/bluebird.js index 559d05baa25cf..66c6c1c4fc700 100644 --- a/node_modules/bluebird/js/browser/bluebird.js +++ b/node_modules/bluebird/js/browser/bluebird.js @@ -23,7 +23,7 @@ * */ /** - * bluebird build version 3.5.2 + * bluebird build version 3.5.3 * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),h=t("./queue"),f=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){f.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},f.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?s.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s),r.prototype._drainQueues=function(){a(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,a(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+N.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?N.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new O(this._peekContext())}function _(t,e){if(U(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);N.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),N.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(){this._trace=void 0}function v(t,e,n,r,i){if(void 0===t&&null!==e&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=C(a),l=c.length-1;l>=0;--l){var u=c[l];if(!q.test(u)){var p=u.match($);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function y(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),m(n)}function m(t,n,r){if(at.warnings){var i,o=new H(t);if(n)r._attachExtraTrace(o);else if(at.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=E(o);o.stack=s.message+"\n"+s.stack.join("\n")}nt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?j(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(N.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof V?V(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function F(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){L.throwLater(o)}"unhandledRejection"===t?nt(t,n,r)||i||k(n,"Unhandled rejection "):nt(t,r)}function T(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():N.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(it=function(t){if(M.test(t))return!0;var e=R(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function O(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);st(this,O),e>32&&this.uncycle()}var A,D,V,I=e._getDomain,L=e._async,H=t("./errors").Warning,N=t("./util"),B=t("./es5"),U=N.canAttachTrace,M=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,q=/\((?:timers\.js):\d+:\d+\)/,$=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,Q=null,G=null,z=!1,X=!(0==N.env("BLUEBIRD_DEBUG")||!N.env("BLUEBIRD_DEBUG")&&"development"!==N.env("NODE_ENV")),W=!(0==N.env("BLUEBIRD_WARNINGS")||!X&&!N.env("BLUEBIRD_WARNINGS")),K=!(0==N.env("BLUEBIRD_LONG_STACK_TRACES")||!X&&!N.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=N.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(W||!!N.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){F("rejectionHandled",A,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),F("unhandledRejection",D,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return m(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=I();D="function"==typeof t?null===e?t:N.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=I();A="function"==typeof t?null===e?t:N.domainBind(e,t):void 0};var Y=function(){};e.longStackTraces=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!at.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;at.longStackTraces=!0,Y=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),L.enableTrampoline(),at.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,e.prototype._dereferenceTrace=d,n.activateLongStackTraces(),L.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return at.longStackTraces&&P()};var Z=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return N.global.dispatchEvent(t),function(t,e){var n={detail:e,cancelable:!0};B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason});var r=new CustomEvent(t.toLowerCase(),n);return!N.global.dispatchEvent(r)}}if("function"==typeof Event){var t=new Event("CustomEvent");return N.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason}),!N.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),N.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!N.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),tt=function(){return N.isNode?function(){return process.emit.apply(process,arguments)}:N.global?function(t){var e="on"+t.toLowerCase(),n=N.global[e];return n?(n.apply(N.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),et={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},nt=function(t){var e=!1;try{e=tt.apply(null,arguments)}catch(n){L.throwLater(n),e=!0}var r=!1;try{r=Z(t,et[t].apply(null,arguments))}catch(n){L.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;at.warnings=!!n,J=at.warnings,N.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!at.cancellation){if(L.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,rt=u,at.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!at.monitoring?(at.monitoring=!0,e.prototype._fireEvent=nt):!t.monitoring&&at.monitoring&&(at.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var rt=p,it=function(){return!1},ot=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;N.inherits(O,Error),n.CapturedTrace=O,O.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},O.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;w(r),b(r),N.notEnumerableProp(t,"stack",g(n,r)),N.notEnumerableProp(t,"__stackCleaned__",!0)}};var st=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():T(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,Q=t,G=e;var n=Error.captureStackTrace;return it=function(t){return M.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return Q=/@/,G=e,z=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?T(e):e.toString()},null):(Q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(V=function(t){console.warn(t)},N.isNode&&process.stderr.isTTY?V=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:N.isNode||"string"!=typeof(new Error).stack||(V=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var at={warnings:W,longStackTraces:!1,cancellation:!1,monitoring:!1};return K&&e.longStackTraces(),{longStackTraces:function(){return at.longStackTraces},warnings:function(){return at.warnings},cancellation:function(){return at.cancellation},monitoring:function(){return at.monitoring},propagateFromFunction:function(){return rt},boundValueFunction:function(){return h},checkForgottenReturns:v,setBounds:S,warn:m,deprecated:y,CapturedTrace:O,fireDomEvent:Z,fireGlobalEvent:tt}}},{"./errors":12,"./es5":13,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(T.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&T.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(T.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof x&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){T.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,T),t("./bind")(i,b,j,T),t("./cancel")(i,E,p,T),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.2",t("./map.js")(i,E,p,j,b,T),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,T),t("./timers.js")(i,b,T),t("./generators.js")(i,p,b,j,n,T),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,T),t("./settle.js")(i,E,T),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),T.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216, +o=o._target();var s=o._bitField;0===(50397184&s)?(this._yieldedPromise=o,o._proxy(this,null)):0!==(33554432&s)?e._async.invoke(this._promiseFulfilled,this,o._value()):0!==(16777216&s)?e._async.invoke(this._promiseRejected,this,o._reason()):this._promiseCancelled()},e.coroutine=function(t,e){if("function"!=typeof t)throw new u("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n");var n=Object(e).yieldHandler,r=c,i=(new Error).stack;return function(){var e=t.apply(this,arguments),o=new r(void 0,void 0,n,i),s=o.promise();return o._generator=e,o._promiseFulfilled(void 0),s}},e.coroutine.addYieldHandler=function(t){if("function"!=typeof t)throw new u("expecting a function but got "+p.classString(t));_.push(t)},e.spawn=function(t){if(s.deprecated("Promise.spawn()","Promise.coroutine()"),"function"!=typeof t)return n("generatorFunction must be a function\n\n See http://goo.gl/MqrFmX\n");var r=new c(t,this),i=r.promise();return r._run(e.spawn),i}}},{"./errors":12,"./util":36}],17:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){var a=t("./util");a.canEvaluate,a.tryCatch,a.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(T.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&T.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(T.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof x&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){T.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,T),t("./bind")(i,b,j,T),t("./cancel")(i,E,p,T),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.3",t("./map.js")(i,E,p,j,b,T),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,T),t("./timers.js")(i,b,T),t("./generators.js")(i,p,b,j,n,T),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,T),t("./settle.js")(i,E,T),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),T.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216, n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return x.e=e,x}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/release/promise.js b/node_modules/bluebird/js/release/promise.js index eeac47e4769a1..f28d2f01f3023 100644 --- a/node_modules/bluebird/js/release/promise.js +++ b/node_modules/bluebird/js/release/promise.js @@ -734,7 +734,7 @@ require("./synchronous_inspection")(Promise); require("./join")( Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); Promise.Promise = Promise; -Promise.version = "3.5.2"; +Promise.version = "3.5.3"; require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); require('./call_get.js')(Promise); require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); diff --git a/node_modules/bluebird/package.json b/node_modules/bluebird/package.json index c6b046daa5341..305d330978aad 100644 --- a/node_modules/bluebird/package.json +++ b/node_modules/bluebird/package.json @@ -1,19 +1,19 @@ { - "_from": "bluebird@3.5.2", - "_id": "bluebird@3.5.2", + "_from": "bluebird@3.5.3", + "_id": "bluebird@3.5.3", "_inBundle": false, - "_integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", + "_integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", "_location": "/bluebird", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "bluebird@3.5.2", + "raw": "bluebird@3.5.3", "name": "bluebird", "escapedName": "bluebird", - "rawSpec": "3.5.2", + "rawSpec": "3.5.3", "saveSpec": null, - "fetchSpec": "3.5.2" + "fetchSpec": "3.5.3" }, "_requiredBy": [ "#USER", @@ -27,10 +27,10 @@ "/pacote", "/tap" ], - "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "_shasum": "1be0908e054a751754549c270489c1505d4ab15a", - "_spec": "bluebird@3.5.2", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "_shasum": "7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7", + "_spec": "bluebird@3.5.3", + "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Petka Antonov", "email": "petka_antonov@hotmail.com", @@ -44,7 +44,8 @@ "deprecated": false, "description": "Full featured Promises/A+ implementation with exceptionally good performance", "devDependencies": { - "acorn": "~0.6.0", + "acorn": "^6.0.2", + "acorn-walk": "^6.1.0", "baconjs": "^0.7.43", "bluebird": "^2.9.2", "body-parser": "^1.10.2", @@ -105,6 +106,6 @@ "prepublish": "npm run generate-browser-core && npm run generate-browser-full", "test": "node --expose-gc tools/test.js" }, - "version": "3.5.2", + "version": "3.5.3", "webpack": "./js/release/bluebird.js" } diff --git a/package-lock.json b/package-lock.json index 55d1473373276..b583cfa77b98d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -335,9 +335,9 @@ } }, "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==" + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" }, "boxen": { "version": "1.3.0", diff --git a/package.json b/package.json index 5b5e7652d2384..6335ee5739090 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "aproba": "~1.2.0", "archy": "~1.0.0", "bin-links": "^1.1.2", - "bluebird": "^3.5.2", + "bluebird": "^3.5.3", "byte-size": "^4.0.3", "cacache": "^11.2.0", "call-limit": "~1.1.0", From bb6f94395491576ec42996ff6665df225f6b4377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 08:32:42 -0800 Subject: [PATCH 27/81] graceful-fs@4.1.15 Credit: @isaacs --- node_modules/graceful-fs/{fs.js => clone.js} | 4 +- node_modules/graceful-fs/graceful-fs.js | 39 ++- node_modules/graceful-fs/package.json | 44 ++- node_modules/graceful-fs/polyfills.js | 277 +++++++++---------- package-lock.json | 6 +- package.json | 2 +- 6 files changed, 192 insertions(+), 180 deletions(-) rename node_modules/graceful-fs/{fs.js => clone.js} (88%) diff --git a/node_modules/graceful-fs/fs.js b/node_modules/graceful-fs/clone.js similarity index 88% rename from node_modules/graceful-fs/fs.js rename to node_modules/graceful-fs/clone.js index 8ad4a383965b7..028356c96ed53 100644 --- a/node_modules/graceful-fs/fs.js +++ b/node_modules/graceful-fs/clone.js @@ -1,8 +1,6 @@ 'use strict' -var fs = require('fs') - -module.exports = clone(fs) +module.exports = clone function clone (obj) { if (obj === null || typeof obj !== 'object') diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js index 33b30d2e986eb..ac206757e63c5 100644 --- a/node_modules/graceful-fs/graceful-fs.js +++ b/node_modules/graceful-fs/graceful-fs.js @@ -1,6 +1,8 @@ var fs = require('fs') var polyfills = require('./polyfills.js') var legacy = require('./legacy-streams.js') +var clone = require('./clone.js') + var queue = [] var util = require('util') @@ -24,17 +26,17 @@ if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { }) } -module.exports = patch(require('./fs.js')) -if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH) { - module.exports = patch(fs) +module.exports = patch(clone(fs)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) + fs.__patched = true; } // Always patch fs.close/closeSync, because we want to // retry() whenever a close happens *anywhere* in the program. // This is essential when multiple graceful-fs instances are // in play at the same time. -module.exports.close = -fs.close = (function (fs$close) { return function (fd, cb) { +module.exports.close = (function (fs$close) { return function (fd, cb) { return fs$close.call(fs, fd, function (err) { if (!err) retry() @@ -44,8 +46,7 @@ fs.close = (function (fs$close) { return function (fd, cb) { }) }})(fs.close) -module.exports.closeSync = -fs.closeSync = (function (fs$closeSync) { return function (fd) { +module.exports.closeSync = (function (fs$closeSync) { return function (fd) { // Note that graceful-fs also retries when fs.closeSync() fails. // Looks like a bug to me, although it's probably a harmless one. var rval = fs$closeSync.apply(fs, arguments) @@ -53,6 +54,17 @@ fs.closeSync = (function (fs$closeSync) { return function (fd) { return rval }})(fs.closeSync) +// Only patch fs once, otherwise we'll run into a memory leak if +// graceful-fs is loaded multiple times, such as in test environments that +// reset the loaded modules between tests. +// We look for the string `graceful-fs` from the comment above. This +// way we are not adding any extra properties and it will detect if older +// versions of graceful-fs are installed. +if (!/\bgraceful-fs\b/.test(fs.closeSync.toString())) { + fs.closeSync = module.exports.closeSync; + fs.close = module.exports.close; +} + function patch (fs) { // Everything that references the open() function needs to be in here polyfills(fs) @@ -144,6 +156,7 @@ function patch (fs) { if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) enqueue([go$readdir, [args]]) + else { if (typeof cb === 'function') cb.apply(this, arguments) @@ -163,12 +176,16 @@ function patch (fs) { } var fs$ReadStream = fs.ReadStream - ReadStream.prototype = Object.create(fs$ReadStream.prototype) - ReadStream.prototype.open = ReadStream$open + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open + } var fs$WriteStream = fs.WriteStream - WriteStream.prototype = Object.create(fs$WriteStream.prototype) - WriteStream.prototype.open = WriteStream$open + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + } fs.ReadStream = ReadStream fs.WriteStream = WriteStream diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json index d5b0bf01db553..a17913f221043 100644 --- a/node_modules/graceful-fs/package.json +++ b/node_modules/graceful-fs/package.json @@ -1,27 +1,22 @@ { - "_args": [ - [ - "graceful-fs@4.1.11", - "/Users/rebecca/code/npm" - ] - ], - "_from": "graceful-fs@4.1.11", - "_id": "graceful-fs@4.1.11", + "_from": "graceful-fs@4.1.15", + "_id": "graceful-fs@4.1.15", "_inBundle": false, - "_integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "_integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "_location": "/graceful-fs", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "graceful-fs@4.1.11", + "raw": "graceful-fs@4.1.15", "name": "graceful-fs", "escapedName": "graceful-fs", - "rawSpec": "4.1.11", + "rawSpec": "4.1.15", "saveSpec": null, - "fetchSpec": "4.1.11" + "fetchSpec": "4.1.15" }, "_requiredBy": [ + "#USER", "/", "/bin-links", "/cacache", @@ -36,7 +31,6 @@ "/load-json-file", "/node-gyp", "/npm-lifecycle", - "/npm-profile/cacache", "/npm-registry-client", "/npm-registry-fetch/cacache", "/pkg-conf/load-json-file", @@ -45,32 +39,33 @@ "/read-package-json", "/readdir-scoped-modules", "/sha", - "/tacks", "/write-file-atomic" ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "_spec": "4.1.11", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "_shasum": "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00", + "_spec": "graceful-fs@4.1.15", + "_where": "/Users/zkat/Documents/code/work/npm", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "A drop-in replacement for fs, making various improvements.", "devDependencies": { + "import-fresh": "^2.0.0", "mkdirp": "^0.5.0", "rimraf": "^2.2.8", - "tap": "^5.4.2" + "tap": "^12.0.1" }, "directories": { "test": "test" }, - "engines": { - "node": ">=0.4.0" - }, "files": [ "fs.js", "graceful-fs.js", "legacy-streams.js", - "polyfills.js" + "polyfills.js", + "clone.js" ], "homepage": "https://github.com/isaacs/node-graceful-fs#readme", "keywords": [ @@ -97,7 +92,10 @@ "url": "git+https://github.com/isaacs/node-graceful-fs.git" }, "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", "test": "node test.js | tap -" }, - "version": "4.1.11" + "version": "4.1.15" } diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js index 4c6aca78a3dc8..b964ed0806cee 100644 --- a/node_modules/graceful-fs/polyfills.js +++ b/node_modules/graceful-fs/polyfills.js @@ -1,4 +1,3 @@ -var fs = require('./fs.js') var constants = require('constants') var origCwd = process.cwd @@ -145,73 +144,36 @@ function patch (fs) { } } }})(fs.readSync) -} - -function patchLchmod (fs) { - fs.lchmod = function (path, mode, callback) { - fs.open( path - , constants.O_WRONLY | constants.O_SYMLINK - , mode - , function (err, fd) { - if (err) { - if (callback) callback(err) - return - } - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - fs.fchmod(fd, mode, function (err) { - fs.close(fd, function(err2) { - if (callback) callback(err || err2) - }) - }) - }) - } - - fs.lchmodSync = function (path, mode) { - var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) - - // prefer to return the chmod error, if one occurs, - // but still try to close, and report closing errors if they occur. - var threw = true - var ret - try { - ret = fs.fchmodSync(fd, mode) - threw = false - } finally { - if (threw) { - try { - fs.closeSync(fd) - } catch (er) {} - } else { - fs.closeSync(fd) - } - } - return ret - } -} -function patchLutimes (fs) { - if (constants.hasOwnProperty("O_SYMLINK")) { - fs.lutimes = function (path, at, mt, cb) { - fs.open(path, constants.O_SYMLINK, function (er, fd) { - if (er) { - if (cb) cb(er) + function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) return } - fs.futimes(fd, at, mt, function (er) { - fs.close(fd, function (er2) { - if (cb) cb(er || er2) + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) }) }) }) } - fs.lutimesSync = function (path, at, mt) { - var fd = fs.openSync(path, constants.O_SYMLINK) - var ret + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. var threw = true + var ret try { - ret = fs.futimesSync(fd, at, mt) + ret = fs.fchmodSync(fd, mode) threw = false } finally { if (threw) { @@ -224,107 +186,144 @@ function patchLutimes (fs) { } return ret } + } + + function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return + } + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } - } else { - fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } - fs.lutimesSync = function () {} + } else { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } } -} -function chmodFix (orig) { - if (!orig) return orig - return function (target, mode, cb) { - return orig.call(fs, target, mode, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) + function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } } -} -function chmodFixSync (orig) { - if (!orig) return orig - return function (target, mode) { - try { - return orig.call(fs, target, mode) - } catch (er) { - if (!chownErOk(er)) throw er + function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } } } -} -function chownFix (orig) { - if (!orig) return orig - return function (target, uid, gid, cb) { - return orig.call(fs, target, uid, gid, function (er) { - if (chownErOk(er)) er = null - if (cb) cb.apply(this, arguments) - }) + function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } } -} -function chownFixSync (orig) { - if (!orig) return orig - return function (target, uid, gid) { - try { - return orig.call(fs, target, uid, gid) - } catch (er) { - if (!chownErOk(er)) throw er + function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } } } -} -function statFix (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target, cb) { - return orig.call(fs, target, function (er, stats) { - if (!stats) return cb.apply(this, arguments) + function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, cb) { + return orig.call(fs, target, function (er, stats) { + if (!stats) return cb.apply(this, arguments) + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + if (cb) cb.apply(this, arguments) + }) + } + } + + function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target) { + var stats = orig.call(fs, target) if (stats.uid < 0) stats.uid += 0x100000000 if (stats.gid < 0) stats.gid += 0x100000000 - if (cb) cb.apply(this, arguments) - }) + return stats; + } } -} -function statFixSync (orig) { - if (!orig) return orig - // Older versions of Node erroneously returned signed integers for - // uid + gid. - return function (target) { - var stats = orig.call(fs, target) - if (stats.uid < 0) stats.uid += 0x100000000 - if (stats.gid < 0) stats.gid += 0x100000000 - return stats; - } -} + // ENOSYS means that the fs doesn't support the op. Just ignore + // that, because it doesn't matter. + // + // if there's no getuid, or if getuid() is something other + // than 0, and the error is EINVAL or EPERM, then just ignore + // it. + // + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // + // When running as root, or if other types of errors are + // encountered, then it's strict. + function chownErOk (er) { + if (!er) + return true -// ENOSYS means that the fs doesn't support the op. Just ignore -// that, because it doesn't matter. -// -// if there's no getuid, or if getuid() is something other -// than 0, and the error is EINVAL or EPERM, then just ignore -// it. -// -// This specific case is a silent failure in cp, install, tar, -// and most other unix tools that manage permissions. -// -// When running as root, or if other types of errors are -// encountered, then it's strict. -function chownErOk (er) { - if (!er) - return true - - if (er.code === "ENOSYS") - return true - - var nonroot = !process.getuid || process.getuid() !== 0 - if (nonroot) { - if (er.code === "EINVAL" || er.code === "EPERM") + if (er.code === "ENOSYS") return true - } - return false + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } + + return false + } } diff --git a/package-lock.json b/package-lock.json index b583cfa77b98d..fb77e81c2c1ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1869,9 +1869,9 @@ } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "har-schema": { "version": "2.0.0", diff --git a/package.json b/package.json index 6335ee5739090..70aa340ea7809 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.0.1", "glob": "^7.1.3", - "graceful-fs": "~4.1.11", + "graceful-fs": "^4.1.15", "has-unicode": "~2.0.1", "hosted-git-info": "^2.7.1", "iferr": "^1.0.2", From 43b1f4c91fa1d7b3ebb6aa2d960085e5f3ac7607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 08:33:31 -0800 Subject: [PATCH 28/81] tar@4.4.8 Credit: @isaacs --- node_modules/minizlib/index.js | 2 +- node_modules/minizlib/package.json | 22 +- node_modules/tar/README.md | 2 +- node_modules/tar/lib/parse.js | 1 + node_modules/tar/lib/unpack.js | 6 + node_modules/tar/lib/write-entry.js | 14 +- node_modules/tar/node_modules/chownr/LICENSE | 15 + .../tar/node_modules/chownr/README.md | 3 + .../tar/node_modules/chownr/chownr.js | 88 ++++ .../tar/node_modules/chownr/package.json | 59 +++ .../tar/node_modules/minipass/LICENSE | 15 + .../tar/node_modules/minipass/README.md | 124 ++++++ .../tar/node_modules/minipass/index.js | 375 ++++++++++++++++++ .../tar/node_modules/minipass/package.json | 67 ++++ .../tar/node_modules/yallist/iterator.js | 10 +- .../tar/node_modules/yallist/package.json | 17 +- .../tar/node_modules/yallist/yallist.js | 4 +- node_modules/tar/package.json | 36 +- package-lock.json | 38 +- package.json | 2 +- 20 files changed, 840 insertions(+), 60 deletions(-) create mode 100644 node_modules/tar/node_modules/chownr/LICENSE create mode 100644 node_modules/tar/node_modules/chownr/README.md create mode 100644 node_modules/tar/node_modules/chownr/chownr.js create mode 100644 node_modules/tar/node_modules/chownr/package.json create mode 100644 node_modules/tar/node_modules/minipass/LICENSE create mode 100644 node_modules/tar/node_modules/minipass/README.md create mode 100644 node_modules/tar/node_modules/minipass/index.js create mode 100644 node_modules/tar/node_modules/minipass/package.json diff --git a/node_modules/minizlib/index.js b/node_modules/minizlib/index.js index 10c8a8b48607e..c91a59c92dbd3 100644 --- a/node_modules/minizlib/index.js +++ b/node_modules/minizlib/index.js @@ -242,7 +242,7 @@ class Zlib extends MiniPass { cb = encoding, encoding = 'utf8' if (typeof chunk === 'string') - chunk = new Buffer(chunk, encoding) + chunk = Buffer.from(chunk, encoding) let availInBefore = chunk && chunk.length let availOutBefore = this[_chunkSize] - this[_offset] diff --git a/node_modules/minizlib/package.json b/node_modules/minizlib/package.json index 5a909622da9c1..f3a57e9f1d821 100644 --- a/node_modules/minizlib/package.json +++ b/node_modules/minizlib/package.json @@ -1,27 +1,27 @@ { - "_from": "minizlib@^1.1.0", - "_id": "minizlib@1.1.0", + "_from": "minizlib@^1.1.1", + "_id": "minizlib@1.1.1", "_inBundle": false, - "_integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "_integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", "_location": "/minizlib", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "minizlib@^1.1.0", + "raw": "minizlib@^1.1.1", "name": "minizlib", "escapedName": "minizlib", - "rawSpec": "^1.1.0", + "rawSpec": "^1.1.1", "saveSpec": null, - "fetchSpec": "^1.1.0" + "fetchSpec": "^1.1.1" }, "_requiredBy": [ "/tar" ], - "_resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "_shasum": "11e13658ce46bc3a70a267aac58359d1e0c29ceb", - "_spec": "minizlib@^1.1.0", - "_where": "/Users/rebecca/code/npm/node_modules/tar", + "_resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", + "_shasum": "6734acc045a46e61d596a43bb9d9cd326e19cc42", + "_spec": "minizlib@^1.1.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/tar", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -67,5 +67,5 @@ "preversion": "npm test", "test": "tap test/*.js --100 -J" }, - "version": "1.1.0" + "version": "1.1.1" } diff --git a/node_modules/tar/README.md b/node_modules/tar/README.md index 262dd063eb590..034e4865c729a 100644 --- a/node_modules/tar/README.md +++ b/node_modules/tar/README.md @@ -108,7 +108,7 @@ tar.c( // or tar.create gzip: }, ['some', 'files', 'and', 'folders'] -).pipe(fs.createWriteStream('my-tarball.tgz') +).pipe(fs.createWriteStream('my-tarball.tgz')) ``` To replicate `tar xf my-tarball.tgz` you'd do: diff --git a/node_modules/tar/lib/parse.js b/node_modules/tar/lib/parse.js index df84079fd370a..34e3cd70c2fe9 100644 --- a/node_modules/tar/lib/parse.js +++ b/node_modules/tar/lib/parse.js @@ -29,6 +29,7 @@ const maxMetaEntrySize = 1024 * 1024 const Entry = require('./read-entry.js') const Pax = require('./pax.js') const zlib = require('minizlib') +const Buffer = require('./buffer.js') const gzipHeader = Buffer.from([0x1f, 0x8b]) const STATE = Symbol('state') diff --git a/node_modules/tar/lib/unpack.js b/node_modules/tar/lib/unpack.js index dcbdd19e1c860..fc765096efd11 100644 --- a/node_modules/tar/lib/unpack.js +++ b/node_modules/tar/lib/unpack.js @@ -178,6 +178,12 @@ class Unpack extends Parser { if (parts.length < this.strip) return false entry.path = parts.slice(this.strip).join('/') + + if (entry.type === 'Link') { + const linkparts = entry.linkpath.split(/\/|\\/) + if (linkparts.length >= this.strip) + entry.linkpath = linkparts.slice(this.strip).join('/') + } } if (!this.preservePaths) { diff --git a/node_modules/tar/lib/write-entry.js b/node_modules/tar/lib/write-entry.js index 3a4c99b9ebe10..63f749488c55f 100644 --- a/node_modules/tar/lib/write-entry.js +++ b/node_modules/tar/lib/write-entry.js @@ -227,11 +227,21 @@ const WriteEntry = warner(class WriteEntry extends MiniPass { [ONREAD] (fd, buf, offset, length, pos, remain, blockRemain, bytesRead) { if (bytesRead <= 0 && remain > 0) { - const er = new Error('unexpected EOF') + const er = new Error('encountered unexpected EOF') er.path = this.absolute er.syscall = 'read' er.code = 'EOF' - this.emit('error', er) + this[CLOSE](fd) + return this.emit('error', er) + } + + if (bytesRead > remain) { + const er = new Error('did not encounter expected EOF') + er.path = this.absolute + er.syscall = 'read' + er.code = 'EOF' + this[CLOSE](fd) + return this.emit('error', er) } // null out the rest of the buffer, if we could fit the block padding diff --git a/node_modules/tar/node_modules/chownr/LICENSE b/node_modules/tar/node_modules/chownr/LICENSE new file mode 100644 index 0000000000000..19129e315fe59 --- /dev/null +++ b/node_modules/tar/node_modules/chownr/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/tar/node_modules/chownr/README.md b/node_modules/tar/node_modules/chownr/README.md new file mode 100644 index 0000000000000..70e9a54a32b8e --- /dev/null +++ b/node_modules/tar/node_modules/chownr/README.md @@ -0,0 +1,3 @@ +Like `chown -R`. + +Takes the same arguments as `fs.chown()` diff --git a/node_modules/tar/node_modules/chownr/chownr.js b/node_modules/tar/node_modules/chownr/chownr.js new file mode 100644 index 0000000000000..7e63928827e2c --- /dev/null +++ b/node_modules/tar/node_modules/chownr/chownr.js @@ -0,0 +1,88 @@ +'use strict' +const fs = require('fs') +const path = require('path') + +/* istanbul ignore next */ +const LCHOWN = fs.lchown ? 'lchown' : 'chown' +/* istanbul ignore next */ +const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync' + +// fs.readdir could only accept an options object as of node v6 +const nodeVersion = process.version +let readdir = (path, options, cb) => fs.readdir(path, options, cb) +let readdirSync = (path, options) => fs.readdirSync(path, options) +/* istanbul ignore next */ +if (/^v4\./.test(nodeVersion)) + readdir = (path, options, cb) => fs.readdir(path, cb) + +const chownrKid = (p, child, uid, gid, cb) => { + if (typeof child === 'string') + return fs.lstat(path.resolve(p, child), (er, stats) => { + if (er) + return cb(er) + stats.name = child + chownrKid(p, stats, uid, gid, cb) + }) + + if (child.isDirectory()) { + chownr(path.resolve(p, child.name), uid, gid, er => { + if (er) + return cb(er) + fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb) + }) + } else + fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb) +} + + +const chownr = (p, uid, gid, cb) => { + readdir(p, { withFileTypes: true }, (er, children) => { + // any error other than ENOTDIR or ENOTSUP means it's not readable, + // or doesn't exist. give up. + if (er && er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP') + return cb(er) + if (er || !children.length) return fs[LCHOWN](p, uid, gid, cb) + + let len = children.length + let errState = null + const then = er => { + if (errState) return + if (er) return cb(errState = er) + if (-- len === 0) return fs[LCHOWN](p, uid, gid, cb) + } + + children.forEach(child => chownrKid(p, child, uid, gid, then)) + }) +} + +const chownrKidSync = (p, child, uid, gid) => { + if (typeof child === 'string') { + const stats = fs.lstatSync(path.resolve(p, child)) + stats.name = child + child = stats + } + + if (child.isDirectory()) + chownrSync(path.resolve(p, child.name), uid, gid) + + fs[LCHOWNSYNC](path.resolve(p, child.name), uid, gid) +} + +const chownrSync = (p, uid, gid) => { + let children + try { + children = readdirSync(p, { withFileTypes: true }) + } catch (er) { + if (er && er.code === 'ENOTDIR' && er.code !== 'ENOTSUP') + return fs[LCHOWNSYNC](p, uid, gid) + throw er + } + + if (children.length) + children.forEach(child => chownrKidSync(p, child, uid, gid)) + + return fs[LCHOWNSYNC](p, uid, gid) +} + +module.exports = chownr +chownr.sync = chownrSync diff --git a/node_modules/tar/node_modules/chownr/package.json b/node_modules/tar/node_modules/chownr/package.json new file mode 100644 index 0000000000000..41e75b7fa6679 --- /dev/null +++ b/node_modules/tar/node_modules/chownr/package.json @@ -0,0 +1,59 @@ +{ + "_from": "chownr@^1.1.1", + "_id": "chownr@1.1.1", + "_inBundle": false, + "_integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "_location": "/tar/chownr", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "chownr@^1.1.1", + "name": "chownr", + "escapedName": "chownr", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "_shasum": "54726b8b8fff4df053c42187e801fb4412df1494", + "_spec": "chownr@^1.1.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/tar", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/chownr/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "like `chown -R`", + "devDependencies": { + "mkdirp": "0.3", + "rimraf": "", + "tap": "^12.0.1" + }, + "files": [ + "chownr.js" + ], + "homepage": "https://github.com/isaacs/chownr#readme", + "license": "ISC", + "main": "chownr.js", + "name": "chownr", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --cov" + }, + "version": "1.1.1" +} diff --git a/node_modules/tar/node_modules/minipass/LICENSE b/node_modules/tar/node_modules/minipass/LICENSE new file mode 100644 index 0000000000000..20a4762540923 --- /dev/null +++ b/node_modules/tar/node_modules/minipass/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) npm, Inc. and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/tar/node_modules/minipass/README.md b/node_modules/tar/node_modules/minipass/README.md new file mode 100644 index 0000000000000..7a83c59ffd709 --- /dev/null +++ b/node_modules/tar/node_modules/minipass/README.md @@ -0,0 +1,124 @@ +# minipass + +A _very_ minimal implementation of a [PassThrough +stream](https://nodejs.org/api/stream.html#stream_class_stream_passthrough) + +[It's very +fast](https://docs.google.com/spreadsheets/d/1oObKSrVwLX_7Ut4Z6g3fZW-AX1j1-k6w-cDsrkaSbHM/edit#gid=0) +for objects, strings, and buffers. + +Supports pipe()ing (including multi-pipe() and backpressure +transmission), buffering data until either a `data` event handler or +`pipe()` is added (so you don't lose the first chunk), and most other +cases where PassThrough is a good idea. + +There is a `read()` method, but it's much more efficient to consume +data from this stream via `'data'` events or by calling `pipe()` into +some other stream. Calling `read()` requires the buffer to be +flattened in some cases, which requires copying memory. + +There is also no `unpipe()` method. Once you start piping, there is +no stopping it! + +If you set `objectMode: true` in the options, then whatever is written +will be emitted. Otherwise, it'll do a minimal amount of Buffer +copying to ensure proper Streams semantics when `read(n)` is called. + +This is not a `through` or `through2` stream. It doesn't transform +the data, it just passes it right through. If you want to transform +the data, extend the class, and override the `write()` method. Once +you're done transforming the data however you want, call +`super.write()` with the transform output. + +For an example of a stream that extends MiniPass to provide transform +capabilities, check out [minizlib](http://npm.im/minizlib). + +## USAGE + +```js +const MiniPass = require('minipass') +const mp = new MiniPass(options) // optional: { encoding } +mp.write('foo') +mp.pipe(someOtherStream) +mp.end('bar') +``` + +### collecting + +```js +mp.collect().then(all => { + // all is an array of all the data emitted + // encoding is supported in this case, so + // so the result will be a collection of strings if + // an encoding is specified, or buffers/objects if not. + // + // In an async function, you may do + // const data = await stream.collect() +}) +``` + +### iteration + +You can iterate over streams synchronously or asynchronously in +platforms that support it. + +Synchronous iteration will end when the currently available data is +consumed, even if the `end` event has not been reached. In string and +buffer mode, the data is concatenated, so unless multiple writes are +occurring in the same tick as the `read()`, sync iteration loops will +generally only have a single iteration. + +To consume chunks in this way exactly as they have been written, with +no flattening, create the stream with the `{ objectMode: true }` +option. + +```js +const mp = new Minipass({ objectMode: true }) +mp.write('a') +mp.write('b') +for (let letter of mp) { + console.log(letter) // a, b +} +mp.write('c') +mp.write('d') +for (let letter of mp) { + console.log(letter) // c, d +} +mp.write('e') +mp.end() +for (let letter of mp) { + console.log(letter) // e +} +for (let letter of mp) { + console.log(letter) // nothing +} +``` + +Asynchronous iteration will continue until the end event is reached, +consuming all of the data. + +```js +const mp = new Minipass({ encoding: 'utf8' }) + +// some source of some data +let i = 5 +const inter = setInterval(() => { + if (i --> 0) + mp.write(Buffer.from('foo\n', 'utf8')) + else { + mp.end() + clearInterval(inter) + } +}, 100) + +// consume the data with asynchronous iteration +async function consume () { + for await (let chunk of mp) { + console.log(chunk) + } + return 'ok' +} + +consume().then(res => console.log(res)) +// logs `foo\n` 5 times, and then `ok` +``` diff --git a/node_modules/tar/node_modules/minipass/index.js b/node_modules/tar/node_modules/minipass/index.js new file mode 100644 index 0000000000000..de472c36e7684 --- /dev/null +++ b/node_modules/tar/node_modules/minipass/index.js @@ -0,0 +1,375 @@ +'use strict' +const EE = require('events') +const Yallist = require('yallist') +const EOF = Symbol('EOF') +const MAYBE_EMIT_END = Symbol('maybeEmitEnd') +const EMITTED_END = Symbol('emittedEnd') +const CLOSED = Symbol('closed') +const READ = Symbol('read') +const FLUSH = Symbol('flush') +const doIter = process.env._MP_NO_ITERATOR_SYMBOLS_ !== '1' +const ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol('asyncIterator not implemented') +const ITERATOR = doIter && Symbol.iterator || Symbol('iterator not implemented') +const FLUSHCHUNK = Symbol('flushChunk') +const SD = require('string_decoder').StringDecoder +const ENCODING = Symbol('encoding') +const DECODER = Symbol('decoder') +const FLOWING = Symbol('flowing') +const RESUME = Symbol('resume') +const BUFFERLENGTH = Symbol('bufferLength') +const BUFFERPUSH = Symbol('bufferPush') +const BUFFERSHIFT = Symbol('bufferShift') +const OBJECTMODE = Symbol('objectMode') + +// Buffer in node 4.x < 4.5.0 doesn't have working Buffer.from +// or Buffer.alloc, and Buffer in node 10 deprecated the ctor. +// .M, this is fine .\^/M.. +let B = Buffer +/* istanbul ignore next */ +if (!B.alloc) { + B = require('safe-buffer').Buffer +} + +module.exports = class MiniPass extends EE { + constructor (options) { + super() + this[FLOWING] = false + this.pipes = new Yallist() + this.buffer = new Yallist() + this[OBJECTMODE] = options && options.objectMode || false + if (this[OBJECTMODE]) + this[ENCODING] = null + else + this[ENCODING] = options && options.encoding || null + if (this[ENCODING] === 'buffer') + this[ENCODING] = null + this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null + this[EOF] = false + this[EMITTED_END] = false + this[CLOSED] = false + this.writable = true + this.readable = true + this[BUFFERLENGTH] = 0 + } + + get bufferLength () { return this[BUFFERLENGTH] } + + get encoding () { return this[ENCODING] } + set encoding (enc) { + if (this[OBJECTMODE]) + throw new Error('cannot set encoding in objectMode') + + if (this[ENCODING] && enc !== this[ENCODING] && + (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) + throw new Error('cannot change encoding') + + if (this[ENCODING] !== enc) { + this[DECODER] = enc ? new SD(enc) : null + if (this.buffer.length) + this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk)) + } + + this[ENCODING] = enc + } + + setEncoding (enc) { + this.encoding = enc + } + + write (chunk, encoding, cb) { + if (this[EOF]) + throw new Error('write after end') + + if (typeof encoding === 'function') + cb = encoding, encoding = 'utf8' + + if (!encoding) + encoding = 'utf8' + + // fast-path writing strings of same encoding to a stream with + // an empty buffer, skipping the buffer/decoder dance + if (typeof chunk === 'string' && !this[OBJECTMODE] && + // unless it is a string already ready for us to use + !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) { + chunk = B.from(chunk, encoding) + } + + if (B.isBuffer(chunk) && this[ENCODING]) + chunk = this[DECODER].write(chunk) + + try { + return this.flowing + ? (this.emit('data', chunk), this.flowing) + : (this[BUFFERPUSH](chunk), false) + } finally { + this.emit('readable') + if (cb) + cb() + } + } + + read (n) { + try { + if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) + return null + + if (this[OBJECTMODE]) + n = null + + if (this.buffer.length > 1 && !this[OBJECTMODE]) { + if (this.encoding) + this.buffer = new Yallist([ + Array.from(this.buffer).join('') + ]) + else + this.buffer = new Yallist([ + B.concat(Array.from(this.buffer), this[BUFFERLENGTH]) + ]) + } + + return this[READ](n || null, this.buffer.head.value) + } finally { + this[MAYBE_EMIT_END]() + } + } + + [READ] (n, chunk) { + if (n === chunk.length || n === null) + this[BUFFERSHIFT]() + else { + this.buffer.head.value = chunk.slice(n) + chunk = chunk.slice(0, n) + this[BUFFERLENGTH] -= n + } + + this.emit('data', chunk) + + if (!this.buffer.length && !this[EOF]) + this.emit('drain') + + return chunk + } + + end (chunk, encoding, cb) { + if (typeof chunk === 'function') + cb = chunk, chunk = null + if (typeof encoding === 'function') + cb = encoding, encoding = 'utf8' + if (chunk) + this.write(chunk, encoding) + if (cb) + this.once('end', cb) + this[EOF] = true + this.writable = false + if (this.flowing) + this[MAYBE_EMIT_END]() + } + + // don't let the internal resume be overwritten + [RESUME] () { + this[FLOWING] = true + this.emit('resume') + if (this.buffer.length) + this[FLUSH]() + else if (this[EOF]) + this[MAYBE_EMIT_END]() + else + this.emit('drain') + } + + resume () { + return this[RESUME]() + } + + pause () { + this[FLOWING] = false + } + + get flowing () { + return this[FLOWING] + } + + [BUFFERPUSH] (chunk) { + if (this[OBJECTMODE]) + this[BUFFERLENGTH] += 1 + else + this[BUFFERLENGTH] += chunk.length + return this.buffer.push(chunk) + } + + [BUFFERSHIFT] () { + if (this.buffer.length) { + if (this[OBJECTMODE]) + this[BUFFERLENGTH] -= 1 + else + this[BUFFERLENGTH] -= this.buffer.head.value.length + } + return this.buffer.shift() + } + + [FLUSH] () { + do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]())) + + if (!this.buffer.length && !this[EOF]) + this.emit('drain') + } + + [FLUSHCHUNK] (chunk) { + return chunk ? (this.emit('data', chunk), this.flowing) : false + } + + pipe (dest, opts) { + if (dest === process.stdout || dest === process.stderr) + (opts = opts || {}).end = false + const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() } + this.pipes.push(p) + + dest.on('drain', p.ondrain) + this[RESUME]() + return dest + } + + addListener (ev, fn) { + return this.on(ev, fn) + } + + on (ev, fn) { + try { + return super.on(ev, fn) + } finally { + if (ev === 'data' && !this.pipes.length && !this.flowing) + this[RESUME]() + else if (ev === 'end' && this[EMITTED_END]) { + super.emit('end') + this.removeAllListeners('end') + } + } + } + + get emittedEnd () { + return this[EMITTED_END] + } + + [MAYBE_EMIT_END] () { + if (!this[EMITTED_END] && this.buffer.length === 0 && this[EOF]) { + this.emit('end') + this.emit('prefinish') + this.emit('finish') + if (this[CLOSED]) + this.emit('close') + } + } + + emit (ev, data) { + if (ev === 'data') { + if (!data) + return + + if (this.pipes.length) + this.pipes.forEach(p => p.dest.write(data) || this.pause()) + } else if (ev === 'end') { + if (this[EMITTED_END] === true) + return + + this[EMITTED_END] = true + this.readable = false + + if (this[DECODER]) { + data = this[DECODER].end() + if (data) { + this.pipes.forEach(p => p.dest.write(data)) + super.emit('data', data) + } + } + + this.pipes.forEach(p => { + p.dest.removeListener('drain', p.ondrain) + if (!p.opts || p.opts.end !== false) + p.dest.end() + }) + } else if (ev === 'close') { + this[CLOSED] = true + // don't emit close before 'end' and 'finish' + if (!this[EMITTED_END]) + return + } + + const args = new Array(arguments.length) + args[0] = ev + args[1] = data + if (arguments.length > 2) { + for (let i = 2; i < arguments.length; i++) { + args[i] = arguments[i] + } + } + + try { + return super.emit.apply(this, args) + } finally { + if (ev !== 'end') + this[MAYBE_EMIT_END]() + else + this.removeAllListeners('end') + } + } + + // const all = await stream.collect() + collect () { + return new Promise((resolve, reject) => { + const buf = [] + this.on('data', c => buf.push(c)) + this.on('end', () => resolve(buf)) + this.on('error', reject) + }) + } + + // for await (let chunk of stream) + [ASYNCITERATOR] () { + const next = () => { + const res = this.read() + if (res !== null) + return Promise.resolve({ done: false, value: res }) + + if (this[EOF]) + return Promise.resolve({ done: true }) + + let resolve = null + let reject = null + const onerr = er => { + this.removeListener('data', ondata) + this.removeListener('end', onend) + reject(er) + } + const ondata = value => { + this.removeListener('error', onerr) + this.removeListener('end', onend) + this.pause() + resolve({ value: value, done: !!this[EOF] }) + } + const onend = () => { + this.removeListener('error', onerr) + this.removeListener('data', ondata) + resolve({ done: true }) + } + return new Promise((res, rej) => { + reject = rej + resolve = res + this.once('error', onerr) + this.once('end', onend) + this.once('data', ondata) + }) + } + + return { next } + } + + // for (let chunk of stream) + [ITERATOR] () { + const next = () => { + const value = this.read() + const done = value === null + return { value, done } + } + return { next } + } +} diff --git a/node_modules/tar/node_modules/minipass/package.json b/node_modules/tar/node_modules/minipass/package.json new file mode 100644 index 0000000000000..d38e18f6ef00f --- /dev/null +++ b/node_modules/tar/node_modules/minipass/package.json @@ -0,0 +1,67 @@ +{ + "_from": "minipass@^2.3.4", + "_id": "minipass@2.3.5", + "_inBundle": false, + "_integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "_location": "/tar/minipass", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "minipass@^2.3.4", + "name": "minipass", + "escapedName": "minipass", + "rawSpec": "^2.3.4", + "saveSpec": null, + "fetchSpec": "^2.3.4" + }, + "_requiredBy": [ + "/tar" + ], + "_resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "_shasum": "cacebe492022497f656b0f0f51e2682a9ed2d848", + "_spec": "minipass@^2.3.4", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/tar", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/minipass/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "deprecated": false, + "description": "minimal implementation of a PassThrough stream", + "devDependencies": { + "end-of-stream": "^1.4.0", + "tap": "^12.0.1", + "through2": "^2.0.3" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/isaacs/minipass#readme", + "keywords": [ + "passthrough", + "stream" + ], + "license": "ISC", + "main": "index.js", + "name": "minipass", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/minipass.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "2.3.5" +} diff --git a/node_modules/tar/node_modules/yallist/iterator.js b/node_modules/tar/node_modules/yallist/iterator.js index 9149b364889d1..d41c97a19f984 100644 --- a/node_modules/tar/node_modules/yallist/iterator.js +++ b/node_modules/tar/node_modules/yallist/iterator.js @@ -1,8 +1,8 @@ 'use strict' -var Yallist = require('./yallist.js') - -Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } } } diff --git a/node_modules/tar/node_modules/yallist/package.json b/node_modules/tar/node_modules/yallist/package.json index ac8e7c54a130f..f24c8d0c7a140 100644 --- a/node_modules/tar/node_modules/yallist/package.json +++ b/node_modules/tar/node_modules/yallist/package.json @@ -1,8 +1,8 @@ { "_from": "yallist@^3.0.2", - "_id": "yallist@3.0.2", + "_id": "yallist@3.0.3", "_inBundle": false, - "_integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "_integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "_location": "/tar/yallist", "_phantomChildren": {}, "_requested": { @@ -16,12 +16,13 @@ "fetchSpec": "^3.0.2" }, "_requiredBy": [ - "/tar" + "/tar", + "/tar/minipass" ], - "_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "_shasum": "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9", + "_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "_shasum": "b4b049e314be545e3ce802236d6cd22cd91c3de9", "_spec": "yallist@^3.0.2", - "_where": "/Users/rebecca/code/npm/node_modules/tar", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/tar", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -35,7 +36,7 @@ "deprecated": false, "description": "Yet Another Linked List", "devDependencies": { - "tap": "^10.3.0" + "tap": "^12.1.0" }, "directories": { "test": "test" @@ -58,5 +59,5 @@ "preversion": "npm test", "test": "tap test/*.js --100" }, - "version": "3.0.2" + "version": "3.0.3" } diff --git a/node_modules/tar/node_modules/yallist/yallist.js b/node_modules/tar/node_modules/yallist/yallist.js index 4805bc69fa760..b0ab36cf31b7a 100644 --- a/node_modules/tar/node_modules/yallist/yallist.js +++ b/node_modules/tar/node_modules/yallist/yallist.js @@ -371,6 +371,6 @@ function Node (value, prev, next, list) { } try { - // add if support or Symbol.iterator is present - require('./iterator.js') + // add if support for Symbol.iterator is present + require('./iterator.js')(Yallist) } catch (er) {} diff --git a/node_modules/tar/package.json b/node_modules/tar/package.json index 5cfb10128ed3e..9d96d30ebed6d 100644 --- a/node_modules/tar/package.json +++ b/node_modules/tar/package.json @@ -1,28 +1,30 @@ { - "_from": "tar@4.4.6", - "_id": "tar@4.4.6", + "_from": "tar@4.4.8", + "_id": "tar@4.4.8", "_inBundle": false, - "_integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", + "_integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "_location": "/tar", - "_phantomChildren": {}, + "_phantomChildren": { + "safe-buffer": "5.1.2" + }, "_requested": { "type": "version", "registry": true, - "raw": "tar@4.4.6", + "raw": "tar@4.4.8", "name": "tar", "escapedName": "tar", - "rawSpec": "4.4.6", + "rawSpec": "4.4.8", "saveSpec": null, - "fetchSpec": "4.4.6" + "fetchSpec": "4.4.8" }, "_requiredBy": [ "#USER", "/", "/pacote" ], - "_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", - "_shasum": "63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b", - "_spec": "tar@4.4.6", + "_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "_shasum": "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d", + "_spec": "tar@4.4.8", "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Isaac Z. Schlueter", @@ -34,10 +36,10 @@ }, "bundleDependencies": false, "dependencies": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.3", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.2" @@ -45,14 +47,14 @@ "deprecated": false, "description": "tar for node", "devDependencies": { - "chmodr": "^1.0.2", + "chmodr": "^1.2.0", "end-of-stream": "^1.4.1", "events-to-array": "^1.1.2", "mutate-fs": "^2.1.1", "rimraf": "^2.6.2", "tap": "^12.0.1", - "tar-fs": "^1.16.2", - "tar-stream": "^1.6.0" + "tar-fs": "^1.16.3", + "tar-stream": "^1.6.2" }, "engines": { "node": ">=4.5" @@ -76,5 +78,5 @@ "preversion": "npm test", "test": "tap test/*.js --100 -J --coverage-report=text -c" }, - "version": "4.4.6" + "version": "4.4.8" } diff --git a/package-lock.json b/package-lock.json index fb77e81c2c1ca..4f87f277421a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2753,9 +2753,9 @@ } }, "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", + "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", "requires": { "minipass": "^2.2.1" } @@ -7341,23 +7341,37 @@ } }, "tar": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", - "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.3", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.2" }, "dependencies": { + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" + }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" } } }, diff --git a/package.json b/package.json index 70aa340ea7809..c765ad2a290dc 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "sorted-union-stream": "~2.1.3", "ssri": "^6.0.1", "stringify-package": "^1.0.0", - "tar": "^4.4.6", + "tar": "^4.4.8", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", From ab62afcc472de82c479bf91f560a0bbd6a233c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 08:34:05 -0800 Subject: [PATCH 29/81] npm-packlist@1.1.12 Credit: @isaacs --- node_modules/npm-packlist/index.js | 17 +++++++++++------ node_modules/npm-packlist/package.json | 20 ++++++++++---------- package-lock.json | 6 +++--- package.json | 2 +- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/node_modules/npm-packlist/index.js b/node_modules/npm-packlist/index.js index c1b8783596349..2cdd37ec3df06 100644 --- a/node_modules/npm-packlist/index.js +++ b/node_modules/npm-packlist/index.js @@ -20,10 +20,14 @@ const path = require('path') const defaultRules = [ '.npmignore', '.gitignore', - '**/.git/', - '**/.svn/', - '**/.hg/', - '**/CVS/', + '**/.git', + '**/.svn', + '**/.hg', + '**/CVS', + '**/.git/**', + '**/.svn/**', + '**/.hg/**', + '**/CVS/**', '/.lock-wscript', '/.wafpickle-*', '/build/config.gypi', @@ -33,7 +37,8 @@ const defaultRules = [ '.DS_Store', '._*', '*.orig', - 'package-lock.json' + 'package-lock.json', + 'archived-packages/**', ] // a decorator that applies our custom rules to an ignore walker @@ -131,7 +136,7 @@ const npmWalker = Class => class Walker extends Class { const rules = [ pkg.browser ? '!' + pkg.browser : '', pkg.main ? '!' + pkg.main : '', - '!@(readme|license|licence|notice|changes|changelog|history){,.*}' + '!@(readme|copying|license|licence|notice|changes|changelog|history){,.*}' ].filter(f => f).join('\n') + '\n' super.onReadIgnoreFile(packageNecessaryRules, rules, _=>_) diff --git a/node_modules/npm-packlist/package.json b/node_modules/npm-packlist/package.json index 7cefe9dd5815e..f1188c393f2c9 100644 --- a/node_modules/npm-packlist/package.json +++ b/node_modules/npm-packlist/package.json @@ -1,28 +1,28 @@ { - "_from": "npm-packlist@1.1.11", - "_id": "npm-packlist@1.1.11", + "_from": "npm-packlist@1.1.12", + "_id": "npm-packlist@1.1.12", "_inBundle": false, - "_integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", + "_integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", "_location": "/npm-packlist", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "npm-packlist@1.1.11", + "raw": "npm-packlist@1.1.12", "name": "npm-packlist", "escapedName": "npm-packlist", - "rawSpec": "1.1.11", + "rawSpec": "1.1.12", "saveSpec": null, - "fetchSpec": "1.1.11" + "fetchSpec": "1.1.12" }, "_requiredBy": [ "#USER", "/", "/pacote" ], - "_resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz", - "_shasum": "84e8c683cbe7867d34b1d357d893ce29e28a02de", - "_spec": "npm-packlist@1.1.11", + "_resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", + "_shasum": "22bde2ebc12e72ca482abd67afc51eb49377243a", + "_spec": "npm-packlist@1.1.12", "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Isaac Z. Schlueter", @@ -64,5 +64,5 @@ "preversion": "npm test", "test": "tap test/*.js --100 -J" }, - "version": "1.1.11" + "version": "1.1.12" } diff --git a/package-lock.json b/package-lock.json index 4f87f277421a0..b39d9daf23dcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2988,9 +2988,9 @@ } }, "npm-packlist": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.11.tgz", - "integrity": "sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz", + "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==", "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" diff --git a/package.json b/package.json index c765ad2a290dc..748dd7e30d977 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "npm-install-checks": "~3.0.0", "npm-lifecycle": "^2.1.0", "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.11", + "npm-packlist": "^1.1.12", "npm-pick-manifest": "^2.1.0", "npm-profile": "^3.0.2", "npm-registry-client": "^8.6.0", From 027f06be35bb09f390e46fcd2b8182539939d1f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 08:35:58 -0800 Subject: [PATCH 30/81] ci-info@1.6.0 Credit: @watson --- node_modules/ci-info/CHANGELOG.md | 17 +++++++++++ node_modules/ci-info/README.md | 3 ++ node_modules/ci-info/index.js | 48 +++++++++++++++++++------------ node_modules/ci-info/package.json | 26 ++++++++--------- node_modules/ci-info/vendors.json | 41 +++++++++++++++++++------- package-lock.json | 6 ++-- package.json | 2 +- 7 files changed, 97 insertions(+), 46 deletions(-) diff --git a/node_modules/ci-info/CHANGELOG.md b/node_modules/ci-info/CHANGELOG.md index 0e9f5422963b1..859a0ad12a53b 100644 --- a/node_modules/ci-info/CHANGELOG.md +++ b/node_modules/ci-info/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## v1.6.0 + +* feat: add Sail CI support +* feat: add Buddy support +* feat: add Bitrise support +* feat: detect Jenkins PRs +* feat: detect Drone PRs + +## v1.5.1 + +* fix: use full path to vendors.json + +## v1.5.0 + +* feat: add dsari detection ([#15](https://github.com/watson/ci-info/pull/15)) +* feat: add ci.isPR ([#16](https://github.com/watson/ci-info/pull/16)) + ## v1.4.0 * feat: add Cirrus CI detection ([#13](https://github.com/watson/ci-info/pull/13)) diff --git a/node_modules/ci-info/README.md b/node_modules/ci-info/README.md index b3f677ddc4973..c88be8f82d5df 100644 --- a/node_modules/ci-info/README.md +++ b/node_modules/ci-info/README.md @@ -38,6 +38,8 @@ Officially supported CI servers: | [AppVeyor](http://www.appveyor.com) | `ci.APPVEYOR` | | [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian | `ci.BAMBOO` | | [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) | `ci.BITBUCKET` | +| [Bitrise](https://www.bitrise.io/) | `ci.BITRISE` | +| [Buddy](https://buddy.works/) | `ci.BUDDY` | | [Buildkite](https://buildkite.com) | `ci.BUILDKITE` | | [CircleCI](http://circleci.com) | `ci.CIRCLE` | | [Cirrus CI](https://cirrus-ci.org) | `ci.CIRRUS` | @@ -49,6 +51,7 @@ Officially supported CI servers: | [Hudson](http://hudson-ci.org) | `ci.HUDSON` | | [Jenkins CI](https://jenkins-ci.org) | `ci.JENKINS` | | [Magnum CI](https://magnum-ci.com) | `ci.MAGNUM` | +| [Sail CI](https://sail.ci/) | `ci.SAIL` | | [Semaphore](https://semaphoreci.com) | `ci.SEMAPHORE` | | [Shippable](https://www.shippable.com/) | `ci.SHIPPABLE` | | [Solano CI](https://www.solanolabs.com/) | `ci.SOLANO` | diff --git a/node_modules/ci-info/index.js b/node_modules/ci-info/index.js index 7f742f4ed573f..27794d49b3f21 100644 --- a/node_modules/ci-info/index.js +++ b/node_modules/ci-info/index.js @@ -15,10 +15,7 @@ exports.isPR = null vendors.forEach(function (vendor) { var envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env] var isCI = envs.every(function (obj) { - if (typeof obj === 'string') return !!env[obj] - return Object.keys(obj).every(function (k) { - return env[k] === obj[k] - }) + return checkEnv(obj) }) exports[vendor.constant] = isCI @@ -26,22 +23,28 @@ vendors.forEach(function (vendor) { if (isCI) { exports.name = vendor.name - if (vendor.pr) { - var val = env[vendor.pr.env] - if (val) { - switch (vendor.pr.type) { - case 'not-false': - exports.isPR = val !== 'false' - break - case 'boolean': - exports.isPR = val === 'true' - break - default: - exports.isPR = true + switch (typeof vendor.pr) { + case 'string': + // "pr": "CIRRUS_PR" + exports.isPR = !!env[vendor.pr] + break + case 'object': + if ('env' in vendor.pr) { + // "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" } + exports.isPR = vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne + } else if ('any' in vendor.pr) { + // "pr": { "any": ["ghprbPullId", "CHANGE_ID"] } + exports.isPR = vendor.pr.any.some(function (key) { + return !!env[key] + }) + } else { + // "pr": { "DRONE_BUILD_EVENT": "pull_request" } + exports.isPR = checkEnv(vendor.pr) } - } else { - exports.isPR = false - } + break + default: + // PR detection not supported for this vendor + exports.isPR = null } } }) @@ -54,3 +57,10 @@ exports.isCI = !!( exports.name || false ) + +function checkEnv (obj) { + if (typeof obj === 'string') return !!env[obj] + return Object.keys(obj).every(function (k) { + return env[k] === obj[k] + }) +} diff --git a/node_modules/ci-info/package.json b/node_modules/ci-info/package.json index 961f89ff33a00..ac37a5fcc8555 100644 --- a/node_modules/ci-info/package.json +++ b/node_modules/ci-info/package.json @@ -1,29 +1,29 @@ { - "_from": "ci-info@1.5.1", - "_id": "ci-info@1.5.1", + "_from": "ci-info@1.6.0", + "_id": "ci-info@1.6.0", "_inBundle": false, - "_integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==", + "_integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "_location": "/ci-info", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "ci-info@1.5.1", + "raw": "ci-info@1.6.0", "name": "ci-info", "escapedName": "ci-info", - "rawSpec": "1.5.1", + "rawSpec": "1.6.0", "saveSpec": null, - "fetchSpec": "1.5.1" + "fetchSpec": "1.6.0" }, "_requiredBy": [ "#USER", "/", "/is-ci" ], - "_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz", - "_shasum": "17e8eb5de6f8b2b6038f0cbb714d410bfa9f3030", - "_spec": "ci-info@1.5.1", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "_shasum": "2ca20dbb9ceb32d4524a683303313f0304b1e497", + "_spec": "ci-info@1.6.0", + "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Thomas Watson Steen", "email": "w@tson.dk", @@ -34,8 +34,8 @@ }, "bundleDependencies": false, "coordinates": [ - 55.778273, - 12.593054 + 55.778271, + 12.593091 ], "dependencies": {}, "deprecated": false, @@ -63,5 +63,5 @@ "scripts": { "test": "standard && node test.js" }, - "version": "1.5.1" + "version": "1.6.0" } diff --git a/node_modules/ci-info/vendors.json b/node_modules/ci-info/vendors.json index 4c03de95c9520..a157b78cea4af 100644 --- a/node_modules/ci-info/vendors.json +++ b/node_modules/ci-info/vendors.json @@ -3,7 +3,7 @@ "name": "AppVeyor", "constant": "APPVEYOR", "env": "APPVEYOR", - "pr": { "env": "APPVEYOR_PULL_REQUEST_NUMBER", "type": "string" } + "pr": "APPVEYOR_PULL_REQUEST_NUMBER" }, { "name": "Bamboo", @@ -15,23 +15,35 @@ "constant": "BITBUCKET", "env": "BITBUCKET_COMMIT" }, + { + "name": "Bitrise", + "constant": "BITRISE", + "env": "BITRISE_IO", + "pr": "BITRISE_PULL_REQUEST" + }, + { + "name": "Buddy", + "constant": "BUDDY", + "env": "BUDDY_WORKSPACE_ID", + "pr": "BUDDY_EXECUTION_PULL_REQUEST_ID" + }, { "name": "Buildkite", "constant": "BUILDKITE", "env": "BUILDKITE", - "pr": { "env": "BUILDKITE_PULL_REQUEST", "type": "not-false" } + "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" } }, { "name": "CircleCI", "constant": "CIRCLE", "env": "CIRCLECI", - "pr": { "env": "CIRCLE_PULL_REQUEST", "type": "string" } + "pr": "CIRCLE_PULL_REQUEST" }, { "name": "Cirrus CI", "constant": "CIRRUS", "env": "CIRRUS_CI", - "pr": { "env": "CIRRUS_PR", "type": "string" } + "pr": "CIRRUS_PR" }, { "name": "AWS CodeBuild", @@ -46,7 +58,8 @@ { "name": "Drone", "constant": "DRONE", - "env": "DRONE" + "env": "DRONE", + "pr": { "DRONE_BUILD_EVENT": "pull_request" } }, { "name": "dsari", @@ -71,30 +84,37 @@ { "name": "Jenkins", "constant": "JENKINS", - "env": ["JENKINS_URL", "BUILD_ID"] + "env": ["JENKINS_URL", "BUILD_ID"], + "pr": { "any": ["ghprbPullId", "CHANGE_ID"] } }, { "name": "Magnum CI", "constant": "MAGNUM", "env": "MAGNUM" }, + { + "name": "Sail CI", + "constant": "SAIL", + "env": "SAILCI", + "pr": "SAIL_PULL_REQUEST_NUMBER" + }, { "name": "Semaphore", "constant": "SEMAPHORE", "env": "SEMAPHORE", - "pr": { "env": "PULL_REQUEST_NUMBER", "type": "string" } + "pr": "PULL_REQUEST_NUMBER" }, { "name": "Shippable", "constant": "SHIPPABLE", "env": "SHIPPABLE", - "pr": { "env": "IS_PULL_REQUEST", "type": "boolean" } + "pr": { "IS_PULL_REQUEST": "true" } }, { "name": "Solano CI", "constant": "SOLANO", "env": "TDDIUM", - "pr": { "env": "TDDIUM_PR_ID", "type": "string" } + "pr": "TDDIUM_PR_ID" }, { "name": "Strider CD", @@ -110,6 +130,7 @@ "name": "Solano CI", "constant": "TDDIUM", "env": "TDDIUM", + "pr": "TDDIUM_PR_ID", "deprecated": true }, { @@ -126,6 +147,6 @@ "name": "Travis CI", "constant": "TRAVIS", "env": "TRAVIS", - "pr": { "env": "TRAVIS_PULL_REQUEST", "type": "not-false" } + "pr": { "env": "TRAVIS_PULL_REQUEST", "ne": "false" } } ] diff --git a/package-lock.json b/package-lock.json index b39d9daf23dcd..569e5dd721afe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -477,9 +477,9 @@ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "ci-info": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.5.1.tgz", - "integrity": "sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" }, "cidr-regex": { "version": "2.0.9", diff --git a/package.json b/package.json index 748dd7e30d977..557bcb44add20 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "cacache": "^11.2.0", "call-limit": "~1.1.0", "chownr": "~1.0.1", - "ci-info": "^1.5.1", + "ci-info": "^1.6.0", "cli-columns": "^3.1.2", "cli-table3": "^0.5.0", "cmd-shim": "~2.0.2", From 61dbbb7c3474834031bce88c423850047e8131dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Mon, 26 Nov 2018 09:55:54 -0800 Subject: [PATCH 31/81] doc: fix semver docs --- doc/misc/semver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/misc/semver.md b/doc/misc/semver.md index ab6f72c13e6c2..1c2dbf55b8d2f 100644 --- a/doc/misc/semver.md +++ b/doc/misc/semver.md @@ -274,7 +274,7 @@ logical-or ::= ( ' ' ) * '||' ( ' ' ) * range ::= hyphen | simple ( ' ' simple ) * | '' hyphen ::= partial ' - ' partial simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? xr ::= 'x' | 'X' | '*' | nr nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * From 353a81f37ce9c1e5345064faf187247961c47f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 28 Nov 2018 09:04:48 -0800 Subject: [PATCH 32/81] license: whitelist config-chain again --- .licensee.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.licensee.json b/.licensee.json index c14776dd97fe4..820425a9ce80a 100644 --- a/.licensee.json +++ b/.licensee.json @@ -1,7 +1,7 @@ { "license": "(MIT OR BSD-2-Clause OR BSD-3-Clause OR Apache-2.0 OR ISC OR Unlicense OR CC-BY-3.0 OR CC0-1.0 OR Artistic-2.0)", "whitelist": { - "config-chain": "1.1.11", + "config-chain": "1.1.12", "cyclist": "0.2.2", "json-schema": "0.2.3", "qrcode-terminal": "0.12.0" From 2499303cfe091b0c3178fc8e71567f27dd0474af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 28 Nov 2018 09:06:58 -0800 Subject: [PATCH 33/81] deps: gitignore licensee and deps --- node_modules/.gitignore | 11 +++++++++++ package-lock.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/node_modules/.gitignore b/node_modules/.gitignore index 152ae79376f7f..196f8f1209ac2 100644 --- a/node_modules/.gitignore +++ b/node_modules/.gitignore @@ -9,6 +9,7 @@ /ajv-keywords /ansi-escapes /argparse +/array-find-index /array-includes /array-union /array-uniq @@ -39,6 +40,7 @@ /deglob /del /diff +/docopt /doctrine /ee-first /encodeurl @@ -76,6 +78,7 @@ /flat-cache /foreach /foreground-child +/fs-access /fs-exists-cached /function-bind /function-loop @@ -102,10 +105,12 @@ /js-tokens /js-yaml /json +/json-parse-errback /json-stable-stringify-without-jsonify /jsx-ast-utils /lcov-parse /levn +/licensee /load-json-file /lodash.isempty /log-driver @@ -117,6 +122,7 @@ /node-fetch /npm-registry-couchapp /npm-registry-mock +/null-check /nyc /object-keys /on-finished @@ -152,9 +158,14 @@ /rx-lite /rx-lite-aggregates /setimmediate +/simple-concat /slice-ansi /source-map /source-map-support +/spdx-compare +/spdx-expression-validate +/spdx-ranges +/spdx-satisfies /sprintf-js /stack-utils /standard diff --git a/package-lock.json b/package-lock.json index 569e5dd721afe..d6fbc945f61a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1640,7 +1640,7 @@ }, "fs-access": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { From 499cbbddd13511c9c9f637ad7552030944c81cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 28 Nov 2018 12:00:18 -0800 Subject: [PATCH 34/81] doc: update changelog for npm@6.5.0 --- CHANGELOG.md | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6270a9c812ac8..b575dbeef55da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,134 @@ +## v6.5.0 (2018-11-28): + +### NEW FEATURES + +* [`fc1a8d185`](https://github.com/npm/cli/commit/fc1a8d185fc678cdf3784d9df9eef9094e0b2dec) + Backronym `npm ci` to `npm clean-install`. + ([@zkat](https://github.com/zkat)) +* [`4be51a9cc`](https://github.com/npm/cli/commit/4be51a9cc65635bb26fa4ce62233f26e0104bc20) + [#81](https://github.com/npm/cli/pull/81) + Adds 'Homepage' to outdated --long output. + ([@jbottigliero](https://github.com/jbottigliero)) + +### BUGFIXES + +* [`89652cb9b`](https://github.com/npm/cli/commit/89652cb9b810f929f5586fc90cc6794d076603fb) + [npm.community#1661](https://npm.community/t/https://npm.community/t/1661) + Fix sign-git-commit options. They were previously totally wrong. + ([@zkat](https://github.com/zkat)) +* [`414f2d1a1`](https://github.com/npm/cli/commit/414f2d1a1bdffc02ed31ebb48a43216f284c21d4) + [npm.community#1742](https://npm.community/t/npm-audit-making-non-rfc-compliant-requests-to-server-resulting-in-400-bad-request-pr-with-fix/1742) + Set lowercase headers for npm audit requests. + ([@maartenba](https://github.com/maartenba)) +* [`a34246baf`](https://github.com/npm/cli/commit/a34246bafe73218dc9e3090df9ee800451db2c7d) + [#75](https://github.com/npm/cli/pull/75) + Fix `npm edit` handling of scoped packages. + ([@larsgw](https://github.com/larsgw)) +* [`d3e8a7c72`](https://github.com/npm/cli/commit/d3e8a7c7240dd25379a5bcad324a367c58733c73) + [npm.community#2303](https://npm.community/t/npm-ci-logs-success-to-stderr/2303) + Make summary output for `npm ci` go to `stdout`, not `stderr`. + ([@alopezsanchez](https://github.com/alopezsanchez)) +* [`71d8fb4a9`](https://github.com/npm/cli/commit/71d8fb4a94d65e1855f6d0c5f2ad2b7c3202e3c4) + [npm.community#1377](https://npm.community/t/unhelpful-error-message-when-publishing-without-logging-in-error-eperm-operation-not-permitted-unlink/1377/3) + Close the file descriptor during publish if exiting upload via an error. This + will prevent strange error messages when the upload fails and make sure + cleanup happens correctly. + ([@macdja38](https://github.com/macdja38)) + +### DOCS UPDATES + +* [`b1a8729c8`](https://github.com/npm/cli/commit/b1a8729c80175243fbbeecd164e9ddd378a09a50) + [#60](https://github.com/npm/cli/pull/60) + Mention --otp flag when prompting for OTP. + ([@bakkot](https://github.com/bakkot)) +* [`bcae4ea81`](https://github.com/npm/cli/commit/bcae4ea8173e489a76cc226bbd30dd9eabe21ec6) + [#64](https://github.com/npm/cli/pull/64) + Clarify that git dependencies use the default branch, not just `master`. + ([@zckrs](https://github.com/zckrs)) +* [`15da82690`](https://github.com/npm/cli/commit/15da8269032bf509ade3252978e934f2a61d4499) + [#72](https://github.com/npm/cli/pull/72) + `bash_completion.d` dir is sometimes found in `/etc` not `/usr/local`. + ([@RobertKielty](https://github.com/RobertKielty)) +* [`8a6ecc793`](https://github.com/npm/cli/commit/8a6ecc7936dae2f51638397ff5a1d35cccda5495) + [#74](https://github.com/npm/cli/pull/74) + Update OTP documentation for `dist-tag add` to clarify `--otp` is needed right + now. + ([@scotttrinh](https://github.com/scotttrinh)) +* [`dcc03ec85`](https://github.com/npm/cli/commit/dcc03ec858bddd7aa2173b5a86b55c1c2385a2a3) + [#82](https://github.com/npm/cli/pull/82) + Note that `prepare` runs when installing git dependencies. + ([@seishun](https://github.com/seishun)) +* [`a91a470b7`](https://github.com/npm/cli/commit/a91a470b71e08ccf6a75d4fb8c9937789fa8d067) + [#83](https://github.com/npm/cli/pull/83) + Specify that --dry-run isn't available in older versions of npm publish. + ([@kjin](https://github.com/kjin)) +* [`1b2fabcce`](https://github.com/npm/cli/commit/1b2fabccede37242233755961434c52536224de5) + [#96](https://github.com/npm/cli/pull/96) + Fix inline code tag issue in docs. + ([@midare](https://github.com/midare)) +* [`6cc70cc19`](https://github.com/npm/cli/commit/6cc70cc1977e58a3e1ea48e660ffc6b46b390e59) + [#68](https://github.com/npm/cli/pull/68) + Add semver link and a note on empty string format to `deprecate` doc. + ([@neverett](https://github.com/neverett)) +* [`61dbbb7c3`](https://github.com/npm/cli/commit/61dbbb7c3474834031bce88c423850047e8131dc) + Fix semver docs after version update. + ([@zkat](https://github.com/zkat)) +* [`4acd45a3d`](https://github.com/npm/cli/commit/4acd45a3d0ce92f9999446226fe7dfb89a90ba2e) + [#78](https://github.com/npm/cli/pull/78) + Correct spelling across various docs. + ([@hugovk](https://github.com/hugovk)) + +### DEPENDENCIES + +* [`4f761283e`](https://github.com/npm/cli/commit/4f761283e8896d0ceb5934779005646463a030e8) + `figgy-pudding@3.5.1` + ([@zkat](https://github.com/zkat)) +* [`3706db0bc`](https://github.com/npm/cli/commit/3706db0bcbc306d167bb902362e7f6962f2fe1a1) + [npm.community#1764](https://npm.community/t/crash-invalid-config-key-requested-error/1764) + `ssri@6.0.1` + ([@zkat](https://github.com/zkat)) +* [`83c2b117d`](https://github.com/npm/cli/commit/83c2b117d0b760d0ea8d667e5e4bdfa6a7a7a8f6) + `bluebird@3.5.2` + ([@petkaantonov](https://github.com/petkaantonov)) +* [`2702f46bd`](https://github.com/npm/cli/commit/2702f46bd7284fb303ca2119d23c52536811d705) + `ci-info@1.5.1` + ([@watson](https://github.com/watson)) +* [`4db6c3898`](https://github.com/npm/cli/commit/4db6c3898b07100e3a324e4aae50c2fab4b93a04) + `config-chain@1.1.1`:2 + ([@dawsbot](https://github.com/dawbot)) +* [`70bee4f69`](https://github.com/npm/cli/commit/70bee4f69bb4ce4e18c48582fe2b48d8b4aba566) + `glob@7.1.3` + ([@isaacs](https://github.com/isaacs)) +* [`e469fd6be`](https://github.com/npm/cli/commit/e469fd6be95333dcaa7cf377ca3620994ca8d0de) + `opener@1.5.1`: + Fix browser opening under Windows Subsystem for Linux (WSL). + ([@thijsputman](https://github.com/thijsputman)) +* [`03840dced`](https://github.com/npm/cli/commit/03840dced865abdca6e6449ea030962e5b19db0c) + `semver@5.5.1` + ([@iarna](https://github.com/iarna)) +* [`161dc0b41`](https://github.com/npm/cli/commit/161dc0b4177e76306a0e3b8660b3b496cc3db83b) + `bluebird@3.5.3` + ([@petkaantonov](https://github.com/petkaantonov)) +* [`bb6f94395`](https://github.com/npm/cli/commit/bb6f94395491576ec42996ff6665df225f6b4377) + `graceful-fs@4.1.1`:5 + ([@isaacs](https://github.com/isaacs)) +* [`43b1f4c91`](https://github.com/npm/cli/commit/43b1f4c91fa1d7b3ebb6aa2d960085e5f3ac7607) + `tar@4.4.8` + ([@isaacs](https://github.com/isaacs)) +* [`ab62afcc4`](https://github.com/npm/cli/commit/ab62afcc472de82c479bf91f560a0bbd6a233c80) + `npm-packlist@1.1.1`:2 + ([@isaacs](https://github.com/isaacs)) +* [`027f06be3`](https://github.com/npm/cli/commit/027f06be35bb09f390e46fcd2b8182539939d1f7) + `ci-info@1.6.0` + ([@watson](https://github.com/watson)) + +### MISCELLANEOUS + +* [`27217dae8`](https://github.com/npm/cli/commit/27217dae8adbc577ee9cb323b7cfe9c6b2493aca) + [#70](https://github.com/npm/cli/pull/70) + Automatically audit dependency licenses for npm itself. + ([@kemitchell](https://github.com/kemitchell)) + ## v6.4.1 (2018-08-22): ### BUGFIXES From 6de34c1663e75b3b8e8272f7566aadcea574ab68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 28 Nov 2018 14:20:10 -0800 Subject: [PATCH 35/81] update AUTHORS --- AUTHORS | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/AUTHORS b/AUTHORS index 728ed4cc5f4b7..f66afe80f01a1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -601,3 +601,14 @@ SneakyFish5 <32284796+SneakyFish5@users.noreply.github.com> Nikki Everett Erik Price Lars Willighagen +Kevin Gibbons +Maarten Balliauw +Mehdy Dara +Robert Kielty +Scott Trinh +Hugo +Jacob +Joe Bottigliero +Nikolai Vavilov +Kelvin Jin +乱序 From 6084ed1d0476251d5a53806fe42a26ea2e3c87dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 28 Nov 2018 14:20:11 -0800 Subject: [PATCH 36/81] 6.5.0-next.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d6fbc945f61a0..574708a23fa6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "npm", - "version": "6.4.1", + "version": "6.5.0-next.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 557bcb44add20..83eaf3662d120 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "6.4.1", + "version": "6.5.0-next.0", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ From fa33eab0ebb67f5ba4c47d5915d9a4533b59afda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 15 Aug 2018 14:00:06 -0700 Subject: [PATCH 37/81] npm-registry-fetch@3.8.0 --- .../npm-registry-fetch/CHANGELOG.md | 104 --- .../npm-registry-fetch/LICENSE.md | 16 - .../node_modules/npm-registry-fetch/README.md | 549 ------------- .../node_modules/npm-registry-fetch/auth.js | 48 -- .../npm-registry-fetch/check-response.js | 99 --- .../node_modules/npm-registry-fetch/config.js | 90 --- .../node_modules/npm-registry-fetch/errors.js | 58 -- .../node_modules/npm-registry-fetch/index.js | 160 ---- .../npm-registry-fetch/package.json | 90 --- .../npm-registry-fetch/silentlog.js | 14 - node_modules/libnpmhook/package.json | 22 +- node_modules/npm-registry-fetch/CHANGELOG.md | 156 ++++ node_modules/npm-registry-fetch/README.md | 93 ++- node_modules/npm-registry-fetch/auth.js | 12 +- .../npm-registry-fetch/check-response.js | 30 +- node_modules/npm-registry-fetch/config.js | 24 +- node_modules/npm-registry-fetch/errors.js | 21 + node_modules/npm-registry-fetch/index.js | 149 ++-- .../node_modules/cacache/CHANGELOG.md | 478 ------------ .../node_modules/cacache/LICENSE.md | 16 - .../node_modules/cacache/README.es.md | 628 --------------- .../node_modules/cacache/README.md | 624 --------------- .../node_modules/cacache/en.js | 3 - .../node_modules/cacache/es.js | 3 - .../node_modules/cacache/get.js | 190 ----- .../node_modules/cacache/index.js | 3 - .../node_modules/cacache/lib/content/path.js | 26 - .../node_modules/cacache/lib/content/read.js | 125 --- .../node_modules/cacache/lib/content/rm.js | 21 - .../node_modules/cacache/lib/content/write.js | 162 ---- .../node_modules/cacache/lib/entry-index.js | 225 ------ .../node_modules/cacache/lib/memoization.js | 69 -- .../cacache/lib/util/fix-owner.js | 44 -- .../cacache/lib/util/hash-to-segments.js | 11 - .../cacache/lib/util/move-file.js | 51 -- .../node_modules/cacache/lib/util/tmp.js | 32 - .../node_modules/cacache/lib/util/y.js | 25 - .../node_modules/cacache/lib/verify.js | 213 ----- .../node_modules/cacache/locales/en.js | 44 -- .../node_modules/cacache/locales/en.json | 6 - .../node_modules/cacache/locales/es.js | 46 -- .../node_modules/cacache/locales/es.json | 6 - .../node_modules/cacache/ls.js | 6 - .../node_modules/mississippi/changelog.md | 7 - .../cacache/node_modules/mississippi/index.js | 10 - .../cacache/node_modules/mississippi/license | 7 - .../node_modules/mississippi/package.json | 62 -- .../node_modules/mississippi/readme.md | 411 ---------- .../node_modules/cacache/package.json | 137 ---- .../node_modules/cacache/put.js | 71 -- .../node_modules/cacache/rm.js | 28 - .../node_modules/cacache/verify.js | 3 - .../node_modules/figgy-pudding/CHANGELOG.md | 29 - .../node_modules/figgy-pudding/LICENSE.md | 16 - .../node_modules/figgy-pudding/README.md | 121 --- .../node_modules/figgy-pudding/index.js | 60 -- .../node_modules/figgy-pudding/package.json | 70 -- .../make-fetch-happen/CHANGELOG.md | 525 ------------- .../node_modules/make-fetch-happen/LICENSE | 16 - .../node_modules/make-fetch-happen/README.md | 404 ---------- .../node_modules/make-fetch-happen/agent.js | 171 ----- .../node_modules/make-fetch-happen/cache.js | 257 ------- .../node_modules/make-fetch-happen/index.js | 482 ------------ .../make-fetch-happen/package.json | 95 --- .../node_modules/make-fetch-happen/warning.js | 24 - .../node_modules/pump/.travis.yml | 5 - .../node_modules/pump/LICENSE | 21 - .../node_modules/pump/README.md | 56 -- .../node_modules/pump/index.js | 82 -- .../node_modules/pump/package.json | 59 -- .../node_modules/pump/test-browser.js | 62 -- .../node_modules/pump/test-node.js | 53 -- .../node_modules/smart-buffer/.npmignore | 5 - .../node_modules/smart-buffer/.travis.yml | 11 - .../node_modules/smart-buffer/LICENSE | 20 - .../node_modules/smart-buffer/README.md | 307 -------- .../smart-buffer/build/smartbuffer.js | 726 ------------------ .../smart-buffer/build/smartbuffer.js.map | 1 - .../smart-buffer/lib/smart-buffer.js | 371 --------- .../node_modules/smart-buffer/package.json | 70 -- .../smart-buffer/test/smart-buffer.test.js | 410 ---------- .../smart-buffer/typings/index.d.ts | 383 --------- .../node_modules/socks-proxy-agent/.npmignore | 1 - .../socks-proxy-agent/.travis.yml | 22 - .../node_modules/socks-proxy-agent/History.md | 96 --- .../node_modules/socks-proxy-agent/README.md | 134 ---- .../node_modules/socks-proxy-agent/index.js | 141 ---- .../socks-proxy-agent/package.json | 66 -- .../test/ssl-cert-snakeoil.key | 15 - .../test/ssl-cert-snakeoil.pem | 12 - .../socks-proxy-agent/test/test.js | 144 ---- .../node_modules/socks/.npmignore | 4 - .../node_modules/socks/LICENSE | 20 - .../node_modules/socks/README.md | 339 -------- .../node_modules/socks/examples/associate.js | 33 - .../node_modules/socks/examples/bind.js | 30 - .../node_modules/socks/examples/connect.js | 31 - .../node_modules/socks/index.js | 6 - .../node_modules/socks/lib/socks-agent.js | 108 --- .../node_modules/socks/lib/socks-client.js | 306 -------- .../node_modules/socks/package.json | 68 -- .../node_modules/ssri/CHANGELOG.md | 256 ------ .../node_modules/ssri/LICENSE.md | 16 - .../node_modules/ssri/README.md | 488 ------------ .../node_modules/ssri/index.js | 379 --------- .../node_modules/ssri/package.json | 90 --- node_modules/npm-registry-fetch/package.json | 92 +-- package-lock.json | 134 +--- package.json | 2 +- 109 files changed, 431 insertions(+), 13042 deletions(-) delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json delete mode 100644 node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/README.es.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/en.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/es.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/get.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/ls.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/put.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/rm.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/cacache/verify.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/.travis.yml delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/LICENSE delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/test-browser.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/pump/test-node.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/.npmignore delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/LICENSE delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/socks/package.json delete mode 100644 node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/ssri/README.md delete mode 100644 node_modules/npm-registry-fetch/node_modules/ssri/index.js delete mode 100644 node_modules/npm-registry-fetch/node_modules/ssri/package.json diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md b/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md deleted file mode 100644 index 8f9366551fb97..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md +++ /dev/null @@ -1,104 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -
-## [3.1.1](https://github.com/npm/registry-fetch/compare/v3.1.0...v3.1.1) (2018-04-09) - - - - -# [3.1.0](https://github.com/npm/registry-fetch/compare/v3.0.0...v3.1.0) (2018-04-09) - - -### Features - -* **config:** support no-proxy and https-proxy options ([9aa906b](https://github.com/npm/registry-fetch/commit/9aa906b)) - - - - -# [3.0.0](https://github.com/npm/registry-fetch/compare/v2.1.0...v3.0.0) (2018-04-09) - - -### Bug Fixes - -* **api:** pacote integration-related fixes ([a29de4f](https://github.com/npm/registry-fetch/commit/a29de4f)) -* **config:** stop caring about opts.config ([5856a6f](https://github.com/npm/registry-fetch/commit/5856a6f)) - - -### BREAKING CHANGES - -* **config:** opts.config is no longer supported. Pass the options down in opts itself. - - - - -# [2.1.0](https://github.com/npm/registry-fetch/compare/v2.0.0...v2.1.0) (2018-04-08) - - -### Features - -* **token:** accept opts.token for opts._authToken ([108c9f0](https://github.com/npm/registry-fetch/commit/108c9f0)) - - - - -# [2.0.0](https://github.com/npm/registry-fetch/compare/v1.1.1...v2.0.0) (2018-04-08) - - -### meta - -* drop support for node@4 ([758536e](https://github.com/npm/registry-fetch/commit/758536e)) - - -### BREAKING CHANGES - -* node@4 is no longer supported - - - - -## [1.1.1](https://github.com/npm/registry-fetch/compare/v1.1.0...v1.1.1) (2018-04-06) - - - - -# [1.1.0](https://github.com/npm/registry-fetch/compare/v1.0.1...v1.1.0) (2018-03-16) - - -### Features - -* **specs:** can use opts.spec to trigger pickManifest ([85c4ac9](https://github.com/npm/registry-fetch/commit/85c4ac9)) - - - - -## [1.0.1](https://github.com/npm/registry-fetch/compare/v1.0.0...v1.0.1) (2018-03-16) - - -### Bug Fixes - -* **query:** oops console.log ([870e4f5](https://github.com/npm/registry-fetch/commit/870e4f5)) - - - - -# 1.0.0 (2018-03-16) - - -### Bug Fixes - -* **auth:** get auth working with all the little details ([84b94ba](https://github.com/npm/registry-fetch/commit/84b94ba)) -* **deps:** add bluebird as an actual dep ([1286e31](https://github.com/npm/registry-fetch/commit/1286e31)) -* **errors:** Unknown auth errors use default code ([#1](https://github.com/npm/registry-fetch/issues/1)) ([3d91b93](https://github.com/npm/registry-fetch/commit/3d91b93)) -* **standard:** remove args from invocation ([9620a0a](https://github.com/npm/registry-fetch/commit/9620a0a)) - - -### Features - -* **api:** baseline kinda-working API impl ([bf91f9f](https://github.com/npm/registry-fetch/commit/bf91f9f)) -* **body:** automatic handling of different opts.body values ([f3b97db](https://github.com/npm/registry-fetch/commit/f3b97db)) -* **config:** nicer input config input handling ([b9ce21d](https://github.com/npm/registry-fetch/commit/b9ce21d)) -* **opts:** use figgy-pudding for opts handling ([0abd527](https://github.com/npm/registry-fetch/commit/0abd527)) -* **query:** add query utility support ([65ea8b1](https://github.com/npm/registry-fetch/commit/65ea8b1)) diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md b/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md deleted file mode 100644 index 8d28acf866d93..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md b/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md deleted file mode 100644 index 3d55eef6de85b..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md +++ /dev/null @@ -1,549 +0,0 @@ -# npm-registry-fetch [![npm version](https://img.shields.io/npm/v/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![license](https://img.shields.io/npm/l/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![Travis](https://img.shields.io/travis/npm/npm-registry-fetch/latest.svg)](https://travis-ci.org/npm/npm-registry-fetch) [![AppVeyor](https://img.shields.io/appveyor/ci/zkat/npm-registry-fetch/latest.svg)](https://ci.appveyor.com/project/npm/npm-registry-fetch) [![Coverage Status](https://coveralls.io/repos/github/npm/npm-registry-fetch/badge.svg?branch=latest)](https://coveralls.io/github/npm/npm-registry-fetch?branch=latest) - -[`npm-registry-fetch`](https://github.com/npm/npm-registry-fetch) is a Node.js -library that implements a `fetch`-like API for accessing npm registry APIs -consistently. It's able to consume npm-style configuration values and has all -the necessary logic for picking registries, handling scopes, and dealing with -authentication details built-in. - -This package is meant to replace the older -[`npm-registry-client`](https://npm.im/npm-registry-client). - -## Example - -```javascript -const npmFetch = require('npm-registry-fetch') - -console.log( - await npmFetch.json('/-/ping') -) -``` - -## Table of Contents - -* [Installing](#install) -* [Example](#example) -* [Contributing](#contributing) -* [API](#api) - * [`fetch`](#fetch) - * [`fetch.json`](#fetch-json) - * [`fetch` options](#fetch-opts) - -### Install - -`$ npm install npm-registry-fetch` - -### Contributing - -The npm team enthusiastically welcomes contributions and project participation! -There's a bunch of things you can do if you want to contribute! The [Contributor -Guide](CONTRIBUTING.md) has all the information you need for everything from -reporting bugs to contributing entire new features. Please don't hesitate to -jump in if you'd like to, or even ask us questions if something isn't clear. - -All participants and maintainers in this project are expected to follow [Code of -Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other. - -Please refer to the [Changelog](CHANGELOG.md) for project history details, too. - -Happy hacking! - -### API - -#### `> fetch(url, [opts]) -> Promise` - -Performs a request to a given URL. - -The URL can be either a full URL, or a path to one. The appropriate registry -will be automatically picked if only a URL path is given. - -For available options, please see the section on [`fetch` options](#fetch-opts). - -##### Example - -```javascript -const res = await fetch('/-/ping') -console.log(res.headers) -res.on('data', d => console.log(d.toString('utf8'))) -``` - -#### `> fetch.json(url, [opts]) -> Promise` - -Performs a request to a given registry URL, parses the body of the response as -JSON, and returns it as its final value. This is a utility shorthand for -`fetch(url).then(res => res.json())`. - -For available options, please see the section on [`fetch` options](#fetch-opts). - -##### Example - -```javascript -const res = await fetch.json('/-/ping') -console.log(res) // Body parsed as JSON -``` - -#### `fetch` Options - -Fetch options are optional, and can be passed in as either a Map-like object -(one with a `.get()` method), a plain javascript object, or a -[`figgy-pudding`](https://npm.im/figgy-pudding) instance. - -##### `opts.agent` - -* Type: http.Agent -* Default: an appropriate agent based on URL protocol and proxy settings - -An [`Agent`](https://nodejs.org/api/http.html#http_class_http_agent) instance to -be shared across requests. This allows multiple concurrent `fetch` requests to -happen on the same socket. - -You do _not_ need to provide this option unless you want something particularly -specialized, since proxy configurations and http/https agents are already -automatically managed internally when this option is not passed through. - -##### `opts.body` - -* Type: Buffer | Stream | Object -* Default: null - -Request body to send through the outgoing request. Buffers and Streams will be -passed through as-is, with a default `content-type` of -`application/octet-stream`. Plain JavaScript objects will be `JSON.stringify`ed -and the `content-type` will default to `application/json`. - -Use [`opts.headers`](#opts-headers) to set the content-type to something else. - -##### `opts.ca` - -* Type: String, Array, or null -* Default: null - -The Certificate Authority signing certificate that is trusted for SSL -connections to the registry. Values should be in PEM format (Windows calls it -"Base-64 encoded X.509 (.CER)") with newlines replaced by the string `'\n'`. For -example: - -``` -{ - ca: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----' -} -``` - -Set to `null` to only allow "known" registrars, or to a specific CA cert -to trust only that specific signing authority. - -Multiple CAs can be trusted by specifying an array of certificates instead of a -single string. - -See also [`opts.strict-ssl`](#opts-strict-ssl), [`opts.ca`](#opts-ca) and -[`opts.key`](#opts-key) - -##### `opts.cache` - -* Type: path -* Default: null - -The location of the http cache directory. If provided, certain cachable requests -will be cached according to [IETF RFC 7234](https://tools.ietf.org/html/rfc7234) -rules. This will speed up future requests, as well as make the cached data -available offline if necessary/requested. - -See also [`offline`](#opts-offline), [`prefer-offline`](#opts-prefer-offline), -and [`prefer-online`](#opts-prefer-online). - -##### `opts.cert` - -* Type: String -* Default: null - -A client certificate to pass when accessing the registry. Values should be in -PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines -replaced by the string `'\n'`. For example: - -``` -{ - cert: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----' -} -``` - -It is _not_ the path to a certificate file (and there is no "certfile" option). - -See also: [`opts.ca`](#opts-ca) and [`opts.key`](#opts-key) - -##### `opts.fetch-retries` - -* Type: Number -* Default: 2 - -The "retries" config for [`retry`](https://npm.im/retry) to use when fetching -packages from the registry. - -See also [`opts.retry`](#opts-retry) to provide all retry options as a single -object. - -##### `opts.fetch-retry-factor` - -* Type: Number -* Default: 10 - -The "factor" config for [`retry`](https://npm.im/retry) to use when fetching -packages. - -See also [`opts.retry`](#opts-retry) to provide all retry options as a single -object. - -##### `opts.fetch-retry-mintimeout` - -* Type: Number -* Default: 10000 (10 seconds) - -The "minTimeout" config for [`retry`](https://npm.im/retry) to use when fetching -packages. - -See also [`opts.retry`](#opts-retry) to provide all retry options as a single -object. - -##### `opts.fetch-retry-maxtimeout` - -* Type: Number -* Default: 60000 (1 minute) - -The "maxTimeout" config for [`retry`](https://npm.im/retry) to use when fetching -packages. - -See also [`opts.retry`](#opts-retry) to provide all retry options as a single -object. - -##### `opts.headers` - -* Type: Object -* Default: null - -Additional headers for the outgoing request. This option can also be used to -override headers automatically generated by `npm-registry-fetch`, such as -`Content-Type`. - -##### `opts.integrity` - -* Type: String | [SRI object](https://npm.im/ssri) -* Default: null - -If provided, the response body's will be verified against this integrity string, -using [`ssri`](https://npm.im/ssri). If verification succeeds, the response will -complete as normal. If verification fails, the response body will error with an -`EINTEGRITY` error. - -Body integrity is only verified if the body is actually consumed to completion -- -that is, if you use `res.json()`/`res.buffer()`, or if you consume the default -`res` stream data to its end. - -Cached data will have its integrity automatically verified using the -previously-generated integrity hash for the saved request information, so -`EINTEGRITY` errors can happen if [`opts.cache`](#opts-cache) is used, even if -`opts.integrity` is not passed in. - -##### `opts.is-from-ci` - -* Alias: `opts.isFromCI` -* Type: Boolean -* Default: Based on environment variables - -This is used to populate the `npm-in-ci` request header sent to the registry. - -##### `opts.key` - -* Type: String -* Default: null - -A client key to pass when accessing the registry. Values should be in PEM -format with newlines replaced by the string `'\n'`. For example: - -``` -{ - key: '-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----' -} -``` - -It is _not_ the path to a key file (and there is no "keyfile" option). - -See also: [`opts.ca`](#opts-ca) and [`opts.cert`](#opts-cert) - -##### `opts.local-address` - -* Type: IP Address String -* Default: null - -The IP address of the local interface to use when making connections -to the registry. - -See also [`opts.proxy`](#opts-proxy) - -##### `opts.log` - -* Type: [`npmlog`](https://npm.im/npmlog)-like -* Default: null - -Logger object to use for logging operation details. Must have the same methods -as `npmlog`. - -##### `opts.maxsockets` - -* Alias: `opts.max-sockets` -* Type: Integer -* Default: 12 - -Maximum number of sockets to keep open during requests. Has no effect if -[`opts.agent`](#opts-agent) is used. - -##### `opts.method` - -* Type: String -* Default: 'GET' - -HTTP method to use for the outgoing request. Case-insensitive. - -##### `opts.noproxy` - -* Type: Boolean -* Default: process.env.NOPROXY - -If true, proxying will be disabled even if [`opts.proxy`](#opts-proxy) is used. - -##### `opts.npm-session` - -* Alias: `opts.npmSession` -* Type: String -* Default: null - -If provided, will be sent in the `npm-session` header. This header is used by -the npm registry to identify individual user sessions (usually individual -invocations of the CLI). - -##### `opts.offline` - -* Type: Boolean -* Default: false - -Force offline mode: no network requests will be done during install. To allow -`npm-registry-fetch` to fill in missing cache data, see -[`opts.prefer-offline`](#opts-prefer-offline). - -This option is only really useful if you're also using -[`opts.cache`](#opts-cache). - -##### `opts.otp` - -* Type: Number | String -* Default: null - -This is a one-time password from a two-factor authenticator. It is required for -certain registry interactions when two-factor auth is enabled for a user -account. - -##### `opts.password` - -* Alias: _password -* Type: String -* Default: null - -Password used for basic authentication. For the more modern authentication -method, please use the (more secure) [`opts.token`](#opts-token) - -Can optionally be scoped to a registry by using a "nerf dart" for that registry. -That is: - -``` -{ - '//registry.npmjs.org/:password': 't0k3nH34r' -} -``` - -See also [`opts.username`](#opts-username) - -##### `opts.prefer-offline` - -* Type: Boolean -* Default: false - -If true, staleness checks for cached data will be bypassed, but missing data -will be requested from the server. To force full offline mode, use -[`opts.offline`](#opts-offline). - -This option is generally only useful if you're also using -[`opts.cache`](#opts-cache). - -##### `opts.prefer-online` - -* Type: Boolean -* Default: false - -If true, staleness checks for cached data will be forced, making the CLI look -for updates immediately even for fresh package data. - -This option is generally only useful if you're also using -[`opts.cache`](#opts-cache). - - -##### `opts.project-scope` - -* Alias: `opts.projectScope` -* Type: String -* Default: null - -If provided, will be sent in the `npm-scope` header. This header is used by the -npm registry to identify the toplevel package scope that a particular project -installation is using. - -##### `opts.proxy` - -* Type: url -* Default: null - -A proxy to use for outgoing http requests. If not passed in, the `HTTP(S)_PROXY` -environment variable will be used. - -##### `opts.query` - -* Type: String | Object -* Default: null - -If provided, the request URI will have a query string appended to it using this -query. If `opts.query` is an object, it will be converted to a query string -using -[`querystring.stringify()`](https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options). - -If the request URI already has a query string, it will be merged with -`opts.query`, preferring `opts.query` values. - -##### `opts.refer` - -* Alias: `opts.referer` -* Type: String -* Default: null - -Value to use for the `Referer` header. The npm CLI itself uses this to serialize -the npm command line using the given request. - -##### `opts.registry` - -* Type: URL -* Default: `'https://registry.npmjs.org'` - -Registry configuration for a request. If a request URL only includes the URL -path, this registry setting will be prepended. This configuration is also used -to determine authentication details, so even if the request URL references a -completely different host, `opts.registry` will be used to find the auth details -for that request. - -See also [`opts.scope`](#opts-scope), [`opts.spec`](#opts-spec), and -[`opts.:registry`](#opts-scope-registry) which can all affect the actual -registry URL used by the outgoing request. - -##### `opts.retry` - -* Type: Object -* Default: null - -Single-object configuration for request retry settings. If passed in, will -override individually-passed `fetch-retry-*` settings. - -##### `opts.scope` - -* Type: String -* Default: null - -Associate an operation with a scope for a scoped registry. This option can force -lookup of scope-specific registries and authentication. - -See also [`opts.:registry`](#opts-scope-registry) and -[`opts.spec`](#opts-spec) for interactions with this option. - -##### `opts.:registry` - -* Type: String -* Default: null - -This option type can be used to configure the registry used for requests -involving a particular scope. For example, `opts['@myscope:registry'] = -'https://scope-specific.registry/'` will make it so requests go out to this -registry instead of [`opts.registry`](#opts-registry) when -[`opts.scope`](#opts-scope) is used, or when [`opts.spec`](#opts-spec) is a -scoped package spec. - -The `@` before the scope name is optional, but recommended. - -##### `opts.spec` - -* Type: String | [`npm-registry-arg`](https://npm.im/npm-registry-arg) object. -* Default: null - -If provided, can be used to automatically configure [`opts.scope`](#opts-scope) -based on a specific package name. Non-registry package specs will throw an -error. - -##### `opts.strict-ssl` - -* Type: Boolean -* Default: true - -Whether or not to do SSL key validation when making requests to the -registry via https. - -See also [`opts.ca`](#opts-ca). - -##### `opts.timeout` - -* Type: Milliseconds -* Default: 30000 (30 seconds) - -Time before a hanging request times out. - -##### `opts.token` - -* Alias: `opts._authToken` -* Type: String -* Default: null - -Authentication token string. - -Can be scoped to a registry by using a "nerf dart" for that registry. That is: - -``` -{ - '//registry.npmjs.org/:token': 't0k3nH34r' -} -``` - -##### `opts.user-agent` - -* Type: String -* Default: `'npm-registry-fetch@/node@+ ()'` - -User agent string to send in the `User-Agent` header. - -##### `opts.username` - -* Type: String -* Default: null - -Username used for basic authentication. For the more modern authentication -method, please use the (more secure) [`opts.token`](#opts-token) - -Can optionally be scoped to a registry by using a "nerf dart" for that registry. -That is: - -``` -{ - '//registry.npmjs.org/:username': 't0k3nH34r' -} -``` - -See also [`opts.password`](#opts-password) - -##### `opts._auth` - -* Type: String -* Default: null - -** DEPRECATED ** This is a legacy authentication token supported only for -*compatibility. Please use [`opts.token`](#opts-token) instead. diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js deleted file mode 100644 index 9532341db1400..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict' - -const config = require('./config.js') -const url = require('url') - -module.exports = getAuth -function getAuth (registry, opts) { - if (!registry) { throw new Error('registry is required') } - opts = config(opts) - let AUTH = {} - const regKey = registry && registryKey(registry) - const doKey = (key, alias) => addKey(opts, AUTH, regKey, key, alias) - doKey('token') - doKey('_authToken', 'token') - doKey('username') - doKey('password') - doKey('_password', 'password') - doKey('email') - doKey('_auth') - doKey('otp') - doKey('always-auth', 'alwaysAuth') - if (AUTH.password) { - AUTH.password = Buffer.from(AUTH.password, 'base64').toString('utf8') - } - AUTH.alwaysAuth = AUTH.alwaysAuth === 'false' ? false : !!AUTH.alwaysAuth - return AUTH -} - -function addKey (opts, obj, scope, key, objKey) { - if (opts.get(key)) { - obj[objKey || key] = opts.get(key) - } - if (scope && opts.get(`${scope}:${key}`)) { - obj[objKey || key] = opts.get(`${scope}:${key}`) - } -} - -// Called a nerf dart in the main codebase. Used as a "safe" -// key when fetching registry info from config. -function registryKey (registry) { - const parsed = url.parse(registry) - const formatted = url.format({ - host: parsed.host, - pathname: parsed.pathname, - slashes: parsed.slashes - }) - return url.resolve(formatted, '.') -} diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js deleted file mode 100644 index 407a80e4ce38a..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict' - -const config = require('./config.js') -const errors = require('./errors.js') -const LRU = require('lru-cache') - -module.exports = checkResponse -function checkResponse (method, res, registry, startTime, opts) { - opts = config(opts) - if (res.headers.has('npm-notice') && !res.headers.has('x-local-cache')) { - opts.get('log').notice('', res.headers.get('npm-notice')) - } - checkWarnings(res, registry, opts) - if (res.status >= 400) { - logRequest(method, res, startTime, opts) - return checkErrors(method, res, startTime, opts) - } else { - res.body.on('end', () => logRequest(method, res, startTime, opts)) - return res - } -} - -function logRequest (method, res, startTime, opts) { - const elapsedTime = Date.now() - startTime - const attempt = res.headers.get('x-fetch-attempts') - const attemptStr = attempt && attempt > 1 ? ` attempt #${attempt}` : '' - const cacheStr = res.headers.get('x-local-cache') ? ' (from cache)' : '' - opts.get('log').http( - 'fetch', - `${method.toUpperCase()} ${res.status} ${res.url} ${elapsedTime}ms${attemptStr}${cacheStr}` - ) -} - -const WARNING_REGEXP = /^\s*(\d{3})\s+(\S+)\s+"(.*)"\s+"([^"]+)"/ -const BAD_HOSTS = new LRU({ max: 50 }) - -function checkWarnings (res, registry, opts) { - if (res.headers.has('warning') && !BAD_HOSTS.has(registry)) { - const warnings = {} - res.headers.raw()['warning'].forEach(w => { - const match = w.match(WARNING_REGEXP) - if (match) { - warnings[match[1]] = { - code: match[1], - host: match[2], - message: match[3], - date: new Date(match[4]) - } - } - }) - BAD_HOSTS.set(registry, true) - if (warnings['199']) { - if (warnings['199'].message.match(/ENOTFOUND/)) { - opts.get('log').warn('registry', `Using stale data from ${registry} because the host is inaccessible -- are you offline?`) - } else { - opts.get('log').warn('registry', `Unexpected warning for ${registry}: ${warnings['199'].message}`) - } - } - if (warnings['111']) { - // 111 Revalidation failed -- we're using stale data - opts.get('log').warn( - 'registry', - `Using stale data from ${registry} due to a request error during revalidation.` - ) - } - } -} - -function checkErrors (method, res, startTime, opts) { - return res.buffer() - .catch(() => null) - .then(body => { - try { - body = JSON.parse(body.toString('utf8')) - } catch (e) {} - if (res.status === 401 && res.headers.get('www-authenticate')) { - const auth = res.headers.get('www-authenticate') - .split(/,\s*/) - .map(s => s.toLowerCase()) - if (auth.indexOf('ipaddress') !== -1) { - throw new errors.HttpErrorAuthIPAddress( - method, res, body, opts.spec - ) - } else if (auth.indexOf('otp') !== -1) { - throw new errors.HttpErrorAuthOTP( - method, res, body, opts.spec - ) - } else { - throw new errors.HttpErrorAuthUnknown( - method, res, body, opts.spec - ) - } - } else { - throw new errors.HttpErrorGeneral( - method, res, body, opts.spec - ) - } - }) -} diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js deleted file mode 100644 index db08c1e47001f..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js +++ /dev/null @@ -1,90 +0,0 @@ -'use strict' - -const pkg = require('./package.json') -const figgyPudding = require('figgy-pudding') -const silentLog = require('./silentlog.js') - -const AUTH_REGEX = /^(?:.*:)?(token|_authToken|username|_password|password|email|always-auth|_auth|otp)$/ -const SCOPE_REGISTRY_REGEX = /@.*:registry$/gi -module.exports = figgyPudding({ - 'agent': {}, - 'algorithms': {}, - 'body': {}, - 'ca': {}, - 'cache': {}, - 'cert': {}, - 'fetch-retries': {}, - 'fetch-retry-factor': {}, - 'fetch-retry-maxtimeout': {}, - 'fetch-retry-mintimeout': {}, - 'gid': {}, - 'headers': {}, - 'https-proxy': {}, - 'integrity': {}, - 'is-from-ci': 'isFromCI', - 'isFromCI': { - default () { - return ( - process.env['CI'] === 'true' || - process.env['TDDIUM'] || - process.env['JENKINS_URL'] || - process.env['bamboo.buildKey'] || - process.env['GO_PIPELINE_NAME'] - ) - } - }, - 'key': {}, - 'local-address': {}, - 'log': { - default: silentLog - }, - 'max-sockets': 'maxsockets', - 'maxsockets': { - default: 12 - }, - 'memoize': {}, - 'method': { - default: 'GET' - }, - 'no-proxy': {}, - 'noproxy': {}, - 'npm-session': 'npmSession', - 'npmSession': {}, - 'offline': {}, - 'otp': {}, - 'prefer-offline': {}, - 'prefer-online': {}, - 'projectScope': {}, - 'project-scope': 'projectScope', - 'Promise': {}, - 'proxy': {}, - 'query': {}, - 'refer': {}, - 'referer': 'refer', - 'registry': { - default: 'https://registry.npmjs.org/' - }, - 'retry': {}, - 'scope': {}, - 'spec': {}, - 'strict-ssl': {}, - 'timeout': {}, - 'uid': {}, - 'user-agent': { - default: `${ - pkg.name - }@${ - pkg.version - }/node@${ - process.version - }+${ - process.arch - } (${ - process.platform - })` - } -}, { - other (key) { - return key.match(AUTH_REGEX) || key.match(SCOPE_REGISTRY_REGEX) - } -}) diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js deleted file mode 100644 index 217f46f9773a7..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict' - -class HttpErrorBase extends Error { - constructor (method, res, body, spec) { - super() - this.headers = res.headers.raw() - this.statusCode = res.status - this.code = `E${res.status}` - this.method = method - this.uri = res.url - this.body = body - } -} -module.exports.HttpErrorBase = HttpErrorBase - -class HttpErrorGeneral extends HttpErrorBase { - constructor (method, res, body, spec) { - super(method, res, body, spec) - this.message = `${res.status} ${res.statusText} - ${ - this.method.toUpperCase() - } ${ - this.spec || this.uri - }${ - (body && body.error) ? ' - ' + body.error : '' - }` - Error.captureStackTrace(this, HttpErrorGeneral) - } -} -module.exports.HttpErrorGeneral = HttpErrorGeneral - -class HttpErrorAuthOTP extends HttpErrorBase { - constructor (method, res, body, spec) { - super(method, res, body, spec) - this.message = 'OTP required for authentication' - this.code = 'EOTP' - Error.captureStackTrace(this, HttpErrorAuthOTP) - } -} -module.exports.HttpErrorAuthOTP = HttpErrorAuthOTP - -class HttpErrorAuthIPAddress extends HttpErrorBase { - constructor (method, res, body, spec) { - super(method, res, body, spec) - this.message = 'Login is not allowed from your IP address' - this.code = 'EAUTHIP' - Error.captureStackTrace(this, HttpErrorAuthIPAddress) - } -} -module.exports.HttpErrorAuthIPAddress = HttpErrorAuthIPAddress - -class HttpErrorAuthUnknown extends HttpErrorBase { - constructor (method, res, body, spec) { - super(method, res, body, spec) - this.message = 'Unable to authenticate, need: ' + res.headers.get('www-authenticate') - Error.captureStackTrace(this, HttpErrorAuthUnknown) - } -} -module.exports.HttpErrorAuthUnknown = HttpErrorAuthUnknown diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js deleted file mode 100644 index bb6ddeaee0151..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict' - -const Buffer = require('safe-buffer').Buffer - -const checkResponse = require('./check-response.js') -const config = require('./config.js') -const getAuth = require('./auth.js') -const fetch = require('make-fetch-happen') -const npa = require('npm-package-arg') -const qs = require('querystring') -const url = require('url') - -module.exports = regFetch -function regFetch (uri, opts) { - opts = config(opts) - const registry = ( - (opts.get('spec') && pickRegistry(opts.get('spec'), opts)) || - opts.get('registry') || - 'https://registry.npmjs.org/' - ) - uri = url.parse(uri).protocol - ? uri - : `${ - registry.trim().replace(/\/?$/g, '') - }/${ - uri.trim().replace(/^\//, '') - }` - // through that takes into account the scope, the prefix of `uri`, etc - const startTime = Date.now() - const headers = getHeaders(registry, uri, opts) - let body = opts.get('body') - const bodyIsStream = body && - typeof body === 'object' && - typeof body.pipe === 'function' - if (body && !bodyIsStream && typeof body !== 'string' && !Buffer.isBuffer(body)) { - headers['content-type'] = headers['content-type'] || 'application/json' - body = JSON.stringify(body) - } else if (body && !headers['content-type']) { - headers['content-type'] = 'application/octet-stream' - } - if (opts.get('query')) { - let q = opts.get('query') - if (typeof q === 'string') { - q = qs.parse(q) - } - const parsed = url.parse(uri) - parsed.search = '?' + qs.stringify( - parsed.query - ? Object.assign(qs.parse(parsed.query), q) - : q - ) - uri = url.format(parsed) - } - return fetch(uri, { - agent: opts.get('agent'), - algorithms: opts.get('algorithms'), - body, - cache: getCacheMode(opts), - cacheManager: opts.get('cache'), - ca: opts.get('ca'), - cert: opts.get('cert'), - headers, - integrity: opts.get('integrity'), - key: opts.get('key'), - localAddress: opts.get('local-address'), - maxSockets: opts.get('maxsockets'), - memoize: opts.get('memoize'), - method: opts.get('method') || 'GET', - noProxy: opts.get('no-proxy') || opts.get('noproxy'), - Promise: opts.get('Promise'), - proxy: opts.get('https-proxy') || opts.get('proxy'), - referer: opts.get('refer'), - retry: opts.get('retry') || { - retries: opts.get('fetch-retries'), - factor: opts.get('fetch-retry-factor'), - minTimeout: opts.get('fetch-retry-mintimeout'), - maxTimeout: opts.get('fetch-retry-maxtimeout') - }, - strictSSL: !!opts.get('strict-ssl'), - timeout: opts.get('timeout'), - uid: opts.get('uid'), - gid: opts.get('gid') - }).then(res => checkResponse( - opts.get('method') || 'GET', res, registry, startTime, opts - )) -} - -module.exports.json = fetchJSON -function fetchJSON (uri, opts) { - return regFetch(uri, opts).then(res => res.json()) -} - -module.exports.pickRegistry = pickRegistry -function pickRegistry (spec, opts) { - spec = npa(spec) - opts = config(opts) - let registry = spec.scope && - opts.get(spec.scope.replace(/^@?/, '@') + ':registry') - - if (!registry && opts.get('scope')) { - registry = opts.get( - opts.get('scope').replace(/^@?/, '@') + ':registry' - ) - } - - if (!registry) { - registry = opts.get('registry') || 'https://registry.npmjs.org/' - } - - return registry -} - -function getCacheMode (opts) { - return opts.get('offline') - ? 'only-if-cached' - : opts.get('prefer-offline') - ? 'force-cache' - : opts.get('prefer-online') - ? 'no-cache' - : 'default' -} - -function getHeaders (registry, uri, opts) { - const headers = Object.assign({ - 'npm-in-ci': !!( - opts.get('is-from-ci') || - process.env['CI'] === 'true' || - process.env['TDDIUM'] || - process.env['JENKINS_URL'] || - process.env['bamboo.buildKey'] || - process.env['GO_PIPELINE_NAME'] - ), - 'npm-scope': opts.get('project-scope'), - 'npm-session': opts.get('npm-session'), - 'user-agent': opts.get('user-agent'), - 'referer': opts.get('refer') - }, opts.get('headers')) - - const auth = getAuth(registry, opts) - // If a tarball is hosted on a different place than the manifest, only send - // credentials on `alwaysAuth` - const shouldAuth = ( - auth.alwaysAuth || - url.parse(uri).host === url.parse(registry).host - ) - if (shouldAuth && auth.token) { - headers.authorization = `Bearer ${auth.token}` - } else if (shouldAuth && auth.username && auth.password) { - const encoded = Buffer.from( - `${auth.username}:${auth.password}`, 'utf8' - ).toString('base64') - headers.authorization = `Basic ${encoded}` - } else if (shouldAuth && auth._auth) { - headers.authorization = `Basic ${auth._auth}` - } - if (shouldAuth && auth.otp) { - headers['npm-otp'] = auth.otp - } - return headers -} diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json b/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json deleted file mode 100644 index f17636c6cf5e4..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "_from": "npm-registry-fetch@^3.0.0", - "_id": "npm-registry-fetch@3.1.1", - "_inBundle": false, - "_integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==", - "_location": "/libnpmhook/npm-registry-fetch", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "npm-registry-fetch@^3.0.0", - "name": "npm-registry-fetch", - "escapedName": "npm-registry-fetch", - "rawSpec": "^3.0.0", - "saveSpec": null, - "fetchSpec": "^3.0.0" - }, - "_requiredBy": [ - "/libnpmhook" - ], - "_resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz", - "_shasum": "e96bae698afdd45d4a01aca29e881fc0bc55206c", - "_spec": "npm-registry-fetch@^3.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/libnpmhook", - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - "bugs": { - "url": "https://github.com/npm/registry-fetch/issues" - }, - "bundleDependencies": false, - "config": { - "nyc": { - "exclude": [ - "node_modules/**", - "test/**" - ] - } - }, - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - }, - "deprecated": false, - "description": "Fetch-based http client for use with npm registry APIs", - "devDependencies": { - "cacache": "^11.0.0", - "mkdirp": "^0.5.1", - "nock": "^9.2.3", - "npmlog": "^4.1.2", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "standard": "^11.0.1", - "standard-version": "^4.2.0", - "tap": "^11.1.3", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" - }, - "files": [ - "*.js", - "lib" - ], - "homepage": "https://github.com/npm/registry-fetch#readme", - "keywords": [ - "npm", - "registry", - "fetch" - ], - "license": "ISC", - "main": "index.js", - "name": "npm-registry-fetch", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/registry-fetch.git" - }, - "scripts": { - "postrelease": "npm publish && git push --follow-tags", - "prerelease": "npm t", - "pretest": "standard", - "release": "standard-version -s", - "test": "tap -J --coverage test/*.js", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" - }, - "version": "3.1.1" -} diff --git a/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js b/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js deleted file mode 100644 index 886c5d55b2dbb..0000000000000 --- a/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' - -const noop = Function.prototype -module.exports = { - error: noop, - warn: noop, - notice: noop, - info: noop, - verbose: noop, - silly: noop, - http: noop, - pause: noop, - resume: noop -} diff --git a/node_modules/libnpmhook/package.json b/node_modules/libnpmhook/package.json index 2f06e7a6b53bf..84839475be2eb 100644 --- a/node_modules/libnpmhook/package.json +++ b/node_modules/libnpmhook/package.json @@ -1,22 +1,10 @@ { - "_args": [ - [ - "libnpmhook@4.0.1", - "/Users/rebecca/code/npm" - ] - ], "_from": "libnpmhook@4.0.1", "_id": "libnpmhook@4.0.1", "_inBundle": false, "_integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==", "_location": "/libnpmhook", - "_phantomChildren": { - "bluebird": "3.5.1", - "figgy-pudding": "3.1.0", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" - }, + "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, @@ -28,11 +16,13 @@ "fetchSpec": "4.0.1" }, "_requiredBy": [ + "#USER", "/" ], "_resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz", - "_spec": "4.0.1", - "_where": "/Users/rebecca/code/npm", + "_shasum": "63641654de772cbeb96a88527a7fd5456ec3c2d7", + "_spec": "libnpmhook@4.0.1", + "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Kat Marchán", "email": "kzm@sykosomatic.org" @@ -40,10 +30,12 @@ "bugs": { "url": "https://github.com/npm/libnpmhook/issues" }, + "bundleDependencies": false, "dependencies": { "figgy-pudding": "^3.1.0", "npm-registry-fetch": "^3.0.0" }, + "deprecated": false, "description": "programmatic API for managing npm registry hooks", "devDependencies": { "nock": "^9.2.3", diff --git a/node_modules/npm-registry-fetch/CHANGELOG.md b/node_modules/npm-registry-fetch/CHANGELOG.md index 05d5741ee8b6d..71232eff75c0e 100644 --- a/node_modules/npm-registry-fetch/CHANGELOG.md +++ b/node_modules/npm-registry-fetch/CHANGELOG.md @@ -2,6 +2,162 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +# [3.8.0](https://github.com/npm/registry-fetch/compare/v3.7.0...v3.8.0) (2018-08-23) + + +### Features + +* **mapJson:** add support for passing in json stream mapper ([0600986](https://github.com/npm/registry-fetch/commit/0600986)) + + + + +# [3.7.0](https://github.com/npm/registry-fetch/compare/v3.6.0...v3.7.0) (2018-08-23) + + +### Features + +* **json.stream:** add utility function for streamed JSON parsing ([051d969](https://github.com/npm/registry-fetch/commit/051d969)) + + + + +# [3.6.0](https://github.com/npm/registry-fetch/compare/v3.5.0...v3.6.0) (2018-08-22) + + +### Bug Fixes + +* **docs:** document opts.forceAuth ([40bcd65](https://github.com/npm/registry-fetch/commit/40bcd65)) + + +### Features + +* **opts.ignoreBody:** add a boolean to throw away response bodies ([6923702](https://github.com/npm/registry-fetch/commit/6923702)) + + + + +# [3.5.0](https://github.com/npm/registry-fetch/compare/v3.4.0...v3.5.0) (2018-08-22) + + +### Features + +* **pkgid:** heuristic pkgid calculation for errors ([2e789a5](https://github.com/npm/registry-fetch/commit/2e789a5)) + + + + +# [3.4.0](https://github.com/npm/registry-fetch/compare/v3.3.0...v3.4.0) (2018-08-22) + + +### Bug Fixes + +* **deps:** use new figgy-pudding with aliases fix ([0308f54](https://github.com/npm/registry-fetch/commit/0308f54)) + + +### Features + +* **auth:** add forceAuth option to force a specific auth mechanism ([4524d17](https://github.com/npm/registry-fetch/commit/4524d17)) + + + + +# [3.3.0](https://github.com/npm/registry-fetch/compare/v3.2.1...v3.3.0) (2018-08-21) + + +### Bug Fixes + +* **query:** stop including undefined keys ([4718b1b](https://github.com/npm/registry-fetch/commit/4718b1b)) + + +### Features + +* **otp:** use heuristic detection for malformed EOTP responses ([f035194](https://github.com/npm/registry-fetch/commit/f035194)) + + + + +## [3.2.1](https://github.com/npm/registry-fetch/compare/v3.2.0...v3.2.1) (2018-08-16) + + +### Bug Fixes + +* **opts:** pass through non-null opts.retry ([beba040](https://github.com/npm/registry-fetch/commit/beba040)) + + + + +# [3.2.0](https://github.com/npm/registry-fetch/compare/v3.1.1...v3.2.0) (2018-07-27) + + +### Features + +* **gzip:** add opts.gzip convenience opt ([340abe0](https://github.com/npm/registry-fetch/commit/340abe0)) + + + + +## [3.1.1](https://github.com/npm/registry-fetch/compare/v3.1.0...v3.1.1) (2018-04-09) + + + + +# [3.1.0](https://github.com/npm/registry-fetch/compare/v3.0.0...v3.1.0) (2018-04-09) + + +### Features + +* **config:** support no-proxy and https-proxy options ([9aa906b](https://github.com/npm/registry-fetch/commit/9aa906b)) + + + + +# [3.0.0](https://github.com/npm/registry-fetch/compare/v2.1.0...v3.0.0) (2018-04-09) + + +### Bug Fixes + +* **api:** pacote integration-related fixes ([a29de4f](https://github.com/npm/registry-fetch/commit/a29de4f)) +* **config:** stop caring about opts.config ([5856a6f](https://github.com/npm/registry-fetch/commit/5856a6f)) + + +### BREAKING CHANGES + +* **config:** opts.config is no longer supported. Pass the options down in opts itself. + + + + +# [2.1.0](https://github.com/npm/registry-fetch/compare/v2.0.0...v2.1.0) (2018-04-08) + + +### Features + +* **token:** accept opts.token for opts._authToken ([108c9f0](https://github.com/npm/registry-fetch/commit/108c9f0)) + + + + +# [2.0.0](https://github.com/npm/registry-fetch/compare/v1.1.1...v2.0.0) (2018-04-08) + + +### meta + +* drop support for node@4 ([758536e](https://github.com/npm/registry-fetch/commit/758536e)) + + +### BREAKING CHANGES + +* node@4 is no longer supported + + + + +## [1.1.1](https://github.com/npm/registry-fetch/compare/v1.1.0...v1.1.1) (2018-04-06) + + + # [1.1.0](https://github.com/npm/registry-fetch/compare/v1.0.1...v1.1.0) (2018-03-16) diff --git a/node_modules/npm-registry-fetch/README.md b/node_modules/npm-registry-fetch/README.md index 4947dc891fe1a..0c3f4f9469955 100644 --- a/node_modules/npm-registry-fetch/README.md +++ b/node_modules/npm-registry-fetch/README.md @@ -82,27 +82,33 @@ const res = await fetch.json('/-/ping') console.log(res) // Body parsed as JSON ``` -#### `fetch` Options +#### `> fetch.json.stream(url, jsonPath, [opts]) -> Stream` -Fetch options are optional, and can be passed in as either a Map-like object -(one with a `.get()` method), a plain javascript object, or a -[`figgy-pudding`](https://npm.im/figgy-pudding) instance. +Performs a request to a given registry URL and parses the body of the response +as JSON, with each entry being emitted through the stream. -##### `opts._authToken` - -* Type: String -* Default: null +The `jsonPath` argument is a [`JSONStream.parse()` +path](https://github.com/dominictarr/JSONStream#jsonstreamparsepath), and the +returned stream (unlike default `JSONStream`s), has a valid +`Symbol.asyncIterator` implementation. -Authentication token string. +For available options, please see the section on [`fetch` options](#fetch-opts). -Can be scoped to a registry by using a "nerf dart" for that registry. That is: +##### Example -``` -{ - '//registry.npmjs.org/:_authToken': 't0k3nH34r' +```javascript +console.log('https://npm.im/~zkat has access to the following packages:') +for await (let {key, value} of fetch.json.stream('/-/user/zkat/package', '$*')) { + console.log(`https://npm.im/${key} (perms: ${value})`) } ``` +#### `fetch` Options + +Fetch options are optional, and can be passed in as either a Map-like object +(one with a `.get()` method), a plain javascript object, or a +[`figgy-pudding`](https://npm.im/figgy-pudding) instance. + ##### `opts.agent` * Type: http.Agent @@ -229,6 +235,25 @@ packages. See also [`opts.retry`](#opts-retry) to provide all retry options as a single object. +##### `opts.force-auth` + +* Alias: `opts.forceAuth` +* Type: Object +* Default: null + +If present, other auth-related values in `opts` will be completely ignored, +including `alwaysAuth`, `email`, and `otp`, when calculating auth for a request, +and the auth details in `opts.forceAuth` will be used instead. + +##### `opts.gzip` + +* Type: Boolean +* Default: false + +If true, `npm-registry-fetch` will set the `Content-Encoding` header to `gzip` +and use `zlib.gzip()` or `zlib.createGzip()` to gzip-encode +[`opts.body`](#opts-body). + ##### `opts.headers` * Type: Object @@ -238,6 +263,16 @@ Additional headers for the outgoing request. This option can also be used to override headers automatically generated by `npm-registry-fetch`, such as `Content-Type`. +##### `opts.ignore-body` + +* Alias: `opts.ignoreBody` +* Type: Boolean +* Default: false + +If true, the **response body** will be thrown away and `res.body` set to `null`. +This will prevent dangling response sockets for requests where you don't usually +care what the response body is. + ##### `opts.integrity` * Type: String | [SRI object](https://npm.im/ssri) @@ -301,6 +336,16 @@ See also [`opts.proxy`](#opts-proxy) Logger object to use for logging operation details. Must have the same methods as `npmlog`. +##### `opts.map-json` + +* Alias: `mapJson`, `mapJSON` +* Type: Function +* Default: undefined + +When using `fetch.json.stream()` (NOT `fetch.json()`), this will be passed down +to [`JSONStream`](https://npm.im/JSONStream) as the second argument to +`JSONStream.parse`, and can be used to transform stream data before output. + ##### `opts.maxsockets` * Alias: `opts.max-sockets` @@ -362,7 +407,7 @@ account. * Default: null Password used for basic authentication. For the more modern authentication -method, please use the (more secure) [`opts._authToken`](#opts-auth-token) +method, please use the (more secure) [`opts.token`](#opts-token) Can optionally be scoped to a registry by using a "nerf dart" for that registry. That is: @@ -513,6 +558,22 @@ See also [`opts.ca`](#opts-ca). Time before a hanging request times out. +##### `opts.token` + +* Alias: `opts._authToken` +* Type: String +* Default: null + +Authentication token string. + +Can be scoped to a registry by using a "nerf dart" for that registry. That is: + +``` +{ + '//registry.npmjs.org/:token': 't0k3nH34r' +} +``` + ##### `opts.user-agent` * Type: String @@ -526,7 +587,7 @@ User agent string to send in the `User-Agent` header. * Default: null Username used for basic authentication. For the more modern authentication -method, please use the (more secure) [`opts._authToken`](#opts-auth-token) +method, please use the (more secure) [`opts.token`](#opts-token) Can optionally be scoped to a registry by using a "nerf dart" for that registry. That is: @@ -545,4 +606,4 @@ See also [`opts.password`](#opts-password) * Default: null ** DEPRECATED ** This is a legacy authentication token supported only for -*compatibility. Please us [`opts._authToken`](#opts-auth-token) instead. +*compatibility. Please use [`opts.token`](#opts-token) instead. diff --git a/node_modules/npm-registry-fetch/auth.js b/node_modules/npm-registry-fetch/auth.js index f4f7316db1af8..fa696b97ddee5 100644 --- a/node_modules/npm-registry-fetch/auth.js +++ b/node_modules/npm-registry-fetch/auth.js @@ -9,7 +9,11 @@ function getAuth (registry, opts) { opts = config(opts) let AUTH = {} const regKey = registry && registryKey(registry) + if (opts.forceAuth) { + opts = opts.forceAuth + } const doKey = (key, alias) => addKey(opts, AUTH, regKey, key, alias) + doKey('token') doKey('_authToken', 'token') doKey('username') doKey('password') @@ -26,11 +30,11 @@ function getAuth (registry, opts) { } function addKey (opts, obj, scope, key, objKey) { - if (opts.get(key)) { - obj[objKey || key] = opts.get(key) + if (opts[key]) { + obj[objKey || key] = opts[key] } - if (scope && opts.get(`${scope}:${key}`)) { - obj[objKey || key] = opts.get(`${scope}:${key}`) + if (scope && opts[`${scope}:${key}`]) { + obj[objKey || key] = opts[`${scope}:${key}`] } } diff --git a/node_modules/npm-registry-fetch/check-response.js b/node_modules/npm-registry-fetch/check-response.js index 407a80e4ce38a..bfde699edcfbd 100644 --- a/node_modules/npm-registry-fetch/check-response.js +++ b/node_modules/npm-registry-fetch/check-response.js @@ -8,7 +8,7 @@ module.exports = checkResponse function checkResponse (method, res, registry, startTime, opts) { opts = config(opts) if (res.headers.has('npm-notice') && !res.headers.has('x-local-cache')) { - opts.get('log').notice('', res.headers.get('npm-notice')) + opts.log.notice('', res.headers.get('npm-notice')) } checkWarnings(res, registry, opts) if (res.status >= 400) { @@ -16,6 +16,10 @@ function checkResponse (method, res, registry, startTime, opts) { return checkErrors(method, res, startTime, opts) } else { res.body.on('end', () => logRequest(method, res, startTime, opts)) + if (opts.ignoreBody) { + res.body.resume() + res.body = null + } return res } } @@ -25,7 +29,7 @@ function logRequest (method, res, startTime, opts) { const attempt = res.headers.get('x-fetch-attempts') const attemptStr = attempt && attempt > 1 ? ` attempt #${attempt}` : '' const cacheStr = res.headers.get('x-local-cache') ? ' (from cache)' : '' - opts.get('log').http( + opts.log.http( 'fetch', `${method.toUpperCase()} ${res.status} ${res.url} ${elapsedTime}ms${attemptStr}${cacheStr}` ) @@ -51,14 +55,14 @@ function checkWarnings (res, registry, opts) { BAD_HOSTS.set(registry, true) if (warnings['199']) { if (warnings['199'].message.match(/ENOTFOUND/)) { - opts.get('log').warn('registry', `Using stale data from ${registry} because the host is inaccessible -- are you offline?`) + opts.log.warn('registry', `Using stale data from ${registry} because the host is inaccessible -- are you offline?`) } else { - opts.get('log').warn('registry', `Unexpected warning for ${registry}: ${warnings['199'].message}`) + opts.log.warn('registry', `Unexpected warning for ${registry}: ${warnings['199'].message}`) } } if (warnings['111']) { // 111 Revalidation failed -- we're using stale data - opts.get('log').warn( + opts.log.warn( 'registry', `Using stale data from ${registry} due to a request error during revalidation.` ) @@ -70,8 +74,9 @@ function checkErrors (method, res, startTime, opts) { return res.buffer() .catch(() => null) .then(body => { + let parsed = body try { - body = JSON.parse(body.toString('utf8')) + parsed = JSON.parse(body.toString('utf8')) } catch (e) {} if (res.status === 401 && res.headers.get('www-authenticate')) { const auth = res.headers.get('www-authenticate') @@ -79,20 +84,25 @@ function checkErrors (method, res, startTime, opts) { .map(s => s.toLowerCase()) if (auth.indexOf('ipaddress') !== -1) { throw new errors.HttpErrorAuthIPAddress( - method, res, body, opts.spec + method, res, parsed, opts.spec ) } else if (auth.indexOf('otp') !== -1) { throw new errors.HttpErrorAuthOTP( - method, res, body, opts.spec + method, res, parsed, opts.spec ) } else { throw new errors.HttpErrorAuthUnknown( - method, res, body, opts.spec + method, res, parsed, opts.spec ) } + } else if (res.status === 401 && /one-time pass/.test(body.toString('utf8'))) { + // Heuristic for malformed OTP responses that don't include the www-authenticate header. + throw new errors.HttpErrorAuthOTP( + method, res, parsed, opts.spec + ) } else { throw new errors.HttpErrorGeneral( - method, res, body, opts.spec + method, res, parsed, opts.spec ) } }) diff --git a/node_modules/npm-registry-fetch/config.js b/node_modules/npm-registry-fetch/config.js index 6249f66e05bb1..7fe5dacc94362 100644 --- a/node_modules/npm-registry-fetch/config.js +++ b/node_modules/npm-registry-fetch/config.js @@ -1,12 +1,12 @@ 'use strict' const pkg = require('./package.json') -const pudding = require('figgy-pudding') +const figgyPudding = require('figgy-pudding') const silentLog = require('./silentlog.js') -const AUTH_REGEX = /^(?:.*:)?(_authToken|username|_password|password|email|always-auth|_auth|otp)$/ +const AUTH_REGEX = /^(?:.*:)?(token|_authToken|username|_password|password|email|always-auth|_auth|otp)$/ const SCOPE_REGISTRY_REGEX = /@.*:registry$/gi -const RegFetchConfig = pudding({ +module.exports = figgyPudding({ 'agent': {}, 'algorithms': {}, 'body': {}, @@ -17,8 +17,14 @@ const RegFetchConfig = pudding({ 'fetch-retry-factor': {}, 'fetch-retry-maxtimeout': {}, 'fetch-retry-mintimeout': {}, + 'force-auth': {}, + forceAuth: 'force-auth', 'gid': {}, + 'gzip': {}, 'headers': {}, + 'https-proxy': {}, + 'ignore-body': {}, + ignoreBody: 'ignore-body', 'integrity': {}, 'is-from-ci': 'isFromCI', 'isFromCI': { @@ -37,6 +43,9 @@ const RegFetchConfig = pudding({ 'log': { default: silentLog }, + 'map-json': 'mapJson', + 'mapJSON': 'mapJson', + 'mapJson': {}, 'max-sockets': 'maxsockets', 'maxsockets': { default: 12 @@ -45,6 +54,7 @@ const RegFetchConfig = pudding({ 'method': { default: 'GET' }, + 'no-proxy': {}, 'noproxy': {}, 'npm-session': 'npmSession', 'npmSession': {}, @@ -54,7 +64,7 @@ const RegFetchConfig = pudding({ 'prefer-online': {}, 'projectScope': {}, 'project-scope': 'projectScope', - 'Promise': {}, + 'Promise': {default: () => Promise}, 'proxy': {}, 'query': {}, 'refer': {}, @@ -86,9 +96,3 @@ const RegFetchConfig = pudding({ return key.match(AUTH_REGEX) || key.match(SCOPE_REGISTRY_REGEX) } }) - -module.exports = config -function config (opts) { - opts = opts || {} - return RegFetchConfig(opts, opts.config) -} diff --git a/node_modules/npm-registry-fetch/errors.js b/node_modules/npm-registry-fetch/errors.js index 217f46f9773a7..ba78735fce135 100644 --- a/node_modules/npm-registry-fetch/errors.js +++ b/node_modules/npm-registry-fetch/errors.js @@ -1,5 +1,25 @@ 'use strict' +const url = require('url') + +function packageName (href) { + try { + let basePath = url.parse(href).pathname.substr(1) + if (!basePath.match(/^-/)) { + basePath = basePath.split('/') + var index = basePath.indexOf('_rewrite') + if (index === -1) { + index = basePath.length - 1 + } else { + index++ + } + return decodeURIComponent(basePath[index]) + } + } catch (_) { + // this is ok + } +} + class HttpErrorBase extends Error { constructor (method, res, body, spec) { super() @@ -9,6 +29,7 @@ class HttpErrorBase extends Error { this.method = method this.uri = res.url this.body = body + this.pkgid = spec ? spec.toString() : packageName(res.url) } } module.exports.HttpErrorBase = HttpErrorBase diff --git a/node_modules/npm-registry-fetch/index.js b/node_modules/npm-registry-fetch/index.js index cf6e8d3bf39bf..4ba3c19243471 100644 --- a/node_modules/npm-registry-fetch/index.js +++ b/node_modules/npm-registry-fetch/index.js @@ -6,19 +6,19 @@ const checkResponse = require('./check-response.js') const config = require('./config.js') const getAuth = require('./auth.js') const fetch = require('make-fetch-happen') +const JSONStream = require('JSONStream') const npa = require('npm-package-arg') +const {PassThrough} = require('stream') const qs = require('querystring') -const silentLog = require('./silentlog.js') const url = require('url') +const zlib = require('zlib') module.exports = regFetch function regFetch (uri, opts) { - opts = config(Object.assign({ - log: silentLog - }, opts)) + opts = config(opts) const registry = ( - (opts.get('spec') && pickRegistry(opts.get('spec'), opts)) || - opts.get('registry') || + (opts.spec && pickRegistry(opts.spec, opts)) || + opts.registry || 'https://registry.npmjs.org/' ) uri = url.parse(uri).protocol @@ -31,7 +31,7 @@ function regFetch (uri, opts) { // through that takes into account the scope, the prefix of `uri`, etc const startTime = Date.now() const headers = getHeaders(registry, uri, opts) - let body = opts.get('body') + let body = opts.body const bodyIsStream = body && typeof body === 'object' && typeof body.pipe === 'function' @@ -41,51 +41,70 @@ function regFetch (uri, opts) { } else if (body && !headers['content-type']) { headers['content-type'] = 'application/octet-stream' } - if (opts.get('query')) { - let q = opts.get('query') + if (opts.gzip) { + headers['content-encoding'] = 'gzip' + if (bodyIsStream) { + const gz = zlib.createGzip() + body.on('error', err => gz.emit('error', err)) + body = body.pipe(gz) + } else { + body = new opts.Promise((resolve, reject) => { + zlib.gzip(body, (err, gz) => err ? reject(err) : resolve(gz)) + }) + } + } + if (opts.query) { + let q = opts.query if (typeof q === 'string') { q = qs.parse(q) } - const parsed = url.parse(uri) - parsed.search = '?' + qs.stringify( - parsed.query - ? Object.assign(qs.parse(parsed.query), q) - : q - ) - uri = url.format(parsed) + Object.keys(q).forEach(key => { + if (q[key] === undefined) { + delete q[key] + } + }) + if (Object.keys(q).length) { + const parsed = url.parse(uri) + parsed.search = '?' + qs.stringify( + parsed.query + ? Object.assign(qs.parse(parsed.query), q) + : q + ) + uri = url.format(parsed) + } } - return fetch(uri, { - agent: opts.get('agent'), - algorithms: opts.get('algorithms'), + return opts.Promise.resolve(body).then(body => fetch(uri, { + agent: opts.agent, + algorithms: opts.algorithms, body, cache: getCacheMode(opts), - cacheManager: opts.get('cache'), - ca: opts.get('ca'), - cert: opts.get('cert'), + cacheManager: opts.cache, + ca: opts.ca, + cert: opts.cert, headers, - integrity: opts.get('integrity'), - key: opts.get('key'), - localAddress: opts.get('local-address'), - maxSockets: opts.get('maxsockets'), - memoize: opts.get('memoize'), - method: opts.get('method') || 'GET', - noProxy: opts.get('noproxy'), - Promise: opts.get('Promise'), - proxy: opts.get('proxy'), - referer: opts.get('refer'), - retry: opts.get('retry') || { - retries: opts.get('fetch-retries'), - factor: opts.get('fetch-retry-factor'), - minTimeout: opts.get('fetch-retry-mintimeout'), - maxTimeout: opts.get('fetch-retry-maxtimeout') + integrity: opts.integrity, + key: opts.key, + localAddress: opts['local-address'], + maxSockets: opts.maxsockets, + memoize: opts.memoize, + method: opts.method || 'GET', + noProxy: opts['no-proxy'] || opts.noproxy, + Promise: opts.Promise, + proxy: opts['https-proxy'] || opts.proxy, + referer: opts.refer, + retry: opts.retry != null ? opts.retry : { + retries: opts['fetch-retries'], + factor: opts['fetch-retry-factor'], + minTimeout: opts['fetch-retry-mintimeout'], + maxTimeout: opts['fetch-retry-maxtimeout'] }, - strictSSL: !!opts.get('strict-ssl'), - timeout: opts.get('timeout'), - uid: opts.get('uid'), - gid: opts.get('gid') + strictSSL: !!opts['strict-ssl'], + timeout: opts.timeout, + uid: opts.uid, + gid: opts.gid }).then(res => checkResponse( - opts.get('method') || 'GET', res, registry, startTime, opts - )) + opts.method || 'GET', res, registry, startTime, opts + ))) } module.exports.json = fetchJSON @@ -93,35 +112,43 @@ function fetchJSON (uri, opts) { return regFetch(uri, opts).then(res => res.json()) } +module.exports.json.stream = fetchJSONStream +function fetchJSONStream (uri, jsonPath, opts) { + opts = config(opts) + const parser = JSONStream.parse(jsonPath, opts.mapJson) + const pt = parser.pipe(new PassThrough({objectMode: true})) + parser.on('error', err => pt.emit('error', err)) + regFetch(uri, opts).then(res => { + res.body.on('error', err => parser.emit('error', err)) + res.body.pipe(parser) + }, err => pt.emit('error', err)) + return pt +} + module.exports.pickRegistry = pickRegistry function pickRegistry (spec, opts) { spec = npa(spec) opts = config(opts) - if (!spec.registry) { - throw new Error(`${spec} is not a valid registry dependency spec`) - } let registry = spec.scope && - opts.get(spec.scope.replace(/^@?/, '@') + ':registry') + opts[spec.scope.replace(/^@?/, '@') + ':registry'] - if (!registry && opts.get('scope')) { - registry = opts.get( - opts.get('scope').replace(/^@?/, '@') + ':registry' - ) + if (!registry && opts.scope) { + registry = opts[opts.scope.replace(/^@?/, '@') + ':registry'] } if (!registry) { - registry = opts.get('registry') || 'https://registry.npmjs.org/' + registry = opts.registry || 'https://registry.npmjs.org/' } return registry } function getCacheMode (opts) { - return opts.get('offline') + return opts.offline ? 'only-if-cached' - : opts.get('prefer-offline') + : opts['prefer-offline'] ? 'force-cache' - : opts.get('prefer-online') + : opts['prefer-online'] ? 'no-cache' : 'default' } @@ -129,18 +156,18 @@ function getCacheMode (opts) { function getHeaders (registry, uri, opts) { const headers = Object.assign({ 'npm-in-ci': !!( - opts.get('is-from-ci') || + opts['is-from-ci'] || process.env['CI'] === 'true' || process.env['TDDIUM'] || process.env['JENKINS_URL'] || process.env['bamboo.buildKey'] || process.env['GO_PIPELINE_NAME'] ), - 'npm-scope': opts.get('project-scope'), - 'npm-session': opts.get('npm-session'), - 'user-agent': opts.get('user-agent'), - 'referer': opts.get('refer') - }, opts.get('headers')) + 'npm-scope': opts['project-scope'], + 'npm-session': opts['npm-session'], + 'user-agent': opts['user-agent'], + 'referer': opts.refer + }, opts.headers) const auth = getAuth(registry, opts) // If a tarball is hosted on a different place than the manifest, only send diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md b/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md deleted file mode 100644 index 5c3e7911db3ea..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md +++ /dev/null @@ -1,478 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - - -## [10.0.4](https://github.com/zkat/cacache/compare/v10.0.3...v10.0.4) (2018-02-16) - - - - -## [10.0.3](https://github.com/zkat/cacache/compare/v10.0.2...v10.0.3) (2018-02-16) - - -### Bug Fixes - -* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/zkat/cacache/commit/fa918f5)) - - - - -## [10.0.2](https://github.com/zkat/cacache/compare/v10.0.1...v10.0.2) (2018-01-07) - - -### Bug Fixes - -* **ls:** deleted entries could cause a premature stream EOF ([347dc36](https://github.com/zkat/cacache/commit/347dc36)) - - - - -## [10.0.1](https://github.com/zkat/cacache/compare/v10.0.0...v10.0.1) (2017-11-15) - - -### Bug Fixes - -* **move-file:** actually use the fallback to `move-concurrently` (#110) ([073fbe1](https://github.com/zkat/cacache/commit/073fbe1)) - - - - -# [10.0.0](https://github.com/zkat/cacache/compare/v9.3.0...v10.0.0) (2017-10-23) - - -### Features - -* **license:** relicense to ISC (#111) ([fdbb4e5](https://github.com/zkat/cacache/commit/fdbb4e5)) - - -### Performance Improvements - -* more copyFile benchmarks ([63787bb](https://github.com/zkat/cacache/commit/63787bb)) - - -### BREAKING CHANGES - -* **license:** the license has been changed from CC0-1.0 to ISC. - - - - -# [9.3.0](https://github.com/zkat/cacache/compare/v9.2.9...v9.3.0) (2017-10-07) - - -### Features - -* **copy:** added cacache.get.copy api for fast copies (#107) ([067b5f6](https://github.com/zkat/cacache/commit/067b5f6)) - - - - -## [9.2.9](https://github.com/zkat/cacache/compare/v9.2.8...v9.2.9) (2017-06-17) - - - - -## [9.2.8](https://github.com/zkat/cacache/compare/v9.2.7...v9.2.8) (2017-06-05) - - -### Bug Fixes - -* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/zkat/cacache/commit/c3232ea)) - - - - -## [9.2.7](https://github.com/zkat/cacache/compare/v9.2.6...v9.2.7) (2017-06-05) - - -### Bug Fixes - -* **content:** make verified content completely read-only (#96) ([4131196](https://github.com/zkat/cacache/commit/4131196)) - - - - -## [9.2.6](https://github.com/zkat/cacache/compare/v9.2.5...v9.2.6) (2017-05-31) - - -### Bug Fixes - -* **node:** update ssri to prevent old node 4 crash ([5209ffe](https://github.com/zkat/cacache/commit/5209ffe)) - - - - -## [9.2.5](https://github.com/zkat/cacache/compare/v9.2.4...v9.2.5) (2017-05-25) - - -### Bug Fixes - -* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/zkat/cacache/commit/84e1d7e)) - - - - -## [9.2.4](https://github.com/zkat/cacache/compare/v9.2.3...v9.2.4) (2017-05-24) - - -### Bug Fixes - -* **deps:** bumping deps ([bbccb12](https://github.com/zkat/cacache/commit/bbccb12)) - - - - -## [9.2.3](https://github.com/zkat/cacache/compare/v9.2.2...v9.2.3) (2017-05-24) - - -### Bug Fixes - -* **rm:** stop crashing if content is missing on rm ([ac90bc0](https://github.com/zkat/cacache/commit/ac90bc0)) - - - - -## [9.2.2](https://github.com/zkat/cacache/compare/v9.2.1...v9.2.2) (2017-05-14) - - -### Bug Fixes - -* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/zkat/cacache/commit/519b4ee)) - - - - -## [9.2.1](https://github.com/zkat/cacache/compare/v9.2.0...v9.2.1) (2017-05-14) - - -### Bug Fixes - -* **docs:** fixing translation messup ([bb9e4f9](https://github.com/zkat/cacache/commit/bb9e4f9)) - - - - -# [9.2.0](https://github.com/zkat/cacache/compare/v9.1.0...v9.2.0) (2017-05-14) - - -### Features - -* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/zkat/cacache/commit/531f9a4)) - - - - -# [9.1.0](https://github.com/zkat/cacache/compare/v9.0.0...v9.1.0) (2017-05-14) - - -### Features - -* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/zkat/cacache/commit/323b90c)) - - - - -# [9.0.0](https://github.com/zkat/cacache/compare/v8.0.0...v9.0.0) (2017-04-28) - - -### Bug Fixes - -* **memoization:** actually use the LRU ([0e55dc9](https://github.com/zkat/cacache/commit/0e55dc9)) - - -### Features - -* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/zkat/cacache/commit/e5614c7)) - - -### BREAKING CHANGES - -* **memoization:** If you were passing an object to opts.memoize, it will now be used as an injected memoization object. If you were only passing booleans and other non-objects through that option, no changes are needed. - - - - -# [8.0.0](https://github.com/zkat/cacache/compare/v7.1.0...v8.0.0) (2017-04-22) - - -### Features - -* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/zkat/cacache/commit/bad6c49)), closes [#87](https://github.com/zkat/cacache/issues/87) - - -### BREAKING CHANGES - -* **read:** hasContent now returns an object with `{sri, size}` instead of `sri`. Use `result.sri` anywhere that needed the old return value. - - - - -# [7.1.0](https://github.com/zkat/cacache/compare/v7.0.5...v7.1.0) (2017-04-20) - - -### Features - -* **size:** handle content size info (#49) ([91230af](https://github.com/zkat/cacache/commit/91230af)) - - - - -## [7.0.5](https://github.com/zkat/cacache/compare/v7.0.4...v7.0.5) (2017-04-18) - - -### Bug Fixes - -* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/zkat/cacache/commit/6d13e8e)) -* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/zkat/cacache/commit/3624fc5)) - - - - -## [7.0.4](https://github.com/zkat/cacache/compare/v7.0.3...v7.0.4) (2017-04-15) - - -### Bug Fixes - -* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/zkat/cacache/commit/d49bbcd)) - - - - -## [7.0.3](https://github.com/zkat/cacache/compare/v7.0.2...v7.0.3) (2017-04-05) - - -### Bug Fixes - -* **read:** fixing error message for integrity verification failures ([9d4f0a5](https://github.com/zkat/cacache/commit/9d4f0a5)) - - - - -## [7.0.2](https://github.com/zkat/cacache/compare/v7.0.1...v7.0.2) (2017-04-03) - - -### Bug Fixes - -* **integrity:** use EINTEGRITY error code and update ssri ([8dc2e62](https://github.com/zkat/cacache/commit/8dc2e62)) - - - - -## [7.0.1](https://github.com/zkat/cacache/compare/v7.0.0...v7.0.1) (2017-04-03) - - -### Bug Fixes - -* **docs:** fix header name conflict in readme ([afcd456](https://github.com/zkat/cacache/commit/afcd456)) - - - - -# [7.0.0](https://github.com/zkat/cacache/compare/v6.3.0...v7.0.0) (2017-04-03) - - -### Bug Fixes - -* **test:** fix content.write tests when running in docker ([d2e9b6a](https://github.com/zkat/cacache/commit/d2e9b6a)) - - -### Features - -* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/zkat/cacache/commit/b1e731f)) - - -### BREAKING CHANGES - -* **integrity:** The entire API has been overhauled to use SRI hashes instead of digest/hashAlgorithm pairs. SRI hashes follow the Subresource Integrity standard and support strings and objects compatible with [`ssri`](https://npm.im/ssri). - -* This change bumps the index version, which will invalidate all previous index entries. Content entries will remain intact, and existing caches will automatically reuse any content from before this breaking change. - -* `cacache.get.info()`, `cacache.ls()`, and `cacache.ls.stream()` will now return objects that looks like this: - -``` -{ - key: String, - integrity: '-', - path: ContentPath, - time: Date, - metadata: Any -} -``` - -* `opts.digest` and `opts.hashAlgorithm` are obsolete for any API calls that used them. - -* Anywhere `opts.digest` was accepted, `opts.integrity` is now an option. Any valid SRI hash is accepted here -- multiple hash entries will be resolved according to the standard: first, the "strongest" hash algorithm will be picked, and then each of the entries for that algorithm will be matched against the content. Content will be validated if *any* of the entries match (so, a single integrity string can be used for multiple "versions" of the same document/data). - -* `put.byDigest()`, `put.stream.byDigest`, `get.byDigest()` and `get.stream.byDigest()` now expect an SRI instead of a `digest` + `opts.hashAlgorithm` pairing. - -* `get.hasContent()` now expects an integrity hash instead of a digest. If content exists, it will return the specific single integrity hash that was found in the cache. - -* `verify()` has learned to handle integrity-based caches, and forgotten how to handle old-style cache indices due to the format change. - -* `cacache.rm.content()` now expects an integrity hash instead of a hex digest. - - - - -# [6.3.0](https://github.com/zkat/cacache/compare/v6.2.0...v6.3.0) (2017-04-01) - - -### Bug Fixes - -* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/zkat/cacache/commit/4670e9b)) -* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/zkat/cacache/commit/b9d2fa2)) -* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/zkat/cacache/commit/d8ac5aa)) - - -### Features - -* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/zkat/cacache/commit/dc6482d)) - - - - -# [6.2.0](https://github.com/zkat/cacache/compare/v6.1.2...v6.2.0) (2017-03-15) - - -### Bug Fixes - -* **index:** additional bucket entry verification with checksum (#72) ([f8e0f25](https://github.com/zkat/cacache/commit/f8e0f25)) -* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/zkat/cacache/commit/6818521)) - - -### Features - -* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/zkat/cacache/commit/c42da71)) - - - - -## [6.1.2](https://github.com/zkat/cacache/compare/v6.1.1...v6.1.2) (2017-03-13) - - -### Bug Fixes - -* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/zkat/cacache/commit/d6eb2f0)) - - - - -## [6.1.1](https://github.com/zkat/cacache/compare/v6.1.0...v6.1.1) (2017-03-13) - - -### Bug Fixes - -* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/zkat/cacache/commit/0b7faf6)) -* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/zkat/cacache/commit/0640bc4)) - - - - -# [6.1.0](https://github.com/zkat/cacache/compare/v6.0.2...v6.1.0) (2017-03-12) - - -### Bug Fixes - -* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/zkat/cacache/commit/ef4f70a)) -* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/zkat/cacache/commit/6ab8132)) - - -### Features - -* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/zkat/cacache/commit/d5d25ba)), closes [#66](https://github.com/zkat/cacache/issues/66) -* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/zkat/cacache/commit/45ad77a)) - - - - -## [6.0.2](https://github.com/zkat/cacache/compare/v6.0.1...v6.0.2) (2017-03-11) - - -### Bug Fixes - -* **index:** segment cache items with another subbucket (#64) ([c3644e5](https://github.com/zkat/cacache/commit/c3644e5)) - - - - -## [6.0.1](https://github.com/zkat/cacache/compare/v6.0.0...v6.0.1) (2017-03-05) - - -### Bug Fixes - -* **docs:** Missed spots in README ([8ffb7fa](https://github.com/zkat/cacache/commit/8ffb7fa)) - - - - -# [6.0.0](https://github.com/zkat/cacache/compare/v5.0.3...v6.0.0) (2017-03-05) - - -### Bug Fixes - -* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/zkat/cacache/commit/2f72d0a)) -* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/zkat/cacache/commit/fa8f3c3)) -* **deps:** removed `format-number[@2](https://github.com/2).0.2` ([1187791](https://github.com/zkat/cacache/commit/1187791)) -* **deps:** removed inflight[@1](https://github.com/1).0.6 ([0d1819c](https://github.com/zkat/cacache/commit/0d1819c)) -* **deps:** rimraf[@2](https://github.com/2).6.1 ([9efab6b](https://github.com/zkat/cacache/commit/9efab6b)) -* **deps:** standard[@9](https://github.com/9).0.0 ([4202cba](https://github.com/zkat/cacache/commit/4202cba)) -* **deps:** tap[@10](https://github.com/10).3.0 ([aa03088](https://github.com/zkat/cacache/commit/aa03088)) -* **deps:** weallcontribute[@1](https://github.com/1).0.8 ([ad4f4dc](https://github.com/zkat/cacache/commit/ad4f4dc)) -* **docs:** add security note to hashKey ([03f81ba](https://github.com/zkat/cacache/commit/03f81ba)) -* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/zkat/cacache/commit/ea00ba6)) -* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/zkat/cacache/commit/45997d8)) -* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/zkat/cacache/commit/fb8cb4d)) -* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/zkat/cacache/commit/bbc5fca)) -* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/zkat/cacache/commit/b1d3888)) -* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/zkat/cacache/commit/d26cdf9)) -* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/zkat/cacache/commit/79a8891)) -* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/zkat/cacache/commit/65f6632)) -* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/zkat/cacache/commit/daf9e08)) -* **put-stream:** use new promise API for moves ([1d36013](https://github.com/zkat/cacache/commit/1d36013)) -* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/zkat/cacache/commit/c60a2fa)) -* **verify:** tiny typo fix ([db22d05](https://github.com/zkat/cacache/commit/db22d05)) - - -### Features - -* **api:** converted external api ([7bf032f](https://github.com/zkat/cacache/commit/7bf032f)) -* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/zkat/cacache/commit/8d2c5b6)) -* **cache:** add versioning to content and index ([31bc549](https://github.com/zkat/cacache/commit/31bc549)) -* **content:** collate content files into subdirs ([c094d9f](https://github.com/zkat/cacache/commit/c094d9f)) -* **deps:** [@npmcorp](https://github.com/npmcorp)/move[@1](https://github.com/1).0.0 ([bdd00bf](https://github.com/zkat/cacache/commit/bdd00bf)) -* **deps:** bluebird[@3](https://github.com/3).4.7 ([3a17aff](https://github.com/zkat/cacache/commit/3a17aff)) -* **deps:** promise-inflight[@1](https://github.com/1).0.1 ([a004fe6](https://github.com/zkat/cacache/commit/a004fe6)) -* **get:** added memoization support for get ([c77d794](https://github.com/zkat/cacache/commit/c77d794)) -* **get:** export hasContent ([2956ec3](https://github.com/zkat/cacache/commit/2956ec3)) -* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/zkat/cacache/commit/b639746)) -* **index:** collate index files into subdirs ([e8402a5](https://github.com/zkat/cacache/commit/e8402a5)) -* **index:** promisify entry index ([cda3335](https://github.com/zkat/cacache/commit/cda3335)) -* **memo:** added memoization lib ([da07b92](https://github.com/zkat/cacache/commit/da07b92)) -* **memo:** export memoization api ([954b1b3](https://github.com/zkat/cacache/commit/954b1b3)) -* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/zkat/cacache/commit/5cf4616)) -* **perf:** bulk content write api ([51b536e](https://github.com/zkat/cacache/commit/51b536e)) -* **put:** added memoization support to put ([b613a70](https://github.com/zkat/cacache/commit/b613a70)) -* **read:** switched to promises ([a869362](https://github.com/zkat/cacache/commit/a869362)) -* **rm:** added memoization support to rm ([4205cf0](https://github.com/zkat/cacache/commit/4205cf0)) -* **rm:** switched to promises ([a000d24](https://github.com/zkat/cacache/commit/a000d24)) -* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/zkat/cacache/commit/9517cd7)) -* **util:** use promises for api ([ae204bb](https://github.com/zkat/cacache/commit/ae204bb)) -* **verify:** converted to Promises ([f0b3974](https://github.com/zkat/cacache/commit/f0b3974)) - - -### BREAKING CHANGES - -* cache: index/content directories are now versioned. Previous caches are no longer compatible and cannot be migrated. -* util: fix-owner now uses Promises instead of callbacks -* index: Previously-generated index entries are no longer compatible and the index must be regenerated. -* index: The index format has changed and previous caches are no longer compatible. Existing caches will need to be regenerated. -* hashes: Default hashAlgorithm changed from sha1 to sha512. If you -rely on the prior setting, pass `opts.hashAlgorithm` in explicitly. -* content: Previously-generated content directories are no longer compatible -and must be regenerated. -* verify: API is now promise-based -* read: Switches to a Promise-based API and removes callback stuff -* rm: Switches to a Promise-based API and removes callback stuff -* index: this changes the API to work off promises instead of callbacks -* api: this means we are going all in on promises now diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md b/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md deleted file mode 100644 index 8d28acf866d93..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md b/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md deleted file mode 100644 index 783a0a19b01da..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md +++ /dev/null @@ -1,628 +0,0 @@ -# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest) - -[`cacache`](https://github.com/zkat/cacache) es una librería de Node.js para -manejar caches locales en disco, con acceso tanto con claves únicas como -direcciones de contenido (hashes/hacheos). Es súper rápida, excelente con el -acceso concurrente, y jamás te dará datos incorrectos, aún si se corrompen o -manipulan directamente los ficheros del cache. - -El propósito original era reemplazar el caché local de -[npm](https://npm.im/npm), pero se puede usar por su propia cuenta. - -_Traducciones: [English](README.md)_ - -## Instalación - -`$ npm install --save cacache` - -## Índice - -* [Ejemplo](#ejemplo) -* [Características](#características) -* [Cómo Contribuir](#cómo-contribuir) -* [API](#api) - * [Usando el API en español](#localized-api) - * Leer - * [`ls`](#ls) - * [`ls.flujo`](#ls-stream) - * [`saca`](#get-data) - * [`saca.flujo`](#get-stream) - * [`saca.info`](#get-info) - * [`saca.tieneDatos`](#get-hasContent) - * Escribir - * [`mete`](#put-data) - * [`mete.flujo`](#put-stream) - * [opciones para `mete*`](#put-options) - * [`rm.todo`](#rm-all) - * [`rm.entrada`](#rm-entry) - * [`rm.datos`](#rm-content) - * Utilidades - * [`ponLenguaje`](#set-locale) - * [`limpiaMemoizado`](#clear-memoized) - * [`tmp.hazdir`](#tmp-mkdir) - * [`tmp.conTmp`](#with-tmp) - * Integridad - * [Subresource Integrity](#integrity) - * [`verifica`](#verify) - * [`verifica.ultimaVez`](#verify-last-run) - -### Ejemplo - -```javascript -const cacache = require('cacache/es') -const fs = require('fs') - -const tarbol = '/ruta/a/mi-tar.tgz' -const rutaCache = '/tmp/my-toy-cache' -const clave = 'mi-clave-única-1234' - -// ¡Añádelo al caché! Usa `rutaCache` como raíz del caché. -cacache.mete(rutaCache, clave, '10293801983029384').then(integrity => { - console.log(`Saved content to ${rutaCache}.`) -}) - -const destino = '/tmp/mytar.tgz' - -// Copia el contenido del caché a otro fichero, pero esta vez con flujos. -cacache.saca.flujo( - rutaCache, clave -).pipe( - fs.createWriteStream(destino) -).on('finish', () => { - console.log('extracción completada') -}) - -// La misma cosa, pero accesando el contenido directamente, sin tocar el índice. -cacache.saca.porHacheo(rutaCache, integridad).then(datos => { - fs.writeFile(destino, datos, err => { - console.log('datos del tarbol sacados basado en su sha512, y escrito a otro fichero') - }) -}) -``` - -### Características - -* Extracción por clave o por dirección de contenido (shasum, etc) -* Usa el estándard de web, [Subresource Integrity](#integrity) -* Compatible con multiples algoritmos - usa sha1, sha512, etc, en el mismo caché sin problema -* Entradas con contenido idéntico comparten ficheros -* Tolerancia de fallas (inmune a corrupción, ficheros parciales, carreras de proceso, etc) -* Verificación completa de datos cuando (escribiendo y leyendo) -* Concurrencia rápida, segura y "lockless" -* Compatible con `stream`s (flujos) -* Compatible con `Promise`s (promesas) -* Bastante rápida -- acceso, incluyendo verificación, en microsegundos -* Almacenaje de metadatos arbitrarios -* Colección de basura y verificación adicional fuera de banda -* Cobertura rigurosa de pruebas -* Probablente hay un "Bloom filter" por ahí en algún lado. Eso le mola a la gente, ¿Verdad? 🤔 - -### Cómo Contribuir - -El equipo de cacache felizmente acepta contribuciones de código y otras maneras de participación. ¡Hay muchas formas diferentes de contribuir! La [Guía de Colaboradores](CONTRIBUTING.md) (en inglés) tiene toda la información que necesitas para cualquier tipo de contribución: todo desde cómo reportar errores hasta cómo someter parches con nuevas características. Con todo y eso, no se preocupe por si lo que haces está exáctamente correcto: no hay ningún problema en hacer preguntas si algo no está claro, o no lo encuentras. - -El equipo de cacache tiene miembros hispanohablantes: es completamente aceptable crear `issues` y `pull requests` en español/castellano. - -Todos los participantes en este proyecto deben obedecer el [Código de Conducta](CODE_OF_CONDUCT.md) (en inglés), y en general actuar de forma amable y respetuosa mientras participan en esta comunidad. - -Por favor refiérase al [Historial de Cambios](CHANGELOG.md) (en inglés) para detalles sobre cambios importantes incluídos en cada versión. - -Finalmente, cacache tiene un sistema de localización de lenguaje. Si te interesa añadir lenguajes o mejorar los que existen, mira en el directorio `./locales` para comenzar. - -Happy hacking! - -### API - -#### Usando el API en español - -cacache incluye una traducción completa de su API al castellano, con las mismas -características. Para usar el API como está documentado en este documento, usa -`require('cacache/es')` - -cacache también tiene otros lenguajes: encuéntralos bajo `./locales`, y podrás -usar el API en ese lenguaje con `require('cacache/')` - -#### `> cacache.ls(cache) -> Promise` - -Enumera todas las entradas en el caché, dentro de un solo objeto. Cada entrada -en el objeto tendrá como clave la clave única usada para el índice, el valor -siendo un objeto de [`saca.info`](#get-info). - -##### Ejemplo - -```javascript -cacache.ls(rutaCache).then(console.log) -// Salida -{ - 'my-thing': { - key: 'my-thing', - integrity: 'sha512-BaSe64/EnCoDED+HAsh==' - path: '.testcache/content/deadbeef', // unido con `rutaCache` - time: 12345698490, - size: 4023948, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } - }, - 'other-thing': { - key: 'other-thing', - integrity: 'sha1-ANothER+hasH=', - path: '.testcache/content/bada55', - time: 11992309289, - size: 111112 - } -} -``` - -#### `> cacache.ls.flujo(cache) -> Readable` - -Enumera todas las entradas en el caché, emitiendo un objeto de -[`saca.info`](#get-info) por cada evento de `data` en el flujo. - -##### Ejemplo - -```javascript -cacache.ls.flujo(rutaCache).on('data', console.log) -// Salida -{ - key: 'my-thing', - integrity: 'sha512-BaSe64HaSh', - path: '.testcache/content/deadbeef', // unido con `rutaCache` - time: 12345698490, - size: 13423, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} - -{ - key: 'other-thing', - integrity: 'whirlpool-WoWSoMuchSupport', - path: '.testcache/content/bada55', - time: 11992309289, - size: 498023984029 -} - -{ - ... -} -``` - -#### `> cacache.saca(cache, clave, [ops]) -> Promise({data, metadata, integrity})` - -Devuelve un objeto con los datos, hacheo de integridad y metadatos identificados -por la `clave`. La propiedad `data` de este objeto será una instancia de -`Buffer` con los datos almacenados en el caché. to do with it! cacache just -won't care. - -`integrity` es un `string` de [Subresource Integrity](#integrity). Dígase, un -`string` que puede ser usado para verificar a la `data`, que tiene como formato -`-`. - -So no existe ninguna entrada identificada por `clave`, o se los datos -almacenados localmente fallan verificación, el `Promise` fallará. - -Una sub-función, `saca.porHacheo`, tiene casi el mismo comportamiento, excepto -que busca entradas usando el hacheo de integridad, sin tocar el índice general. -Esta versión *sólo* devuelve `data`, sin ningún objeto conteniéndola. - -##### Nota - -Esta función lee la entrada completa a la memoria antes de devolverla. Si estás -almacenando datos Muy Grandes, es posible que [`saca.flujo`](#get-stream) sea -una mejor solución. - -##### Ejemplo - -```javascript -// Busca por clave -cache.saca(rutaCache, 'my-thing').then(console.log) -// Salida: -{ - metadata: { - thingName: 'my' - }, - integrity: 'sha512-BaSe64HaSh', - data: Buffer#, - size: 9320 -} - -// Busca por hacheo -cache.saca.porHacheo(rutaCache, 'sha512-BaSe64HaSh').then(console.log) -// Salida: -Buffer# -``` - -#### `> cacache.saca.flujo(cache, clave, [ops]) -> Readable` - -Devuelve un [Readable -Stream](https://nodejs.org/api/stream.html#stream_readable_streams) de los datos -almacenados bajo `clave`. - -So no existe ninguna entrada identificada por `clave`, o se los datos -almacenados localmente fallan verificación, el `Promise` fallará. - -`metadata` y `integrity` serán emitidos como eventos antes de que el flujo -cierre. - -Una sub-función, `saca.flujo.porHacheo`, tiene casi el mismo comportamiento, -excepto que busca entradas usando el hacheo de integridad, sin tocar el índice -general. Esta versión no emite eventos de `metadata` o `integrity`. - -##### Ejemplo - -```javascript -// Busca por clave -cache.saca.flujo( - rutaCache, 'my-thing' -).on('metadata', metadata => { - console.log('metadata:', metadata) -}).on('integrity', integrity => { - console.log('integrity:', integrity) -}).pipe( - fs.createWriteStream('./x.tgz') -) -// Salidas: -metadata: { ... } -integrity: 'sha512-SoMeDIGest+64==' - -// Busca por hacheo -cache.saca.flujo.porHacheo( - rutaCache, 'sha512-SoMeDIGest+64==' -).pipe( - fs.createWriteStream('./x.tgz') -) -``` - -#### `> cacache.saca.info(cache, clave) -> Promise` - -Busca la `clave` en el índice del caché, devolviendo información sobre la -entrada si existe. - -##### Campos - -* `key` - Clave de la entrada. Igual al argumento `clave`. -* `integrity` - [hacheo de Subresource Integrity](#integrity) del contenido al que se refiere esta entrada. -* `path` - Dirección del fichero de datos almacenados, relativa al argumento `cache`. -* `time` - Hora de creación de la entrada -* `metadata` - Metadatos asignados a esta entrada por el usuario - -##### Ejemplo - -```javascript -cacache.saca.info(rutaCache, 'my-thing').then(console.log) - -// Salida -{ - key: 'my-thing', - integrity: 'sha256-MUSTVERIFY+ALL/THINGS==' - path: '.testcache/content/deadbeef', - time: 12345698490, - size: 849234, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} -``` - -#### `> cacache.saca.tieneDatos(cache, integrity) -> Promise` - -Busca un [hacheo Subresource Integrity](#integrity) en el caché. Si existe el -contenido asociado con `integrity`, devuelve un objeto con dos campos: el hacheo -_específico_ que se usó para la búsqueda, `sri`, y el tamaño total del -contenido, `size`. Si no existe ningún contenido asociado con `integrity`, -devuelve `false`. - -##### Ejemplo - -```javascript -cacache.saca.tieneDatos(rutaCache, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log) - -// Salida -{ - sri: { - source: 'sha256-MUSTVERIFY+ALL/THINGS==', - algorithm: 'sha256', - digest: 'MUSTVERIFY+ALL/THINGS==', - options: [] - }, - size: 9001 -} - -cacache.saca.tieneDatos(rutaCache, 'sha521-NOT+IN/CACHE==').then(console.log) - -// Salida -false -``` - -#### `> cacache.mete(cache, clave, datos, [ops]) -> Promise` - -Inserta `datos` en el caché. El `Promise` devuelto se resuelve con un hacheo -(generado conforme a [`ops.algorithms`](#optsalgorithms)) después que la entrada -haya sido escrita en completo. - -##### Ejemplo - -```javascript -fetch( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).then(datos => { - return cacache.mete(rutaCache, 'registry.npmjs.org|cacache@1.0.0', datos) -}).then(integridad => { - console.log('el hacheo de integridad es', integridad) -}) -``` - -#### `> cacache.mete.flujo(cache, clave, [ops]) -> Writable` - -Devuelve un [Writable -Stream](https://nodejs.org/api/stream.html#stream_writable_streams) que inserta -al caché los datos escritos a él. Emite un evento `integrity` con el hacheo del -contenido escrito, cuando completa. - -##### Ejemplo - -```javascript -request.get( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).pipe( - cacache.mete.flujo( - rutaCache, 'registry.npmjs.org|cacache@1.0.0' - ).on('integrity', d => console.log(`integrity digest is ${d}`)) -) -``` - -#### `> opciones para cacache.mete` - -La funciones `cacache.mete` tienen un número de opciones en común. - -##### `ops.metadata` - -Metadatos del usuario que se almacenarán con la entrada. - -##### `ops.size` - -El tamaño declarado de los datos que se van a insertar. Si es proveído, cacache -verificará que los datos escritos sean de ese tamaño, o si no, fallará con un -error con código `EBADSIZE`. - -##### `ops.integrity` - -El hacheo de integridad de los datos siendo escritos. - -Si es proveído, y los datos escritos no le corresponden, la operación fallará -con un error con código `EINTEGRITY`. - -`ops.algorithms` no tiene ningún efecto si esta opción está presente. - -##### `ops.algorithms` - -Por Defecto: `['sha512']` - -Algoritmos que se deben usar cuando se calcule el hacheo de [subresource -integrity](#integrity) para los datos insertados. Puede usar cualquier algoritmo -enumerado en `crypto.getHashes()`. - -Por el momento, sólo se acepta un algoritmo (dígase, un array con exáctamente un -valor). No tiene ningún efecto si `ops.integrity` también ha sido proveido. - -##### `ops.uid`/`ops.gid` - -Si están presentes, cacache hará todo lo posible para asegurarse que todos los -ficheros creados en el proceso de sus operaciones en el caché usen esta -combinación en particular. - -##### `ops.memoize` - -Por Defecto: `null` - -Si es verdad, cacache tratará de memoizar los datos de la entrada en memoria. La -próxima vez que el proceso corriente trate de accesar los datos o entrada, -cacache buscará en memoria antes de buscar en disco. - -Si `ops.memoize` es un objeto regular o un objeto como `Map` (es decir, un -objeto con métodos `get()` y `set()`), este objeto en sí sera usado en vez del -caché de memoria global. Esto permite tener lógica específica a tu aplicación -encuanto al almacenaje en memoria de tus datos. - -Si quieres asegurarte que los datos se lean del disco en vez de memoria, usa -`memoize: false` cuando uses funciones de `cacache.saca`. - -#### `> cacache.rm.todo(cache) -> Promise` - -Borra el caché completo, incluyendo ficheros temporeros, ficheros de datos, y el -índice del caché. - -##### Ejemplo - -```javascript -cacache.rm.todo(rutaCache).then(() => { - console.log('THE APOCALYPSE IS UPON US 😱') -}) -``` - -#### `> cacache.rm.entrada(cache, clave) -> Promise` - -Alias: `cacache.rm` - -Borra la entrada `clave` del índuce. El contenido asociado con esta entrada -seguirá siendo accesible por hacheo usando -[`saca.flujo.porHacheo`](#get-stream). - -Para borrar el contenido en sí, usa [`rm.datos`](#rm-content). Si quieres hacer -esto de manera más segura (pues ficheros de contenido pueden ser usados por -multiples entradas), usa [`verifica`](#verify) para borrar huérfanos. - -##### Ejemplo - -```javascript -cacache.rm.entrada(rutaCache, 'my-thing').then(() => { - console.log('I did not like it anyway') -}) -``` - -#### `> cacache.rm.datos(cache, integrity) -> Promise` - -Borra el contenido identificado por `integrity`. Cualquier entrada que se -refiera a este contenido quedarán huérfanas y se invalidarán si se tratan de -accesar, al menos que contenido idéntico sea añadido bajo `integrity`. - -##### Ejemplo - -```javascript -cacache.rm.datos(rutaCache, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => { - console.log('los datos para `mi-cosa` se borraron') -}) -``` - -#### `> cacache.ponLenguaje(locale)` - -Configura el lenguaje usado para mensajes y errores de cacache. La lista de -lenguajes disponibles está en el directorio `./locales` del proyecto. - -_Te interesa añadir más lenguajes? [Somete un PR](CONTRIBUTING.md)!_ - -#### `> cacache.limpiaMemoizado()` - -Completamente reinicializa el caché de memoria interno. Si estás usando tu -propio objecto con `ops.memoize`, debes hacer esto de manera específica a él. - -#### `> tmp.hazdir(cache, ops) -> Promise` - -Alias: `tmp.mkdir` - -Devuelve un directorio único dentro del directorio `tmp` del caché. - -Una vez tengas el directorio, es responsabilidad tuya asegurarte que todos los -ficheros escrito a él sean creados usando los permisos y `uid`/`gid` concordante -con el caché. Si no, puedes pedirle a cacache que lo haga llamando a -[`cacache.tmp.fix()`](#tmp-fix). Esta función arreglará todos los permisos en el -directorio tmp. - -Si quieres que cacache limpie el directorio automáticamente cuando termines, usa -[`cacache.tmp.conTmp()`](#with-tpm). - -##### Ejemplo - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}) -``` - -#### `> tmp.conTmp(cache, ops, cb) -> Promise` - -Crea un directorio temporero con [`tmp.mkdir()`](#tmp-mkdir) y ejecuta `cb` con -él como primer argumento. El directorio creado será removido automáticamente -cuando el valor devolvido por `cb()` se resuelva. - -Las mismas advertencias aplican en cuanto a manejando permisos para los ficheros -dentro del directorio. - -##### Ejemplo - -```javascript -cacache.tmp.conTmp(cache, dir => { - return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}).then(() => { - // `dir` no longer exists -}) -``` - -#### Hacheos de Subresource Integrity - -cacache usa strings que siguen la especificación de [Subresource Integrity -spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). - -Es decir, donde quiera cacache espera un argumento o opción `integrity`, ese -string debería usar el formato `-`. - -Una variación importante sobre los hacheos que cacache acepta es que acepta el -nombre de cualquier algoritmo aceptado por el proceso de Node.js donde se usa. -Puedes usar `crypto.getHashes()` para ver cuales están disponibles. - -##### Generando tus propios hacheos - -Si tienes un `shasum`, en general va a estar en formato de string hexadecimal -(es decir, un `sha1` se vería como algo así: -`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). - -Para ser compatible con cacache, necesitas convertir esto a su equivalente en -subresource integrity. Por ejemplo, el hacheo correspondiente al ejemplo -anterior sería: `sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`. - -Puedes usar código así para generarlo por tu cuenta: - -```javascript -const crypto = require('crypto') -const algoritmo = 'sha512' -const datos = 'foobarbaz' - -const integrity = ( - algorithm + - '-' + - crypto.createHash(algoritmo).update(datos).digest('base64') -) -``` - -También puedes usar [`ssri`](https://npm.im/ssri) para deferir el trabajo a otra -librería que garantiza que todo esté correcto, pues maneja probablemente todas -las operaciones que tendrías que hacer con SRIs, incluyendo convirtiendo entre -hexadecimal y el formato SRI. - -#### `> cacache.verifica(cache, ops) -> Promise` - -Examina y arregla tu caché: - -* Limpia entradas inválidas, huérfanas y corrompidas -* Te deja filtrar cuales entradas retener, con tu propio filtro -* Reclama cualquier ficheros de contenido sin referencias en el índice -* Verifica integridad de todos los ficheros de contenido y remueve los malos -* Arregla permisos del caché -* Remieve el directorio `tmp` en el caché, y todo su contenido. - -Cuando termine, devuelve un objeto con varias estadísticas sobre el proceso de -verificación, por ejemplo la cantidad de espacio de disco reclamado, el número -de entradas válidas, número de entradas removidas, etc. - -##### Opciones - -* `ops.uid` - uid para asignarle al caché y su contenido -* `ops.gid` - gid para asignarle al caché y su contenido -* `ops.filter` - recibe una entrada como argumento. Devuelve falso para removerla. Nota: es posible que esta función sea invocada con la misma entrada más de una vez. - -##### Example - -```sh -echo somegarbage >> $RUTACACHE/content/deadbeef -``` - -```javascript -cacache.verifica(rutaCache).then(stats => { - // deadbeef collected, because of invalid checksum. - console.log('cache is much nicer now! stats:', stats) -}) -``` - -#### `> cacache.verifica.ultimaVez(cache) -> Promise` - -Alias: `últimaVez` - -Devuelve un `Date` que representa la última vez que `cacache.verifica` fue -ejecutada en `cache`. - -##### Example - -```javascript -cacache.verifica(rutaCache).then(() => { - cacache.verifica.ultimaVez(rutaCache).then(última => { - console.log('La última vez que se usó cacache.verifica() fue ' + última) - }) -}) -``` diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/README.md b/node_modules/npm-registry-fetch/node_modules/cacache/README.md deleted file mode 100644 index 4b284588a65aa..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/README.md +++ /dev/null @@ -1,624 +0,0 @@ -# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest) - -[`cacache`](https://github.com/zkat/cacache) is a Node.js library for managing -local key and content address caches. It's really fast, really good at -concurrency, and it will never give you corrupted data, even if cache files -get corrupted or manipulated. - -It was originally written to be used as [npm](https://npm.im)'s local cache, but -can just as easily be used on its own. - -_Translations: [español](README.es.md)_ - -## Install - -`$ npm install --save cacache` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [Using localized APIs](#localized-api) - * Reading - * [`ls`](#ls) - * [`ls.stream`](#ls-stream) - * [`get`](#get-data) - * [`get.stream`](#get-stream) - * [`get.info`](#get-info) - * [`get.hasContent`](#get-hasContent) - * Writing - * [`put`](#put-data) - * [`put.stream`](#put-stream) - * [`put*` opts](#put-options) - * [`rm.all`](#rm-all) - * [`rm.entry`](#rm-entry) - * [`rm.content`](#rm-content) - * Utilities - * [`setLocale`](#set-locale) - * [`clearMemoized`](#clear-memoized) - * [`tmp.mkdir`](#tmp-mkdir) - * [`tmp.withTmp`](#with-tmp) - * Integrity - * [Subresource Integrity](#integrity) - * [`verify`](#verify) - * [`verify.lastRun`](#verify-last-run) - -### Example - -```javascript -const cacache = require('cacache/en') -const fs = require('fs') - -const tarball = '/path/to/mytar.tgz' -const cachePath = '/tmp/my-toy-cache' -const key = 'my-unique-key-1234' - -// Cache it! Use `cachePath` as the root of the content cache -cacache.put(cachePath, key, '10293801983029384').then(integrity => { - console.log(`Saved content to ${cachePath}.`) -}) - -const destination = '/tmp/mytar.tgz' - -// Copy the contents out of the cache and into their destination! -// But this time, use stream instead! -cacache.get.stream( - cachePath, key -).pipe( - fs.createWriteStream(destination) -).on('finish', () => { - console.log('done extracting!') -}) - -// The same thing, but skip the key index. -cacache.get.byDigest(cachePath, integrityHash).then(data => { - fs.writeFile(destination, data, err => { - console.log('tarball data fetched based on its sha512sum and written out!') - }) -}) -``` - -### Features - -* Extraction by key or by content address (shasum, etc) -* [Subresource Integrity](#integrity) web standard support -* Multi-hash support - safely host sha1, sha512, etc, in a single cache -* Automatic content deduplication -* Fault tolerance (immune to corruption, partial writes, process races, etc) -* Consistency guarantees on read and write (full data verification) -* Lockless, high-concurrency cache access -* Streaming support -* Promise support -* Pretty darn fast -- sub-millisecond reads and writes including verification -* Arbitrary metadata storage -* Garbage collection and additional offline verification -* Thorough test coverage -* There's probably a bloom filter in there somewhere. Those are cool, right? 🤔 - -### Contributing - -The cacache team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear. - -All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other. - -Please refer to the [Changelog](CHANGELOG.md) for project history details, too. - -Happy hacking! - -### API - -#### Using localized APIs - -cacache includes a complete API in English, with the same features as other -translations. To use the English API as documented in this README, use -`require('cacache/en')`. This is also currently the default if you do -`require('cacache')`, but may change in the future. - -cacache also supports other languages! You can find the list of currently -supported ones by looking in `./locales` in the source directory. You can use -the API in that language with `require('cacache/')`. - -Want to add support for a new language? Please go ahead! You should be able to -copy `./locales/en.js` and `./locales/en.json` and fill them in. Translating the -`README.md` is a bit more work, but also appreciated if you get around to it. 👍🏼 - -#### `> cacache.ls(cache) -> Promise` - -Lists info for all entries currently in the cache as a single large object. Each -entry in the object will be keyed by the unique index key, with corresponding -[`get.info`](#get-info) objects as the values. - -##### Example - -```javascript -cacache.ls(cachePath).then(console.log) -// Output -{ - 'my-thing': { - key: 'my-thing', - integrity: 'sha512-BaSe64/EnCoDED+HAsh==' - path: '.testcache/content/deadbeef', // joined with `cachePath` - time: 12345698490, - size: 4023948, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } - }, - 'other-thing': { - key: 'other-thing', - integrity: 'sha1-ANothER+hasH=', - path: '.testcache/content/bada55', - time: 11992309289, - size: 111112 - } -} -``` - -#### `> cacache.ls.stream(cache) -> Readable` - -Lists info for all entries currently in the cache as a single large object. - -This works just like [`ls`](#ls), except [`get.info`](#get-info) entries are -returned as `'data'` events on the returned stream. - -##### Example - -```javascript -cacache.ls.stream(cachePath).on('data', console.log) -// Output -{ - key: 'my-thing', - integrity: 'sha512-BaSe64HaSh', - path: '.testcache/content/deadbeef', // joined with `cachePath` - time: 12345698490, - size: 13423, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} - -{ - key: 'other-thing', - integrity: 'whirlpool-WoWSoMuchSupport', - path: '.testcache/content/bada55', - time: 11992309289, - size: 498023984029 -} - -{ - ... -} -``` - -#### `> cacache.get(cache, key, [opts]) -> Promise({data, metadata, integrity})` - -Returns an object with the cached data, digest, and metadata identified by -`key`. The `data` property of this object will be a `Buffer` instance that -presumably holds some data that means something to you. I'm sure you know what -to do with it! cacache just won't care. - -`integrity` is a [Subresource -Integrity](#integrity) -string. That is, a string that can be used to verify `data`, which looks like -`-`. - -If there is no content identified by `key`, or if the locally-stored data does -not pass the validity checksum, the promise will be rejected. - -A sub-function, `get.byDigest` may be used for identical behavior, except lookup -will happen by integrity hash, bypassing the index entirely. This version of the -function *only* returns `data` itself, without any wrapper. - -##### Note - -This function loads the entire cache entry into memory before returning it. If -you're dealing with Very Large data, consider using [`get.stream`](#get-stream) -instead. - -##### Example - -```javascript -// Look up by key -cache.get(cachePath, 'my-thing').then(console.log) -// Output: -{ - metadata: { - thingName: 'my' - }, - integrity: 'sha512-BaSe64HaSh', - data: Buffer#, - size: 9320 -} - -// Look up by digest -cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log) -// Output: -Buffer# -``` - -#### `> cacache.get.stream(cache, key, [opts]) -> Readable` - -Returns a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) of the cached data identified by `key`. - -If there is no content identified by `key`, or if the locally-stored data does -not pass the validity checksum, an error will be emitted. - -`metadata` and `integrity` events will be emitted before the stream closes, if -you need to collect that extra data about the cached entry. - -A sub-function, `get.stream.byDigest` may be used for identical behavior, -except lookup will happen by integrity hash, bypassing the index entirely. This -version does not emit the `metadata` and `integrity` events at all. - -##### Example - -```javascript -// Look up by key -cache.get.stream( - cachePath, 'my-thing' -).on('metadata', metadata => { - console.log('metadata:', metadata) -}).on('integrity', integrity => { - console.log('integrity:', integrity) -}).pipe( - fs.createWriteStream('./x.tgz') -) -// Outputs: -metadata: { ... } -integrity: 'sha512-SoMeDIGest+64==' - -// Look up by digest -cache.get.stream.byDigest( - cachePath, 'sha512-SoMeDIGest+64==' -).pipe( - fs.createWriteStream('./x.tgz') -) -``` - -#### `> cacache.get.info(cache, key) -> Promise` - -Looks up `key` in the cache index, returning information about the entry if -one exists. - -##### Fields - -* `key` - Key the entry was looked up under. Matches the `key` argument. -* `integrity` - [Subresource Integrity hash](#integrity) for the content this entry refers to. -* `path` - Filesystem path relative to `cache` argument where content is stored. -* `time` - Timestamp the entry was first added on. -* `metadata` - User-assigned metadata associated with the entry/content. - -##### Example - -```javascript -cacache.get.info(cachePath, 'my-thing').then(console.log) - -// Output -{ - key: 'my-thing', - integrity: 'sha256-MUSTVERIFY+ALL/THINGS==' - path: '.testcache/content/deadbeef', - time: 12345698490, - size: 849234, - metadata: { - name: 'blah', - version: '1.2.3', - description: 'this was once a package but now it is my-thing' - } -} -``` - -#### `> cacache.get.hasContent(cache, integrity) -> Promise` - -Looks up a [Subresource Integrity hash](#integrity) in the cache. If content -exists for this `integrity`, it will return an object, with the specific single integrity hash -that was found in `sri` key, and the size of the found content as `size`. If no content exists for this integrity, it will return `false`. - -##### Example - -```javascript -cacache.get.hasContent(cachePath, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log) - -// Output -{ - sri: { - source: 'sha256-MUSTVERIFY+ALL/THINGS==', - algorithm: 'sha256', - digest: 'MUSTVERIFY+ALL/THINGS==', - options: [] - }, - size: 9001 -} - -cacache.get.hasContent(cachePath, 'sha521-NOT+IN/CACHE==').then(console.log) - -// Output -false -``` - -#### `> cacache.put(cache, key, data, [opts]) -> Promise` - -Inserts data passed to it into the cache. The returned Promise resolves with a -digest (generated according to [`opts.algorithms`](#optsalgorithms)) after the -cache entry has been successfully written. - -##### Example - -```javascript -fetch( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).then(data => { - return cacache.put(cachePath, 'registry.npmjs.org|cacache@1.0.0', data) -}).then(integrity => { - console.log('integrity hash is', integrity) -}) -``` - -#### `> cacache.put.stream(cache, key, [opts]) -> Writable` - -Returns a [Writable -Stream](https://nodejs.org/api/stream.html#stream_writable_streams) that inserts -data written to it into the cache. Emits an `integrity` event with the digest of -written contents when it succeeds. - -##### Example - -```javascript -request.get( - 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz' -).pipe( - cacache.put.stream( - cachePath, 'registry.npmjs.org|cacache@1.0.0' - ).on('integrity', d => console.log(`integrity digest is ${d}`)) -) -``` - -#### `> cacache.put options` - -`cacache.put` functions have a number of options in common. - -##### `opts.metadata` - -Arbitrary metadata to be attached to the inserted key. - -##### `opts.size` - -If provided, the data stream will be verified to check that enough data was -passed through. If there's more or less data than expected, insertion will fail -with an `EBADSIZE` error. - -##### `opts.integrity` - -If present, the pre-calculated digest for the inserted content. If this option -if provided and does not match the post-insertion digest, insertion will fail -with an `EINTEGRITY` error. - -`algorithms` has no effect if this option is present. - -##### `opts.algorithms` - -Default: ['sha512'] - -Hashing algorithms to use when calculating the [subresource integrity -digest](#integrity) -for inserted data. Can use any algorithm listed in `crypto.getHashes()` or -`'omakase'`/`'お任せします'` to pick a random hash algorithm on each insertion. You -may also use any anagram of `'modnar'` to use this feature. - -Currently only supports one algorithm at a time (i.e., an array length of -exactly `1`). Has no effect if `opts.integrity` is present. - -##### `opts.uid`/`opts.gid` - -If provided, cacache will do its best to make sure any new files added to the -cache use this particular `uid`/`gid` combination. This can be used, -for example, to drop permissions when someone uses `sudo`, but cacache makes -no assumptions about your needs here. - -##### `opts.memoize` - -Default: null - -If provided, cacache will memoize the given cache insertion in memory, bypassing -any filesystem checks for that key or digest in future cache fetches. Nothing -will be written to the in-memory cache unless this option is explicitly truthy. - -If `opts.memoize` is an object or a `Map`-like (that is, an object with `get` -and `set` methods), it will be written to instead of the global memoization -cache. - -Reading from disk data can be forced by explicitly passing `memoize: false` to -the reader functions, but their default will be to read from memory. - -#### `> cacache.rm.all(cache) -> Promise` - -Clears the entire cache. Mainly by blowing away the cache directory itself. - -##### Example - -```javascript -cacache.rm.all(cachePath).then(() => { - console.log('THE APOCALYPSE IS UPON US 😱') -}) -``` - -#### `> cacache.rm.entry(cache, key) -> Promise` - -Alias: `cacache.rm` - -Removes the index entry for `key`. Content will still be accessible if -requested directly by content address ([`get.stream.byDigest`](#get-stream)). - -To remove the content itself (which might still be used by other entries), use -[`rm.content`](#rm-content). Or, to safely vacuum any unused content, use -[`verify`](#verify). - -##### Example - -```javascript -cacache.rm.entry(cachePath, 'my-thing').then(() => { - console.log('I did not like it anyway') -}) -``` - -#### `> cacache.rm.content(cache, integrity) -> Promise` - -Removes the content identified by `integrity`. Any index entries referring to it -will not be usable again until the content is re-added to the cache with an -identical digest. - -##### Example - -```javascript -cacache.rm.content(cachePath, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => { - console.log('data for my-thing is gone!') -}) -``` - -#### `> cacache.setLocale(locale)` - -Configure the language/locale used for messages and errors coming from cacache. -The list of available locales is in the `./locales` directory in the project -root. - -_Interested in contributing more languages! [Submit a PR](CONTRIBUTING.md)!_ - -#### `> cacache.clearMemoized()` - -Completely resets the in-memory entry cache. - -#### `> tmp.mkdir(cache, opts) -> Promise` - -Returns a unique temporary directory inside the cache's `tmp` dir. This -directory will use the same safe user assignment that all the other stuff use. - -Once the directory is made, it's the user's responsibility that all files within -are made according to the same `opts.gid`/`opts.uid` settings that would be -passed in. If not, you can ask cacache to do it for you by calling -[`tmp.fix()`](#tmp-fix), which will fix all tmp directory permissions. - -If you want automatic cleanup of this directory, use -[`tmp.withTmp()`](#with-tpm) - -##### Example - -```javascript -cacache.tmp.mkdir(cache).then(dir => { - fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}) -``` - -#### `> tmp.withTmp(cache, opts, cb) -> Promise` - -Creates a temporary directory with [`tmp.mkdir()`](#tmp-mkdir) and calls `cb` -with it. The created temporary directory will be removed when the return value -of `cb()` resolves -- that is, if you return a Promise from `cb()`, the tmp -directory will be automatically deleted once that promise completes. - -The same caveats apply when it comes to managing permissions for the tmp dir's -contents. - -##### Example - -```javascript -cacache.tmp.withTmp(cache, dir => { - return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...) -}).then(() => { - // `dir` no longer exists -}) -``` - -#### Subresource Integrity Digests - -For content verification and addressing, cacache uses strings following the -[Subresource -Integrity spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). -That is, any time cacache expects an `integrity` argument or option, it -should be in the format `-`. - -One deviation from the current spec is that cacache will support any hash -algorithms supported by the underlying Node.js process. You can use -`crypto.getHashes()` to see which ones you can use. - -##### Generating Digests Yourself - -If you have an existing content shasum, they are generally formatted as a -hexadecimal string (that is, a sha1 would look like: -`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). In order to be compatible with -cacache, you'll need to convert this to an equivalent subresource integrity -string. For this example, the corresponding hash would be: -`sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`. - -If you want to generate an integrity string yourself for existing data, you can -use something like this: - -```javascript -const crypto = require('crypto') -const hashAlgorithm = 'sha512' -const data = 'foobarbaz' - -const integrity = ( - hashAlgorithm + - '-' + - crypto.createHash(hashAlgorithm).update(data).digest('base64') -) -``` - -You can also use [`ssri`](https://npm.im/ssri) to have a richer set of functionality -around SRI strings, including generation, parsing, and translating from existing -hex-formatted strings. - -#### `> cacache.verify(cache, opts) -> Promise` - -Checks out and fixes up your cache: - -* Cleans up corrupted or invalid index entries. -* Custom entry filtering options. -* Garbage collects any content entries not referenced by the index. -* Checks integrity for all content entries and removes invalid content. -* Fixes cache ownership. -* Removes the `tmp` directory in the cache and all its contents. - -When it's done, it'll return an object with various stats about the verification -process, including amount of storage reclaimed, number of valid entries, number -of entries removed, etc. - -##### Options - -* `opts.uid` - uid to assign to cache and its contents -* `opts.gid` - gid to assign to cache and its contents -* `opts.filter` - receives a formatted entry. Return false to remove it. - Note: might be called more than once on the same entry. - -##### Example - -```sh -echo somegarbage >> $CACHEPATH/content/deadbeef -``` - -```javascript -cacache.verify(cachePath).then(stats => { - // deadbeef collected, because of invalid checksum. - console.log('cache is much nicer now! stats:', stats) -}) -``` - -#### `> cacache.verify.lastRun(cache) -> Promise` - -Returns a `Date` representing the last time `cacache.verify` was run on `cache`. - -##### Example - -```javascript -cacache.verify(cachePath).then(() => { - cacache.verify.lastRun(cachePath).then(lastTime => { - console.log('cacache.verify was last called on' + lastTime) - }) -}) -``` diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/en.js b/node_modules/npm-registry-fetch/node_modules/cacache/en.js deleted file mode 100644 index a3db581c9f1fa..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/en.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/en.js') diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/es.js b/node_modules/npm-registry-fetch/node_modules/cacache/es.js deleted file mode 100644 index 6282363c3bdbf..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/es.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/es.js') diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/get.js b/node_modules/npm-registry-fetch/node_modules/cacache/get.js deleted file mode 100644 index 2bb3afa5281ca..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/get.js +++ /dev/null @@ -1,190 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const fs = require('fs') -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const pipe = require('mississippi').pipe -const pipeline = require('mississippi').pipeline -const read = require('./lib/content/read') -const through = require('mississippi').through - -module.exports = function get (cache, key, opts) { - return getData(false, cache, key, opts) -} -module.exports.byDigest = function getByDigest (cache, digest, opts) { - return getData(true, cache, digest, opts) -} -function getData (byDigest, cache, key, opts) { - opts = opts || {} - const memoized = ( - byDigest - ? memo.get.byDigest(cache, key, opts) - : memo.get(cache, key, opts) - ) - if (memoized && opts.memoize !== false) { - return BB.resolve(byDigest ? memoized : { - metadata: memoized.entry.metadata, - data: memoized.data, - integrity: memoized.entry.integrity, - size: memoized.entry.size - }) - } - return ( - byDigest ? BB.resolve(null) : index.find(cache, key, opts) - ).then(entry => { - if (!entry && !byDigest) { - throw new index.NotFoundError(cache, key) - } - return read(cache, byDigest ? key : entry.integrity, { - integrity: opts.integrity, - size: opts.size - }).then(data => byDigest ? data : { - metadata: entry.metadata, - data: data, - size: entry.size, - integrity: entry.integrity - }).then(res => { - if (opts.memoize && byDigest) { - memo.put.byDigest(cache, key, res, opts) - } else if (opts.memoize) { - memo.put(cache, entry, res.data, opts) - } - return res - }) - }) -} - -module.exports.stream = getStream -function getStream (cache, key, opts) { - opts = opts || {} - let stream = through() - const memoized = memo.get(cache, key, opts) - if (memoized && opts.memoize !== false) { - stream.on('newListener', function (ev, cb) { - ev === 'metadata' && cb(memoized.entry.metadata) - ev === 'integrity' && cb(memoized.entry.integrity) - ev === 'size' && cb(memoized.entry.size) - }) - stream.write(memoized.data, () => stream.end()) - return stream - } - index.find(cache, key).then(entry => { - if (!entry) { - return stream.emit( - 'error', new index.NotFoundError(cache, key) - ) - } - let memoStream - if (opts.memoize) { - let memoData = [] - let memoLength = 0 - memoStream = through((c, en, cb) => { - memoData && memoData.push(c) - memoLength += c.length - cb(null, c, en) - }, cb => { - memoData && memo.put(cache, entry, Buffer.concat(memoData, memoLength), opts) - cb() - }) - } else { - memoStream = through() - } - opts.size = opts.size == null ? entry.size : opts.size - stream.emit('metadata', entry.metadata) - stream.emit('integrity', entry.integrity) - stream.emit('size', entry.size) - stream.on('newListener', function (ev, cb) { - ev === 'metadata' && cb(entry.metadata) - ev === 'integrity' && cb(entry.integrity) - ev === 'size' && cb(entry.size) - }) - pipe( - read.readStream(cache, entry.integrity, opts), - memoStream, - stream - ) - }, err => stream.emit('error', err)) - return stream -} - -module.exports.stream.byDigest = getStreamDigest -function getStreamDigest (cache, integrity, opts) { - opts = opts || {} - const memoized = memo.get.byDigest(cache, integrity, opts) - if (memoized && opts.memoize !== false) { - const stream = through() - stream.write(memoized, () => stream.end()) - return stream - } else { - let stream = read.readStream(cache, integrity, opts) - if (opts.memoize) { - let memoData = [] - let memoLength = 0 - const memoStream = through((c, en, cb) => { - memoData && memoData.push(c) - memoLength += c.length - cb(null, c, en) - }, cb => { - memoData && memo.put.byDigest( - cache, - integrity, - Buffer.concat(memoData, memoLength), - opts - ) - cb() - }) - stream = pipeline(stream, memoStream) - } - return stream - } -} - -module.exports.info = info -function info (cache, key, opts) { - opts = opts || {} - const memoized = memo.get(cache, key, opts) - if (memoized && opts.memoize !== false) { - return BB.resolve(memoized.entry) - } else { - return index.find(cache, key) - } -} - -module.exports.hasContent = read.hasContent - -module.exports.copy = function cp (cache, key, dest, opts) { - return copy(false, cache, key, dest, opts) -} -module.exports.copy.byDigest = function cpDigest (cache, digest, dest, opts) { - return copy(true, cache, digest, dest, opts) -} -function copy (byDigest, cache, key, dest, opts) { - opts = opts || {} - if (read.copy) { - return ( - byDigest ? BB.resolve(null) : index.find(cache, key, opts) - ).then(entry => { - if (!entry && !byDigest) { - throw new index.NotFoundError(cache, key) - } - return read.copy( - cache, byDigest ? key : entry.integrity, dest, opts - ).then(() => byDigest ? key : { - metadata: entry.metadata, - size: entry.size, - integrity: entry.integrity - }) - }) - } else { - return getData(byDigest, cache, key, opts).then(res => { - return fs.writeFileAsync(dest, byDigest ? res : res.data) - .then(() => byDigest ? key : { - metadata: res.metadata, - size: res.size, - integrity: res.integrity - }) - }) - } -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/index.js b/node_modules/npm-registry-fetch/node_modules/cacache/index.js deleted file mode 100644 index a3db581c9f1fa..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./locales/en.js') diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js deleted file mode 100644 index fa6491ba6f895..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' - -const contentVer = require('../../package.json')['cache-version'].content -const hashToSegments = require('../util/hash-to-segments') -const path = require('path') -const ssri = require('ssri') - -// Current format of content file path: -// -// sha512-BaSE64Hex= -> -// ~/.my-cache/content-v2/sha512/ba/da/55deadbeefc0ffee -// -module.exports = contentPath -function contentPath (cache, integrity) { - const sri = ssri.parse(integrity, {single: true}) - // contentPath is the *strongest* algo given - return path.join.apply(path, [ - contentDir(cache), - sri.algorithm - ].concat(hashToSegments(sri.hexDigest()))) -} - -module.exports._contentDir = contentDir -function contentDir (cache) { - return path.join(cache, `content-v${contentVer}`) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js deleted file mode 100644 index 7a4da3beb8677..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js +++ /dev/null @@ -1,125 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const contentPath = require('./path') -const fs = require('graceful-fs') -const PassThrough = require('stream').PassThrough -const pipe = BB.promisify(require('mississippi').pipe) -const ssri = require('ssri') -const Y = require('../util/y.js') - -BB.promisifyAll(fs) - -module.exports = read -function read (cache, integrity, opts) { - opts = opts || {} - return pickContentSri(cache, integrity).then(content => { - const sri = content.sri - const cpath = contentPath(cache, sri) - return fs.readFileAsync(cpath, null).then(data => { - if (typeof opts.size === 'number' && opts.size !== data.length) { - throw sizeError(opts.size, data.length) - } else if (ssri.checkData(data, sri)) { - return data - } else { - throw integrityError(sri, cpath) - } - }) - }) -} - -module.exports.stream = readStream -module.exports.readStream = readStream -function readStream (cache, integrity, opts) { - opts = opts || {} - const stream = new PassThrough() - pickContentSri( - cache, integrity - ).then(content => { - const sri = content.sri - return pipe( - fs.createReadStream(contentPath(cache, sri)), - ssri.integrityStream({ - integrity: sri, - size: opts.size - }), - stream - ) - }).catch(err => { - stream.emit('error', err) - }) - return stream -} - -if (fs.copyFile) { - module.exports.copy = copy -} -function copy (cache, integrity, dest, opts) { - opts = opts || {} - return pickContentSri(cache, integrity).then(content => { - const sri = content.sri - const cpath = contentPath(cache, sri) - return fs.copyFileAsync(cpath, dest).then(() => content.size) - }) -} - -module.exports.hasContent = hasContent -function hasContent (cache, integrity) { - if (!integrity) { return BB.resolve(false) } - return pickContentSri(cache, integrity) - .catch({code: 'ENOENT'}, () => false) - .catch({code: 'EPERM'}, err => { - if (process.platform !== 'win32') { - throw err - } else { - return false - } - }).then(content => { - if (!content.sri) return false - return ({ sri: content.sri, size: content.stat.size }) - }) -} - -module.exports._pickContentSri = pickContentSri -function pickContentSri (cache, integrity) { - const sri = ssri.parse(integrity) - // If `integrity` has multiple entries, pick the first digest - // with available local data. - const algo = sri.pickAlgorithm() - const digests = sri[algo] - if (digests.length <= 1) { - const cpath = contentPath(cache, digests[0]) - return fs.lstatAsync(cpath).then(stat => ({ sri: digests[0], stat })) - } else { - return BB.any(sri[sri.pickAlgorithm()].map(meta => { - return pickContentSri(cache, meta) - })) - .catch(err => { - if ([].some.call(err, e => e.code === 'ENOENT')) { - throw Object.assign( - new Error('No matching content found for ' + sri.toString()), - {code: 'ENOENT'} - ) - } else { - throw err[0] - } - }) - } -} - -function sizeError (expected, found) { - var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`) - err.expected = expected - err.found = found - err.code = 'EBADSIZE' - return err -} - -function integrityError (sri, path) { - var err = new Error(Y`Integrity verification failed for ${sri} (${path})`) - err.code = 'EINTEGRITY' - err.sri = sri - err.path = path - return err -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js deleted file mode 100644 index 12cf1582358dd..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const contentPath = require('./path') -const hasContent = require('./read').hasContent -const rimraf = BB.promisify(require('rimraf')) - -module.exports = rm -function rm (cache, integrity) { - return hasContent(cache, integrity).then(content => { - if (content) { - const sri = content.sri - if (sri) { - return rimraf(contentPath(cache, sri)).then(() => true) - } - } else { - return false - } - }) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js deleted file mode 100644 index a79ae92902137..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js +++ /dev/null @@ -1,162 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const contentPath = require('./path') -const fixOwner = require('../util/fix-owner') -const fs = require('graceful-fs') -const moveFile = require('../util/move-file') -const PassThrough = require('stream').PassThrough -const path = require('path') -const pipe = BB.promisify(require('mississippi').pipe) -const rimraf = BB.promisify(require('rimraf')) -const ssri = require('ssri') -const to = require('mississippi').to -const uniqueFilename = require('unique-filename') -const Y = require('../util/y.js') - -const writeFileAsync = BB.promisify(fs.writeFile) - -module.exports = write -function write (cache, data, opts) { - opts = opts || {} - if (opts.algorithms && opts.algorithms.length > 1) { - throw new Error( - Y`opts.algorithms only supports a single algorithm for now` - ) - } - if (typeof opts.size === 'number' && data.length !== opts.size) { - return BB.reject(sizeError(opts.size, data.length)) - } - const sri = ssri.fromData(data, opts) - if (opts.integrity && !ssri.checkData(data, opts.integrity, opts)) { - return BB.reject(checksumError(opts.integrity, sri)) - } - return BB.using(makeTmp(cache, opts), tmp => ( - writeFileAsync( - tmp.target, data, {flag: 'wx'} - ).then(() => ( - moveToDestination(tmp, cache, sri, opts) - )) - )).then(() => ({integrity: sri, size: data.length})) -} - -module.exports.stream = writeStream -function writeStream (cache, opts) { - opts = opts || {} - const inputStream = new PassThrough() - let inputErr = false - function errCheck () { - if (inputErr) { throw inputErr } - } - - let allDone - const ret = to((c, n, cb) => { - if (!allDone) { - allDone = handleContent(inputStream, cache, opts, errCheck) - } - inputStream.write(c, n, cb) - }, cb => { - inputStream.end(() => { - if (!allDone) { - const e = new Error(Y`Cache input stream was empty`) - e.code = 'ENODATA' - return ret.emit('error', e) - } - allDone.then(res => { - res.integrity && ret.emit('integrity', res.integrity) - res.size !== null && ret.emit('size', res.size) - cb() - }, e => { - ret.emit('error', e) - }) - }) - }) - ret.once('error', e => { - inputErr = e - }) - return ret -} - -function handleContent (inputStream, cache, opts, errCheck) { - return BB.using(makeTmp(cache, opts), tmp => { - errCheck() - return pipeToTmp( - inputStream, cache, tmp.target, opts, errCheck - ).then(res => { - return moveToDestination( - tmp, cache, res.integrity, opts, errCheck - ).then(() => res) - }) - }) -} - -function pipeToTmp (inputStream, cache, tmpTarget, opts, errCheck) { - return BB.resolve().then(() => { - let integrity - let size - const hashStream = ssri.integrityStream({ - integrity: opts.integrity, - algorithms: opts.algorithms, - size: opts.size - }).on('integrity', s => { - integrity = s - }).on('size', s => { - size = s - }) - const outStream = fs.createWriteStream(tmpTarget, { - flags: 'wx' - }) - errCheck() - return pipe(inputStream, hashStream, outStream).then(() => { - return {integrity, size} - }, err => { - return rimraf(tmpTarget).then(() => { throw err }) - }) - }) -} - -function makeTmp (cache, opts) { - const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix) - return fixOwner.mkdirfix( - path.dirname(tmpTarget), opts.uid, opts.gid - ).then(() => ({ - target: tmpTarget, - moved: false - })).disposer(tmp => (!tmp.moved && rimraf(tmp.target))) -} - -function moveToDestination (tmp, cache, sri, opts, errCheck) { - errCheck && errCheck() - const destination = contentPath(cache, sri) - const destDir = path.dirname(destination) - - return fixOwner.mkdirfix( - destDir, opts.uid, opts.gid - ).then(() => { - errCheck && errCheck() - return moveFile(tmp.target, destination) - }).then(() => { - errCheck && errCheck() - tmp.moved = true - return fixOwner.chownr(destination, opts.uid, opts.gid) - }) -} - -function sizeError (expected, found) { - var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`) - err.expected = expected - err.found = found - err.code = 'EBADSIZE' - return err -} - -function checksumError (expected, found) { - var err = new Error(Y`Integrity check failed: - Wanted: ${expected} - Found: ${found}`) - err.code = 'EINTEGRITY' - err.expected = expected - err.found = found - return err -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js deleted file mode 100644 index fe1cd06457472..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js +++ /dev/null @@ -1,225 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const contentPath = require('./content/path') -const crypto = require('crypto') -const fixOwner = require('./util/fix-owner') -const fs = require('graceful-fs') -const hashToSegments = require('./util/hash-to-segments') -const ms = require('mississippi') -const path = require('path') -const ssri = require('ssri') -const Y = require('./util/y.js') - -const indexV = require('../package.json')['cache-version'].index - -const appendFileAsync = BB.promisify(fs.appendFile) -const readFileAsync = BB.promisify(fs.readFile) -const readdirAsync = BB.promisify(fs.readdir) -const concat = ms.concat -const from = ms.from - -module.exports.NotFoundError = class NotFoundError extends Error { - constructor (cache, key) { - super(Y`No cache entry for \`${key}\` found in \`${cache}\``) - this.code = 'ENOENT' - this.cache = cache - this.key = key - } -} - -module.exports.insert = insert -function insert (cache, key, integrity, opts) { - opts = opts || {} - const bucket = bucketPath(cache, key) - const entry = { - key, - integrity: integrity && ssri.stringify(integrity), - time: Date.now(), - size: opts.size, - metadata: opts.metadata - } - return fixOwner.mkdirfix( - path.dirname(bucket), opts.uid, opts.gid - ).then(() => { - const stringified = JSON.stringify(entry) - // NOTE - Cleverness ahoy! - // - // This works because it's tremendously unlikely for an entry to corrupt - // another while still preserving the string length of the JSON in - // question. So, we just slap the length in there and verify it on read. - // - // Thanks to @isaacs for the whiteboarding session that ended up with this. - return appendFileAsync( - bucket, `\n${hashEntry(stringified)}\t${stringified}` - ) - }).then( - () => fixOwner.chownr(bucket, opts.uid, opts.gid) - ).catch({code: 'ENOENT'}, () => { - // There's a class of race conditions that happen when things get deleted - // during fixOwner, or between the two mkdirfix/chownr calls. - // - // It's perfectly fine to just not bother in those cases and lie - // that the index entry was written. Because it's a cache. - }).then(() => { - return formatEntry(cache, entry) - }) -} - -module.exports.find = find -function find (cache, key) { - const bucket = bucketPath(cache, key) - return bucketEntries(cache, bucket).then(entries => { - return entries.reduce((latest, next) => { - if (next && next.key === key) { - return formatEntry(cache, next) - } else { - return latest - } - }, null) - }).catch(err => { - if (err.code === 'ENOENT') { - return null - } else { - throw err - } - }) -} - -module.exports.delete = del -function del (cache, key, opts) { - return insert(cache, key, null, opts) -} - -module.exports.lsStream = lsStream -function lsStream (cache) { - const indexDir = bucketDir(cache) - const stream = from.obj() - - // "/cachename/*" - readdirOrEmpty(indexDir).map(bucket => { - const bucketPath = path.join(indexDir, bucket) - - // "/cachename//*" - return readdirOrEmpty(bucketPath).map(subbucket => { - const subbucketPath = path.join(bucketPath, subbucket) - - // "/cachename///*" - return readdirOrEmpty(subbucketPath).map(entry => { - const getKeyToEntry = bucketEntries( - cache, - path.join(subbucketPath, entry) - ).reduce((acc, entry) => { - acc.set(entry.key, entry) - return acc - }, new Map()) - - return getKeyToEntry.then(reduced => { - for (let entry of reduced.values()) { - const formatted = formatEntry(cache, entry) - formatted && stream.push(formatted) - } - }).catch({code: 'ENOENT'}, nop) - }) - }) - }).then(() => { - stream.push(null) - }, err => { - stream.emit('error', err) - }) - - return stream -} - -module.exports.ls = ls -function ls (cache) { - return BB.fromNode(cb => { - lsStream(cache).on('error', cb).pipe(concat(entries => { - cb(null, entries.reduce((acc, xs) => { - acc[xs.key] = xs - return acc - }, {})) - })) - }) -} - -function bucketEntries (cache, bucket, filter) { - return readFileAsync( - bucket, 'utf8' - ).then(data => { - let entries = [] - data.split('\n').forEach(entry => { - if (!entry) { return } - const pieces = entry.split('\t') - if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) { - // Hash is no good! Corruption or malice? Doesn't matter! - // EJECT EJECT - return - } - let obj - try { - obj = JSON.parse(pieces[1]) - } catch (e) { - // Entry is corrupted! - return - } - if (obj) { - entries.push(obj) - } - }) - return entries - }) -} - -module.exports._bucketDir = bucketDir -function bucketDir (cache) { - return path.join(cache, `index-v${indexV}`) -} - -module.exports._bucketPath = bucketPath -function bucketPath (cache, key) { - const hashed = hashKey(key) - return path.join.apply(path, [bucketDir(cache)].concat( - hashToSegments(hashed) - )) -} - -module.exports._hashKey = hashKey -function hashKey (key) { - return hash(key, 'sha256') -} - -module.exports._hashEntry = hashEntry -function hashEntry (str) { - return hash(str, 'sha1') -} - -function hash (str, digest) { - return crypto - .createHash(digest) - .update(str) - .digest('hex') -} - -function formatEntry (cache, entry) { - // Treat null digests as deletions. They'll shadow any previous entries. - if (!entry.integrity) { return null } - return { - key: entry.key, - integrity: entry.integrity, - path: contentPath(cache, entry.integrity), - size: entry.size, - time: entry.time, - metadata: entry.metadata - } -} - -function readdirOrEmpty (dir) { - return readdirAsync(dir) - .catch({code: 'ENOENT'}, () => []) - .catch({code: 'ENOTDIR'}, () => []) -} - -function nop () { -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js deleted file mode 100644 index 92179c7ac6afc..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' - -const LRU = require('lru-cache') - -const MAX_SIZE = 50 * 1024 * 1024 // 50MB -const MAX_AGE = 3 * 60 * 1000 - -let MEMOIZED = new LRU({ - max: MAX_SIZE, - maxAge: MAX_AGE, - length: (entry, key) => { - if (key.startsWith('key:')) { - return entry.data.length - } else if (key.startsWith('digest:')) { - return entry.length - } - } -}) - -module.exports.clearMemoized = clearMemoized -function clearMemoized () { - const old = {} - MEMOIZED.forEach((v, k) => { - old[k] = v - }) - MEMOIZED.reset() - return old -} - -module.exports.put = put -function put (cache, entry, data, opts) { - pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data }) - putDigest(cache, entry.integrity, data, opts) -} - -module.exports.put.byDigest = putDigest -function putDigest (cache, integrity, data, opts) { - pickMem(opts).set(`digest:${cache}:${integrity}`, data) -} - -module.exports.get = get -function get (cache, key, opts) { - return pickMem(opts).get(`key:${cache}:${key}`) -} - -module.exports.get.byDigest = getDigest -function getDigest (cache, integrity, opts) { - return pickMem(opts).get(`digest:${cache}:${integrity}`) -} - -class ObjProxy { - constructor (obj) { - this.obj = obj - } - get (key) { return this.obj[key] } - set (key, val) { this.obj[key] = val } -} - -function pickMem (opts) { - if (!opts || !opts.memoize) { - return MEMOIZED - } else if (opts.memoize.get && opts.memoize.set) { - return opts.memoize - } else if (typeof opts.memoize === 'object') { - return new ObjProxy(opts.memoize) - } else { - return MEMOIZED - } -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js deleted file mode 100644 index 7000bff04807a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const chownr = BB.promisify(require('chownr')) -const mkdirp = BB.promisify(require('mkdirp')) -const inflight = require('promise-inflight') - -module.exports.chownr = fixOwner -function fixOwner (filepath, uid, gid) { - if (!process.getuid) { - // This platform doesn't need ownership fixing - return BB.resolve() - } - if (typeof uid !== 'number' && typeof gid !== 'number') { - // There's no permissions override. Nothing to do here. - return BB.resolve() - } - if ((typeof uid === 'number' && process.getuid() === uid) && - (typeof gid === 'number' && process.getgid() === gid)) { - // No need to override if it's already what we used. - return BB.resolve() - } - return inflight( - 'fixOwner: fixing ownership on ' + filepath, - () => chownr( - filepath, - typeof uid === 'number' ? uid : process.getuid(), - typeof gid === 'number' ? gid : process.getgid() - ).catch({code: 'ENOENT'}, () => null) - ) -} - -module.exports.mkdirfix = mkdirfix -function mkdirfix (p, uid, gid, cb) { - return mkdirp(p).then(made => { - if (made) { - return fixOwner(made, uid, gid).then(() => made) - } - }).catch({code: 'EEXIST'}, () => { - // There's a race in mkdirp! - return fixOwner(p, uid, gid).then(() => null) - }) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js deleted file mode 100644 index 192be2a6d650a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -module.exports = hashToSegments - -function hashToSegments (hash) { - return [ - hash.slice(0, 2), - hash.slice(2, 4), - hash.slice(4) - ] -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js deleted file mode 100644 index b43744b3da867..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const BB = require('bluebird') -const chmod = BB.promisify(fs.chmod) -const unlink = BB.promisify(fs.unlink) -let move -let pinflight - -module.exports = moveFile -function moveFile (src, dest) { - // This isn't quite an fs.rename -- the assumption is that - // if `dest` already exists, and we get certain errors while - // trying to move it, we should just not bother. - // - // In the case of cache corruption, users will receive an - // EINTEGRITY error elsewhere, and can remove the offending - // content their own way. - // - // Note that, as the name suggests, this strictly only supports file moves. - return BB.fromNode(cb => { - fs.link(src, dest, err => { - if (err) { - if (err.code === 'EEXIST' || err.code === 'EBUSY') { - // file already exists, so whatever - } else if (err.code === 'EPERM' && process.platform === 'win32') { - // file handle stayed open even past graceful-fs limits - } else { - return cb(err) - } - } - return cb() - }) - }).then(() => { - // content should never change for any reason, so make it read-only - return BB.join(unlink(src), process.platform !== 'win32' && chmod(dest, '0444')) - }).catch(() => { - if (!pinflight) { pinflight = require('promise-inflight') } - return pinflight('cacache-move-file:' + dest, () => { - return BB.promisify(fs.stat)(dest).catch(err => { - if (err.code !== 'ENOENT') { - // Something else is wrong here. Bail bail bail - throw err - } - // file doesn't already exist! let's try a rename -> copy fallback - if (!move) { move = require('move-concurrently') } - return move(src, dest, { BB, fs }) - }) - }) - }) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js deleted file mode 100644 index 4fc4512cc854e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const fixOwner = require('./fix-owner') -const path = require('path') -const rimraf = BB.promisify(require('rimraf')) -const uniqueFilename = require('unique-filename') - -module.exports.mkdir = mktmpdir -function mktmpdir (cache, opts) { - opts = opts || {} - const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix) - return fixOwner.mkdirfix(tmpTarget, opts.uid, opts.gid).then(() => { - return tmpTarget - }) -} - -module.exports.withTmp = withTmp -function withTmp (cache, opts, cb) { - if (!cb) { - cb = opts - opts = null - } - opts = opts || {} - return BB.using(mktmpdir(cache, opts).disposer(rimraf), cb) -} - -module.exports.fix = fixtmpdir -function fixtmpdir (cache, opts) { - return fixOwner(path.join(cache, 'tmp'), opts.uid, opts.gid) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js deleted file mode 100644 index d62bedacb32a2..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict' - -const path = require('path') -const y18n = require('y18n')({ - directory: path.join(__dirname, '../../locales'), - locale: 'en', - updateFiles: process.env.CACACHE_UPDATE_LOCALE_FILES === 'true' -}) - -module.exports = yTag -function yTag (parts) { - let str = '' - parts.forEach((part, i) => { - const arg = arguments[i + 1] - str += part - if (arg) { - str += '%s' - } - }) - return y18n.__.apply(null, [str].concat([].slice.call(arguments, 1))) -} - -module.exports.setLocale = locale => { - y18n.setLocale(locale) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js b/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js deleted file mode 100644 index 6a01004c97c4a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js +++ /dev/null @@ -1,213 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const contentPath = require('./content/path') -const finished = BB.promisify(require('mississippi').finished) -const fixOwner = require('./util/fix-owner') -const fs = require('graceful-fs') -const glob = BB.promisify(require('glob')) -const index = require('./entry-index') -const path = require('path') -const rimraf = BB.promisify(require('rimraf')) -const ssri = require('ssri') - -BB.promisifyAll(fs) - -module.exports = verify -function verify (cache, opts) { - opts = opts || {} - opts.log && opts.log.silly('verify', 'verifying cache at', cache) - return BB.reduce([ - markStartTime, - fixPerms, - garbageCollect, - rebuildIndex, - cleanTmp, - writeVerifile, - markEndTime - ], (stats, step, i) => { - const label = step.name || `step #${i}` - const start = new Date() - return BB.resolve(step(cache, opts)).then(s => { - s && Object.keys(s).forEach(k => { - stats[k] = s[k] - }) - const end = new Date() - if (!stats.runTime) { stats.runTime = {} } - stats.runTime[label] = end - start - return stats - }) - }, {}).tap(stats => { - stats.runTime.total = stats.endTime - stats.startTime - opts.log && opts.log.silly('verify', 'verification finished for', cache, 'in', `${stats.runTime.total}ms`) - }) -} - -function markStartTime (cache, opts) { - return { startTime: new Date() } -} - -function markEndTime (cache, opts) { - return { endTime: new Date() } -} - -function fixPerms (cache, opts) { - opts.log && opts.log.silly('verify', 'fixing cache permissions') - return fixOwner.mkdirfix(cache, opts.uid, opts.gid).then(() => { - // TODO - fix file permissions too - return fixOwner.chownr(cache, opts.uid, opts.gid) - }).then(() => null) -} - -// Implements a naive mark-and-sweep tracing garbage collector. -// -// The algorithm is basically as follows: -// 1. Read (and filter) all index entries ("pointers") -// 2. Mark each integrity value as "live" -// 3. Read entire filesystem tree in `content-vX/` dir -// 4. If content is live, verify its checksum and delete it if it fails -// 5. If content is not marked as live, rimraf it. -// -function garbageCollect (cache, opts) { - opts.log && opts.log.silly('verify', 'garbage collecting content') - const indexStream = index.lsStream(cache) - const liveContent = new Set() - indexStream.on('data', entry => { - if (opts && opts.filter && !opts.filter(entry)) { return } - liveContent.add(entry.integrity.toString()) - }) - return finished(indexStream).then(() => { - const contentDir = contentPath._contentDir(cache) - return glob(path.join(contentDir, '**'), { - follow: false, - nodir: true, - nosort: true - }).then(files => { - return BB.resolve({ - verifiedContent: 0, - reclaimedCount: 0, - reclaimedSize: 0, - badContentCount: 0, - keptSize: 0 - }).tap((stats) => BB.map(files, (f) => { - const split = f.split(/[/\\]/) - const digest = split.slice(split.length - 3).join('') - const algo = split[split.length - 4] - const integrity = ssri.fromHex(digest, algo) - if (liveContent.has(integrity.toString())) { - return verifyContent(f, integrity).then(info => { - if (!info.valid) { - stats.reclaimedCount++ - stats.badContentCount++ - stats.reclaimedSize += info.size - } else { - stats.verifiedContent++ - stats.keptSize += info.size - } - return stats - }) - } else { - // No entries refer to this content. We can delete. - stats.reclaimedCount++ - return fs.statAsync(f).then(s => { - return rimraf(f).then(() => { - stats.reclaimedSize += s.size - return stats - }) - }) - } - }, {concurrency: opts.concurrency || 20})) - }) - }) -} - -function verifyContent (filepath, sri) { - return fs.statAsync(filepath).then(stat => { - const contentInfo = { - size: stat.size, - valid: true - } - return ssri.checkStream( - fs.createReadStream(filepath), - sri - ).catch(err => { - if (err.code !== 'EINTEGRITY') { throw err } - return rimraf(filepath).then(() => { - contentInfo.valid = false - }) - }).then(() => contentInfo) - }).catch({code: 'ENOENT'}, () => ({size: 0, valid: false})) -} - -function rebuildIndex (cache, opts) { - opts.log && opts.log.silly('verify', 'rebuilding index') - return index.ls(cache).then(entries => { - const stats = { - missingContent: 0, - rejectedEntries: 0, - totalEntries: 0 - } - const buckets = {} - for (let k in entries) { - if (entries.hasOwnProperty(k)) { - const hashed = index._hashKey(k) - const entry = entries[k] - const excluded = opts && opts.filter && !opts.filter(entry) - excluded && stats.rejectedEntries++ - if (buckets[hashed] && !excluded) { - buckets[hashed].push(entry) - } else if (buckets[hashed] && excluded) { - // skip - } else if (excluded) { - buckets[hashed] = [] - buckets[hashed]._path = index._bucketPath(cache, k) - } else { - buckets[hashed] = [entry] - buckets[hashed]._path = index._bucketPath(cache, k) - } - } - } - return BB.map(Object.keys(buckets), key => { - return rebuildBucket(cache, buckets[key], stats, opts) - }, {concurrency: opts.concurrency || 20}).then(() => stats) - }) -} - -function rebuildBucket (cache, bucket, stats, opts) { - return fs.truncateAsync(bucket._path).then(() => { - // This needs to be serialized because cacache explicitly - // lets very racy bucket conflicts clobber each other. - return BB.mapSeries(bucket, entry => { - const content = contentPath(cache, entry.integrity) - return fs.statAsync(content).then(() => { - return index.insert(cache, entry.key, entry.integrity, { - uid: opts.uid, - gid: opts.gid, - metadata: entry.metadata - }).then(() => { stats.totalEntries++ }) - }).catch({code: 'ENOENT'}, () => { - stats.rejectedEntries++ - stats.missingContent++ - }) - }) - }) -} - -function cleanTmp (cache, opts) { - opts.log && opts.log.silly('verify', 'cleaning tmp directory') - return rimraf(path.join(cache, 'tmp')) -} - -function writeVerifile (cache, opts) { - const verifile = path.join(cache, '_lastverified') - opts.log && opts.log.silly('verify', 'writing verifile to ' + verifile) - return fs.writeFileAsync(verifile, '' + (+(new Date()))) -} - -module.exports.lastRun = lastRun -function lastRun (cache) { - return fs.readFileAsync( - path.join(cache, '_lastverified'), 'utf8' - ).then(data => new Date(+data)) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js b/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js deleted file mode 100644 index 22025cf0e895e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict' - -const ls = require('../ls.js') -const get = require('../get.js') -const put = require('../put.js') -const rm = require('../rm.js') -const verify = require('../verify.js') -const setLocale = require('../lib/util/y.js').setLocale -const clearMemoized = require('../lib/memoization.js').clearMemoized -const tmp = require('../lib/util/tmp.js') - -setLocale('en') - -const x = module.exports - -x.ls = cache => ls(cache) -x.ls.stream = cache => ls.stream(cache) - -x.get = (cache, key, opts) => get(cache, key, opts) -x.get.byDigest = (cache, hash, opts) => get.byDigest(cache, hash, opts) -x.get.stream = (cache, key, opts) => get.stream(cache, key, opts) -x.get.stream.byDigest = (cache, hash, opts) => get.stream.byDigest(cache, hash, opts) -x.get.copy = (cache, key, dest, opts) => get.copy(cache, key, dest, opts) -x.get.copy.byDigest = (cache, hash, dest, opts) => get.copy.byDigest(cache, hash, dest, opts) -x.get.info = (cache, key) => get.info(cache, key) -x.get.hasContent = (cache, hash) => get.hasContent(cache, hash) - -x.put = (cache, key, data, opts) => put(cache, key, data, opts) -x.put.stream = (cache, key, opts) => put.stream(cache, key, opts) - -x.rm = (cache, key) => rm.entry(cache, key) -x.rm.all = cache => rm.all(cache) -x.rm.entry = x.rm -x.rm.content = (cache, hash) => rm.content(cache, hash) - -x.setLocale = lang => setLocale(lang) -x.clearMemoized = () => clearMemoized() - -x.tmp = {} -x.tmp.mkdir = (cache, opts) => tmp.mkdir(cache, opts) -x.tmp.withTmp = (cache, opts, cb) => tmp.withTmp(cache, opts, cb) - -x.verify = (cache, opts) => verify(cache, opts) -x.verify.lastRun = cache => verify.lastRun(cache) diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json b/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json deleted file mode 100644 index 82ecb0832490d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "No cache entry for `%s` found in `%s`": "No cache entry for %s found in %s", - "Integrity verification failed for %s (%s)": "Integrity verification failed for %s (%s)", - "Bad data size: expected inserted data to be %s bytes, but got %s instead": "Bad data size: expected inserted data to be %s bytes, but got %s instead", - "Cache input stream was empty": "Cache input stream was empty" -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js b/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js deleted file mode 100644 index 9a27de6585a23..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict' - -const ls = require('../ls.js') -const get = require('../get.js') -const put = require('../put.js') -const rm = require('../rm.js') -const verify = require('../verify.js') -const setLocale = require('../lib/util/y.js').setLocale -const clearMemoized = require('../lib/memoization.js').clearMemoized -const tmp = require('../lib/util/tmp.js') - -setLocale('es') - -const x = module.exports - -x.ls = cache => ls(cache) -x.ls.flujo = cache => ls.stream(cache) - -x.saca = (cache, clave, ops) => get(cache, clave, ops) -x.saca.porHacheo = (cache, hacheo, ops) => get.byDigest(cache, hacheo, ops) -x.saca.flujo = (cache, clave, ops) => get.stream(cache, clave, ops) -x.saca.flujo.porHacheo = (cache, hacheo, ops) => get.stream.byDigest(cache, hacheo, ops) -x.sava.copia = (cache, clave, destino, opts) => get.copy(cache, clave, destino, opts) -x.sava.copia.porHacheo = (cache, hacheo, destino, opts) => get.copy.byDigest(cache, hacheo, destino, opts) -x.saca.info = (cache, clave) => get.info(cache, clave) -x.saca.tieneDatos = (cache, hacheo) => get.hasContent(cache, hacheo) - -x.mete = (cache, clave, datos, ops) => put(cache, clave, datos, ops) -x.mete.flujo = (cache, clave, ops) => put.stream(cache, clave, ops) - -x.rm = (cache, clave) => rm.entry(cache, clave) -x.rm.todo = cache => rm.all(cache) -x.rm.entrada = x.rm -x.rm.datos = (cache, hacheo) => rm.content(cache, hacheo) - -x.ponLenguaje = lang => setLocale(lang) -x.limpiaMemoizado = () => clearMemoized() - -x.tmp = {} -x.tmp.mkdir = (cache, ops) => tmp.mkdir(cache, ops) -x.tmp.hazdir = x.tmp.mkdir -x.tmp.conTmp = (cache, ops, cb) => tmp.withTmp(cache, ops, cb) - -x.verifica = (cache, ops) => verify(cache, ops) -x.verifica.ultimaVez = cache => verify.lastRun(cache) -x.verifica.últimaVez = x.verifica.ultimaVez diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json b/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json deleted file mode 100644 index a91d76225b43f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "No cache entry for `%s` found in `%s`": "No existe ninguna entrada para «%s» en «%s»", - "Integrity verification failed for %s (%s)": "Verificación de integridad falló para «%s» (%s)", - "Bad data size: expected inserted data to be %s bytes, but got %s instead": "Tamaño incorrecto de datos: los datos insertados debieron haber sido %s octetos, pero fueron %s", - "Cache input stream was empty": "El stream de entrada al caché estaba vacío" -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/ls.js b/node_modules/npm-registry-fetch/node_modules/cacache/ls.js deleted file mode 100644 index 9f49b388ac380..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/ls.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -var index = require('./lib/entry-index') - -module.exports = index.ls -module.exports.stream = index.lsStream diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md b/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md deleted file mode 100644 index 93430828f89f0..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md +++ /dev/null @@ -1,7 +0,0 @@ -# mississippi Change Log -All notable changes to this project will be documented in this file. -This project adheres to [Semantic Versioning](http://semver.org/). - -## 2.0.0 - 2018-01-30 -* Update to pump@2.0.1. (Use the individual modules to avoid potentially unnecessary major updates in your project) -* Pin engines support to >= Node 4.0.0. Run Node LTS or greater. diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js b/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js deleted file mode 100644 index d635b29c5614d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports.pipe = require('pump') -module.exports.each = require('stream-each') -module.exports.pipeline = require('pumpify') -module.exports.duplex = require('duplexify') -module.exports.through = require('through2') -module.exports.concat = require('concat-stream') -module.exports.finished = require('end-of-stream') -module.exports.from = require('from2') -module.exports.to = require('flush-write-stream') -module.exports.parallel = require('parallel-transform') diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license b/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license deleted file mode 100644 index e34763968c262..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license +++ /dev/null @@ -1,7 +0,0 @@ -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json b/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json deleted file mode 100644 index 0d8c11480d1c4..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "mississippi@^2.0.0", - "_id": "mississippi@2.0.0", - "_inBundle": false, - "_integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "_location": "/npm-registry-fetch/cacache/mississippi", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "mississippi@^2.0.0", - "name": "mississippi", - "escapedName": "mississippi", - "rawSpec": "^2.0.0", - "saveSpec": null, - "fetchSpec": "^2.0.0" - }, - "_requiredBy": [ - "/npm-registry-fetch/cacache" - ], - "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "_shasum": "3442a508fafc28500486feea99409676e4ee5a6f", - "_spec": "mississippi@^2.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/cacache", - "author": { - "name": "max ogden" - }, - "bugs": { - "url": "https://github.com/maxogden/mississippi/issues" - }, - "bundleDependencies": false, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "deprecated": false, - "description": "a collection of useful streams", - "devDependencies": {}, - "engines": { - "node": ">=4.0.0" - }, - "homepage": "https://github.com/maxogden/mississippi#readme", - "license": "BSD-2-Clause", - "main": "index.js", - "name": "mississippi", - "repository": { - "type": "git", - "url": "git+https://github.com/maxogden/mississippi.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "2.0.0" -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md b/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md deleted file mode 100644 index 5fa6d66c89e2a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md +++ /dev/null @@ -1,411 +0,0 @@ -# mississippi - -a collection of useful stream utility modules. learn how the modules work using this and then pick the ones you want and use them individually - -the goal of the modules included in mississippi is to make working with streams easy without sacrificing speed, error handling or composability. - -## usage - -```js -var miss = require('mississippi') -``` - -## methods - -- [pipe](#pipe) -- [each](#each) -- [pipeline](#pipeline) -- [duplex](#duplex) -- [through](#through) -- [from](#from) -- [to](#to) -- [concat](#concat) -- [finished](#finished) -- [parallel](#parallel) - -### pipe - -##### `miss.pipe(stream1, stream2, stream3, ..., cb)` - -Pipes streams together and destroys all of them if one of them closes. Calls `cb` with `(error)` if there was an error in any of the streams. - -When using standard `source.pipe(destination)` the source will _not_ be destroyed if the destination emits close or error. You are also not able to provide a callback to tell when the pipe has finished. - -`miss.pipe` does these two things for you, ensuring you handle stream errors 100% of the time (unhandled errors are probably the most common bug in most node streams code) - -#### original module - -`miss.pipe` is provided by [`require('pump')`](https://www.npmjs.com/package/pump) - -#### example - -```js -// lets do a simple file copy -var fs = require('fs') - -var read = fs.createReadStream('./original.zip') -var write = fs.createWriteStream('./copy.zip') - -// use miss.pipe instead of read.pipe(write) -miss.pipe(read, write, function (err) { - if (err) return console.error('Copy error!', err) - console.log('Copied successfully') -}) -``` - -### each - -##### `miss.each(stream, each, [done])` - -Iterate the data in `stream` one chunk at a time. Your `each` function will be called with `(data, next)` where data is a data chunk and next is a callback. Call `next` when you are ready to consume the next chunk. - -Optionally you can call `next` with an error to destroy the stream. You can also pass the optional third argument, `done`, which is a function that will be called with `(err)` when the stream ends. The `err` argument will be populated with an error if the stream emitted an error. - -#### original module - -`miss.each` is provided by [`require('stream-each')`](https://www.npmjs.com/package/stream-each) - -#### example - -```js -var fs = require('fs') -var split = require('split2') - -var newLineSeparatedNumbers = fs.createReadStream('numbers.txt') - -var pipeline = miss.pipeline(newLineSeparatedNumbers, split()) -miss.each(pipeline, eachLine, done) -var sum = 0 - -function eachLine (line, next) { - sum += parseInt(line.toString()) - next() -} - -function done (err) { - if (err) throw err - console.log('sum is', sum) -} -``` - -### pipeline - -##### `var pipeline = miss.pipeline(stream1, stream2, stream3, ...)` - -Builds a pipeline from all the transform streams passed in as arguments by piping them together and returning a single stream object that lets you write to the first stream and read from the last stream. - -If you are pumping object streams together use `pipeline = miss.pipeline.obj(s1, s2, ...)`. - -If any of the streams in the pipeline emits an error or gets destroyed, or you destroy the stream it returns, all of the streams will be destroyed and cleaned up for you. - -#### original module - -`miss.pipeline` is provided by [`require('pumpify')`](https://www.npmjs.com/package/pumpify) - -#### example - -```js -// first create some transform streams (note: these two modules are fictional) -var imageResize = require('image-resizer-stream')({width: 400}) -var pngOptimizer = require('png-optimizer-stream')({quality: 60}) - -// instead of doing a.pipe(b), use pipelin -var resizeAndOptimize = miss.pipeline(imageResize, pngOptimizer) -// `resizeAndOptimize` is a transform stream. when you write to it, it writes -// to `imageResize`. when you read from it, it reads from `pngOptimizer`. -// it handles piping all the streams together for you - -// use it like any other transform stream -var fs = require('fs') - -var read = fs.createReadStream('./image.png') -var write = fs.createWriteStream('./resized-and-optimized.png') - -miss.pipe(read, resizeAndOptimize, write, function (err) { - if (err) return console.error('Image processing error!', err) - console.log('Image processed successfully') -}) -``` - -### duplex - -##### `var duplex = miss.duplex([writable, readable, opts])` - -Take two separate streams, a writable and a readable, and turn them into a single [duplex (readable and writable) stream](https://nodejs.org/api/stream.html#stream_class_stream_duplex). - -The returned stream will emit data from the readable. When you write to it it writes to the writable. - -You can either choose to supply the writable and the readable at the time you create the stream, or you can do it later using the `.setWritable` and `.setReadable` methods and data written to the stream in the meantime will be buffered for you. - -#### original module - -`miss.duplex` is provided by [`require('duplexify')`](https://www.npmjs.com/package/duplexify) - -#### example - -```js -// lets spawn a process and take its stdout and stdin and combine them into 1 stream -var child = require('child_process') - -// @- tells it to read from stdin, --data-binary sets 'raw' binary mode -var curl = child.spawn('curl -X POST --data-binary @- http://foo.com') - -// duplexCurl will write to stdin and read from stdout -var duplexCurl = miss.duplex(curl.stdin, curl.stdout) -``` - -### through - -##### `var transformer = miss.through([options, transformFunction, flushFunction])` - -Make a custom [transform stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform). - -The `options` object is passed to the internal transform stream and can be used to create an `objectMode` stream (or use the shortcut `miss.through.obj([...])`) - -The `transformFunction` is called when data is available for the writable side and has the signature `(chunk, encoding, cb)`. Within the function, add data to the readable side any number of times with `this.push(data)`. Call `cb()` to indicate processing of the `chunk` is complete. Or to easily emit a single error or chunk, call `cb(err, chunk)` - -The `flushFunction`, with signature `(cb)`, is called just before the stream is complete and should be used to wrap up stream processing. - -#### original module - -`miss.through` is provided by [`require('through2')`](https://www.npmjs.com/package/through2) - -#### example - -```js -var fs = require('fs') - -var read = fs.createReadStream('./boring_lowercase.txt') -var write = fs.createWriteStream('./AWESOMECASE.TXT') - -// Leaving out the options object -var uppercaser = miss.through( - function (chunk, enc, cb) { - cb(null, chunk.toString().toUpperCase()) - }, - function (cb) { - cb(null, 'ONE LAST BIT OF UPPERCASE') - } -) - -miss.pipe(read, uppercaser, write, function (err) { - if (err) return console.error('Trouble uppercasing!') - console.log('Splendid uppercasing!') -}) -``` - -### from - -##### `miss.from([opts], read)` - -Make a custom [readable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_readable). - -`opts` contains the options to pass on to the ReadableStream constructor e.g. for creating a readable object stream (or use the shortcut `miss.from.obj([...])`). - -Returns a readable stream that calls `read(size, next)` when data is requested from the stream. - -- `size` is the recommended amount of data (in bytes) to retrieve. -- `next(err, chunk)` should be called when you're ready to emit more data. - -#### original module - -`miss.from` is provided by [`require('from2')`](https://www.npmjs.com/package/from2) - -#### example - -```js - - -function fromString(string) { - return miss.from(function(size, next) { - // if there's no more content - // left in the string, close the stream. - if (string.length <= 0) return next(null, null) - - // Pull in a new chunk of text, - // removing it from the string. - var chunk = string.slice(0, size) - string = string.slice(size) - - // Emit "chunk" from the stream. - next(null, chunk) - }) -} - -// pipe "hello world" out -// to stdout. -fromString('hello world').pipe(process.stdout) -``` - -### to - -##### `miss.to([options], write, [flush])` - -Make a custom [writable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_writable). - -`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a writable object stream (or use the shortcut `miss.to.obj([...])`). - -Returns a writable stream that calls `write(data, enc, cb)` when data is written to the stream. - -- `data` is the received data to write the destination. -- `enc` encoding of the piece of data received. -- `cb(err, data)` should be called when you're ready to write more data, or encountered an error. - -`flush(cb)` is called before `finish` is emitted and allows for cleanup steps to occur. - -#### original module - -`miss.to` is provided by [`require('flush-write-stream')`](https://www.npmjs.com/package/flush-write-stream) - -#### example - -```js -var ws = miss.to(write, flush) - -ws.on('finish', function () { - console.log('finished') -}) - -ws.write('hello') -ws.write('world') -ws.end() - -function write (data, enc, cb) { - // i am your normal ._write method - console.log('writing', data.toString()) - cb() -} - -function flush (cb) { - // i am called before finish is emitted - setTimeout(cb, 1000) // wait 1 sec -} -``` - -If you run the above it will produce the following output - -``` -writing hello -writing world -(nothing happens for 1 sec) -finished -``` - -### concat - -##### `var concat = miss.concat(cb)` - -Returns a writable stream that concatenates all data written to the stream and calls a callback with the single result. - -Calling `miss.concat(cb)` returns a writable stream. `cb` is called when the writable stream is finished, e.g. when all data is done being written to it. `cb` is called with a single argument, `(data)`, which will contain the result of concatenating all the data written to the stream. - -Note that `miss.concat` will not handle stream errors for you. To handle errors, use `miss.pipe` or handle the `error` event manually. - -#### original module - -`miss.concat` is provided by [`require('concat-stream')`](https://www.npmjs.com/package/concat-stream) - -#### example - -```js -var fs = require('fs') - -var readStream = fs.createReadStream('cat.png') -var concatStream = miss.concat(gotPicture) - -function callback (err) { - if (err) { - console.error(err) - process.exit(1) - } -} - -miss.pipe(readStream, concatStream, callback) - -function gotPicture(imageBuffer) { - // imageBuffer is all of `cat.png` as a node.js Buffer -} - -function handleError(err) { - // handle your error appropriately here, e.g.: - console.error(err) // print the error to STDERR - process.exit(1) // exit program with non-zero exit code -} -``` - -### finished - -##### `miss.finished(stream, cb)` - -Waits for `stream` to finish or error and then calls `cb` with `(err)`. `cb` will only be called once. `err` will be null if the stream finished without error, or else it will be populated with the error from the streams `error` event. - -This function is useful for simplifying stream handling code as it lets you handle success or error conditions in a single code path. It's used internally `miss.pipe`. - -#### original module - -`miss.finished` is provided by [`require('end-of-stream')`](https://www.npmjs.com/package/end-of-stream) - -#### example - -```js -var copySource = fs.createReadStream('./movie.mp4') -var copyDest = fs.createWriteStream('./movie-copy.mp4') - -copySource.pipe(copyDest) - -miss.finished(copyDest, function(err) { - if (err) return console.log('write failed', err) - console.log('write success') -}) -``` - -### parallel - -##### `miss.parallel(concurrency, each)` - -This works like `through` except you can process items in parallel, while still preserving the original input order. - -This is handy if you wanna take advantage of node's async I/O and process streams of items in batches. With this module you can build your very own streaming parallel job queue. - -Note that `miss.parallel` preserves input ordering, if you don't need that then you can use [through2-concurrent](https://github.com/almost/through2-concurrent) instead, which is very similar to this otherwise. - -#### original module - -`miss.parallel` is provided by [`require('parallel-transform')`](https://npmjs.org/parallel-transform) - -#### example - -This example fetches the GET HTTP headers for a stream of input URLs 5 at a time in parallel. - -```js -function getResponse (item, cb) { - var r = request(item.url) - r.on('error', function (err) { - cb(err) - }) - r.on('response', function (re) { - cb(null, {url: item.url, date: new Date(), status: re.statusCode, headers: re.headers}) - r.abort() - }) -} - -miss.pipe( - fs.createReadStream('./urls.txt'), // one url per line - split(), - miss.parallel(5, getResponse), - miss.through(function (row, enc, next) { - console.log(JSON.stringify(row)) - next() - }) -) -``` - -## see also - -- [substack/stream-handbook](https://github.com/substack/stream-handbook) -- [nodejs.org/api/stream.html](https://nodejs.org/api/stream.html) -- [awesome-nodejs-streams](https://github.com/thejmazz/awesome-nodejs-streams) - -## license - -Licensed under the BSD 2-clause license. diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/package.json b/node_modules/npm-registry-fetch/node_modules/cacache/package.json deleted file mode 100644 index 12cfb5aac575f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/package.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "_from": "cacache@^10.0.4", - "_id": "cacache@10.0.4", - "_inBundle": false, - "_integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "_location": "/npm-registry-fetch/cacache", - "_phantomChildren": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" - }, - "_requested": { - "type": "range", - "registry": true, - "raw": "cacache@^10.0.4", - "name": "cacache", - "escapedName": "cacache", - "rawSpec": "^10.0.4", - "saveSpec": null, - "fetchSpec": "^10.0.4" - }, - "_requiredBy": [ - "/npm-registry-fetch/make-fetch-happen" - ], - "_resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "_shasum": "6452367999eff9d4188aefd9a14e9d7c6a263460", - "_spec": "cacache@^10.0.4", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen", - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - "bugs": { - "url": "https://github.com/zkat/cacache/issues" - }, - "bundleDependencies": false, - "cache-version": { - "content": "2", - "index": "5" - }, - "config": { - "nyc": { - "exclude": [ - "node_modules/**", - "test/**" - ] - } - }, - "contributors": [ - { - "name": "Charlotte Spencer", - "email": "charlottelaspencer@gmail.com" - }, - { - "name": "Rebecca Turner", - "email": "me@re-becca.org" - } - ], - "dependencies": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "deprecated": false, - "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.", - "devDependencies": { - "benchmark": "^2.1.4", - "chalk": "^2.3.1", - "cross-env": "^5.1.3", - "nyc": "^11.4.1", - "require-inject": "^1.4.2", - "safe-buffer": "^5.1.1", - "standard": "^10.0.3", - "standard-version": "^4.3.0", - "tacks": "^1.2.2", - "tap": "^11.1.0", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" - }, - "files": [ - "*.js", - "lib", - "locales" - ], - "homepage": "https://github.com/zkat/cacache#readme", - "keywords": [ - "cache", - "caching", - "content-addressable", - "sri", - "sri hash", - "subresource integrity", - "cache", - "storage", - "store", - "file store", - "filesystem", - "disk cache", - "disk storage" - ], - "license": "ISC", - "main": "index.js", - "name": "cacache", - "repository": { - "type": "git", - "url": "git+https://github.com/zkat/cacache.git" - }, - "scripts": { - "benchmarks": "node test/benchmarks", - "postrelease": "npm publish && git push --follow-tags", - "prerelease": "npm t", - "pretest": "standard", - "release": "standard-version -s", - "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js", - "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" - }, - "version": "10.0.4" -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/put.js b/node_modules/npm-registry-fetch/node_modules/cacache/put.js deleted file mode 100644 index fe1293e5e7c5a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/put.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict' - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const write = require('./lib/content/write') -const to = require('mississippi').to - -module.exports = putData -function putData (cache, key, data, opts) { - opts = opts || {} - return write(cache, data, opts).then(res => { - // TODO - stop modifying opts - opts.size = res.size - return index.insert(cache, key, res.integrity, opts).then(entry => { - if (opts.memoize) { - memo.put(cache, entry, data, opts) - } - return res.integrity - }) - }) -} - -module.exports.stream = putStream -function putStream (cache, key, opts) { - opts = opts || {} - let integrity - let size - const contentStream = write.stream( - cache, opts - ).on('integrity', int => { - integrity = int - }).on('size', s => { - size = s - }) - let memoData - let memoTotal = 0 - const stream = to((chunk, enc, cb) => { - contentStream.write(chunk, enc, () => { - if (opts.memoize) { - if (!memoData) { memoData = [] } - memoData.push(chunk) - memoTotal += chunk.length - } - cb() - }) - }, cb => { - contentStream.end(() => { - // TODO - stop modifying `opts` - opts.size = size - index.insert(cache, key, integrity, opts).then(entry => { - if (opts.memoize) { - memo.put(cache, entry, Buffer.concat(memoData, memoTotal), opts) - } - stream.emit('integrity', integrity) - cb() - }) - }) - }) - let erred = false - stream.once('error', err => { - if (erred) { return } - erred = true - contentStream.emit('error', err) - }) - contentStream.once('error', err => { - if (erred) { return } - erred = true - stream.emit('error', err) - }) - return stream -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/rm.js b/node_modules/npm-registry-fetch/node_modules/cacache/rm.js deleted file mode 100644 index e71a1d27b4cf8..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/rm.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const index = require('./lib/entry-index') -const memo = require('./lib/memoization') -const path = require('path') -const rimraf = BB.promisify(require('rimraf')) -const rmContent = require('./lib/content/rm') - -module.exports = entry -module.exports.entry = entry -function entry (cache, key) { - memo.clearMemoized() - return index.delete(cache, key) -} - -module.exports.content = content -function content (cache, integrity) { - memo.clearMemoized() - return rmContent(cache, integrity) -} - -module.exports.all = all -function all (cache) { - memo.clearMemoized() - return rimraf(path.join(cache, '*(content-*|index-*)')) -} diff --git a/node_modules/npm-registry-fetch/node_modules/cacache/verify.js b/node_modules/npm-registry-fetch/node_modules/cacache/verify.js deleted file mode 100644 index db7763d7afd07..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/cacache/verify.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict' - -module.exports = require('./lib/verify') diff --git a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md b/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md deleted file mode 100644 index f70e02d71dcbc..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md +++ /dev/null @@ -1,29 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - - -## [2.0.1](https://github.com/zkat/figgy-pudding/compare/v2.0.0...v2.0.1) (2018-03-16) - - -### Bug Fixes - -* **opts:** ignore non-object providers ([7b9c0f8](https://github.com/zkat/figgy-pudding/commit/7b9c0f8)) - - - - -# [2.0.0](https://github.com/zkat/figgy-pudding/compare/v1.0.0...v2.0.0) (2018-03-16) - - -### Features - -* **api:** overhauled API with new opt handling concept ([e6cc929](https://github.com/zkat/figgy-pudding/commit/e6cc929)) -* **license:** relicense to ISC ([87479aa](https://github.com/zkat/figgy-pudding/commit/87479aa)) - - -### BREAKING CHANGES - -* **license:** the license has been changed from CC0-1.0 to ISC. -* **api:** this is a completely different approach than previously -used by this library. See the readme for the new API and an explanation. diff --git a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md b/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md deleted file mode 100644 index 8d28acf866d93..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md b/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md deleted file mode 100644 index 3cdec3f81ac2d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# figgy-pudding [![npm version](https://img.shields.io/npm/v/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![license](https://img.shields.io/npm/l/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![Travis](https://img.shields.io/travis/zkat/figgy-pudding.svg)](https://travis-ci.org/zkat/figgy-pudding) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/figgy-pudding?svg=true)](https://ci.appveyor.com/project/zkat/figgy-pudding) [![Coverage Status](https://coveralls.io/repos/github/zkat/figgy-pudding/badge.svg?branch=latest)](https://coveralls.io/github/zkat/figgy-pudding?branch=latest) - -# Death to the God Object! Now Bring Us Some Figgy Pudding! - -[`figgy-pudding`](https://github.com/zkat/figgy-pudding) is a simple JavaScript library for managing and composing cascading options objects -- hiding what needs to be hidden from each layer, without having to do a lot of manual munging and passing of options. - -## Install - -`$ npm install figgy-pudding` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [API](#api) - * [`figgyPudding(spec)`](#figgy-pudding) - * [`Opts(values)`](#opts) - -### Example - -```javascript -const puddin = require('figgyPudding') - -const RequestOpts = puddin({ - follow: { - default: true - }, - streaming: { - default: false - }, - log: { - default: require('npmlog') - } -}) - -const MyAppOpts = puddin({ - log: { - default: require('npmlog') - }, - cache: { - default: './cache' - } -}) - -function start (opts) { - opts = MyAppOpts(opts) - initCache(opts.get('cache')) - opts.get('streaming') // => undefined - reqStuff('https://npm.im/figgy-pudding', opts) -} - -function reqStuff (uri, opts) { - opts = RequestOpts(opts) - require('request').get(uri, opts) // can't see `cache` -} -``` - -### Features - -* Hide options from layer that didn't ask for it -* Shared multi-layer options - -### API - -#### `> figgyPudding({ key: { default: val } | String }, [opts])` - -Defines an Options constructor that can be used to collect only the needed -options. - -An optional `default` property for specs can be used to specify default values -if nothing was passed in. - -If the value for a spec is a string, it will be treated as an alias to that -other key. - -##### Example - -```javascript -const MyAppOpts = figgyPudding({ - lg: 'log', - log: { - default: () => require('npmlog') - }, - cache: {} -}) -``` - -#### `> Opts(...providers)` - -Instantiates an options object defined by `figgyPudding()`, which uses -`providers`, in order, to find requested properties. - -Each provider can be either a plain object, a `Map`-like object (that is, one -with a `.get()` method) or another figgyPudding `Opts` object. - -When nesting `Opts` objects, their properties will not become available to the -new object, but any further nested `Opts` that reference that property _will_ be -able to read from their grandparent, as long as they define that key. Default -values for nested `Opts` parents will be used, if found. - -##### Example - -```javascript -const ReqOpts = figgyPudding({ - follow: {} -}) - -const opts = ReqOpts({ - follow: true, - log: require('npmlog') -}) - -opts.get('follow') // => true -opts.get('log') // => Error: ReqOpts does not define `log` - -const MoreOpts = figgyPudding({ - log: {} -}) -MoreOpts(opts).log // => npmlog object (passed in from original plain obj) -MoreOpts(opts).get('follow') // => Error: MoreOpts does not define `follow` -``` diff --git a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js b/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js deleted file mode 100644 index c13d143862ddd..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict' - -class FiggyPudding { - constructor (specs, opts, providers) { - this.specs = specs || {} - this.opts = opts || (() => false) - this.providers = providers - this.isFiggyPudding = true - } - get (key) { - return pudGet(this, key, true) - } -} - -function pudGet (pud, key, validate) { - let spec = pud.specs[key] - if (typeof spec === 'string') { - key = spec - spec = pud.specs[key] - } - if (validate && !spec && (!pud.opts.other || !pud.opts.other(key))) { - throw new Error(`invalid config key requested: ${key}`) - } else { - if (!spec) { spec = {} } - let ret - for (let p of pud.providers) { - if (p.isFiggyPudding) { - ret = pudGet(p, key, false) - } else if (typeof p.get === 'function') { - ret = p.get(key) - } else { - ret = p[key] - } - if (ret !== undefined) { - break - } - } - if (ret === undefined && spec.default !== undefined) { - if (typeof spec.default === 'function') { - return spec.default() - } else { - return spec.default - } - } else { - return ret - } - } -} - -module.exports = figgyPudding -function figgyPudding (specs, opts) { - function factory () { - return new FiggyPudding( - specs, - opts, - [].slice.call(arguments).filter(x => x != null && typeof x === 'object') - ) - } - return factory -} diff --git a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json b/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json deleted file mode 100644 index 7e71124643c25..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "_from": "figgy-pudding@^2.0.1", - "_id": "figgy-pudding@2.0.1", - "_inBundle": false, - "_integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==", - "_location": "/npm-registry-fetch/figgy-pudding", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "figgy-pudding@^2.0.1", - "name": "figgy-pudding", - "escapedName": "figgy-pudding", - "rawSpec": "^2.0.1", - "saveSpec": null, - "fetchSpec": "^2.0.1" - }, - "_requiredBy": [ - "/npm-registry-fetch" - ], - "_resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz", - "_shasum": "56c8fc878e06e1090799b9bcc91cbd85c2c92278", - "_spec": "figgy-pudding@^2.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch", - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - "bugs": { - "url": "https://github.com/zkat/figgy-pudding/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Delicious, festive, cascading config/opts definitions", - "devDependencies": { - "standard": "^11.0.1", - "standard-version": "^4.3.0", - "tap": "^11.1.2", - "weallbehave": "^1.2.0", - "weallcontribute": "^1.0.8" - }, - "files": [ - "*.js", - "lib" - ], - "homepage": "https://github.com/zkat/figgy-pudding#readme", - "keywords": [ - "config", - "options", - "yummy" - ], - "license": "ISC", - "main": "index.js", - "name": "figgy-pudding", - "repository": { - "type": "git", - "url": "git+https://github.com/zkat/figgy-pudding.git" - }, - "scripts": { - "postrelease": "npm publish && git push --follow-tags", - "prerelease": "npm t", - "pretest": "standard", - "release": "standard-version -s", - "test": "tap -J --coverage test/*.js", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" - }, - "version": "2.0.1" -} diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md deleted file mode 100644 index 123133fe61876..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md +++ /dev/null @@ -1,525 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - - -# [3.0.0](https://github.com/zkat/make-fetch-happen/compare/v2.6.0...v3.0.0) (2018-03-12) - - -### Bug Fixes - -* **license:** switch to ISC ([#49](https://github.com/zkat/make-fetch-happen/issues/49)) ([bf90c6d](https://github.com/zkat/make-fetch-happen/commit/bf90c6d)) -* **standard:** standard@11 update ([ff0aa70](https://github.com/zkat/make-fetch-happen/commit/ff0aa70)) - - -### BREAKING CHANGES - -* **license:** license changed from CC0 to ISC. - - - - -# [2.6.0](https://github.com/zkat/make-fetch-happen/compare/v2.5.0...v2.6.0) (2017-11-14) - - -### Bug Fixes - -* **integrity:** disable node-fetch compress when checking integrity (#42) ([a7cc74c](https://github.com/zkat/make-fetch-happen/commit/a7cc74c)) - - -### Features - -* **onretry:** Add `options.onRetry` (#48) ([f90ccff](https://github.com/zkat/make-fetch-happen/commit/f90ccff)) - - - - -# [2.5.0](https://github.com/zkat/make-fetch-happen/compare/v2.4.13...v2.5.0) (2017-08-24) - - -### Bug Fixes - -* **agent:** support timeout durations greater than 30 seconds ([04875ae](https://github.com/zkat/make-fetch-happen/commit/04875ae)), closes [#35](https://github.com/zkat/make-fetch-happen/issues/35) - - -### Features - -* **cache:** export cache deletion functionality (#40) ([3da4250](https://github.com/zkat/make-fetch-happen/commit/3da4250)) - - - - -## [2.4.13](https://github.com/zkat/make-fetch-happen/compare/v2.4.12...v2.4.13) (2017-06-29) - - -### Bug Fixes - -* **deps:** bump other deps for bugfixes ([eab8297](https://github.com/zkat/make-fetch-happen/commit/eab8297)) -* **proxy:** bump proxy deps with bugfixes (#32) ([632f860](https://github.com/zkat/make-fetch-happen/commit/632f860)), closes [#32](https://github.com/zkat/make-fetch-happen/issues/32) - - - - -## [2.4.12](https://github.com/zkat/make-fetch-happen/compare/v2.4.11...v2.4.12) (2017-06-06) - - -### Bug Fixes - -* **cache:** encode x-local-cache-etc headers to be header-safe ([dc9fb1b](https://github.com/zkat/make-fetch-happen/commit/dc9fb1b)) - - - - -## [2.4.11](https://github.com/zkat/make-fetch-happen/compare/v2.4.10...v2.4.11) (2017-06-05) - - -### Bug Fixes - -* **deps:** bump deps with ssri fix ([bef1994](https://github.com/zkat/make-fetch-happen/commit/bef1994)) - - - - -## [2.4.10](https://github.com/zkat/make-fetch-happen/compare/v2.4.9...v2.4.10) (2017-05-31) - - -### Bug Fixes - -* **deps:** bump dep versions with bugfixes ([0af4003](https://github.com/zkat/make-fetch-happen/commit/0af4003)) -* **proxy:** use auth parameter for proxy authentication (#30) ([c687306](https://github.com/zkat/make-fetch-happen/commit/c687306)) - - - - -## [2.4.9](https://github.com/zkat/make-fetch-happen/compare/v2.4.8...v2.4.9) (2017-05-25) - - -### Bug Fixes - -* **cache:** use the passed-in promise for resolving cache stuff ([4c46257](https://github.com/zkat/make-fetch-happen/commit/4c46257)) - - - - -## [2.4.8](https://github.com/zkat/make-fetch-happen/compare/v2.4.7...v2.4.8) (2017-05-25) - - -### Bug Fixes - -* **cache:** pass uid/gid/Promise through to cache ([a847c92](https://github.com/zkat/make-fetch-happen/commit/a847c92)) - - - - -## [2.4.7](https://github.com/zkat/make-fetch-happen/compare/v2.4.6...v2.4.7) (2017-05-24) - - -### Bug Fixes - -* **deps:** pull in various fixes from deps ([fc2a587](https://github.com/zkat/make-fetch-happen/commit/fc2a587)) - - - - -## [2.4.6](https://github.com/zkat/make-fetch-happen/compare/v2.4.5...v2.4.6) (2017-05-24) - - -### Bug Fixes - -* **proxy:** choose agent for http(s)-proxy by protocol of destUrl ([ea4832a](https://github.com/zkat/make-fetch-happen/commit/ea4832a)) -* **proxy:** make socks proxy working ([1de810a](https://github.com/zkat/make-fetch-happen/commit/1de810a)) -* **proxy:** revert previous proxy solution ([563b0d8](https://github.com/zkat/make-fetch-happen/commit/563b0d8)) - - - - -## [2.4.5](https://github.com/zkat/make-fetch-happen/compare/v2.4.4...v2.4.5) (2017-05-24) - - -### Bug Fixes - -* **proxy:** use the destination url when determining agent ([1a714e7](https://github.com/zkat/make-fetch-happen/commit/1a714e7)) - - - - -## [2.4.4](https://github.com/zkat/make-fetch-happen/compare/v2.4.3...v2.4.4) (2017-05-23) - - -### Bug Fixes - -* **redirect:** handle redirects explicitly (#27) ([4c4af54](https://github.com/zkat/make-fetch-happen/commit/4c4af54)) - - - - -## [2.4.3](https://github.com/zkat/make-fetch-happen/compare/v2.4.2...v2.4.3) (2017-05-06) - - -### Bug Fixes - -* **redirect:** redirects now delete authorization if hosts fail to match ([c071805](https://github.com/zkat/make-fetch-happen/commit/c071805)) - - - - -## [2.4.2](https://github.com/zkat/make-fetch-happen/compare/v2.4.1...v2.4.2) (2017-05-04) - - -### Bug Fixes - -* **cache:** reduce race condition window by checking for content ([24544b1](https://github.com/zkat/make-fetch-happen/commit/24544b1)) -* **match:** Rewrite the conditional stream logic (#25) ([66bba4b](https://github.com/zkat/make-fetch-happen/commit/66bba4b)) - - - - -## [2.4.1](https://github.com/zkat/make-fetch-happen/compare/v2.4.0...v2.4.1) (2017-04-28) - - -### Bug Fixes - -* **memoization:** missed spots + allow passthrough of memo objs ([ac0cd12](https://github.com/zkat/make-fetch-happen/commit/ac0cd12)) - - - - -# [2.4.0](https://github.com/zkat/make-fetch-happen/compare/v2.3.0...v2.4.0) (2017-04-28) - - -### Bug Fixes - -* **memoize:** cacache had a broken memoizer ([8a9ed4c](https://github.com/zkat/make-fetch-happen/commit/8a9ed4c)) - - -### Features - -* **memoization:** only slurp stuff into memory if opts.memoize is not false ([0744adc](https://github.com/zkat/make-fetch-happen/commit/0744adc)) - - - - -# [2.3.0](https://github.com/zkat/make-fetch-happen/compare/v2.2.6...v2.3.0) (2017-04-27) - - -### Features - -* **agent:** added opts.strictSSL and opts.localAddress ([c35015a](https://github.com/zkat/make-fetch-happen/commit/c35015a)) -* **proxy:** Added opts.noProxy and NO_PROXY support ([f45c915](https://github.com/zkat/make-fetch-happen/commit/f45c915)) - - - - -## [2.2.6](https://github.com/zkat/make-fetch-happen/compare/v2.2.5...v2.2.6) (2017-04-26) - - -### Bug Fixes - -* **agent:** check uppercase & lowercase proxy env (#24) ([acf2326](https://github.com/zkat/make-fetch-happen/commit/acf2326)), closes [#22](https://github.com/zkat/make-fetch-happen/issues/22) -* **deps:** switch to node-fetch-npm and stop bundling ([3db603b](https://github.com/zkat/make-fetch-happen/commit/3db603b)) - - - - -## [2.2.5](https://github.com/zkat/make-fetch-happen/compare/v2.2.4...v2.2.5) (2017-04-23) - - -### Bug Fixes - -* **deps:** bump cacache and use its size feature ([926c1d3](https://github.com/zkat/make-fetch-happen/commit/926c1d3)) - - - - -## [2.2.4](https://github.com/zkat/make-fetch-happen/compare/v2.2.3...v2.2.4) (2017-04-18) - - -### Bug Fixes - -* **integrity:** hash verification issues fixed ([07f9402](https://github.com/zkat/make-fetch-happen/commit/07f9402)) - - - - -## [2.2.3](https://github.com/zkat/make-fetch-happen/compare/v2.2.2...v2.2.3) (2017-04-18) - - -### Bug Fixes - -* **staleness:** responses older than 8h were never stale :< ([b54dd75](https://github.com/zkat/make-fetch-happen/commit/b54dd75)) -* **warning:** remove spurious warning, make format more spec-compliant ([2e4f6bb](https://github.com/zkat/make-fetch-happen/commit/2e4f6bb)) - - - - -## [2.2.2](https://github.com/zkat/make-fetch-happen/compare/v2.2.1...v2.2.2) (2017-04-12) - - -### Bug Fixes - -* **retry:** stop retrying 404s ([6fafd53](https://github.com/zkat/make-fetch-happen/commit/6fafd53)) - - - - -## [2.2.1](https://github.com/zkat/make-fetch-happen/compare/v2.2.0...v2.2.1) (2017-04-10) - - -### Bug Fixes - -* **deps:** move test-only deps to devDeps ([2daaf80](https://github.com/zkat/make-fetch-happen/commit/2daaf80)) - - - - -# [2.2.0](https://github.com/zkat/make-fetch-happen/compare/v2.1.0...v2.2.0) (2017-04-09) - - -### Bug Fixes - -* **cache:** treat caches as private ([57b7dc2](https://github.com/zkat/make-fetch-happen/commit/57b7dc2)) - - -### Features - -* **retry:** accept shorthand retry settings ([dfed69d](https://github.com/zkat/make-fetch-happen/commit/dfed69d)) - - - - -# [2.1.0](https://github.com/zkat/make-fetch-happen/compare/v2.0.4...v2.1.0) (2017-04-09) - - -### Features - -* **cache:** cache now obeys Age and a variety of other things (#13) ([7b9652d](https://github.com/zkat/make-fetch-happen/commit/7b9652d)) - - - - -## [2.0.4](https://github.com/zkat/make-fetch-happen/compare/v2.0.3...v2.0.4) (2017-04-09) - - -### Bug Fixes - -* **agent:** accept Request as fetch input, not just strings ([b71669a](https://github.com/zkat/make-fetch-happen/commit/b71669a)) - - - - -## [2.0.3](https://github.com/zkat/make-fetch-happen/compare/v2.0.2...v2.0.3) (2017-04-09) - - -### Bug Fixes - -* **deps:** seriously ([c29e7e7](https://github.com/zkat/make-fetch-happen/commit/c29e7e7)) - - - - -## [2.0.2](https://github.com/zkat/make-fetch-happen/compare/v2.0.1...v2.0.2) (2017-04-09) - - -### Bug Fixes - -* **deps:** use bundleDeps instead ([c36ebf0](https://github.com/zkat/make-fetch-happen/commit/c36ebf0)) - - - - -## [2.0.1](https://github.com/zkat/make-fetch-happen/compare/v2.0.0...v2.0.1) (2017-04-09) - - -### Bug Fixes - -* **deps:** make sure node-fetch tarball included in release ([3bf49d1](https://github.com/zkat/make-fetch-happen/commit/3bf49d1)) - - - - -# [2.0.0](https://github.com/zkat/make-fetch-happen/compare/v1.7.0...v2.0.0) (2017-04-09) - - -### Bug Fixes - -* **deps:** manually pull in newer node-fetch to avoid babel prod dep ([66e5e87](https://github.com/zkat/make-fetch-happen/commit/66e5e87)) -* **retry:** be more specific about when we retry ([a47b782](https://github.com/zkat/make-fetch-happen/commit/a47b782)) - - -### Features - -* **agent:** add ca/cert/key support to auto-agent (#15) ([57585a7](https://github.com/zkat/make-fetch-happen/commit/57585a7)) - - -### BREAKING CHANGES - -* **agent:** pac proxies are no longer supported. -* **retry:** Retry logic has changes. - -* 404s, 420s, and 429s all retry now. -* ENOTFOUND no longer retries. -* Only ECONNRESET, ECONNREFUSED, EADDRINUSE, ETIMEDOUT, and `request-timeout` errors are retried. - - - - -# [1.7.0](https://github.com/zkat/make-fetch-happen/compare/v1.6.0...v1.7.0) (2017-04-08) - - -### Features - -* **cache:** add useful headers to inform users about cached data ([9bd7b00](https://github.com/zkat/make-fetch-happen/commit/9bd7b00)) - - - - -# [1.6.0](https://github.com/zkat/make-fetch-happen/compare/v1.5.1...v1.6.0) (2017-04-06) - - -### Features - -* **agent:** better, keepalive-supporting, default http agents ([16277f6](https://github.com/zkat/make-fetch-happen/commit/16277f6)) - - - - -## [1.5.1](https://github.com/zkat/make-fetch-happen/compare/v1.5.0...v1.5.1) (2017-04-05) - - -### Bug Fixes - -* **cache:** bump cacache for its fixed error messages ([2f2b916](https://github.com/zkat/make-fetch-happen/commit/2f2b916)) -* **cache:** fix handling of errors in cache reads ([5729222](https://github.com/zkat/make-fetch-happen/commit/5729222)) - - - - -# [1.5.0](https://github.com/zkat/make-fetch-happen/compare/v1.4.0...v1.5.0) (2017-04-04) - - -### Features - -* **retry:** retry requests on 408 timeouts, too ([8d8b5bd](https://github.com/zkat/make-fetch-happen/commit/8d8b5bd)) - - - - -# [1.4.0](https://github.com/zkat/make-fetch-happen/compare/v1.3.1...v1.4.0) (2017-04-04) - - -### Bug Fixes - -* **cache:** stop relying on BB.catch ([2b04494](https://github.com/zkat/make-fetch-happen/commit/2b04494)) - - -### Features - -* **retry:** report retry attempt number as extra header ([fd50927](https://github.com/zkat/make-fetch-happen/commit/fd50927)) - - - - -## [1.3.1](https://github.com/zkat/make-fetch-happen/compare/v1.3.0...v1.3.1) (2017-04-04) - - -### Bug Fixes - -* **cache:** pretend cache entry is missing on ENOENT ([9c2bb26](https://github.com/zkat/make-fetch-happen/commit/9c2bb26)) - - - - -# [1.3.0](https://github.com/zkat/make-fetch-happen/compare/v1.2.1...v1.3.0) (2017-04-04) - - -### Bug Fixes - -* **cache:** if metadata is missing for some odd reason, ignore the entry ([a021a6b](https://github.com/zkat/make-fetch-happen/commit/a021a6b)) - - -### Features - -* **cache:** add special headers when request was loaded straight from cache ([8a7dbd1](https://github.com/zkat/make-fetch-happen/commit/8a7dbd1)) -* **cache:** allow configuring algorithms to be calculated on insertion ([bf4a0f2](https://github.com/zkat/make-fetch-happen/commit/bf4a0f2)) - - - - -## [1.2.1](https://github.com/zkat/make-fetch-happen/compare/v1.2.0...v1.2.1) (2017-04-03) - - -### Bug Fixes - -* **integrity:** update cacache and ssri and change EBADCHECKSUM -> EINTEGRITY ([b6cf6f6](https://github.com/zkat/make-fetch-happen/commit/b6cf6f6)) - - - - -# [1.2.0](https://github.com/zkat/make-fetch-happen/compare/v1.1.0...v1.2.0) (2017-04-03) - - -### Features - -* **integrity:** full Subresource Integrity support (#10) ([a590159](https://github.com/zkat/make-fetch-happen/commit/a590159)) - - - - -# [1.1.0](https://github.com/zkat/make-fetch-happen/compare/v1.0.1...v1.1.0) (2017-04-01) - - -### Features - -* **opts:** fetch.defaults() for default options ([522a65e](https://github.com/zkat/make-fetch-happen/commit/522a65e)) - - - - -## [1.0.1](https://github.com/zkat/make-fetch-happen/compare/v1.0.0...v1.0.1) (2017-04-01) - - - - -# 1.0.0 (2017-04-01) - - -### Bug Fixes - -* **cache:** default on cache-control header ([b872a2c](https://github.com/zkat/make-fetch-happen/commit/b872a2c)) -* standard stuff and cache matching ([753f2c2](https://github.com/zkat/make-fetch-happen/commit/753f2c2)) -* **agent:** nudge around things with opts.agent ([ed62b57](https://github.com/zkat/make-fetch-happen/commit/ed62b57)) -* **agent:** {agent: false} has special behavior ([b8cc923](https://github.com/zkat/make-fetch-happen/commit/b8cc923)) -* **cache:** invalidation on non-GET ([fe78fac](https://github.com/zkat/make-fetch-happen/commit/fe78fac)) -* **cache:** make force-cache and only-if-cached work as expected ([f50e9df](https://github.com/zkat/make-fetch-happen/commit/f50e9df)) -* **cache:** more spec compliance ([d5a56db](https://github.com/zkat/make-fetch-happen/commit/d5a56db)) -* **cache:** only cache 200 gets ([0abb25a](https://github.com/zkat/make-fetch-happen/commit/0abb25a)) -* **cache:** only load cache code if cache opt is a string ([250fcd5](https://github.com/zkat/make-fetch-happen/commit/250fcd5)) -* **cache:** oops ([e3fa15a](https://github.com/zkat/make-fetch-happen/commit/e3fa15a)) -* **cache:** refactored warning removal into main file ([5b0a9f9](https://github.com/zkat/make-fetch-happen/commit/5b0a9f9)) -* **cache:** req constructor no longer needed in Cache ([5b74cbc](https://github.com/zkat/make-fetch-happen/commit/5b74cbc)) -* **cache:** standard fetch api calls cacheMode "cache" ([6fba805](https://github.com/zkat/make-fetch-happen/commit/6fba805)) -* **cache:** was using wrong method for non-GET/HEAD cache invalidation ([810763a](https://github.com/zkat/make-fetch-happen/commit/810763a)) -* **caching:** a bunch of cache-related fixes ([8ebda1d](https://github.com/zkat/make-fetch-happen/commit/8ebda1d)) -* **deps:** `cacache[@6](https://github.com/6).3.0` - race condition fixes ([9528442](https://github.com/zkat/make-fetch-happen/commit/9528442)) -* **freshness:** fix regex for cacheControl matching ([070db86](https://github.com/zkat/make-fetch-happen/commit/070db86)) -* **freshness:** fixed default freshness heuristic value ([5d29e88](https://github.com/zkat/make-fetch-happen/commit/5d29e88)) -* **logging:** remove console.log calls ([a1d0a47](https://github.com/zkat/make-fetch-happen/commit/a1d0a47)) -* **method:** node-fetch guarantees uppercase ([a1d68d6](https://github.com/zkat/make-fetch-happen/commit/a1d68d6)) -* **opts:** simplified opts handling ([516fd6e](https://github.com/zkat/make-fetch-happen/commit/516fd6e)) -* **proxy:** pass proxy option directly to ProxyAgent ([3398460](https://github.com/zkat/make-fetch-happen/commit/3398460)) -* **retry:** false -> {retries: 0} ([297fbb6](https://github.com/zkat/make-fetch-happen/commit/297fbb6)) -* **retry:** only retry put if body is not a stream ([a24e599](https://github.com/zkat/make-fetch-happen/commit/a24e599)) -* **retry:** skip retries if body is a stream for ANY method ([780c0f8](https://github.com/zkat/make-fetch-happen/commit/780c0f8)) - - -### Features - -* **api:** initial implementation -- can make and cache requests ([7d55b49](https://github.com/zkat/make-fetch-happen/commit/7d55b49)) -* **fetch:** injectable cache, and retry support ([87b84bf](https://github.com/zkat/make-fetch-happen/commit/87b84bf)) - - -### BREAKING CHANGES - -* **cache:** opts.cache -> opts.cacheManager; opts.cacheMode -> opts.cache -* **fetch:** opts.cache accepts a Cache-like obj or a path. Requests are now retried. -* **api:** actual api implemented diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE deleted file mode 100644 index 8d28acf866d93..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md deleted file mode 100644 index 4d12d8dae7e31..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md +++ /dev/null @@ -1,404 +0,0 @@ -# make-fetch-happen [![npm version](https://img.shields.io/npm/v/make-fetch-happen.svg)](https://npm.im/make-fetch-happen) [![license](https://img.shields.io/npm/l/make-fetch-happen.svg)](https://npm.im/make-fetch-happen) [![Travis](https://img.shields.io/travis/zkat/make-fetch-happen.svg)](https://travis-ci.org/zkat/make-fetch-happen) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/make-fetch-happen?svg=true)](https://ci.appveyor.com/project/zkat/make-fetch-happen) [![Coverage Status](https://coveralls.io/repos/github/zkat/make-fetch-happen/badge.svg?branch=latest)](https://coveralls.io/github/zkat/make-fetch-happen?branch=latest) - - -[`make-fetch-happen`](https://github.com/zkat/make-fetch-happen) is a Node.js -library that wraps [`node-fetch-npm`](https://github.com/npm/node-fetch-npm) with additional -features [`node-fetch`](https://github.com/bitinn/node-fetch) doesn't intend to include, including HTTP Cache support, request -pooling, proxies, retries, [and more](#features)! - -## Install - -`$ npm install --save make-fetch-happen` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * [`fetch`](#fetch) - * [`fetch.defaults`](#fetch-defaults) - * [`node-fetch` options](#node-fetch-options) - * [`make-fetch-happen` options](#extra-options) - * [`opts.cacheManager`](#opts-cache-manager) - * [`opts.cache`](#opts-cache) - * [`opts.proxy`](#opts-proxy) - * [`opts.noProxy`](#opts-no-proxy) - * [`opts.ca, opts.cert, opts.key`](#https-opts) - * [`opts.maxSockets`](#opts-max-sockets) - * [`opts.retry`](#opts-retry) - * [`opts.onRetry`](#opts-onretry) - * [`opts.integrity`](#opts-integrity) -* [Message From Our Sponsors](#wow) - -### Example - -```javascript -const fetch = require('make-fetch-happen').defaults({ - cacheManager: './my-cache' // path where cache will be written (and read) -}) - -fetch('https://registry.npmjs.org/make-fetch-happen').then(res => { - return res.json() // download the body as JSON -}).then(body => { - console.log(`got ${body.name} from web`) - return fetch('https://registry.npmjs.org/make-fetch-happen', { - cache: 'no-cache' // forces a conditional request - }) -}).then(res => { - console.log(res.status) // 304! cache validated! - return res.json().then(body => { - console.log(`got ${body.name} from cache`) - }) -}) -``` - -### Features - -* Builds around [`node-fetch`](https://npm.im/node-fetch) for the core [`fetch` API](https://fetch.spec.whatwg.org) implementation -* Request pooling out of the box -* Quite fast, really -* Automatic HTTP-semantics-aware request retries -* Cache-fallback automatic "offline mode" -* Proxy support (http, https, socks, socks4, socks5) -* Built-in request caching following full HTTP caching rules (`Cache-Control`, `ETag`, `304`s, cache fallback on error, etc). -* Customize cache storage with any [Cache API](https://developer.mozilla.org/en-US/docs/Web/API/Cache)-compliant `Cache` instance. Cache to Redis! -* Node.js Stream support -* Transparent gzip and deflate support -* [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) support -* Literally punches nazis -* (PENDING) Range request caching and resuming - -### Contributing - -The make-fetch-happen team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear. - -All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other. - -Please refer to the [Changelog](CHANGELOG.md) for project history details, too. - -Happy hacking! - -### API - -#### `> fetch(uriOrRequest, [opts]) -> Promise` - -This function implements most of the [`fetch` API](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch): given a `uri` string or a `Request` instance, it will fire off an http request and return a Promise containing the relevant response. - -If `opts` is provided, the [`node-fetch`-specific options](#node-fetch-options) will be passed to that library. There are also [additional options](#extra-options) specific to make-fetch-happen that add various features, such as HTTP caching, integrity verification, proxy support, and more. - -##### Example - -```javascript -fetch('https://google.com').then(res => res.buffer()) -``` - -#### `> fetch.defaults([defaultUrl], [defaultOpts])` - -Returns a new `fetch` function that will call `make-fetch-happen` using `defaultUrl` and `defaultOpts` as default values to any calls. - -A defaulted `fetch` will also have a `.defaults()` method, so they can be chained. - -##### Example - -```javascript -const fetch = require('make-fetch-happen').defaults({ - cacheManager: './my-local-cache' -}) - -fetch('https://registry.npmjs.org/make-fetch-happen') // will always use the cache -``` - -#### `> node-fetch options` - -The following options for `node-fetch` are used as-is: - -* method -* body -* redirect -* follow -* timeout -* compress -* size - -These other options are modified or augmented by make-fetch-happen: - -* headers - Default `User-Agent` set to make-fetch happen. `Connection` is set to `keep-alive` or `close` automatically depending on `opts.agent`. -* agent - * If agent is null, an http or https Agent will be automatically used. By default, these will be `http.globalAgent` and `https.globalAgent`. - * If [`opts.proxy`](#opts-proxy) is provided and `opts.agent` is null, the agent will be set to an appropriate proxy-handling agent. - * If `opts.agent` is an object, it will be used as the request-pooling agent argument for this request. - * If `opts.agent` is `false`, it will be passed as-is to the underlying request library. This causes a new Agent to be spawned for every request. - -For more details, see [the documentation for `node-fetch` itself](https://github.com/bitinn/node-fetch#options). - -#### `> make-fetch-happen options` - -make-fetch-happen augments the `node-fetch` API with additional features available through extra options. The following extra options are available: - -* [`opts.cacheManager`](#opts-cache-manager) - Cache target to read/write -* [`opts.cache`](#opts-cache) - `fetch` cache mode. Controls cache *behavior*. -* [`opts.proxy`](#opts-proxy) - Proxy agent -* [`opts.noProxy`](#opts-no-proxy) - Domain segments to disable proxying for. -* [`opts.ca, opts.cert, opts.key, opts.strictSSL`](#https-opts) -* [`opts.localAddress`](#opts-local-address) -* [`opts.maxSockets`](#opts-max-sockets) -* [`opts.retry`](#opts-retry) - Request retry settings -* [`opts.onRetry`](#opts-onretry) - a function called whenever a retry is attempted -* [`opts.integrity`](#opts-integrity) - [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata. - -#### `> opts.cacheManager` - -Either a `String` or a `Cache`. If the former, it will be assumed to be a `Path` to be used as the cache root for [`cacache`](https://npm.im/cacache). - -If an object is provided, it will be assumed to be a compliant [`Cache` instance](https://developer.mozilla.org/en-US/docs/Web/API/Cache). Only `Cache.match()`, `Cache.put()`, and `Cache.delete()` are required. Options objects will not be passed in to `match()` or `delete()`. - -By implementing this API, you can customize the storage backend for make-fetch-happen itself -- for example, you could implement a cache that uses `redis` for caching, or simply keeps everything in memory. Most of the caching logic exists entirely on the make-fetch-happen side, so the only thing you need to worry about is reading, writing, and deleting, as well as making sure `fetch.Response` objects are what gets returned. - -You can refer to `cache.js` in the make-fetch-happen source code for a reference implementation. - -**NOTE**: Requests will not be cached unless their response bodies are consumed. You will need to use one of the `res.json()`, `res.buffer()`, etc methods on the response, or drain the `res.body` stream, in order for it to be written. - -The default cache manager also adds the following headers to cached responses: - -* `X-Local-Cache`: Path to the cache the content was found in -* `X-Local-Cache-Key`: Unique cache entry key for this response -* `X-Local-Cache-Hash`: Specific integrity hash for the cached entry -* `X-Local-Cache-Time`: UTCString of the cache insertion time for the entry - -Using [`cacache`](https://npm.im/cacache), a call like this may be used to -manually fetch the cached entry: - -```javascript -const h = response.headers -cacache.get(h.get('x-local-cache'), h.get('x-local-cache-key')) - -// grab content only, directly: -cacache.get.byDigest(h.get('x-local-cache'), h.get('x-local-cache-hash')) -``` - -##### Example - -```javascript -fetch('https://registry.npmjs.org/make-fetch-happen', { - cacheManager: './my-local-cache' -}) // -> 200-level response will be written to disk - -fetch('https://npm.im/cacache', { - cacheManager: new MyCustomRedisCache(process.env.PORT) -}) // -> 200-level response will be written to redis -``` - -A possible (minimal) implementation for `MyCustomRedisCache`: - -```javascript -const bluebird = require('bluebird') -const redis = require("redis") -bluebird.promisifyAll(redis.RedisClient.prototype) -class MyCustomRedisCache { - constructor (opts) { - this.redis = redis.createClient(opts) - } - match (req) { - return this.redis.getAsync(req.url).then(res => { - if (res) { - const parsed = JSON.parse(res) - return new fetch.Response(parsed.body, { - url: req.url, - headers: parsed.headers, - status: 200 - }) - } - }) - } - put (req, res) { - return res.buffer().then(body => { - return this.redis.setAsync(req.url, JSON.stringify({ - body: body, - headers: res.headers.raw() - })) - }).then(() => { - // return the response itself - return res - }) - } - 'delete' (req) { - return this.redis.unlinkAsync(req.url) - } -} -``` - -#### `> opts.cache` - -This option follows the standard `fetch` API cache option. This option will do nothing if [`opts.cacheManager`](#opts-cache-manager) is null. The following values are accepted (as strings): - -* `default` - Fetch will inspect the HTTP cache on the way to the network. If there is a fresh response it will be used. If there is a stale response a conditional request will be created, and a normal request otherwise. It then updates the HTTP cache with the response. If the revalidation request fails (for example, on a 500 or if you're offline), the stale response will be returned. -* `no-store` - Fetch behaves as if there is no HTTP cache at all. -* `reload` - Fetch behaves as if there is no HTTP cache on the way to the network. Ergo, it creates a normal request and updates the HTTP cache with the response. -* `no-cache` - Fetch creates a conditional request if there is a response in the HTTP cache and a normal request otherwise. It then updates the HTTP cache with the response. -* `force-cache` - Fetch uses any response in the HTTP cache matching the request, not paying attention to staleness. If there was no response, it creates a normal request and updates the HTTP cache with the response. -* `only-if-cached` - Fetch uses any response in the HTTP cache matching the request, not paying attention to staleness. If there was no response, it returns a network error. (Can only be used when request’s mode is "same-origin". Any cached redirects will be followed assuming request’s redirect mode is "follow" and the redirects do not violate request’s mode.) - -(Note: option descriptions are taken from https://fetch.spec.whatwg.org/#http-network-or-cache-fetch) - -##### Example - -```javascript -const fetch = require('make-fetch-happen').defaults({ - cacheManager: './my-cache' -}) - -// Will error with ENOTCACHED if we haven't already cached this url -fetch('https://registry.npmjs.org/make-fetch-happen', { - cache: 'only-if-cached' -}) - -// Will refresh any local content and cache the new response -fetch('https://registry.npmjs.org/make-fetch-happen', { - cache: 'reload' -}) - -// Will use any local data, even if stale. Otherwise, will hit network. -fetch('https://registry.npmjs.org/make-fetch-happen', { - cache: 'force-cache' -}) -``` - -#### `> opts.proxy` - -A string or `url.parse`-d URI to proxy through. Different Proxy handlers will be -used depending on the proxy's protocol. - -Additionally, `process.env.HTTP_PROXY`, `process.env.HTTPS_PROXY`, and -`process.env.PROXY` are used if present and no `opts.proxy` value is provided. - -(Pending) `process.env.NO_PROXY` may also be configured to skip proxying requests for all, or specific domains. - -##### Example - -```javascript -fetch('https://registry.npmjs.org/make-fetch-happen', { - proxy: 'https://corporate.yourcompany.proxy:4445' -}) - -fetch('https://registry.npmjs.org/make-fetch-happen', { - proxy: { - protocol: 'https:', - hostname: 'corporate.yourcompany.proxy', - port: 4445 - } -}) -``` - -#### `> opts.noProxy` - -If present, should be a comma-separated string or an array of domain extensions -that a proxy should _not_ be used for. - -This option may also be provided through `process.env.NO_PROXY`. - -#### `> opts.ca, opts.cert, opts.key, opts.strictSSL` - -These values are passed in directly to the HTTPS agent and will be used for both -proxied and unproxied outgoing HTTPS requests. They mostly correspond to the -same options the `https` module accepts, which will be themselves passed to -`tls.connect()`. `opts.strictSSL` corresponds to `rejectUnauthorized`. - -#### `> opts.localAddress` - -Passed directly to `http` and `https` request calls. Determines the local -address to bind to. - -#### `> opts.maxSockets` - -Default: 15 - -Maximum number of active concurrent sockets to use for the underlying -Http/Https/Proxy agents. This setting applies once per spawned agent. - -15 is probably a _pretty good value_ for most use-cases, and balances speed -with, uh, not knocking out people's routers. 🤓 - -#### `> opts.retry` - -An object that can be used to tune request retry settings. Retries will only be attempted on the following conditions: - -* Request method is NOT `POST` AND -* Request status is one of: `408`, `420`, `429`, or any status in the 500-range. OR -* Request errored with `ECONNRESET`, `ECONNREFUSED`, `EADDRINUSE`, `ETIMEDOUT`, or the `fetch` error `request-timeout`. - -The following are worth noting as explicitly not retried: - -* `getaddrinfo ENOTFOUND` and will be assumed to be either an unreachable domain or the user will be assumed offline. If a response is cached, it will be returned immediately. -* `ECONNRESET` currently has no support for restarting. It will eventually be supported but requires a bit more juggling due to streaming. - -If `opts.retry` is `false`, it is equivalent to `{retries: 0}` - -If `opts.retry` is a number, it is equivalent to `{retries: num}` - -The following retry options are available if you want more control over it: - -* retries -* factor -* minTimeout -* maxTimeout -* randomize - -For details on what each of these do, refer to the [`retry`](https://npm.im/retry) documentation. - -##### Example - -```javascript -fetch('https://flaky.site.com', { - retry: { - retries: 10, - randomize: true - } -}) - -fetch('http://reliable.site.com', { - retry: false -}) - -fetch('http://one-more.site.com', { - retry: 3 -}) -``` - -#### `> opts.onRetry` - -A function called whenever a retry is attempted. - -##### Example - -```javascript -fetch('https://flaky.site.com', { - onRetry() { - console.log('we will retry!') - } -}) -``` - -#### `> opts.integrity` - -Matches the response body against the given [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata. If verification fails, the request will fail with an `EINTEGRITY` error. - -`integrity` may either be a string or an [`ssri`](https://npm.im/ssri) `Integrity`-like. - -##### Example - -```javascript -fetch('https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz', { - integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q=' -}) // -> ok - -fetch('https://malicious-registry.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz', { - integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q=' -}) // Error: EINTEGRITY -``` - -### Message From Our Sponsors - -![](stop.gif) - -![](happening.gif) diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js deleted file mode 100644 index 55675946ad97d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js +++ /dev/null @@ -1,171 +0,0 @@ -'use strict' -const LRU = require('lru-cache') -const url = require('url') - -let AGENT_CACHE = new LRU({ max: 50 }) -let HttpsAgent -let HttpAgent - -module.exports = getAgent - -function getAgent (uri, opts) { - const parsedUri = url.parse(typeof uri === 'string' ? uri : uri.url) - const isHttps = parsedUri.protocol === 'https:' - const pxuri = getProxyUri(uri, opts) - - const key = [ - `https:${isHttps}`, - pxuri - ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}` - : '>no-proxy<', - `local-address:${opts.localAddress || '>no-local-address<'}`, - `strict-ssl:${isHttps ? !!opts.strictSSL : '>no-strict-ssl<'}`, - `ca:${(isHttps && opts.ca) || '>no-ca<'}`, - `cert:${(isHttps && opts.cert) || '>no-cert<'}`, - `key:${(isHttps && opts.key) || '>no-key<'}` - ].join(':') - - if (opts.agent != null) { // `agent: false` has special behavior! - return opts.agent - } - - if (AGENT_CACHE.peek(key)) { - return AGENT_CACHE.get(key) - } - - if (pxuri) { - const proxy = getProxy(pxuri, opts, isHttps) - AGENT_CACHE.set(key, proxy) - return proxy - } - - if (isHttps && !HttpsAgent) { - HttpsAgent = require('agentkeepalive').HttpsAgent - } else if (!isHttps && !HttpAgent) { - HttpAgent = require('agentkeepalive') - } - - // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout - // of zero disables the timeout behavior (OS limits still apply). Else, if - // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that - // the node-fetch-npm timeout will always fire first, giving us more - // consistent errors. - const agentTimeout = opts.timeout === 0 ? 0 : opts.timeout + 1 - - const agent = isHttps ? new HttpsAgent({ - maxSockets: opts.maxSockets || 15, - ca: opts.ca, - cert: opts.cert, - key: opts.key, - localAddress: opts.localAddress, - rejectUnauthorized: opts.strictSSL, - timeout: agentTimeout - }) : new HttpAgent({ - maxSockets: opts.maxSockets || 15, - localAddress: opts.localAddress, - timeout: agentTimeout - }) - AGENT_CACHE.set(key, agent) - return agent -} - -function checkNoProxy (uri, opts) { - const host = url.parse(uri).hostname.split('.').reverse() - let noproxy = (opts.noProxy || getProcessEnv('no_proxy')) - if (typeof noproxy === 'string') { - noproxy = noproxy.split(/\s*,\s*/g) - } - return noproxy && noproxy.some(no => { - const noParts = no.split('.').filter(x => x).reverse() - if (!noParts.length) { return false } - for (let i = 0; i < noParts.length; i++) { - if (host[i] !== noParts[i]) { - return false - } - } - return true - }) -} - -module.exports.getProcessEnv = getProcessEnv - -function getProcessEnv (env) { - if (!env) { return } - - let value - - if (Array.isArray(env)) { - for (let e of env) { - value = process.env[e] || - process.env[e.toUpperCase()] || - process.env[e.toLowerCase()] - if (typeof value !== 'undefined') { break } - } - } - - if (typeof env === 'string') { - value = process.env[env] || - process.env[env.toUpperCase()] || - process.env[env.toLowerCase()] - } - - return value -} - -function getProxyUri (uri, opts) { - const protocol = url.parse(uri).protocol - - const proxy = opts.proxy || ( - protocol === 'https:' && getProcessEnv('https_proxy') - ) || ( - protocol === 'http:' && getProcessEnv(['https_proxy', 'http_proxy', 'proxy']) - ) - if (!proxy) { return null } - - const parsedProxy = (typeof proxy === 'string') ? url.parse(proxy) : proxy - - return !checkNoProxy(uri, opts) && parsedProxy -} - -let HttpProxyAgent -let HttpsProxyAgent -let SocksProxyAgent -function getProxy (proxyUrl, opts, isHttps) { - let popts = { - host: proxyUrl.hostname, - port: proxyUrl.port, - protocol: proxyUrl.protocol, - path: proxyUrl.path, - auth: proxyUrl.auth, - ca: opts.ca, - cert: opts.cert, - key: opts.key, - timeout: opts.timeout === 0 ? 0 : opts.timeout + 1, - localAddress: opts.localAddress, - maxSockets: opts.maxSockets || 15, - rejectUnauthorized: opts.strictSSL - } - - if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') { - if (!isHttps) { - if (!HttpProxyAgent) { - HttpProxyAgent = require('http-proxy-agent') - } - - return new HttpProxyAgent(popts) - } else { - if (!HttpsProxyAgent) { - HttpsProxyAgent = require('https-proxy-agent') - } - - return new HttpsProxyAgent(popts) - } - } - if (proxyUrl.protocol.startsWith('socks')) { - if (!SocksProxyAgent) { - SocksProxyAgent = require('socks-proxy-agent') - } - - return new SocksProxyAgent(popts) - } -} diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js deleted file mode 100644 index edb9b3d036043..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js +++ /dev/null @@ -1,257 +0,0 @@ -'use strict' - -const cacache = require('cacache') -const fetch = require('node-fetch-npm') -const pipe = require('mississippi').pipe -const ssri = require('ssri') -const through = require('mississippi').through -const to = require('mississippi').to -const url = require('url') -const stream = require('stream') - -const MAX_MEM_SIZE = 5 * 1024 * 1024 // 5MB - -function cacheKey (req) { - const parsed = url.parse(req.url) - return `make-fetch-happen:request-cache:${ - url.format({ - protocol: parsed.protocol, - slashes: parsed.slashes, - host: parsed.host, - hostname: parsed.hostname, - pathname: parsed.pathname - }) - }` -} - -// This is a cacache-based implementation of the Cache standard, -// using node-fetch. -// docs: https://developer.mozilla.org/en-US/docs/Web/API/Cache -// -module.exports = class Cache { - constructor (path, opts) { - this._path = path - this._uid = opts && opts.uid - this._gid = opts && opts.gid - this.Promise = (opts && opts.Promise) || Promise - } - - // Returns a Promise that resolves to the response associated with the first - // matching request in the Cache object. - match (req, opts) { - opts = opts || {} - const key = cacheKey(req) - return cacache.get.info(this._path, key).then(info => { - return info && cacache.get.hasContent( - this._path, info.integrity, opts - ).then(exists => exists && info) - }).then(info => { - if (info && info.metadata && matchDetails(req, { - url: info.metadata.url, - reqHeaders: new fetch.Headers(info.metadata.reqHeaders), - resHeaders: new fetch.Headers(info.metadata.resHeaders), - cacheIntegrity: info.integrity, - integrity: opts && opts.integrity - })) { - const resHeaders = new fetch.Headers(info.metadata.resHeaders) - addCacheHeaders(resHeaders, this._path, key, info.integrity, info.time) - if (req.method === 'HEAD') { - return new fetch.Response(null, { - url: req.url, - headers: resHeaders, - status: 200 - }) - } - let body - const cachePath = this._path - // avoid opening cache file handles until a user actually tries to - // read from it. - if (opts.memoize !== false && info.size > MAX_MEM_SIZE) { - body = new stream.PassThrough() - const realRead = body._read - body._read = function (size) { - body._read = realRead - pipe( - cacache.get.stream.byDigest(cachePath, info.integrity, { - memoize: opts.memoize - }), - body, - err => body.emit(err)) - return realRead.call(this, size) - } - } else { - let readOnce = false - // cacache is much faster at bulk reads - body = new stream.Readable({ - read () { - if (readOnce) return this.push(null) - readOnce = true - cacache.get.byDigest(cachePath, info.integrity, { - memoize: opts.memoize - }).then(data => { - this.push(data) - this.push(null) - }, err => this.emit('error', err)) - } - }) - } - return this.Promise.resolve(new fetch.Response(body, { - url: req.url, - headers: resHeaders, - status: 200, - size: info.size - })) - } - }) - } - - // Takes both a request and its response and adds it to the given cache. - put (req, response, opts) { - opts = opts || {} - const size = response.headers.get('content-length') - const fitInMemory = !!size && opts.memoize !== false && size < MAX_MEM_SIZE - const ckey = cacheKey(req) - const cacheOpts = { - algorithms: opts.algorithms, - metadata: { - url: req.url, - reqHeaders: req.headers.raw(), - resHeaders: response.headers.raw() - }, - uid: this._uid, - gid: this._gid, - size, - memoize: fitInMemory && opts.memoize - } - if (req.method === 'HEAD' || response.status === 304) { - // Update metadata without writing - return cacache.get.info(this._path, ckey).then(info => { - // Providing these will bypass content write - cacheOpts.integrity = info.integrity - addCacheHeaders( - response.headers, this._path, ckey, info.integrity, info.time - ) - return new this.Promise((resolve, reject) => { - pipe( - cacache.get.stream.byDigest(this._path, info.integrity, cacheOpts), - cacache.put.stream(this._path, cacheKey(req), cacheOpts), - err => err ? reject(err) : resolve(response) - ) - }) - }).then(() => response) - } - let buf = [] - let bufSize = 0 - let cacheTargetStream = false - const cachePath = this._path - let cacheStream = to((chunk, enc, cb) => { - if (!cacheTargetStream) { - if (fitInMemory) { - cacheTargetStream = - to({highWaterMark: MAX_MEM_SIZE}, (chunk, enc, cb) => { - buf.push(chunk) - bufSize += chunk.length - cb() - }, done => { - cacache.put( - cachePath, - cacheKey(req), - Buffer.concat(buf, bufSize), - cacheOpts - ).then( - () => done(), - done - ) - }) - } else { - cacheTargetStream = - cacache.put.stream(cachePath, cacheKey(req), cacheOpts) - } - } - cacheTargetStream.write(chunk, enc, cb) - }, done => { - cacheTargetStream ? cacheTargetStream.end(done) : done() - }) - const oldBody = response.body - const newBody = through({highWaterMark: fitInMemory && MAX_MEM_SIZE}) - response.body = newBody - oldBody.once('error', err => newBody.emit('error', err)) - newBody.once('error', err => oldBody.emit('error', err)) - cacheStream.once('error', err => newBody.emit('error', err)) - pipe(oldBody, to((chunk, enc, cb) => { - cacheStream.write(chunk, enc, () => { - newBody.write(chunk, enc, cb) - }) - }, done => { - cacheStream.end(() => { - newBody.end(() => { - done() - }) - }) - }), err => err && newBody.emit('error', err)) - return response - } - - // Finds the Cache entry whose key is the request, and if found, deletes the - // Cache entry and returns a Promise that resolves to true. If no Cache entry - // is found, it returns false. - 'delete' (req, opts) { - opts = opts || {} - if (typeof opts.memoize === 'object') { - if (opts.memoize.reset) { - opts.memoize.reset() - } else if (opts.memoize.clear) { - opts.memoize.clear() - } else { - Object.keys(opts.memoize).forEach(k => { - opts.memoize[k] = null - }) - } - } - return cacache.rm.entry( - this._path, - cacheKey(req) - // TODO - true/false - ).then(() => false) - } -} - -function matchDetails (req, cached) { - const reqUrl = url.parse(req.url) - const cacheUrl = url.parse(cached.url) - const vary = cached.resHeaders.get('Vary') - // https://tools.ietf.org/html/rfc7234#section-4.1 - if (vary) { - if (vary.match(/\*/)) { - return false - } else { - const fieldsMatch = vary.split(/\s*,\s*/).every(field => { - return cached.reqHeaders.get(field) === req.headers.get(field) - }) - if (!fieldsMatch) { - return false - } - } - } - if (cached.integrity) { - const cachedSri = ssri.parse(cached.cacheIntegrity) - const sri = ssri.parse(cached.integrity) - const algo = sri.pickAlgorithm() - if (cachedSri[algo] && !sri[algo].some(hash => { - // cachedSri always has exactly one item per algorithm - return cachedSri[algo][0].digest === hash.digest - })) { - return false - } - } - reqUrl.hash = null - cacheUrl.hash = null - return url.format(reqUrl) === url.format(cacheUrl) -} - -function addCacheHeaders (resHeaders, path, key, hash, time) { - resHeaders.set('X-Local-Cache', encodeURIComponent(path)) - resHeaders.set('X-Local-Cache-Key', encodeURIComponent(key)) - resHeaders.set('X-Local-Cache-Hash', encodeURIComponent(hash)) - resHeaders.set('X-Local-Cache-Time', new Date(time).toUTCString()) -} diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js deleted file mode 100644 index 0f2c164e19f28..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js +++ /dev/null @@ -1,482 +0,0 @@ -'use strict' - -let Cache -const url = require('url') -const CachePolicy = require('http-cache-semantics') -const fetch = require('node-fetch-npm') -const pkg = require('./package.json') -const retry = require('promise-retry') -let ssri -const Stream = require('stream') -const getAgent = require('./agent') -const setWarning = require('./warning') - -const isURL = /^https?:/ -const USER_AGENT = `${pkg.name}/${pkg.version} (+https://npm.im/${pkg.name})` - -const RETRY_ERRORS = [ - 'ECONNRESET', // remote socket closed on us - 'ECONNREFUSED', // remote host refused to open connection - 'EADDRINUSE', // failed to bind to a local port (proxy?) - 'ETIMEDOUT' // someone in the transaction is WAY TOO SLOW - // Known codes we do NOT retry on: - // ENOTFOUND (getaddrinfo failure. Either bad hostname, or offline) -] - -const RETRY_TYPES = [ - 'request-timeout' -] - -// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch -module.exports = cachingFetch -cachingFetch.defaults = function (_uri, _opts) { - const fetch = this - if (typeof _uri === 'object') { - _opts = _uri - _uri = null - } - - function defaultedFetch (uri, opts) { - const finalOpts = Object.assign({}, _opts || {}, opts || {}) - return fetch(uri || _uri, finalOpts) - } - - defaultedFetch.defaults = fetch.defaults - defaultedFetch.delete = fetch.delete - return defaultedFetch -} - -cachingFetch.delete = cacheDelete -function cacheDelete (uri, opts) { - opts = configureOptions(opts) - if (opts.cacheManager) { - const req = new fetch.Request(uri, { - method: opts.method, - headers: opts.headers - }) - return opts.cacheManager.delete(req, opts) - } -} - -function initializeCache (opts) { - if (typeof opts.cacheManager === 'string') { - if (!Cache) { - // Default cacache-based cache - Cache = require('./cache') - } - - opts.cacheManager = new Cache(opts.cacheManager, opts) - } - - opts.cache = opts.cache || 'default' - - if (opts.cache === 'default' && isHeaderConditional(opts.headers)) { - // If header list contains `If-Modified-Since`, `If-None-Match`, - // `If-Unmodified-Since`, `If-Match`, or `If-Range`, fetch will set cache - // mode to "no-store" if it is "default". - opts.cache = 'no-store' - } -} - -function configureOptions (_opts) { - const opts = Object.assign({}, _opts || {}) - opts.method = (opts.method || 'GET').toUpperCase() - - if (opts.retry && typeof opts.retry === 'number') { - opts.retry = { retries: opts.retry } - } - - if (opts.retry === false) { - opts.retry = { retries: 0 } - } - - if (opts.cacheManager) { - initializeCache(opts) - } - - return opts -} - -function initializeSsri () { - if (!ssri) { - ssri = require('ssri') - } -} - -function cachingFetch (uri, _opts) { - const opts = configureOptions(_opts) - - if (opts.integrity) { - initializeSsri() - // if verifying integrity, node-fetch must not decompress - opts.compress = false - } - - const isCachable = (opts.method === 'GET' || opts.method === 'HEAD') && - opts.cacheManager && - opts.cache !== 'no-store' && - opts.cache !== 'reload' - - if (isCachable) { - const req = new fetch.Request(uri, { - method: opts.method, - headers: opts.headers - }) - - return opts.cacheManager.match(req, opts).then(res => { - if (res) { - const warningCode = (res.headers.get('Warning') || '').match(/^\d+/) - if (warningCode && +warningCode >= 100 && +warningCode < 200) { - // https://tools.ietf.org/html/rfc7234#section-4.3.4 - // - // If a stored response is selected for update, the cache MUST: - // - // * delete any Warning header fields in the stored response with - // warn-code 1xx (see Section 5.5); - // - // * retain any Warning header fields in the stored response with - // warn-code 2xx; - // - res.headers.delete('Warning') - } - - if (opts.cache === 'default' && !isStale(req, res)) { - return res - } - - if (opts.cache === 'default' || opts.cache === 'no-cache') { - return conditionalFetch(req, res, opts) - } - - if (opts.cache === 'force-cache' || opts.cache === 'only-if-cached') { - // 112 Disconnected operation - // SHOULD be included if the cache is intentionally disconnected from - // the rest of the network for a period of time. - // (https://tools.ietf.org/html/rfc2616#section-14.46) - setWarning(res, 112, 'Disconnected operation') - return res - } - } - - if (!res && opts.cache === 'only-if-cached') { - const errorMsg = `request to ${ - uri - } failed: cache mode is 'only-if-cached' but no cached response available.` - - const err = new Error(errorMsg) - err.code = 'ENOTCACHED' - throw err - } - - // Missing cache entry, or mode is default (if stale), reload, no-store - return remoteFetch(req.url, opts) - }) - } - - return remoteFetch(uri, opts) -} - -function iterableToObject (iter) { - const obj = {} - for (let k of iter.keys()) { - obj[k] = iter.get(k) - } - return obj -} - -function makePolicy (req, res) { - const _req = { - url: req.url, - method: req.method, - headers: iterableToObject(req.headers) - } - const _res = { - status: res.status, - headers: iterableToObject(res.headers) - } - - return new CachePolicy(_req, _res, { shared: false }) -} - -// https://tools.ietf.org/html/rfc7234#section-4.2 -function isStale (req, res) { - if (!res) { - return null - } - - const _req = { - url: req.url, - method: req.method, - headers: iterableToObject(req.headers) - } - - const policy = makePolicy(req, res) - - const responseTime = res.headers.get('x-local-cache-time') || - res.headers.get('date') || - 0 - - policy._responseTime = new Date(responseTime) - - const bool = !policy.satisfiesWithoutRevalidation(_req) - return bool -} - -function mustRevalidate (res) { - return (res.headers.get('cache-control') || '').match(/must-revalidate/i) -} - -function conditionalFetch (req, cachedRes, opts) { - const _req = { - url: req.url, - method: req.method, - headers: Object.assign({}, opts.headers || {}) - } - - const policy = makePolicy(req, cachedRes) - opts.headers = policy.revalidationHeaders(_req) - - return remoteFetch(req.url, opts) - .then(condRes => { - const revalidatedPolicy = policy.revalidatedPolicy(_req, { - status: condRes.status, - headers: iterableToObject(condRes.headers) - }) - - if (condRes.status >= 500 && !mustRevalidate(cachedRes)) { - // 111 Revalidation failed - // MUST be included if a cache returns a stale response because an - // attempt to revalidate the response failed, due to an inability to - // reach the server. - // (https://tools.ietf.org/html/rfc2616#section-14.46) - setWarning(cachedRes, 111, 'Revalidation failed') - return cachedRes - } - - if (condRes.status === 304) { // 304 Not Modified - condRes.body = cachedRes.body - return opts.cacheManager.put(req, condRes, opts) - .then(newRes => { - newRes.headers = new fetch.Headers(revalidatedPolicy.policy.responseHeaders()) - return newRes - }) - } - - return condRes - }) - .then(res => res) - .catch(err => { - if (mustRevalidate(cachedRes)) { - throw err - } else { - // 111 Revalidation failed - // MUST be included if a cache returns a stale response because an - // attempt to revalidate the response failed, due to an inability to - // reach the server. - // (https://tools.ietf.org/html/rfc2616#section-14.46) - setWarning(cachedRes, 111, 'Revalidation failed') - // 199 Miscellaneous warning - // The warning text MAY include arbitrary information to be presented to - // a human user, or logged. A system receiving this warning MUST NOT take - // any automated action, besides presenting the warning to the user. - // (https://tools.ietf.org/html/rfc2616#section-14.46) - setWarning( - cachedRes, - 199, - `Miscellaneous Warning ${err.code}: ${err.message}` - ) - - return cachedRes - } - }) -} - -function remoteFetchHandleIntegrity (res, integrity) { - const oldBod = res.body - const newBod = ssri.integrityStream({ - integrity - }) - oldBod.pipe(newBod) - res.body = newBod - oldBod.once('error', err => { - newBod.emit('error', err) - }) - newBod.once('error', err => { - oldBod.emit('error', err) - }) -} - -function remoteFetch (uri, opts) { - const agent = getAgent(uri, opts) - const headers = Object.assign({ - 'connection': agent ? 'keep-alive' : 'close', - 'user-agent': USER_AGENT - }, opts.headers || {}) - - const reqOpts = { - agent, - body: opts.body, - compress: opts.compress, - follow: opts.follow, - headers: new fetch.Headers(headers), - method: opts.method, - redirect: 'manual', - size: opts.size, - counter: opts.counter, - timeout: opts.timeout - } - - return retry( - (retryHandler, attemptNum) => { - const req = new fetch.Request(uri, reqOpts) - return fetch(req) - .then(res => { - res.headers.set('x-fetch-attempts', attemptNum) - - if (opts.integrity) { - remoteFetchHandleIntegrity(res, opts.integrity) - } - - const isStream = req.body instanceof Stream - - if (opts.cacheManager) { - const isMethodGetHead = req.method === 'GET' || - req.method === 'HEAD' - - const isCachable = opts.cache !== 'no-store' && - isMethodGetHead && - makePolicy(req, res).storable() && - res.status === 200 // No other statuses should be stored! - - if (isCachable) { - return opts.cacheManager.put(req, res, opts) - } - - if (!isMethodGetHead) { - return opts.cacheManager.delete(req).then(() => { - if (res.status >= 500 && req.method !== 'POST' && !isStream) { - if (typeof opts.onRetry === 'function') { - opts.onRetry(res) - } - - return retryHandler(res) - } - - return res - }) - } - } - - const isRetriable = req.method !== 'POST' && - !isStream && ( - res.status === 408 || // Request Timeout - res.status === 420 || // Enhance Your Calm (usually Twitter rate-limit) - res.status === 429 || // Too Many Requests ("standard" rate-limiting) - res.status >= 500 // Assume server errors are momentary hiccups - ) - - if (isRetriable) { - if (typeof opts.onRetry === 'function') { - opts.onRetry(res) - } - - return retryHandler(res) - } - - if (!fetch.isRedirect(res.status) || opts.redirect === 'manual') { - return res - } - - // handle redirects - matches behavior of npm-fetch: https://github.com/bitinn/node-fetch - if (opts.redirect === 'error') { - const err = new Error(`redirect mode is set to error: ${uri}`) - err.code = 'ENOREDIRECT' - throw err - } - - if (!res.headers.get('location')) { - const err = new Error(`redirect location header missing at: ${uri}`) - err.code = 'EINVALIDREDIRECT' - throw err - } - - if (req.counter >= req.follow) { - const err = new Error(`maximum redirect reached at: ${uri}`) - err.code = 'EMAXREDIRECT' - throw err - } - - const resolvedUrl = url.resolve(req.url, res.headers.get('location')) - let redirectURL = url.parse(resolvedUrl) - - if (isURL.test(res.headers.get('location'))) { - redirectURL = url.parse(res.headers.get('location')) - } - - // Remove authorization if changing hostnames (but not if just - // changing ports or protocols). This matches the behavior of request: - // https://github.com/request/request/blob/b12a6245/lib/redirect.js#L134-L138 - if (url.parse(req.url).hostname !== redirectURL.hostname) { - req.headers.delete('authorization') - } - - // for POST request with 301/302 response, or any request with 303 response, - // use GET when following redirect - if (res.status === 303 || - ((res.status === 301 || res.status === 302) && req.method === 'POST')) { - opts.method = 'GET' - opts.body = null - req.headers.delete('content-length') - } - - opts.headers = {} - req.headers.forEach((value, name) => { - opts.headers[name] = value - }) - - opts.counter = ++req.counter - return cachingFetch(resolvedUrl, opts) - }) - .catch(err => { - const code = err.code === 'EPROMISERETRY' ? err.retried.code : err.code - - const isRetryError = RETRY_ERRORS.indexOf(code) === -1 && - RETRY_TYPES.indexOf(err.type) === -1 - - if (req.method === 'POST' || isRetryError) { - throw err - } - - if (typeof opts.onRetry === 'function') { - opts.onRetry(err) - } - - return retryHandler(err) - }) - }, - opts.retry - ).catch(err => { - if (err.status >= 400) { - return err - } - - throw err - }) -} - -function isHeaderConditional (headers) { - if (!headers || typeof headers !== 'object') { - return false - } - - const modifiers = [ - 'if-modified-since', - 'if-none-match', - 'if-unmodified-since', - 'if-match', - 'if-range' - ] - - return Object.keys(headers) - .some(h => modifiers.indexOf(h.toLowerCase()) !== -1) -} diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json deleted file mode 100644 index ff28e528a7616..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "_from": "make-fetch-happen@^3.0.0", - "_id": "make-fetch-happen@3.0.0", - "_inBundle": false, - "_integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==", - "_location": "/npm-registry-fetch/make-fetch-happen", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "make-fetch-happen@^3.0.0", - "name": "make-fetch-happen", - "escapedName": "make-fetch-happen", - "rawSpec": "^3.0.0", - "saveSpec": null, - "fetchSpec": "^3.0.0" - }, - "_requiredBy": [ - "/npm-registry-fetch" - ], - "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz", - "_shasum": "7b661d2372fc4710ab5cc8e1fa3c290eea69a961", - "_spec": "make-fetch-happen@^3.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch", - "author": { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - "bugs": { - "url": "https://github.com/zkat/make-fetch-happen/issues" - }, - "bundleDependencies": false, - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - }, - "deprecated": false, - "description": "Opinionated, caching, retrying fetch client", - "devDependencies": { - "bluebird": "^3.5.1", - "mkdirp": "^0.5.1", - "nock": "^9.2.3", - "npmlog": "^4.1.2", - "nyc": "^11.4.1", - "require-inject": "^1.4.2", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.1", - "standard": "^11.0.0", - "standard-version": "^4.3.0", - "tacks": "^1.2.6", - "tap": "^11.1.2", - "weallbehave": "^1.0.0", - "weallcontribute": "^1.0.7" - }, - "files": [ - "*.js", - "lib" - ], - "homepage": "https://github.com/zkat/make-fetch-happen#readme", - "keywords": [ - "http", - "request", - "fetch", - "mean girls", - "caching", - "cache", - "subresource integrity" - ], - "license": "ISC", - "main": "index.js", - "name": "make-fetch-happen", - "repository": { - "type": "git", - "url": "git+https://github.com/zkat/make-fetch-happen.git" - }, - "scripts": { - "postrelease": "npm publish && git push --follow-tags", - "prerelease": "npm t", - "pretest": "standard", - "release": "standard-version -s", - "test": "nyc --all -- tap --timeout=35 -J test/*.js", - "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", - "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" - }, - "version": "3.0.0" -} diff --git a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js b/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js deleted file mode 100644 index b8f13cf83195a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js +++ /dev/null @@ -1,24 +0,0 @@ -const url = require('url') - -module.exports = setWarning - -function setWarning (reqOrRes, code, message, replace) { - // Warning = "Warning" ":" 1#warning-value - // warning-value = warn-code SP warn-agent SP warn-text [SP warn-date] - // warn-code = 3DIGIT - // warn-agent = ( host [ ":" port ] ) | pseudonym - // ; the name or pseudonym of the server adding - // ; the Warning header, for use in debugging - // warn-text = quoted-string - // warn-date = <"> HTTP-date <"> - // (https://tools.ietf.org/html/rfc2616#section-14.46) - const host = url.parse(reqOrRes.url).host - const jsonMessage = JSON.stringify(message) - const jsonDate = JSON.stringify(new Date().toUTCString()) - const header = replace ? 'set' : 'append' - - reqOrRes.headers[header]( - 'Warning', - `${code} ${host} ${jsonMessage} ${jsonDate}` - ) -} diff --git a/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml b/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml deleted file mode 100644 index 17f94330e70bc..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.10" - -script: "npm test" diff --git a/node_modules/npm-registry-fetch/node_modules/pump/LICENSE b/node_modules/npm-registry-fetch/node_modules/pump/LICENSE deleted file mode 100644 index 757562ec59276..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Mathias Buus - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/pump/README.md b/node_modules/npm-registry-fetch/node_modules/pump/README.md deleted file mode 100644 index 5029b27d6817e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# pump - -pump is a small node module that pipes streams together and destroys all of them if one of them closes. - -``` -npm install pump -``` - -[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump) - -## What problem does it solve? - -When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error. -You are also not able to provide a callback to tell when then pipe has finished. - -pump does these two things for you - -## Usage - -Simply pass the streams you want to pipe together to pump and add an optional callback - -``` js -var pump = require('pump') -var fs = require('fs') - -var source = fs.createReadStream('/dev/random') -var dest = fs.createWriteStream('/dev/null') - -pump(source, dest, function(err) { - console.log('pipe finished', err) -}) - -setTimeout(function() { - dest.destroy() // when dest is closed pump will destroy source -}, 1000) -``` - -You can use pump to pipe more than two streams together as well - -``` js -var transform = someTransformStream() - -pump(source, transform, anotherTransform, dest, function(err) { - console.log('pipe finished', err) -}) -``` - -If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed. - -## License - -MIT - -## Related - -`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/node_modules/npm-registry-fetch/node_modules/pump/index.js b/node_modules/npm-registry-fetch/node_modules/pump/index.js deleted file mode 100644 index d9ca0335cbc1a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/index.js +++ /dev/null @@ -1,82 +0,0 @@ -var once = require('once') -var eos = require('end-of-stream') -var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes - -var noop = function () {} -var ancient = /^v?\.0/.test(process.version) - -var isFn = function (fn) { - return typeof fn === 'function' -} - -var isFS = function (stream) { - if (!ancient) return false // newer node version do not need to care about fs is a special way - if (!fs) return false // browser - return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) -} - -var isRequest = function (stream) { - return stream.setHeader && isFn(stream.abort) -} - -var destroyer = function (stream, reading, writing, callback) { - callback = once(callback) - - var closed = false - stream.on('close', function () { - closed = true - }) - - eos(stream, {readable: reading, writable: writing}, function (err) { - if (err) return callback(err) - closed = true - callback() - }) - - var destroyed = false - return function (err) { - if (closed) return - if (destroyed) return - destroyed = true - - if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks - if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want - - if (isFn(stream.destroy)) return stream.destroy() - - callback(err || new Error('stream was destroyed')) - } -} - -var call = function (fn) { - fn() -} - -var pipe = function (from, to) { - return from.pipe(to) -} - -var pump = function () { - var streams = Array.prototype.slice.call(arguments) - var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop - - if (Array.isArray(streams[0])) streams = streams[0] - if (streams.length < 2) throw new Error('pump requires two streams per minimum') - - var error - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1 - var writing = i > 0 - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err - if (err) destroys.forEach(call) - if (reading) return - destroys.forEach(call) - callback(error) - }) - }) - - streams.reduce(pipe) -} - -module.exports = pump diff --git a/node_modules/npm-registry-fetch/node_modules/pump/package.json b/node_modules/npm-registry-fetch/node_modules/pump/package.json deleted file mode 100644 index 4a3008e4880b0..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "_from": "pump@^2.0.1", - "_id": "pump@2.0.1", - "_inBundle": false, - "_integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "_location": "/npm-registry-fetch/pump", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "pump@^2.0.1", - "name": "pump", - "escapedName": "pump", - "rawSpec": "^2.0.1", - "saveSpec": null, - "fetchSpec": "^2.0.1" - }, - "_requiredBy": [ - "/npm-registry-fetch/cacache/mississippi" - ], - "_resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "_shasum": "12399add6e4cf7526d973cbc8b5ce2e2908b3909", - "_spec": "pump@^2.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi", - "author": { - "name": "Mathias Buus Madsen", - "email": "mathiasbuus@gmail.com" - }, - "browser": { - "fs": false - }, - "bugs": { - "url": "https://github.com/mafintosh/pump/issues" - }, - "bundleDependencies": false, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - }, - "deprecated": false, - "description": "pipe streams together and close all of them if one of them closes", - "homepage": "https://github.com/mafintosh/pump#readme", - "keywords": [ - "streams", - "pipe", - "destroy", - "callback" - ], - "license": "MIT", - "name": "pump", - "repository": { - "type": "git", - "url": "git://github.com/mafintosh/pump.git" - }, - "scripts": { - "test": "node test-browser.js && node test-node.js" - }, - "version": "2.0.1" -} diff --git a/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js b/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js deleted file mode 100644 index 75ea4a292e209..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js +++ /dev/null @@ -1,62 +0,0 @@ -var stream = require('stream') -var pump = require('./index') - -var rs = new stream.Readable() -var ws = new stream.Writable() - -rs._read = function (size) { - this.push(Buffer(size).fill('abc')) -} - -ws._write = function (chunk, encoding, cb) { - setTimeout(function () { - cb() - }, 100) -} - -var toHex = function () { - var reverse = new (require('stream').Transform)() - - reverse._transform = function (chunk, enc, callback) { - reverse.push(chunk.toString('hex')) - callback() - } - - return reverse -} - -var wsClosed = false -var rsClosed = false -var callbackCalled = false - -var check = function () { - if (wsClosed && rsClosed && callbackCalled) { - console.log('test-browser.js passes') - clearTimeout(timeout) - } -} - -ws.on('finish', function () { - wsClosed = true - check() -}) - -rs.on('end', function () { - rsClosed = true - check() -}) - -pump(rs, toHex(), toHex(), toHex(), ws, function () { - callbackCalled = true - check() -}) - -setTimeout(function () { - rs.push(null) - rs.emit('close') -}, 1000) - -var timeout = setTimeout(function () { - check() - throw new Error('timeout') -}, 5000) diff --git a/node_modules/npm-registry-fetch/node_modules/pump/test-node.js b/node_modules/npm-registry-fetch/node_modules/pump/test-node.js deleted file mode 100644 index 034a65414d1b3..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/pump/test-node.js +++ /dev/null @@ -1,53 +0,0 @@ -var pump = require('./index') - -var rs = require('fs').createReadStream('/dev/random') -var ws = require('fs').createWriteStream('/dev/null') - -var toHex = function () { - var reverse = new (require('stream').Transform)() - - reverse._transform = function (chunk, enc, callback) { - reverse.push(chunk.toString('hex')) - callback() - } - - return reverse -} - -var wsClosed = false -var rsClosed = false -var callbackCalled = false - -var check = function () { - if (wsClosed && rsClosed && callbackCalled) { - console.log('test-node.js passes') - clearTimeout(timeout) - } -} - -ws.on('close', function () { - wsClosed = true - check() -}) - -rs.on('close', function () { - rsClosed = true - check() -}) - -var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { - callbackCalled = true - check() -}) - -if (res) { - process.exit(1) -} - -setTimeout(function () { - rs.destroy() -}, 1000) - -var timeout = setTimeout(function () { - throw new Error('timeout') -}, 5000) diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore b/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore deleted file mode 100644 index 6bcbf6f77d970..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -.git* -.idea* -node_modules/ -npm-debug.log -coverage \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml b/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml deleted file mode 100644 index 9d67de58788b9..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: node_js -node_js: - - 0.10 - - 0.12 - - 4 - - 6 - - stable - -script: "npm run coverage" -# Send coverage data to Coveralls -after_script: "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE b/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE deleted file mode 100644 index b2442a9e71326..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Josh Glazebrook - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md b/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md deleted file mode 100644 index cf49d72bfc65e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md +++ /dev/null @@ -1,307 +0,0 @@ -smart-buffer [![Build Status](https://travis-ci.org/JoshGlazebrook/smart-buffer.svg?branch=master)](https://travis-ci.org/JoshGlazebrook/smart-buffer) [![Coverage Status](https://coveralls.io/repos/github/JoshGlazebrook/smart-buffer/badge.svg?branch=master)](https://coveralls.io/github/JoshGlazebrook/smart-buffer?branch=master) -============= - -smart-buffer is a light Buffer wrapper that takes away the need to keep track of what position to read and write data to and from the underlying Buffer. It also adds null terminating string operations and **grows** as you add more data. - - -### What it's useful for: - -I created smart-buffer because I wanted to simplify the process of using Buffer for building and reading network packets to send over a socket. Rather than having to keep track of which position I need to write a UInt16 to after adding a string of variable length, I simply don't have to. - -Key Features: -* Proxies all of the Buffer write and read functions. -* Keeps track of read and write positions for you. -* Grows the internal Buffer as you add data to it. -* Useful string operations. (Null terminating strings) -* Allows for inserting values at specific points in the internal Buffer. - -#### Note: -smart-buffer can be used for writing to an underlying buffer as well as reading from it. It however does not function correctly if you're mixing both read and write operations with each other. - -## Installing: - -`npm install smart-buffer` - -## Using smart-buffer - -### Example - -Say you were building a packet that had to conform to the following protocol: - -`[PacketType:2][PacketLength:2][Data:XX]` - -To build this packet using the vanilla Buffer class, you would have to count up the length of the data payload beforehand. You would also need to keep track of the current "cursor" position in your Buffer so you write everything in the right places. With smart-buffer you don't have to do either of those things. - -```javascript -function createLoginPacket(username, password, age, country) { - var packet = new SmartBuffer(); - packet.writeUInt16LE(0x0060); // Login Packet Type/ID - packet.writeStringNT(username); - packet.writeStringNT(password); - packet.writeUInt8(age); - packet.writeStringNT(country); - packet.writeUInt16LE(packet.length - 2, 2); - - return packet.toBuffer(); -} -``` -With the above function, you now can do this: -```javascript -var login = createLoginPacket("Josh", "secret123", 22, "United States"); - -// -``` -Notice that the `[PacketLength:2]` part of the packet was inserted after we had added everything else, and as shown in the Buffer dump above, is in the correct location along with everything else. - -Reading back the packet we created above is just as easy: -```javascript - -var reader = new SmartBuffer(login); - -var logininfo = { - packetType: reader.readUInt16LE(), - packetLength: reader.readUInt16LE(), - username: reader.readStringNT(), - password: reader.readStringNT(), - age: reader.readUInt8(), - country: reader.readStringNT() -}; - -/* -{ - packetType: 96, (0x0060) - packetLength: 30, - username: 'Josh', - password: 'secret123', - age: 22, - country: 'United States' -}; -*/ -``` - -# Api Reference: - -### Constructing a smart-buffer - -smart-buffer has a few different constructor signatures you can use. By default, utf8 encoding is used, and the internal Buffer length will be 4096. When reading from a Buffer, smart-buffer does NOT make a copy of the Buffer. It reads from the Buffer it was given. - -```javascript -var SmartBuffer = require('smart-buffer'); - -// Reading from an existing Buffer: -var reader = new SmartBuffer(buffer); -var reader = new SmartBuffer(buffer, 'ascii'); - -// Writing to a new Buffer: -var writer = new SmartBuffer(); // Defaults to utf8, 4096 length internal Buffer. -var writer = new SmartBuffer(1024); // Defaults to utf8, 1024 length internal Buffer. -var writer = new SmartBuffer('ascii'); // Sets to ascii encoding, 4096 length internal buffer. -var writer = new SmartBuffer(1024, 'ascii'); // Sets to ascii encoding, 1024 length internal buffer. -``` - -## Reading Data - -smart-buffer supports all of the common read functions you will find in the vanilla Buffer class. The only difference is, you do not need to specify which location to start reading from. This is possible because as you read data out of a smart-buffer, it automatically progresses an internal read offset/position to know where to pick up from on the next read. - -## Reading Numeric Values - -When numeric values, you simply need to call the function you want, and the data is returned. - -Supported Operations: -* readInt8 -* readInt16BE -* readInt16LE -* readInt32BE -* readInt32LE -* readUInt8 -* readUInt16BE -* readUInt16LE -* readUInt32BE -* readUInt32LE -* readFloatBE -* readFloatLE -* readDoubleBE -* readDoubleLE - -```javascript -var reader = new SmartBuffer(somebuffer); -var num = reader.readInt8(); -``` - -## Reading String Values - -When reading String values, you can either choose to read a null terminated string, or a string of a specified length. - -### SmartBuffer.readStringNT( [encoding] ) -> `String` **String encoding to use** - Defaults to the encoding set in the constructor, or utf8. - -returns `String` - -> Note: When readStringNT is called and there is no null character found, smart-buffer will read to the end of the internal Buffer. - -### SmartBuffer.readString( [length], [encoding] ) -### SmartBuffer.readString( [length] ) -### SmartBuffer.readString( [encoding] ) -> `Number` **Length of the string to read** - -> `String` **String encoding to use** - Defaults to the encoding set in the constructor, or utf8. - -returns `String` - -> Note: When readString is called without a specified length, smart-buffer will read to the end of the internal Buffer. - - - -## Reading Buffer Values - -### SmartBuffer.readBuffer( length ) -> `Number` **Length of data to read into a Buffer** - -returns `Buffer` - -> Note: This function uses `slice` to retrieve the Buffer. - - -### SmartBuffer.readBufferNT() - -returns `Buffer` - -> Note: This reads the next sequence of bytes in the buffer until a null (0x00) value is found. (Null terminated buffer) -> Note: This function uses `slice` to retrieve the Buffer. - - -## Writing Data - -smart-buffer supports all of the common write functions you will find in the vanilla Buffer class. The only difference is, you do not need to specify which location to write to in your Buffer by default. You do however have the option of **inserting** a piece of data into your smart-buffer at a given location. - - -## Writing Numeric Values - - -For numeric values, you simply need to call the function you want, and the data is written at the end of the internal Buffer's current write position. You can specify a offset/position to **insert** the given value at, but keep in mind this does not override data at the given position. This feature also does not work properly when inserting a value beyond the current internal length of the smart-buffer (length being the .length property of the smart-buffer instance you're writing to) - -Supported Operations: -* writeInt8 -* writeInt16BE -* writeInt16LE -* writeInt32BE -* writeInt32LE -* writeUInt8 -* writeUInt16BE -* writeUInt16LE -* writeUInt32BE -* writeUInt32LE -* writeFloatBE -* writeFloatLE -* writeDoubleBE -* writeDoubleLE - -The following signature is the same for all the above functions: - -### SmartBuffer.writeInt8( value, [offset] ) -> `Number` **A valid Int8 number** - -> `Number` **The position to insert this value at** - -returns this - -> Note: All write operations return `this` to allow for chaining. - -## Writing String Values - -When reading String values, you can either choose to write a null terminated string, or a non null terminated string. - -### SmartBuffer.writeStringNT( value, [offset], [encoding] ) -### SmartBuffer.writeStringNT( value, [offset] ) -### SmartBuffer.writeStringNT( value, [encoding] ) -> `String` **String value to write** - -> `Number` **The position to insert this String at** - -> `String` **The String encoding to use.** - Defaults to the encoding set in the constructor, or utf8. - -returns this - -### SmartBuffer.writeString( value, [offset], [encoding] ) -### SmartBuffer.writeString( value, [offset] ) -### SmartBuffer.writeString( value, [encoding] ) -> `String` **String value to write** - -> `Number` **The position to insert this String at** - -> `String` **The String encoding to use** - Defaults to the encoding set in the constructor, or utf8. - -returns this - - -## Writing Buffer Values - -### SmartBuffer.writeBuffer( value, [offset] ) -> `Buffer` **Buffer value to write** - -> `Number` **The position to insert this Buffer's content at** - -returns this - -### SmartBuffer.writeBufferNT( value, [offset] ) -> `Buffer` **Buffer value to write** - -> `Number` **The position to insert this Buffer's content at** - -returns this - - -## Utility Functions - -### SmartBuffer.clear() -Resets the SmartBuffer to its default state where it can be reused for reading or writing. - -### SmartBuffer.remaining() - -returns `Number` The amount of data left to read based on the current read Position. - -### SmartBuffer.skip( value ) -> `Number` **The amount of bytes to skip ahead** - -Skips the read position ahead by the given value. - -returns this - -### SmartBuffer.rewind( value ) -> `Number` **The amount of bytes to reward backwards** - -Rewinds the read position backwards by the given value. - -returns this - -### SmartBuffer.skipTo( position ) -> `Number` **The point to skip the read position to** - -Moves the read position to the given point. -returns this - -### SmartBuffer.toBuffer() - -returns `Buffer` A Buffer containing the contents of the internal Buffer. - -> Note: This uses the slice function. - -### SmartBuffer.toString( [encoding] ) -> `String` **The String encoding to use** - Defaults to the encoding set in the constructor, or utf8. - -returns `String` The internal Buffer in String representation. - -### SmartBuffer.destroy() -Attempts to destroy the smart-buffer. - -returns this - -## Properties - -### SmartBuffer.length - -returns `Number` **The length of the data that is being tracked in the internal Buffer** - Does NOT return the absolute length of the internal Buffer being written to. - -## License - -This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License). \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js b/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js deleted file mode 100644 index fefdfe63c0dd3..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js +++ /dev/null @@ -1,726 +0,0 @@ -"use strict"; -// The default Buffer size if one is not provided. -const DEFAULT_SMARTBUFFER_SIZE = 4096; -// The default string encoding to use for reading/writing strings. -const DEFAULT_SMARTBUFFER_ENCODING = 'utf8'; -class SmartBuffer { - /** - * Creates a new SmartBuffer instance. - * - * @param arg1 { Number | BufferEncoding | Buffer | SmartBufferOptions } - * @param arg2 { BufferEncoding } - */ - constructor(arg1, arg2) { - this.length = 0; - this.encoding = DEFAULT_SMARTBUFFER_ENCODING; - this.writeOffset = 0; - this.readOffset = 0; - // Initial buffer size provided - if (typeof arg1 === 'number') { - if (Number.isFinite(arg1) && Number.isInteger(arg1) && arg1 > 0) { - this.buff = Buffer.allocUnsafe(arg1); - } - else { - throw new Error('Invalid size provided. Size must be a valid integer greater than zero.'); - } - } - else if (typeof arg1 === 'string') { - if (Buffer.isEncoding(arg1)) { - this.buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE); - this.encoding = arg1; - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - else if (arg1 instanceof Buffer) { - this.buff = arg1; - this.length = arg1.length; - } - else if (SmartBuffer.isSmartBufferOptions(arg1)) { - // Checks for encoding - if (arg1.encoding) { - if (Buffer.isEncoding(arg1.encoding)) { - this.encoding = arg1.encoding; - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - // Checks for initial size length - if (arg1.size) { - if (Number.isFinite(arg1.size) && Number.isInteger(arg1.size) && arg1.size > 0) { - this.buff = Buffer.allocUnsafe(arg1.size); - } - else { - throw new Error('Invalid size provided. Size must be a valid integer greater than zero.'); - } - } - else if (arg1.buff) { - if (arg1.buff instanceof Buffer) { - this.buff = arg1.buff; - this.length = arg1.buff.length; - } - else { - throw new Error('Invalid buffer provided in SmartBufferOptions.'); - } - } - else { - this.buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE); - } - } - else if (typeof arg1 === 'object') { - throw new Error('Invalid object supplied to SmartBuffer constructor.'); - } - else { - this.buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE); - } - // Check for encoding (Buffer, Encoding) constructor. - if (typeof arg2 === 'string') { - if (Buffer.isEncoding(arg2)) { - this.encoding = arg2; - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - } - /** - * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding. - * - * @param size { Number } The size of the internal Buffer. - * @param encoding { String } The BufferEncoding to use for strings. - * - * @return { SmartBuffer } - */ - static fromSize(size, encoding) { - return new this({ - size: size, - encoding: encoding - }); - } - /** - * Creates a new SmartBuffer instance with the provided Buffer and optional encoding. - * - * @param buffer { Buffer } The Buffer to use as the internal Buffer value. - * @param encoding { String } The BufferEncoding to use for strings. - * - * @return { SmartBuffer } - */ - static fromBuffer(buff, encoding) { - return new this({ - buff: buff, - encoding: encoding - }); - } - /** - * Creates a new SmartBuffer instance with the provided SmartBufferOptions options. - * - * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance. - */ - static fromOptions(options) { - return new this(options); - } - /** - * Ensures that the internal Buffer is large enough to write data. - * - * @param minLength { Number } The minimum length of the data that needs to be written. - * @param offset { Number } The offset of the data to be written. - */ - ensureWriteable(minLength, offset) { - const offsetVal = typeof offset === 'number' ? offset : 0; - // Ensure there is enough internal Buffer capacity. - this.ensureCapacity(this.length + minLength + offsetVal); - // If offset is provided, copy data into appropriate location in regards to the offset. - if (typeof offset === 'number') { - this.buff.copy(this.buff, offsetVal + minLength, offsetVal, this.buff.length); - } - // Adjust instance length. - this.length = Math.max(this.length + minLength, offsetVal + minLength); - } - /** - * Ensures that the internal Buffer is large enough to write at least the given amount of data. - * - * @param minLength { Number } The minimum length of the data needs to be written. - */ - ensureCapacity(minLength) { - const oldLength = this.buff.length; - if (minLength > oldLength) { - let data = this.buff; - let newLength = (oldLength * 3) / 2 + 1; - if (newLength < minLength) { - newLength = minLength; - } - this.buff = Buffer.allocUnsafe(newLength); - data.copy(this.buff, 0, 0, oldLength); - } - } - /** - * Reads a numeric number value using the provided function. - * - * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with. - * @param byteSize { Number } The number of bytes read. - * - * @param { Number } - */ - readNumberValue(func, byteSize) { - // Call Buffer.readXXXX(); - const value = func.call(this.buff, this.readOffset); - // Adjust internal read offset - this.readOffset += byteSize; - return value; - } - /** - * Writes a numeric number value using the provided function. - * - * @param func { Function(offset: number, offset?) => number} The function to write data on the internal Buffer with. - * @param byteSize { Number } The number of bytes written. - * @param value { Number } The number value to write. - * @param offset { Number } the offset to write the number at. - * - */ - writeNumberValue(func, byteSize, value, offset) { - const offsetVal = typeof offset === 'number' ? offset : this.writeOffset; - // Ensure there is enough internal Buffer capacity. (raw offset is passed) - this.ensureWriteable(byteSize, offset); - // Call buffer.writeXXXX(); - func.call(this.buff, value, offsetVal); - // Adjusts internal write offset - this.writeOffset += byteSize; - } - // Signed integers - /** - * Reads an Int8 value from the current read position. - * - * @return { Number } - */ - readInt8() { - return this.readNumberValue(Buffer.prototype.readUInt8, 1); - } - /** - * Reads an Int16BE value from the current read position. - * - * @return { Number } - */ - readInt16BE() { - return this.readNumberValue(Buffer.prototype.readUInt16BE, 2); - } - /** - * Reads an Int16LE value from the current read position. - * - * @return { Number } - */ - readInt16LE() { - return this.readNumberValue(Buffer.prototype.readUInt16LE, 2); - } - /** - * Reads an Int32BE value from the current read position. - * - * @return { Number } - */ - readInt32BE() { - return this.readNumberValue(Buffer.prototype.readUInt32BE, 4); - } - /** - * Reads an Int32LE value from the current read position. - * - * @return { Number } - */ - readInt32LE() { - return this.readNumberValue(Buffer.prototype.readUInt32LE, 4); - } - /** - * Writes an Int8 value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeInt8(value, offset) { - this.writeNumberValue(Buffer.prototype.writeInt8, 1, value, offset); - return this; - } - /** - * Writes an Int16BE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeInt16BE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeInt16BE, 2, value, offset); - return this; - } - /** - * Writes an Int16LE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeInt16LE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeInt16LE, 2, value, offset); - return this; - } - /** - * Writes an Int32BE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeInt32BE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeInt32BE, 4, value, offset); - return this; - } - /** - * Writes an Int32LE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeInt32LE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeInt32LE, 4, value, offset); - return this; - } - // Unsigned Integers - /** - * Reads an UInt8 value from the current read position. - * - * @return { Number } - */ - readUInt8() { - return this.readNumberValue(Buffer.prototype.readUInt8, 1); - } - /** - * Reads an UInt16BE value from the current read position. - * - * @return { Number } - */ - readUInt16BE() { - return this.readNumberValue(Buffer.prototype.readUInt16BE, 2); - } - /** - * Reads an UInt16LE value from the current read position. - * - * @return { Number } - */ - readUInt16LE() { - return this.readNumberValue(Buffer.prototype.readUInt16LE, 2); - } - /** - * Reads an UInt32BE value from the current read position. - * - * @return { Number } - */ - readUInt32BE() { - return this.readNumberValue(Buffer.prototype.readUInt32BE, 4); - } - /** - * Reads an UInt32LE value from the current read position. - * - * @return { Number } - */ - readUInt32LE() { - return this.readNumberValue(Buffer.prototype.readUInt32LE, 4); - } - /** - * Writes an UInt8 value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeUInt8(value, offset) { - this.writeNumberValue(Buffer.prototype.writeUInt8, 1, value, offset); - return this; - } - /** - * Writes an UInt16BE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeUInt16BE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeUInt16BE, 2, value, offset); - return this; - } - /** - * Writes an UInt16LE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeUInt16LE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeUInt16LE, 2, value, offset); - return this; - } - /** - * Writes an UInt32BE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeUInt32BE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeUInt32BE, 4, value, offset); - return this; - } - /** - * Writes an UInt32LE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeUInt32LE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeUInt32LE, 4, value, offset); - return this; - } - // Floating Point - /** - * Reads an FloatBE value from the current read position. - * - * @return { Number } - */ - readFloatBE() { - return this.readNumberValue(Buffer.prototype.readFloatBE, 4); - } - /** - * Reads an FloatLE value from the current read position. - * - * @return { Number } - */ - readFloatLE() { - return this.readNumberValue(Buffer.prototype.readFloatLE, 4); - } - /** - * Writes a FloatBE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeFloatBE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeFloatBE, 4, value, offset); - return this; - } - /** - * Writes a FloatLE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeFloatLE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeFloatLE, 4, value, offset); - return this; - } - // Double Floating Point - /** - * Reads an DoublEBE value from the current read position. - * - * @return { Number } - */ - readDoubleBE() { - return this.readNumberValue(Buffer.prototype.readDoubleBE, 8); - } - /** - * Reads an DoubleLE value from the current read position. - * - * @return { Number } - */ - readDoubleLE() { - return this.readNumberValue(Buffer.prototype.readDoubleLE, 8); - } - /** - * Writes a DoubleBE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeDoubleBE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeDoubleBE, 8, value, offset); - return this; - } - /** - * Writes a DoubleLE value to the current write position (or at optional offset). - * - * @param value { Number } The value to write. - * @param offset { Number } The offset to write the value at. - * - * @return this - */ - writeDoubleLE(value, offset) { - this.writeNumberValue(Buffer.prototype.writeDoubleLE, 8, value, offset); - return this; - } - // Strings - /** - * Reads a String from the current read position. - * - * @param length { Number } The number of bytes to read as a String. - * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding). - * - * @return { String } - */ - readString(length, encoding) { - const lengthVal = Math.min(length, this.length - this.readOffset) || this.length - this.readOffset; - const value = this.buff.slice(this.readOffset, this.readOffset + lengthVal).toString(encoding || this.encoding); - this.readOffset += lengthVal; - return value; - } - /** - * Writes a String to the current write position. - * - * @param value { String } The String value to write. - * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use. - * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). - */ - writeString(value, arg2, encoding) { - let offsetVal = this.writeOffset; - let encodingVal = this.encoding; - // Check for offset - if (typeof arg2 === 'number') { - offsetVal = arg2; - } - else if (typeof arg2 === 'string') { - if (Buffer.isEncoding(arg2)) { - encodingVal = arg2; - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - // Check for encoding (third param) - if (typeof encoding === 'string') { - if (Buffer.isEncoding(encoding)) { - encodingVal = encoding; - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - // Calculate bytelength of string. - const byteLength = Buffer.byteLength(value, encodingVal); - // Ensure there is enough internal Buffer capacity. - this.ensureWriteable(byteLength, offsetVal); - // Write value - this.buff.write(value, offsetVal, byteLength, encodingVal); - // Increment internal Buffer write offset; - this.writeOffset += byteLength; - return this; - } - /** - * Reads a null-terminated String from the current read position. - * - * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding). - * - * @return { String } - */ - readStringNT(encoding) { - // Set null character position to the end SmartBuffer instance. - let nullPos = this.length; - // Find next null character (if one is not found, default from above is used) - for (let i = this.readOffset; i < this.length; i++) { - if (this.buff[i] === 0x00) { - nullPos = i; - break; - } - } - // Read string value - const value = this.buff.slice(this.readOffset, nullPos); - // Increment internal Buffer read offset - this.readOffset = nullPos + 1; - return value.toString(encoding || this.encoding); - } - /** - * Writes a null-terminated String to the current write position. - * - * @param value { String } The String value to write. - * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use. - * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding). - */ - writeStringNT(value, offset, encoding) { - // Write Values - this.writeString(value, offset, encoding); - this.writeUInt8(0x00, (typeof offset === 'number' ? offset + value.length : this.writeOffset)); - } - // Buffers - /** - * Reads a Buffer from the internal read position. - * - * @param length { Number } The length of data to read as a Buffer. - * - * @return { Buffer } - */ - readBuffer(length) { - const lengthVal = typeof length === 'number' ? length : this.length; - const endPoint = Math.min(this.length, this.readOffset + lengthVal); - // Read buffer value - const value = this.buff.slice(this.readOffset, endPoint); - // Increment internal Buffer read offset - this.readOffset = endPoint; - return value; - } - /** - * Writes a Buffer to the current write position. - * - * @param value { Buffer } The Buffer to write. - * @param offset { Number } The offset to write the Buffer to. - */ - writeBuffer(value, offset) { - const offsetVal = typeof offset === 'number' ? offset : this.writeOffset; - // Ensure there is enough internal Buffer capacity. - this.ensureWriteable(value.length, offsetVal); - // Write buffer value - value.copy(this.buff, offsetVal); - // Increment internal Buffer write offset - this.writeOffset += value.length; - return this; - } - /** - * Reads a null-terminated Buffer from the current read poisiton. - * - * @return { Buffer } - */ - readBufferNT() { - // Set null character position to the end SmartBuffer instance. - let nullPos = this.length; - // Find next null character (if one is not found, default from above is used) - for (let i = this.readOffset; i < this.length; i++) { - if (this.buff[i] === 0x00) { - nullPos = i; - break; - } - } - // Read value - const value = this.buff.slice(this.readOffset, nullPos); - // Increment internal Buffer read offset - this.readOffset = nullPos + 1; - return value; - } - /** - * Writes a null-terminated Buffer to the current write position. - * - * @param value { Buffer } The Buffer to write. - * @param offset { Number } The offset to write the Buffer to. - */ - writeBufferNT(value, offset) { - // Write Values - this.writeBuffer(value, offset); - this.writeUInt8(0, (typeof offset === 'number' ? offset + value.length : this.writeOffset)); - return this; - } - /** - * Clears the SmartBuffer instance to its original empty state. - */ - clear() { - this.writeOffset = 0; - this.readOffset = 0; - this.length = 0; - } - /** - * Gets the remaining data left to be read from the SmartBuffer instance. - * - * @return { Number } - */ - remaining() { - return this.length - this.readOffset; - } - /** - * Moves the read offset forward. - * - * @param amount { Number } The amount to move the read offset forward by. - */ - skip(amount) { - if (this.readOffset + amount > this.length) { - throw new Error('Target position is beyond the bounds of the SmartBuffer size.'); - } - this.readOffset += amount; - } - /** - * Moves the read offset backwards. - * - * @param amount { Number } The amount to move the read offset backwards by. - */ - rewind(amount) { - if (this.readOffset - amount < 0) { - throw new Error('Target position is beyond the bounds of the SmartBuffer size.'); - } - this.readOffset -= amount; - } - /** - * Moves the read offset to a specific position. - * - * @param position { Number } The position to move the read offset to. - */ - skipTo(position) { - this.moveTo(position); - } - /** - * Moves the read offset to a specific position. - * - * @param position { Number } The position to move the read offset to. - */ - moveTo(position) { - if (position > this.length) { - throw new Error('Target position is beyond the bounds of the SmartBuffer size.'); - } - this.readOffset = position; - } - /** - * Gets the value of the internal managed Buffer - * - * @param { Buffer } - */ - toBuffer() { - return this.buff.slice(0, this.length); - } - /** - * Gets the String value of the internal managed Buffer - * - * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding). - */ - toString(encoding) { - const encodingVal = typeof encoding === 'string' ? encoding : this.encoding; - if (Buffer.isEncoding(encodingVal)) { - return this.buff.toString(encodingVal, 0, this.length); - } - else { - throw new Error('Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.'); - } - } - /** - * Destroys the SmartBuffer instance. - */ - destroy() { - this.clear(); - } - /** - * Type checking function that determines if an object is a SmartBufferOptions object. - */ - static isSmartBufferOptions(options) { - const castOptions = options; - return castOptions && (castOptions.encoding !== undefined || castOptions.size !== undefined || castOptions.buff !== undefined); - } -} -module.exports = SmartBuffer; -//# sourceMappingURL=smartbuffer.js.map \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map b/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map deleted file mode 100644 index 60af067a2c1c7..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"smartbuffer.js","sourceRoot":"","sources":["../src/smartbuffer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js b/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js deleted file mode 100644 index ea69cfc09ab34..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js +++ /dev/null @@ -1,371 +0,0 @@ -var SmartBuffer = (function () { - - /** - * Constructor for SmartBuffer. - * @param arg1 {Buffer || Number || String} Buffer to read from, or expected size to write to, or encoding to use. - * @param arg2 {String} Encoding to use for writing and reading strings. Defaults to utf8. If encoding is given in arg1, this is ignored. - * @constructor - * - * There are a few ways to construct a SmartBuffer: - * - * SmartBuffer() - Defaults to utf8, 4096 pre-set internal Buffer length. - * SmartBuffer(size) - Defaults to utf8, sets internal Buffer length to the size given. - * SmartBuffer(encoding) - Sets the given encoding, defaults to 4096 pre-set internal Buffer length. - * SmartBuffer(Buffer) - Defaults to utf8, sets the internal Buffer to the given buffer (same memory). - * SmartBuffer(Buffer, encoding) - Sets the given encoding, sets the internal Buffer to the given buffer (same memory). - * - */ - function SmartBuffer(arg1, arg2) { - var type; - switch (type = typeof arg1) { - case 'number': - if (isFinite(arg1) && arg1 > 0) { - this.buff = new Buffer(Math.ceil(arg1)); - this.length = 0; - } else { - throw new Error('When specifying a size, it must be a valid number above zero.'); - } - break; - - case 'string': - if (Buffer.isEncoding(arg1)) { - this.buff = new Buffer(4096); - this.length = 0; - this.encoding = arg1; - } else { - throw new Error('Invalid Encoding'); - } - break; - - case 'object': - if (Buffer.isBuffer(arg1)) { - this.buff = arg1; - this.length = arg1.length; - } else { - throw new TypeError('First argument must be a Buffer, Number representing the size, or a String representing the encoding.'); - } - break; - - default: - this.buff = new Buffer(4096); - this.length = 0; - break; - } - - if (typeof this.encoding === 'undefined') { - if (typeof arg2 === 'string') { - if (Buffer.isEncoding(arg2)) { - this.encoding = arg2; - } else { - throw new Error('Invalid Encoding'); - } - } - } - - this._readOffset = 0; - this._writeOffset = 0; - } - - - SmartBuffer.prototype._ensureWritable = function (len, offset) { - this._ensureCapacity(this.length + len + (typeof offset === 'number' ? offset : 0)); - - if (typeof offset === 'number') { - this.buff.copy(this.buff, offset + len, offset, this.buff.length); - } - this.length = Math.max(this.length + len, (typeof offset === 'number' ? offset : 0) + len); - }; - - SmartBuffer.prototype._ensureCapacity = function (minlen) { - var oldlen = this.buff.length; - - if (minlen > oldlen) { - var data = this.buff; - var newlen = (oldlen * 3) / 2 + 1; - if (newlen < minlen) - newlen = minlen; - this.buff = new Buffer(newlen); - data.copy(this.buff, 0, 0, oldlen); - } - }; - - - var makeReader = function (func, size) { - return function () { - var ret = func.call(this.buff, this._readOffset); - this._readOffset += size; - return ret; - } - }; - - var makeWriter = function (func, size) { - return function (value, offset) { - this._ensureWritable(size, offset); - func.call(this.buff, value, typeof offset === 'number' ? offset : this._writeOffset); - this._writeOffset += size; - return this; - } - }; - - - /* - Read Operations - */ - - SmartBuffer.prototype.readInt8 = makeReader(Buffer.prototype.readInt8, 1); - SmartBuffer.prototype.readInt16BE = makeReader(Buffer.prototype.readInt16BE, 2); - SmartBuffer.prototype.readInt16LE = makeReader(Buffer.prototype.readInt16LE, 2); - SmartBuffer.prototype.readInt32BE = makeReader(Buffer.prototype.readInt32BE, 4); - SmartBuffer.prototype.readInt32LE = makeReader(Buffer.prototype.readInt32LE, 4); - - SmartBuffer.prototype.readUInt8 = makeReader(Buffer.prototype.readUInt8, 1); - SmartBuffer.prototype.readUInt16BE = makeReader(Buffer.prototype.readUInt16BE, 2); - SmartBuffer.prototype.readUInt16LE = makeReader(Buffer.prototype.readUInt16LE, 2); - SmartBuffer.prototype.readUInt32BE = makeReader(Buffer.prototype.readUInt32BE, 4); - SmartBuffer.prototype.readUInt32LE = makeReader(Buffer.prototype.readUInt32LE, 4); - - SmartBuffer.prototype.readFloatBE = makeReader(Buffer.prototype.readFloatBE, 4); - SmartBuffer.prototype.readFloatLE = makeReader(Buffer.prototype.readFloatLE, 4); - - SmartBuffer.prototype.readDoubleBE = makeReader(Buffer.prototype.readDoubleBE, 8); - SmartBuffer.prototype.readDoubleLE = makeReader(Buffer.prototype.readDoubleLE, 8); - - - /** - * Reads a string of the given length. - * @param length {Number} The length of the string to read. (Defaults to the length of the remaining data) - * @param encoding {String} The encoding to use. (Defaults to encoding set in constructor, or utf8) - * @returns {string} The string. - */ - SmartBuffer.prototype.readString = function (length, encoding) { - var len = Math.min(length, this.length - this._readOffset) || (this.length - this._readOffset); - var ret = this.buff.slice(this._readOffset, this._readOffset + len).toString(encoding || this.encoding); - this._readOffset += len; - return ret; - }; - - /** - * Reads a null terminated string from the underlying buffer. - * @param encoding {String} Encoding to use. Defaults to encoding set in constructor, or utf8. - * @returns {string} - */ - SmartBuffer.prototype.readStringNT = function (encoding) { - var nullpos = this.length; - for (var i = this._readOffset; i < this.length; i++) { - if (this.buff[i] == 0x00) { - nullpos = i; - break; - } - } - - var result = this.buff.slice(this._readOffset, nullpos); - this._readOffset = nullpos + 1; - - return result.toString(encoding || this.encoding); - }; - - - /** - * Reads a specified number of bytes. - * @param len {Number} Numbers of bytes to read. (Defaults to the remaining data length) - * @returns {Buffer} Buffer containing the read bytes. - */ - SmartBuffer.prototype.readBuffer = function (len) { - var endpoint = Math.min(this.length, this._readOffset + (typeof len === 'number' ? len : this.length)); - var ret = this.buff.slice(this._readOffset, endpoint); - this._readOffset = endpoint; - return ret; - }; - - /** - * Reads a null terminated sequence of bytes from the underlying buffer. - * @returns {Buffer} Buffer containing the read bytes. - */ - SmartBuffer.prototype.readBufferNT = function () { - var nullpos = this.length; - for (var i = this._readOffset; i < this.length; i++) { - if (this.buff[i] == 0x00) { - nullpos = i; - break; - } - } - - var ret = this.buff.slice(this._readOffset, nullpos); - this._readOffset = nullpos + 1; - - return ret; - }; - - - /* - Write Operations - */ - - - SmartBuffer.prototype.writeInt8 = makeWriter(Buffer.prototype.writeInt8, 1); - SmartBuffer.prototype.writeInt16BE = makeWriter(Buffer.prototype.writeInt16BE, 2); - SmartBuffer.prototype.writeInt16LE = makeWriter(Buffer.prototype.writeInt16LE, 2); - SmartBuffer.prototype.writeInt32BE = makeWriter(Buffer.prototype.writeInt32BE, 4); - SmartBuffer.prototype.writeInt32LE = makeWriter(Buffer.prototype.writeInt32LE, 4); - - SmartBuffer.prototype.writeUInt8 = makeWriter(Buffer.prototype.writeUInt8, 1); - SmartBuffer.prototype.writeUInt16BE = makeWriter(Buffer.prototype.writeUInt16BE, 2); - SmartBuffer.prototype.writeUInt16LE = makeWriter(Buffer.prototype.writeUInt16LE, 2); - SmartBuffer.prototype.writeUInt32BE = makeWriter(Buffer.prototype.writeUInt32BE, 4); - SmartBuffer.prototype.writeUInt32LE = makeWriter(Buffer.prototype.writeUInt32LE, 4); - - SmartBuffer.prototype.writeFloatBE = makeWriter(Buffer.prototype.writeFloatBE, 4); - SmartBuffer.prototype.writeFloatLE = makeWriter(Buffer.prototype.writeFloatLE, 4); - - SmartBuffer.prototype.writeDoubleBE = makeWriter(Buffer.prototype.writeDoubleBE, 8); - SmartBuffer.prototype.writeDoubleLE = makeWriter(Buffer.prototype.writeDoubleLE, 8); - - - /** - * Writes a string to the underlying buffer. - * @param value {String} The string to write. - * @param offset {Number} The offset to write the string to. (Encoding can also be set here in place of offset) - * @param encoding {String} The encoding to use. (Defaults to encoding set in constructor, or to utf8) - * @returns {*} - */ - SmartBuffer.prototype.writeString = function (value, offset, encoding) { - var len, _offset, type = typeof offset; - - if (type === 'number') { - _offset = offset; - } else if (type === 'string') { - encoding = offset; - offset = this._writeOffset; - } else { - encoding = undefined; - offset = this._writeOffset; - } - - len = Buffer.byteLength(value, encoding || this.encoding); - this._ensureWritable(len, _offset); - - this.buff.write(value, offset, len, encoding || this.encoding); - this._writeOffset += len; - return this; - }; - - /** - * Writes a null terminated string to the underlying buffer. - * @param value {String} The string to write. - * @param offset {Number} The offset to write the string to. (Encoding can also be set here in place of offset) - * @param encoding {String} The encoding to use. (Defaults to encoding set in constructor, or to utf8) - * @returns {*} - */ - SmartBuffer.prototype.writeStringNT = function (value, offset, encoding) { - this.writeString(value, offset, encoding); - this.writeUInt8(0x00, (typeof offset === 'number' ? offset + value.length : this._writeOffset)); - return this; - }; - - /** - * Writes a Buffer to the underlying buffer. - * @param value {Buffer} The buffer to write. - * @param offset {Number} The offset to write the Buffer to. - * @returns {*} - */ - SmartBuffer.prototype.writeBuffer = function (value, offset) { - var len = value.length; - this._ensureWritable(len, offset); - value.copy(this.buff, typeof offset === 'number' ? offset : this._writeOffset); - this._writeOffset += len; - return this; - }; - - /** - * Writes a null terminated Buffer to the underlying buffer. - * @param value {Buffer} The buffer to write. - * @param offset {Number} The offset to write the Buffer to. - * @returns {*} - */ - SmartBuffer.prototype.writeBufferNT = function (value, offset) { - this.writeBuffer(value, offset); - this.writeUInt8(0x00, (typeof offset === 'number' ? offset + value.length : this._writeOffset)); - - return this; - }; - - - /** - * Resets the Endless Buffer. - */ - SmartBuffer.prototype.clear = function () { - this._writeOffset = 0; - this._readOffset = 0; - this.length = 0; - }; - - /** - * Gets the remaining number of bytes to be read from the existing Buffer. - * @returns {number} The number of bytes remaining. - */ - SmartBuffer.prototype.remaining = function () { - return this.length - this._readOffset; - }; - - /** - * Skips the read position forward by the amount of given. - * @param amount {Number} The amount of bytes to skip forward. - */ - SmartBuffer.prototype.skip = function (amount) { - if (this._readOffset + amount > this.length) - throw new Error('Target position is beyond the bounds of the data.'); - - this._readOffset += amount; - }; - - /** - * Rewinds the read position backward by the amount given. - * @param amount {Number} The amount of bytes to reverse backward. - */ - SmartBuffer.prototype.rewind = function (amount) { - if (this._readOffset - amount < 0) - throw new Error('Target position is beyond the bounds of the data.'); - - this._readOffset -= amount; - }; - - /** - * Skips the read position to the given position. - * @param position {Number} The position to skip to. - */ - SmartBuffer.prototype.skipTo = function (position) { - if (position < 0 || position > this.length) - throw new Error('Target position is beyond the bounds of the data.'); - - this._readOffset = position; - }; - - /** - * Gets the underlying Buffer. - * @returns {*} - */ - SmartBuffer.prototype.toBuffer = function () { - return this.buff.slice(0, this.length); - }; - - /** - * Gets a string representation of the underlying Buffer. - * @param encoding {String} Encoding to use. (Defaults to encoding set in constructor, or utf8.) - * @returns {*} - */ - SmartBuffer.prototype.toString = function (encoding) { - return this.buff.toString(encoding || this.encoding, 0, this.length); - }; - - /** - * Destroys the underlying Buffer, and resets the SmartBuffer. - */ - SmartBuffer.prototype.destroy = function () { - delete this.buff; - this.clear(); - }; - - return SmartBuffer; -})(); - -module.exports = SmartBuffer; \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json b/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json deleted file mode 100644 index f6e183c589c4f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "_from": "smart-buffer@^1.0.13", - "_id": "smart-buffer@1.1.15", - "_inBundle": false, - "_integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", - "_location": "/npm-registry-fetch/smart-buffer", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "smart-buffer@^1.0.13", - "name": "smart-buffer", - "escapedName": "smart-buffer", - "rawSpec": "^1.0.13", - "saveSpec": null, - "fetchSpec": "^1.0.13" - }, - "_requiredBy": [ - "/npm-registry-fetch/socks" - ], - "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", - "_shasum": "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16", - "_spec": "smart-buffer@^1.0.13", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/socks", - "author": { - "name": "Josh Glazebrook" - }, - "bugs": { - "url": "https://github.com/JoshGlazebrook/smart-buffer/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "A smarter Buffer that keeps track of its own read and write positions while growing endlessly.", - "devDependencies": { - "chai": "^3.5.0", - "coveralls": "^2.11.15", - "istanbul": "^0.4.3", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.2.0" - }, - "engines": { - "node": ">= 0.10.15", - "npm": ">= 1.3.5" - }, - "homepage": "https://github.com/JoshGlazebrook/smart-buffer/", - "keywords": [ - "buffer", - "smart", - "serialize", - "packet", - "network", - "cursor", - "simple" - ], - "license": "MIT", - "main": "lib/smart-buffer.js", - "name": "smart-buffer", - "repository": { - "type": "git", - "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git" - }, - "scripts": { - "coverage": "istanbul cover node_modules/mocha/bin/_mocha recursive test", - "fullcoverage": "istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test", - "test": "mocha test/smart-buffer.test.js" - }, - "typings": "typings/index", - "version": "1.1.15" -} diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js b/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js deleted file mode 100644 index 0897d54c2f158..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js +++ /dev/null @@ -1,410 +0,0 @@ -var SmartBuffer = require('../lib/smart-buffer.js'); -var assert = require('chai').assert; - - -describe('Constructing a SmartBuffer', function () { - describe('Constructing with an existing Buffer', function () { - var buff = new Buffer([0xAA, 0xBB, 0xCC, 0xDD, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99]); - var reader = new SmartBuffer(buff); - - it('should have the exact same internal Buffer when constructed with a Buffer', function () { - assert.strictEqual(reader.buff, buff); - }); - - it('should return a buffer with the same content', function () { - assert.deepEqual(reader.toBuffer(), buff); - }); - }); - - describe('Constructing with an existing Buffer and setting the encoding', function () { - var buff = new Buffer([0xAA, 0xBB, 0xCC, 0xDD, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99]); - var reader = new SmartBuffer(buff, 'ascii'); - - it('should have the exact same internal Buffer', function () { - assert.strictEqual(reader.buff, buff); - }); - - it('should have the same encoding that was set', function () { - assert.strictEqual(reader.encoding, 'ascii'); - }); - }); - - describe('Constructing with a specified size', function () { - var size = 128; - var reader = new SmartBuffer(size); - - it('should have an internal Buffer with the same length as the size defined in the constructor', function () { - assert.strictEqual(reader.buff.length, size); - }); - }); - - describe('Constructing with a specified encoding', function () { - var encoding = 'utf8'; - - it('should have an internal encoding with the encoding given to the constructor (1st argument)', function () { - var reader = new SmartBuffer(encoding); - assert.strictEqual(reader.encoding, encoding); - }); - - it('should have an internal encoding with the encoding given to the constructor (2nd argument)', function () { - var reader = new SmartBuffer(1024, encoding); - assert.strictEqual(reader.encoding, encoding); - }); - - }); - - describe('Constructing with invalid parameters', function () { - it('should throw an exception when given an invalid number size', function () { - assert.throws(function () { - var reader = new SmartBuffer(-100); - }, Error); - }); - - it('should throw an exception when give a invalid encoding', function () { - assert.throws(function () { - var reader = new SmartBuffer('invalid'); - }, Error); - - assert.throws(function () { - var reader = new SmartBuffer(1024, 'invalid'); - }, Error); - }); - - it('should throw and exception when given an object that is not a Buffer', function () { - assert.throws(function () { - var reader = new SmartBuffer(null); - }, TypeError); - }); - }); -}); - - -describe('Reading/Writing To/From SmartBuffer', function () { - /** - * Technically, if one of these works, they all should. But they're all here anyways. - */ - - describe('Numeric Values', function () { - var reader = new SmartBuffer(); - reader.writeInt8(0x44); - reader.writeUInt8(0xFF); - reader.writeInt16BE(0x6699); - reader.writeInt16LE(0x6699); - reader.writeUInt16BE(0xFFDD); - reader.writeUInt16LE(0xFFDD); - reader.writeInt32BE(0x77889900); - reader.writeInt32LE(0x77889900); - reader.writeUInt32BE(0xFFDDCCBB); - reader.writeUInt32LE(0xFFDDCCBB); - reader.writeFloatBE(1.234); - reader.writeFloatLE(1.234); - reader.writeDoubleBE(1.234567890); - reader.writeDoubleLE(1.234567890); - - it('should equal the correct values that were written above', function () { - assert.strictEqual(reader.readInt8(), 0x44); - assert.strictEqual(reader.readUInt8(), 0xFF); - assert.strictEqual(reader.readInt16BE(), 0x6699); - assert.strictEqual(reader.readInt16LE(), 0x6699); - assert.strictEqual(reader.readUInt16BE(), 0xFFDD); - assert.strictEqual(reader.readUInt16LE(), 0xFFDD); - assert.strictEqual(reader.readInt32BE(), 0x77889900); - assert.strictEqual(reader.readInt32LE(), 0x77889900); - assert.strictEqual(reader.readUInt32BE(), 0xFFDDCCBB); - assert.strictEqual(reader.readUInt32LE(), 0xFFDDCCBB); - assert.closeTo(reader.readFloatBE(), 1.234, 0.001); - assert.closeTo(reader.readFloatLE(), 1.234, 0.001); - assert.closeTo(reader.readDoubleBE(), 1.234567890, 0.001); - assert.closeTo(reader.readDoubleLE(), 1.234567890, 0.001); - }); - - }); - - describe('Basic String Values', function () { - var reader = new SmartBuffer(); - reader.writeStringNT('hello'); - reader.writeString('world'); - reader.writeStringNT('✎✏✎✏✎✏'); - - it('should equal the correct strings that were written above', function () { - assert.strictEqual(reader.readStringNT(), 'hello'); - assert.strictEqual(reader.readString(5), 'world'); - assert.strictEqual(reader.readStringNT(), '✎✏✎✏✎✏'); - }); - }); - - describe('Mixed Encoding Strings', function () { - var reader = new SmartBuffer('ascii'); - reader.writeStringNT('some ascii text'); - reader.writeStringNT('ѕσмє υтƒ8 тєχт', 'utf8'); - - it('should equal the correct strings that were written above', function () { - assert.strictEqual(reader.readStringNT(), 'some ascii text'); - assert.strictEqual(reader.readStringNT('utf8'), 'ѕσмє υтƒ8 тєχт'); - }); - }); - - describe('Null/non-null terminating strings', function () { - var reader = new SmartBuffer(); - reader.writeString('hello\0test\0bleh'); - - it('should equal hello', function () { - assert.strictEqual(reader.readStringNT(), 'hello'); - }); - - it('should equal: test', function () { - assert.strictEqual(reader.readString(4), 'test'); - }); - - it('should have a length of zero', function () { - assert.strictEqual(reader.readStringNT().length, 0); - }); - - it('should equal: bleh', function () { - assert.strictEqual(reader.readStringNT(), 'bleh'); - }); - - - }); - - describe('Reading string without specifying length', function () { - var str = 'hello123'; - var writer = new SmartBuffer(); - writer.writeString(str); - - var reader = new SmartBuffer(writer.toBuffer()); - - assert.strictEqual(reader.readString(), str); - }); - - describe('Write string as specific position', function () { - var str = 'hello123'; - var writer = new SmartBuffer(); - writer.writeString(str, 10); - - var reader = new SmartBuffer(writer.toBuffer()); - - reader.skipTo(10); - it('Should read the correct string from the original position it was written to.', function () { - assert.strictEqual(reader.readString(), str); - }); - - - }); - - describe('Buffer Values', function () { - describe('Writing buffer to position 0', function () { - var buff = new SmartBuffer(); - var frontBuff = new Buffer([1, 2, 3, 4, 5, 6]); - buff.writeStringNT('hello'); - buff.writeBuffer(frontBuff, 0); - - it('should write the buffer to the front of the smart buffer instance', function () { - var readBuff = buff.readBuffer(frontBuff.length); - assert.deepEqual(readBuff, frontBuff); - }); - }); - - describe('Writing null terminated buffer to position 0', function () { - var buff = new SmartBuffer(); - var frontBuff = new Buffer([1, 2, 3, 4, 5, 6]); - buff.writeStringNT('hello'); - buff.writeBufferNT(frontBuff, 0); - - console.log(buff); - - it('should write the buffer to the front of the smart buffer instance', function () { - var readBuff = buff.readBufferNT(); - console.log(readBuff); - assert.deepEqual(readBuff, frontBuff); - }); - }); - - describe('Explicit lengths', function () { - var buff = new Buffer([0x01, 0x02, 0x04, 0x08, 0x16, 0x32, 0x64]); - var reader = new SmartBuffer(); - reader.writeBuffer(buff); - - it('should equal the buffer that was written above.', function () { - assert.deepEqual(reader.readBuffer(7), buff); - }); - }); - - describe('Implicit lengths', function () { - var buff = new Buffer([0x01, 0x02, 0x04, 0x08, 0x16, 0x32, 0x64]); - var reader = new SmartBuffer(); - reader.writeBuffer(buff); - - it('should equal the buffer that was written above.', function () { - assert.deepEqual(reader.readBuffer(), buff); - }); - }); - - describe('Null Terminated Buffer Reading', function () { - var buff = new SmartBuffer(); - buff.writeBuffer(new Buffer([0x01, 0x02, 0x03, 0x04, 0x00, 0x01, 0x02, 0x03])); - - var read1 = buff.readBufferNT(); - var read2 = buff.readBufferNT(); - - it('Should return a length of 4 for the four bytes before the first null in the buffer.', function () { - assert.equal(read1.length, 4); - }); - - it('Should return a length of 3 for the three bytes after the first null in the buffer after reading to end.', function () { - assert.equal(read2.length, 3); - }); - }); - - describe('Null Terminated Buffer Writing', function () { - var buff = new SmartBuffer(); - buff.writeBufferNT(new Buffer([0x01, 0x02, 0x03, 0x04])); - - var read1 = buff.readBufferNT(); - - it('Should read the correct null terminated buffer data.', function () { - assert.equal(read1.length, 4); - }); - - }) - - }); - - describe('Inserting values into specific positions', function () { - var reader = new SmartBuffer(); - - reader.writeUInt16LE(0x0060); - reader.writeStringNT('something'); - reader.writeUInt32LE(8485934); - reader.writeUInt16LE(6699); - reader.writeStringNT('else'); - reader.writeUInt16LE(reader.length - 2, 2); - - - it('should equal the size of the remaining data in the buffer', function () { - reader.readUInt16LE(); - var size = reader.readUInt16LE(); - assert.strictEqual(reader.remaining(), size); - }); - }); - - describe('Adding more data to the buffer than the internal buffer currently allows.', function () { - it('Should automatically adjust internal buffer size when needed', function () { - var writer = new SmartBuffer(); - var largeBuff = new Buffer(10000); - - writer.writeBuffer(largeBuff); - - assert.strictEqual(writer.length, largeBuff.length); - }); - }); - -}); - -describe('Skipping around data', function () { - var writer = new SmartBuffer(); - writer.writeStringNT('hello'); - writer.writeUInt16LE(6699); - writer.writeStringNT('world!'); - - it('Should equal the UInt16 that was written above', function () { - var reader = new SmartBuffer(writer.toBuffer()); - reader.skip(6); - assert.strictEqual(reader.readUInt16LE(), 6699); - reader.skipTo(0); - assert.strictEqual(reader.readStringNT(), 'hello'); - reader.rewind(6); - assert.strictEqual(reader.readStringNT(), 'hello'); - }); - - it('Should throw an error when attempting to skip more bytes than actually exist.', function () { - var reader = new SmartBuffer(writer.toBuffer()); - - assert.throws(function () { - reader.skip(10000); - }); - }); - - it('Should throw an error when attempting to skip to a position that does not exist.', function () { - var reader = new SmartBuffer(writer.toBuffer()); - - assert.throws(function () { - reader.skipTo(10000); - }); - }); - - it('Should throw an error when attempting to rewind past the start of the buffer.', function () { - var buff = new SmartBuffer(); - assert.throws(function () { - buff.rewind(10000); - }); - }); -}); - -describe('Automatic internal buffer resizing', function () { - var writer; - - it('Should not throw an error when adding data that is larger than current buffer size (internal resize algo fails)', function () { - var str = 'String larger than one byte'; - writer = new SmartBuffer(1); - writer.writeString(str); - - assert.strictEqual(writer.buff.length, str.length); - - }); - - it('Should not throw an error when adding data that is larger than current buffer size (internal resize algo succeeds)', function () { - writer = new SmartBuffer(100); - var buff = new Buffer(105); - - writer.writeBuffer(buff); - - // Test internal array growth algo. - assert.strictEqual(writer.buff.length, (100 * 3 / 2 + 1)); - }); -}); - -describe('Clearing the buffer', function () { - var writer = new SmartBuffer(); - writer.writeString('somedata'); - - it('Should contain some data.', function () { - assert.notStrictEqual(writer.length, 0); - }); - - it('Should contain zero data after being cleared.', function () { - writer.clear(); - assert.strictEqual(writer.length, 0); - }); -}); - -describe('Displaying the buffer as a string', function () { - var buff = new Buffer([1, 2, 3, 4]); - var sbuff = new SmartBuffer(buff); - - var str = buff.toString(); - var str64 = buff.toString('base64'); - - it('Should return a valid string representing the internal buffer', function () { - assert.strictEqual(str, sbuff.toString()); - }); - - it('Should return a valid base64 string representing the internal buffer', function () { - assert.strictEqual(str64, sbuff.toString('base64')); - }); -}); - -describe('Destroying the buffer', function () { - var writer = new SmartBuffer(); - writer.writeString('hello123'); - - writer.destroy(); - - it('Should have a length of zero when buffer is destroyed', function () { - assert.strictEqual(0, writer.length); - }); - - it('Should have no internal buff property when buffer is destroyed', function () { - assert.notProperty(writer, 'buff'); - }); -}); \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts b/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts deleted file mode 100644 index b567f1e97c285..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts +++ /dev/null @@ -1,383 +0,0 @@ -// Type definitions for smart-buffer -// Project: https://github.com/JoshGlazebrook/smart-buffer -// Definitions by: Josh Glazebrook - - - -declare class SmartBuffer { - /** - * Creates a new SmartBuffer instance (defaults to utf8 encoding) - */ - constructor(); - - /** - * Creates a new SmartBuffer instance - * - * @param arg1 { Number } The size the underlying buffer instance should be instantiated to (defaults to 4096) - * @param arg2 { String } The string encoding to use for reading/writing strings (defaults to utf8) - */ - constructor(size: number, encoding?: string); - - /** - * Creates a new SmartBuffer instance - * - * @param arg1 { String } The string encoding to use for reading/writing strings (defaults to utf8) - */ - constructor(encoding?: string); - - /** - * Creates a new SmartBuffer instance - * - * @param arg1 { Buffer } An existing buffer instance to copy to this smart buffer instance - * @param arg2 { String } The string encoding to use for reading/writing strings (defaults to utf8) - */ - constructor(buffer: Buffer, encoding?: string) - - - - // Signed number readers - - /** - * Reads a 8-bit signed integer - */ - readInt8(): number; - - /** - * Reads a 16-bit signed integer (big endian) - */ - readInt16BE(): number; - - /** - * Reads a 16-bit signed integer (little endian) - */ - readInt16LE(): number; - - /** - * Reads a 32-bit signed integer (big endian) - */ - readInt32BE(): number; - - /** - * Reads a 32-bit signed integer (little endian) - */ - readInt32LE(): number; - - // Unsigned number readers - - /** - * Reads a 8-bit unsigned integer - */ - readUInt8(): number; - - /** - * Reads a 16-bit unsigned integer (big endian) - */ - readUInt16BE(): number; - - /** - * Reads a 16-bit unsigned integer (little endian) - */ - readUInt16LE(): number; - - /** - * Reads a 32-bit unsigned integer (big endian) - */ - readUInt32BE(): number; - - /** - * Reads a 32-bit unsigned integer (little endian) - */ - readUInt32LE(): number; - - // Floating point readers - - /** - * Reads a float (big endian) - */ - readFloatBE(): number; - - /** - * Reads a float (little endian) - */ - readFloatLE(): number; - - /** - * Reads a double (big endian) - */ - readDoubleBE(): number; - - /** - * Reads a double (little endian) - */ - readDoubleLE(): number; - - // String readers - - /** - * Reads a string - * - * @param length { Number } The length of the string to read - * @param encoding { Number} The encoding to use (defaults to instance level encoding) - */ - readString(length?: number, encoding?: string): string; - - /** - * Reads a null terminated string - * - * @param encoding The encoding to use (defaults to instance level encoding) - */ - readStringNT(encoding?: string): string; - - // Buffer readers - - /** - * Reads binary data into a Buffer - * - * @param len { Number } The amount of data to read - */ - readBuffer(len?: number): Buffer; - - /** - * Reads null terminated binary data into a Buffer - */ - readBufferNT(): Buffer; - - - // Signed number writers - - /** - * Writes a 8-bit signed integer value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeInt8(value: number, offset?: number): this; - - /** - * Writes a 16-bit signed integer (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeInt16BE(value: number, offset?: number): this; - - /** - * Writes a 16-bit signed integer (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeInt16LE(value: number, offset?: number): this; - - /** - * Writes a 32-bit signed integer (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeInt32BE(value: number, offset?: number): this; - - /** - * Writes a 32-bit signed integer (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeInt32LE(value: number, offset?: number): this; - - // Unsigned number writers - - /** - * Writes a 8-bit unsigned integer value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeUInt8(value: number, offset?: number): this; - - /** - * Writes a 16-bit unsigned integer (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeUInt16BE(value: number, offset?: number): this; - - /** - * Writes a 16-bit unsigned integer (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeUInt16LE(value: number, offset?: number): this; - - /** - * Writes a 32-bit unsigned integer (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeUInt32BE(value: number, offset?: number): this; - - /** - * Writes a 32-bit unsigned integer (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeUInt32LE(value: number, offset?: number): this; - - // Floating point writers - - /** - * Writes a float (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeFloatBE(value: number, offset?: number): this; - - /** - * Writes a float (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeFloatLE(value: number, offset?: number): this; - - /** - * Writes a double (big endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeDoubleBE(value: number, offset?: number): this; - - /** - * Writes a double (little endian) value - * - * @param value { Number } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - writeDoubleLE(value: number, offset?: number): this; - - // String writers - - /** - * Writes a string - * - * @param value { String } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - /** - * Writes a string - * - * @param value { String } The value to write to the buffer - * @param offset { String } The encoding to use when writing the string (defaults to instance level encoding) - */ - /** - * Writes a string - * - * @param value { String } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - * @param encoding { String } The encoding to use when writing the string (defaults to instance level encoding) - */ - writeString(value: string, offset?: number | string, encoding?: string): this; - - /** - * Writes a null terminated string - * - * @param value { String } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - */ - /** - * Writes a null terminated string - * - * @param value { String } The value to write to the buffer - * @param offset { String } The encoding to use when writing the string (defaults to instance level encoding) - */ - /** - * Writes a null terminated string - * - * @param value { String } The value to write to the buffer - * @param offset { Number } The offset position to write the value to - * @param encoding { String } The encoding to use when writing the string (defaults to instance level encoding) - */ - writeStringNT(value: string, offset?: number | string, encoding?: string): this; - - // Buffer writers - - /** - * Writes a Buffer - * - * @param value { Buffer } The Buffer to write to the smart buffer - * @param offset { Number } The offset position to write the value to - */ - writeBuffer(value: Buffer, offset?: number): this; - - /** - * Writes a Buffer with null termination - * - * @param value { Buffer } The buffer to write to the smart buffer - * @param offset { Number } The offset position to write the value to - */ - writeBufferNT(value: Buffer, offset?: number): this; - - - // Misc Functions - - /** - * Clears the smart buffer - */ - clear(); - - /** - * Gets the number of bytes that remain to be read - */ - remaining(): number; - - /** - * Increases the read offset position - * - * @param amount { Number } The amount to increase the read offset position by - */ - skip(amount: number); - - /** - * Changes the read offset position - * - * @param position { Number } The position to change the read offset to - */ - skipTo(position: number); - - /** - * Decreases the read offset position - * - * @param amount { Number } The amount to decrease the read offset position by - */ - rewind(amount: number); - - /** - * Gets the underlying Buffer instance - */ - toBuffer(): Buffer; - - /** - * Gets the string representation of the underlying Buffer - * - * @param encoding { String } The encoding to use (defaults to instance level encoding) - */ - toString(encoding?: string): string; - - /** - * Destroys the smart buffer instance - */ - destroy(); - - /** - * Gets the current length of the smart buffer instance - */ - length: number; -} - -export = SmartBuffer; \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore deleted file mode 100644 index 07e6e472cc75f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/node_modules diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml deleted file mode 100644 index 805d3d50d2a1f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "4" - - "5" - - "6" - - "7" - - "8" - -install: - - PATH="`npm bin`:`npm bin -g`:$PATH" - # Install dependencies and build - - npm install - -script: - # Output useful info for debugging - - node --version - - npm --version - # Run tests - - npm test diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md deleted file mode 100644 index b0266b5e35f9a..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md +++ /dev/null @@ -1,96 +0,0 @@ - -3.0.1 / 2017-09-18 -================== - - * update "agent-base" to v4.1.0 - -3.0.0 / 2017-06-13 -================== - - * [BREAKING] drop support for Node < 4 - * update deps, remove `extend` dependency - * rename `socks-proxy-agent.js` to `index.js` - -2.1.1 / 2017-06-13 -================== - - * fix a bug where `close` would emit before `end` - * use "raw-body" module for tests - * prettier - -2.1.0 / 2017-05-24 -================== - - * DRY post-lookup logic - * Fix an error in readme (#13, @599316527) - * travis: test node v5 - * travis: test iojs v1, 2, 3 and node.js v4 - * test: use ssl-cert-snakeoil cert files - * Authentication support (#9, @baryshev) - -2.0.0 / 2015-07-10 -================== - - * API CHANGE! Removed `secure` boolean second argument in constructor - * upgrade to "agent-base" v2 API - * package: update "extend" to v3 - -1.0.2 / 2015-07-01 -================== - - * remove "v4a" from description - * socks-proxy-agent: cast `port` to a Number - * travis: attempt to make node v0.8 work - * travis: test node v0.12, don't test v0.11 - * test: pass `rejectUnauthorized` as a proxy opt - * test: catch http.ClientRequest errors - * test: add self-signed SSL server cert files - * test: refactor to use local SOCKS, HTTP and HTTPS servers - * README: use SVG for Travis-CI badge - -1.0.1 / 2015-03-01 -================== - - * switched from using "socks-client" to "socks" (#5, @JoshGlazebrook) - -1.0.0 / 2015-02-11 -================== - - * add client-side DNS lookup logic for 4 and 5 version socks proxies - * remove dead `onproxyconnect()` code function - * use a switch statement to decide the socks `version` - * refactor to use "socks-client" instead of "rainbowsocks" - * package: remove "rainbowsocks" dependency - * package: allow any "mocha" v2 - -0.1.2 / 2014-06-11 -================== - - * package: update "rainbowsocks" to v0.1.2 - * travis: don't test node v0.9 - -0.1.1 / 2014-04-09 -================== - - * package: update outdated dependencies - * socks-proxy-agent: pass `secure` flag when no `new` - * socks-proxy-agent: small code cleanup - -0.1.0 / 2013-11-19 -================== - - * add .travis.yml file - * socks-proxy-agent: properly mix in the proxy options - * socks-proxy-agent: coerce the `secureEndpoint` into a Boolean - * socks-proxy-agent: use "extend" module - * socks-proxy-agent: update to "agent-base" v1 API - -0.0.2 / 2013-07-24 -================== - - * socks-proxy-agent: properly set the `defaultPort` property - -0.0.1 / 2013-07-11 -================== - - * Initial release diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md deleted file mode 100644 index 30d33500af43e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md +++ /dev/null @@ -1,134 +0,0 @@ -socks-proxy-agent -================ -### A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS -[![Build Status](https://travis-ci.org/TooTallNate/node-socks-proxy-agent.svg?branch=master)](https://travis-ci.org/TooTallNate/node-socks-proxy-agent) - -This module provides an `http.Agent` implementation that connects to a -specified SOCKS proxy server, and can be used with the built-in `http` -or `https` modules. - -It can also be used in conjunction with the `ws` module to establish a WebSocket -connection over a SOCKS proxy. See the "Examples" section below. - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install socks-proxy-agent -``` - - -Examples --------- - -#### `http` module example - -``` js -var url = require('url'); -var http = require('http'); -var SocksProxyAgent = require('socks-proxy-agent'); - -// SOCKS proxy to connect to -var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050'; -console.log('using proxy server %j', proxy); - -// HTTP endpoint for the proxy to connect to -var endpoint = process.argv[2] || 'http://nodejs.org/api/'; -console.log('attempting to GET %j', endpoint); -var opts = url.parse(endpoint); - -// create an instance of the `SocksProxyAgent` class with the proxy server information -var agent = new SocksProxyAgent(proxy); -opts.agent = agent; - -http.get(opts, function (res) { - console.log('"response" event!', res.headers); - res.pipe(process.stdout); -}); -``` - -#### `https` module example - -``` js -var url = require('url'); -var https = require('https'); -var SocksProxyAgent = require('socks-proxy-agent'); - -// SOCKS proxy to connect to -var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050'; -console.log('using proxy server %j', proxy); - -// HTTP endpoint for the proxy to connect to -var endpoint = process.argv[2] || 'https://encrypted.google.com/'; -console.log('attempting to GET %j', endpoint); -var opts = url.parse(endpoint); - -// create an instance of the `SocksProxyAgent` class with the proxy server information -// NOTE: the `true` second argument! Means to use TLS encryption on the socket -var agent = new SocksProxyAgent(proxy, true); -opts.agent = agent; - -https.get(opts, function (res) { - console.log('"response" event!', res.headers); - res.pipe(process.stdout); -}); -``` - -#### `ws` WebSocket connection example - -``` js -var WebSocket = require('ws'); -var SocksProxyAgent = require('socks-proxy-agent'); - -// SOCKS proxy to connect to -var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050'; -console.log('using proxy server %j', proxy); - -// WebSocket endpoint for the proxy to connect to -var endpoint = process.argv[2] || 'ws://echo.websocket.org'; -console.log('attempting to connect to WebSocket %j', endpoint); - -// create an instance of the `SocksProxyAgent` class with the proxy server information -var agent = new SocksProxyAgent(proxy); - -// initiate the WebSocket connection -var socket = new WebSocket(endpoint, { agent: agent }); - -socket.on('open', function () { - console.log('"open" event!'); - socket.send('hello world'); -}); - -socket.on('message', function (data, flags) { - console.log('"message" event! %j %j', data, flags); - socket.close(); -}); -``` - -License -------- - -(The MIT License) - -Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js deleted file mode 100644 index 3dac18d564543..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Module dependencies. - */ - -var tls; // lazy-loaded... -var url = require('url'); -var dns = require('dns'); -var Agent = require('agent-base'); -var SocksClient = require('socks'); -var inherits = require('util').inherits; - -/** - * Module exports. - */ - -module.exports = SocksProxyAgent; - -/** - * The `SocksProxyAgent`. - * - * @api public - */ - -function SocksProxyAgent(opts) { - if (!(this instanceof SocksProxyAgent)) return new SocksProxyAgent(opts); - if ('string' == typeof opts) opts = url.parse(opts); - if (!opts) - throw new Error( - 'a SOCKS proxy server `host` and `port` must be specified!' - ); - Agent.call(this, opts); - - var proxy = Object.assign({}, opts); - - // prefer `hostname` over `host`, because of `url.parse()` - proxy.host = proxy.hostname || proxy.host; - - // SOCKS doesn't *technically* have a default port, but this is - // the same default that `curl(1)` uses - proxy.port = +proxy.port || 1080; - - if (proxy.host && proxy.path) { - // if both a `host` and `path` are specified then it's most likely the - // result of a `url.parse()` call... we need to remove the `path` portion so - // that `net.connect()` doesn't attempt to open that as a unix socket file. - delete proxy.path; - delete proxy.pathname; - } - - // figure out if we want socks v4 or v5, based on the "protocol" used. - // Defaults to 5. - proxy.lookup = false; - switch (proxy.protocol) { - case 'socks4:': - proxy.lookup = true; - // pass through - case 'socks4a:': - proxy.version = 4; - break; - case 'socks5:': - proxy.lookup = true; - // pass through - case 'socks:': // no version specified, default to 5h - case 'socks5h:': - proxy.version = 5; - break; - default: - throw new TypeError( - 'A "socks" protocol must be specified! Got: ' + proxy.protocol - ); - } - - if (proxy.auth) { - var auth = proxy.auth.split(':'); - proxy.authentication = { username: auth[0], password: auth[1] }; - proxy.userid = auth[0]; - } - this.proxy = proxy; -} -inherits(SocksProxyAgent, Agent); - -/** - * Initiates a SOCKS connection to the specified SOCKS proxy server, - * which in turn connects to the specified remote host and port. - * - * @api public - */ - -SocksProxyAgent.prototype.callback = function connect(req, opts, fn) { - var proxy = this.proxy; - - // called once the SOCKS proxy has connected to the specified remote endpoint - function onhostconnect(err, socket) { - if (err) return fn(err); - var s = socket; - if (opts.secureEndpoint) { - // since the proxy is connecting to an SSL server, we have - // to upgrade this socket connection to an SSL connection - if (!tls) tls = require('tls'); - opts.socket = socket; - opts.servername = opts.host; - opts.host = null; - opts.hostname = null; - opts.port = null; - s = tls.connect(opts); - } - socket.resume(); - fn(null, s); - } - - // called for the `dns.lookup()` callback - function onlookup(err, ip) { - if (err) return fn(err); - options.target.host = ip; - SocksClient.createConnection(options, onhostconnect); - } - - var options = { - proxy: { - ipaddress: proxy.host, - port: +proxy.port, - type: proxy.version - }, - target: { - port: +opts.port - }, - command: 'connect' - }; - if (proxy.authentication) { - options.proxy.authentication = proxy.authentication; - options.proxy.userid = proxy.userid; - } - - if (proxy.lookup) { - // client-side DNS resolution for "4" and "5" socks proxy versions - dns.lookup(opts.host, onlookup); - } else { - // proxy hostname DNS resolution for "4a" and "5h" socks proxy servers - onlookup(null, opts.host); - } -} diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json deleted file mode 100644 index 011f4a61f771b..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_from": "socks-proxy-agent@^3.0.1", - "_id": "socks-proxy-agent@3.0.1", - "_inBundle": false, - "_integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", - "_location": "/npm-registry-fetch/socks-proxy-agent", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "socks-proxy-agent@^3.0.1", - "name": "socks-proxy-agent", - "escapedName": "socks-proxy-agent", - "rawSpec": "^3.0.1", - "saveSpec": null, - "fetchSpec": "^3.0.1" - }, - "_requiredBy": [ - "/npm-registry-fetch/make-fetch-happen" - ], - "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", - "_shasum": "2eae7cf8e2a82d34565761539a7f9718c5617659", - "_spec": "socks-proxy-agent@^3.0.1", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen", - "author": { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io/" - }, - "bugs": { - "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues" - }, - "bundleDependencies": false, - "dependencies": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - }, - "deprecated": false, - "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS", - "devDependencies": { - "mocha": "^3.4.2", - "raw-body": "^2.2.0", - "socksv5": "0.0.6" - }, - "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme", - "keywords": [ - "socks", - "socks4", - "socks4a", - "proxy", - "http", - "https", - "agent" - ], - "license": "MIT", - "main": "./index.js", - "name": "socks-proxy-agent", - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git" - }, - "scripts": { - "test": "mocha --reporter spec" - }, - "version": "3.0.1" -} diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key deleted file mode 100644 index fd12501220a56..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICWwIBAAKBgQCzURxIqzer0ACAbX/lHdsn4Gd9PLKrf7EeDYfIdV0HZKPD8WDr -bBx2/fBu0OW2sjnzv/SVZbJ0DAuPE/p0+eT0qb2qC10iz9iTD7ribd7gxhirVb8y -b3fBjXsxc8V8p4Ny1LcvNSqCjwUbJqdRogfoJeTiqPM58z5sNzuv5iq7iwIDAQAB -AoGAPMQy4olrP0UotlzlJ36bowLP70ffgHCwU+/f4NWs5fF78c3du0oSx1w820Dd -Z7E0JF8bgnlJJTxjumPZz0RUCugrEHBKJmzEz3cxF5E3+7NvteZcjKn9D67RrM5x -1/uSZ9cqKE9cYvY4fSuHx18diyZ4axR/wB1Pea2utjjDM+ECQQDb9ZbmmaWMiRpQ -5Up+loxP7BZNPsEVsm+DVJmEFbaFgGfncWBqSIqnPNjMwTwj0OigTwCAEGPkfRVW -T0pbYWCxAkEA0LK7SCTwzyDmhASUalk0x+3uCAA6ryFdwJf/wd8TRAvVOmkTEldX -uJ7ldLvfrONYO3v56uKTU/SoNdZYzKtO+wJAX2KM4ctXYy5BXztPpr2acz4qHa1N -Bh+vBAC34fOYhyQ76r3b1btHhWZ5jbFuZwm9F2erC94Ps5IaoqcX07DSwQJAPKGw -h2U0EPkd/3zVIZCJJQya+vgWFIs9EZcXVtvYXQyTBkVApTN66MhBIYjzkub5205J -bVQmOV37AKklY1DhwQJAA1wos0cYxro02edzatxd0DIR2r4qqOqLkw6BhYHhq6HJ -ZvIcQkHqdSXzdETFc01I1znDGGIrJHcnvKWgBPoEUg== ------END RSA PRIVATE KEY----- diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem deleted file mode 100644 index b115a5e91498d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIB1TCCAT4CCQDV5mPlzm9+izANBgkqhkiG9w0BAQUFADAvMS0wKwYDVQQDEyQ3 -NTI3YmQ3Ny1hYjNlLTQ3NGItYWNlNy1lZWQ2MDUzOTMxZTcwHhcNMTUwNzA2MjI0 -NTA3WhcNMjUwNzAzMjI0NTA3WjAvMS0wKwYDVQQDEyQ3NTI3YmQ3Ny1hYjNlLTQ3 -NGItYWNlNy1lZWQ2MDUzOTMxZTcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB -ALNRHEirN6vQAIBtf+Ud2yfgZ308sqt/sR4Nh8h1XQdko8PxYOtsHHb98G7Q5bay -OfO/9JVlsnQMC48T+nT55PSpvaoLXSLP2JMPuuJt3uDGGKtVvzJvd8GNezFzxXyn -g3LUty81KoKPBRsmp1GiB+gl5OKo8znzPmw3O6/mKruLAgMBAAEwDQYJKoZIhvcN -AQEFBQADgYEACzoHUF8UV2Z6541Q2wKEA0UFUzmUjf/E1XwBO+1P15ZZ64uw34B4 -1RwMPtAo9RY/PmICTWtNxWGxkzwb2JtDWtnxVER/lF8k2XcXPE76fxTHJF/BKk9J -QU8OTD1dd9gHCBviQB9TqntRZ5X7axjtuWjb2umY+owBYzAHZkp1HKI= ------END CERTIFICATE----- diff --git a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js b/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js deleted file mode 100644 index 968ef650fb6d7..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js +++ /dev/null @@ -1,144 +0,0 @@ - -/** - * Module dependencies. - */ - -var fs = require('fs'); -var url = require('url'); -var http = require('http'); -var https = require('https'); -var assert = require('assert'); -var socks = require('socksv5'); -var getRawBody = require('raw-body'); -var SocksProxyAgent = require('../'); - -describe('SocksProxyAgent', function () { - var httpServer, httpPort; - var httpsServer, httpsPort; - var socksServer, socksPort; - - before(function (done) { - // setup SOCKS proxy server - socksServer = socks.createServer(function(info, accept, deny) { - accept(); - }); - socksServer.listen(0, '127.0.0.1', function() { - socksPort = socksServer.address().port; - //console.log('SOCKS server listening on port %d', socksPort); - done(); - }); - socksServer.useAuth(socks.auth.None()); - //socksServer.useAuth(socks.auth.UserPassword(function(user, password, cb) { - // cb(user === 'nodejs' && password === 'rules!'); - //})); - }); - - before(function (done) { - // setup target HTTP server - httpServer = http.createServer(); - httpServer.listen(function () { - httpPort = httpServer.address().port; - done(); - }); - }); - - before(function (done) { - // setup target SSL HTTPS server - var options = { - key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'), - cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem') - }; - httpsServer = https.createServer(options); - httpsServer.listen(function () { - httpsPort = httpsServer.address().port; - done(); - }); - }); - - after(function (done) { - socksServer.once('close', function () { done(); }); - socksServer.close(); - }); - - after(function (done) { - httpServer.once('close', function () { done(); }); - httpServer.close(); - }); - - after(function (done) { - httpsServer.once('close', function () { done(); }); - httpsServer.close(); - }); - - describe('constructor', function () { - it('should throw an Error if no "proxy" argument is given', function () { - assert.throws(function () { - new SocksProxyAgent(); - }); - }); - it('should accept a "string" proxy argument', function () { - var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort); - assert.equal('127.0.0.1', agent.proxy.host); - assert.equal(socksPort, agent.proxy.port); - }); - it('should accept a `url.parse()` result object argument', function () { - var opts = url.parse('socks://127.0.0.1:' + socksPort); - var agent = new SocksProxyAgent(opts); - assert.equal('127.0.0.1', agent.proxy.host); - assert.equal(socksPort, agent.proxy.port); - }); - }); - - describe('"http" module', function () { - it('should work against an HTTP endpoint', function (done) { - httpServer.once('request', function (req, res) { - assert.equal('/foo', req.url); - res.statusCode = 404; - res.end(JSON.stringify(req.headers)); - }); - - var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort); - var opts = url.parse('http://127.0.0.1:' + httpPort + '/foo'); - opts.agent = agent; - opts.headers = { foo: 'bar' }; - var req = http.get(opts, function (res) { - assert.equal(404, res.statusCode); - getRawBody(res, 'utf8', function (err, buf) { - if (err) return done(err); - var data = JSON.parse(buf); - assert.equal('bar', data.foo); - done(); - }); - }); - req.once('error', done); - }); - }); - - describe('"https" module', function () { - it('should work against an HTTPS endpoint', function (done) { - httpsServer.once('request', function (req, res) { - assert.equal('/foo', req.url); - res.statusCode = 404; - res.end(JSON.stringify(req.headers)); - }); - - var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort); - var opts = url.parse('https://127.0.0.1:' + httpsPort + '/foo'); - opts.agent = agent; - opts.rejectUnauthorized = false; - - opts.headers = { foo: 'bar' }; - var req = https.get(opts, function (res) { - assert.equal(404, res.statusCode); - getRawBody(res, 'utf8', function (err, buf) { - if (err) return done(err); - var data = JSON.parse(buf); - assert.equal('bar', data.foo); - done(); - }); - }); - req.once('error', done); - }); - }); - -}); diff --git a/node_modules/npm-registry-fetch/node_modules/socks/.npmignore b/node_modules/npm-registry-fetch/node_modules/socks/.npmignore deleted file mode 100644 index 7deddced8b855..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.git* -.idea -npm-debug.log \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/socks/LICENSE b/node_modules/npm-registry-fetch/node_modules/socks/LICENSE deleted file mode 100644 index b2442a9e71326..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Josh Glazebrook - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/socks/README.md b/node_modules/npm-registry-fetch/node_modules/socks/README.md deleted file mode 100644 index 890b7deb6aa1d..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/README.md +++ /dev/null @@ -1,339 +0,0 @@ -socks -============= - -socks is a full client implementation of the SOCKS 4, 4a, and 5 protocols in an easy to use node.js module. - -### Notice -As of February 26th, 2015, socks is the new home of the socks-client package. - -### Why socks? - -There is not any other SOCKS proxy client library on npm that supports all three variants of the SOCKS protocol. Nor are there any that support the BIND and associate features that some versions of the SOCKS protocol supports. - -Key Features: -* Supports SOCKS 4, 4a, and 5 protocols -* Supports the connect method (simple tcp connections of SOCKS) (Client -> SOCKS Server -> Target Server) -* Supports the BIND method (4, 4a, 5) -* Supports the associate (UDP forwarding) method (5) -* Simple and easy to use (one function call to make any type of SOCKS connection) - -## Installing: - -`npm install socks` - -### Getting Started Example - -For this example, say you wanted to grab the html of google's home page. - -```javascript -var Socks = require('socks'); - -var options = { - proxy: { - ipaddress: "202.101.228.108", // Random public proxy - port: 1080, - type: 5 // type is REQUIRED. Valid types: [4, 5] (note 4 also works for 4a) - }, - target: { - host: "google.com", // can be an ip address or domain (4a and 5 only) - port: 80 - }, - command: 'connect' // This defaults to connect, so it's optional if you're not using BIND or Associate. -}; - -Socks.createConnection(options, function(err, socket, info) { - if (err) - console.log(err); - else { - // Connection has been established, we can start sending data now: - socket.write("GET / HTTP/1.1\nHost: google.com\n\n"); - socket.on('data', function(data) { - console.log(data.length); - console.log(data); - }); - - // PLEASE NOTE: sockets need to be resumed before any data will come in or out as they are paused right before this callback is fired. - socket.resume(); - - // 569 - // // This first piece of information can be ignored. - -7 - // Hello <\r\n (enter key)> - -11 - // aaaaaaaaa <\r\n (enter key)> -``` - -As you can see the data entered in the telnet terminal is routed through the SOCKS proxy and back to the original connection that was made to the proxy. - -**Note** Please pay close attention to the first piece of data that was received. - -``` - - - [005a] [PORT:2} [IP:4] -``` - -This piece of data is technically part of the SOCKS BIND specifications, but because of my design decisions that were made in an effort to keep this library simple to use, you will need to make sure to ignore and/or deal with this initial packet that is received when a connection is made to the newly opened port. - -### Associate Example: -The associate command sets up a UDP relay for the remote SOCKS proxy server to relay UDP packets to the remote host of your choice. - -```javascript -var options = { - proxy: { - ipaddress: "202.101.228.108", - port: 1080, - type: 5, - command: "associate" // Since we are using associate, we must specify it here. - }, - target: { - // When using associate, either set the ip and port to 0.0.0.0:0 or the expected source of incoming udp packets. - // Note: Some SOCKS servers MAY block associate requests with 0.0.0.0:0 endpoints. - // Note: ipv4, ipv6, and hostnames are supported here. - host: "0.0.0.0", - port: 0 - } -}; - - -Socks.createConnection(options, function(err, socket, info) { - if (err) - console.log(err); - else { - // Associate request has completed. - // info object contains the remote ip and udp port to send UDP packets to. - console.log(info); - // { port: 42803, host: '202.101.228.108' } - - var udp = new dgram.Socket('udp4'); - - // In this example we are going to send "Hello" to 1.2.3.4:2323 through the SOCKS proxy. - - var pack = Socks.createUDPFrame({ host: "1.2.3.4", port: 2323}, new Buffer("hello")); - - // Send Packet to Proxy UDP endpoint given in the info object. - udp.send(pack, 0, pack.length, info.port, info.host); - } -}); - -``` -Now assuming that the associate request went through correctly. Anything that is typed in the stdin will first be sent to the SOCKS proxy on the endpoint that was provided in the info object. Once the SOCKS proxy receives it, it will then forward on the actual UDP packet to the host you you wanted. - - -1.2.3.4:2323 should now receive our relayed UDP packet from 202.101.228.108 (SOCKS proxy) -``` -// -``` - -## Using socks as an HTTP Agent - -You can use socks as a http agent which will relay all your http -connections through the socks server. - -The object that `Socks.Agent` accepts is the same as `Socks.createConnection`, you don't need to set a target since you have to define it in `http.request` or `http.get` methods. - -The second argument is a boolean which indicates whether the remote endpoint requires TLS. - -```javascript -var socksAgent = new Socks.Agent({ - proxy: { - ipaddress: "202.101.228.108", - port: 1080, - type: 5, - }}, - true, // we are connecting to a HTTPS server, false for HTTP server - false // rejectUnauthorized option passed to tls.connect(). Only when secure is set to true -); - -http.get({ hostname: 'google.com', port: '443', agent: socksAgent}, function (res) { - // Connection header by default is keep-alive, we have to manually end the socket - socksAgent.encryptedSocket.end(); -}); -``` - -# Api Reference: - -There are only three exported functions that you will ever need to use. - -### Socks.createConnection( options, callback(err, socket, info) ) -> `Object` **Object containing options to use when creating this connection** - -> `function` **Callback that is called when connection completes or errors** - -Options: - -```javascript -var options = { - - // Information about proxy server - proxy: { - // IP Address of Proxy (Required) - ipaddress: "1.2.3.4", - - // TCP Port of Proxy (Required) - port: 1080, - - // Proxy Type [4, 5] (Required) - // Note: 4 works for both 4 and 4a. - type: 4, - - // SOCKS Connection Type (Optional) - // - defaults to 'connect' - - // 'connect' - establishes a regular SOCKS connection to the target host. - // 'bind' - establishes an open tcp port on the SOCKS for another client to connect to. - // 'associate' - establishes a udp association relay on the SOCKS server. - command: "connect", - - - // SOCKS 4 Specific: - - // UserId used when making a SOCKS 4/4a request. (Optional) - userid: "someuserid", - - // SOCKS 5 Specific: - - // Authentication used for SOCKS 5 (when it's required) (Optional) - authentication: { - username: "Josh", - password: "somepassword" - } - }, - - // Information about target host and/or expected client of a bind association. (Required) - target: { - // When using 'connect': IP Address or hostname (4a and 5 only) of a target to connect to. - // When using 'bind': IP Address of the expected client that will connect to the newly open tcp port. - // When using 'associate': IP Address and Port of the expected client that will send UDP packets to this UDP association relay. - - // Note: - // When using SOCKS 4, only an ipv4 address can be used. - // When using SOCKS 4a, an ipv4 address OR a hostname can be used. - // When using SOCKS 5, ipv4, ipv6, or a hostname can be used. - host: "1.2.3.4", - - // TCP port of target to connect to. - port: 1080 - }, - - // Amount of time to wait for a connection to be established. (Optional) - // - defaults to 10000ms (10 seconds) - timeout: 10000 -}; -``` -Callback: - -```javascript - -// err: If an error occurs, err will be an Error object, otherwise null. -// socket: Socket with established connection to your target host. -// info: If using BIND or associate, this will be the remote endpoint to use. - -function(err, socket, info) { - // Hopefully no errors :-) -} -``` - -### Socks.createUDPFrame( target, data, [frame] ) -> `Object` **Target host object containing destination for UDP packet** - -> `Buffer` **Data Buffer to send in the UDP packet** - -> `Number` **Frame number in UDP packet. (defaults to 0)** - -Creates a UDP packet frame for using with UDP association relays. - -returns `Buffer` The completed UDP packet container to be sent to the proxy for forwarding. - -target: -```javascript - -// Target host information for where the UDP packet should be sent. -var target = - { - // ipv4, ipv6, or hostname for where to have the proxy send the UDP packet. - host: "1.2.3.4", - - // udpport for where to send the UDP packet. - port: 2323 - } - -``` - -### Socks.Agent( options, tls) ) -> `Object` **Object containing options to use when creating this connection (see above in createConnection)** - -> `boolean` **Boolean indicating if we upgrade the connection to TLS on the socks server** - - -# Further Reading: -Please read the SOCKS 5 specifications for more information on how to use BIND and Associate. -http://www.ietf.org/rfc/rfc1928.txt - -# License -This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License). diff --git a/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js b/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js deleted file mode 100644 index 82d6afa97bcce..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js +++ /dev/null @@ -1,33 +0,0 @@ -var Socks = require('../index.js'); -var dgram = require('dgram'); - -var options = { - proxy: { - ipaddress: "202.101.228.108", - port: 1080, - type: 5, - command: 'associate' - }, - - target: { - host: "0.0.0.0", - port: 0 - } -}; - -Socks.createConnection(options, function(err, socket, info) { - if (err) - console.log(err); - else { - console.log("Connected"); - - // Associate request completed. - // Now we can send properly formed UDP packet frames to this endpoint for forwarding: - console.log(info); - // { port: 4381, host: '202.101.228.108' } - - var udp = new dgram.Socket('udp4'); - var packet = SocksClient.createUDPFrame({ host: "1.2.3.4", port: 5454}, new Buffer("Hello")); - udp.send(packet, 0, packet.length, info.port, info.host); - } -}); \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js b/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js deleted file mode 100644 index 4410dd1def53c..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js +++ /dev/null @@ -1,30 +0,0 @@ -var Socks = require('../index.js'); - -var options = { - proxy: { - ipaddress: "202.101.228.108", - port: 1080, - type: 5, - command: 'bind' - }, - - target: { - host: "0.0.0.0", - port: 0 - } -}; - -Socks.createConnection(options, function(err, socket, info) { - if (err) - console.log(err); - else { - console.log("Connected"); - - // BIND request completed, now a tcp client should connect to this endpoint: - console.log(info); - // { port: 3334, host: '202.101.228.108' } - - // Resume! You need to! - socket.resume(); - } -}); \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js b/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js deleted file mode 100644 index 528ad4d416001..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js +++ /dev/null @@ -1,31 +0,0 @@ -var Socks = require('../index.js'); - -var options = { - proxy: { - ipaddress: "31.193.133.9", - port: 1081, - type: 5 // (4 or 5) - }, - - target: { - host: "173.194.33.103", // (google.com) - port: 80 - } -}; - -Socks.createConnection(options, function (err, socket, info) { - if (err) - console.log(err); - else { - console.log("Connected"); - - socket.on('data', function (data) { - // do something with incoming data - }); - - // Please remember that sockets need to be resumed before any data will come in. - socket.resume(); - - // We can do whatever we want with the socket now. - } -}); \ No newline at end of file diff --git a/node_modules/npm-registry-fetch/node_modules/socks/index.js b/node_modules/npm-registry-fetch/node_modules/socks/index.js deleted file mode 100644 index 29331d4a1c830..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/index.js +++ /dev/null @@ -1,6 +0,0 @@ -var SocksClient = require('./lib/socks-client.js'); -var SocksAgent = require('./lib/socks-agent.js'); - -exports.createConnection = SocksClient.createConnection; -exports.createUDPFrame = SocksClient.createUDPFrame; -exports.Agent = SocksAgent.Agent; diff --git a/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js b/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js deleted file mode 100644 index db1c301ec9e48..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js +++ /dev/null @@ -1,108 +0,0 @@ -var tls = require('tls'); -var inherits = require('util').inherits; -var EventEmitter = require('events').EventEmitter; -var SocksClient = require('./socks-client.js'); - -function SocksAgent(options, secure, rejectUnauthorized) { - this.options = options; - this.secure = secure || false; - this.rejectUnauthorized = rejectUnauthorized; - - if (this.rejectUnauthorized === undefined) { - this.rejectUnauthorized = true; - } -} - -inherits(SocksAgent, EventEmitter); - -SocksAgent.prototype.createConnection = function(req, opts, fn) { - var handler = fn, host, self = this; - - this.options.target = this.options.target || {}; - - if (!this.options.target.host) { - this.options.target.host = opts.host; - } - - if (!this.options.target.port) { - this.options.target.port = opts.port; - } - - host = this.options.target.host; - - if (this.secure) { - handler = function(err, socket, info) { - var options, cleartext; - - if (err) { - return fn(err); - } - - // save encrypted socket - self.encryptedSocket = socket; - - options = { - socket: socket, - servername: host, - rejectUnauthorized: self.rejectUnauthorized - }; - - cleartext = tls.connect(options, function (err) { - return fn(err, this); - }); - cleartext.on('error', fn); - - socket.resume(); - } - } - - SocksClient.createConnection(this.options, handler); -}; - -/** - * @see https://www.npmjs.com/package/agent-base - */ -SocksAgent.prototype.addRequest = function(req, host, port, localAddress) { - var opts; - if ('object' === typeof host) { - // >= v0.11.x API - opts = host; - if (opts.host && opts.path) { - // if both a `host` and `path` are specified then it's most likely the - // result of a `url.parse()` call... we need to remove the `path` portion so - // that `net.connect()` doesn't attempt to open that as a unix socket file. - delete opts.path; - } - } else { - // <= v0.10.x API - opts = { host: host, port: port }; - if (null !== localAddress) { - opts.localAddress = localAddress; - } - } - - var sync = true; - - this.createConnection(req, opts, function (err, socket) { - function emitErr () { - req.emit('error', err); - } - if (err) { - if (sync) { - // need to defer the "error" event, when sync, because by now the `req` - // instance hasn't event been passed back to the user yet... - process.nextTick(emitErr); - } else { - emitErr(); - } - } else { - req.onSocket(socket); - //have to resume this socket when node 12 - socket.resume(); - } - }); - - sync = false; -}; - -exports.Agent = SocksAgent; diff --git a/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js b/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js deleted file mode 100644 index 4a31f62c32c9e..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js +++ /dev/null @@ -1,306 +0,0 @@ -var net = require('net'); -var ip = require('ip'); -var SmartBuffer = require('smart-buffer'); - -(function () { - - var COMMAND = { - Connect: 0x01, - Bind: 0x02, - Associate: 0x03 - }; - - var SOCKS4_RESPONSE = { - Granted: 0x5A, - Failed: 0x5B, - Rejected: 0x5C, - RejectedIdent: 0x5D - }; - - var SOCKS5_AUTH = { - NoAuth: 0x00, - GSSApi: 0x01, - UserPass: 0x02 - }; - - var SOCKS5_RESPONSE = { - Granted: 0x00, - Failure: 0x01, - NotAllowed: 0x02, - NetworkUnreachable: 0x03, - HostUnreachable: 0x04, - ConnectionRefused: 0x05, - TTLExpired: 0x06, - CommandNotSupported: 0x07, - AddressNotSupported: 0x08 - }; - - - exports.createConnection = function (options, callback) { - var socket = new net.Socket(), finished = false, buff = new SmartBuffer(); - - // Defaults - options.timeout = options.timeout || 10000; - options.proxy.command = commandFromString(options.proxy.command); - options.proxy.userid = options.proxy.userid || ""; - - var auth = options.proxy.authentication || {}; - auth.username = auth.username || ""; - auth.password = auth.password || ""; - - options.proxy.authentication = auth; - - // Connect & negotiation timeout - function onTimeout() { - finish(new Error("Connection Timed Out"), socket, null, callback); - } - socket.setTimeout(options.timeout, onTimeout); - - // Socket events - socket.once('close', function () { - finish(new Error("Socket Closed"), socket, null, callback); - }); - - socket.once('error', function (err) { - }); - - socket.once('connect', function () { - if (options.proxy.type === 4) { - negotiateSocks4(options, socket, callback); - } else if (options.proxy.type === 5) { - negotiateSocks5(options, socket, callback); - } else { - throw new Error("Please specify a proxy type in options.proxy.type"); - } - }); - - socket.connect(options.proxy.port, options.proxy.ipaddress); - - - // 4/4a (connect, bind) - Supports domains & ipaddress - function negotiateSocks4(options, socket, callback) { - buff.writeUInt8(0x04); - buff.writeUInt8(options.proxy.command); - buff.writeUInt16BE(options.target.port); - - // ipv4 or domain? - if (net.isIPv4(options.target.host)) { - buff.writeBuffer(ip.toBuffer(options.target.host)); - buff.writeStringNT(options.proxy.userid); - } else { - buff.writeUInt8(0x00); - buff.writeUInt8(0x00); - buff.writeUInt8(0x00); - buff.writeUInt8(0x01); - buff.writeStringNT(options.proxy.userid); - buff.writeStringNT(options.target.host); - } - - socket.once('data', receivedResponse); - socket.write(buff.toBuffer()); - - function receivedResponse(data) { - socket.pause(); - if (data.length === 8 && data[1] === SOCKS4_RESPONSE.Granted) { - - if (options.proxy.command === COMMAND.Bind) { - buff.clear(); - buff.writeBuffer(data); - buff.skip(2); - - var info = { - port: buff.readUInt16BE(), - host: buff.readUInt32BE() - }; - - if (info.host === 0) { - info.host = options.proxy.ipaddress; - } else { - info.host = ip.fromLong(info.host); - } - - finish(null, socket, info, callback); - } else { - finish(null, socket, null, callback); - } - - } else { - finish(new Error("Rejected (" + data[1] + ")"), socket, null, callback); - } - } - } - - // Socks 5 (connect, bind, associate) - Supports domains and ipv4, ipv6. - function negotiateSocks5(options, socket, callback) { - buff.writeUInt8(0x05); - buff.writeUInt8(2); - buff.writeUInt8(SOCKS5_AUTH.NoAuth); - buff.writeUInt8(SOCKS5_AUTH.UserPass); - - socket.once('data', handshake); - socket.write(buff.toBuffer()); - - function handshake(data) { - if (data.length !== 2) { - finish(new Error("Negotiation Error"), socket, null, callback); - } else if (data[0] !== 0x05) { - finish(new Error("Negotiation Error (invalid version)"), socket, null, callback); - } else if (data[1] === 0xFF) { - finish(new Error("Negotiation Error (unacceptable authentication)"), socket, null, callback); - } else { - if (data[1] === SOCKS5_AUTH.NoAuth) { - sendRequest(); - } else if (data[1] === SOCKS5_AUTH.UserPass) { - sendAuthentication(options.proxy.authentication); - } else { - finish(new Error("Negotiation Error (unknown authentication type)"), socket, null, callback); - } - } - } - - function sendAuthentication(authinfo) { - buff.clear(); - buff.writeUInt8(0x01); - buff.writeUInt8(Buffer.byteLength(authinfo.username)); - buff.writeString(authinfo.username); - buff.writeUInt8(Buffer.byteLength(authinfo.password)); - buff.writeString(authinfo.password); - - socket.once('data', authenticationResponse); - socket.write(buff.toBuffer()); - - function authenticationResponse(data) { - if (data.length === 2 && data[1] === 0x00) { - sendRequest(); - } else { - finish(new Error("Negotiation Error (authentication failed)"), socket, null, callback); - } - } - } - - function sendRequest() { - buff.clear(); - buff.writeUInt8(0x05); - buff.writeUInt8(options.proxy.command); - buff.writeUInt8(0x00); - - // ipv4, ipv6, domain? - if (net.isIPv4(options.target.host)) { - buff.writeUInt8(0x01); - buff.writeBuffer(ip.toBuffer(options.target.host)); - } else if (net.isIPv6(options.target.host)) { - buff.writeUInt8(0x04); - buff.writeBuffer(ip.toBuffer(options.target.host)); - } else { - buff.writeUInt8(0x03); - buff.writeUInt8(options.target.host.length); - buff.writeString(options.target.host); - } - buff.writeUInt16BE(options.target.port); - - socket.once('data', receivedResponse); - socket.write(buff.toBuffer()); - } - - function receivedResponse(data) { - socket.pause(); - if (data.length < 4) { - finish(new Error("Negotiation Error"), socket, null, callback); - } else if (data[0] === 0x05 && data[1] === SOCKS5_RESPONSE.Granted) { - if (options.proxy.command === COMMAND.Connect) { - finish(null, socket, null, callback); - } else if (options.proxy.command === COMMAND.Bind || options.proxy.command === COMMAND.Associate) { - buff.clear(); - buff.writeBuffer(data); - buff.skip(3); - - var info = {}; - var addrtype = buff.readUInt8(); - - try { - - if (addrtype === 0x01) { - info.host = buff.readUInt32BE(); - if (info.host === 0) - info.host = options.proxy.ipaddress; - else - info.host = ip.fromLong(info.host); - } else if (addrtype === 0x03) { - var len = buff.readUInt8(); - info.host = buff.readString(len); - } else if (addrtype === 0x04) { - info.host = buff.readBuffer(16); - } else { - finish(new Error("Negotiation Error (invalid host address)"), socket, null, callback); - } - info.port = buff.readUInt16BE(); - - finish(null, socket, info, callback); - } catch (ex) { - finish(new Error("Negotiation Error (missing data)"), socket, null, callback); - } - } - } else { - finish(new Error("Negotiation Error (" + data[1] + ")"), socket, null, callback); - } - } - } - - function finish(err, socket, info, callback) { - socket.setTimeout(0, onTimeout); - if (!finished) { - finished = true; - - if (buff instanceof SmartBuffer) - buff.destroy(); - - if (err && socket instanceof net.Socket) { - socket.removeAllListeners('close'); - socket.removeAllListeners('timeout'); - socket.removeAllListeners('data'); - socket.destroy(); - socket = null; - } - - callback(err, socket, info); - } - } - - function commandFromString(str) { - var result = COMMAND.Connect; - - if (str === "connect") { - result = COMMAND.Connect; - } else if (str === 'associate') { - result = COMMAND.Associate; - } else if (str === 'bind') { - result = COMMAND.Bind; - } - - return result; - } - }; - - - exports.createUDPFrame = function (target, data, frame) { - var buff = new SmartBuffer(); - buff.writeUInt16BE(0); - buff.writeUInt8(frame || 0x00); - - if (net.isIPv4(target.host)) { - buff.writeUInt8(0x01); - buff.writeUInt32BE(ip.toLong(target.host)); - } else if (net.isIPv6(target.host)) { - buff.writeUInt8(0x04); - buff.writeBuffer(ip.toBuffer(target.host)); - } else { - buff.writeUInt8(0x03); - buff.writeUInt8(Buffer.byteLength(target.host)); - buff.writeString(target.host); - } - - buff.writeUInt16BE(target.port); - buff.writeBuffer(data); - return buff.toBuffer(); - }; -})(); diff --git a/node_modules/npm-registry-fetch/node_modules/socks/package.json b/node_modules/npm-registry-fetch/node_modules/socks/package.json deleted file mode 100644 index e4884cd472e7f..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/socks/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "_from": "socks@^1.1.10", - "_id": "socks@1.1.10", - "_inBundle": false, - "_integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", - "_location": "/npm-registry-fetch/socks", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "socks@^1.1.10", - "name": "socks", - "escapedName": "socks", - "rawSpec": "^1.1.10", - "saveSpec": null, - "fetchSpec": "^1.1.10" - }, - "_requiredBy": [ - "/npm-registry-fetch/socks-proxy-agent" - ], - "_resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz", - "_shasum": "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a", - "_spec": "socks@^1.1.10", - "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent", - "author": { - "name": "Josh Glazebrook" - }, - "bugs": { - "url": "https://github.com/JoshGlazebrook/socks/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Samuel Gordalina" - } - ], - "dependencies": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - }, - "deprecated": false, - "description": "A SOCKS proxy client supporting SOCKS 4, 4a, and 5. (also supports BIND/Associate)", - "engines": { - "node": ">= 0.10.0", - "npm": ">= 1.3.5" - }, - "homepage": "https://github.com/JoshGlazebrook/socks", - "keywords": [ - "socks", - "proxy", - "client", - "tor", - "bind", - "associate", - "socks 4", - "socks 4a", - "socks 5", - "agent" - ], - "license": "MIT", - "main": "index.js", - "name": "socks", - "repository": { - "type": "git", - "url": "git+https://github.com/JoshGlazebrook/socks.git" - }, - "version": "1.1.10" -} diff --git a/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md b/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md deleted file mode 100644 index 5c068948814ed..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md +++ /dev/null @@ -1,256 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - - -# [5.3.0](https://github.com/zkat/ssri/compare/v5.2.4...v5.3.0) (2018-03-13) - - -### Features - -* **checkData:** optionally throw when checkData fails ([bf26b84](https://github.com/zkat/ssri/commit/bf26b84)) - - - - -## [5.2.4](https://github.com/zkat/ssri/compare/v5.2.3...v5.2.4) (2018-02-16) - - - - -## [5.2.3](https://github.com/zkat/ssri/compare/v5.2.2...v5.2.3) (2018-02-16) - - -### Bug Fixes - -* **hashes:** filter hash priority list by available hashes ([2fa30b8](https://github.com/zkat/ssri/commit/2fa30b8)) -* **integrityStream:** dedupe algorithms to generate ([d56c654](https://github.com/zkat/ssri/commit/d56c654)) - - - - -## [5.2.2](https://github.com/zkat/ssri/compare/v5.2.1...v5.2.2) (2018-02-14) - - -### Bug Fixes - -* **security:** tweak strict SRI regex ([#10](https://github.com/zkat/ssri/issues/10)) ([d0ebcdc](https://github.com/zkat/ssri/commit/d0ebcdc)) - - - - -## [5.2.1](https://github.com/zkat/ssri/compare/v5.2.0...v5.2.1) (2018-02-06) - - - - -# [5.2.0](https://github.com/zkat/ssri/compare/v5.1.0...v5.2.0) (2018-02-06) - - -### Features - -* **match:** add integrity.match() ([3c49cc4](https://github.com/zkat/ssri/commit/3c49cc4)) - - - - -# [5.1.0](https://github.com/zkat/ssri/compare/v5.0.0...v5.1.0) (2018-01-18) - - -### Bug Fixes - -* **checkStream:** integrityStream now takes opts.integrity algos into account ([d262910](https://github.com/zkat/ssri/commit/d262910)) - - -### Features - -* **sha3:** do some guesswork about upcoming sha3 ([7fdd9df](https://github.com/zkat/ssri/commit/7fdd9df)) - - - - -# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23) - - -### Features - -* **license:** relicense to ISC (#9) ([c82983a](https://github.com/zkat/ssri/commit/c82983a)) - - -### BREAKING CHANGES - -* **license:** the license has been changed from CC0-1.0 to ISC. - - - - -## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07) - - -### Bug Fixes - -* **checkStream:** make sure to pass all opts through ([0b1bcbe](https://github.com/zkat/ssri/commit/0b1bcbe)) - - - - -## [4.1.5](https://github.com/zkat/ssri/compare/v4.1.4...v4.1.5) (2017-06-05) - - -### Bug Fixes - -* **integrityStream:** stop crashing if opts.algorithms and opts.integrity have an algo mismatch ([fb1293e](https://github.com/zkat/ssri/commit/fb1293e)) - - - - -## [4.1.4](https://github.com/zkat/ssri/compare/v4.1.3...v4.1.4) (2017-05-31) - - -### Bug Fixes - -* **node:** older versions of node[@4](https://github.com/4) do not support base64buffer string parsing ([513df4e](https://github.com/zkat/ssri/commit/513df4e)) - - - - -## [4.1.3](https://github.com/zkat/ssri/compare/v4.1.2...v4.1.3) (2017-05-24) - - -### Bug Fixes - -* **check:** handle various bad hash corner cases better ([c2c262b](https://github.com/zkat/ssri/commit/c2c262b)) - - - - -## [4.1.2](https://github.com/zkat/ssri/compare/v4.1.1...v4.1.2) (2017-04-18) - - -### Bug Fixes - -* **stream:** _flush can be called multiple times. use on("end") ([b1c4805](https://github.com/zkat/ssri/commit/b1c4805)) - - - - -## [4.1.1](https://github.com/zkat/ssri/compare/v4.1.0...v4.1.1) (2017-04-12) - - -### Bug Fixes - -* **pickAlgorithm:** error if pickAlgorithm() is used in an empty Integrity ([fab470e](https://github.com/zkat/ssri/commit/fab470e)) - - - - -# [4.1.0](https://github.com/zkat/ssri/compare/v4.0.0...v4.1.0) (2017-04-07) - - -### Features - -* adding ssri.create for a crypto style interface (#2) ([96f52ad](https://github.com/zkat/ssri/commit/96f52ad)) - - - - -# [4.0.0](https://github.com/zkat/ssri/compare/v3.0.2...v4.0.0) (2017-04-03) - - -### Bug Fixes - -* **integrity:** should have changed the error code before. oops ([8381afa](https://github.com/zkat/ssri/commit/8381afa)) - - -### BREAKING CHANGES - -* **integrity:** EBADCHECKSUM -> EINTEGRITY for verification errors - - - - -## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03) - - - - -## [3.0.1](https://github.com/zkat/ssri/compare/v3.0.0...v3.0.1) (2017-04-03) - - -### Bug Fixes - -* **package.json:** really should have these in the keywords because search ([a6ac6d0](https://github.com/zkat/ssri/commit/a6ac6d0)) - - - - -# [3.0.0](https://github.com/zkat/ssri/compare/v2.0.0...v3.0.0) (2017-04-03) - - -### Bug Fixes - -* **hashes:** IntegrityMetadata -> Hash ([d04aa1f](https://github.com/zkat/ssri/commit/d04aa1f)) - - -### Features - -* **check:** return IntegrityMetadata on check success ([2301e74](https://github.com/zkat/ssri/commit/2301e74)) -* **fromHex:** ssri.fromHex to make it easier to generate them from hex valus ([049b89e](https://github.com/zkat/ssri/commit/049b89e)) -* **hex:** utility function for getting hex version of digest ([a9f021c](https://github.com/zkat/ssri/commit/a9f021c)) -* **hexDigest:** added hexDigest method to Integrity objects too ([85208ba](https://github.com/zkat/ssri/commit/85208ba)) -* **integrity:** add .isIntegrity and .isIntegrityMetadata ([1b29e6f](https://github.com/zkat/ssri/commit/1b29e6f)) -* **integrityStream:** new stream that can both generate and check streamed data ([fd23e1b](https://github.com/zkat/ssri/commit/fd23e1b)) -* **parse:** allow parsing straight into a single IntegrityMetadata object ([c8ddf48](https://github.com/zkat/ssri/commit/c8ddf48)) -* **pickAlgorithm:** Intergrity#pickAlgorithm() added ([b97a796](https://github.com/zkat/ssri/commit/b97a796)) -* **size:** calculate and update stream sizes ([02ed1ad](https://github.com/zkat/ssri/commit/02ed1ad)) - - -### BREAKING CHANGES - -* **hashes:** `.isIntegrityMetadata` is now `.isHash`. Also, any references to `IntegrityMetadata` now refer to `Hash`. -* **integrityStream:** createCheckerStream has been removed and replaced with a general-purpose integrityStream. - -To convert existing createCheckerStream code, move the `sri` argument into `opts.integrity` in integrityStream. All other options should be the same. -* **check:** `checkData`, `checkStream`, and `createCheckerStream` now yield a whole IntegrityMetadata instance representing the first successful hash match. - - - - -# [2.0.0](https://github.com/zkat/ssri/compare/v1.0.0...v2.0.0) (2017-03-24) - - -### Bug Fixes - -* **strict-mode:** make regexes more rigid ([122a32c](https://github.com/zkat/ssri/commit/122a32c)) - - -### Features - -* **api:** added serialize alias for unparse ([999b421](https://github.com/zkat/ssri/commit/999b421)) -* **concat:** add Integrity#concat() ([cae12c7](https://github.com/zkat/ssri/commit/cae12c7)) -* **pickAlgo:** pick the strongest algorithm provided, by default ([58c18f7](https://github.com/zkat/ssri/commit/58c18f7)) -* **strict-mode:** strict SRI support ([3f0b64c](https://github.com/zkat/ssri/commit/3f0b64c)) -* **stringify:** replaced unparse/serialize with stringify ([4acad30](https://github.com/zkat/ssri/commit/4acad30)) -* **verification:** add opts.pickAlgorithm ([f72e658](https://github.com/zkat/ssri/commit/f72e658)) - - -### BREAKING CHANGES - -* **pickAlgo:** ssri will prioritize specific hashes now -* **stringify:** serialize and unparse have been removed. Use ssri.stringify instead. -* **strict-mode:** functions that accepted an optional `sep` argument now expect `opts.sep`. - - - - -# 1.0.0 (2017-03-23) - - -### Features - -* **api:** implemented initial api ([4fbb16b](https://github.com/zkat/ssri/commit/4fbb16b)) - - -### BREAKING CHANGES - -* **api:** Initial API established. diff --git a/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md b/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md deleted file mode 100644 index 8d28acf866d93..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md +++ /dev/null @@ -1,16 +0,0 @@ -ISC License - -Copyright (c) npm, Inc. - -Permission to use, copy, modify, and/or distribute this software for -any purpose with or without fee is hereby granted, provided that the -above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE -USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/npm-registry-fetch/node_modules/ssri/README.md b/node_modules/npm-registry-fetch/node_modules/ssri/README.md deleted file mode 100644 index a6c07e7409b81..0000000000000 --- a/node_modules/npm-registry-fetch/node_modules/ssri/README.md +++ /dev/null @@ -1,488 +0,0 @@ -# ssri [![npm version](https://img.shields.io/npm/v/ssri.svg)](https://npm.im/ssri) [![license](https://img.shields.io/npm/l/ssri.svg)](https://npm.im/ssri) [![Travis](https://img.shields.io/travis/zkat/ssri.svg)](https://travis-ci.org/zkat/ssri) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/ssri?svg=true)](https://ci.appveyor.com/project/zkat/ssri) [![Coverage Status](https://coveralls.io/repos/github/zkat/ssri/badge.svg?branch=latest)](https://coveralls.io/github/zkat/ssri?branch=latest) - -[`ssri`](https://github.com/zkat/ssri), short for Standard Subresource -Integrity, is a Node.js utility for parsing, manipulating, serializing, -generating, and verifying [Subresource -Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes. - -## Install - -`$ npm install --save ssri` - -## Table of Contents - -* [Example](#example) -* [Features](#features) -* [Contributing](#contributing) -* [API](#api) - * Parsing & Serializing - * [`parse`](#parse) - * [`stringify`](#stringify) - * [`Integrity#concat`](#integrity-concat) - * [`Integrity#toString`](#integrity-to-string) - * [`Integrity#toJSON`](#integrity-to-json) - * [`Integrity#match`](#integrity-match) - * [`Integrity#pickAlgorithm`](#integrity-pick-algorithm) - * [`Integrity#hexDigest`](#integrity-hex-digest) - * Integrity Generation - * [`fromHex`](#from-hex) - * [`fromData`](#from-data) - * [`fromStream`](#from-stream) - * [`create`](#create) - * Integrity Verification - * [`checkData`](#check-data) - * [`checkStream`](#check-stream) - * [`integrityStream`](#integrity-stream) - -### Example - -```javascript -const ssri = require('ssri') - -const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo' - -// Parsing and serializing -const parsed = ssri.parse(integrity) -ssri.stringify(parsed) // === integrity (works on non-Integrity objects) -parsed.toString() // === integrity - -// Async stream functions -ssri.checkStream(fs.createReadStream('./my-file'), integrity).then(...) -ssri.fromStream(fs.createReadStream('./my-file')).then(sri => { - sri.toString() === integrity -}) -fs.createReadStream('./my-file').pipe(ssri.createCheckerStream(sri)) - -// Sync data functions -ssri.fromData(fs.readFileSync('./my-file')) // === parsed -ssri.checkData(fs.readFileSync('./my-file'), integrity) // => 'sha512' -``` - -### Features - -* Parses and stringifies SRI strings. -* Generates SRI strings from raw data or Streams. -* Strict standard compliance. -* `?foo` metadata option support. -* Multiple entries for the same algorithm. -* Object-based integrity hash manipulation. -* Small footprint: no dependencies, concise implementation. -* Full test coverage. -* Customizable algorithm picker. - -### Contributing - -The ssri team enthusiastically welcomes contributions and project participation! -There's a bunch of things you can do if you want to contribute! The [Contributor -Guide](CONTRIBUTING.md) has all the information you need for everything from -reporting bugs to contributing entire new features. Please don't hesitate to -jump in if you'd like to, or even ask us questions if something isn't clear. - -### API - -#### `> ssri.parse(sri, [opts]) -> Integrity` - -Parses `sri` into an `Integrity` data structure. `sri` can be an integrity -string, an `Hash`-like with `digest` and `algorithm` fields and an optional -`options` field, or an `Integrity`-like object. The resulting object will be an -`Integrity` instance that has this shape: - -```javascript -{ - 'sha1': [{algorithm: 'sha1', digest: 'deadbeef', options: []}], - 'sha512': [ - {algorithm: 'sha512', digest: 'c0ffee', options: []}, - {algorithm: 'sha512', digest: 'bad1dea', options: ['foo']} - ], -} -``` - -If `opts.single` is truthy, a single `Hash` object will be returned. That is, a -single object that looks like `{algorithm, digest, options}`, as opposed to a -larger object with multiple of these. - -If `opts.strict` is truthy, the resulting object will be filtered such that -it strictly follows the Subresource Integrity spec, throwing away any entries -with any invalid components. This also means a restricted set of algorithms -will be used -- the spec limits them to `sha256`, `sha384`, and `sha512`. - -Strict mode is recommended if the integrity strings are intended for use in -browsers, or in other situations where strict adherence to the spec is needed. - -##### Example - -```javascript -ssri.parse('sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo') // -> Integrity object -``` - -#### `> ssri.stringify(sri, [opts]) -> String` - -This function is identical to [`Integrity#toString()`](#integrity-to-string), -except it can be used on _any_ object that [`parse`](#parse) can handle -- that -is, a string, an `Hash`-like, or an `Integrity`-like. - -The `opts.sep` option defines the string to use when joining multiple entries -together. To be spec-compliant, this _must_ be whitespace. The default is a -single space (`' '`). - -If `opts.strict` is true, the integrity string will be created using strict -parsing rules. See [`ssri.parse`](#parse). - -##### Example - -```javascript -// Useful for cleaning up input SRI strings: -ssri.stringify('\n\rsha512-foo\n\t\tsha384-bar') -// -> 'sha512-foo sha384-bar' - -// Hash-like: only a single entry. -ssri.stringify({ - algorithm: 'sha512', - digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==', - options: ['foo'] -}) -// -> -// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo' - -// Integrity-like: full multi-entry syntax. Similar to output of `ssri.parse` -ssri.stringify({ - 'sha512': [ - { - algorithm: 'sha512', - digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==', - options: ['foo'] - } - ] -}) -// -> -// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo' -``` - -#### `> Integrity#concat(otherIntegrity, [opts]) -> Integrity` - -Concatenates an `Integrity` object with another IntegrityLike, or an integrity -string. - -This is functionally equivalent to concatenating the string format of both -integrity arguments, and calling [`ssri.parse`](#ssri-parse) on the new string. - -If `opts.strict` is true, the new `Integrity` will be created using strict -parsing rules. See [`ssri.parse`](#parse). - -##### Example - -```javascript -// This will combine the integrity checks for two different versions of -// your index.js file so you can use a single integrity string and serve -// either of these to clients, from a single ` + + + + diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/__root__/index.js.html b/node_modules/pacote/node_modules/unique-filename/coverage/__root__/index.js.html new file mode 100644 index 0000000000000..02e5768d3fb64 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/coverage/__root__/index.js.html @@ -0,0 +1,69 @@ + + + + Code coverage report for index.js + + + + + + +
+

Code coverage report for index.js

+

+ Statements: 100% (4 / 4)      + Branches: 100% (2 / 2)      + Functions: 100% (1 / 1)      + Lines: 100% (4 / 4)      + Ignored: none      +

+
All files » __root__/ » index.js
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9  +1 +  +1 +  +1 +6 +  + 
'use strict'
+var path = require('path')
+ 
+var uniqueSlug = require('unique-slug')
+ 
+module.exports = function (filepath, prefix, uniq) {
+  return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq))
+}
+ 
+ +
+ + + + + + diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/base.css b/node_modules/pacote/node_modules/unique-filename/coverage/base.css new file mode 100644 index 0000000000000..a6a2f3284d022 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/coverage/base.css @@ -0,0 +1,182 @@ +body, html { + margin:0; padding: 0; +} +body { + font-family: Helvetica Neue, Helvetica,Arial; + font-size: 10pt; +} +div.header, div.footer { + background: #eee; + padding: 1em; +} +div.header { + z-index: 100; + position: fixed; + top: 0; + border-bottom: 1px solid #666; + width: 100%; +} +div.footer { + border-top: 1px solid #666; +} +div.body { + margin-top: 10em; +} +div.meta { + font-size: 90%; + text-align: center; +} +h1, h2, h3 { + font-weight: normal; +} +h1 { + font-size: 12pt; +} +h2 { + font-size: 10pt; +} +pre { + font-family: Consolas, Menlo, Monaco, monospace; + margin: 0; + padding: 0; + line-height: 1.3; + font-size: 14px; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} + +div.path { font-size: 110%; } +div.path a:link, div.path a:visited { color: #000; } +table.coverage { border-collapse: collapse; margin:0; padding: 0 } + +table.coverage td { + margin: 0; + padding: 0; + color: #111; + vertical-align: top; +} +table.coverage td.line-count { + width: 50px; + text-align: right; + padding-right: 5px; +} +table.coverage td.line-coverage { + color: #777 !important; + text-align: right; + border-left: 1px solid #666; + border-right: 1px solid #666; +} + +table.coverage td.text { +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 40px; +} +table.coverage td span.cline-neutral { + background: #eee; +} +table.coverage td span.cline-yes { + background: #b5d592; + color: #999; +} +table.coverage td span.cline-no { + background: #fc8c84; +} + +.cstat-yes { color: #111; } +.cstat-no { background: #fc8c84; color: #111; } +.fstat-no { background: #ffc520; color: #111 !important; } +.cbranch-no { background: yellow !important; color: #111; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +.missing-if-branch { + display: inline-block; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: black; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} + +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} + +.entity, .metric { font-weight: bold; } +.metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; } +.metric small { font-size: 80%; font-weight: normal; color: #666; } + +div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; } +div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; } +div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; } +div.coverage-summary th.file { border-right: none !important; } +div.coverage-summary th.pic { border-left: none !important; text-align: right; } +div.coverage-summary th.pct { border-right: none !important; } +div.coverage-summary th.abs { border-left: none !important; text-align: right; } +div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; } +div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; } +div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; } +div.coverage-summary td.pic { min-width: 120px !important; } +div.coverage-summary a:link { text-decoration: none; color: #000; } +div.coverage-summary a:visited { text-decoration: none; color: #777; } +div.coverage-summary a:hover { text-decoration: underline; } +div.coverage-summary tfoot td { border-top: 1px solid #666; } + +div.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +div.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +div.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} + +.high { background: #b5d592 !important; } +.medium { background: #ffe87c !important; } +.low { background: #fc8c84 !important; } + +span.cover-fill, span.cover-empty { + display:inline-block; + border:1px solid #444; + background: white; + height: 12px; +} +span.cover-fill { + background: #ccc; + border-right: 1px solid #444; +} +span.cover-empty { + background: white; + border-left: none; +} +span.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/index.html b/node_modules/pacote/node_modules/unique-filename/coverage/index.html new file mode 100644 index 0000000000000..b10d186cc3978 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/coverage/index.html @@ -0,0 +1,73 @@ + + + + Code coverage report for All files + + + + + + +
+

Code coverage report for All files

+

+ Statements: 100% (4 / 4)      + Branches: 100% (2 / 2)      + Functions: 100% (1 / 1)      + Lines: 100% (4 / 4)      + Ignored: none      +

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
__root__/100%(4 / 4)100%(2 / 2)100%(1 / 1)100%(4 / 4)
+
+
+ + + + + + diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/prettify.css b/node_modules/pacote/node_modules/unique-filename/coverage/prettify.css new file mode 100644 index 0000000000000..b317a7cda31a4 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/prettify.js b/node_modules/pacote/node_modules/unique-filename/coverage/prettify.js new file mode 100644 index 0000000000000..ef51e03866898 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/coverage/prettify.js @@ -0,0 +1 @@ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/node_modules/pacote/node_modules/unique-filename/coverage/sort-arrow-sprite.png b/node_modules/pacote/node_modules/unique-filename/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i =0 ; i < cols.length; i += 1) { + if (cols[i].sortable) { + el = getNthColumn(i).querySelector('.sorter'); + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(cols); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/node_modules/pacote/node_modules/unique-filename/index.js b/node_modules/pacote/node_modules/unique-filename/index.js new file mode 100644 index 0000000000000..02bf1e273143c --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/index.js @@ -0,0 +1,8 @@ +'use strict' +var path = require('path') + +var uniqueSlug = require('unique-slug') + +module.exports = function (filepath, prefix, uniq) { + return path.join(filepath, (prefix ? prefix + '-' : '') + uniqueSlug(uniq)) +} diff --git a/node_modules/pacote/node_modules/unique-filename/package.json b/node_modules/pacote/node_modules/unique-filename/package.json new file mode 100644 index 0000000000000..5778e9c213575 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/package.json @@ -0,0 +1,56 @@ +{ + "_from": "unique-filename@^1.1.1", + "_id": "unique-filename@1.1.1", + "_inBundle": false, + "_integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "_location": "/pacote/unique-filename", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "unique-filename@^1.1.1", + "name": "unique-filename", + "escapedName": "unique-filename", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/pacote" + ], + "_resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "_shasum": "1d69769369ada0583103a1e6ae87681b56573230", + "_spec": "unique-filename@^1.1.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/pacote", + "author": { + "name": "Rebecca Turner", + "email": "me@re-becca.org", + "url": "http://re-becca.org/" + }, + "bugs": { + "url": "https://github.com/iarna/unique-filename/issues" + }, + "bundleDependencies": false, + "dependencies": { + "unique-slug": "^2.0.0" + }, + "deprecated": false, + "description": "Generate a unique filename for use in temporary directories or caches.", + "devDependencies": { + "standard": "^5.4.1", + "tap": "^2.3.1" + }, + "homepage": "https://github.com/iarna/unique-filename", + "keywords": [], + "license": "ISC", + "main": "index.js", + "name": "unique-filename", + "repository": { + "type": "git", + "url": "git+https://github.com/iarna/unique-filename.git" + }, + "scripts": { + "test": "standard && tap test" + }, + "version": "1.1.1" +} diff --git a/node_modules/pacote/node_modules/unique-filename/test/index.js b/node_modules/pacote/node_modules/unique-filename/test/index.js new file mode 100644 index 0000000000000..105b4e52e8b40 --- /dev/null +++ b/node_modules/pacote/node_modules/unique-filename/test/index.js @@ -0,0 +1,23 @@ +'sue strict' +var t = require('tap') +var uniqueFilename = require('../index.js') + +t.plan(6) + +var randomTmpfile = uniqueFilename('tmp') +t.like(randomTmpfile, /^tmp.[a-f0-9]{8}$/, 'random tmp file') + +var randomAgain = uniqueFilename('tmp') +t.notEqual(randomAgain, randomTmpfile, 'random tmp files are not the same') + +var randomPrefixedTmpfile = uniqueFilename('tmp', 'my-test') +t.like(randomPrefixedTmpfile, /^tmp.my-test-[a-f0-9]{8}$/, 'random prefixed tmp file') + +var randomPrefixedAgain = uniqueFilename('tmp', 'my-test') +t.notEqual(randomPrefixedAgain, randomPrefixedTmpfile, 'random prefixed tmp files are not the same') + +var uniqueTmpfile = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') +t.like(uniqueTmpfile, /^tmp.testing-7ddd44c0$/, 'unique filename') + +var uniqueAgain = uniqueFilename('tmp', 'testing', '/my/thing/to/uniq/on') +t.is(uniqueTmpfile, uniqueAgain, 'same unique string component produces same filename') diff --git a/node_modules/pacote/node_modules/yallist/LICENSE b/node_modules/pacote/node_modules/yallist/LICENSE new file mode 100644 index 0000000000000..19129e315fe59 --- /dev/null +++ b/node_modules/pacote/node_modules/yallist/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/pacote/node_modules/yallist/README.md b/node_modules/pacote/node_modules/yallist/README.md new file mode 100644 index 0000000000000..f586101869668 --- /dev/null +++ b/node_modules/pacote/node_modules/yallist/README.md @@ -0,0 +1,204 @@ +# yallist + +Yet Another Linked List + +There are many doubly-linked list implementations like it, but this +one is mine. + +For when an array would be too big, and a Map can't be iterated in +reverse order. + + +[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) + +## basic usage + +```javascript +var yallist = require('yallist') +var myList = yallist.create([1, 2, 3]) +myList.push('foo') +myList.unshift('bar') +// of course pop() and shift() are there, too +console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] +myList.forEach(function (k) { + // walk the list head to tail +}) +myList.forEachReverse(function (k, index, list) { + // walk the list tail to head +}) +var myDoubledList = myList.map(function (k) { + return k + k +}) +// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] +// mapReverse is also a thing +var myDoubledListReverse = myList.mapReverse(function (k) { + return k + k +}) // ['foofoo', 6, 4, 2, 'barbar'] + +var reduced = myList.reduce(function (set, entry) { + set += entry + return set +}, 'start') +console.log(reduced) // 'startfoo123bar' +``` + +## api + +The whole API is considered "public". + +Functions with the same name as an Array method work more or less the +same way. + +There's reverse versions of most things because that's the point. + +### Yallist + +Default export, the class that holds and manages a list. + +Call it with either a forEach-able (like an array) or a set of +arguments, to initialize the list. + +The Array-ish methods all act like you'd expect. No magic length, +though, so if you change that it won't automatically prune or add +empty spots. + +### Yallist.create(..) + +Alias for Yallist function. Some people like factories. + +#### yallist.head + +The first node in the list + +#### yallist.tail + +The last node in the list + +#### yallist.length + +The number of nodes in the list. (Change this at your peril. It is +not magic like Array length.) + +#### yallist.toArray() + +Convert the list to an array. + +#### yallist.forEach(fn, [thisp]) + +Call a function on each item in the list. + +#### yallist.forEachReverse(fn, [thisp]) + +Call a function on each item in the list, in reverse order. + +#### yallist.get(n) + +Get the data at position `n` in the list. If you use this a lot, +probably better off just using an Array. + +#### yallist.getReverse(n) + +Get the data at position `n`, counting from the tail. + +#### yallist.map(fn, thisp) + +Create a new Yallist with the result of calling the function on each +item. + +#### yallist.mapReverse(fn, thisp) + +Same as `map`, but in reverse. + +#### yallist.pop() + +Get the data from the list tail, and remove the tail from the list. + +#### yallist.push(item, ...) + +Insert one or more items to the tail of the list. + +#### yallist.reduce(fn, initialValue) + +Like Array.reduce. + +#### yallist.reduceReverse + +Like Array.reduce, but in reverse. + +#### yallist.reverse + +Reverse the list in place. + +#### yallist.shift() + +Get the data from the list head, and remove the head from the list. + +#### yallist.slice([from], [to]) + +Just like Array.slice, but returns a new Yallist. + +#### yallist.sliceReverse([from], [to]) + +Just like yallist.slice, but the result is returned in reverse. + +#### yallist.toArray() + +Create an array representation of the list. + +#### yallist.toArrayReverse() + +Create a reversed array representation of the list. + +#### yallist.unshift(item, ...) + +Insert one or more items to the head of the list. + +#### yallist.unshiftNode(node) + +Move a Node object to the front of the list. (That is, pull it out of +wherever it lives, and make it the new head.) + +If the node belongs to a different list, then that list will remove it +first. + +#### yallist.pushNode(node) + +Move a Node object to the end of the list. (That is, pull it out of +wherever it lives, and make it the new tail.) + +If the node belongs to a list already, then that list will remove it +first. + +#### yallist.removeNode(node) + +Remove a node from the list, preserving referential integrity of head +and tail and other nodes. + +Will throw an error if you try to have a list remove a node that +doesn't belong to it. + +### Yallist.Node + +The class that holds the data and is actually the list. + +Call with `var n = new Node(value, previousNode, nextNode)` + +Note that if you do direct operations on Nodes themselves, it's very +easy to get into weird states where the list is broken. Be careful :) + +#### node.next + +The next node in the list. + +#### node.prev + +The previous node in the list. + +#### node.value + +The data the node contains. + +#### node.list + +The list to which this node belongs. (Null if it does not belong to +any list.) diff --git a/node_modules/pacote/node_modules/yallist/iterator.js b/node_modules/pacote/node_modules/yallist/iterator.js new file mode 100644 index 0000000000000..d41c97a19f984 --- /dev/null +++ b/node_modules/pacote/node_modules/yallist/iterator.js @@ -0,0 +1,8 @@ +'use strict' +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } + } +} diff --git a/node_modules/pacote/node_modules/yallist/package.json b/node_modules/pacote/node_modules/yallist/package.json new file mode 100644 index 0000000000000..9dd5bf96b017c --- /dev/null +++ b/node_modules/pacote/node_modules/yallist/package.json @@ -0,0 +1,62 @@ +{ + "_from": "yallist@^3.0.0", + "_id": "yallist@3.0.3", + "_inBundle": false, + "_integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "_location": "/pacote/yallist", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "yallist@^3.0.0", + "name": "yallist", + "escapedName": "yallist", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/pacote/minipass" + ], + "_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "_shasum": "b4b049e314be545e3ce802236d6cd22cd91c3de9", + "_spec": "yallist@^3.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/pacote/node_modules/minipass", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bugs": { + "url": "https://github.com/isaacs/yallist/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Yet Another Linked List", + "devDependencies": { + "tap": "^12.1.0" + }, + "directories": { + "test": "test" + }, + "files": [ + "yallist.js", + "iterator.js" + ], + "homepage": "https://github.com/isaacs/yallist#readme", + "license": "ISC", + "main": "yallist.js", + "name": "yallist", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/yallist.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100" + }, + "version": "3.0.3" +} diff --git a/node_modules/pacote/node_modules/yallist/yallist.js b/node_modules/pacote/node_modules/yallist/yallist.js new file mode 100644 index 0000000000000..b0ab36cf31b7a --- /dev/null +++ b/node_modules/pacote/node_modules/yallist/yallist.js @@ -0,0 +1,376 @@ +'use strict' +module.exports = Yallist + +Yallist.Node = Node +Yallist.create = Yallist + +function Yallist (list) { + var self = this + if (!(self instanceof Yallist)) { + self = new Yallist() + } + + self.tail = null + self.head = null + self.length = 0 + + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item) + }) + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]) + } + } + + return self +} + +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next + var prev = node.prev + + if (next) { + next.prev = prev + } + + if (prev) { + prev.next = next + } + + if (node === this.head) { + this.head = next + } + if (node === this.tail) { + this.tail = prev + } + + node.list.length-- + node.next = null + node.prev = null + node.list = null +} + +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var head = this.head + node.list = this + node.next = head + if (head) { + head.prev = node + } + + this.head = node + if (!this.tail) { + this.tail = node + } + this.length++ +} + +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var tail = this.tail + node.list = this + node.prev = tail + if (tail) { + tail.next = node + } + + this.tail = node + if (!this.head) { + this.head = node + } + this.length++ +} + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value + this.tail = this.tail.prev + if (this.tail) { + this.tail.next = null + } else { + this.head = null + } + this.length-- + return res +} + +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value + this.head = this.head.next + if (this.head) { + this.head.prev = null + } else { + this.tail = null + } + this.length-- + return res +} + +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this) + walker = walker.next + } +} + +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this) + walker = walker.prev + } +} + +Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.next + } + return res +} + +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.prev + } + return res +} + +Yallist.prototype.reduce = function (fn, initial) { + var acc + var walker = this.head + if (arguments.length > 1) { + acc = initial + } else if (this.head) { + walker = this.head.next + acc = this.head.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i) + walker = walker.next + } + + return acc +} + +Yallist.prototype.reduceReverse = function (fn, initial) { + var acc + var walker = this.tail + if (arguments.length > 1) { + acc = initial + } else if (this.tail) { + walker = this.tail.prev + acc = this.tail.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i) + walker = walker.prev + } + + return acc +} + +Yallist.prototype.toArray = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value + walker = walker.next + } + return arr +} + +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value + walker = walker.prev + } + return arr +} + +Yallist.prototype.slice = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.reverse = function () { + var head = this.head + var tail = this.tail + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev + walker.prev = walker.next + walker.next = p + } + this.head = tail + this.tail = head + return this +} + +function push (self, item) { + self.tail = new Node(item, self.tail, null, self) + if (!self.head) { + self.head = self.tail + } + self.length++ +} + +function unshift (self, item) { + self.head = new Node(item, null, self.head, self) + if (!self.tail) { + self.tail = self.head + } + self.length++ +} + +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list + this.value = value + + if (prev) { + prev.next = this + this.prev = prev + } else { + this.prev = null + } + + if (next) { + next.prev = this + this.next = next + } else { + this.next = null + } +} + +try { + // add if support for Symbol.iterator is present + require('./iterator.js')(Yallist) +} catch (er) {} diff --git a/node_modules/pacote/package.json b/node_modules/pacote/package.json index 6f7e4cc4583e9..1df323dd3621d 100644 --- a/node_modules/pacote/package.json +++ b/node_modules/pacote/package.json @@ -1,10 +1,15 @@ { "_from": "pacote@latest", - "_id": "pacote@9.1.0", + "_id": "pacote@9.2.3", "_inBundle": false, - "_integrity": "sha512-AFXaSWhOtQf3jHqEvg+ZYH/dfT8TKq6TKspJ4qEFwVVuh5aGvMIk6SNF8vqfzz+cBceDIs9drOcpBbrPai7i+g==", + "_integrity": "sha512-Y3+yY3nBRAxMlZWvr62XLJxOwCmG9UmkGZkFurWHoCjqF0cZL72cTOCRJTvWw8T4OhJS2RTg13x4oYYriauvEw==", "_location": "/pacote", - "_phantomChildren": {}, + "_phantomChildren": { + "figgy-pudding": "3.5.1", + "npm-package-arg": "6.1.0", + "safe-buffer": "5.1.2", + "unique-slug": "2.0.0" + }, "_requested": { "type": "tag", "registry": true, @@ -17,10 +22,11 @@ }, "_requiredBy": [ "#USER", - "/" + "/", + "/libcipm" ], - "_resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.0.tgz", - "_shasum": "59810859bbd72984dcb267269259375d32f391e5", + "_resolved": "https://registry.npmjs.org/pacote/-/pacote-9.2.3.tgz", + "_shasum": "48cfe87beb9177acd6594355a584a538835424b3", "_spec": "pacote@latest", "_where": "/Users/zkat/Documents/code/work/npm", "author": { @@ -42,46 +48,46 @@ } ], "dependencies": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "figgy-pudding": "^3.2.1", - "get-stream": "^3.0.0", - "glob": "^7.1.2", + "bluebird": "^3.5.2", + "cacache": "^11.2.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", "lru-cache": "^4.1.3", "make-fetch-happen": "^4.0.1", "minimatch": "^3.0.4", - "minipass": "^2.3.3", + "minipass": "^2.3.5", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "normalize-package-data": "^2.4.0", "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "npm-registry-fetch": "^3.0.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", "osenv": "^0.1.5", "promise-inflight": "^1.0.1", "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", + "protoduck": "^5.0.1", "rimraf": "^2.6.2", "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.6", + "unique-filename": "^1.1.1", + "which": "^1.3.1" }, "deprecated": false, "description": "JavaScript package downloader", "devDependencies": { - "nock": "^9.2.6", + "nock": "^10.0.1", "npmlog": "^4.1.2", - "nyc": "^11.8.0", + "nyc": "^13.1.0", "require-inject": "^1.4.3", - "standard": "^11.0.1", + "standard": "^12.0.1", "standard-version": "^4.4.0", - "tacks": "^1.2.6", + "tacks": "^1.2.7", "tap": "^12.0.1", - "tar-stream": "^1.6.1", + "tar-stream": "^1.6.2", "weallbehave": "^1.2.0", "weallcontribute": "^1.0.7" }, @@ -112,5 +118,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "9.1.0" + "version": "9.2.3" } diff --git a/node_modules/pacote/packument.js b/node_modules/pacote/packument.js index dbeaa8335f717..0606b266f972a 100644 --- a/node_modules/pacote/packument.js +++ b/node_modules/pacote/packument.js @@ -23,7 +23,7 @@ function packument (spec, opts) { return fetchPackument(spec, opts) }).then(p => { const elapsedTime = Date.now() - startTime - opts.log.silly('pacote', `${spec.type} packument for ${spec.name}@${spec.saveSpec || spec.fetchSpec} fetched in ${elapsedTime}ms`) + opts.log.silly('pacote', `${spec.registry ? 'registry' : spec.type} packument for ${spec.name}@${spec.saveSpec || spec.fetchSpec} fetched in ${elapsedTime}ms`) return p }) } diff --git a/node_modules/pacote/prefetch.js b/node_modules/pacote/prefetch.js index d17725993f9de..9e6b5af12d727 100644 --- a/node_modules/pacote/prefetch.js +++ b/node_modules/pacote/prefetch.js @@ -15,7 +15,7 @@ function prefetch (spec, opts) { const startTime = Date.now() if (!opts.cache) { opts.log.info('prefetch', 'skipping prefetch: no cache provided') - return BB.resolve({spec}) + return BB.resolve({ spec }) } if (opts.integrity && !opts.preferOnline) { opts.log.silly('prefetch', 'checking if', opts.integrity, 'is already cached') diff --git a/node_modules/protoduck/CHANGELOG.md b/node_modules/protoduck/CHANGELOG.md index dd7669aa13e2f..f4902ab2d0267 100644 --- a/node_modules/protoduck/CHANGELOG.md +++ b/node_modules/protoduck/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [5.0.1](https://github.com/zkat/protoduck/compare/v5.0.0...v5.0.1) (2018-10-26) + + +### Bug Fixes + +* **security:** npm audit fix ([55a2007](https://github.com/zkat/protoduck/commit/55a2007)) +* **standard:** standard --fix ([2dedbb8](https://github.com/zkat/protoduck/commit/2dedbb8)) + + + # [5.0.0](https://github.com/zkat/protoduck/compare/v4.0.0...v5.0.0) (2017-12-12) diff --git a/node_modules/protoduck/index.js b/node_modules/protoduck/index.js index 3596bb3299d5c..b6a83e1f79012 100644 --- a/node_modules/protoduck/index.js +++ b/node_modules/protoduck/index.js @@ -52,8 +52,8 @@ class Duck extends Function { gf = arg[fns[i]] if (!gf || (gf.hasMethod - ? !gf.hasMethod.apply(gf, args) - : typeof gf === 'function')) { + ? !gf.hasMethod.apply(gf, args) + : typeof gf === 'function')) { return false } } @@ -81,7 +81,7 @@ Duck.prototype.isProtocol = true const Protoduck = module.exports = define(['duck'], { createGenfun: ['duck', _metaCreateGenfun], addMethod: ['duck', _metaAddMethod] -}, {name: 'Protoduck'}) +}, { name: 'Protoduck' }) const noImplFound = module.exports.noImplFound = genfun.noApplicableMethod @@ -168,22 +168,22 @@ function defineMethod (duck, name, target, types, impls) { if (!Object.prototype.hasOwnProperty.call(target, name)) { // Make a genfun if there's nothing there const gf = useMetaobject - ? duck._metaobject.createGenfun(duck, target, name, null) - : _metaCreateGenfun(duck, target, name, null) + ? duck._metaobject.createGenfun(duck, target, name, null) + : _metaCreateGenfun(duck, target, name, null) target[name] = gf } else if (typeof target[name] === 'function' && !target[name].isGenfun) { // Turn non-gf functions into genfuns const gf = useMetaobject - ? duck._metaobject.createGenfun(duck, target, name, target[name]) - : _metaCreateGenfun(duck, target, name, target[name]) + ? duck._metaobject.createGenfun(duck, target, name, target[name]) + : _metaCreateGenfun(duck, target, name, target[name]) target[name] = gf } const fn = impls[name] || duck._defaultImpls[name] if (fn) { // checkImpls made sure this is safe useMetaobject - ? duck._metaobject.addMethod(duck, target, name, methodTypes, fn) - : _metaAddMethod(duck, target, name, methodTypes, fn) + ? duck._metaobject.addMethod(duck, target, name, methodTypes, fn) + : _metaAddMethod(duck, target, name, methodTypes, fn) } } @@ -256,8 +256,8 @@ function installMethodErrorMessage (proto, gf, target, name) { proto.name ? `${proto.name}#` : '' }${name}(${[].map.call(args, typeName).join(', ')}). You must implement ${ proto.name - ? formatMethod(proto, name, true) - : `the protocol ${formatMethod(proto, name)} belongs to` + ? formatMethod(proto, name, true) + : `the protocol ${formatMethod(proto, name)} belongs to` } in order to call ${typeName(thisArg)}#${name}(${ [].map.call(args, typeName).join(', ') }).` @@ -330,8 +330,8 @@ class Constraint { const thisType = ( this.thisIdx === 'this' || this.thisIdx == null ) - ? target - : types[this.thisIdx] + ? target + : types[this.thisIdx] const parentTypes = this.indices.map(idx => { if (idx === 'this') { return target diff --git a/node_modules/protoduck/package.json b/node_modules/protoduck/package.json index 2211df2086f94..3ee47ac6adbaa 100644 --- a/node_modules/protoduck/package.json +++ b/node_modules/protoduck/package.json @@ -1,28 +1,27 @@ { - "_from": "protoduck@^5.0.0", - "_id": "protoduck@5.0.0", + "_from": "protoduck@^5.0.1", + "_id": "protoduck@5.0.1", "_inBundle": false, - "_integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "_integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", "_location": "/protoduck", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "protoduck@^5.0.0", + "raw": "protoduck@^5.0.1", "name": "protoduck", "escapedName": "protoduck", - "rawSpec": "^5.0.0", + "rawSpec": "^5.0.1", "saveSpec": null, - "fetchSpec": "^5.0.0" + "fetchSpec": "^5.0.1" }, "_requiredBy": [ - "/libcipm", "/pacote" ], - "_resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "_shasum": "752145e6be0ad834cb25716f670a713c860dce70", - "_spec": "protoduck@^5.0.0", - "_where": "/Users/rebecca/code/npm/node_modules/libcipm", + "_resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "_shasum": "03c3659ca18007b69a50fd82a7ebcc516261151f", + "_spec": "protoduck@^5.0.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/pacote", "author": { "name": "Kat Marchán", "email": "kzm@sykosomatic.org" @@ -32,16 +31,16 @@ }, "bundleDependencies": false, "dependencies": { - "genfun": "^4.0.1" + "genfun": "^5.0.0" }, "deprecated": false, "description": "Fancy duck typing for the most serious of ducks.", "devDependencies": { - "mocha": "^3.2.0", - "nyc": "^10.2.0", - "standard": "^10.0.2", + "mocha": "^5.2.0", + "nyc": "^13.1.0", + "standard": "^12.0.1", "standard-version": "^4.0.0", - "tap": "^10.3.2", + "tap": "^12.0.1", "weallbehave": "^1.0.3", "weallcontribute": "^1.0.8" }, @@ -85,5 +84,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "5.0.0" + "version": "5.0.1" } diff --git a/package-lock.json b/package-lock.json index feda683a00c84..6f477ae6bd113 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1647,7 +1647,7 @@ }, "fs-access": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { @@ -1758,9 +1758,9 @@ } }, "genfun": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz", - "integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==" }, "gentle-fs": { "version": "2.0.1", @@ -2454,27 +2454,28 @@ } }, "libnpm": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/libnpm/-/libnpm-1.4.0.tgz", - "integrity": "sha512-Ja6WdFpIEvGmxL34fvAzNma/Kjl303nDIRolpOhHoVbi+s93ZIPyap3RvM8IYINEoeF06P1mGWagZDEedq3NEg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/libnpm/-/libnpm-2.0.1.tgz", + "integrity": "sha512-qTKoxyJvpBxHZQB6k0AhSLajyXq9ZE/lUsZzuHAplr2Bpv9G+k4YuYlExYdUCeVRRGqcJt8hvkPh4tBwKoV98w==", "requires": { "bin-links": "^1.1.2", + "bluebird": "^3.5.3", "find-npm-prefix": "^1.0.2", - "libnpmaccess": "^2.0.0", - "libnpmconfig": "^1.1.1", - "libnpmhook": "^5.0.0", + "libnpmaccess": "^3.0.1", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.2", "libnpmorg": "^1.0.0", - "libnpmpublish": "^1.0.1", + "libnpmpublish": "^1.1.0", "libnpmsearch": "^2.0.0", - "libnpmteam": "^1.0.0", + "libnpmteam": "^1.0.1", "lock-verify": "^2.0.2", "npm-lifecycle": "^2.1.0", "npm-logical-tree": "^1.2.1", "npm-package-arg": "^6.1.0", - "npm-profile": "^4.0.0", - "npm-registry-fetch": "^3.3.0", + "npm-profile": "^4.0.1", + "npm-registry-fetch": "^3.8.0", "npmlog": "^4.1.2", - "pacote": "^9.1.0", + "pacote": "^9.2.3", "read-package-json": "^2.0.13", "stringify-package": "^1.0.0" }, @@ -2498,9 +2499,9 @@ } }, "libnpmaccess": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-2.0.1.tgz", - "integrity": "sha512-WJRlA7YGGCBK6zubJ8eajD7Wm6SaywiR0jnMjwp8QBwt1QxQOY+CCKpERw30opPkShjoesBLzQJ9Wf3MpXGR/A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", + "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", "requires": { "aproba": "^2.0.0", "get-stream": "^4.0.0", @@ -6067,43 +6068,75 @@ } }, "pacote": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.1.0.tgz", - "integrity": "sha512-AFXaSWhOtQf3jHqEvg+ZYH/dfT8TKq6TKspJ4qEFwVVuh5aGvMIk6SNF8vqfzz+cBceDIs9drOcpBbrPai7i+g==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.2.3.tgz", + "integrity": "sha512-Y3+yY3nBRAxMlZWvr62XLJxOwCmG9UmkGZkFurWHoCjqF0cZL72cTOCRJTvWw8T4OhJS2RTg13x4oYYriauvEw==", "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "figgy-pudding": "^3.2.1", - "get-stream": "^3.0.0", - "glob": "^7.1.2", + "bluebird": "^3.5.2", + "cacache": "^11.2.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", "lru-cache": "^4.1.3", "make-fetch-happen": "^4.0.1", "minimatch": "^3.0.4", - "minipass": "^2.3.3", + "minipass": "^2.3.5", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "normalize-package-data": "^2.4.0", "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "npm-registry-fetch": "^3.0.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", "osenv": "^0.1.5", "promise-inflight": "^1.0.1", "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", + "protoduck": "^5.0.1", "rimraf": "^2.6.2", "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.6", + "unique-filename": "^1.1.1", + "which": "^1.3.1" }, "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" } } }, @@ -6364,11 +6397,11 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" }, "protoduck": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz", - "integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", "requires": { - "genfun": "^4.0.1" + "genfun": "^5.0.0" } }, "prr": { diff --git a/package.json b/package.json index dc5349ca76c8a..1dfec8b314c8a 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "json-parse-better-errors": "^1.0.2", "lazy-property": "~1.0.0", "libcipm": "^3.0.2", - "libnpm": "^1.4.0", + "libnpm": "^2.0.1", "libnpx": "^10.2.0", "lock-verify": "^2.0.2", "lockfile": "^1.0.4", @@ -103,7 +103,7 @@ "once": "~1.4.0", "opener": "^1.5.1", "osenv": "^0.1.5", - "pacote": "^9.1.0", + "pacote": "^9.2.3", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", From a09091f1a0c9a6d569f915aa5bea278e57d41bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 27 Nov 2018 11:03:45 -0800 Subject: [PATCH 75/81] config: remove some config checks --- test/tap/config-meta.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/test/tap/config-meta.js b/test/tap/config-meta.js index 735c161fb87e2..97918b8897f8f 100644 --- a/test/tap/config-meta.js +++ b/test/tap/config-meta.js @@ -110,25 +110,26 @@ test('check configs', function (t) { } } - for (var c2 in DOC) { - if (c2 !== 'versions' && c2 !== 'version' && c2 !== 'init.version' && c2 !== 'ham-it-up') { - t.ok(CONFS[c2], 'config in doc should be used somewhere ' + c2) - t.ok(types.indexOf(c2) !== -1, 'should be defined in npmconf ' + c2) - t.ok(defaults.indexOf(c2) !== -1, 'should have default in npmconf ' + c2) - } - } + // TODO - needs better figgy-pudding introspection + // for (var c2 in DOC) { + // if (c2 !== 'versions' && c2 !== 'version' && c2 !== 'init.version' && c2 !== 'ham-it-up') { + // t.ok(CONFS[c2], 'config in doc should be used somewhere ' + c2) + // t.ok(types.indexOf(c2) !== -1, 'should be defined in npmconf ' + c2) + // t.ok(defaults.indexOf(c2) !== -1, 'should have default in npmconf ' + c2) + // } + // } types.forEach(function (c) { if (!c.match(/^_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') { t.ok(DOC[c], 'defined type should be documented ' + c) - t.ok(CONFS[c], 'defined type should be used ' + c) + // t.ok(CONFS[c], 'defined type should be used ' + c) } }) defaults.forEach(function (c) { if (!c.match(/^_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') { t.ok(DOC[c], 'defaulted type should be documented ' + c) - t.ok(CONFS[c], 'defaulted type should be used ' + c) + // t.ok(CONFS[c], 'defaulted type should be used ' + c) } }) From 96e9b80890c4b0109b49d333bf529c267e17a6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 27 Nov 2018 11:05:38 -0800 Subject: [PATCH 76/81] install: fix circular dependency with config stuff --- lib/fetch-package-metadata.js | 8 +++++++- lib/install/action/extract.js | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/fetch-package-metadata.js b/lib/fetch-package-metadata.js index 69ae78e51e3f2..78eed42bdf000 100644 --- a/lib/fetch-package-metadata.js +++ b/lib/fetch-package-metadata.js @@ -8,7 +8,7 @@ const rimraf = require('rimraf') const validate = require('aproba') const npa = require('npm-package-arg') const npm = require('./npm') -const npmConfig = require('./config/figgy-config.js') +let npmConfig const npmlog = require('npmlog') const limit = require('call-limit') const tempFilename = require('./utils/temp-filename') @@ -52,6 +52,9 @@ function fetchPackageMetadata (spec, where, opts, done) { err.code = 'EWINDOWSPATH' return logAndFinish(err) } + if (!npmConfig) { + npmConfig = require('./config/figgy-config.js') + } pacote.manifest(dep, npmConfig({ annotate: true, fullMetadata: opts.fullMetadata, @@ -95,6 +98,9 @@ function addBundled (pkg, next) { } pkg._bundled = null const target = tempFilename('unpack') + if (!npmConfig) { + npmConfig = require('./config/figgy-config.js') + } const opts = npmConfig({integrity: pkg._integrity}) pacote.extract(pkg._resolved || pkg._requested || npa.resolve(pkg.name, pkg.version), target, opts).then(() => { log.silly('addBundled', 'read tarball') diff --git a/lib/install/action/extract.js b/lib/install/action/extract.js index 0e84e157670cf..c1c17cdf6c4f3 100644 --- a/lib/install/action/extract.js +++ b/lib/install/action/extract.js @@ -10,7 +10,7 @@ const moduleStagingPath = require('../module-staging-path.js') const move = require('../../utils/move.js') const npa = require('npm-package-arg') const npm = require('../../npm.js') -const npmConfig = require('../../config/figgy-config.js') +let npmConfig const packageId = require('../../utils/package-id.js') const path = require('path') const localWorker = require('./extract-worker.js') @@ -47,6 +47,9 @@ module.exports = extract function extract (staging, pkg, log) { log.silly('extract', packageId(pkg)) const extractTo = moduleStagingPath(staging, pkg) + if (!npmConfig) { + npmConfig = require('../../config/figgy-config.js') + } let opts = ExtractOpts(npmConfig()).concat({ integrity: pkg.package._integrity, resolved: pkg.package._resolved From f895540ceb0f30422159a3d78d5a2adb65a7ca61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 4 Dec 2018 19:19:07 -0800 Subject: [PATCH 77/81] test: update cache add test output --- test/tap/cache-add-unpublished.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tap/cache-add-unpublished.js b/test/tap/cache-add-unpublished.js index 8966e43ae40a2..0e8a9de8bfa67 100644 --- a/test/tap/cache-add-unpublished.js +++ b/test/tap/cache-add-unpublished.js @@ -18,7 +18,7 @@ test('cache add', function (t) { if (er) throw er t.ok(c, 'got non-zero exit code') t.equal(so, '', 'nothing printed to stdout') - t.similar(se, /404 Not Found: superfoo/, 'got expected error') + t.similar(se, /404 Not Found.*superfoo/, 'got expected error') s.close() t.end() } From cd034b0d392a37b6b8c000c3207f1c2f6d03eb35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 4 Dec 2018 19:20:31 -0800 Subject: [PATCH 78/81] test: remove get.js test for n-r-c --- test/tap/get.js | 103 ------------------------------------------------ 1 file changed, 103 deletions(-) delete mode 100644 test/tap/get.js diff --git a/test/tap/get.js b/test/tap/get.js deleted file mode 100644 index c939ed071e800..0000000000000 --- a/test/tap/get.js +++ /dev/null @@ -1,103 +0,0 @@ -var common = require('../common-tap.js') -var test = require('tap').test -var npm = require('../../') -var rimraf = require('rimraf') -var path = require('path') -var mr = require('npm-registry-mock') - -function nop () {} - -var URI = 'https://npm.registry:8043/rewrite' -var TIMEOUT = 3600 -var FOLLOW = false -var STALE_OK = true -var TOKEN = 'lolbutts' -var AUTH = { token: TOKEN } -var PARAMS = { - timeout: TIMEOUT, - follow: FOLLOW, - staleOk: STALE_OK, - auth: AUTH -} -var PKG_DIR = path.resolve(__dirname, 'get-basic') -var BIGCO_SAMPLE = { - name: '@bigco/sample', - version: '1.2.3' -} - -// mock server reference -var server - -var mocks = { - 'get': { - '/@bigco%2fsample/1.2.3': [200, BIGCO_SAMPLE] - } -} - -test('setup', function (t) { - mr({port: common.port, mocks: mocks}, function (er, s) { - t.ifError(er) - npm.load({registry: common.registry}, function (er) { - t.ifError(er) - server = s - t.end() - }) - }) -}) - -test('get call contract', function (t) { - t.throws(function () { - npm.registry.get(undefined, PARAMS, nop) - }, 'requires a URI') - - t.throws(function () { - npm.registry.get([], PARAMS, nop) - }, 'requires URI to be a string') - - t.throws(function () { - npm.registry.get(URI, undefined, nop) - }, 'requires params object') - - t.throws(function () { - npm.registry.get(URI, '', nop) - }, 'params must be object') - - t.throws(function () { - npm.registry.get(URI, PARAMS, undefined) - }, 'requires callback') - - t.throws(function () { - npm.registry.get(URI, PARAMS, 'callback') - }, 'callback must be function') - - t.end() -}) - -test('basic request', function (t) { - t.plan(6) - - var versioned = common.registry + '/underscore/1.3.3' - npm.registry.get(versioned, PARAMS, function (er, data) { - t.ifError(er, 'loaded specified version underscore data') - t.equal(data.version, '1.3.3') - }) - - var rollup = common.registry + '/underscore' - npm.registry.get(rollup, PARAMS, function (er, data) { - t.ifError(er, 'loaded all metadata') - t.deepEqual(data.name, 'underscore') - }) - - var scoped = common.registry + '/@bigco%2fsample/1.2.3' - npm.registry.get(scoped, PARAMS, function (er, data) { - t.ifError(er, 'loaded all metadata') - t.equal(data.name, '@bigco/sample') - }) -}) - -test('cleanup', function (t) { - server.close() - rimraf.sync(PKG_DIR) - - t.end() -}) From edd9662154480c0ac571bd1d9651c70d3d597b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 5 Dec 2018 09:17:23 -0800 Subject: [PATCH 79/81] config: fix passing of referer value --- lib/config/figgy-config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/config/figgy-config.js b/lib/config/figgy-config.js index 2da085f40673d..9e9ca0ba561ef 100644 --- a/lib/config/figgy-config.js +++ b/lib/config/figgy-config.js @@ -36,7 +36,7 @@ function mkConfig (...providers) { log, 'npm-session': npmSession, 'project-scope': npm.projectScope, - refer: npm.refer, + refer: npm.referer, dmode: npm.modes.exec, fmode: npm.modes.file, umask: npm.modes.umask, From 813905c3a922e4ff725d2f5a5322c54c1acb4d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 5 Dec 2018 10:11:18 -0800 Subject: [PATCH 80/81] deps: fix licensee dep --- node_modules/licensee/package.json | 25 +++++++++++-------------- package.json | 2 +- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/node_modules/licensee/package.json b/node_modules/licensee/package.json index 8319cbe87e88a..8dfcb0c28c260 100644 --- a/node_modules/licensee/package.json +++ b/node_modules/licensee/package.json @@ -1,32 +1,27 @@ { - "_args": [ - [ - "licensee@5.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "licensee@5.0.0", + "_from": "licensee@^5.0.0", "_id": "licensee@5.0.0", "_inBundle": false, "_integrity": "sha512-g243BLsJYWWyNhwDEMewc2f6Ebyy1yiJmMDgO8MCQtLOXA8JO4O2/kbJ1QwwWdlmrwDgYECdl9CJBrKsr4ZezA==", "_location": "/licensee", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "licensee@5.0.0", + "raw": "licensee@^5.0.0", "name": "licensee", "escapedName": "licensee", - "rawSpec": "5.0.0", + "rawSpec": "^5.0.0", "saveSpec": null, - "fetchSpec": "5.0.0" + "fetchSpec": "^5.0.0" }, "_requiredBy": [ - "#DEV:/" + "#DEV:/", + "#USER" ], "_resolved": "https://registry.npmjs.org/licensee/-/licensee-5.0.0.tgz", - "_spec": "5.0.0", + "_shasum": "3224b679a3ccb7d9a1979b7af8ecaade39c4dc86", + "_spec": "licensee@^5.0.0", "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Kyle E. Mitchell", @@ -39,6 +34,7 @@ "bugs": { "url": "https://github.com/jslicense/licensee.js/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Jakob Krigovsky", @@ -56,6 +52,7 @@ "spdx-expression-validate": "^1.0.1", "spdx-satisfies": "^4.0.0" }, + "deprecated": false, "description": "check dependency licenses against rules", "devDependencies": { "spawn-sync": "^1.0.15", diff --git a/package.json b/package.json index 1dfec8b314c8a..52cfb08ba2c03 100644 --- a/package.json +++ b/package.json @@ -263,8 +263,8 @@ ], "devDependencies": { "deep-equal": "~1.0.1", - "licensee": "^5.0.0", "get-stream": "^4.1.0", + "licensee": "^5.0.0", "marked": "^0.5.0", "marked-man": "~0.2.1", "npm-registry-couchapp": "^2.7.1", From 06167a72cb701a6030061def1df7ce0b8f354c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Wed, 5 Dec 2018 14:55:59 -0800 Subject: [PATCH 81/81] deps: reinstall licensee to diagnose issue --- node_modules/array-find-index/package.json | 24 +++++++---------- node_modules/docopt/package.json | 24 +++++++---------- node_modules/fs-access/package.json | 26 ++++++++----------- node_modules/json-parse-errback/package.json | 24 +++++++---------- node_modules/licensee/package.json | 12 ++++----- node_modules/null-check/package.json | 24 +++++++---------- node_modules/simple-concat/package.json | 24 +++++++---------- node_modules/spdx-compare/package.json | 24 +++++++---------- .../spdx-expression-parse/package.json | 24 +++++++---------- .../spdx-expression-validate/package.json | 24 +++++++---------- node_modules/spdx-ranges/package.json | 24 +++++++---------- node_modules/spdx-satisfies/package.json | 24 +++++++---------- package-lock.json | 2 +- 13 files changed, 118 insertions(+), 162 deletions(-) diff --git a/node_modules/array-find-index/package.json b/node_modules/array-find-index/package.json index 5c210da93e245..54b22c74757d0 100644 --- a/node_modules/array-find-index/package.json +++ b/node_modules/array-find-index/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "array-find-index@1.0.2", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "array-find-index@1.0.2", + "_from": "array-find-index@^1.0.2", "_id": "array-find-index@1.0.2", "_inBundle": false, "_integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "_location": "/array-find-index", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "array-find-index@1.0.2", + "raw": "array-find-index@^1.0.2", "name": "array-find-index", "escapedName": "array-find-index", - "rawSpec": "1.0.2", + "rawSpec": "^1.0.2", "saveSpec": null, - "fetchSpec": "1.0.2" + "fetchSpec": "^1.0.2" }, "_requiredBy": [ "/spdx-compare" ], "_resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "_spec": "1.0.2", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "df010aa1287e164bbda6f9723b0a96a1ec4187a1", + "_spec": "array-find-index@^1.0.2", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/spdx-compare", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -36,6 +30,8 @@ "bugs": { "url": "https://github.com/sindresorhus/array-find-index/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "ES2015 `Array#findIndex()` ponyfill", "devDependencies": { "ava": "*", diff --git a/node_modules/docopt/package.json b/node_modules/docopt/package.json index e2104dc5c4abe..e4ec5eb2b4f38 100644 --- a/node_modules/docopt/package.json +++ b/node_modules/docopt/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "docopt@0.6.2", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "docopt@0.6.2", + "_from": "docopt@^0.6.2", "_id": "docopt@0.6.2", "_inBundle": false, "_integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", "_location": "/docopt", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "docopt@0.6.2", + "raw": "docopt@^0.6.2", "name": "docopt", "escapedName": "docopt", - "rawSpec": "0.6.2", + "rawSpec": "^0.6.2", "saveSpec": null, - "fetchSpec": "0.6.2" + "fetchSpec": "^0.6.2" }, "_requiredBy": [ "/licensee" ], "_resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", - "_spec": "0.6.2", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "b28e9e2220da5ec49f7ea5bb24a47787405eeb11", + "_spec": "docopt@^0.6.2", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Vladimir Keleshev", "email": "vladimir@keleshev.com" @@ -35,6 +29,7 @@ "bugs": { "url": "https://github.com/scarnie/docopt.coffee/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Andrew Kassen", @@ -53,6 +48,7 @@ "email": "mr.amtrack@gmail.com" } ], + "deprecated": false, "description": "a command line option parser that will make you smile", "devDependencies": { "chai": "^2.2.0", diff --git a/node_modules/fs-access/package.json b/node_modules/fs-access/package.json index f98df6784e423..76997b37a0e5c 100644 --- a/node_modules/fs-access/package.json +++ b/node_modules/fs-access/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "fs-access@1.0.1", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "fs-access@1.0.1", + "_from": "fs-access@^1.0.0", "_id": "fs-access@1.0.1", "_inBundle": false, "_integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "_location": "/fs-access", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "fs-access@1.0.1", + "raw": "fs-access@^1.0.0", "name": "fs-access", "escapedName": "fs-access", - "rawSpec": "1.0.1", + "rawSpec": "^1.0.0", "saveSpec": null, - "fetchSpec": "1.0.1" + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/licensee" ], - "_resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "_spec": "1.0.1", - "_where": "/Users/zkat/Documents/code/work/npm", + "_resolved": "http://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "_shasum": "d6a87f262271cefebec30c553407fb995da8777a", + "_spec": "fs-access@^1.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -36,9 +30,11 @@ "bugs": { "url": "https://github.com/sindresorhus/fs-access/issues" }, + "bundleDependencies": false, "dependencies": { "null-check": "^1.0.0" }, + "deprecated": false, "description": "Node.js 0.12 fs.access() & fs.accessSync() ponyfill", "devDependencies": { "os-tmpdir": "^1.0.0" diff --git a/node_modules/json-parse-errback/package.json b/node_modules/json-parse-errback/package.json index 141509a6fbc01..2c2173f89db33 100644 --- a/node_modules/json-parse-errback/package.json +++ b/node_modules/json-parse-errback/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "json-parse-errback@2.0.1", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "json-parse-errback@2.0.1", + "_from": "json-parse-errback@^2.0.1", "_id": "json-parse-errback@2.0.1", "_inBundle": false, "_integrity": "sha1-x6nCvjqFWzQvgqv8ibyFk1tYhPo=", "_location": "/json-parse-errback", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "json-parse-errback@2.0.1", + "raw": "json-parse-errback@^2.0.1", "name": "json-parse-errback", "escapedName": "json-parse-errback", - "rawSpec": "2.0.1", + "rawSpec": "^2.0.1", "saveSpec": null, - "fetchSpec": "2.0.1" + "fetchSpec": "^2.0.1" }, "_requiredBy": [ "/licensee" ], "_resolved": "https://registry.npmjs.org/json-parse-errback/-/json-parse-errback-2.0.1.tgz", - "_spec": "2.0.1", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "c7a9c2be3a855b342f82abfc89bc85935b5884fa", + "_spec": "json-parse-errback@^2.0.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", @@ -36,6 +30,8 @@ "bugs": { "url": "https://github.com/kemitchell/json-parse-errback.js/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "parse(input, function(error, object) { ... })", "devDependencies": { "defence-cli": "^1.0.5" diff --git a/node_modules/licensee/package.json b/node_modules/licensee/package.json index 8dfcb0c28c260..7b9c612e9a5a2 100644 --- a/node_modules/licensee/package.json +++ b/node_modules/licensee/package.json @@ -1,19 +1,19 @@ { - "_from": "licensee@^5.0.0", + "_from": "licensee", "_id": "licensee@5.0.0", "_inBundle": false, "_integrity": "sha512-g243BLsJYWWyNhwDEMewc2f6Ebyy1yiJmMDgO8MCQtLOXA8JO4O2/kbJ1QwwWdlmrwDgYECdl9CJBrKsr4ZezA==", "_location": "/licensee", "_phantomChildren": {}, "_requested": { - "type": "range", + "type": "tag", "registry": true, - "raw": "licensee@^5.0.0", + "raw": "licensee", "name": "licensee", "escapedName": "licensee", - "rawSpec": "^5.0.0", + "rawSpec": "", "saveSpec": null, - "fetchSpec": "^5.0.0" + "fetchSpec": "latest" }, "_requiredBy": [ "#DEV:/", @@ -21,7 +21,7 @@ ], "_resolved": "https://registry.npmjs.org/licensee/-/licensee-5.0.0.tgz", "_shasum": "3224b679a3ccb7d9a1979b7af8ecaade39c4dc86", - "_spec": "licensee@^5.0.0", + "_spec": "licensee", "_where": "/Users/zkat/Documents/code/work/npm", "author": { "name": "Kyle E. Mitchell", diff --git a/node_modules/null-check/package.json b/node_modules/null-check/package.json index e269dca66d02f..89e17e9efccdc 100644 --- a/node_modules/null-check/package.json +++ b/node_modules/null-check/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "null-check@1.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "null-check@1.0.0", + "_from": "null-check@^1.0.0", "_id": "null-check@1.0.0", "_inBundle": false, "_integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", "_location": "/null-check", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "null-check@1.0.0", + "raw": "null-check@^1.0.0", "name": "null-check", "escapedName": "null-check", - "rawSpec": "1.0.0", + "rawSpec": "^1.0.0", "saveSpec": null, - "fetchSpec": "1.0.0" + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/fs-access" ], "_resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "_spec": "1.0.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "977dffd7176012b9ec30d2a39db5cf72a0439edd", + "_spec": "null-check@^1.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/fs-access", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -36,6 +30,8 @@ "bugs": { "url": "https://github.com/sindresorhus/null-check/issues" }, + "bundleDependencies": false, + "deprecated": false, "description": "Ensure a path doesn't contain null bytes", "devDependencies": { "ava": "0.0.4" diff --git a/node_modules/simple-concat/package.json b/node_modules/simple-concat/package.json index 81f0174e2e878..d4b4463d3114a 100644 --- a/node_modules/simple-concat/package.json +++ b/node_modules/simple-concat/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "simple-concat@1.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "simple-concat@1.0.0", + "_from": "simple-concat@^1.0.0", "_id": "simple-concat@1.0.0", "_inBundle": false, "_integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", "_location": "/simple-concat", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "simple-concat@1.0.0", + "raw": "simple-concat@^1.0.0", "name": "simple-concat", "escapedName": "simple-concat", - "rawSpec": "1.0.0", + "rawSpec": "^1.0.0", "saveSpec": null, - "fetchSpec": "1.0.0" + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/licensee" ], "_resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "_spec": "1.0.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6", + "_spec": "simple-concat@^1.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", @@ -36,7 +30,9 @@ "bugs": { "url": "https://github.com/feross/simple-concat/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Super-minimalist version of `concat-stream`. Less than 15 lines!", "devDependencies": { "standard": "^6.0.8", diff --git a/node_modules/spdx-compare/package.json b/node_modules/spdx-compare/package.json index 82f0291cf4a3a..d58daa683b46b 100644 --- a/node_modules/spdx-compare/package.json +++ b/node_modules/spdx-compare/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "spdx-compare@1.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "spdx-compare@1.0.0", + "_from": "spdx-compare@^1.0.0", "_id": "spdx-compare@1.0.0", "_inBundle": false, "_integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "_location": "/spdx-compare", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "spdx-compare@1.0.0", + "raw": "spdx-compare@^1.0.0", "name": "spdx-compare", "escapedName": "spdx-compare", - "rawSpec": "1.0.0", + "rawSpec": "^1.0.0", "saveSpec": null, - "fetchSpec": "1.0.0" + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/spdx-satisfies" ], "_resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "_spec": "1.0.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "2c55f117362078d7409e6d7b08ce70a857cd3ed7", + "_spec": "spdx-compare@^1.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/spdx-satisfies", "author": { "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", @@ -36,11 +30,13 @@ "bugs": { "url": "https://github.com/kemitchell/spdx-compare.js/issues" }, + "bundleDependencies": false, "dependencies": { "array-find-index": "^1.0.2", "spdx-expression-parse": "^3.0.0", "spdx-ranges": "^2.0.0" }, + "deprecated": false, "description": "compare SPDX license expressions", "devDependencies": { "defence-cli": "^2.0.1" diff --git a/node_modules/spdx-expression-validate/node_modules/spdx-expression-parse/package.json b/node_modules/spdx-expression-validate/node_modules/spdx-expression-parse/package.json index 64926dc22d7f8..6c1527e4934c1 100644 --- a/node_modules/spdx-expression-validate/node_modules/spdx-expression-parse/package.json +++ b/node_modules/spdx-expression-validate/node_modules/spdx-expression-parse/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "spdx-expression-parse@1.0.4", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "spdx-expression-parse@1.0.4", + "_from": "spdx-expression-parse@^1.0.0", "_id": "spdx-expression-parse@1.0.4", "_inBundle": false, "_integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "_location": "/spdx-expression-validate/spdx-expression-parse", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "spdx-expression-parse@1.0.4", + "raw": "spdx-expression-parse@^1.0.0", "name": "spdx-expression-parse", "escapedName": "spdx-expression-parse", - "rawSpec": "1.0.4", + "rawSpec": "^1.0.0", "saveSpec": null, - "fetchSpec": "1.0.4" + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/spdx-expression-validate" ], "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "_spec": "1.0.4", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "9bdf2f20e1f40ed447fbe273266191fced51626c", + "_spec": "spdx-expression-parse@^1.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/spdx-expression-validate", "author": { "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", @@ -36,6 +30,7 @@ "bugs": { "url": "https://github.com/kemitchell/spdx-expression-parse.js/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "C. Scott Ananian", @@ -52,6 +47,7 @@ "email": "snnskwtnb@gmail.com" } ], + "deprecated": false, "description": "parse SPDX license expressions", "devDependencies": { "defence-cli": "^1.0.1", diff --git a/node_modules/spdx-expression-validate/package.json b/node_modules/spdx-expression-validate/package.json index 530b3f515620d..927809e1ffecf 100644 --- a/node_modules/spdx-expression-validate/package.json +++ b/node_modules/spdx-expression-validate/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "spdx-expression-validate@1.0.2", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "spdx-expression-validate@1.0.2", + "_from": "spdx-expression-validate@^1.0.1", "_id": "spdx-expression-validate@1.0.2", "_inBundle": false, "_integrity": "sha1-Wk5NdhbtHJuIFQNmtCF/dnwn6eM=", "_location": "/spdx-expression-validate", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "spdx-expression-validate@1.0.2", + "raw": "spdx-expression-validate@^1.0.1", "name": "spdx-expression-validate", "escapedName": "spdx-expression-validate", - "rawSpec": "1.0.2", + "rawSpec": "^1.0.1", "saveSpec": null, - "fetchSpec": "1.0.2" + "fetchSpec": "^1.0.1" }, "_requiredBy": [ "/licensee" ], "_resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-1.0.2.tgz", - "_spec": "1.0.2", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "5a4e4d7616ed1c9b88150366b4217f767c27e9e3", + "_spec": "spdx-expression-validate@^1.0.1", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", @@ -36,9 +30,11 @@ "bugs": { "url": "https://github.com/kemitchell/spdx-expression-validate.js/issues" }, + "bundleDependencies": false, "dependencies": { "spdx-expression-parse": "^1.0.0" }, + "deprecated": false, "description": "validate SPDX license expressions", "devDependencies": { "defence-cli": "^1.0.1", diff --git a/node_modules/spdx-ranges/package.json b/node_modules/spdx-ranges/package.json index 6dd46a69ace28..6c3ff71edaf2e 100644 --- a/node_modules/spdx-ranges/package.json +++ b/node_modules/spdx-ranges/package.json @@ -1,40 +1,35 @@ { - "_args": [ - [ - "spdx-ranges@2.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "spdx-ranges@2.0.0", + "_from": "spdx-ranges@^2.0.0", "_id": "spdx-ranges@2.0.0", "_inBundle": false, "_integrity": "sha512-AUUXLfqkwD7GlzZkXv8ePPCpPjeVWI9xJCfysL8re/uKb6H10umMnC7bFRsHmLJan4fslUtekAgpHlSgLc/7mA==", "_location": "/spdx-ranges", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "spdx-ranges@2.0.0", + "raw": "spdx-ranges@^2.0.0", "name": "spdx-ranges", "escapedName": "spdx-ranges", - "rawSpec": "2.0.0", + "rawSpec": "^2.0.0", "saveSpec": null, - "fetchSpec": "2.0.0" + "fetchSpec": "^2.0.0" }, "_requiredBy": [ "/spdx-compare", "/spdx-satisfies" ], "_resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.0.0.tgz", - "_spec": "2.0.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "257686798e5edb41d45c1aba3d3f1bb47af8d5ec", + "_spec": "spdx-ranges@^2.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/spdx-satisfies", "author": { "name": "The Linux Foundation" }, "bugs": { "url": "https://github.com/kemitchell/spdx-ranges.js/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Kyle E. Mitchell", @@ -42,6 +37,7 @@ "url": "https://kemitchell.com/" } ], + "deprecated": false, "description": "list of SPDX standard license ranges", "devDependencies": { "defence-cli": "^1.0.1" diff --git a/node_modules/spdx-satisfies/package.json b/node_modules/spdx-satisfies/package.json index 3354a86bcd227..a499540df4af6 100644 --- a/node_modules/spdx-satisfies/package.json +++ b/node_modules/spdx-satisfies/package.json @@ -1,33 +1,27 @@ { - "_args": [ - [ - "spdx-satisfies@4.0.0", - "/Users/zkat/Documents/code/work/npm" - ] - ], - "_development": true, - "_from": "spdx-satisfies@4.0.0", + "_from": "spdx-satisfies@^4.0.0", "_id": "spdx-satisfies@4.0.0", "_inBundle": false, "_integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "_location": "/spdx-satisfies", "_phantomChildren": {}, "_requested": { - "type": "version", + "type": "range", "registry": true, - "raw": "spdx-satisfies@4.0.0", + "raw": "spdx-satisfies@^4.0.0", "name": "spdx-satisfies", "escapedName": "spdx-satisfies", - "rawSpec": "4.0.0", + "rawSpec": "^4.0.0", "saveSpec": null, - "fetchSpec": "4.0.0" + "fetchSpec": "^4.0.0" }, "_requiredBy": [ "/licensee" ], "_resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz", - "_spec": "4.0.0", - "_where": "/Users/zkat/Documents/code/work/npm", + "_shasum": "ebc79eec88b68ac75618e2e5ee94fbc347587552", + "_spec": "spdx-satisfies@^4.0.0", + "_where": "/Users/zkat/Documents/code/work/npm/node_modules/licensee", "author": { "name": "Kyle E. Mitchell", "email": "kyle@kemitchell.com", @@ -36,11 +30,13 @@ "bugs": { "url": "https://github.com/kemitchell/spdx-satisfies.js/issues" }, + "bundleDependencies": false, "dependencies": { "spdx-compare": "^1.0.0", "spdx-expression-parse": "^3.0.0", "spdx-ranges": "^2.0.0" }, + "deprecated": false, "description": "test whether SPDX expressions satisfy licensing criteria", "devDependencies": { "defence-cli": "^2.0.1", diff --git a/package-lock.json b/package-lock.json index 6f477ae6bd113..fed6a339e235e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1647,7 +1647,7 @@ }, "fs-access": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": {